@quanta-intellect/vessel-browser 0.1.120 → 0.1.121

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1474,7 +1474,7 @@ function Dynamic(props) {
1474
1474
  const [, others] = splitProps(props, ["component"]);
1475
1475
  return createDynamic(() => props.component, others);
1476
1476
  }
1477
- var _tmpl$$r = /* @__PURE__ */ template(`<div class=title-bar><div class=title-bar-drag></div><div class=mcp-status-area><button class=mcp-status-indicator><span class=mcp-dot></span><span class=mcp-label>MCP</span></button></div><div class=window-controls><button class=window-btn data-tooltip=Downloads>↓</button><button class=window-btn data-tooltip=Minimize><svg width=10 height=10 viewBox="0 0 10 10"><rect x=1 y=5 width=8 height=1 fill=currentColor></rect></svg></button><button class=window-btn data-tooltip=Maximize><svg width=10 height=10 viewBox="0 0 10 10"><rect x=1 y=1 width=8 height=8 fill=none stroke=currentColor stroke-width=1></rect></svg></button><button class="window-btn window-btn-close"data-tooltip=Close><svg width=10 height=10 viewBox="0 0 10 10"><line x1=1 y1=1 x2=9 y2=9 stroke=currentColor stroke-width=1.2></line><line x1=9 y1=1 x2=1 y2=9 stroke=currentColor stroke-width=1.2>`);
1477
+ var _tmpl$$s = /* @__PURE__ */ template(`<div class=title-bar><div class=title-bar-drag></div><div class=mcp-status-area><button class=mcp-status-indicator><span class=mcp-dot></span><span class=mcp-label>MCP</span></button></div><div class=window-controls><button class=window-btn data-tooltip=Downloads>↓</button><button class=window-btn data-tooltip=Minimize><svg width=10 height=10 viewBox="0 0 10 10"><rect x=1 y=5 width=8 height=1 fill=currentColor></rect></svg></button><button class=window-btn data-tooltip=Maximize><svg width=10 height=10 viewBox="0 0 10 10"><rect x=1 y=1 width=8 height=8 fill=none stroke=currentColor stroke-width=1></rect></svg></button><button class="window-btn window-btn-close"data-tooltip=Close><svg width=10 height=10 viewBox="0 0 10 10"><line x1=1 y1=1 x2=9 y2=9 stroke=currentColor stroke-width=1.2></line><line x1=9 y1=1 x2=1 y2=9 stroke=currentColor stroke-width=1.2>`);
1478
1478
  const TitleBar = (props) => {
1479
1479
  const isPrivateWindow = new URLSearchParams(window.location.search).get("private") === "1";
1480
1480
  const [mcpStatus, setMcpStatus] = createSignal("starting");
@@ -1507,7 +1507,7 @@ const TitleBar = (props) => {
1507
1507
  window.vessel.ui.setSettingsVisibility(true);
1508
1508
  };
1509
1509
  return (() => {
1510
- var _el$ = _tmpl$$r(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.firstChild, _el$5 = _el$3.nextSibling, _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling, _el$8 = _el$7.nextSibling, _el$9 = _el$8.nextSibling;
1510
+ var _el$ = _tmpl$$s(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.firstChild, _el$5 = _el$3.nextSibling, _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling, _el$8 = _el$7.nextSibling, _el$9 = _el$8.nextSibling;
1511
1511
  _el$4.$$click = handleMcpClick;
1512
1512
  _el$6.$$click = () => props.onOpenDownloads?.();
1513
1513
  _el$7.$$click = () => window.vessel.window.minimize();
@@ -1549,7 +1549,7 @@ var LucideContext = createContext({
1549
1549
  absoluteStrokeWidth: false,
1550
1550
  class: ""
1551
1551
  });
1552
- var _tmpl$$q = /* @__PURE__ */ template(`<svg>`);
1552
+ var _tmpl$$r = /* @__PURE__ */ template(`<svg>`);
1553
1553
  var hasA11yProp = (props) => {
1554
1554
  for (const prop in props) {
1555
1555
  if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
@@ -1571,7 +1571,7 @@ var Icon = (props) => {
1571
1571
  const [localProps, rest] = splitProps(props, ["color", "size", "strokeWidth", "children", "class", "name", "iconNode", "absoluteStrokeWidth"]);
1572
1572
  const globalProps = useContext(LucideContext);
1573
1573
  return (() => {
1574
- var _el$ = _tmpl$$q();
1574
+ var _el$ = _tmpl$$r();
1575
1575
  spread(_el$, mergeProps(defaultAttributes_default, {
1576
1576
  get width() {
1577
1577
  return localProps.size ?? globalProps.size ?? defaultAttributes_default.width;
@@ -1606,7 +1606,7 @@ var Icon = (props) => {
1606
1606
  })();
1607
1607
  };
1608
1608
  var Icon_default = Icon;
1609
- var iconNode$k = [["path", {
1609
+ var iconNode$m = [["path", {
1610
1610
  d: "M12 7v14",
1611
1611
  key: "1akyts"
1612
1612
  }], ["path", {
@@ -1614,20 +1614,20 @@ var iconNode$k = [["path", {
1614
1614
  key: "ruj8y"
1615
1615
  }]];
1616
1616
  var BookOpen = (props) => createComponent(Icon_default, mergeProps(props, {
1617
- iconNode: iconNode$k,
1617
+ iconNode: iconNode$m,
1618
1618
  name: "book-open"
1619
1619
  }));
1620
1620
  var book_open_default = BookOpen;
1621
- var iconNode$j = [["path", {
1621
+ var iconNode$l = [["path", {
1622
1622
  d: "M20 6 9 17l-5-5",
1623
1623
  key: "1gmf2c"
1624
1624
  }]];
1625
1625
  var Check = (props) => createComponent(Icon_default, mergeProps(props, {
1626
- iconNode: iconNode$j,
1626
+ iconNode: iconNode$l,
1627
1627
  name: "check"
1628
1628
  }));
1629
1629
  var check_default = Check;
1630
- var iconNode$i = [["rect", {
1630
+ var iconNode$k = [["rect", {
1631
1631
  width: "8",
1632
1632
  height: "4",
1633
1633
  x: "8",
@@ -1652,11 +1652,11 @@ var iconNode$i = [["rect", {
1652
1652
  key: "18s6g9"
1653
1653
  }]];
1654
1654
  var ClipboardList = (props) => createComponent(Icon_default, mergeProps(props, {
1655
- iconNode: iconNode$i,
1655
+ iconNode: iconNode$k,
1656
1656
  name: "clipboard-list"
1657
1657
  }));
1658
1658
  var clipboard_list_default = ClipboardList;
1659
- var iconNode$h = [["circle", {
1659
+ var iconNode$j = [["circle", {
1660
1660
  cx: "12",
1661
1661
  cy: "12",
1662
1662
  r: "10",
@@ -1666,11 +1666,11 @@ var iconNode$h = [["circle", {
1666
1666
  key: "mmk7yg"
1667
1667
  }]];
1668
1668
  var Clock = (props) => createComponent(Icon_default, mergeProps(props, {
1669
- iconNode: iconNode$h,
1669
+ iconNode: iconNode$j,
1670
1670
  name: "clock"
1671
1671
  }));
1672
1672
  var clock_default = Clock;
1673
- var iconNode$g = [["path", {
1673
+ var iconNode$i = [["path", {
1674
1674
  d: "M12 20v2",
1675
1675
  key: "1lh1kg"
1676
1676
  }], ["path", {
@@ -1722,11 +1722,11 @@ var iconNode$g = [["path", {
1722
1722
  key: "z9xiuo"
1723
1723
  }]];
1724
1724
  var Cpu = (props) => createComponent(Icon_default, mergeProps(props, {
1725
- iconNode: iconNode$g,
1725
+ iconNode: iconNode$i,
1726
1726
  name: "cpu"
1727
1727
  }));
1728
1728
  var cpu_default = Cpu;
1729
- var iconNode$f = [["path", {
1729
+ var iconNode$h = [["path", {
1730
1730
  d: "M12 15V3",
1731
1731
  key: "m9g1x1"
1732
1732
  }], ["path", {
@@ -1737,11 +1737,26 @@ var iconNode$f = [["path", {
1737
1737
  key: "brsn70"
1738
1738
  }]];
1739
1739
  var Download = (props) => createComponent(Icon_default, mergeProps(props, {
1740
- iconNode: iconNode$f,
1740
+ iconNode: iconNode$h,
1741
1741
  name: "download"
1742
1742
  }));
1743
1743
  var download_default = Download;
1744
- var iconNode$e = [["circle", {
1744
+ var iconNode$g = [["path", {
1745
+ d: "M15 3h6v6",
1746
+ key: "1q9fwt"
1747
+ }], ["path", {
1748
+ d: "M10 14 21 3",
1749
+ key: "gplh6r"
1750
+ }], ["path", {
1751
+ d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",
1752
+ key: "a6xqqp"
1753
+ }]];
1754
+ var ExternalLink = (props) => createComponent(Icon_default, mergeProps(props, {
1755
+ iconNode: iconNode$g,
1756
+ name: "external-link"
1757
+ }));
1758
+ var external_link_default = ExternalLink;
1759
+ var iconNode$f = [["circle", {
1745
1760
  cx: "12",
1746
1761
  cy: "12",
1747
1762
  r: "10",
@@ -1754,11 +1769,11 @@ var iconNode$e = [["circle", {
1754
1769
  key: "9i4pu4"
1755
1770
  }]];
1756
1771
  var Globe = (props) => createComponent(Icon_default, mergeProps(props, {
1757
- iconNode: iconNode$e,
1772
+ iconNode: iconNode$f,
1758
1773
  name: "globe"
1759
1774
  }));
1760
1775
  var globe_default = Globe;
1761
- var iconNode$d = [["path", {
1776
+ var iconNode$e = [["path", {
1762
1777
  d: "M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 .83.18 2 2 0 0 0 .83-.18l8.58-3.9a1 1 0 0 0 0-1.831z",
1763
1778
  key: "zzgyd3"
1764
1779
  }], ["path", {
@@ -1775,11 +1790,11 @@ var iconNode$d = [["path", {
1775
1790
  key: "jksky3"
1776
1791
  }]];
1777
1792
  var LayersPlus = (props) => createComponent(Icon_default, mergeProps(props, {
1778
- iconNode: iconNode$d,
1793
+ iconNode: iconNode$e,
1779
1794
  name: "layers-plus"
1780
1795
  }));
1781
1796
  var layers_plus_default = LayersPlus;
1782
- var iconNode$c = [["rect", {
1797
+ var iconNode$d = [["rect", {
1783
1798
  width: "18",
1784
1799
  height: "11",
1785
1800
  x: "3",
@@ -1792,10 +1807,29 @@ var iconNode$c = [["rect", {
1792
1807
  key: "fwvmzm"
1793
1808
  }]];
1794
1809
  var Lock = (props) => createComponent(Icon_default, mergeProps(props, {
1795
- iconNode: iconNode$c,
1810
+ iconNode: iconNode$d,
1796
1811
  name: "lock"
1797
1812
  }));
1798
1813
  var lock_default = Lock;
1814
+ var iconNode$c = [["rect", {
1815
+ width: "18",
1816
+ height: "18",
1817
+ x: "3",
1818
+ y: "3",
1819
+ rx: "2",
1820
+ key: "afitv7"
1821
+ }], ["path", {
1822
+ d: "M15 3v18",
1823
+ key: "14nvp0"
1824
+ }], ["path", {
1825
+ d: "m8 9 3 3-3 3",
1826
+ key: "12hl5m"
1827
+ }]];
1828
+ var PanelRightClose = (props) => createComponent(Icon_default, mergeProps(props, {
1829
+ iconNode: iconNode$c,
1830
+ name: "panel-right-close"
1831
+ }));
1832
+ var panel_right_close_default = PanelRightClose;
1799
1833
  var iconNode$b = [["rect", {
1800
1834
  width: "18",
1801
1835
  height: "18",
@@ -2309,7 +2343,7 @@ function getAgentPresence(state, currentTime = Date.now()) {
2309
2343
  }
2310
2344
  return "idle";
2311
2345
  }
2312
- var _tmpl$$p = /* @__PURE__ */ template(`<img class=tab-favicon alt>`), _tmpl$2$o = /* @__PURE__ */ template(`<span class=tab-favicon-fallback>`), _tmpl$3$l = /* @__PURE__ */ template(`<div class=tab-bar><div class=tab-list></div><div class=tab-actions><button class=tab-new data-tooltip="New window"data-tooltip-pos=left></button><button class=tab-new data-tooltip="Add active tab to group"data-tooltip-pos=left></button><button class=tab-new data-tooltip="New tab"data-tooltip-pos=left></button><button class="tab-new tab-new-private"data-tooltip="Private window"data-tooltip-pos=left><svg width=12 height=12 viewBox="0 0 16 16"fill=currentColor><path d="M8 1a7 7 0 100 14A7 7 0 008 1zm0 1.5a5.5 5.5 0 110 11 5.5 5.5 0 010-11z">`), _tmpl$4$l = /* @__PURE__ */ template(`<button><span class=tab-group-dot></span><span class=tab-group-name></span><span class=tab-group-count>`), _tmpl$5$i = /* @__PURE__ */ template(`<button class="tab-audio tab-audio-pinned">`), _tmpl$6$g = /* @__PURE__ */ template(`<div role=tab>`), _tmpl$7$e = /* @__PURE__ */ template(`<span class=tab-title>`), _tmpl$8$a = /* @__PURE__ */ template(`<button class=tab-audio>`), _tmpl$9$9 = /* @__PURE__ */ template(`<button class=tab-close>×`), _tmpl$0$7 = /* @__PURE__ */ template(`<span class=tab-agent-indicator aria-hidden=true title="Agent active on this tab">`), _tmpl$1$7 = /* @__PURE__ */ template(`<span class=tab-loading>`);
2346
+ var _tmpl$$q = /* @__PURE__ */ template(`<img class=tab-favicon alt>`), _tmpl$2$p = /* @__PURE__ */ template(`<span class=tab-favicon-fallback>`), _tmpl$3$l = /* @__PURE__ */ template(`<div class=tab-bar><div class=tab-list></div><div class=tab-actions><button class=tab-new data-tooltip="New window"data-tooltip-pos=left></button><button class=tab-new data-tooltip="Add active tab to group"data-tooltip-pos=left></button><button class=tab-new data-tooltip="New tab"data-tooltip-pos=left></button><button class="tab-new tab-new-private"data-tooltip="Private window"data-tooltip-pos=left><svg width=12 height=12 viewBox="0 0 16 16"fill=currentColor><path d="M8 1a7 7 0 100 14A7 7 0 008 1zm0 1.5a5.5 5.5 0 110 11 5.5 5.5 0 010-11z">`), _tmpl$4$l = /* @__PURE__ */ template(`<button><span class=tab-group-dot></span><span class=tab-group-name></span><span class=tab-group-count>`), _tmpl$5$i = /* @__PURE__ */ template(`<button class="tab-audio tab-audio-pinned">`), _tmpl$6$g = /* @__PURE__ */ template(`<div role=tab>`), _tmpl$7$e = /* @__PURE__ */ template(`<span class=tab-title>`), _tmpl$8$a = /* @__PURE__ */ template(`<button class=tab-audio>`), _tmpl$9$9 = /* @__PURE__ */ template(`<button class=tab-close>×`), _tmpl$0$7 = /* @__PURE__ */ template(`<span class=tab-agent-indicator aria-hidden=true title="Agent active on this tab">`), _tmpl$1$7 = /* @__PURE__ */ template(`<span class=tab-loading>`);
2313
2347
  const TAB_CLOSE_MS = 200;
2314
2348
  function stringToHue(str) {
2315
2349
  let hash = 0;
@@ -2336,14 +2370,14 @@ const TabFavicon = (props) => {
2336
2370
  },
2337
2371
  get fallback() {
2338
2372
  return (() => {
2339
- var _el$2 = _tmpl$2$o();
2373
+ var _el$2 = _tmpl$2$p();
2340
2374
  insert(_el$2, letter);
2341
2375
  createRenderEffect((_$p) => setStyleProperty(_el$2, "--favicon-hue", `${hue()}`));
2342
2376
  return _el$2;
2343
2377
  })();
2344
2378
  },
2345
2379
  get children() {
2346
- var _el$ = _tmpl$$p();
2380
+ var _el$ = _tmpl$$q();
2347
2381
  _el$.addEventListener("error", () => setFailed(true));
2348
2382
  createRenderEffect(() => setAttribute(_el$, "src", props.favicon));
2349
2383
  return _el$;
@@ -2575,7 +2609,7 @@ const TabBar = () => {
2575
2609
  })();
2576
2610
  };
2577
2611
  delegateEvents(["click", "contextmenu"]);
2578
- var _tmpl$$o = /* @__PURE__ */ template(`<button class=security-popup-link>Reset permissions for this site`), _tmpl$2$n = /* @__PURE__ */ template(`<div class=security-popup><div class=security-popup-content><p class=security-popup-text></p><button class=security-popup-link>Learn More</button><div class=security-popup-section><div class=security-popup-section-title>Site permissions`), _tmpl$3$k = /* @__PURE__ */ template(`<p class=security-popup-muted>No saved permission decisions for this site.`), _tmpl$4$k = /* @__PURE__ */ template(`<div class=security-popup-permission-row><span></span><strong>`), _tmpl$5$h = /* @__PURE__ */ template(`<div class=security-popup-actions><button class=security-popup-action-proceed>Proceed Anyway</button><button class=security-popup-action-back>Go Back to Safety`);
2612
+ var _tmpl$$p = /* @__PURE__ */ template(`<button class=security-popup-link>Reset permissions for this site`), _tmpl$2$o = /* @__PURE__ */ template(`<div class=security-popup><div class=security-popup-content><p class=security-popup-text></p><button class=security-popup-link>Learn More</button><div class=security-popup-section><div class=security-popup-section-title>Site permissions`), _tmpl$3$k = /* @__PURE__ */ template(`<p class=security-popup-muted>No saved permission decisions for this site.`), _tmpl$4$k = /* @__PURE__ */ template(`<div class=security-popup-permission-row><span></span><strong>`), _tmpl$5$h = /* @__PURE__ */ template(`<div class=security-popup-actions><button class=security-popup-action-proceed>Proceed Anyway</button><button class=security-popup-action-back>Go Back to Safety`);
2579
2613
  const SecurityPopup = (props) => {
2580
2614
  const statusText = () => {
2581
2615
  switch (props.state.status) {
@@ -2628,7 +2662,7 @@ const SecurityPopup = (props) => {
2628
2662
  onCleanup(() => document.removeEventListener("click", handleClickOutside, true));
2629
2663
  });
2630
2664
  return (() => {
2631
- var _el$ = _tmpl$2$n(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.nextSibling;
2665
+ var _el$ = _tmpl$2$o(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.nextSibling;
2632
2666
  _el$5.firstChild;
2633
2667
  _el$.$$click = (e) => e.stopPropagation();
2634
2668
  insert(_el$3, statusText);
@@ -2653,7 +2687,7 @@ const SecurityPopup = (props) => {
2653
2687
  return _el$9;
2654
2688
  })()
2655
2689
  }), (() => {
2656
- var _el$7 = _tmpl$$o();
2690
+ var _el$7 = _tmpl$$p();
2657
2691
  _el$7.$$click = async () => {
2658
2692
  await window.vessel.permissions.clearOrigin(origin());
2659
2693
  await loadPermissions();
@@ -2680,6 +2714,7 @@ const MIN_SIDEBAR = 240;
2680
2714
  const MAX_SIDEBAR = 800;
2681
2715
  const [sidebarOpen, setSidebarOpen] = createSignal(true);
2682
2716
  const [sidebarWidth, setSidebarWidth] = createSignal(DEFAULT_SIDEBAR_WIDTH);
2717
+ const [sidebarDetached, setSidebarDetached] = createSignal(false);
2683
2718
  window.vessel?.settings?.get().then((settings) => {
2684
2719
  if (settings?.sidebarWidth && typeof settings.sidebarWidth === "number") {
2685
2720
  setSidebarWidth(
@@ -2694,21 +2729,41 @@ const [settingsOpen, setSettingsOpen] = createSignal(false);
2694
2729
  const [devtoolsPanelOpen, setDevtoolsPanelOpen] = createSignal(false);
2695
2730
  let lastIpcTime = 0;
2696
2731
  const IPC_THROTTLE_MS = 8;
2732
+ let sidebarStateListenerInitialized = false;
2697
2733
  function clampSidebarWidth(width) {
2698
2734
  return Math.max(MIN_SIDEBAR, Math.min(MAX_SIDEBAR, Math.round(width)));
2699
2735
  }
2736
+ function applySidebarState(result) {
2737
+ setSidebarOpen(result.open);
2738
+ setSidebarWidth(result.width);
2739
+ setSidebarDetached(result.detached);
2740
+ }
2741
+ function ensureSidebarStateListener() {
2742
+ if (sidebarStateListenerInitialized) return;
2743
+ sidebarStateListenerInitialized = true;
2744
+ window.vessel?.ui?.onSidebarStateUpdate?.(applySidebarState);
2745
+ }
2700
2746
  function useUI() {
2747
+ ensureSidebarStateListener();
2701
2748
  return {
2702
2749
  sidebarOpen,
2703
2750
  sidebarWidth,
2751
+ sidebarDetached,
2704
2752
  focusMode,
2705
2753
  commandBarOpen,
2706
2754
  settingsOpen,
2707
2755
  devtoolsPanelOpen,
2708
2756
  toggleSidebar: async () => {
2709
2757
  const result = await window.vessel.ui.toggleSidebar();
2710
- setSidebarOpen(result.open);
2711
- setSidebarWidth(result.width);
2758
+ applySidebarState(result);
2759
+ },
2760
+ popOutSidebar: async () => {
2761
+ const result = await window.vessel.ui.popOutSidebar();
2762
+ applySidebarState(result);
2763
+ },
2764
+ dockSidebar: async () => {
2765
+ const result = await window.vessel.ui.dockSidebar();
2766
+ applySidebarState(result);
2712
2767
  },
2713
2768
  resizeSidebar: (width) => {
2714
2769
  const clamped = clampSidebarWidth(width);
@@ -3034,7 +3089,7 @@ const SEARCH_ENGINE_PRESETS = {
3034
3089
  ecosia: { label: "Ecosia", url: "https://www.ecosia.org/search?q=" },
3035
3090
  kagi: { label: "Kagi", url: "https://kagi.com/search?q=" }
3036
3091
  };
3037
- var _tmpl$$n = /* @__PURE__ */ template(`<div class=private-badge title="Private Browsing - history and cookies are not saved"><svg width=12 height=12 viewBox="0 0 16 16"fill=currentColor><path d="M8 1a7 7 0 100 14A7 7 0 008 1zm0 1.5a5.5 5.5 0 110 11 5.5 5.5 0 010-11zM5.5 7a1.5 1.5 0 103 0 1.5 1.5 0 00-3 0zm3.5 3.5c0-1-1.5-2-2.5-2s-2.5 1-2.5 2"></path></svg><span>Private`), _tmpl$2$m = /* @__PURE__ */ template(`<svg width=14 height=14 viewBox="0 0 14 14"fill=currentColor><path d="M7 1a4 4 0 00-4 4v2H1.5a.5.5 0 00-.5.5v5a.5.5 0 00.5.5h11a.5.5 0 00.5-.5v-5a.5.5 0 00-.5-.5H11V5a4 4 0 00-4-4zm0 1a3 3 0 013 3v2H4V5a3 3 0 013-3z">`), _tmpl$3$j = /* @__PURE__ */ template(`<svg width=14 height=14 viewBox="0 0 14 14"fill=currentColor><path d="M7 1a4 4 0 00-4 4v2H1.5a.5.5 0 00-.5.5v5a.5.5 0 00.5.5h11a.5.5 0 00.5-.5v-5a.5.5 0 00-.5-.5H11V5a4 4 0 00-4-4zm0 1a3 3 0 013 3v2H4V5a3 3 0 013-3z"></path><line x1=2 y1=12 x2=12 y2=2 stroke=currentColor stroke-width=1.5>`), _tmpl$4$j = /* @__PURE__ */ template(`<div class=security-indicator-wrapper><button>`), _tmpl$5$g = /* @__PURE__ */ template(`<div id=address-autocomplete class=autocomplete-dropdown role=listbox>`), _tmpl$6$f = /* @__PURE__ */ template(`<div><span class=agent-status-dot aria-hidden=true></span><span class=agent-status-text>`), _tmpl$7$d = /* @__PURE__ */ template(`<button class="agent-status-badge recent"title="Open the What Changed timeline"style=cursor:pointer;font-size:11px><span class=agent-status-dot aria-hidden=true style=background:#f59e0b></span><span class=agent-status-text>What Changed?`), _tmpl$8$9 = /* @__PURE__ */ template(`<span class=page-diff-burst-meta>Updated <!> times over `), _tmpl$9$8 = /* @__PURE__ */ template(`<div class=page-diff-burst-history><div class=page-diff-burst-history-label>Recent detections`), _tmpl$0$6 = /* @__PURE__ */ template(`<div class=page-diff-popup><div class=page-diff-popup-header><div class=page-diff-popup-header-copy><span>Compared with your last visit</span><span class=page-diff-burst-meta>Previous snapshot from </span></div><div style=display:flex;gap:8px;align-items:center><button class=nav-btn title="Open the full What Changed timeline"style="height:24px;min-width:auto;padding:0 8px">Timeline</button><button class=page-diff-popup-close>&times;`), _tmpl$1$6 = /* @__PURE__ */ template(`<svg><path d="M3 3 L11 3 L11 9 Q7 13 3 9 Z"fill=none stroke=currentColor stroke-width=1.2 stroke-linejoin=round></svg>`, false, true, false), _tmpl$10$6 = /* @__PURE__ */ template(`<svg><line x1=2 y1=12 x2=12 y2=2 stroke=currentColor stroke-width=1.4 stroke-linecap=round></svg>`, false, true, false), _tmpl$11$6 = /* @__PURE__ */ template(`<button class=nav-btn data-tooltip="Reader Mode"><svg width=14 height=14 viewBox="0 0 14 14"><rect x=2 y=1 width=10 height=12 rx=1 fill=none stroke=currentColor stroke-width=1.2></rect><line x1=4 y1=4 x2=10 y2=4 stroke=currentColor stroke-width=1></line><line x1=4 y1=6.5 x2=10 y2=6.5 stroke=currentColor stroke-width=1></line><line x1=4 y1=9 x2=8 y2=9 stroke=currentColor stroke-width=1>`), _tmpl$12$6 = /* @__PURE__ */ template(`<button class=nav-btn data-tooltip="Dev Tools"><svg width=14 height=14 viewBox="0 0 14 14"><polyline points="3,5 1,7 3,9"fill=none stroke=currentColor stroke-width=1.2 stroke-linecap=round stroke-linejoin=round></polyline><polyline points="11,5 13,7 11,9"fill=none stroke=currentColor stroke-width=1.2 stroke-linecap=round stroke-linejoin=round></polyline><line x1=8.5 y1=2 x2=5.5 y2=12 stroke=currentColor stroke-width=1.2 stroke-linecap=round>`), _tmpl$13$5 = /* @__PURE__ */ template(`<span class=nav-btn-badge>`), _tmpl$14$5 = /* @__PURE__ */ template(`<button class="nav-btn nav-btn-sidebar"><svg width=14 height=14 viewBox="0 0 14 14"><rect x=1 y=1 width=12 height=12 rx=1.5 fill=none stroke=currentColor stroke-width=1.2></rect><line x1=9 y1=1 x2=9 y2=13 stroke=currentColor stroke-width=1.2>`), _tmpl$15$5 = /* @__PURE__ */ template(`<button class=nav-btn data-tooltip="Clear Data">`), _tmpl$16$4 = /* @__PURE__ */ template(`<button class=nav-btn data-tooltip=Settings><svg width=14 height=14 viewBox="0 0 14 14"><circle cx=7 cy=7 r=2 fill=none stroke=currentColor stroke-width=1.2></circle><path d="M7 1v2M7 11v2M1 7h2M11 7h2M2.8 2.8l1.4 1.4M9.8 9.8l1.4 1.4M11.2 2.8l-1.4 1.4M4.2 9.8l-1.4 1.4"stroke=currentColor stroke-width=1 stroke-linecap=round>`), _tmpl$17$4 = /* @__PURE__ */ template(`<div class=address-bar><div class=nav-controls><button class=nav-btn data-tooltip=Back><svg width=14 height=14 viewBox="0 0 14 14"><path d="M9 2L4 7l5 5"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg></button><button class=nav-btn data-tooltip=Forward><svg width=14 height=14 viewBox="0 0 14 14"><path d="M5 2l5 5-5 5"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg></button><button class=nav-btn data-tooltip=Reload><svg width=14 height=14 viewBox="0 0 14 14"><path d="M2.5 7a4.5 4.5 0 1 1 1 3"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round></path><path d="M2 4v3.5h3.5"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg></button></div><div class=url-shell><form class=url-form><input class=url-input type=text placeholder="Search or enter URL"autocomplete=off aria-autocomplete=list aria-controls=address-autocomplete></form></div><div class=toolbar-actions><button class=nav-btn><svg width=14 height=14 viewBox="0 0 14 14">`), _tmpl$18$4 = /* @__PURE__ */ template(`<svg width=14 height=14 viewBox="0 0 14 14"fill=currentColor><path d="M7 1a4 4 0 00-4 4v2H1.5a.5.5 0 00-.5.5v5a.5.5 0 00.5.5h11a.5.5 0 00.5-.5v-5a.5.5 0 00-.5-.5H11V5a4 4 0 00-4-4zm0 1a3 3 0 013 3v2H4V5a3 3 0 013-3z"></path><circle cx=7 cy=8 r=0.8 fill=white>`), _tmpl$19$4 = /* @__PURE__ */ template(`<div role=option><span class=autocomplete-icon></span><span class=autocomplete-text><span class=autocomplete-title></span><span class=autocomplete-url>`), _tmpl$20$4 = /* @__PURE__ */ template(`<div class=page-diff-burst-row><span class=page-diff-burst-time></span><span class=page-diff-burst-summary>`), _tmpl$21$4 = /* @__PURE__ */ template(`<span class=page-diff-burst-summary-section>`), _tmpl$22$4 = /* @__PURE__ */ template(`<span class=page-diff-burst-summary-part><span>`), _tmpl$23$4 = /* @__PURE__ */ template(`<div class=page-diff-snippet><span class=page-diff-snippet-label>Before</span><span class=page-diff-snippet-text>`), _tmpl$24$4 = /* @__PURE__ */ template(`<div class=page-diff-snippet><span class=page-diff-snippet-label>After</span><span class=page-diff-snippet-text>`), _tmpl$25$3 = /* @__PURE__ */ template(`<div class=page-diff-snippets>`), _tmpl$26$3 = /* @__PURE__ */ template(`<div class=page-diff-list-group><span class=page-diff-list-label>Added</span><ul class=page-diff-list>`), _tmpl$27$3 = /* @__PURE__ */ template(`<div class=page-diff-list-group><span class=page-diff-list-label>Removed</span><ul class=page-diff-list>`), _tmpl$28$3 = /* @__PURE__ */ template(`<div><div class=page-diff-item-header><div class=page-diff-badges><span class=page-diff-kind></span><span class=page-diff-section></span></div><span class=page-diff-summary>`), _tmpl$29$3 = /* @__PURE__ */ template(`<li>`);
3092
+ var _tmpl$$o = /* @__PURE__ */ template(`<div class=private-badge title="Private Browsing - history and cookies are not saved"><svg width=12 height=12 viewBox="0 0 16 16"fill=currentColor><path d="M8 1a7 7 0 100 14A7 7 0 008 1zm0 1.5a5.5 5.5 0 110 11 5.5 5.5 0 010-11zM5.5 7a1.5 1.5 0 103 0 1.5 1.5 0 00-3 0zm3.5 3.5c0-1-1.5-2-2.5-2s-2.5 1-2.5 2"></path></svg><span>Private`), _tmpl$2$n = /* @__PURE__ */ template(`<svg width=14 height=14 viewBox="0 0 14 14"fill=currentColor><path d="M7 1a4 4 0 00-4 4v2H1.5a.5.5 0 00-.5.5v5a.5.5 0 00.5.5h11a.5.5 0 00.5-.5v-5a.5.5 0 00-.5-.5H11V5a4 4 0 00-4-4zm0 1a3 3 0 013 3v2H4V5a3 3 0 013-3z">`), _tmpl$3$j = /* @__PURE__ */ template(`<svg width=14 height=14 viewBox="0 0 14 14"fill=currentColor><path d="M7 1a4 4 0 00-4 4v2H1.5a.5.5 0 00-.5.5v5a.5.5 0 00.5.5h11a.5.5 0 00.5-.5v-5a.5.5 0 00-.5-.5H11V5a4 4 0 00-4-4zm0 1a3 3 0 013 3v2H4V5a3 3 0 013-3z"></path><line x1=2 y1=12 x2=12 y2=2 stroke=currentColor stroke-width=1.5>`), _tmpl$4$j = /* @__PURE__ */ template(`<div class=security-indicator-wrapper><button>`), _tmpl$5$g = /* @__PURE__ */ template(`<div id=address-autocomplete class=autocomplete-dropdown role=listbox>`), _tmpl$6$f = /* @__PURE__ */ template(`<div><span class=agent-status-dot aria-hidden=true></span><span class=agent-status-text>`), _tmpl$7$d = /* @__PURE__ */ template(`<button class="agent-status-badge recent"title="Open the What Changed timeline"style=cursor:pointer;font-size:11px><span class=agent-status-dot aria-hidden=true style=background:#f59e0b></span><span class=agent-status-text>What Changed?`), _tmpl$8$9 = /* @__PURE__ */ template(`<span class=page-diff-burst-meta>Updated <!> times over `), _tmpl$9$8 = /* @__PURE__ */ template(`<div class=page-diff-burst-history><div class=page-diff-burst-history-label>Recent detections`), _tmpl$0$6 = /* @__PURE__ */ template(`<div class=page-diff-popup><div class=page-diff-popup-header><div class=page-diff-popup-header-copy><span>Compared with your last visit</span><span class=page-diff-burst-meta>Previous snapshot from </span></div><div style=display:flex;gap:8px;align-items:center><button class=nav-btn title="Open the full What Changed timeline"style="height:24px;min-width:auto;padding:0 8px">Timeline</button><button class=page-diff-popup-close>&times;`), _tmpl$1$6 = /* @__PURE__ */ template(`<svg><path d="M3 3 L11 3 L11 9 Q7 13 3 9 Z"fill=none stroke=currentColor stroke-width=1.2 stroke-linejoin=round></svg>`, false, true, false), _tmpl$10$6 = /* @__PURE__ */ template(`<svg><line x1=2 y1=12 x2=12 y2=2 stroke=currentColor stroke-width=1.4 stroke-linecap=round></svg>`, false, true, false), _tmpl$11$6 = /* @__PURE__ */ template(`<button class=nav-btn data-tooltip="Reader Mode"><svg width=14 height=14 viewBox="0 0 14 14"><rect x=2 y=1 width=10 height=12 rx=1 fill=none stroke=currentColor stroke-width=1.2></rect><line x1=4 y1=4 x2=10 y2=4 stroke=currentColor stroke-width=1></line><line x1=4 y1=6.5 x2=10 y2=6.5 stroke=currentColor stroke-width=1></line><line x1=4 y1=9 x2=8 y2=9 stroke=currentColor stroke-width=1>`), _tmpl$12$6 = /* @__PURE__ */ template(`<button class=nav-btn data-tooltip="Dev Tools"><svg width=14 height=14 viewBox="0 0 14 14"><polyline points="3,5 1,7 3,9"fill=none stroke=currentColor stroke-width=1.2 stroke-linecap=round stroke-linejoin=round></polyline><polyline points="11,5 13,7 11,9"fill=none stroke=currentColor stroke-width=1.2 stroke-linecap=round stroke-linejoin=round></polyline><line x1=8.5 y1=2 x2=5.5 y2=12 stroke=currentColor stroke-width=1.2 stroke-linecap=round>`), _tmpl$13$5 = /* @__PURE__ */ template(`<span class=nav-btn-badge>`), _tmpl$14$5 = /* @__PURE__ */ template(`<button class="nav-btn nav-btn-sidebar"><svg width=14 height=14 viewBox="0 0 14 14"><rect x=1 y=1 width=12 height=12 rx=1.5 fill=none stroke=currentColor stroke-width=1.2></rect><line x1=9 y1=1 x2=9 y2=13 stroke=currentColor stroke-width=1.2>`), _tmpl$15$5 = /* @__PURE__ */ template(`<button class=nav-btn data-tooltip="Clear Data">`), _tmpl$16$4 = /* @__PURE__ */ template(`<button class=nav-btn data-tooltip=Settings><svg width=14 height=14 viewBox="0 0 14 14"><circle cx=7 cy=7 r=2 fill=none stroke=currentColor stroke-width=1.2></circle><path d="M7 1v2M7 11v2M1 7h2M11 7h2M2.8 2.8l1.4 1.4M9.8 9.8l1.4 1.4M11.2 2.8l-1.4 1.4M4.2 9.8l-1.4 1.4"stroke=currentColor stroke-width=1 stroke-linecap=round>`), _tmpl$17$4 = /* @__PURE__ */ template(`<div class=address-bar><div class=nav-controls><button class=nav-btn data-tooltip=Back><svg width=14 height=14 viewBox="0 0 14 14"><path d="M9 2L4 7l5 5"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg></button><button class=nav-btn data-tooltip=Forward><svg width=14 height=14 viewBox="0 0 14 14"><path d="M5 2l5 5-5 5"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg></button><button class=nav-btn data-tooltip=Reload><svg width=14 height=14 viewBox="0 0 14 14"><path d="M2.5 7a4.5 4.5 0 1 1 1 3"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round></path><path d="M2 4v3.5h3.5"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg></button></div><div class=url-shell><form class=url-form><input class=url-input type=text placeholder="Search or enter URL"autocomplete=off aria-autocomplete=list aria-controls=address-autocomplete></form></div><div class=toolbar-actions><button class=nav-btn><svg width=14 height=14 viewBox="0 0 14 14">`), _tmpl$18$4 = /* @__PURE__ */ template(`<svg width=14 height=14 viewBox="0 0 14 14"fill=currentColor><path d="M7 1a4 4 0 00-4 4v2H1.5a.5.5 0 00-.5.5v5a.5.5 0 00.5.5h11a.5.5 0 00.5-.5v-5a.5.5 0 00-.5-.5H11V5a4 4 0 00-4-4zm0 1a3 3 0 013 3v2H4V5a3 3 0 013-3z"></path><circle cx=7 cy=8 r=0.8 fill=white>`), _tmpl$19$4 = /* @__PURE__ */ template(`<div role=option><span class=autocomplete-icon></span><span class=autocomplete-text><span class=autocomplete-title></span><span class=autocomplete-url>`), _tmpl$20$4 = /* @__PURE__ */ template(`<div class=page-diff-burst-row><span class=page-diff-burst-time></span><span class=page-diff-burst-summary>`), _tmpl$21$4 = /* @__PURE__ */ template(`<span class=page-diff-burst-summary-section>`), _tmpl$22$4 = /* @__PURE__ */ template(`<span class=page-diff-burst-summary-part><span>`), _tmpl$23$4 = /* @__PURE__ */ template(`<div class=page-diff-snippet><span class=page-diff-snippet-label>Before</span><span class=page-diff-snippet-text>`), _tmpl$24$4 = /* @__PURE__ */ template(`<div class=page-diff-snippet><span class=page-diff-snippet-label>After</span><span class=page-diff-snippet-text>`), _tmpl$25$3 = /* @__PURE__ */ template(`<div class=page-diff-snippets>`), _tmpl$26$3 = /* @__PURE__ */ template(`<div class=page-diff-list-group><span class=page-diff-list-label>Added</span><ul class=page-diff-list>`), _tmpl$27$3 = /* @__PURE__ */ template(`<div class=page-diff-list-group><span class=page-diff-list-label>Removed</span><ul class=page-diff-list>`), _tmpl$28$3 = /* @__PURE__ */ template(`<div><div class=page-diff-item-header><div class=page-diff-badges><span class=page-diff-kind></span><span class=page-diff-section></span></div><span class=page-diff-summary>`), _tmpl$29$3 = /* @__PURE__ */ template(`<li>`);
3038
3093
  const AddressBar = (props) => {
3039
3094
  const {
3040
3095
  activeTab,
@@ -3337,7 +3392,7 @@ const AddressBar = (props) => {
3337
3392
  insert(_el$, createComponent(Show, {
3338
3393
  when: isPrivateWindow,
3339
3394
  get children() {
3340
- return _tmpl$$n();
3395
+ return _tmpl$$o();
3341
3396
  }
3342
3397
  }), _el$11);
3343
3398
  insert(_el$, createComponent(Show, {
@@ -3361,7 +3416,7 @@ const AddressBar = (props) => {
3361
3416
  return securityState()?.status === "secure";
3362
3417
  },
3363
3418
  get children() {
3364
- var _el$9 = _tmpl$2$m();
3419
+ var _el$9 = _tmpl$2$n();
3365
3420
  _el$9.firstChild;
3366
3421
  return _el$9;
3367
3422
  }
@@ -3751,7 +3806,7 @@ const AddressBar = (props) => {
3751
3806
  })();
3752
3807
  };
3753
3808
  delegateEvents(["click", "input", "keydown", "mousedown"]);
3754
- var _tmpl$$m = /* @__PURE__ */ template(`<div class=bookmark-toast-stack aria-live=polite aria-atomic=true>`), _tmpl$2$l = /* @__PURE__ */ template(`<div class=bookmark-toast role=status><div class=bookmark-toast-header><div class=bookmark-toast-title></div><button type=button class=bookmark-toast-close aria-label="Dismiss notification">×</button></div><div class=bookmark-toast-message>`);
3809
+ var _tmpl$$n = /* @__PURE__ */ template(`<div class=bookmark-toast-stack aria-live=polite aria-atomic=true>`), _tmpl$2$m = /* @__PURE__ */ template(`<div class=bookmark-toast role=status><div class=bookmark-toast-header><div class=bookmark-toast-title></div><button type=button class=bookmark-toast-close aria-label="Dismiss notification">×</button></div><div class=bookmark-toast-message>`);
3755
3810
  const TOAST_DURATION_MS$1 = 4200;
3756
3811
  const TOAST_EXIT_MS$2 = 300;
3757
3812
  function isBookmarkToastCandidate(action) {
@@ -3811,13 +3866,13 @@ const BookmarkNotifications = () => {
3811
3866
  timeoutIds.clear();
3812
3867
  });
3813
3868
  return (() => {
3814
- var _el$ = _tmpl$$m();
3869
+ var _el$ = _tmpl$$n();
3815
3870
  insert(_el$, createComponent(For, {
3816
3871
  get each() {
3817
3872
  return toasts();
3818
3873
  },
3819
3874
  children: (toast) => (() => {
3820
- var _el$2 = _tmpl$2$l(), _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$6 = _el$3.nextSibling;
3875
+ var _el$2 = _tmpl$2$m(), _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$6 = _el$3.nextSibling;
3821
3876
  insert(_el$4, () => toast.title);
3822
3877
  _el$5.$$click = () => dismissToast(toast.id);
3823
3878
  insert(_el$6, () => toast.message);
@@ -3829,7 +3884,7 @@ const BookmarkNotifications = () => {
3829
3884
  })();
3830
3885
  };
3831
3886
  delegateEvents(["click"]);
3832
- var _tmpl$$l = /* @__PURE__ */ template(`<div class=bookmark-toast-stack aria-live=polite><div class="bookmark-toast highlight-toast"role=status><div class=bookmark-toast-header><div class=bookmark-toast-title></div><button type=button class=bookmark-toast-close aria-label="Dismiss notification">×</button></div><div class=bookmark-toast-message>`);
3887
+ var _tmpl$$m = /* @__PURE__ */ template(`<div class=bookmark-toast-stack aria-live=polite><div class="bookmark-toast highlight-toast"role=status><div class=bookmark-toast-header><div class=bookmark-toast-title></div><button type=button class=bookmark-toast-close aria-label="Dismiss notification">×</button></div><div class=bookmark-toast-message>`);
3833
3888
  const TOAST_DURATION_MS = 3e3;
3834
3889
  const TOAST_EXIT_MS$1 = 300;
3835
3890
  const HighlightNotifications = (props) => {
@@ -3868,7 +3923,7 @@ const HighlightNotifications = (props) => {
3868
3923
  return memo(() => !!visible())() && current();
3869
3924
  },
3870
3925
  get children() {
3871
- var _el$ = _tmpl$$l(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$6 = _el$3.nextSibling;
3926
+ var _el$ = _tmpl$$m(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$6 = _el$3.nextSibling;
3872
3927
  insert(_el$4, () => current().title);
3873
3928
  _el$5.$$click = dismiss;
3874
3929
  insert(_el$6, () => current().message);
@@ -3878,7 +3933,7 @@ const HighlightNotifications = (props) => {
3878
3933
  });
3879
3934
  };
3880
3935
  delegateEvents(["click"]);
3881
- var _tmpl$$k = /* @__PURE__ */ template(`<div class=download-toast-stack aria-live=polite>`), _tmpl$2$k = /* @__PURE__ */ template(`<span class=download-toast-done>&#10003;`), _tmpl$3$i = /* @__PURE__ */ template(`<span class=download-toast-failed>!`), _tmpl$4$i = /* @__PURE__ */ template(`<div class=download-toast-bar-track><div class=download-toast-bar-fill>`), _tmpl$5$f = /* @__PURE__ */ template(`<div class=download-toast-size>`), _tmpl$6$e = /* @__PURE__ */ template(`<div class="download-toast-size download-toast-size-done"> downloaded`), _tmpl$7$c = /* @__PURE__ */ template(`<div class=download-toast role=status><div class=download-toast-header><span class=download-toast-filename>`);
3936
+ var _tmpl$$l = /* @__PURE__ */ template(`<div class=download-toast-stack aria-live=polite>`), _tmpl$2$l = /* @__PURE__ */ template(`<span class=download-toast-done>&#10003;`), _tmpl$3$i = /* @__PURE__ */ template(`<span class=download-toast-failed>!`), _tmpl$4$i = /* @__PURE__ */ template(`<div class=download-toast-bar-track><div class=download-toast-bar-fill>`), _tmpl$5$f = /* @__PURE__ */ template(`<div class=download-toast-size>`), _tmpl$6$e = /* @__PURE__ */ template(`<div class="download-toast-size download-toast-size-done"> downloaded`), _tmpl$7$c = /* @__PURE__ */ template(`<div class=download-toast role=status><div class=download-toast-header><span class=download-toast-filename>`);
3882
3937
  const TOAST_DONE_DURATION_MS = 4200;
3883
3938
  const TOAST_EXIT_MS = 300;
3884
3939
  function formatBytes$1(bytes) {
@@ -3969,7 +4024,7 @@ const DownloadToast = () => {
3969
4024
  return Math.min(100, Math.round(d.receivedBytes / d.totalBytes * 100));
3970
4025
  };
3971
4026
  return (() => {
3972
- var _el$ = _tmpl$$k();
4027
+ var _el$ = _tmpl$$l();
3973
4028
  insert(_el$, createComponent(For, {
3974
4029
  get each() {
3975
4030
  return downloads();
@@ -3982,7 +4037,7 @@ const DownloadToast = () => {
3982
4037
  return dl.state === "completed";
3983
4038
  },
3984
4039
  get children() {
3985
- return _tmpl$2$k();
4040
+ return _tmpl$2$l();
3986
4041
  }
3987
4042
  }), null);
3988
4043
  insert(_el$3, createComponent(Show, {
@@ -4034,7 +4089,7 @@ const DownloadToast = () => {
4034
4089
  return _el$;
4035
4090
  })();
4036
4091
  };
4037
- var _tmpl$$j = /* @__PURE__ */ template(`<div class=modal-backdrop><div class=downloads-panel><div class=downloads-panel-header><div><h2>Downloads</h2><p>Recent files saved by Vessel</p></div><div class=downloads-panel-actions><button>Clear</button><button>Close</button></div></div><div class=downloads-panel-list>`), _tmpl$2$j = /* @__PURE__ */ template(`<div class=downloads-empty>No downloads yet.`), _tmpl$3$h = /* @__PURE__ */ template(`<div class=downloads-row><div class=downloads-file><strong></strong><span></span><small> · </small></div><div class=downloads-row-actions><button>Open</button><button>Show in folder`), _tmpl$4$h = /* @__PURE__ */ template(`<span>Source: `);
4092
+ var _tmpl$$k = /* @__PURE__ */ template(`<div class=modal-backdrop><div class=downloads-panel><div class=downloads-panel-header><div><h2>Downloads</h2><p>Recent files saved by Vessel</p></div><div class=downloads-panel-actions><button>Clear</button><button>Close</button></div></div><div class=downloads-panel-list>`), _tmpl$2$k = /* @__PURE__ */ template(`<div class=downloads-empty>No downloads yet.`), _tmpl$3$h = /* @__PURE__ */ template(`<div class=downloads-row><div class=downloads-file><strong></strong><span></span><small> · </small></div><div class=downloads-row-actions><button>Open</button><button>Show in folder`), _tmpl$4$h = /* @__PURE__ */ template(`<span>Source: `);
4038
4093
  const formatBytes = (bytes) => {
4039
4094
  if (!bytes) return "0 B";
4040
4095
  const units = ["B", "KB", "MB", "GB"];
@@ -4059,7 +4114,7 @@ const DownloadsPanel = (props) => {
4059
4114
  return props.open;
4060
4115
  },
4061
4116
  get children() {
4062
- var _el$ = _tmpl$$j(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling, _el$8 = _el$3.nextSibling;
4117
+ var _el$ = _tmpl$$k(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling, _el$8 = _el$3.nextSibling;
4063
4118
  addEventListener(_el$, "click", props.onClose, true);
4064
4119
  _el$2.$$click = (e) => e.stopPropagation();
4065
4120
  _el$6.$$click = async () => {
@@ -4072,7 +4127,7 @@ const DownloadsPanel = (props) => {
4072
4127
  return items();
4073
4128
  },
4074
4129
  get fallback() {
4075
- return _tmpl$2$j();
4130
+ return _tmpl$2$k();
4076
4131
  },
4077
4132
  children: (item) => (() => {
4078
4133
  var _el$0 = _tmpl$3$h(), _el$1 = _el$0.firstChild, _el$10 = _el$1.firstChild, _el$11 = _el$10.nextSibling, _el$12 = _el$11.nextSibling, _el$13 = _el$12.firstChild, _el$14 = _el$1.nextSibling, _el$15 = _el$14.firstChild, _el$16 = _el$15.nextSibling;
@@ -4106,7 +4161,7 @@ const DownloadsPanel = (props) => {
4106
4161
  });
4107
4162
  };
4108
4163
  delegateEvents(["click"]);
4109
- var _tmpl$$i = /* @__PURE__ */ template(`<div class=find-bar><input class=find-bar-input type=text placeholder="Find in page..."><button class=find-bar-btn title="Previous (Shift+Enter)">&#9650;</button><button class=find-bar-btn title="Next (Enter)">&#9660;</button><button class="find-bar-btn find-bar-close"title="Close (Escape)">&times;`), _tmpl$2$i = /* @__PURE__ */ template(`<span class=find-bar-count>`);
4164
+ var _tmpl$$j = /* @__PURE__ */ template(`<div class=find-bar><input class=find-bar-input type=text placeholder="Find in page..."><button class=find-bar-btn title="Previous (Shift+Enter)">&#9650;</button><button class=find-bar-btn title="Next (Enter)">&#9660;</button><button class="find-bar-btn find-bar-close"title="Close (Escape)">&times;`), _tmpl$2$j = /* @__PURE__ */ template(`<span class=find-bar-count>`);
4110
4165
  const FindBar = () => {
4111
4166
  const [open, setOpen] = createSignal(false);
4112
4167
  const [query, setQuery] = createSignal("");
@@ -4184,7 +4239,7 @@ const FindBar = () => {
4184
4239
  return open();
4185
4240
  },
4186
4241
  get children() {
4187
- var _el$ = _tmpl$$i(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.nextSibling, _el$5 = _el$4.nextSibling;
4242
+ var _el$ = _tmpl$$j(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.nextSibling, _el$5 = _el$4.nextSibling;
4188
4243
  _el$2.$$input = (e) => handleInput(e.currentTarget.value);
4189
4244
  var _ref$ = inputRef;
4190
4245
  typeof _ref$ === "function" ? use(_ref$, _el$2) : inputRef = _el$2;
@@ -4194,7 +4249,7 @@ const FindBar = () => {
4194
4249
  return result();
4195
4250
  },
4196
4251
  children: (r) => (() => {
4197
- var _el$6 = _tmpl$2$i();
4252
+ var _el$6 = _tmpl$2$j();
4198
4253
  insert(_el$6, (() => {
4199
4254
  var _c$ = memo(() => r().matches > 0);
4200
4255
  return () => _c$() ? `${r().activeMatchOrdinal} / ${r().matches}` : "No results";
@@ -4211,7 +4266,7 @@ const FindBar = () => {
4211
4266
  });
4212
4267
  };
4213
4268
  delegateEvents(["input", "click"]);
4214
- var _tmpl$$h = /* @__PURE__ */ template(`<div class=flow-progress>`), _tmpl$2$h = /* @__PURE__ */ template(`<div class=flow-progress-hint>Last: `), _tmpl$3$g = /* @__PURE__ */ template(`<div class=flow-progress-hint>Next: `), _tmpl$4$g = /* @__PURE__ */ template(`<div class=flow-progress-section><div class=flow-progress-header><span class=flow-progress-goal></span><span class=flow-progress-pct>%</span></div><div class=flow-progress-bar-track><div class=flow-progress-bar-fill></div></div><div class=flow-steps>`), _tmpl$5$e = /* @__PURE__ */ template(`<div><span class=flow-step-dot></span><span class=flow-step-label>`);
4269
+ var _tmpl$$i = /* @__PURE__ */ template(`<div class=flow-progress>`), _tmpl$2$i = /* @__PURE__ */ template(`<div class=flow-progress-hint>Last: `), _tmpl$3$g = /* @__PURE__ */ template(`<div class=flow-progress-hint>Next: `), _tmpl$4$g = /* @__PURE__ */ template(`<div class=flow-progress-section><div class=flow-progress-header><span class=flow-progress-goal></span><span class=flow-progress-pct>%</span></div><div class=flow-progress-bar-track><div class=flow-progress-bar-fill></div></div><div class=flow-steps>`), _tmpl$5$e = /* @__PURE__ */ template(`<div><span class=flow-step-dot></span><span class=flow-step-label>`);
4215
4270
  const FlowProgress = () => {
4216
4271
  const {
4217
4272
  runtimeState: runtimeState2
@@ -4242,7 +4297,7 @@ const FlowProgress = () => {
4242
4297
  return flow() || tracker();
4243
4298
  },
4244
4299
  get children() {
4245
- var _el$ = _tmpl$$h();
4300
+ var _el$ = _tmpl$$i();
4246
4301
  insert(_el$, createComponent(Show, {
4247
4302
  get when() {
4248
4303
  return tracker();
@@ -4267,7 +4322,7 @@ const FlowProgress = () => {
4267
4322
  return t().lastAction;
4268
4323
  },
4269
4324
  get children() {
4270
- var _el$0 = _tmpl$2$h();
4325
+ var _el$0 = _tmpl$2$i();
4271
4326
  _el$0.firstChild;
4272
4327
  insert(_el$0, () => t().lastAction, null);
4273
4328
  return _el$0;
@@ -4342,7 +4397,7 @@ function formatTime(iso, options) {
4342
4397
  ...options?.includeSeconds && { second: "2-digit" }
4343
4398
  });
4344
4399
  }
4345
- var _tmpl$$g = /* @__PURE__ */ template(`<div class=agent-summary-hud>`), _tmpl$2$g = /* @__PURE__ */ template(`<span class=agent-transcript-live><span class=agent-transcript-live-dot aria-hidden=true></span>Live`), _tmpl$3$f = /* @__PURE__ */ template(`<div class=agent-transcript-list>`), _tmpl$4$f = /* @__PURE__ */ template(`<aside class=agent-transcript-dock><div class=agent-transcript-header><div class=agent-transcript-title-row><span class=agent-transcript-title>Agent Transcript</span></div><div class=agent-transcript-actions><button class=agent-transcript-icon></button><button class=agent-transcript-icon data-tooltip=Hide>×`), _tmpl$5$d = /* @__PURE__ */ template(`<span class=agent-summary-live-dot aria-hidden=true>`), _tmpl$6$d = /* @__PURE__ */ template(`<span class=agent-summary-text>: `), _tmpl$7$b = /* @__PURE__ */ template(`<article><div class=agent-transcript-meta><span class=agent-transcript-badge></span><span class=agent-transcript-time></span></div><div class=agent-transcript-text>`);
4400
+ var _tmpl$$h = /* @__PURE__ */ template(`<div class=agent-summary-hud>`), _tmpl$2$h = /* @__PURE__ */ template(`<span class=agent-transcript-live><span class=agent-transcript-live-dot aria-hidden=true></span>Live`), _tmpl$3$f = /* @__PURE__ */ template(`<div class=agent-transcript-list>`), _tmpl$4$f = /* @__PURE__ */ template(`<aside class=agent-transcript-dock><div class=agent-transcript-header><div class=agent-transcript-title-row><span class=agent-transcript-title>Agent Transcript</span></div><div class=agent-transcript-actions><button class=agent-transcript-icon></button><button class=agent-transcript-icon data-tooltip=Hide>×`), _tmpl$5$d = /* @__PURE__ */ template(`<span class=agent-summary-live-dot aria-hidden=true>`), _tmpl$6$d = /* @__PURE__ */ template(`<span class=agent-summary-text>: `), _tmpl$7$b = /* @__PURE__ */ template(`<article><div class=agent-transcript-meta><span class=agent-transcript-badge></span><span class=agent-transcript-time></span></div><div class=agent-transcript-text>`);
4346
4401
  const AgentTranscriptDock = () => {
4347
4402
  const {
4348
4403
  runtimeState: runtimeState2
@@ -4379,7 +4434,7 @@ const AgentTranscriptDock = () => {
4379
4434
  return isSummary();
4380
4435
  },
4381
4436
  get children() {
4382
- var _el$ = _tmpl$$g();
4437
+ var _el$ = _tmpl$$h();
4383
4438
  insert(_el$, createComponent(Show, {
4384
4439
  get when() {
4385
4440
  return latestEntry();
@@ -4416,7 +4471,7 @@ const AgentTranscriptDock = () => {
4416
4471
  return hasStreamingEntry();
4417
4472
  },
4418
4473
  get children() {
4419
- return _tmpl$2$g();
4474
+ return _tmpl$2$h();
4420
4475
  }
4421
4476
  }), null);
4422
4477
  _el$8.$$click = () => setCollapsed((value) => !value);
@@ -4963,7 +5018,7 @@ function useProviderAuthSetup(options = {}) {
4963
5018
  startOpenRouterAuth
4964
5019
  };
4965
5020
  }
4966
- var _tmpl$$f = /* @__PURE__ */ template(`<p class=command-bar-no-provider-error>`), _tmpl$2$f = /* @__PURE__ */ template(`<div class=command-bar-no-provider><p>Start with OpenRouter's free model router, or open Settings for more providers.</p><button class=command-bar-no-provider-btn></button><button class=command-bar-no-provider-link>More options`), _tmpl$3$e = /* @__PURE__ */ template(`<div class=command-bar-recent><span class=command-bar-recent-label>Recent</span><div class=command-bar-recent-list>`), _tmpl$4$e = /* @__PURE__ */ template(`<span>Try "summarize" or ask a question`), _tmpl$5$c = /* @__PURE__ */ template(`<div class=command-bar-overlay><div class=command-bar><form><div class=command-bar-icon><svg width=16 height=16 viewBox="0 0 16 16"><circle cx=8 cy=8 r=6 fill=none stroke=var(--accent-primary) stroke-width=1.5></circle><circle cx=6 cy=7 r=0.8 fill=var(--accent-primary)></circle><circle cx=10 cy=7 r=0.8 fill=var(--accent-primary)></circle><path d="M6 10c0.5 0.8 3.5 0.8 4 0"fill=none stroke=var(--accent-primary) stroke-width=0.8 stroke-linecap=round></path></svg></div><input class=command-bar-input type=text></form><div class=command-bar-hints><span><kbd>Enter</kbd> to ask</span><span><kbd>Esc</kbd> to close`), _tmpl$6$c = /* @__PURE__ */ template(`<button class=command-bar-recent-item type=button>`), _tmpl$7$a = /* @__PURE__ */ template(`<span>Set up a provider in Settings first`);
5021
+ var _tmpl$$g = /* @__PURE__ */ template(`<p class=command-bar-no-provider-error>`), _tmpl$2$g = /* @__PURE__ */ template(`<div class=command-bar-no-provider><p>Start with OpenRouter's free model router, or open Settings for more providers.</p><button class=command-bar-no-provider-btn></button><button class=command-bar-no-provider-link>More options`), _tmpl$3$e = /* @__PURE__ */ template(`<div class=command-bar-recent><span class=command-bar-recent-label>Recent</span><div class=command-bar-recent-list>`), _tmpl$4$e = /* @__PURE__ */ template(`<span>Try "summarize" or ask a question`), _tmpl$5$c = /* @__PURE__ */ template(`<div class=command-bar-overlay><div class=command-bar><form><div class=command-bar-icon><svg width=16 height=16 viewBox="0 0 16 16"><circle cx=8 cy=8 r=6 fill=none stroke=var(--accent-primary) stroke-width=1.5></circle><circle cx=6 cy=7 r=0.8 fill=var(--accent-primary)></circle><circle cx=10 cy=7 r=0.8 fill=var(--accent-primary)></circle><path d="M6 10c0.5 0.8 3.5 0.8 4 0"fill=none stroke=var(--accent-primary) stroke-width=0.8 stroke-linecap=round></path></svg></div><input class=command-bar-input type=text></form><div class=command-bar-hints><span><kbd>Enter</kbd> to ask</span><span><kbd>Esc</kbd> to close`), _tmpl$6$c = /* @__PURE__ */ template(`<button class=command-bar-recent-item type=button>`), _tmpl$7$a = /* @__PURE__ */ template(`<span>Set up a provider in Settings first`);
4967
5022
  const COMMAND_BAR_EXIT_MS = 200;
4968
5023
  const CommandBar = () => {
4969
5024
  const {
@@ -5042,7 +5097,7 @@ const CommandBar = () => {
5042
5097
  return !hasProvider();
5043
5098
  },
5044
5099
  get children() {
5045
- var _el$6 = _tmpl$2$f(), _el$7 = _el$6.firstChild, _el$8 = _el$7.nextSibling, _el$9 = _el$8.nextSibling;
5100
+ var _el$6 = _tmpl$2$g(), _el$7 = _el$6.firstChild, _el$8 = _el$7.nextSibling, _el$9 = _el$8.nextSibling;
5046
5101
  _el$8.$$click = () => void providerAuth.startOpenRouterAuth();
5047
5102
  insert(_el$8, createComponent(Show, {
5048
5103
  get when() {
@@ -5060,7 +5115,7 @@ const CommandBar = () => {
5060
5115
  return providerAuth.openRouterAuthStatus() === "error";
5061
5116
  },
5062
5117
  get children() {
5063
- var _el$0 = _tmpl$$f();
5118
+ var _el$0 = _tmpl$$g();
5064
5119
  insert(_el$0, () => providerAuth.openRouterAuthError());
5065
5120
  return _el$0;
5066
5121
  }
@@ -6824,7 +6879,7 @@ function getBookmarkSearchMatch(args) {
6824
6879
  }
6825
6880
  return { matchedFields, score };
6826
6881
  }
6827
- var _tmpl$$e = /* @__PURE__ */ template(`<div class=dropdown-select-menu role=listbox>`), _tmpl$2$e = /* @__PURE__ */ template(`<div><button class=dropdown-select-trigger type=button aria-haspopup=listbox><span class=dropdown-select-value></span><span class=dropdown-select-caret aria-hidden=true>▾`), _tmpl$3$d = /* @__PURE__ */ template(`<span class=dropdown-select-option-description>`), _tmpl$4$d = /* @__PURE__ */ template(`<button class=dropdown-select-option type=button role=option><span class=dropdown-select-option-copy><span class=dropdown-select-option-label>`);
6882
+ var _tmpl$$f = /* @__PURE__ */ template(`<div class=dropdown-select-menu role=listbox>`), _tmpl$2$f = /* @__PURE__ */ template(`<div><button class=dropdown-select-trigger type=button aria-haspopup=listbox><span class=dropdown-select-value></span><span class=dropdown-select-caret aria-hidden=true>▾`), _tmpl$3$d = /* @__PURE__ */ template(`<span class=dropdown-select-option-description>`), _tmpl$4$d = /* @__PURE__ */ template(`<button class=dropdown-select-option type=button role=option><span class=dropdown-select-option-copy><span class=dropdown-select-option-label>`);
6828
6883
  const DropdownSelect = (props) => {
6829
6884
  const [open, setOpen] = createSignal(false);
6830
6885
  let rootRef;
@@ -6848,7 +6903,7 @@ const DropdownSelect = (props) => {
6848
6903
  });
6849
6904
  });
6850
6905
  return (() => {
6851
- var _el$ = _tmpl$2$e(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling;
6906
+ var _el$ = _tmpl$2$f(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling;
6852
6907
  var _ref$ = rootRef;
6853
6908
  typeof _ref$ === "function" ? use(_ref$, _el$) : rootRef = _el$;
6854
6909
  _el$2.$$click = () => setOpen((current) => !current);
@@ -6858,7 +6913,7 @@ const DropdownSelect = (props) => {
6858
6913
  return open();
6859
6914
  },
6860
6915
  get children() {
6861
- var _el$5 = _tmpl$$e();
6916
+ var _el$5 = _tmpl$$f();
6862
6917
  insert(_el$5, createComponent(For, {
6863
6918
  get each() {
6864
6919
  return props.options;
@@ -7061,7 +7116,7 @@ function renderKitPrompt(kit, values) {
7061
7116
  (_, key) => values[key] ?? ""
7062
7117
  );
7063
7118
  }
7064
- var _tmpl$$d = /* @__PURE__ */ template(`<div class=kit-upsell><div class=kit-upsell-icon aria-hidden=true></div><p class=kit-upsell-title>Vessel Premium</p><p class=kit-upsell-body>Automation Kits are a premium feature. Upgrade to unlock pre-built workflows you can launch with one click.</p><button class="agent-primary-button kit-upsell-btn"type=button>Start 7-day free trial — $5.99/mo after`), _tmpl$2$d = /* @__PURE__ */ template(`<div class=kit-list-header><span class=agent-panel-title>Automation Kits <span class=kit-beta-tag>Beta</span></span><div class=kit-list-header-actions><span class=kit-list-count> kits</span><button class=kit-install-btn type=button title="Install a kit from a .kit.json file">+ Install`), _tmpl$3$c = /* @__PURE__ */ template(`<div class=kit-install-error><span></span><button class=kit-install-error-dismiss type=button aria-label=Dismiss>×`), _tmpl$4$c = /* @__PURE__ */ template(`<div class=kit-list>`), _tmpl$5$b = /* @__PURE__ */ template(`<div class=kit-sched-section><span>Scheduled</span><span class=kit-list-count>`), _tmpl$6$b = /* @__PURE__ */ template(`<div class=kit-sched-list>`), _tmpl$7$9 = /* @__PURE__ */ template(`<div class=kit-sched-section><span>Recent Activity</span><span class=kit-list-count>`), _tmpl$8$8 = /* @__PURE__ */ template(`<div class=kit-activity-list>`), _tmpl$9$7 = /* @__PURE__ */ template(`<div class=kit-form-header><button class=kit-back-btn type=button title="Back to kits"><svg width=14 height=14 viewBox="0 0 14 14"fill=none aria-hidden=true><path d="M9 11L5 7l4-4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg>Back</button><div class=kit-form-title>`), _tmpl$0$5 = /* @__PURE__ */ template(`<p class=kit-form-desc>`), _tmpl$1$5 = /* @__PURE__ */ template(`<div class=kit-form-fields>`), _tmpl$10$5 = /* @__PURE__ */ template(`<p class=kit-form-estimate>Estimated run time: ~<!> min`), _tmpl$11$5 = /* @__PURE__ */ template(`<button class="agent-primary-button kit-run-btn"type=button>`), _tmpl$12$5 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label class=kit-form-label>Date &amp; time</label><input class=kit-form-input type=datetime-local>`), _tmpl$13$4 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label class=kit-form-label>Time of day</label><input class="kit-form-input kit-schedule-time"type=time>`), _tmpl$14$4 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label class=kit-form-label>Day</label><select class=kit-form-input>`), _tmpl$15$4 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label class=kit-form-label>Time</label><input class="kit-form-input kit-schedule-time"type=time>`), _tmpl$16$3 = /* @__PURE__ */ template(`<p class=kit-schedule-error>`), _tmpl$17$3 = /* @__PURE__ */ template(`<div class=kit-schedule-form><div class=kit-schedule-types></div><p class=kit-schedule-note>Schedules run only while Vessel is open. Missed runs are skipped.</p><button class="agent-primary-button kit-schedule-btn"type=button>`), _tmpl$18$3 = /* @__PURE__ */ template(`<div class=kit-schedule-section><label class=kit-schedule-toggle><input type=checkbox>Schedule for later`), _tmpl$19$3 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Run at</label><input type=datetime-local class="kit-form-input kit-schedule-time">`), _tmpl$20$3 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Day</label><select class="kit-form-input kit-schedule-time">`), _tmpl$21$3 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Time</label><input type=time class="kit-form-input kit-schedule-time">`), _tmpl$22$3 = /* @__PURE__ */ template(`<div class=sched-edit-backdrop><div class=sched-edit-panel><div class=sched-edit-header><span class=sched-edit-title>Edit schedule</span><span class=sched-edit-job-name></span></div><div class=kit-schedule-types></div><div class=sched-edit-actions><button class=kit-back-btn type=button>Cancel</button><button class=agent-primary-button type=button>Save`), _tmpl$23$3 = /* @__PURE__ */ template(`<section class=automation-panel>`), _tmpl$24$3 = /* @__PURE__ */ template(`<div class=kit-card-meta>~<!> min`), _tmpl$25$2 = /* @__PURE__ */ template(`<button class=kit-remove-btn type=button>×`), _tmpl$26$2 = /* @__PURE__ */ template(`<div class=kit-card role=button tabindex=0><span class=kit-card-icon aria-hidden=true></span><div class=kit-card-body><div class=kit-card-name></div><div class=kit-card-desc>`), _tmpl$27$2 = /* @__PURE__ */ template(`<svg class=kit-card-caret width=14 height=14 viewBox="0 0 14 14"fill=none aria-hidden=true><path d="M5 3l4 4-4 4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round>`), _tmpl$28$2 = /* @__PURE__ */ template(`<div class=kit-sched-next>Next: `), _tmpl$29$2 = /* @__PURE__ */ template(`<div class=sched-context-menu><button class=sched-ctx-item type=button>Edit task</button><button class=sched-ctx-item type=button>Edit schedule</button><div class=sched-ctx-divider></div><button class=sched-ctx-item type=button></button><button class="sched-ctx-item sched-ctx-danger"type=button>Delete`), _tmpl$30$1 = /* @__PURE__ */ template(`<div class=kit-sched-card><span class="kit-card-icon kit-sched-icon"aria-hidden=true></span><div class=kit-sched-body><div class=kit-sched-name></div><div class=kit-sched-meta></div></div><div class=kit-sched-actions><button class=kit-sched-toggle type=button></button><button class=kit-remove-btn type=button title="Delete schedule"aria-label="Delete schedule">×`), _tmpl$31$1 = /* @__PURE__ */ template(`<div class=kit-activity-output>`), _tmpl$32$1 = /* @__PURE__ */ template(`<div class=kit-activity-card><div class=kit-activity-header><div class=kit-activity-title><span class="kit-card-icon kit-sched-icon"aria-hidden=true></span><div class=kit-activity-title-copy><div class=kit-sched-name></div><div class=kit-activity-time></div></div></div><span class=kit-activity-badge>`), _tmpl$33$1 = /* @__PURE__ */ template(`<div class="kit-activity-output kit-activity-placeholder">`), _tmpl$34$1 = /* @__PURE__ */ template(`<span class=kit-form-required aria-hidden=true>*`), _tmpl$35$1 = /* @__PURE__ */ template(`<textarea class=kit-form-textarea rows=3>`), _tmpl$36$1 = /* @__PURE__ */ template(`<p class=kit-form-hint>`), _tmpl$37$1 = /* @__PURE__ */ template(`<div class=kit-form-field><label class=kit-form-label>`), _tmpl$38$1 = /* @__PURE__ */ template(`<input class=kit-form-input>`), _tmpl$39$1 = /* @__PURE__ */ template(`<span class=kit-run-spinner aria-hidden=true>`), _tmpl$40$1 = /* @__PURE__ */ template(`<label class=kit-schedule-type-option><input type=radio name=sched-type>`), _tmpl$41$1 = /* @__PURE__ */ template(`<option>`), _tmpl$42$1 = /* @__PURE__ */ template(`<label class=kit-schedule-type-option><input type=radio name=edit-sched-type>`);
7119
+ var _tmpl$$e = /* @__PURE__ */ template(`<div class=kit-upsell><div class=kit-upsell-icon aria-hidden=true></div><p class=kit-upsell-title>Vessel Premium</p><p class=kit-upsell-body>Automation Kits are a premium feature. Upgrade to unlock pre-built workflows you can launch with one click.</p><button class="agent-primary-button kit-upsell-btn"type=button>Start 7-day free trial — $5.99/mo after`), _tmpl$2$e = /* @__PURE__ */ template(`<div class=kit-list-header><span class=agent-panel-title>Automation Kits <span class=kit-beta-tag>Beta</span></span><div class=kit-list-header-actions><span class=kit-list-count> kits</span><button class=kit-install-btn type=button title="Install a kit from a .kit.json file">+ Install`), _tmpl$3$c = /* @__PURE__ */ template(`<div class=kit-install-error><span></span><button class=kit-install-error-dismiss type=button aria-label=Dismiss>×`), _tmpl$4$c = /* @__PURE__ */ template(`<div class=kit-list>`), _tmpl$5$b = /* @__PURE__ */ template(`<div class=kit-sched-section><span>Scheduled</span><span class=kit-list-count>`), _tmpl$6$b = /* @__PURE__ */ template(`<div class=kit-sched-list>`), _tmpl$7$9 = /* @__PURE__ */ template(`<div class=kit-sched-section><span>Recent Activity</span><span class=kit-list-count>`), _tmpl$8$8 = /* @__PURE__ */ template(`<div class=kit-activity-list>`), _tmpl$9$7 = /* @__PURE__ */ template(`<div class=kit-form-header><button class=kit-back-btn type=button title="Back to kits"><svg width=14 height=14 viewBox="0 0 14 14"fill=none aria-hidden=true><path d="M9 11L5 7l4-4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg>Back</button><div class=kit-form-title>`), _tmpl$0$5 = /* @__PURE__ */ template(`<p class=kit-form-desc>`), _tmpl$1$5 = /* @__PURE__ */ template(`<div class=kit-form-fields>`), _tmpl$10$5 = /* @__PURE__ */ template(`<p class=kit-form-estimate>Estimated run time: ~<!> min`), _tmpl$11$5 = /* @__PURE__ */ template(`<button class="agent-primary-button kit-run-btn"type=button>`), _tmpl$12$5 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label class=kit-form-label>Date &amp; time</label><input class=kit-form-input type=datetime-local>`), _tmpl$13$4 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label class=kit-form-label>Time of day</label><input class="kit-form-input kit-schedule-time"type=time>`), _tmpl$14$4 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label class=kit-form-label>Day</label><select class=kit-form-input>`), _tmpl$15$4 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label class=kit-form-label>Time</label><input class="kit-form-input kit-schedule-time"type=time>`), _tmpl$16$3 = /* @__PURE__ */ template(`<p class=kit-schedule-error>`), _tmpl$17$3 = /* @__PURE__ */ template(`<div class=kit-schedule-form><div class=kit-schedule-types></div><p class=kit-schedule-note>Schedules run only while Vessel is open. Missed runs are skipped.</p><button class="agent-primary-button kit-schedule-btn"type=button>`), _tmpl$18$3 = /* @__PURE__ */ template(`<div class=kit-schedule-section><label class=kit-schedule-toggle><input type=checkbox>Schedule for later`), _tmpl$19$3 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Run at</label><input type=datetime-local class="kit-form-input kit-schedule-time">`), _tmpl$20$3 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Day</label><select class="kit-form-input kit-schedule-time">`), _tmpl$21$3 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Time</label><input type=time class="kit-form-input kit-schedule-time">`), _tmpl$22$3 = /* @__PURE__ */ template(`<div class=sched-edit-backdrop><div class=sched-edit-panel><div class=sched-edit-header><span class=sched-edit-title>Edit schedule</span><span class=sched-edit-job-name></span></div><div class=kit-schedule-types></div><div class=sched-edit-actions><button class=kit-back-btn type=button>Cancel</button><button class=agent-primary-button type=button>Save`), _tmpl$23$3 = /* @__PURE__ */ template(`<section class=automation-panel>`), _tmpl$24$3 = /* @__PURE__ */ template(`<div class=kit-card-meta>~<!> min`), _tmpl$25$2 = /* @__PURE__ */ template(`<button class=kit-remove-btn type=button>×`), _tmpl$26$2 = /* @__PURE__ */ template(`<div class=kit-card role=button tabindex=0><span class=kit-card-icon aria-hidden=true></span><div class=kit-card-body><div class=kit-card-name></div><div class=kit-card-desc>`), _tmpl$27$2 = /* @__PURE__ */ template(`<svg class=kit-card-caret width=14 height=14 viewBox="0 0 14 14"fill=none aria-hidden=true><path d="M5 3l4 4-4 4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round>`), _tmpl$28$2 = /* @__PURE__ */ template(`<div class=kit-sched-next>Next: `), _tmpl$29$2 = /* @__PURE__ */ template(`<div class=sched-context-menu><button class=sched-ctx-item type=button>Edit task</button><button class=sched-ctx-item type=button>Edit schedule</button><div class=sched-ctx-divider></div><button class=sched-ctx-item type=button></button><button class="sched-ctx-item sched-ctx-danger"type=button>Delete`), _tmpl$30$1 = /* @__PURE__ */ template(`<div class=kit-sched-card><span class="kit-card-icon kit-sched-icon"aria-hidden=true></span><div class=kit-sched-body><div class=kit-sched-name></div><div class=kit-sched-meta></div></div><div class=kit-sched-actions><button class=kit-sched-toggle type=button></button><button class=kit-remove-btn type=button title="Delete schedule"aria-label="Delete schedule">×`), _tmpl$31$1 = /* @__PURE__ */ template(`<div class=kit-activity-output>`), _tmpl$32$1 = /* @__PURE__ */ template(`<div class=kit-activity-card><div class=kit-activity-header><div class=kit-activity-title><span class="kit-card-icon kit-sched-icon"aria-hidden=true></span><div class=kit-activity-title-copy><div class=kit-sched-name></div><div class=kit-activity-time></div></div></div><span class=kit-activity-badge>`), _tmpl$33$1 = /* @__PURE__ */ template(`<div class="kit-activity-output kit-activity-placeholder">`), _tmpl$34$1 = /* @__PURE__ */ template(`<span class=kit-form-required aria-hidden=true>*`), _tmpl$35$1 = /* @__PURE__ */ template(`<textarea class=kit-form-textarea rows=3>`), _tmpl$36$1 = /* @__PURE__ */ template(`<p class=kit-form-hint>`), _tmpl$37$1 = /* @__PURE__ */ template(`<div class=kit-form-field><label class=kit-form-label>`), _tmpl$38$1 = /* @__PURE__ */ template(`<input class=kit-form-input>`), _tmpl$39$1 = /* @__PURE__ */ template(`<span class=kit-run-spinner aria-hidden=true>`), _tmpl$40$1 = /* @__PURE__ */ template(`<label class=kit-schedule-type-option><input type=radio name=sched-type>`), _tmpl$41$1 = /* @__PURE__ */ template(`<option>`), _tmpl$42$1 = /* @__PURE__ */ template(`<label class=kit-schedule-type-option><input type=radio name=edit-sched-type>`);
7065
7120
  const ICON_MAP = {
7066
7121
  BookOpen: book_open_default,
7067
7122
  Tag: tag_default,
@@ -7386,7 +7441,7 @@ const AutomationTab = (props) => {
7386
7441
  return memo(() => !!!premiumData.loading)() && !isPremium();
7387
7442
  },
7388
7443
  get children() {
7389
- var _el$2 = _tmpl$$d(), _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.nextSibling, _el$6 = _el$5.nextSibling;
7444
+ var _el$2 = _tmpl$$e(), _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.nextSibling, _el$6 = _el$5.nextSibling;
7390
7445
  insert(_el$3, createComponent(zap_default, {
7391
7446
  size: 24
7392
7447
  }));
@@ -7400,7 +7455,7 @@ const AutomationTab = (props) => {
7400
7455
  },
7401
7456
  get children() {
7402
7457
  return [(() => {
7403
- var _el$7 = _tmpl$2$d(), _el$8 = _el$7.firstChild, _el$9 = _el$8.nextSibling, _el$0 = _el$9.firstChild, _el$1 = _el$0.firstChild, _el$10 = _el$0.nextSibling;
7458
+ var _el$7 = _tmpl$2$e(), _el$8 = _el$7.firstChild, _el$9 = _el$8.nextSibling, _el$0 = _el$9.firstChild, _el$1 = _el$0.firstChild, _el$10 = _el$0.nextSibling;
7404
7459
  insert(_el$0, () => allKits().length, _el$1);
7405
7460
  _el$10.$$click = () => void handleInstall();
7406
7461
  return _el$7;
@@ -7977,17 +8032,17 @@ function useResearch() {
7977
8032
  }
7978
8033
  };
7979
8034
  }
7980
- var _tmpl$$c = /* @__PURE__ */ template(`<div class=markdown-content>`), _tmpl$2$c = /* @__PURE__ */ template(`<div>`), _tmpl$3$b = /* @__PURE__ */ template(`<div class=research-premium-notice><span class=premium-badge>Premium</span> Brief is free; full research and export require Vessel Premium.`), _tmpl$4$b = /* @__PURE__ */ template(`<div class=research-brief-status>`), _tmpl$5$a = /* @__PURE__ */ template(`<div class=research-idle><h3>Research Desk</h3><p>Start with a topic. Vessel will shape it into a focused brief, draft a research plan, and then send sub-agents after the strongest sources.</p><form class=research-topic-form><textarea class=research-topic-input rows=3 placeholder="What should we research?"></textarea><button class=research-start-btn type=submit>Start Briefing`), _tmpl$6$a = /* @__PURE__ */ template(`<div class=research-brief-loading role=status aria-live=polite><span class=research-spinner aria-hidden=true></span><div><div class=research-loading-title>Brief started</div><div class=research-loading-copy>Preparing the first briefing question...`), _tmpl$7$8 = /* @__PURE__ */ template(`<div class="research-brief-status thinking"role=status aria-live=polite><span class=research-spinner aria-hidden=true></span><span>Thinking...`), _tmpl$8$7 = /* @__PURE__ */ template(`<div class=research-brief-status> queued`), _tmpl$9$6 = /* @__PURE__ */ template(`<div class=research-phase><h3>Briefing</h3><p>Work through the brief here. Once the assistant has enough context, turn it into a research plan.</p><div class=research-brief-thread></div><form class=research-brief-form><textarea class=research-brief-input rows=2></textarea><button type=submit></button></form><div class=phase-controls><button>Build Research Plan</button><button class=secondary>Cancel`), _tmpl$0$4 = /* @__PURE__ */ template(`<div class=research-phase><h3>Planning Research</h3><p>Creating Research Objectives based on your brief...`), _tmpl$1$4 = /* @__PURE__ */ template(`<div class=research-phase><h3>Research Objectives`), _tmpl$10$4 = /* @__PURE__ */ template(`<div class=research-thread-progress-list>`), _tmpl$11$4 = /* @__PURE__ */ template(`<button>Switch to Walk-Away`), _tmpl$12$4 = /* @__PURE__ */ template(`<button>Switch to Interactive`), _tmpl$13$3 = /* @__PURE__ */ template(`<div class=research-phase><h3>Researching</h3><div class=research-active-card role=status aria-live=polite><span class="research-spinner research-active-spinner"aria-hidden=true></span><div class=research-active-copy><div class=research-active-title>Agents are working</div><p> of <!> threads complete</p></div></div><div class=phase-controls><button class=secondary>Stop Research</button><button>Stop Research &amp; Synthesize Current Findings`), _tmpl$14$3 = /* @__PURE__ */ template(`<div class=research-phase><h3>Synthesizing Report</h3><p>Compiling findings into the Research Report...`), _tmpl$15$3 = /* @__PURE__ */ template(`<div class=research-phase><h3>Report Ready`), _tmpl$16$2 = /* @__PURE__ */ template(`<div class=research-desk>`), _tmpl$17$2 = /* @__PURE__ */ template(`<div class="research-quick-replies inline"aria-label="Suggested briefing responses">`), _tmpl$18$2 = /* @__PURE__ */ template(`<button type=button class=research-quick-reply>`), _tmpl$19$2 = /* @__PURE__ */ template(`<div class=objectives-card><section class=objectives-section><p class=objectives-label>Question</p><p class=objectives-question></p></section><section class=objectives-section><div class=objectives-section-header><p class=objectives-label>Research Threads</p><span></span></div><ul class=objectives-thread-list></ul></section><section class="objectives-section objectives-settings"><label class=mode-toggle><input type=checkbox><span>Walk-away mode (notified when done)</span></label><label class=traces-toggle><input type=checkbox><span>Include agent traces with report</span></label></section><div class=phase-controls><button>Start Research</button><button class=secondary>Cancel`), _tmpl$20$2 = /* @__PURE__ */ template(`<li><span></span><small> sources`), _tmpl$21$2 = /* @__PURE__ */ template(`<section class=objectives-section><p class=objectives-label>Excluded Sources</p><div class=objectives-source-list>`), _tmpl$22$2 = /* @__PURE__ */ template(`<span>`), _tmpl$23$2 = /* @__PURE__ */ template(`<div><span></span><small>`), _tmpl$24$2 = /* @__PURE__ */ template(`<div class=report-card><h4></h4><p>...</p><p> sources cited</p><button>Export as Markdown</button><button class=secondary>New Research`);
8035
+ var _tmpl$$d = /* @__PURE__ */ template(`<div class=markdown-content>`), _tmpl$2$d = /* @__PURE__ */ template(`<div>`), _tmpl$3$b = /* @__PURE__ */ template(`<div class=research-premium-notice><span class=premium-badge>Premium</span> Brief is free; full research and export require Vessel Premium.`), _tmpl$4$b = /* @__PURE__ */ template(`<div class=research-brief-status>`), _tmpl$5$a = /* @__PURE__ */ template(`<div class=research-idle><h3>Research Desk</h3><p>Start with a topic. Vessel will shape it into a focused brief, draft a research plan, and then send sub-agents after the strongest sources.</p><form class=research-topic-form><textarea class=research-topic-input rows=3 placeholder="What should we research?"></textarea><button class=research-start-btn type=submit>Start Briefing`), _tmpl$6$a = /* @__PURE__ */ template(`<div class=research-brief-loading role=status aria-live=polite><span class=research-spinner aria-hidden=true></span><div><div class=research-loading-title>Brief started</div><div class=research-loading-copy>Preparing the first briefing question...`), _tmpl$7$8 = /* @__PURE__ */ template(`<div class="research-brief-status thinking"role=status aria-live=polite><span class=research-spinner aria-hidden=true></span><span>Thinking...`), _tmpl$8$7 = /* @__PURE__ */ template(`<div class=research-brief-status> queued`), _tmpl$9$6 = /* @__PURE__ */ template(`<div class=research-phase><h3>Briefing</h3><p>Work through the brief here. Once the assistant has enough context, turn it into a research plan.</p><div class=research-brief-thread></div><form class=research-brief-form><textarea class=research-brief-input rows=2></textarea><button type=submit></button></form><div class=phase-controls><button>Build Research Plan</button><button class=secondary>Cancel`), _tmpl$0$4 = /* @__PURE__ */ template(`<div class=research-phase><h3>Planning Research</h3><p>Creating Research Objectives based on your brief...`), _tmpl$1$4 = /* @__PURE__ */ template(`<div class=research-phase><h3>Research Objectives`), _tmpl$10$4 = /* @__PURE__ */ template(`<div class=research-thread-progress-list>`), _tmpl$11$4 = /* @__PURE__ */ template(`<button>Switch to Walk-Away`), _tmpl$12$4 = /* @__PURE__ */ template(`<button>Switch to Interactive`), _tmpl$13$3 = /* @__PURE__ */ template(`<div class=research-phase><h3>Researching</h3><div class=research-active-card role=status aria-live=polite><span class="research-spinner research-active-spinner"aria-hidden=true></span><div class=research-active-copy><div class=research-active-title>Agents are working</div><p> of <!> threads complete</p></div></div><div class=phase-controls><button class=secondary>Stop Research</button><button>Stop Research &amp; Synthesize Current Findings`), _tmpl$14$3 = /* @__PURE__ */ template(`<div class=research-phase><h3>Synthesizing Report</h3><p>Compiling findings into the Research Report...`), _tmpl$15$3 = /* @__PURE__ */ template(`<div class=research-phase><h3>Report Ready`), _tmpl$16$2 = /* @__PURE__ */ template(`<div class=research-desk>`), _tmpl$17$2 = /* @__PURE__ */ template(`<div class="research-quick-replies inline"aria-label="Suggested briefing responses">`), _tmpl$18$2 = /* @__PURE__ */ template(`<button type=button class=research-quick-reply>`), _tmpl$19$2 = /* @__PURE__ */ template(`<div class=objectives-card><section class=objectives-section><p class=objectives-label>Question</p><p class=objectives-question></p></section><section class=objectives-section><div class=objectives-section-header><p class=objectives-label>Research Threads</p><span></span></div><ul class=objectives-thread-list></ul></section><section class="objectives-section objectives-settings"><label class=mode-toggle><input type=checkbox><span>Walk-away mode (notified when done)</span></label><label class=traces-toggle><input type=checkbox><span>Include agent traces with report</span></label></section><div class=phase-controls><button>Start Research</button><button class=secondary>Cancel`), _tmpl$20$2 = /* @__PURE__ */ template(`<li><span></span><small> sources`), _tmpl$21$2 = /* @__PURE__ */ template(`<section class=objectives-section><p class=objectives-label>Excluded Sources</p><div class=objectives-source-list>`), _tmpl$22$2 = /* @__PURE__ */ template(`<span>`), _tmpl$23$2 = /* @__PURE__ */ template(`<div><span></span><small>`), _tmpl$24$2 = /* @__PURE__ */ template(`<div class=report-card><h4></h4><p>...</p><p> sources cited</p><button>Export as Markdown</button><button class=secondary>New Research`);
7981
8036
  const ResearchBriefMarkdown = (props) => {
7982
8037
  const html2 = createMemo(() => renderMarkdown(props.content));
7983
8038
  return (() => {
7984
- var _el$ = _tmpl$$c();
8039
+ var _el$ = _tmpl$$d();
7985
8040
  createRenderEffect(() => _el$.innerHTML = html2());
7986
8041
  return _el$;
7987
8042
  })();
7988
8043
  };
7989
8044
  const ResearchBriefMessage = (props) => (() => {
7990
- var _el$2 = _tmpl$2$c();
8045
+ var _el$2 = _tmpl$2$d();
7991
8046
  insert(_el$2, createComponent(Show, {
7992
8047
  get when() {
7993
8048
  return props.role === "assistant";
@@ -8632,7 +8687,7 @@ const ResearchDesk = () => {
8632
8687
  })();
8633
8688
  };
8634
8689
  delegateEvents(["input", "keydown", "click"]);
8635
- var _tmpl$$b = /* @__PURE__ */ template(`<div class=agent-muted>Loading...`), _tmpl$2$b = /* @__PURE__ */ template(`<div class=agent-muted>`), _tmpl$3$a = /* @__PURE__ */ template(`<div class=agent-muted>No changes detected yet.`), _tmpl$4$a = /* @__PURE__ */ template(`<div class=page-diff-timeline-header><div class=agent-section-title>Change history for this page</div><div class=agent-muted>Newest detections are first. Each entry is a saved change burst.`), _tmpl$5$9 = /* @__PURE__ */ template(`<div class=page-diff-history-list>`), _tmpl$6$9 = /* @__PURE__ */ template(`<div class=page-diff-timeline>`), _tmpl$7$7 = /* @__PURE__ */ template(`<div class=page-diff-history-item><div class=page-diff-history-time><span class=page-diff-history-label></span><span></span></div><div class=page-diff-history-card><div class=page-diff-history-summary-list></div><div class=page-diff-history-position>Entry <!> of `), _tmpl$8$6 = /* @__PURE__ */ template(`<span class=page-diff-history-summary-section>`), _tmpl$9$5 = /* @__PURE__ */ template(`<div class=page-diff-history-summary-row><span class=page-diff-history-summary>`);
8690
+ var _tmpl$$c = /* @__PURE__ */ template(`<div class=agent-muted>Loading...`), _tmpl$2$c = /* @__PURE__ */ template(`<div class=agent-muted>`), _tmpl$3$a = /* @__PURE__ */ template(`<div class=agent-muted>No changes detected yet.`), _tmpl$4$a = /* @__PURE__ */ template(`<div class=page-diff-timeline-header><div class=agent-section-title>Change history for this page</div><div class=agent-muted>Newest detections are first. Each entry is a saved change burst.`), _tmpl$5$9 = /* @__PURE__ */ template(`<div class=page-diff-history-list>`), _tmpl$6$9 = /* @__PURE__ */ template(`<div class=page-diff-timeline>`), _tmpl$7$7 = /* @__PURE__ */ template(`<div class=page-diff-history-item><div class=page-diff-history-time><span class=page-diff-history-label></span><span></span></div><div class=page-diff-history-card><div class=page-diff-history-summary-list></div><div class=page-diff-history-position>Entry <!> of `), _tmpl$8$6 = /* @__PURE__ */ template(`<span class=page-diff-history-summary-section>`), _tmpl$9$5 = /* @__PURE__ */ template(`<div class=page-diff-history-summary-row><span class=page-diff-history-summary>`);
8636
8691
  const PageDiffTimeline = () => {
8637
8692
  const {
8638
8693
  activeTab
@@ -8690,7 +8745,7 @@ const PageDiffTimeline = () => {
8690
8745
  return loading();
8691
8746
  },
8692
8747
  get children() {
8693
- return _tmpl$$b();
8748
+ return _tmpl$$c();
8694
8749
  }
8695
8750
  }), null);
8696
8751
  insert(_el$, createComponent(Show, {
@@ -8698,7 +8753,7 @@ const PageDiffTimeline = () => {
8698
8753
  return memo(() => !!!loading())() && error();
8699
8754
  },
8700
8755
  get children() {
8701
- var _el$3 = _tmpl$2$b();
8756
+ var _el$3 = _tmpl$2$c();
8702
8757
  insert(_el$3, error);
8703
8758
  return _el$3;
8704
8759
  }
@@ -8762,8 +8817,58 @@ const PageDiffTimeline = () => {
8762
8817
  return _el$;
8763
8818
  })();
8764
8819
  };
8820
+ var _tmpl$$b = /* @__PURE__ */ template(`<button class=sidebar-close>`), _tmpl$2$b = /* @__PURE__ */ template(`<button class=sidebar-close title="Close AI chat (Esc)"aria-label="Close AI chat">`);
8821
+ const SidebarWindowControls = (props) => {
8822
+ const togglePlacement = () => props.detached() ? props.dock() : props.popOut();
8823
+ const placementLabel = () => props.detached() ? "Dock agent panel" : "Pop out agent panel";
8824
+ return [(() => {
8825
+ var _el$ = _tmpl$$b();
8826
+ _el$.$$click = () => void togglePlacement();
8827
+ insert(_el$, createComponent(Show, {
8828
+ get when() {
8829
+ return props.detached();
8830
+ },
8831
+ get fallback() {
8832
+ return createComponent(external_link_default, {
8833
+ size: 14,
8834
+ "aria-hidden": "true"
8835
+ });
8836
+ },
8837
+ get children() {
8838
+ return createComponent(panel_right_close_default, {
8839
+ size: 14,
8840
+ "aria-hidden": "true"
8841
+ });
8842
+ }
8843
+ }));
8844
+ createRenderEffect((_p$) => {
8845
+ var _v$ = placementLabel(), _v$2 = placementLabel();
8846
+ _v$ !== _p$.e && setAttribute(_el$, "title", _p$.e = _v$);
8847
+ _v$2 !== _p$.t && setAttribute(_el$, "aria-label", _p$.t = _v$2);
8848
+ return _p$;
8849
+ }, {
8850
+ e: void 0,
8851
+ t: void 0
8852
+ });
8853
+ return _el$;
8854
+ })(), createComponent(Show, {
8855
+ get when() {
8856
+ return !props.detached();
8857
+ },
8858
+ get children() {
8859
+ var _el$2 = _tmpl$2$b();
8860
+ _el$2.$$click = () => void props.close();
8861
+ insert(_el$2, createComponent(x_default, {
8862
+ size: 14,
8863
+ "aria-hidden": "true"
8864
+ }));
8865
+ return _el$2;
8866
+ }
8867
+ })];
8868
+ };
8869
+ delegateEvents(["click"]);
8765
8870
  const vesselLogo = "" + new URL("vessel-logo-transparent-IT25qr-Z.png", import.meta.url).href;
8766
- var _tmpl$$a = /* @__PURE__ */ template(`<div class="message-content markdown-content">`), _tmpl$2$a = /* @__PURE__ */ template(`<div class=premium-inline-offer><div class=premium-inline-kicker>Vessel Premium</div><div class=premium-inline-title></div><p class=premium-inline-copy></p><div class=premium-inline-actions><button class="agent-primary-button premium-inline-primary"type=button>Start 7-day free trial — $5.99/mo after</button><button class="agent-control-button premium-inline-secondary"type=button>View details`), _tmpl$3$9 = /* @__PURE__ */ template(`<span class=sidebar-tab-badge>`), _tmpl$4$9 = /* @__PURE__ */ template(`<button class=agent-primary-button type=button>Undo last action`), _tmpl$5$8 = /* @__PURE__ */ template(`<div class=agent-section-title>Pending approvals`), _tmpl$6$8 = /* @__PURE__ */ template(`<button class=agent-section-toggle type=button>`), _tmpl$7$6 = /* @__PURE__ */ template(`<section class=agent-panel><div class=agent-panel-header><div><div class=agent-panel-title>Supervisor</div><div class=agent-panel-subtitle></div></div><span class=agent-status-pill></span></div><div class=agent-panel-controls><button class=agent-control-button type=button></button><button class=agent-control-button type=button>Restore session</button></div><div class=agent-muted></div><div class=agent-section-header><div class=agent-section-title>Recent actions`), _tmpl$8$5 = /* @__PURE__ */ template(`<span class=bookmark-status-pill>Saved`), _tmpl$9$4 = /* @__PURE__ */ template(`<div class=bookmark-export-message>`), _tmpl$0$3 = /* @__PURE__ */ template(`<div class=bookmark-save-body><div class=bookmark-export-actions><button class=bookmark-secondary-button type=button>Import HTML</button><button class=bookmark-secondary-button type=button>Import JSON`), _tmpl$1$3 = /* @__PURE__ */ template(`<div class=bookmark-save-card><div class=bookmark-current-title></div><div class=bookmark-current-url></div><div class=bookmark-save-controls><button class=bookmark-primary-button type=button>Save page</button></div><textarea class=bookmark-note-input placeholder="Optional note about why this matters"rows=2></textarea><textarea class=bookmark-note-input placeholder="Intent: what is this page for?"rows=1></textarea><textarea class=bookmark-note-input placeholder="Expected content: what should be here?"rows=1></textarea><input class=bookmark-input placeholder="Key fields (comma-separated)"><textarea class=bookmark-note-input placeholder="Agent hints (one key:value per line)"rows=2>`), _tmpl$10$3 = /* @__PURE__ */ template(`<section class=bookmark-panel><div class=bookmark-panel-header><div><div class=bookmark-panel-title>Bookmarks</div><div class=bookmark-panel-subtitle></div></div></div><input class="bookmark-input bookmark-search-input"placeholder="Search titles, URLs, notes, and folders"><div class=bookmark-export-card><div><div class=bookmark-panel-title>Export</div><div class=bookmark-panel-subtitle>Save browser-ready HTML or a full Vessel archive</div></div><div class=bookmark-export-actions><button class=bookmark-secondary-button type=button>Browser HTML</button><button class=bookmark-secondary-button type=button>HTML + notes</button><button class=bookmark-secondary-button type=button>Vessel JSON</button></div></div><div class=bookmark-import-shell><button class=bookmark-save-toggle type=button><span class=bookmark-save-toggle-copy><span class=bookmark-save-toggle-title>Import Bookmarks</span><span class=bookmark-save-toggle-subtitle>Import from HTML or Vessel JSON</span></span><span class=bookmark-save-toggle-caret aria-hidden=true>▾</span></button></div><div class=bookmark-save-shell><button class=bookmark-save-toggle type=button><span class=bookmark-save-toggle-copy><span class=bookmark-save-toggle-title>Save Current Page</span><span class=bookmark-save-toggle-subtitle>Manual bookmark save options</span></span><span class=bookmark-save-toggle-caret aria-hidden=true>▾</span></button></div><form class=bookmark-folder-create><div class=bookmark-folder-form-fields><input class=bookmark-input placeholder="Create a folder"><input class=bookmark-input placeholder="Optional one-line summary"></div><button class=bookmark-secondary-button type=submit>New folder</button></form><div class=bookmark-folder-list>`), _tmpl$11$3 = /* @__PURE__ */ template(`<div class=checkpoint-timeline>`), _tmpl$12$3 = /* @__PURE__ */ template(`<section class="agent-panel checkpoint-panel"><div class=agent-panel-header><div><div class=agent-panel-title>Checkpoints</div><div class=agent-panel-subtitle></div></div></div><div class=agent-panel-body><div class=agent-checkpoint-row><input class=agent-input placeholder="Checkpoint name"><textarea class=agent-textarea rows=2 placeholder="Optional note for this checkpoint"></textarea><button class=agent-primary-button type=button>Save checkpoint</button></div><div class=agent-section-title>Recent checkpoints`), _tmpl$13$2 = /* @__PURE__ */ template(`<button class=history-entry><span class=history-entry-title>Load more history</span><span class=history-entry-url>Showing <!> of `), _tmpl$14$2 = /* @__PURE__ */ template(`<p class=history-empty>No browsing history yet.`), _tmpl$15$2 = /* @__PURE__ */ template(`<div class=history-panel><div class=history-panel-header><span class=history-panel-title>Browsing History</span><div class=history-panel-actions><button class=history-clear-btn>Clear</button><button class=history-clear-btn>Export HTML</button><button class=history-clear-btn>Export JSON</button><button class=history-clear-btn>Import</button></div></div><div class=history-list>`), _tmpl$16$1 = /* @__PURE__ */ template(`<section class=agent-panel><div class=agent-panel-header><div class=agent-panel-title>What Changed</div><div class=agent-panel-subtitle>`), _tmpl$17$1 = /* @__PURE__ */ template(`<div class="kit-upsell premium-chat-banner"><p class=kit-upsell-title>Vessel Premium</p><p class="kit-upsell-body premium-chat-banner-body">Give the built-in agent a bigger toolbox and longer runway: screenshots, saved sessions, workflow tracking, table extraction, and up to 1,000 tool calls per turn.</p><div class="premium-inline-actions premium-chat-banner-actions"><button class="agent-primary-button premium-inline-primary"type=button>Start 7-day free trial — $5.99/mo after</button><button class="agent-control-button premium-inline-secondary"type=button>See Premium`), _tmpl$18$1 = /* @__PURE__ */ template(`<span>`), _tmpl$19$1 = /* @__PURE__ */ template(`<div><div class=streaming-status><span class=streaming-pulse aria-hidden=true></span><span>Generating`), _tmpl$20$1 = /* @__PURE__ */ template(`<div class="message message-assistant"><div class=message-content>`), _tmpl$21$1 = /* @__PURE__ */ template(`<div class=sidebar-empty><svg class=sidebar-empty-icon width=48 height=48 viewBox="0 0 48 48"aria-hidden=true><line x1=8 y1=8 x2=24 y2=5 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=24 y1=5 x2=40 y2=10 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=8 y1=8 x2=6 y2=24 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=40 y1=10 x2=44 y2=26 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=6 y1=24 x2=10 y2=38 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=44 y1=26 x2=38 y2=40 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=10 y1=38 x2=24 y2=44 stroke=var(--border-visible) stroke-width=1 opacity=0.35></line><line x1=38 y1=40 x2=24 y2=44 stroke=var(--border-visible) stroke-width=1 opacity=0.35></line><line x1=8 y1=8 x2=20 y2=18 stroke=var(--border-visible) stroke-width=1 opacity=0.5></line><line x1=24 y1=5 x2=20 y2=18 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=40 y1=10 x2=32 y2=20 stroke=var(--border-visible) stroke-width=1 opacity=0.5></line><line x1=20 y1=18 x2=32 y2=20 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.3></line><line x1=6 y1=24 x2=18 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=20 y1=18 x2=18 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=32 y1=20 x2=36 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=44 y1=26 x2=36 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=18 y1=30 x2=36 y2=30 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.25></line><line x1=18 y1=30 x2=10 y2=38 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=36 y1=30 x2=38 y2=40 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=18 y1=30 x2=24 y2=44 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.2></line><line x1=36 y1=30 x2=24 y2=44 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.2></line><circle cx=8 cy=8 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.55></circle><circle cx=24 cy=5 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.45></circle><circle cx=40 cy=10 r=3 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.7></circle><circle cx=6 cy=24 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=44 cy=26 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.55></circle><circle cx=10 cy=38 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=38 cy=40 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.45></circle><circle cx=24 cy=44 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=20 cy=18 r=3.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.85></circle><circle cx=32 cy=20 r=4 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.9></circle><circle cx=18 cy=30 r=3 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.75></circle><circle cx=36 cy=30 r=3.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.8></circle></svg><p class=sidebar-empty-title>Your move.</p><p class=sidebar-empty-hint>Configure a provider in Settings (Ctrl+,) then ask anything about the current page or beyond.`), _tmpl$22$1 = /* @__PURE__ */ template(`<button class=chat-action-btn title="Stop generating"><svg width=14 height=14 viewBox="0 0 14 14"fill=none aria-hidden=true><rect x=2 y=2 width=10 height=10 rx=1.5 fill=currentColor></rect></svg>Stop`), _tmpl$23$1 = /* @__PURE__ */ template(`<button class=chat-action-btn title="Retry last prompt"><svg width=14 height=14 viewBox="0 0 14 14"fill=none aria-hidden=true><path d="M11.5 7a4.5 4.5 0 1 1-1.3-3.2"stroke=currentColor stroke-width=1.5 stroke-linecap=round></path><path d="M10.5 1v3h-3"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg>Retry`), _tmpl$24$1 = /* @__PURE__ */ template(`<div class=chat-actions>`), _tmpl$25$1 = /* @__PURE__ */ template(`<div class=highlight-nav><button class=highlight-nav-btn type=button title="Previous highlight"><svg width=12 height=12 viewBox="0 0 12 12"fill=none aria-hidden=true><path d="M8 10L4 6l4-4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg></button><button class=highlight-nav-label type=button title="Go to current highlight"><svg width=12 height=12 viewBox="0 0 12 12"fill=none aria-hidden=true><circle cx=6 cy=6 r=3 fill="rgba(196, 160, 90, 0.6)"stroke="rgba(196, 160, 90, 0.9)"stroke-width=1></circle></svg></button><button class=highlight-nav-btn type=button title="Next highlight"><svg width=12 height=12 viewBox="0 0 12 12"fill=none aria-hidden=true><path d="M4 2l4 4-4 4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round>`), _tmpl$26$1 = /* @__PURE__ */ template(`<button class=chat-queue-clear type=button>Clear queue`), _tmpl$27$1 = /* @__PURE__ */ template(`<div class=chat-queue-list>`), _tmpl$28$1 = /* @__PURE__ */ template(`<div class=chat-queue-status><div class=chat-queue-status-row><span>`), _tmpl$29$1 = /* @__PURE__ */ template(`<div class=sidebar-input-area><textarea class=sidebar-input rows=2></textarea><button class=sidebar-send>`), _tmpl$30 = /* @__PURE__ */ template(`<div class=sidebar><div class=sidebar-resize-handle></div><div class=sidebar-header><div class=sidebar-brand><img class=sidebar-logo alt=Vessel><span class=sidebar-brand-text>Vessel Browser</span></div><div class=sidebar-header-actions><button class=sidebar-clear title="Clear chat">Clear</button><button class=sidebar-close title="Close AI chat (Esc)"aria-label="Close AI chat"><svg width=14 height=14 viewBox="0 0 14 14"aria-hidden=true><path d="M3.5 3.5l7 7M10.5 3.5l-7 7"fill=none stroke=currentColor stroke-width=1.4 stroke-linecap=round></path></svg></button></div></div><div class=sidebar-tabs role=tablist><button class=sidebar-tab role=tab>Supervisor</button><button class=sidebar-tab role=tab>Bookmarks</button><button class=sidebar-tab role=tab>Checkpoints</button><button class=sidebar-tab role=tab>Chat</button><button class=sidebar-tab role=tab>Automate</button><button class=sidebar-tab role=tab>History</button><button class=sidebar-tab role=tab>Changes</button><button class=sidebar-tab role=tab>Research<span class=sidebar-tab-beta>Beta</span></button></div><div class=sidebar-messages><div>`), _tmpl$31 = /* @__PURE__ */ template(`<div class=agent-muted>No pending approvals.`), _tmpl$32 = /* @__PURE__ */ template(`<div class="agent-card agent-card-approval"><div class=agent-card-approval-stripe aria-hidden=true></div><div class=agent-card-title></div><div class=agent-card-copy></div><div class=agent-card-copy></div><div class=agent-card-actions><button class=agent-primary-button type=button>Approve</button><button class=agent-control-button type=button>Reject`), _tmpl$33 = /* @__PURE__ */ template(`<div class=agent-muted>No actions yet.`), _tmpl$34 = /* @__PURE__ */ template(`<div class=agent-muted>Recent actions are collapsed to reduce noise.`), _tmpl$35 = /* @__PURE__ */ template(`<div class="agent-card-copy success">`), _tmpl$36 = /* @__PURE__ */ template(`<div class="agent-card-copy error">`), _tmpl$37 = /* @__PURE__ */ template(`<div class=agent-card><div class=agent-action-row><span class=agent-card-title></span><span></span></div><div class=agent-card-copy>`), _tmpl$38 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>`), _tmpl$39 = /* @__PURE__ */ template(`<div class=bookmark-folder-summary>`), _tmpl$40 = /* @__PURE__ */ template(`<div class=bookmark-folder-actions><button class=bookmark-ghost-button type=button>Rename</button><button class=bookmark-ghost-button type=button>Export</button><button class="bookmark-ghost-button danger"type=button>Delete`), _tmpl$41 = /* @__PURE__ */ template(`<button class=bookmark-ghost-button type=button>Keep bookmarks`), _tmpl$42 = /* @__PURE__ */ template(`<div class=bookmark-folder-delete-confirm><p class=bookmark-delete-prompt>Delete "<!>"?</p><div class=bookmark-delete-options><button class="bookmark-ghost-button danger"type=button></button><button class=bookmark-ghost-button type=button>Cancel`), _tmpl$43 = /* @__PURE__ */ template(`<div class=bookmark-folder-edit><div class=bookmark-folder-form-fields><input class=bookmark-input><input class=bookmark-input placeholder="Optional one-line summary"></div><button class=bookmark-secondary-button type=button>Save</button><button class=bookmark-ghost-button type=button>Cancel`), _tmpl$44 = /* @__PURE__ */ template(`<div class=bookmark-items>`), _tmpl$45 = /* @__PURE__ */ template(`<div class=bookmark-folder-section><div class="bookmark-folder-header clickable"role=button tabindex=0><div class=bookmark-folder-overview><span class=bookmark-folder-chevron aria-hidden=true>▸</span><div><div class=bookmark-folder-name></div><div class=bookmark-folder-meta> saved`), _tmpl$46 = /* @__PURE__ */ template(`<div class=bookmark-folder-collapsed-hint>Click to view saved links.`), _tmpl$47 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>No bookmarks in this folder yet.`), _tmpl$48 = /* @__PURE__ */ template(`<div class=bookmark-item-note>`), _tmpl$49 = /* @__PURE__ */ template(`<div><strong>Intent:</strong> `), _tmpl$50 = /* @__PURE__ */ template(`<div><strong>Expected:</strong> `), _tmpl$51 = /* @__PURE__ */ template(`<div><strong>Key fields:</strong> `), _tmpl$52 = /* @__PURE__ */ template(`<div><strong>Hints:</strong> `), _tmpl$53 = /* @__PURE__ */ template(`<div class=bookmark-folder-edit><input class=bookmark-input placeholder="Bookmark title"><textarea class=bookmark-note-input rows=2 placeholder="Why this bookmark matters"></textarea><textarea class=bookmark-note-input rows=1 placeholder=Intent></textarea><textarea class=bookmark-note-input rows=1 placeholder="Expected content"></textarea><input class=bookmark-input placeholder="Key fields (comma-separated)"><textarea class=bookmark-note-input rows=2 placeholder="Agent hints (one key:value per line)"></textarea><div class=bookmark-item-footer><button class=bookmark-secondary-button type=button>Save edits</button><button class=bookmark-ghost-button type=button>Cancel`), _tmpl$54 = /* @__PURE__ */ template(`<div class=bookmark-item><button class=bookmark-item-link type=button><span class=bookmark-item-title></span><span class=bookmark-item-url></span></button><div class=bookmark-item-footer><span class=bookmark-item-time></span><button class=bookmark-ghost-button type=button></button><button class="bookmark-ghost-button danger"type=button>Remove`), _tmpl$55 = /* @__PURE__ */ template(`<div class=agent-muted>No checkpoints yet.`), _tmpl$56 = /* @__PURE__ */ template(`<span class=checkpoint-timeline-line>`), _tmpl$57 = /* @__PURE__ */ template(`<div class=checkpoint-timeline-item><div class=checkpoint-timeline-rail><span class=checkpoint-timeline-dot></span></div><div class=checkpoint-timeline-content><div class=checkpoint-timeline-name></div><div class=checkpoint-timeline-time></div><textarea class=agent-textarea rows=2 placeholder="Add a note..."></textarea><button class=agent-control-button type=button>Restore`), _tmpl$58 = /* @__PURE__ */ template(`<button class=history-entry><span class=history-entry-title></span><span class=history-entry-url></span><span class=history-entry-time>`), _tmpl$59 = /* @__PURE__ */ template(`<div class="kit-upsell premium-chat-banner"><p class=kit-upsell-title>Vessel Premium</p><p class="kit-upsell-body premium-chat-banner-body">The Diff timeline is a premium feature. Upgrade to see a full history of what changed on this page.</p><div class="premium-inline-actions premium-chat-banner-actions"><button class="agent-primary-button premium-inline-primary"type=button>Start 7-day free trial — $5.99/mo after</button><button class="agent-control-button premium-inline-secondary"type=button>See Premium`), _tmpl$60 = /* @__PURE__ */ template(`<div>`), _tmpl$61 = /* @__PURE__ */ template(`<div class=thinking-state><div class=thinking-orb aria-hidden=true><span></span><span></span><span></span></div><div class=thinking-copy><div class=thinking-title>Thinking`), _tmpl$62 = /* @__PURE__ */ template(`<div class=chat-approval-detail>`), _tmpl$63 = /* @__PURE__ */ template(`<div class=chat-approval><div class=chat-approval-icon aria-hidden=true><svg width=16 height=16 viewBox="0 0 16 16"fill=none><path d="M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM7.25 4.75a.75.75 0 011.5 0v3.5a.75.75 0 01-1.5 0v-3.5zM8 11.5a.75.75 0 110-1.5.75.75 0 010 1.5z"fill=currentColor></path></svg></div><div class=chat-approval-body><div class=chat-approval-title>Approval needed: <strong></strong></div><div class=chat-approval-detail></div><div class=chat-approval-actions><button class="chat-approval-btn chat-approval-approve"type=button>Approve</button><button class="chat-approval-btn chat-approval-reject"type=button>Reject`), _tmpl$64 = /* @__PURE__ */ template(`<div class=chat-queue-item><span class=chat-queue-text></span><button class=chat-queue-remove type=button>×`);
8871
+ var _tmpl$$a = /* @__PURE__ */ template(`<div class="message-content markdown-content">`), _tmpl$2$a = /* @__PURE__ */ template(`<div class=premium-inline-offer><div class=premium-inline-kicker>Vessel Premium</div><div class=premium-inline-title></div><p class=premium-inline-copy></p><div class=premium-inline-actions><button class="agent-primary-button premium-inline-primary"type=button>Start 7-day free trial — $5.99/mo after</button><button class="agent-control-button premium-inline-secondary"type=button>View details`), _tmpl$3$9 = /* @__PURE__ */ template(`<div class=sidebar-resize-handle>`), _tmpl$4$9 = /* @__PURE__ */ template(`<span class=sidebar-tab-badge>`), _tmpl$5$8 = /* @__PURE__ */ template(`<button class=agent-primary-button type=button>Undo last action`), _tmpl$6$8 = /* @__PURE__ */ template(`<div class=agent-section-title>Pending approvals`), _tmpl$7$6 = /* @__PURE__ */ template(`<button class=agent-section-toggle type=button>`), _tmpl$8$5 = /* @__PURE__ */ template(`<section class=agent-panel><div class=agent-panel-header><div><div class=agent-panel-title>Supervisor</div><div class=agent-panel-subtitle></div></div><span class=agent-status-pill></span></div><div class=agent-panel-controls><button class=agent-control-button type=button></button><button class=agent-control-button type=button>Restore session</button></div><div class=agent-muted></div><div class=agent-section-header><div class=agent-section-title>Recent actions`), _tmpl$9$4 = /* @__PURE__ */ template(`<span class=bookmark-status-pill>Saved`), _tmpl$0$3 = /* @__PURE__ */ template(`<div class=bookmark-export-message>`), _tmpl$1$3 = /* @__PURE__ */ template(`<div class=bookmark-save-body><div class=bookmark-export-actions><button class=bookmark-secondary-button type=button>Import HTML</button><button class=bookmark-secondary-button type=button>Import JSON`), _tmpl$10$3 = /* @__PURE__ */ template(`<div class=bookmark-save-card><div class=bookmark-current-title></div><div class=bookmark-current-url></div><div class=bookmark-save-controls><button class=bookmark-primary-button type=button>Save page</button></div><textarea class=bookmark-note-input placeholder="Optional note about why this matters"rows=2></textarea><textarea class=bookmark-note-input placeholder="Intent: what is this page for?"rows=1></textarea><textarea class=bookmark-note-input placeholder="Expected content: what should be here?"rows=1></textarea><input class=bookmark-input placeholder="Key fields (comma-separated)"><textarea class=bookmark-note-input placeholder="Agent hints (one key:value per line)"rows=2>`), _tmpl$11$3 = /* @__PURE__ */ template(`<section class=bookmark-panel><div class=bookmark-panel-header><div><div class=bookmark-panel-title>Bookmarks</div><div class=bookmark-panel-subtitle></div></div></div><input class="bookmark-input bookmark-search-input"placeholder="Search titles, URLs, notes, and folders"><div class=bookmark-export-card><div><div class=bookmark-panel-title>Export</div><div class=bookmark-panel-subtitle>Save browser-ready HTML or a full Vessel archive</div></div><div class=bookmark-export-actions><button class=bookmark-secondary-button type=button>Browser HTML</button><button class=bookmark-secondary-button type=button>HTML + notes</button><button class=bookmark-secondary-button type=button>Vessel JSON</button></div></div><div class=bookmark-import-shell><button class=bookmark-save-toggle type=button><span class=bookmark-save-toggle-copy><span class=bookmark-save-toggle-title>Import Bookmarks</span><span class=bookmark-save-toggle-subtitle>Import from HTML or Vessel JSON</span></span><span class=bookmark-save-toggle-caret aria-hidden=true>▾</span></button></div><div class=bookmark-save-shell><button class=bookmark-save-toggle type=button><span class=bookmark-save-toggle-copy><span class=bookmark-save-toggle-title>Save Current Page</span><span class=bookmark-save-toggle-subtitle>Manual bookmark save options</span></span><span class=bookmark-save-toggle-caret aria-hidden=true>▾</span></button></div><form class=bookmark-folder-create><div class=bookmark-folder-form-fields><input class=bookmark-input placeholder="Create a folder"><input class=bookmark-input placeholder="Optional one-line summary"></div><button class=bookmark-secondary-button type=submit>New folder</button></form><div class=bookmark-folder-list>`), _tmpl$12$3 = /* @__PURE__ */ template(`<div class=checkpoint-timeline>`), _tmpl$13$2 = /* @__PURE__ */ template(`<section class="agent-panel checkpoint-panel"><div class=agent-panel-header><div><div class=agent-panel-title>Checkpoints</div><div class=agent-panel-subtitle></div></div></div><div class=agent-panel-body><div class=agent-checkpoint-row><input class=agent-input placeholder="Checkpoint name"><textarea class=agent-textarea rows=2 placeholder="Optional note for this checkpoint"></textarea><button class=agent-primary-button type=button>Save checkpoint</button></div><div class=agent-section-title>Recent checkpoints`), _tmpl$14$2 = /* @__PURE__ */ template(`<button class=history-entry><span class=history-entry-title>Load more history</span><span class=history-entry-url>Showing <!> of `), _tmpl$15$2 = /* @__PURE__ */ template(`<p class=history-empty>No browsing history yet.`), _tmpl$16$1 = /* @__PURE__ */ template(`<div class=history-panel><div class=history-panel-header><span class=history-panel-title>Browsing History</span><div class=history-panel-actions><button class=history-clear-btn>Clear</button><button class=history-clear-btn>Export HTML</button><button class=history-clear-btn>Export JSON</button><button class=history-clear-btn>Import</button></div></div><div class=history-list>`), _tmpl$17$1 = /* @__PURE__ */ template(`<section class=agent-panel><div class=agent-panel-header><div class=agent-panel-title>What Changed</div><div class=agent-panel-subtitle>`), _tmpl$18$1 = /* @__PURE__ */ template(`<div class="kit-upsell premium-chat-banner"><p class=kit-upsell-title>Vessel Premium</p><p class="kit-upsell-body premium-chat-banner-body">Give the built-in agent a bigger toolbox and longer runway: screenshots, saved sessions, workflow tracking, table extraction, and up to 1,000 tool calls per turn.</p><div class="premium-inline-actions premium-chat-banner-actions"><button class="agent-primary-button premium-inline-primary"type=button>Start 7-day free trial — $5.99/mo after</button><button class="agent-control-button premium-inline-secondary"type=button>See Premium`), _tmpl$19$1 = /* @__PURE__ */ template(`<span>`), _tmpl$20$1 = /* @__PURE__ */ template(`<div><div class=streaming-status><span class=streaming-pulse aria-hidden=true></span><span>Generating`), _tmpl$21$1 = /* @__PURE__ */ template(`<div class="message message-assistant"><div class=message-content>`), _tmpl$22$1 = /* @__PURE__ */ template(`<div class=sidebar-empty><svg class=sidebar-empty-icon width=48 height=48 viewBox="0 0 48 48"aria-hidden=true><line x1=8 y1=8 x2=24 y2=5 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=24 y1=5 x2=40 y2=10 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=8 y1=8 x2=6 y2=24 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=40 y1=10 x2=44 y2=26 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=6 y1=24 x2=10 y2=38 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=44 y1=26 x2=38 y2=40 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=10 y1=38 x2=24 y2=44 stroke=var(--border-visible) stroke-width=1 opacity=0.35></line><line x1=38 y1=40 x2=24 y2=44 stroke=var(--border-visible) stroke-width=1 opacity=0.35></line><line x1=8 y1=8 x2=20 y2=18 stroke=var(--border-visible) stroke-width=1 opacity=0.5></line><line x1=24 y1=5 x2=20 y2=18 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=40 y1=10 x2=32 y2=20 stroke=var(--border-visible) stroke-width=1 opacity=0.5></line><line x1=20 y1=18 x2=32 y2=20 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.3></line><line x1=6 y1=24 x2=18 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=20 y1=18 x2=18 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=32 y1=20 x2=36 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=44 y1=26 x2=36 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=18 y1=30 x2=36 y2=30 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.25></line><line x1=18 y1=30 x2=10 y2=38 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=36 y1=30 x2=38 y2=40 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=18 y1=30 x2=24 y2=44 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.2></line><line x1=36 y1=30 x2=24 y2=44 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.2></line><circle cx=8 cy=8 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.55></circle><circle cx=24 cy=5 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.45></circle><circle cx=40 cy=10 r=3 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.7></circle><circle cx=6 cy=24 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=44 cy=26 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.55></circle><circle cx=10 cy=38 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=38 cy=40 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.45></circle><circle cx=24 cy=44 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=20 cy=18 r=3.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.85></circle><circle cx=32 cy=20 r=4 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.9></circle><circle cx=18 cy=30 r=3 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.75></circle><circle cx=36 cy=30 r=3.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.8></circle></svg><p class=sidebar-empty-title>Your move.</p><p class=sidebar-empty-hint>Configure a provider in Settings (Ctrl+,) then ask anything about the current page or beyond.`), _tmpl$23$1 = /* @__PURE__ */ template(`<button class=chat-action-btn title="Stop generating"><svg width=14 height=14 viewBox="0 0 14 14"fill=none aria-hidden=true><rect x=2 y=2 width=10 height=10 rx=1.5 fill=currentColor></rect></svg>Stop`), _tmpl$24$1 = /* @__PURE__ */ template(`<button class=chat-action-btn title="Retry last prompt"><svg width=14 height=14 viewBox="0 0 14 14"fill=none aria-hidden=true><path d="M11.5 7a4.5 4.5 0 1 1-1.3-3.2"stroke=currentColor stroke-width=1.5 stroke-linecap=round></path><path d="M10.5 1v3h-3"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg>Retry`), _tmpl$25$1 = /* @__PURE__ */ template(`<div class=chat-actions>`), _tmpl$26$1 = /* @__PURE__ */ template(`<div class=highlight-nav><button class=highlight-nav-btn type=button title="Previous highlight"><svg width=12 height=12 viewBox="0 0 12 12"fill=none aria-hidden=true><path d="M8 10L4 6l4-4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg></button><button class=highlight-nav-label type=button title="Go to current highlight"><svg width=12 height=12 viewBox="0 0 12 12"fill=none aria-hidden=true><circle cx=6 cy=6 r=3 fill="rgba(196, 160, 90, 0.6)"stroke="rgba(196, 160, 90, 0.9)"stroke-width=1></circle></svg></button><button class=highlight-nav-btn type=button title="Next highlight"><svg width=12 height=12 viewBox="0 0 12 12"fill=none aria-hidden=true><path d="M4 2l4 4-4 4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round>`), _tmpl$27$1 = /* @__PURE__ */ template(`<button class=chat-queue-clear type=button>Clear queue`), _tmpl$28$1 = /* @__PURE__ */ template(`<div class=chat-queue-list>`), _tmpl$29$1 = /* @__PURE__ */ template(`<div class=chat-queue-status><div class=chat-queue-status-row><span>`), _tmpl$30 = /* @__PURE__ */ template(`<div class=sidebar-input-area><textarea class=sidebar-input rows=2></textarea><button class=sidebar-send>`), _tmpl$31 = /* @__PURE__ */ template(`<div class=sidebar><div class=sidebar-header><div class=sidebar-brand><img class=sidebar-logo alt=Vessel><span class=sidebar-brand-text>Vessel Browser</span></div><div class=sidebar-header-actions><button class=sidebar-clear title="Clear chat">Clear</button></div></div><div class=sidebar-tabs role=tablist><button class=sidebar-tab role=tab>Supervisor</button><button class=sidebar-tab role=tab>Bookmarks</button><button class=sidebar-tab role=tab>Checkpoints</button><button class=sidebar-tab role=tab>Chat</button><button class=sidebar-tab role=tab>Automate</button><button class=sidebar-tab role=tab>History</button><button class=sidebar-tab role=tab>Changes</button><button class=sidebar-tab role=tab>Research<span class=sidebar-tab-beta>Beta</span></button></div><div class=sidebar-messages><div>`), _tmpl$32 = /* @__PURE__ */ template(`<div class=agent-muted>No pending approvals.`), _tmpl$33 = /* @__PURE__ */ template(`<div class="agent-card agent-card-approval"><div class=agent-card-approval-stripe aria-hidden=true></div><div class=agent-card-title></div><div class=agent-card-copy></div><div class=agent-card-copy></div><div class=agent-card-actions><button class=agent-primary-button type=button>Approve</button><button class=agent-control-button type=button>Reject`), _tmpl$34 = /* @__PURE__ */ template(`<div class=agent-muted>No actions yet.`), _tmpl$35 = /* @__PURE__ */ template(`<div class=agent-muted>Recent actions are collapsed to reduce noise.`), _tmpl$36 = /* @__PURE__ */ template(`<div class="agent-card-copy success">`), _tmpl$37 = /* @__PURE__ */ template(`<div class="agent-card-copy error">`), _tmpl$38 = /* @__PURE__ */ template(`<div class=agent-card><div class=agent-action-row><span class=agent-card-title></span><span></span></div><div class=agent-card-copy>`), _tmpl$39 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>`), _tmpl$40 = /* @__PURE__ */ template(`<div class=bookmark-folder-summary>`), _tmpl$41 = /* @__PURE__ */ template(`<div class=bookmark-folder-actions><button class=bookmark-ghost-button type=button>Rename</button><button class=bookmark-ghost-button type=button>Export</button><button class="bookmark-ghost-button danger"type=button>Delete`), _tmpl$42 = /* @__PURE__ */ template(`<button class=bookmark-ghost-button type=button>Keep bookmarks`), _tmpl$43 = /* @__PURE__ */ template(`<div class=bookmark-folder-delete-confirm><p class=bookmark-delete-prompt>Delete "<!>"?</p><div class=bookmark-delete-options><button class="bookmark-ghost-button danger"type=button></button><button class=bookmark-ghost-button type=button>Cancel`), _tmpl$44 = /* @__PURE__ */ template(`<div class=bookmark-folder-edit><div class=bookmark-folder-form-fields><input class=bookmark-input><input class=bookmark-input placeholder="Optional one-line summary"></div><button class=bookmark-secondary-button type=button>Save</button><button class=bookmark-ghost-button type=button>Cancel`), _tmpl$45 = /* @__PURE__ */ template(`<div class=bookmark-items>`), _tmpl$46 = /* @__PURE__ */ template(`<div class=bookmark-folder-section><div class="bookmark-folder-header clickable"role=button tabindex=0><div class=bookmark-folder-overview><span class=bookmark-folder-chevron aria-hidden=true>▸</span><div><div class=bookmark-folder-name></div><div class=bookmark-folder-meta> saved`), _tmpl$47 = /* @__PURE__ */ template(`<div class=bookmark-folder-collapsed-hint>Click to view saved links.`), _tmpl$48 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>No bookmarks in this folder yet.`), _tmpl$49 = /* @__PURE__ */ template(`<div class=bookmark-item-note>`), _tmpl$50 = /* @__PURE__ */ template(`<div><strong>Intent:</strong> `), _tmpl$51 = /* @__PURE__ */ template(`<div><strong>Expected:</strong> `), _tmpl$52 = /* @__PURE__ */ template(`<div><strong>Key fields:</strong> `), _tmpl$53 = /* @__PURE__ */ template(`<div><strong>Hints:</strong> `), _tmpl$54 = /* @__PURE__ */ template(`<div class=bookmark-folder-edit><input class=bookmark-input placeholder="Bookmark title"><textarea class=bookmark-note-input rows=2 placeholder="Why this bookmark matters"></textarea><textarea class=bookmark-note-input rows=1 placeholder=Intent></textarea><textarea class=bookmark-note-input rows=1 placeholder="Expected content"></textarea><input class=bookmark-input placeholder="Key fields (comma-separated)"><textarea class=bookmark-note-input rows=2 placeholder="Agent hints (one key:value per line)"></textarea><div class=bookmark-item-footer><button class=bookmark-secondary-button type=button>Save edits</button><button class=bookmark-ghost-button type=button>Cancel`), _tmpl$55 = /* @__PURE__ */ template(`<div class=bookmark-item><button class=bookmark-item-link type=button><span class=bookmark-item-title></span><span class=bookmark-item-url></span></button><div class=bookmark-item-footer><span class=bookmark-item-time></span><button class=bookmark-ghost-button type=button></button><button class="bookmark-ghost-button danger"type=button>Remove`), _tmpl$56 = /* @__PURE__ */ template(`<div class=agent-muted>No checkpoints yet.`), _tmpl$57 = /* @__PURE__ */ template(`<span class=checkpoint-timeline-line>`), _tmpl$58 = /* @__PURE__ */ template(`<div class=checkpoint-timeline-item><div class=checkpoint-timeline-rail><span class=checkpoint-timeline-dot></span></div><div class=checkpoint-timeline-content><div class=checkpoint-timeline-name></div><div class=checkpoint-timeline-time></div><textarea class=agent-textarea rows=2 placeholder="Add a note..."></textarea><button class=agent-control-button type=button>Restore`), _tmpl$59 = /* @__PURE__ */ template(`<button class=history-entry><span class=history-entry-title></span><span class=history-entry-url></span><span class=history-entry-time>`), _tmpl$60 = /* @__PURE__ */ template(`<div class="kit-upsell premium-chat-banner"><p class=kit-upsell-title>Vessel Premium</p><p class="kit-upsell-body premium-chat-banner-body">The Diff timeline is a premium feature. Upgrade to see a full history of what changed on this page.</p><div class="premium-inline-actions premium-chat-banner-actions"><button class="agent-primary-button premium-inline-primary"type=button>Start 7-day free trial — $5.99/mo after</button><button class="agent-control-button premium-inline-secondary"type=button>See Premium`), _tmpl$61 = /* @__PURE__ */ template(`<div>`), _tmpl$62 = /* @__PURE__ */ template(`<div class=thinking-state><div class=thinking-orb aria-hidden=true><span></span><span></span><span></span></div><div class=thinking-copy><div class=thinking-title>Thinking`), _tmpl$63 = /* @__PURE__ */ template(`<div class=chat-approval-detail>`), _tmpl$64 = /* @__PURE__ */ template(`<div class=chat-approval><div class=chat-approval-icon aria-hidden=true><svg width=16 height=16 viewBox="0 0 16 16"fill=none><path d="M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM7.25 4.75a.75.75 0 011.5 0v3.5a.75.75 0 01-1.5 0v-3.5zM8 11.5a.75.75 0 110-1.5.75.75 0 010 1.5z"fill=currentColor></path></svg></div><div class=chat-approval-body><div class=chat-approval-title>Approval needed: <strong></strong></div><div class=chat-approval-detail></div><div class=chat-approval-actions><button class="chat-approval-btn chat-approval-approve"type=button>Approve</button><button class="chat-approval-btn chat-approval-reject"type=button>Reject`), _tmpl$65 = /* @__PURE__ */ template(`<div class=chat-queue-item><span class=chat-queue-text></span><button class=chat-queue-remove type=button>×`);
8767
8872
  const UNSORTED_FOLDER = {
8768
8873
  id: "unsorted",
8769
8874
  name: "Unsorted",
@@ -8831,9 +8936,12 @@ const Sidebar = (props) => {
8831
8936
  const {
8832
8937
  sidebarOpen: sidebarOpen2,
8833
8938
  sidebarWidth: sidebarWidth2,
8939
+ sidebarDetached: sidebarDetached2,
8834
8940
  resizeSidebar,
8835
8941
  commitResize,
8836
8942
  toggleSidebar,
8943
+ popOutSidebar,
8944
+ dockSidebar,
8837
8945
  openSettings
8838
8946
  } = useUI();
8839
8947
  const {
@@ -9145,6 +9253,7 @@ ${contextBlock}` : contextBlock);
9145
9253
  return Math.max(0, Math.floor((now2() - startedAt) / 1e3));
9146
9254
  });
9147
9255
  const startResize = (e) => {
9256
+ if (sidebarDetached2()) return;
9148
9257
  e.preventDefault();
9149
9258
  const target = e.currentTarget;
9150
9259
  target.setPointerCapture(e.pointerId);
@@ -9386,45 +9495,60 @@ ${contextBlock}` : contextBlock);
9386
9495
  return props.forceOpen || sidebarOpen2();
9387
9496
  },
9388
9497
  get children() {
9389
- var _el$9 = _tmpl$30(), _el$0 = _el$9.firstChild, _el$1 = _el$0.nextSibling, _el$10 = _el$1.firstChild, _el$11 = _el$10.firstChild, _el$12 = _el$10.nextSibling, _el$13 = _el$12.firstChild, _el$14 = _el$13.nextSibling, _el$15 = _el$1.nextSibling, _el$16 = _el$15.firstChild;
9390
- _el$16.firstChild;
9391
- var _el$19 = _el$16.nextSibling, _el$20 = _el$19.nextSibling, _el$21 = _el$20.nextSibling, _el$22 = _el$21.nextSibling, _el$23 = _el$22.nextSibling, _el$24 = _el$23.nextSibling, _el$25 = _el$24.nextSibling, _el$26 = _el$15.nextSibling, _el$132 = _el$26.firstChild;
9392
- _el$0.$$pointerdown = startResize;
9498
+ var _el$9 = _tmpl$31(), _el$1 = _el$9.firstChild, _el$10 = _el$1.firstChild, _el$11 = _el$10.firstChild, _el$12 = _el$10.nextSibling, _el$13 = _el$12.firstChild, _el$14 = _el$1.nextSibling, _el$15 = _el$14.firstChild;
9499
+ _el$15.firstChild;
9500
+ var _el$18 = _el$15.nextSibling, _el$19 = _el$18.nextSibling, _el$20 = _el$19.nextSibling, _el$21 = _el$20.nextSibling, _el$22 = _el$21.nextSibling, _el$23 = _el$22.nextSibling, _el$24 = _el$23.nextSibling, _el$25 = _el$14.nextSibling, _el$131 = _el$25.firstChild;
9501
+ insert(_el$9, createComponent(Show, {
9502
+ get when() {
9503
+ return !sidebarDetached2();
9504
+ },
9505
+ get children() {
9506
+ var _el$0 = _tmpl$3$9();
9507
+ _el$0.$$pointerdown = startResize;
9508
+ createRenderEffect(() => _el$0.classList.toggle("dragging", !!isDragging()));
9509
+ return _el$0;
9510
+ }
9511
+ }), _el$1);
9393
9512
  setAttribute(_el$11, "src", vesselLogo);
9394
9513
  addEventListener(_el$13, "click", clearHistory, true);
9395
- _el$14.$$click = () => void toggleSidebar();
9396
- _el$16.$$click = () => setSidebarTab("supervisor");
9397
- insert(_el$16, createComponent(Show, {
9514
+ insert(_el$12, createComponent(SidebarWindowControls, {
9515
+ detached: sidebarDetached2,
9516
+ popOut: popOutSidebar,
9517
+ dock: dockSidebar,
9518
+ close: toggleSidebar
9519
+ }), null);
9520
+ _el$15.$$click = () => setSidebarTab("supervisor");
9521
+ insert(_el$15, createComponent(Show, {
9398
9522
  get when() {
9399
9523
  return runtimeState2().supervisor.pendingApprovals.length > 0;
9400
9524
  },
9401
9525
  get children() {
9402
- var _el$18 = _tmpl$3$9();
9403
- insert(_el$18, () => runtimeState2().supervisor.pendingApprovals.length);
9404
- return _el$18;
9526
+ var _el$17 = _tmpl$4$9();
9527
+ insert(_el$17, () => runtimeState2().supervisor.pendingApprovals.length);
9528
+ return _el$17;
9405
9529
  }
9406
9530
  }), null);
9407
- _el$19.$$click = () => setSidebarTab("bookmarks");
9408
- _el$20.$$click = () => setSidebarTab("checkpoints");
9409
- _el$21.$$click = () => setSidebarTab("chat");
9410
- _el$22.$$click = () => setSidebarTab("automation");
9411
- _el$23.$$click = () => setSidebarTab("history");
9412
- _el$24.$$click = () => setSidebarTab("diff");
9413
- _el$25.$$click = () => setSidebarTab("research");
9531
+ _el$18.$$click = () => setSidebarTab("bookmarks");
9532
+ _el$19.$$click = () => setSidebarTab("checkpoints");
9533
+ _el$20.$$click = () => setSidebarTab("chat");
9534
+ _el$21.$$click = () => setSidebarTab("automation");
9535
+ _el$22.$$click = () => setSidebarTab("history");
9536
+ _el$23.$$click = () => setSidebarTab("diff");
9537
+ _el$24.$$click = () => setSidebarTab("research");
9414
9538
  use((el) => {
9415
9539
  messagesContainerRef = el;
9416
9540
  useScrollFade(el);
9417
- }, _el$26);
9418
- insert(_el$26, createComponent(Show, {
9541
+ }, _el$25);
9542
+ insert(_el$25, createComponent(Show, {
9419
9543
  get when() {
9420
9544
  return sidebarTab() === "supervisor";
9421
9545
  },
9422
9546
  get children() {
9423
- var _el$27 = _tmpl$7$6(), _el$28 = _el$27.firstChild, _el$29 = _el$28.firstChild, _el$30 = _el$29.firstChild, _el$31 = _el$30.nextSibling, _el$32 = _el$29.nextSibling, _el$33 = _el$28.nextSibling, _el$34 = _el$33.firstChild, _el$35 = _el$34.nextSibling, _el$37 = _el$33.nextSibling, _el$39 = _el$37.nextSibling;
9424
- _el$39.firstChild;
9425
- insert(_el$31, () => runtimeState2().supervisor.paused ? "Agent is paused" : "Agent is live");
9426
- insert(_el$32, () => runtimeState2().supervisor.paused ? "Paused" : "Running");
9427
- insert(_el$33, createComponent(DropdownSelect, {
9547
+ var _el$26 = _tmpl$8$5(), _el$27 = _el$26.firstChild, _el$28 = _el$27.firstChild, _el$29 = _el$28.firstChild, _el$30 = _el$29.nextSibling, _el$31 = _el$28.nextSibling, _el$32 = _el$27.nextSibling, _el$33 = _el$32.firstChild, _el$34 = _el$33.nextSibling, _el$36 = _el$32.nextSibling, _el$38 = _el$36.nextSibling;
9548
+ _el$38.firstChild;
9549
+ insert(_el$30, () => runtimeState2().supervisor.paused ? "Agent is paused" : "Agent is live");
9550
+ insert(_el$31, () => runtimeState2().supervisor.paused ? "Paused" : "Running");
9551
+ insert(_el$32, createComponent(DropdownSelect, {
9428
9552
  "class": "agent-select",
9429
9553
  get value() {
9430
9554
  return runtimeState2().supervisor.approvalMode;
@@ -9434,66 +9558,66 @@ ${contextBlock}` : contextBlock);
9434
9558
  },
9435
9559
  ariaLabel: "Approval mode",
9436
9560
  onChange: (value) => void setApprovalMode(value)
9437
- }), _el$34);
9438
- _el$34.$$click = () => void (runtimeState2().supervisor.paused ? resume() : pause());
9439
- insert(_el$34, () => runtimeState2().supervisor.paused ? "Resume" : "Pause");
9440
- _el$35.$$click = () => void restoreSession();
9441
- insert(_el$33, createComponent(Show, {
9561
+ }), _el$33);
9562
+ _el$33.$$click = () => void (runtimeState2().supervisor.paused ? resume() : pause());
9563
+ insert(_el$33, () => runtimeState2().supervisor.paused ? "Resume" : "Pause");
9564
+ _el$34.$$click = () => void restoreSession();
9565
+ insert(_el$32, createComponent(Show, {
9442
9566
  get when() {
9443
9567
  return runtimeState2().canUndo;
9444
9568
  },
9445
9569
  get children() {
9446
- var _el$36 = _tmpl$4$9();
9447
- _el$36.$$click = () => void undoLastAction();
9448
- createRenderEffect(() => setAttribute(_el$36, "title", runtimeState2().undoInfo ? `Undo: ${runtimeState2().undoInfo.actionName}` : "Undo last action"));
9449
- return _el$36;
9570
+ var _el$35 = _tmpl$5$8();
9571
+ _el$35.$$click = () => void undoLastAction();
9572
+ createRenderEffect(() => setAttribute(_el$35, "title", runtimeState2().undoInfo ? `Undo: ${runtimeState2().undoInfo.actionName}` : "Undo last action"));
9573
+ return _el$35;
9450
9574
  }
9451
9575
  }), null);
9452
- insert(_el$37, approvalModeDescription);
9453
- insert(_el$27, createComponent(Show, {
9576
+ insert(_el$36, approvalModeDescription);
9577
+ insert(_el$26, createComponent(Show, {
9454
9578
  get when() {
9455
9579
  return runtimeState2().supervisor.pendingApprovals.length > 0;
9456
9580
  },
9457
9581
  get fallback() {
9458
- return _tmpl$31();
9582
+ return _tmpl$32();
9459
9583
  },
9460
9584
  get children() {
9461
- return [_tmpl$5$8(), createComponent(For, {
9585
+ return [_tmpl$6$8(), createComponent(For, {
9462
9586
  get each() {
9463
9587
  return runtimeState2().supervisor.pendingApprovals;
9464
9588
  },
9465
9589
  children: (approval) => (() => {
9466
- var _el$150 = _tmpl$32(), _el$151 = _el$150.firstChild, _el$152 = _el$151.nextSibling, _el$153 = _el$152.nextSibling, _el$154 = _el$153.nextSibling, _el$155 = _el$154.nextSibling, _el$156 = _el$155.firstChild, _el$157 = _el$156.nextSibling;
9467
- insert(_el$152, () => approval.name);
9468
- insert(_el$153, () => approval.argsSummary);
9469
- insert(_el$154, () => approval.reason);
9470
- _el$156.$$click = () => void resolveApproval(approval.id, true);
9471
- _el$157.$$click = () => void resolveApproval(approval.id, false);
9472
- return _el$150;
9590
+ var _el$149 = _tmpl$33(), _el$150 = _el$149.firstChild, _el$151 = _el$150.nextSibling, _el$152 = _el$151.nextSibling, _el$153 = _el$152.nextSibling, _el$154 = _el$153.nextSibling, _el$155 = _el$154.firstChild, _el$156 = _el$155.nextSibling;
9591
+ insert(_el$151, () => approval.name);
9592
+ insert(_el$152, () => approval.argsSummary);
9593
+ insert(_el$153, () => approval.reason);
9594
+ _el$155.$$click = () => void resolveApproval(approval.id, true);
9595
+ _el$156.$$click = () => void resolveApproval(approval.id, false);
9596
+ return _el$149;
9473
9597
  })()
9474
9598
  })];
9475
9599
  }
9476
- }), _el$39);
9477
- insert(_el$39, createComponent(Show, {
9600
+ }), _el$38);
9601
+ insert(_el$38, createComponent(Show, {
9478
9602
  get when() {
9479
9603
  return recentActions().length > 0;
9480
9604
  },
9481
9605
  get children() {
9482
- var _el$41 = _tmpl$6$8();
9483
- _el$41.$$click = () => setActionsExpanded((current) => !current);
9484
- insert(_el$41, (() => {
9606
+ var _el$40 = _tmpl$7$6();
9607
+ _el$40.$$click = () => setActionsExpanded((current) => !current);
9608
+ insert(_el$40, (() => {
9485
9609
  var _c$ = memo(() => !!actionsExpanded());
9486
9610
  return () => _c$() ? "Hide history" : `Show history (${recentActions().length})`;
9487
9611
  })());
9488
- return _el$41;
9612
+ return _el$40;
9489
9613
  }
9490
9614
  }), null);
9491
- insert(_el$27, createComponent(Show, {
9615
+ insert(_el$26, createComponent(Show, {
9492
9616
  get when() {
9493
9617
  return recentActions().length > 0;
9494
9618
  },
9495
9619
  get fallback() {
9496
- return _tmpl$33();
9620
+ return _tmpl$34();
9497
9621
  },
9498
9622
  get children() {
9499
9623
  return createComponent(Show, {
@@ -9501,7 +9625,7 @@ ${contextBlock}` : contextBlock);
9501
9625
  return actionsExpanded();
9502
9626
  },
9503
9627
  get fallback() {
9504
- return _tmpl$34();
9628
+ return _tmpl$35();
9505
9629
  },
9506
9630
  get children() {
9507
9631
  return createComponent(For, {
@@ -9509,115 +9633,115 @@ ${contextBlock}` : contextBlock);
9509
9633
  return recentActions();
9510
9634
  },
9511
9635
  children: (action) => (() => {
9512
- var _el$160 = _tmpl$37(), _el$161 = _el$160.firstChild, _el$162 = _el$161.firstChild, _el$163 = _el$162.nextSibling, _el$164 = _el$161.nextSibling;
9513
- insert(_el$162, () => action.name);
9514
- insert(_el$163, () => action.status);
9515
- insert(_el$164, () => action.argsSummary);
9516
- insert(_el$160, createComponent(Show, {
9636
+ var _el$159 = _tmpl$38(), _el$160 = _el$159.firstChild, _el$161 = _el$160.firstChild, _el$162 = _el$161.nextSibling, _el$163 = _el$160.nextSibling;
9637
+ insert(_el$161, () => action.name);
9638
+ insert(_el$162, () => action.status);
9639
+ insert(_el$163, () => action.argsSummary);
9640
+ insert(_el$159, createComponent(Show, {
9517
9641
  get when() {
9518
9642
  return action.resultSummary;
9519
9643
  },
9520
9644
  get children() {
9521
- var _el$165 = _tmpl$35();
9522
- insert(_el$165, () => action.resultSummary);
9523
- return _el$165;
9645
+ var _el$164 = _tmpl$36();
9646
+ insert(_el$164, () => action.resultSummary);
9647
+ return _el$164;
9524
9648
  }
9525
9649
  }), null);
9526
- insert(_el$160, createComponent(Show, {
9650
+ insert(_el$159, createComponent(Show, {
9527
9651
  get when() {
9528
9652
  return action.error;
9529
9653
  },
9530
9654
  get children() {
9531
- var _el$166 = _tmpl$36();
9532
- insert(_el$166, () => action.error);
9533
- return _el$166;
9655
+ var _el$165 = _tmpl$37();
9656
+ insert(_el$165, () => action.error);
9657
+ return _el$165;
9534
9658
  }
9535
9659
  }), null);
9536
- createRenderEffect(() => className(_el$163, `agent-action-status ${action.status}`));
9537
- return _el$160;
9660
+ createRenderEffect(() => className(_el$162, `agent-action-status ${action.status}`));
9661
+ return _el$159;
9538
9662
  })()
9539
9663
  });
9540
9664
  }
9541
9665
  });
9542
9666
  }
9543
9667
  }), null);
9544
- createRenderEffect(() => _el$32.classList.toggle("paused", !!runtimeState2().supervisor.paused));
9545
- return _el$27;
9668
+ createRenderEffect(() => _el$31.classList.toggle("paused", !!runtimeState2().supervisor.paused));
9669
+ return _el$26;
9546
9670
  }
9547
- }), _el$132);
9548
- insert(_el$26, createComponent(Show, {
9671
+ }), _el$131);
9672
+ insert(_el$25, createComponent(Show, {
9549
9673
  get when() {
9550
9674
  return sidebarTab() === "bookmarks";
9551
9675
  },
9552
9676
  get children() {
9553
- var _el$42 = _tmpl$10$3(), _el$43 = _el$42.firstChild, _el$44 = _el$43.firstChild, _el$45 = _el$44.firstChild, _el$46 = _el$45.nextSibling, _el$48 = _el$43.nextSibling, _el$49 = _el$48.nextSibling, _el$50 = _el$49.firstChild, _el$51 = _el$50.nextSibling, _el$52 = _el$51.firstChild, _el$53 = _el$52.nextSibling, _el$54 = _el$53.nextSibling, _el$56 = _el$49.nextSibling, _el$57 = _el$56.firstChild, _el$58 = _el$57.firstChild, _el$59 = _el$58.nextSibling, _el$65 = _el$56.nextSibling, _el$66 = _el$65.firstChild, _el$67 = _el$66.firstChild, _el$68 = _el$67.nextSibling, _el$79 = _el$65.nextSibling, _el$80 = _el$79.firstChild, _el$81 = _el$80.firstChild, _el$82 = _el$81.nextSibling, _el$83 = _el$80.nextSibling, _el$84 = _el$79.nextSibling;
9554
- insert(_el$46, (() => {
9677
+ var _el$41 = _tmpl$11$3(), _el$42 = _el$41.firstChild, _el$43 = _el$42.firstChild, _el$44 = _el$43.firstChild, _el$45 = _el$44.nextSibling, _el$47 = _el$42.nextSibling, _el$48 = _el$47.nextSibling, _el$49 = _el$48.firstChild, _el$50 = _el$49.nextSibling, _el$51 = _el$50.firstChild, _el$52 = _el$51.nextSibling, _el$53 = _el$52.nextSibling, _el$55 = _el$48.nextSibling, _el$56 = _el$55.firstChild, _el$57 = _el$56.firstChild, _el$58 = _el$57.nextSibling, _el$64 = _el$55.nextSibling, _el$65 = _el$64.firstChild, _el$66 = _el$65.firstChild, _el$67 = _el$66.nextSibling, _el$78 = _el$64.nextSibling, _el$79 = _el$78.firstChild, _el$80 = _el$79.firstChild, _el$81 = _el$80.nextSibling, _el$82 = _el$79.nextSibling, _el$83 = _el$78.nextSibling;
9678
+ insert(_el$45, (() => {
9555
9679
  var _c$2 = memo(() => !!normalizedBookmarkSearch());
9556
9680
  return () => _c$2() ? `${bookmarkMatchCount()} matches for "${bookmarkSearchQuery().trim()}"` : `${bookmarksState2().bookmarks.length} saved across ${bookmarkFolders().length} folders`;
9557
9681
  })());
9558
- insert(_el$43, createComponent(Show, {
9682
+ insert(_el$42, createComponent(Show, {
9559
9683
  get when() {
9560
9684
  return currentTabSaved();
9561
9685
  },
9562
9686
  get children() {
9563
- return _tmpl$8$5();
9687
+ return _tmpl$9$4();
9564
9688
  }
9565
9689
  }), null);
9566
- _el$48.$$input = (e) => setBookmarkSearchQuery(e.currentTarget.value);
9567
- _el$52.$$click = () => void handleExportBookmarks("html");
9568
- _el$53.$$click = () => void handleExportBookmarks("html-with-notes");
9569
- _el$54.$$click = () => void handleExportBookmarks("json");
9570
- insert(_el$49, createComponent(Show, {
9690
+ _el$47.$$input = (e) => setBookmarkSearchQuery(e.currentTarget.value);
9691
+ _el$51.$$click = () => void handleExportBookmarks("html");
9692
+ _el$52.$$click = () => void handleExportBookmarks("html-with-notes");
9693
+ _el$53.$$click = () => void handleExportBookmarks("json");
9694
+ insert(_el$48, createComponent(Show, {
9571
9695
  get when() {
9572
9696
  return bookmarkExportMessage();
9573
9697
  },
9574
9698
  get children() {
9575
- var _el$55 = _tmpl$9$4();
9576
- insert(_el$55, bookmarkExportMessage);
9577
- return _el$55;
9699
+ var _el$54 = _tmpl$0$3();
9700
+ insert(_el$54, bookmarkExportMessage);
9701
+ return _el$54;
9578
9702
  }
9579
9703
  }), null);
9580
- _el$57.$$click = () => setBookmarkImportExpanded((current) => !current);
9581
- insert(_el$56, createComponent(Show, {
9704
+ _el$56.$$click = () => setBookmarkImportExpanded((current) => !current);
9705
+ insert(_el$55, createComponent(Show, {
9582
9706
  get when() {
9583
9707
  return bookmarkImportExpanded();
9584
9708
  },
9585
9709
  get children() {
9586
- var _el$60 = _tmpl$0$3(), _el$61 = _el$60.firstChild, _el$62 = _el$61.firstChild, _el$63 = _el$62.nextSibling;
9587
- _el$62.$$click = () => void handleImportBookmarks("html");
9588
- _el$63.$$click = () => void handleImportBookmarks("json");
9589
- insert(_el$60, createComponent(Show, {
9710
+ var _el$59 = _tmpl$1$3(), _el$60 = _el$59.firstChild, _el$61 = _el$60.firstChild, _el$62 = _el$61.nextSibling;
9711
+ _el$61.$$click = () => void handleImportBookmarks("html");
9712
+ _el$62.$$click = () => void handleImportBookmarks("json");
9713
+ insert(_el$59, createComponent(Show, {
9590
9714
  get when() {
9591
9715
  return bookmarkImportMessage();
9592
9716
  },
9593
9717
  get children() {
9594
- var _el$64 = _tmpl$9$4();
9595
- insert(_el$64, bookmarkImportMessage);
9596
- return _el$64;
9718
+ var _el$63 = _tmpl$0$3();
9719
+ insert(_el$63, bookmarkImportMessage);
9720
+ return _el$63;
9597
9721
  }
9598
9722
  }), null);
9599
9723
  createRenderEffect((_p$) => {
9600
9724
  var _v$ = bookmarkImporting(), _v$2 = bookmarkImporting();
9601
- _v$ !== _p$.e && (_el$62.disabled = _p$.e = _v$);
9602
- _v$2 !== _p$.t && (_el$63.disabled = _p$.t = _v$2);
9725
+ _v$ !== _p$.e && (_el$61.disabled = _p$.e = _v$);
9726
+ _v$2 !== _p$.t && (_el$62.disabled = _p$.t = _v$2);
9603
9727
  return _p$;
9604
9728
  }, {
9605
9729
  e: void 0,
9606
9730
  t: void 0
9607
9731
  });
9608
- return _el$60;
9732
+ return _el$59;
9609
9733
  }
9610
9734
  }), null);
9611
- _el$66.$$click = () => setBookmarkSaveExpanded((current) => !current);
9612
- insert(_el$65, createComponent(Show, {
9735
+ _el$65.$$click = () => setBookmarkSaveExpanded((current) => !current);
9736
+ insert(_el$64, createComponent(Show, {
9613
9737
  get when() {
9614
9738
  return bookmarkSaveExpanded();
9615
9739
  },
9616
9740
  get children() {
9617
- var _el$69 = _tmpl$1$3(), _el$70 = _el$69.firstChild, _el$71 = _el$70.nextSibling, _el$72 = _el$71.nextSibling, _el$73 = _el$72.firstChild, _el$74 = _el$72.nextSibling, _el$75 = _el$74.nextSibling, _el$76 = _el$75.nextSibling, _el$77 = _el$76.nextSibling, _el$78 = _el$77.nextSibling;
9618
- insert(_el$70, () => currentTab()?.title || "No active page");
9619
- insert(_el$71, () => currentTab()?.url || "Open a page to save it here.");
9620
- insert(_el$72, createComponent(DropdownSelect, {
9741
+ var _el$68 = _tmpl$10$3(), _el$69 = _el$68.firstChild, _el$70 = _el$69.nextSibling, _el$71 = _el$70.nextSibling, _el$72 = _el$71.firstChild, _el$73 = _el$71.nextSibling, _el$74 = _el$73.nextSibling, _el$75 = _el$74.nextSibling, _el$76 = _el$75.nextSibling, _el$77 = _el$76.nextSibling;
9742
+ insert(_el$69, () => currentTab()?.title || "No active page");
9743
+ insert(_el$70, () => currentTab()?.url || "Open a page to save it here.");
9744
+ insert(_el$71, createComponent(DropdownSelect, {
9621
9745
  "class": "bookmark-select",
9622
9746
  get value() {
9623
9747
  return selectedFolderId();
@@ -9627,37 +9751,37 @@ ${contextBlock}` : contextBlock);
9627
9751
  },
9628
9752
  ariaLabel: "Bookmark folder",
9629
9753
  onChange: (value) => setSelectedFolderId(value)
9630
- }), _el$73);
9631
- _el$73.$$click = () => void handleSaveBookmark();
9632
- _el$74.$$input = (e) => setBookmarkNote(e.currentTarget.value);
9633
- _el$75.$$input = (e) => setBookmarkIntent(e.currentTarget.value);
9634
- _el$76.$$input = (e) => setBookmarkExpectedContent(e.currentTarget.value);
9635
- _el$77.$$input = (e) => setBookmarkKeyFields(e.currentTarget.value);
9636
- _el$78.$$input = (e) => setBookmarkAgentHints(e.currentTarget.value);
9637
- createRenderEffect(() => _el$73.disabled = !currentTab()?.url);
9638
- createRenderEffect(() => _el$74.value = bookmarkNote());
9639
- createRenderEffect(() => _el$75.value = bookmarkIntent());
9640
- createRenderEffect(() => _el$76.value = bookmarkExpectedContent());
9641
- createRenderEffect(() => _el$77.value = bookmarkKeyFields());
9642
- createRenderEffect(() => _el$78.value = bookmarkAgentHints());
9643
- return _el$69;
9754
+ }), _el$72);
9755
+ _el$72.$$click = () => void handleSaveBookmark();
9756
+ _el$73.$$input = (e) => setBookmarkNote(e.currentTarget.value);
9757
+ _el$74.$$input = (e) => setBookmarkIntent(e.currentTarget.value);
9758
+ _el$75.$$input = (e) => setBookmarkExpectedContent(e.currentTarget.value);
9759
+ _el$76.$$input = (e) => setBookmarkKeyFields(e.currentTarget.value);
9760
+ _el$77.$$input = (e) => setBookmarkAgentHints(e.currentTarget.value);
9761
+ createRenderEffect(() => _el$72.disabled = !currentTab()?.url);
9762
+ createRenderEffect(() => _el$73.value = bookmarkNote());
9763
+ createRenderEffect(() => _el$74.value = bookmarkIntent());
9764
+ createRenderEffect(() => _el$75.value = bookmarkExpectedContent());
9765
+ createRenderEffect(() => _el$76.value = bookmarkKeyFields());
9766
+ createRenderEffect(() => _el$77.value = bookmarkAgentHints());
9767
+ return _el$68;
9644
9768
  }
9645
9769
  }), null);
9646
- _el$79.addEventListener("submit", handleCreateFolder);
9647
- _el$81.$$input = (e) => setNewFolderName(e.currentTarget.value);
9648
- _el$82.$$input = (e) => setNewFolderSummary(e.currentTarget.value);
9649
- insert(_el$84, createComponent(Show, {
9770
+ _el$78.addEventListener("submit", handleCreateFolder);
9771
+ _el$80.$$input = (e) => setNewFolderName(e.currentTarget.value);
9772
+ _el$81.$$input = (e) => setNewFolderSummary(e.currentTarget.value);
9773
+ insert(_el$83, createComponent(Show, {
9650
9774
  get when() {
9651
9775
  return filteredGroupedBookmarks().length > 0;
9652
9776
  },
9653
9777
  get fallback() {
9654
9778
  return (() => {
9655
- var _el$167 = _tmpl$38();
9656
- insert(_el$167, (() => {
9779
+ var _el$166 = _tmpl$39();
9780
+ insert(_el$166, (() => {
9657
9781
  var _c$5 = memo(() => !!normalizedBookmarkSearch());
9658
9782
  return () => _c$5() ? `No bookmarks matched "${bookmarkSearchQuery().trim()}".` : "No bookmarks saved yet.";
9659
9783
  })());
9660
- return _el$167;
9784
+ return _el$166;
9661
9785
  })();
9662
9786
  },
9663
9787
  get children() {
@@ -9666,105 +9790,105 @@ ${contextBlock}` : contextBlock);
9666
9790
  return filteredGroupedBookmarks();
9667
9791
  },
9668
9792
  children: (folder) => (() => {
9669
- var _el$168 = _tmpl$45(), _el$169 = _el$168.firstChild, _el$170 = _el$169.firstChild, _el$171 = _el$170.firstChild, _el$172 = _el$171.nextSibling, _el$173 = _el$172.firstChild, _el$174 = _el$173.nextSibling, _el$175 = _el$174.firstChild;
9670
- _el$169.$$keydown = (e) => {
9793
+ var _el$167 = _tmpl$46(), _el$168 = _el$167.firstChild, _el$169 = _el$168.firstChild, _el$170 = _el$169.firstChild, _el$171 = _el$170.nextSibling, _el$172 = _el$171.firstChild, _el$173 = _el$172.nextSibling, _el$174 = _el$173.firstChild;
9794
+ _el$168.$$keydown = (e) => {
9671
9795
  if (e.key === "Enter" || e.key === " ") {
9672
9796
  e.preventDefault();
9673
9797
  toggleFolderExpanded(folder.id);
9674
9798
  }
9675
9799
  };
9676
- _el$169.$$click = () => toggleFolderExpanded(folder.id);
9677
- insert(_el$173, () => folder.name);
9678
- insert(_el$174, () => folder.items.length, _el$175);
9679
- insert(_el$172, createComponent(Show, {
9800
+ _el$168.$$click = () => toggleFolderExpanded(folder.id);
9801
+ insert(_el$172, () => folder.name);
9802
+ insert(_el$173, () => folder.items.length, _el$174);
9803
+ insert(_el$171, createComponent(Show, {
9680
9804
  get when() {
9681
9805
  return folder.summary;
9682
9806
  },
9683
9807
  get children() {
9684
- var _el$176 = _tmpl$39();
9685
- insert(_el$176, () => folder.summary);
9686
- return _el$176;
9808
+ var _el$175 = _tmpl$40();
9809
+ insert(_el$175, () => folder.summary);
9810
+ return _el$175;
9687
9811
  }
9688
9812
  }), null);
9689
- insert(_el$169, createComponent(Show, {
9813
+ insert(_el$168, createComponent(Show, {
9690
9814
  get when() {
9691
9815
  return folder.id !== UNSORTED_FOLDER.id;
9692
9816
  },
9693
9817
  get children() {
9694
- var _el$177 = _tmpl$40(), _el$178 = _el$177.firstChild, _el$179 = _el$178.nextSibling, _el$180 = _el$179.nextSibling;
9695
- _el$178.$$click = (e) => {
9818
+ var _el$176 = _tmpl$41(), _el$177 = _el$176.firstChild, _el$178 = _el$177.nextSibling, _el$179 = _el$178.nextSibling;
9819
+ _el$177.$$click = (e) => {
9696
9820
  e.stopPropagation();
9697
9821
  setEditingFolderId(folder.id);
9698
9822
  setEditingFolderName(folder.name);
9699
9823
  setEditingFolderSummary(folder.summary || "");
9700
9824
  };
9701
- _el$179.$$click = (e) => {
9825
+ _el$178.$$click = (e) => {
9702
9826
  e.stopPropagation();
9703
9827
  void handleExportFolder(folder.id, folder.name);
9704
9828
  };
9705
- _el$180.$$click = (e) => {
9829
+ _el$179.$$click = (e) => {
9706
9830
  e.stopPropagation();
9707
9831
  setDeletingFolderId(folder.id);
9708
9832
  };
9709
- createRenderEffect(() => _el$179.disabled = bookmarkExporting());
9710
- return _el$177;
9833
+ createRenderEffect(() => _el$178.disabled = bookmarkExporting());
9834
+ return _el$176;
9711
9835
  }
9712
9836
  }), null);
9713
- insert(_el$168, createComponent(Show, {
9837
+ insert(_el$167, createComponent(Show, {
9714
9838
  get when() {
9715
9839
  return deletingFolderId() === folder.id;
9716
9840
  },
9717
9841
  get children() {
9718
- var _el$181 = _tmpl$42(), _el$182 = _el$181.firstChild, _el$183 = _el$182.firstChild, _el$185 = _el$183.nextSibling;
9719
- _el$185.nextSibling;
9720
- var _el$186 = _el$182.nextSibling, _el$188 = _el$186.firstChild, _el$189 = _el$188.nextSibling;
9721
- insert(_el$182, () => folder.name, _el$185);
9722
- insert(_el$182, (() => {
9842
+ var _el$180 = _tmpl$43(), _el$181 = _el$180.firstChild, _el$182 = _el$181.firstChild, _el$184 = _el$182.nextSibling;
9843
+ _el$184.nextSibling;
9844
+ var _el$185 = _el$181.nextSibling, _el$187 = _el$185.firstChild, _el$188 = _el$187.nextSibling;
9845
+ insert(_el$181, () => folder.name, _el$184);
9846
+ insert(_el$181, (() => {
9723
9847
  var _c$6 = memo(() => folder.items.length > 0);
9724
9848
  return () => _c$6() ? ` This folder has ${folder.items.length} bookmark${folder.items.length === 1 ? "" : "s"}.` : "";
9725
9849
  })(), null);
9726
- insert(_el$186, createComponent(Show, {
9850
+ insert(_el$185, createComponent(Show, {
9727
9851
  get when() {
9728
9852
  return folder.items.length > 0;
9729
9853
  },
9730
9854
  get children() {
9731
- var _el$187 = _tmpl$41();
9732
- _el$187.$$click = () => void handleRemoveFolder(folder.id, false);
9733
- return _el$187;
9855
+ var _el$186 = _tmpl$42();
9856
+ _el$186.$$click = () => void handleRemoveFolder(folder.id, false);
9857
+ return _el$186;
9734
9858
  }
9735
- }), _el$188);
9736
- _el$188.$$click = () => void handleRemoveFolder(folder.id, true);
9737
- insert(_el$188, () => folder.items.length > 0 ? "Delete all" : "Delete folder");
9738
- _el$189.$$click = () => setDeletingFolderId(null);
9739
- return _el$181;
9859
+ }), _el$187);
9860
+ _el$187.$$click = () => void handleRemoveFolder(folder.id, true);
9861
+ insert(_el$187, () => folder.items.length > 0 ? "Delete all" : "Delete folder");
9862
+ _el$188.$$click = () => setDeletingFolderId(null);
9863
+ return _el$180;
9740
9864
  }
9741
9865
  }), null);
9742
- insert(_el$168, createComponent(Show, {
9866
+ insert(_el$167, createComponent(Show, {
9743
9867
  get when() {
9744
9868
  return editingFolderId() === folder.id;
9745
9869
  },
9746
9870
  get children() {
9747
- var _el$190 = _tmpl$43(), _el$191 = _el$190.firstChild, _el$192 = _el$191.firstChild, _el$193 = _el$192.nextSibling, _el$194 = _el$191.nextSibling, _el$195 = _el$194.nextSibling;
9748
- _el$192.$$input = (e) => setEditingFolderName(e.currentTarget.value);
9749
- _el$193.$$input = (e) => setEditingFolderSummary(e.currentTarget.value);
9750
- _el$194.$$click = () => void handleRenameFolder(folder.id);
9751
- _el$195.$$click = () => {
9871
+ var _el$189 = _tmpl$44(), _el$190 = _el$189.firstChild, _el$191 = _el$190.firstChild, _el$192 = _el$191.nextSibling, _el$193 = _el$190.nextSibling, _el$194 = _el$193.nextSibling;
9872
+ _el$191.$$input = (e) => setEditingFolderName(e.currentTarget.value);
9873
+ _el$192.$$input = (e) => setEditingFolderSummary(e.currentTarget.value);
9874
+ _el$193.$$click = () => void handleRenameFolder(folder.id);
9875
+ _el$194.$$click = () => {
9752
9876
  setEditingFolderId(null);
9753
9877
  setEditingFolderName("");
9754
9878
  setEditingFolderSummary("");
9755
9879
  };
9756
- createRenderEffect(() => _el$194.disabled = !editingFolderName().trim());
9757
- createRenderEffect(() => _el$192.value = editingFolderName());
9758
- createRenderEffect(() => _el$193.value = editingFolderSummary());
9759
- return _el$190;
9880
+ createRenderEffect(() => _el$193.disabled = !editingFolderName().trim());
9881
+ createRenderEffect(() => _el$191.value = editingFolderName());
9882
+ createRenderEffect(() => _el$192.value = editingFolderSummary());
9883
+ return _el$189;
9760
9884
  }
9761
9885
  }), null);
9762
- insert(_el$168, createComponent(Show, {
9886
+ insert(_el$167, createComponent(Show, {
9763
9887
  get when() {
9764
9888
  return isFolderExpanded(folder.id);
9765
9889
  },
9766
9890
  get fallback() {
9767
- return _tmpl$46();
9891
+ return _tmpl$47();
9768
9892
  },
9769
9893
  get children() {
9770
9894
  return createComponent(Show, {
@@ -9772,137 +9896,137 @@ ${contextBlock}` : contextBlock);
9772
9896
  return folder.items.length > 0;
9773
9897
  },
9774
9898
  get fallback() {
9775
- return _tmpl$47();
9899
+ return _tmpl$48();
9776
9900
  },
9777
9901
  get children() {
9778
- var _el$196 = _tmpl$44();
9779
- insert(_el$196, createComponent(For, {
9902
+ var _el$195 = _tmpl$45();
9903
+ insert(_el$195, createComponent(For, {
9780
9904
  get each() {
9781
9905
  return folder.items;
9782
9906
  },
9783
9907
  children: (bookmark) => (() => {
9784
- var _el$199 = _tmpl$54(), _el$200 = _el$199.firstChild, _el$201 = _el$200.firstChild, _el$202 = _el$201.nextSibling, _el$227 = _el$200.nextSibling, _el$228 = _el$227.firstChild, _el$229 = _el$228.nextSibling, _el$230 = _el$229.nextSibling;
9785
- _el$200.$$click = () => void createTab(bookmark.url);
9786
- insert(_el$201, () => bookmark.title || bookmark.url);
9787
- insert(_el$202, () => bookmark.url);
9788
- insert(_el$199, createComponent(Show, {
9908
+ var _el$198 = _tmpl$55(), _el$199 = _el$198.firstChild, _el$200 = _el$199.firstChild, _el$201 = _el$200.nextSibling, _el$226 = _el$199.nextSibling, _el$227 = _el$226.firstChild, _el$228 = _el$227.nextSibling, _el$229 = _el$228.nextSibling;
9909
+ _el$199.$$click = () => void createTab(bookmark.url);
9910
+ insert(_el$200, () => bookmark.title || bookmark.url);
9911
+ insert(_el$201, () => bookmark.url);
9912
+ insert(_el$198, createComponent(Show, {
9789
9913
  get when() {
9790
9914
  return bookmark.note;
9791
9915
  },
9792
9916
  get children() {
9793
- var _el$203 = _tmpl$48();
9794
- insert(_el$203, () => bookmark.note);
9795
- return _el$203;
9917
+ var _el$202 = _tmpl$49();
9918
+ insert(_el$202, () => bookmark.note);
9919
+ return _el$202;
9796
9920
  }
9797
- }), _el$227);
9798
- insert(_el$199, createComponent(Show, {
9921
+ }), _el$226);
9922
+ insert(_el$198, createComponent(Show, {
9799
9923
  get when() {
9800
9924
  return bookmark.intent || bookmark.expectedContent || (bookmark.keyFields?.length || 0) > 0 || (bookmark.agentHints && Object.keys(bookmark.agentHints).length || 0) > 0;
9801
9925
  },
9802
9926
  get children() {
9803
- var _el$204 = _tmpl$48();
9804
- insert(_el$204, createComponent(Show, {
9927
+ var _el$203 = _tmpl$49();
9928
+ insert(_el$203, createComponent(Show, {
9805
9929
  get when() {
9806
9930
  return bookmark.intent;
9807
9931
  },
9808
9932
  get children() {
9809
- var _el$205 = _tmpl$49(), _el$206 = _el$205.firstChild;
9810
- _el$206.nextSibling;
9811
- insert(_el$205, () => bookmark.intent, null);
9812
- return _el$205;
9933
+ var _el$204 = _tmpl$50(), _el$205 = _el$204.firstChild;
9934
+ _el$205.nextSibling;
9935
+ insert(_el$204, () => bookmark.intent, null);
9936
+ return _el$204;
9813
9937
  }
9814
9938
  }), null);
9815
- insert(_el$204, createComponent(Show, {
9939
+ insert(_el$203, createComponent(Show, {
9816
9940
  get when() {
9817
9941
  return bookmark.expectedContent;
9818
9942
  },
9819
9943
  get children() {
9820
- var _el$208 = _tmpl$50(), _el$209 = _el$208.firstChild;
9821
- _el$209.nextSibling;
9822
- insert(_el$208, () => bookmark.expectedContent, null);
9823
- return _el$208;
9944
+ var _el$207 = _tmpl$51(), _el$208 = _el$207.firstChild;
9945
+ _el$208.nextSibling;
9946
+ insert(_el$207, () => bookmark.expectedContent, null);
9947
+ return _el$207;
9824
9948
  }
9825
9949
  }), null);
9826
- insert(_el$204, createComponent(Show, {
9950
+ insert(_el$203, createComponent(Show, {
9827
9951
  get when() {
9828
9952
  return (bookmark.keyFields?.length || 0) > 0;
9829
9953
  },
9830
9954
  get children() {
9831
- var _el$211 = _tmpl$51(), _el$212 = _el$211.firstChild;
9832
- _el$212.nextSibling;
9833
- insert(_el$211, () => bookmark.keyFields?.join(", "), null);
9834
- return _el$211;
9955
+ var _el$210 = _tmpl$52(), _el$211 = _el$210.firstChild;
9956
+ _el$211.nextSibling;
9957
+ insert(_el$210, () => bookmark.keyFields?.join(", "), null);
9958
+ return _el$210;
9835
9959
  }
9836
9960
  }), null);
9837
- insert(_el$204, createComponent(Show, {
9961
+ insert(_el$203, createComponent(Show, {
9838
9962
  get when() {
9839
9963
  return memo(() => !!bookmark.agentHints)() && Object.keys(bookmark.agentHints).length > 0;
9840
9964
  },
9841
9965
  get children() {
9842
- var _el$214 = _tmpl$52(), _el$215 = _el$214.firstChild;
9843
- _el$215.nextSibling;
9844
- insert(_el$214, () => Object.entries(bookmark.agentHints || {}).map(([key, hint]) => `${key}: ${hint}`).join(" • "), null);
9845
- return _el$214;
9966
+ var _el$213 = _tmpl$53(), _el$214 = _el$213.firstChild;
9967
+ _el$214.nextSibling;
9968
+ insert(_el$213, () => Object.entries(bookmark.agentHints || {}).map(([key, hint]) => `${key}: ${hint}`).join(" • "), null);
9969
+ return _el$213;
9846
9970
  }
9847
9971
  }), null);
9848
- return _el$204;
9972
+ return _el$203;
9849
9973
  }
9850
- }), _el$227);
9851
- insert(_el$199, createComponent(Show, {
9974
+ }), _el$226);
9975
+ insert(_el$198, createComponent(Show, {
9852
9976
  get when() {
9853
9977
  return editingBookmarkId() === bookmark.id;
9854
9978
  },
9855
9979
  get children() {
9856
- var _el$217 = _tmpl$53(), _el$218 = _el$217.firstChild, _el$219 = _el$218.nextSibling, _el$220 = _el$219.nextSibling, _el$221 = _el$220.nextSibling, _el$222 = _el$221.nextSibling, _el$223 = _el$222.nextSibling, _el$224 = _el$223.nextSibling, _el$225 = _el$224.firstChild, _el$226 = _el$225.nextSibling;
9857
- _el$218.$$input = (e) => setEditingBookmarkTitle(e.currentTarget.value);
9858
- _el$219.$$input = (e) => setEditingBookmarkNote(e.currentTarget.value);
9859
- _el$220.$$input = (e) => setEditingBookmarkIntent(e.currentTarget.value);
9860
- _el$221.$$input = (e) => setEditingBookmarkExpectedContent(e.currentTarget.value);
9861
- _el$222.$$input = (e) => setEditingBookmarkKeyFields(e.currentTarget.value);
9862
- _el$223.$$input = (e) => setEditingBookmarkAgentHints(e.currentTarget.value);
9863
- _el$225.$$click = () => void handleUpdateBookmark(bookmark.id);
9864
- _el$226.$$click = resetBookmarkEditor;
9865
- createRenderEffect(() => _el$218.value = editingBookmarkTitle());
9866
- createRenderEffect(() => _el$219.value = editingBookmarkNote());
9867
- createRenderEffect(() => _el$220.value = editingBookmarkIntent());
9868
- createRenderEffect(() => _el$221.value = editingBookmarkExpectedContent());
9869
- createRenderEffect(() => _el$222.value = editingBookmarkKeyFields());
9870
- createRenderEffect(() => _el$223.value = editingBookmarkAgentHints());
9871
- return _el$217;
9980
+ var _el$216 = _tmpl$54(), _el$217 = _el$216.firstChild, _el$218 = _el$217.nextSibling, _el$219 = _el$218.nextSibling, _el$220 = _el$219.nextSibling, _el$221 = _el$220.nextSibling, _el$222 = _el$221.nextSibling, _el$223 = _el$222.nextSibling, _el$224 = _el$223.firstChild, _el$225 = _el$224.nextSibling;
9981
+ _el$217.$$input = (e) => setEditingBookmarkTitle(e.currentTarget.value);
9982
+ _el$218.$$input = (e) => setEditingBookmarkNote(e.currentTarget.value);
9983
+ _el$219.$$input = (e) => setEditingBookmarkIntent(e.currentTarget.value);
9984
+ _el$220.$$input = (e) => setEditingBookmarkExpectedContent(e.currentTarget.value);
9985
+ _el$221.$$input = (e) => setEditingBookmarkKeyFields(e.currentTarget.value);
9986
+ _el$222.$$input = (e) => setEditingBookmarkAgentHints(e.currentTarget.value);
9987
+ _el$224.$$click = () => void handleUpdateBookmark(bookmark.id);
9988
+ _el$225.$$click = resetBookmarkEditor;
9989
+ createRenderEffect(() => _el$217.value = editingBookmarkTitle());
9990
+ createRenderEffect(() => _el$218.value = editingBookmarkNote());
9991
+ createRenderEffect(() => _el$219.value = editingBookmarkIntent());
9992
+ createRenderEffect(() => _el$220.value = editingBookmarkExpectedContent());
9993
+ createRenderEffect(() => _el$221.value = editingBookmarkKeyFields());
9994
+ createRenderEffect(() => _el$222.value = editingBookmarkAgentHints());
9995
+ return _el$216;
9872
9996
  }
9873
- }), _el$227);
9874
- insert(_el$228, () => formatBookmarkDate(bookmark.savedAt));
9875
- _el$229.$$click = () => editingBookmarkId() === bookmark.id ? resetBookmarkEditor() : startEditingBookmark(bookmark);
9876
- insert(_el$229, () => editingBookmarkId() === bookmark.id ? "Close" : "Edit");
9877
- _el$230.$$click = () => {
9997
+ }), _el$226);
9998
+ insert(_el$227, () => formatBookmarkDate(bookmark.savedAt));
9999
+ _el$228.$$click = () => editingBookmarkId() === bookmark.id ? resetBookmarkEditor() : startEditingBookmark(bookmark);
10000
+ insert(_el$228, () => editingBookmarkId() === bookmark.id ? "Close" : "Edit");
10001
+ _el$229.$$click = () => {
9878
10002
  if (editingBookmarkId() === bookmark.id) {
9879
10003
  resetBookmarkEditor();
9880
10004
  }
9881
10005
  void removeBookmark(bookmark.id);
9882
10006
  };
9883
- createRenderEffect(() => setAttribute(_el$199, "data-bookmark-id", bookmark.id));
9884
- return _el$199;
10007
+ createRenderEffect(() => setAttribute(_el$198, "data-bookmark-id", bookmark.id));
10008
+ return _el$198;
9885
10009
  })()
9886
10010
  }));
9887
- return _el$196;
10011
+ return _el$195;
9888
10012
  }
9889
10013
  });
9890
10014
  }
9891
10015
  }), null);
9892
- createRenderEffect(() => _el$171.classList.toggle("expanded", !!isFolderExpanded(folder.id)));
9893
- return _el$168;
10016
+ createRenderEffect(() => _el$170.classList.toggle("expanded", !!isFolderExpanded(folder.id)));
10017
+ return _el$167;
9894
10018
  })()
9895
10019
  });
9896
10020
  }
9897
10021
  }));
9898
10022
  createRenderEffect((_p$) => {
9899
10023
  var _v$3 = bookmarkExporting(), _v$4 = bookmarkExporting(), _v$5 = bookmarkExporting(), _v$6 = !!bookmarkImportExpanded(), _v$7 = !!bookmarkSaveExpanded(), _v$8 = !newFolderName().trim();
9900
- _v$3 !== _p$.e && (_el$52.disabled = _p$.e = _v$3);
9901
- _v$4 !== _p$.t && (_el$53.disabled = _p$.t = _v$4);
9902
- _v$5 !== _p$.a && (_el$54.disabled = _p$.a = _v$5);
9903
- _v$6 !== _p$.o && _el$59.classList.toggle("expanded", _p$.o = _v$6);
9904
- _v$7 !== _p$.i && _el$68.classList.toggle("expanded", _p$.i = _v$7);
9905
- _v$8 !== _p$.n && (_el$83.disabled = _p$.n = _v$8);
10024
+ _v$3 !== _p$.e && (_el$51.disabled = _p$.e = _v$3);
10025
+ _v$4 !== _p$.t && (_el$52.disabled = _p$.t = _v$4);
10026
+ _v$5 !== _p$.a && (_el$53.disabled = _p$.a = _v$5);
10027
+ _v$6 !== _p$.o && _el$58.classList.toggle("expanded", _p$.o = _v$6);
10028
+ _v$7 !== _p$.i && _el$67.classList.toggle("expanded", _p$.i = _v$7);
10029
+ _v$8 !== _p$.n && (_el$82.disabled = _p$.n = _v$8);
9906
10030
  return _p$;
9907
10031
  }, {
9908
10032
  e: void 0,
@@ -9912,72 +10036,72 @@ ${contextBlock}` : contextBlock);
9912
10036
  i: void 0,
9913
10037
  n: void 0
9914
10038
  });
9915
- createRenderEffect(() => _el$48.value = bookmarkSearchQuery());
9916
- createRenderEffect(() => _el$81.value = newFolderName());
9917
- createRenderEffect(() => _el$82.value = newFolderSummary());
9918
- return _el$42;
10039
+ createRenderEffect(() => _el$47.value = bookmarkSearchQuery());
10040
+ createRenderEffect(() => _el$80.value = newFolderName());
10041
+ createRenderEffect(() => _el$81.value = newFolderSummary());
10042
+ return _el$41;
9919
10043
  }
9920
- }), _el$132);
9921
- insert(_el$26, createComponent(Show, {
10044
+ }), _el$131);
10045
+ insert(_el$25, createComponent(Show, {
9922
10046
  get when() {
9923
10047
  return sidebarTab() === "checkpoints";
9924
10048
  },
9925
10049
  get children() {
9926
- var _el$85 = _tmpl$12$3(), _el$86 = _el$85.firstChild, _el$87 = _el$86.firstChild, _el$88 = _el$87.firstChild, _el$89 = _el$88.nextSibling, _el$90 = _el$86.nextSibling, _el$91 = _el$90.firstChild, _el$92 = _el$91.firstChild, _el$93 = _el$92.nextSibling, _el$94 = _el$93.nextSibling;
9927
- _el$91.nextSibling;
9928
- insert(_el$89, (() => {
10050
+ var _el$84 = _tmpl$13$2(), _el$85 = _el$84.firstChild, _el$86 = _el$85.firstChild, _el$87 = _el$86.firstChild, _el$88 = _el$87.nextSibling, _el$89 = _el$85.nextSibling, _el$90 = _el$89.firstChild, _el$91 = _el$90.firstChild, _el$92 = _el$91.nextSibling, _el$93 = _el$92.nextSibling;
10051
+ _el$90.nextSibling;
10052
+ insert(_el$88, (() => {
9929
10053
  var _c$3 = memo(() => recentCheckpoints().length > 0);
9930
10054
  return () => _c$3() ? `${recentCheckpoints().length} saved snapshots` : "Save and restore session snapshots";
9931
10055
  })());
9932
- _el$92.$$input = (e) => setCheckpointName(e.currentTarget.value);
9933
- _el$93.$$input = (e) => setCheckpointNote(e.currentTarget.value);
9934
- _el$94.$$click = async () => {
10056
+ _el$91.$$input = (e) => setCheckpointName(e.currentTarget.value);
10057
+ _el$92.$$input = (e) => setCheckpointNote(e.currentTarget.value);
10058
+ _el$93.$$click = async () => {
9935
10059
  const name = checkpointName().trim();
9936
10060
  await createCheckpoint(name || void 0, checkpointNote() || void 0);
9937
10061
  setCheckpointName("");
9938
10062
  setCheckpointNote("");
9939
10063
  };
9940
- insert(_el$90, createComponent(Show, {
10064
+ insert(_el$89, createComponent(Show, {
9941
10065
  get when() {
9942
10066
  return recentCheckpoints().length > 0;
9943
10067
  },
9944
10068
  get fallback() {
9945
- return _tmpl$55();
10069
+ return _tmpl$56();
9946
10070
  },
9947
10071
  get children() {
9948
- var _el$96 = _tmpl$11$3();
9949
- insert(_el$96, createComponent(For, {
10072
+ var _el$95 = _tmpl$12$3();
10073
+ insert(_el$95, createComponent(For, {
9950
10074
  get each() {
9951
10075
  return recentCheckpoints();
9952
10076
  },
9953
10077
  children: (checkpoint, i) => (() => {
9954
- var _el$232 = _tmpl$57(), _el$233 = _el$232.firstChild, _el$234 = _el$233.firstChild, _el$236 = _el$233.nextSibling, _el$237 = _el$236.firstChild, _el$238 = _el$237.nextSibling, _el$239 = _el$238.nextSibling, _el$240 = _el$239.nextSibling;
9955
- insert(_el$233, createComponent(Show, {
10078
+ var _el$231 = _tmpl$58(), _el$232 = _el$231.firstChild, _el$233 = _el$232.firstChild, _el$235 = _el$232.nextSibling, _el$236 = _el$235.firstChild, _el$237 = _el$236.nextSibling, _el$238 = _el$237.nextSibling, _el$239 = _el$238.nextSibling;
10079
+ insert(_el$232, createComponent(Show, {
9956
10080
  get when() {
9957
10081
  return i() < recentCheckpoints().length - 1;
9958
10082
  },
9959
10083
  get children() {
9960
- return _tmpl$56();
10084
+ return _tmpl$57();
9961
10085
  }
9962
10086
  }), null);
9963
- insert(_el$237, () => checkpoint.name);
9964
- insert(_el$238, () => new Date(checkpoint.createdAt).toLocaleString());
9965
- _el$239.addEventListener("blur", (e) => void updateCheckpointNote(checkpoint.id, e.currentTarget.value));
9966
- _el$240.$$click = () => void restoreCheckpoint(checkpoint.id);
9967
- createRenderEffect(() => _el$234.classList.toggle("latest", !!(i() === 0)));
9968
- createRenderEffect(() => _el$239.value = checkpoint.note || "");
9969
- return _el$232;
10087
+ insert(_el$236, () => checkpoint.name);
10088
+ insert(_el$237, () => new Date(checkpoint.createdAt).toLocaleString());
10089
+ _el$238.addEventListener("blur", (e) => void updateCheckpointNote(checkpoint.id, e.currentTarget.value));
10090
+ _el$239.$$click = () => void restoreCheckpoint(checkpoint.id);
10091
+ createRenderEffect(() => _el$233.classList.toggle("latest", !!(i() === 0)));
10092
+ createRenderEffect(() => _el$238.value = checkpoint.note || "");
10093
+ return _el$231;
9970
10094
  })()
9971
10095
  }));
9972
- return _el$96;
10096
+ return _el$95;
9973
10097
  }
9974
10098
  }), null);
9975
- createRenderEffect(() => _el$92.value = checkpointName());
9976
- createRenderEffect(() => _el$93.value = checkpointNote());
9977
- return _el$85;
10099
+ createRenderEffect(() => _el$91.value = checkpointName());
10100
+ createRenderEffect(() => _el$92.value = checkpointNote());
10101
+ return _el$84;
9978
10102
  }
9979
- }), _el$132);
9980
- insert(_el$26, createComponent(Show, {
10103
+ }), _el$131);
10104
+ insert(_el$25, createComponent(Show, {
9981
10105
  get when() {
9982
10106
  return sidebarTab() === "automation";
9983
10107
  },
@@ -9986,101 +10110,101 @@ ${contextBlock}` : contextBlock);
9986
10110
  onRun: () => setSidebarTab("supervisor")
9987
10111
  });
9988
10112
  }
9989
- }), _el$132);
9990
- insert(_el$26, createComponent(Show, {
10113
+ }), _el$131);
10114
+ insert(_el$25, createComponent(Show, {
9991
10115
  get when() {
9992
10116
  return sidebarTab() === "research";
9993
10117
  },
9994
10118
  get children() {
9995
10119
  return createComponent(ResearchDesk, {});
9996
10120
  }
9997
- }), _el$132);
9998
- insert(_el$26, createComponent(Show, {
10121
+ }), _el$131);
10122
+ insert(_el$25, createComponent(Show, {
9999
10123
  get when() {
10000
10124
  return sidebarTab() === "history";
10001
10125
  },
10002
10126
  get children() {
10003
- var _el$97 = _tmpl$15$2(), _el$98 = _el$97.firstChild, _el$99 = _el$98.firstChild, _el$100 = _el$99.nextSibling, _el$101 = _el$100.firstChild, _el$102 = _el$101.nextSibling, _el$103 = _el$102.nextSibling, _el$104 = _el$103.nextSibling, _el$105 = _el$98.nextSibling;
10004
- _el$101.$$click = async () => {
10127
+ var _el$96 = _tmpl$16$1(), _el$97 = _el$96.firstChild, _el$98 = _el$97.firstChild, _el$99 = _el$98.nextSibling, _el$100 = _el$99.firstChild, _el$101 = _el$100.nextSibling, _el$102 = _el$101.nextSibling, _el$103 = _el$102.nextSibling, _el$104 = _el$97.nextSibling;
10128
+ _el$100.$$click = async () => {
10005
10129
  await history.clear();
10006
10130
  };
10007
- _el$102.$$click = async () => {
10131
+ _el$101.$$click = async () => {
10008
10132
  const result = await window.vessel.history.exportHtml();
10009
10133
  if (!result) return;
10010
10134
  };
10011
- _el$103.$$click = async () => {
10135
+ _el$102.$$click = async () => {
10012
10136
  const result = await window.vessel.history.exportJson();
10013
10137
  if (!result) return;
10014
10138
  };
10015
- _el$104.$$click = async () => {
10139
+ _el$103.$$click = async () => {
10016
10140
  const result = await window.vessel.history.importFile();
10017
10141
  if (!result) return;
10018
10142
  };
10019
- insert(_el$105, createComponent(For, {
10143
+ insert(_el$104, createComponent(For, {
10020
10144
  get each() {
10021
10145
  return history.historyState().entries;
10022
10146
  },
10023
10147
  children: (entry) => (() => {
10024
- var _el$241 = _tmpl$58(), _el$242 = _el$241.firstChild, _el$243 = _el$242.nextSibling, _el$244 = _el$243.nextSibling;
10025
- _el$241.$$click = () => createTab(entry.url);
10026
- insert(_el$242, () => entry.title || entry.url);
10027
- insert(_el$243, () => entry.url);
10028
- insert(_el$244, () => new Date(entry.visitedAt).toLocaleString());
10029
- return _el$241;
10148
+ var _el$240 = _tmpl$59(), _el$241 = _el$240.firstChild, _el$242 = _el$241.nextSibling, _el$243 = _el$242.nextSibling;
10149
+ _el$240.$$click = () => createTab(entry.url);
10150
+ insert(_el$241, () => entry.title || entry.url);
10151
+ insert(_el$242, () => entry.url);
10152
+ insert(_el$243, () => new Date(entry.visitedAt).toLocaleString());
10153
+ return _el$240;
10030
10154
  })()
10031
10155
  }), null);
10032
- insert(_el$105, createComponent(Show, {
10156
+ insert(_el$104, createComponent(Show, {
10033
10157
  get when() {
10034
10158
  return history.hasMore();
10035
10159
  },
10036
10160
  get children() {
10037
- var _el$106 = _tmpl$13$2(), _el$107 = _el$106.firstChild, _el$108 = _el$107.nextSibling, _el$109 = _el$108.firstChild, _el$112 = _el$109.nextSibling;
10038
- _el$112.nextSibling;
10039
- _el$106.$$click = () => void history.loadMore();
10040
- insert(_el$108, () => history.historyState().entries.length, _el$112);
10041
- insert(_el$108, () => history.historyTotal(), null);
10042
- return _el$106;
10161
+ var _el$105 = _tmpl$14$2(), _el$106 = _el$105.firstChild, _el$107 = _el$106.nextSibling, _el$108 = _el$107.firstChild, _el$111 = _el$108.nextSibling;
10162
+ _el$111.nextSibling;
10163
+ _el$105.$$click = () => void history.loadMore();
10164
+ insert(_el$107, () => history.historyState().entries.length, _el$111);
10165
+ insert(_el$107, () => history.historyTotal(), null);
10166
+ return _el$105;
10043
10167
  }
10044
10168
  }), null);
10045
- insert(_el$105, createComponent(Show, {
10169
+ insert(_el$104, createComponent(Show, {
10046
10170
  get when() {
10047
10171
  return history.historyState().entries.length === 0;
10048
10172
  },
10049
10173
  get children() {
10050
- return _tmpl$14$2();
10174
+ return _tmpl$15$2();
10051
10175
  }
10052
10176
  }), null);
10053
- return _el$97;
10177
+ return _el$96;
10054
10178
  }
10055
- }), _el$132);
10056
- insert(_el$26, createComponent(Show, {
10179
+ }), _el$131);
10180
+ insert(_el$25, createComponent(Show, {
10057
10181
  get when() {
10058
10182
  return sidebarTab() === "diff";
10059
10183
  },
10060
10184
  get children() {
10061
- var _el$114 = _tmpl$16$1(), _el$115 = _el$114.firstChild, _el$116 = _el$115.firstChild, _el$117 = _el$116.nextSibling;
10062
- insert(_el$117, () => isPremium() ? "Page change timeline" : "Premium feature");
10063
- insert(_el$114, createComponent(Show, {
10185
+ var _el$113 = _tmpl$17$1(), _el$114 = _el$113.firstChild, _el$115 = _el$114.firstChild, _el$116 = _el$115.nextSibling;
10186
+ insert(_el$116, () => isPremium() ? "Page change timeline" : "Premium feature");
10187
+ insert(_el$113, createComponent(Show, {
10064
10188
  get when() {
10065
10189
  return isPremium();
10066
10190
  },
10067
10191
  get fallback() {
10068
10192
  return (() => {
10069
- var _el$245 = _tmpl$59(), _el$246 = _el$245.firstChild, _el$247 = _el$246.nextSibling, _el$248 = _el$247.nextSibling, _el$249 = _el$248.firstChild, _el$250 = _el$249.nextSibling;
10070
- _el$249.$$click = () => void window.vessel.premium.checkout(premiumState().email || void 0).catch(() => {
10193
+ var _el$244 = _tmpl$60(), _el$245 = _el$244.firstChild, _el$246 = _el$245.nextSibling, _el$247 = _el$246.nextSibling, _el$248 = _el$247.firstChild, _el$249 = _el$248.nextSibling;
10194
+ _el$248.$$click = () => void window.vessel.premium.checkout(premiumState().email || void 0).catch(() => {
10071
10195
  });
10072
- _el$250.$$click = openPremiumDetails;
10073
- return _el$245;
10196
+ _el$249.$$click = openPremiumDetails;
10197
+ return _el$244;
10074
10198
  })();
10075
10199
  },
10076
10200
  get children() {
10077
10201
  return createComponent(PageDiffTimeline, {});
10078
10202
  }
10079
10203
  }), null);
10080
- return _el$114;
10204
+ return _el$113;
10081
10205
  }
10082
- }), _el$132);
10083
- insert(_el$26, createComponent(Show, {
10206
+ }), _el$131);
10207
+ insert(_el$25, createComponent(Show, {
10084
10208
  get when() {
10085
10209
  return sidebarTab() === "chat";
10086
10210
  },
@@ -10090,23 +10214,23 @@ ${contextBlock}` : contextBlock);
10090
10214
  return !isPremium();
10091
10215
  },
10092
10216
  get children() {
10093
- var _el$118 = _tmpl$17$1(), _el$119 = _el$118.firstChild, _el$120 = _el$119.nextSibling, _el$121 = _el$120.nextSibling, _el$122 = _el$121.firstChild, _el$123 = _el$122.nextSibling;
10094
- _el$122.$$click = () => openPremiumCheckout("chat_banner_clicked");
10095
- _el$123.$$click = openPremiumDetails;
10096
- return _el$118;
10217
+ var _el$117 = _tmpl$18$1(), _el$118 = _el$117.firstChild, _el$119 = _el$118.nextSibling, _el$120 = _el$119.nextSibling, _el$121 = _el$120.firstChild, _el$122 = _el$121.nextSibling;
10218
+ _el$121.$$click = () => openPremiumCheckout("chat_banner_clicked");
10219
+ _el$122.$$click = openPremiumDetails;
10220
+ return _el$117;
10097
10221
  }
10098
10222
  }), createComponent(For, {
10099
10223
  get each() {
10100
10224
  return messages2();
10101
10225
  },
10102
10226
  children: (msg) => (() => {
10103
- var _el$251 = _tmpl$60();
10104
- insert(_el$251, createComponent(MarkdownMessage, {
10227
+ var _el$250 = _tmpl$61();
10228
+ insert(_el$250, createComponent(MarkdownMessage, {
10105
10229
  get content() {
10106
10230
  return msg.content;
10107
10231
  }
10108
10232
  }), null);
10109
- insert(_el$251, createComponent(Show, {
10233
+ insert(_el$250, createComponent(Show, {
10110
10234
  get when() {
10111
10235
  return memo(() => msg.role === "assistant")() ? getPremiumPromptKind(msg.content) : null;
10112
10236
  },
@@ -10119,31 +10243,31 @@ ${contextBlock}` : contextBlock);
10119
10243
  onOpenSettings: openPremiumDetails
10120
10244
  })
10121
10245
  }), null);
10122
- createRenderEffect(() => className(_el$251, `message message-${msg.role}`));
10123
- return _el$251;
10246
+ createRenderEffect(() => className(_el$250, `message message-${msg.role}`));
10247
+ return _el$250;
10124
10248
  })()
10125
10249
  }), createComponent(Show, {
10126
10250
  get when() {
10127
10251
  return isStreaming2();
10128
10252
  },
10129
10253
  get children() {
10130
- var _el$124 = _tmpl$20$1(), _el$125 = _el$124.firstChild;
10131
- insert(_el$125, createComponent(Show, {
10254
+ var _el$123 = _tmpl$21$1(), _el$124 = _el$123.firstChild;
10255
+ insert(_el$124, createComponent(Show, {
10132
10256
  get when() {
10133
10257
  return hasFirstChunk2();
10134
10258
  },
10135
10259
  get fallback() {
10136
- return _tmpl$61();
10260
+ return _tmpl$62();
10137
10261
  },
10138
10262
  get children() {
10139
- var _el$126 = _tmpl$19$1(), _el$127 = _el$126.firstChild, _el$128 = _el$127.firstChild;
10140
- _el$128.nextSibling;
10141
- insert(_el$126, createComponent(MarkdownMessage, {
10263
+ var _el$125 = _tmpl$20$1(), _el$126 = _el$125.firstChild, _el$127 = _el$126.firstChild;
10264
+ _el$127.nextSibling;
10265
+ insert(_el$125, createComponent(MarkdownMessage, {
10142
10266
  get content() {
10143
10267
  return streamingText2();
10144
10268
  }
10145
- }), _el$127);
10146
- insert(_el$126, createComponent(Show, {
10269
+ }), _el$126);
10270
+ insert(_el$125, createComponent(Show, {
10147
10271
  get when() {
10148
10272
  return getPremiumPromptKind(streamingText2());
10149
10273
  },
@@ -10155,21 +10279,21 @@ ${contextBlock}` : contextBlock);
10155
10279
  onStartTrial: () => openPremiumCheckout(kind() === "premium_gate" ? "premium_gate_clicked" : "iteration_limit_clicked"),
10156
10280
  onOpenSettings: openPremiumDetails
10157
10281
  })
10158
- }), _el$127);
10159
- insert(_el$127, createComponent(Show, {
10282
+ }), _el$126);
10283
+ insert(_el$126, createComponent(Show, {
10160
10284
  get when() {
10161
10285
  return elapsedSeconds() > 0;
10162
10286
  },
10163
10287
  get children() {
10164
- var _el$130 = _tmpl$18$1();
10165
- insert(_el$130, () => ` • ${elapsedSeconds()}s`);
10166
- return _el$130;
10288
+ var _el$129 = _tmpl$19$1();
10289
+ insert(_el$129, () => ` • ${elapsedSeconds()}s`);
10290
+ return _el$129;
10167
10291
  }
10168
10292
  }), null);
10169
- return _el$126;
10293
+ return _el$125;
10170
10294
  }
10171
10295
  }));
10172
- return _el$124;
10296
+ return _el$123;
10173
10297
  }
10174
10298
  }), createComponent(Show, {
10175
10299
  get when() {
@@ -10181,22 +10305,22 @@ ${contextBlock}` : contextBlock);
10181
10305
  return runtimeState2().supervisor.pendingApprovals;
10182
10306
  },
10183
10307
  children: (approval) => (() => {
10184
- var _el$253 = _tmpl$63(), _el$254 = _el$253.firstChild, _el$255 = _el$254.nextSibling, _el$256 = _el$255.firstChild, _el$257 = _el$256.firstChild, _el$258 = _el$257.nextSibling, _el$260 = _el$256.nextSibling, _el$261 = _el$260.nextSibling, _el$262 = _el$261.firstChild, _el$263 = _el$262.nextSibling;
10185
- insert(_el$258, () => approval.name);
10186
- insert(_el$255, createComponent(Show, {
10308
+ var _el$252 = _tmpl$64(), _el$253 = _el$252.firstChild, _el$254 = _el$253.nextSibling, _el$255 = _el$254.firstChild, _el$256 = _el$255.firstChild, _el$257 = _el$256.nextSibling, _el$259 = _el$255.nextSibling, _el$260 = _el$259.nextSibling, _el$261 = _el$260.firstChild, _el$262 = _el$261.nextSibling;
10309
+ insert(_el$257, () => approval.name);
10310
+ insert(_el$254, createComponent(Show, {
10187
10311
  get when() {
10188
10312
  return approval.argsSummary;
10189
10313
  },
10190
10314
  get children() {
10191
- var _el$259 = _tmpl$62();
10192
- insert(_el$259, () => approval.argsSummary);
10193
- return _el$259;
10315
+ var _el$258 = _tmpl$63();
10316
+ insert(_el$258, () => approval.argsSummary);
10317
+ return _el$258;
10194
10318
  }
10195
- }), _el$260);
10196
- insert(_el$260, () => approval.reason);
10197
- _el$262.$$click = () => void resolveApproval(approval.id, true);
10198
- _el$263.$$click = () => void resolveApproval(approval.id, false);
10199
- return _el$253;
10319
+ }), _el$259);
10320
+ insert(_el$259, () => approval.reason);
10321
+ _el$261.$$click = () => void resolveApproval(approval.id, true);
10322
+ _el$262.$$click = () => void resolveApproval(approval.id, false);
10323
+ return _el$252;
10200
10324
  })()
10201
10325
  });
10202
10326
  }
@@ -10205,13 +10329,13 @@ ${contextBlock}` : contextBlock);
10205
10329
  return memo(() => messages2().length === 0)() && !isStreaming2();
10206
10330
  },
10207
10331
  get children() {
10208
- return _tmpl$21$1();
10332
+ return _tmpl$22$1();
10209
10333
  }
10210
10334
  })];
10211
10335
  }
10212
- }), _el$132);
10336
+ }), _el$131);
10213
10337
  var _ref$ = messagesEndRef;
10214
- typeof _ref$ === "function" ? use(_ref$, _el$132) : messagesEndRef = _el$132;
10338
+ typeof _ref$ === "function" ? use(_ref$, _el$131) : messagesEndRef = _el$131;
10215
10339
  insert(_el$9, createComponent(Show, {
10216
10340
  get when() {
10217
10341
  return sidebarTab() === "chat";
@@ -10222,143 +10346,142 @@ ${contextBlock}` : contextBlock);
10222
10346
  return isStreaming2() || messages2().length > 0;
10223
10347
  },
10224
10348
  get children() {
10225
- var _el$133 = _tmpl$24$1();
10226
- insert(_el$133, createComponent(Show, {
10349
+ var _el$132 = _tmpl$25$1();
10350
+ insert(_el$132, createComponent(Show, {
10227
10351
  get when() {
10228
10352
  return isStreaming2();
10229
10353
  },
10230
10354
  get children() {
10231
- var _el$134 = _tmpl$22$1();
10232
- _el$134.$$click = () => cancel();
10233
- return _el$134;
10355
+ var _el$133 = _tmpl$23$1();
10356
+ _el$133.$$click = () => cancel();
10357
+ return _el$133;
10234
10358
  }
10235
10359
  }), null);
10236
- insert(_el$133, createComponent(Show, {
10360
+ insert(_el$132, createComponent(Show, {
10237
10361
  get when() {
10238
10362
  return memo(() => !!!isStreaming2())() && messages2().length > 0;
10239
10363
  },
10240
10364
  get children() {
10241
- var _el$135 = _tmpl$23$1();
10242
- _el$135.$$click = handleRetry;
10243
- return _el$135;
10365
+ var _el$134 = _tmpl$24$1();
10366
+ _el$134.$$click = handleRetry;
10367
+ return _el$134;
10244
10368
  }
10245
10369
  }), null);
10246
- return _el$133;
10370
+ return _el$132;
10247
10371
  }
10248
10372
  }), createComponent(Show, {
10249
10373
  get when() {
10250
10374
  return highlightCount() > 0;
10251
10375
  },
10252
10376
  get children() {
10253
- var _el$136 = _tmpl$25$1(), _el$137 = _el$136.firstChild, _el$138 = _el$137.nextSibling;
10254
- _el$138.firstChild;
10255
- var _el$140 = _el$138.nextSibling;
10256
- _el$137.$$click = () => void scrollToHighlight(highlightIndex() - 1);
10257
- _el$138.$$click = () => void scrollToHighlight(highlightIndex() < 0 ? 0 : highlightIndex());
10258
- insert(_el$138, (() => {
10377
+ var _el$135 = _tmpl$26$1(), _el$136 = _el$135.firstChild, _el$137 = _el$136.nextSibling;
10378
+ _el$137.firstChild;
10379
+ var _el$139 = _el$137.nextSibling;
10380
+ _el$136.$$click = () => void scrollToHighlight(highlightIndex() - 1);
10381
+ _el$137.$$click = () => void scrollToHighlight(highlightIndex() < 0 ? 0 : highlightIndex());
10382
+ insert(_el$137, (() => {
10259
10383
  var _c$4 = memo(() => highlightIndex() >= 0);
10260
10384
  return () => _c$4() ? `${highlightIndex() + 1} / ${highlightCount()}` : `${highlightCount()} highlight${highlightCount() > 1 ? "s" : ""}`;
10261
10385
  })(), null);
10262
- _el$140.$$click = () => void scrollToHighlight(highlightIndex() < 0 ? 0 : highlightIndex() + 1);
10386
+ _el$139.$$click = () => void scrollToHighlight(highlightIndex() < 0 ? 0 : highlightIndex() + 1);
10263
10387
  createRenderEffect((_p$) => {
10264
10388
  var _v$9 = highlightIndex() <= 0, _v$0 = highlightIndex() >= highlightCount() - 1;
10265
- _v$9 !== _p$.e && (_el$137.disabled = _p$.e = _v$9);
10266
- _v$0 !== _p$.t && (_el$140.disabled = _p$.t = _v$0);
10389
+ _v$9 !== _p$.e && (_el$136.disabled = _p$.e = _v$9);
10390
+ _v$0 !== _p$.t && (_el$139.disabled = _p$.t = _v$0);
10267
10391
  return _p$;
10268
10392
  }, {
10269
10393
  e: void 0,
10270
10394
  t: void 0
10271
10395
  });
10272
- return _el$136;
10396
+ return _el$135;
10273
10397
  }
10274
10398
  }), createComponent(Show, {
10275
10399
  get when() {
10276
10400
  return queueNotice2() !== null || pendingQueryCount() > 0;
10277
10401
  },
10278
10402
  get children() {
10279
- var _el$141 = _tmpl$28$1(), _el$142 = _el$141.firstChild, _el$143 = _el$142.firstChild;
10280
- insert(_el$143, () => queueNotice2() ?? `Queued ${pendingQueryCount()}/${pendingQueryLimit}.`);
10281
- insert(_el$142, createComponent(Show, {
10403
+ var _el$140 = _tmpl$29$1(), _el$141 = _el$140.firstChild, _el$142 = _el$141.firstChild;
10404
+ insert(_el$142, () => queueNotice2() ?? `Queued ${pendingQueryCount()}/${pendingQueryLimit}.`);
10405
+ insert(_el$141, createComponent(Show, {
10282
10406
  get when() {
10283
10407
  return pendingQueryCount() > 0;
10284
10408
  },
10285
10409
  get children() {
10286
- var _el$144 = _tmpl$26$1();
10287
- _el$144.$$click = () => clearPendingQueries();
10288
- return _el$144;
10410
+ var _el$143 = _tmpl$27$1();
10411
+ _el$143.$$click = () => clearPendingQueries();
10412
+ return _el$143;
10289
10413
  }
10290
10414
  }), null);
10291
- insert(_el$141, createComponent(Show, {
10415
+ insert(_el$140, createComponent(Show, {
10292
10416
  get when() {
10293
10417
  return pendingQueries2().length > 0;
10294
10418
  },
10295
10419
  get children() {
10296
- var _el$145 = _tmpl$27$1();
10297
- insert(_el$145, createComponent(For, {
10420
+ var _el$144 = _tmpl$28$1();
10421
+ insert(_el$144, createComponent(For, {
10298
10422
  get each() {
10299
10423
  return pendingQueries2();
10300
10424
  },
10301
10425
  children: (pendingPrompt, index) => (() => {
10302
- var _el$264 = _tmpl$64(), _el$265 = _el$264.firstChild, _el$266 = _el$265.nextSibling;
10303
- setAttribute(_el$265, "title", pendingPrompt);
10304
- insert(_el$265, pendingPrompt);
10305
- _el$266.$$click = () => removePendingQuery(index());
10306
- createRenderEffect(() => setAttribute(_el$266, "aria-label", `Remove queued prompt ${index() + 1}`));
10307
- return _el$264;
10426
+ var _el$263 = _tmpl$65(), _el$264 = _el$263.firstChild, _el$265 = _el$264.nextSibling;
10427
+ setAttribute(_el$264, "title", pendingPrompt);
10428
+ insert(_el$264, pendingPrompt);
10429
+ _el$265.$$click = () => removePendingQuery(index());
10430
+ createRenderEffect(() => setAttribute(_el$265, "aria-label", `Remove queued prompt ${index() + 1}`));
10431
+ return _el$263;
10308
10432
  })()
10309
10433
  }));
10310
- return _el$145;
10434
+ return _el$144;
10311
10435
  }
10312
10436
  }), null);
10313
- return _el$141;
10437
+ return _el$140;
10314
10438
  }
10315
10439
  }), (() => {
10316
- var _el$146 = _tmpl$29$1(), _el$147 = _el$146.firstChild, _el$148 = _el$147.nextSibling;
10317
- _el$147.$$keydown = (e) => {
10440
+ var _el$145 = _tmpl$30(), _el$146 = _el$145.firstChild, _el$147 = _el$146.nextSibling;
10441
+ _el$146.$$keydown = (e) => {
10318
10442
  if (e.key === "Enter" && !e.shiftKey) {
10319
10443
  e.preventDefault();
10320
10444
  void handleChatSend();
10321
10445
  }
10322
10446
  };
10323
- _el$147.$$input = (e) => setChatInput(e.currentTarget.value);
10447
+ _el$146.$$input = (e) => setChatInput(e.currentTarget.value);
10324
10448
  var _ref$2 = chatInputRef;
10325
- typeof _ref$2 === "function" ? use(_ref$2, _el$147) : chatInputRef = _el$147;
10326
- _el$148.$$click = () => void handleChatSend();
10327
- insert(_el$148, () => isStreaming2() ? "Queue" : "Send");
10449
+ typeof _ref$2 === "function" ? use(_ref$2, _el$146) : chatInputRef = _el$146;
10450
+ _el$147.$$click = () => void handleChatSend();
10451
+ insert(_el$147, () => isStreaming2() ? "Queue" : "Send");
10328
10452
  createRenderEffect((_p$) => {
10329
10453
  var _v$1 = isStreaming2() ? "Send now to queue the next prompt..." : "Ask anything...", _v$10 = !chatInput().trim();
10330
- _v$1 !== _p$.e && setAttribute(_el$147, "placeholder", _p$.e = _v$1);
10331
- _v$10 !== _p$.t && (_el$148.disabled = _p$.t = _v$10);
10454
+ _v$1 !== _p$.e && setAttribute(_el$146, "placeholder", _p$.e = _v$1);
10455
+ _v$10 !== _p$.t && (_el$147.disabled = _p$.t = _v$10);
10332
10456
  return _p$;
10333
10457
  }, {
10334
10458
  e: void 0,
10335
10459
  t: void 0
10336
10460
  });
10337
- createRenderEffect(() => _el$147.value = chatInput());
10338
- return _el$146;
10461
+ createRenderEffect(() => _el$146.value = chatInput());
10462
+ return _el$145;
10339
10463
  })()];
10340
10464
  }
10341
10465
  }), null);
10342
10466
  createRenderEffect((_p$) => {
10343
- var _v$11 = `${sidebarWidth2()}px`, _v$12 = !!isDragging(), _v$13 = !!(sidebarTab() === "supervisor"), _v$14 = sidebarTab() === "supervisor", _v$15 = !!(sidebarTab() === "bookmarks"), _v$16 = sidebarTab() === "bookmarks", _v$17 = !!(sidebarTab() === "checkpoints"), _v$18 = sidebarTab() === "checkpoints", _v$19 = !!(sidebarTab() === "chat"), _v$20 = sidebarTab() === "chat", _v$21 = !!(sidebarTab() === "automation"), _v$22 = sidebarTab() === "automation", _v$23 = !!(sidebarTab() === "history"), _v$24 = sidebarTab() === "history", _v$25 = !!(sidebarTab() === "diff"), _v$26 = sidebarTab() === "diff", _v$27 = !!(sidebarTab() === "research"), _v$28 = sidebarTab() === "research";
10467
+ var _v$11 = sidebarDetached2() ? "100%" : `${sidebarWidth2()}px`, _v$12 = !!(sidebarTab() === "supervisor"), _v$13 = sidebarTab() === "supervisor", _v$14 = !!(sidebarTab() === "bookmarks"), _v$15 = sidebarTab() === "bookmarks", _v$16 = !!(sidebarTab() === "checkpoints"), _v$17 = sidebarTab() === "checkpoints", _v$18 = !!(sidebarTab() === "chat"), _v$19 = sidebarTab() === "chat", _v$20 = !!(sidebarTab() === "automation"), _v$21 = sidebarTab() === "automation", _v$22 = !!(sidebarTab() === "history"), _v$23 = sidebarTab() === "history", _v$24 = !!(sidebarTab() === "diff"), _v$25 = sidebarTab() === "diff", _v$26 = !!(sidebarTab() === "research"), _v$27 = sidebarTab() === "research";
10344
10468
  _v$11 !== _p$.e && setStyleProperty(_el$9, "width", _p$.e = _v$11);
10345
- _v$12 !== _p$.t && _el$0.classList.toggle("dragging", _p$.t = _v$12);
10346
- _v$13 !== _p$.a && _el$16.classList.toggle("active", _p$.a = _v$13);
10347
- _v$14 !== _p$.o && setAttribute(_el$16, "aria-selected", _p$.o = _v$14);
10348
- _v$15 !== _p$.i && _el$19.classList.toggle("active", _p$.i = _v$15);
10349
- _v$16 !== _p$.n && setAttribute(_el$19, "aria-selected", _p$.n = _v$16);
10350
- _v$17 !== _p$.s && _el$20.classList.toggle("active", _p$.s = _v$17);
10351
- _v$18 !== _p$.h && setAttribute(_el$20, "aria-selected", _p$.h = _v$18);
10352
- _v$19 !== _p$.r && _el$21.classList.toggle("active", _p$.r = _v$19);
10353
- _v$20 !== _p$.d && setAttribute(_el$21, "aria-selected", _p$.d = _v$20);
10354
- _v$21 !== _p$.l && _el$22.classList.toggle("active", _p$.l = _v$21);
10355
- _v$22 !== _p$.u && setAttribute(_el$22, "aria-selected", _p$.u = _v$22);
10356
- _v$23 !== _p$.c && _el$23.classList.toggle("active", _p$.c = _v$23);
10357
- _v$24 !== _p$.w && setAttribute(_el$23, "aria-selected", _p$.w = _v$24);
10358
- _v$25 !== _p$.m && _el$24.classList.toggle("active", _p$.m = _v$25);
10359
- _v$26 !== _p$.f && setAttribute(_el$24, "aria-selected", _p$.f = _v$26);
10360
- _v$27 !== _p$.y && _el$25.classList.toggle("active", _p$.y = _v$27);
10361
- _v$28 !== _p$.g && setAttribute(_el$25, "aria-selected", _p$.g = _v$28);
10469
+ _v$12 !== _p$.t && _el$15.classList.toggle("active", _p$.t = _v$12);
10470
+ _v$13 !== _p$.a && setAttribute(_el$15, "aria-selected", _p$.a = _v$13);
10471
+ _v$14 !== _p$.o && _el$18.classList.toggle("active", _p$.o = _v$14);
10472
+ _v$15 !== _p$.i && setAttribute(_el$18, "aria-selected", _p$.i = _v$15);
10473
+ _v$16 !== _p$.n && _el$19.classList.toggle("active", _p$.n = _v$16);
10474
+ _v$17 !== _p$.s && setAttribute(_el$19, "aria-selected", _p$.s = _v$17);
10475
+ _v$18 !== _p$.h && _el$20.classList.toggle("active", _p$.h = _v$18);
10476
+ _v$19 !== _p$.r && setAttribute(_el$20, "aria-selected", _p$.r = _v$19);
10477
+ _v$20 !== _p$.d && _el$21.classList.toggle("active", _p$.d = _v$20);
10478
+ _v$21 !== _p$.l && setAttribute(_el$21, "aria-selected", _p$.l = _v$21);
10479
+ _v$22 !== _p$.u && _el$22.classList.toggle("active", _p$.u = _v$22);
10480
+ _v$23 !== _p$.c && setAttribute(_el$22, "aria-selected", _p$.c = _v$23);
10481
+ _v$24 !== _p$.w && _el$23.classList.toggle("active", _p$.w = _v$24);
10482
+ _v$25 !== _p$.m && setAttribute(_el$23, "aria-selected", _p$.m = _v$25);
10483
+ _v$26 !== _p$.f && _el$24.classList.toggle("active", _p$.f = _v$26);
10484
+ _v$27 !== _p$.y && setAttribute(_el$24, "aria-selected", _p$.y = _v$27);
10362
10485
  return _p$;
10363
10486
  }, {
10364
10487
  e: void 0,
@@ -10377,8 +10500,7 @@ ${contextBlock}` : contextBlock);
10377
10500
  w: void 0,
10378
10501
  m: void 0,
10379
10502
  f: void 0,
10380
- y: void 0,
10381
- g: void 0
10503
+ y: void 0
10382
10504
  });
10383
10505
  return _el$9;
10384
10506
  }