@quanta-intellect/vessel-browser 0.1.146 → 0.1.147

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.
@@ -1606,7 +1606,7 @@ var Icon = (props) => {
1606
1606
  })();
1607
1607
  };
1608
1608
  var Icon_default = Icon;
1609
- var iconNode$E = [["rect", {
1609
+ var iconNode$G = [["rect", {
1610
1610
  x: "2",
1611
1611
  y: "4",
1612
1612
  width: "20",
@@ -1624,11 +1624,11 @@ var iconNode$E = [["rect", {
1624
1624
  key: "1svtjw"
1625
1625
  }]];
1626
1626
  var AppWindow = (props) => createComponent(Icon_default, mergeProps(props, {
1627
- iconNode: iconNode$E,
1627
+ iconNode: iconNode$G,
1628
1628
  name: "app-window"
1629
1629
  }));
1630
1630
  var app_window_default = AppWindow;
1631
- var iconNode$D = [["path", {
1631
+ var iconNode$F = [["path", {
1632
1632
  d: "M12 7v14",
1633
1633
  key: "1akyts"
1634
1634
  }], ["path", {
@@ -1636,11 +1636,11 @@ var iconNode$D = [["path", {
1636
1636
  key: "ruj8y"
1637
1637
  }]];
1638
1638
  var BookOpen = (props) => createComponent(Icon_default, mergeProps(props, {
1639
- iconNode: iconNode$D,
1639
+ iconNode: iconNode$F,
1640
1640
  name: "book-open"
1641
1641
  }));
1642
1642
  var book_open_default = BookOpen;
1643
- var iconNode$C = [["path", {
1643
+ var iconNode$E = [["path", {
1644
1644
  d: "M12 8V4H8",
1645
1645
  key: "hb8ula"
1646
1646
  }], ["rect", {
@@ -1664,29 +1664,29 @@ var iconNode$C = [["path", {
1664
1664
  key: "rq6x2g"
1665
1665
  }]];
1666
1666
  var Bot = (props) => createComponent(Icon_default, mergeProps(props, {
1667
- iconNode: iconNode$C,
1667
+ iconNode: iconNode$E,
1668
1668
  name: "bot"
1669
1669
  }));
1670
1670
  var bot_default = Bot;
1671
- var iconNode$B = [["path", {
1671
+ var iconNode$D = [["path", {
1672
1672
  d: "M20 6 9 17l-5-5",
1673
1673
  key: "1gmf2c"
1674
1674
  }]];
1675
1675
  var Check = (props) => createComponent(Icon_default, mergeProps(props, {
1676
- iconNode: iconNode$B,
1676
+ iconNode: iconNode$D,
1677
1677
  name: "check"
1678
1678
  }));
1679
1679
  var check_default = Check;
1680
- var iconNode$A = [["path", {
1680
+ var iconNode$C = [["path", {
1681
1681
  d: "m9 18 6-6-6-6",
1682
1682
  key: "mthhwq"
1683
1683
  }]];
1684
1684
  var ChevronRight = (props) => createComponent(Icon_default, mergeProps(props, {
1685
- iconNode: iconNode$A,
1685
+ iconNode: iconNode$C,
1686
1686
  name: "chevron-right"
1687
1687
  }));
1688
1688
  var chevron_right_default = ChevronRight;
1689
- var iconNode$z = [["circle", {
1689
+ var iconNode$B = [["circle", {
1690
1690
  cx: "12",
1691
1691
  cy: "12",
1692
1692
  r: "10",
@@ -1699,11 +1699,11 @@ var iconNode$z = [["circle", {
1699
1699
  key: "p32p05"
1700
1700
  }]];
1701
1701
  var CircleQuestionMark = (props) => createComponent(Icon_default, mergeProps(props, {
1702
- iconNode: iconNode$z,
1702
+ iconNode: iconNode$B,
1703
1703
  name: "circle-question-mark"
1704
1704
  }));
1705
1705
  var circle_question_mark_default = CircleQuestionMark;
1706
- var iconNode$y = [["rect", {
1706
+ var iconNode$A = [["rect", {
1707
1707
  width: "8",
1708
1708
  height: "4",
1709
1709
  x: "8",
@@ -1728,11 +1728,11 @@ var iconNode$y = [["rect", {
1728
1728
  key: "18s6g9"
1729
1729
  }]];
1730
1730
  var ClipboardList = (props) => createComponent(Icon_default, mergeProps(props, {
1731
- iconNode: iconNode$y,
1731
+ iconNode: iconNode$A,
1732
1732
  name: "clipboard-list"
1733
1733
  }));
1734
1734
  var clipboard_list_default = ClipboardList;
1735
- var iconNode$x = [["circle", {
1735
+ var iconNode$z = [["circle", {
1736
1736
  cx: "12",
1737
1737
  cy: "12",
1738
1738
  r: "10",
@@ -1742,11 +1742,28 @@ var iconNode$x = [["circle", {
1742
1742
  key: "mmk7yg"
1743
1743
  }]];
1744
1744
  var Clock = (props) => createComponent(Icon_default, mergeProps(props, {
1745
- iconNode: iconNode$x,
1745
+ iconNode: iconNode$z,
1746
1746
  name: "clock"
1747
1747
  }));
1748
1748
  var clock_default = Clock;
1749
- var iconNode$w = [["path", {
1749
+ var iconNode$y = [["rect", {
1750
+ width: "14",
1751
+ height: "14",
1752
+ x: "8",
1753
+ y: "8",
1754
+ rx: "2",
1755
+ ry: "2",
1756
+ key: "17jyea"
1757
+ }], ["path", {
1758
+ d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",
1759
+ key: "zix9uf"
1760
+ }]];
1761
+ var Copy = (props) => createComponent(Icon_default, mergeProps(props, {
1762
+ iconNode: iconNode$y,
1763
+ name: "copy"
1764
+ }));
1765
+ var copy_default = Copy;
1766
+ var iconNode$x = [["path", {
1750
1767
  d: "M12 20v2",
1751
1768
  key: "1lh1kg"
1752
1769
  }], ["path", {
@@ -1798,11 +1815,11 @@ var iconNode$w = [["path", {
1798
1815
  key: "z9xiuo"
1799
1816
  }]];
1800
1817
  var Cpu = (props) => createComponent(Icon_default, mergeProps(props, {
1801
- iconNode: iconNode$w,
1818
+ iconNode: iconNode$x,
1802
1819
  name: "cpu"
1803
1820
  }));
1804
1821
  var cpu_default = Cpu;
1805
- var iconNode$v = [["path", {
1822
+ var iconNode$w = [["path", {
1806
1823
  d: "M12 15V3",
1807
1824
  key: "m9g1x1"
1808
1825
  }], ["path", {
@@ -1813,11 +1830,11 @@ var iconNode$v = [["path", {
1813
1830
  key: "brsn70"
1814
1831
  }]];
1815
1832
  var Download = (props) => createComponent(Icon_default, mergeProps(props, {
1816
- iconNode: iconNode$v,
1833
+ iconNode: iconNode$w,
1817
1834
  name: "download"
1818
1835
  }));
1819
1836
  var download_default = Download;
1820
- var iconNode$u = [["path", {
1837
+ var iconNode$v = [["path", {
1821
1838
  d: "M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21",
1822
1839
  key: "g5wo59"
1823
1840
  }], ["path", {
@@ -1825,11 +1842,11 @@ var iconNode$u = [["path", {
1825
1842
  key: "1wx5vj"
1826
1843
  }]];
1827
1844
  var Eraser = (props) => createComponent(Icon_default, mergeProps(props, {
1828
- iconNode: iconNode$u,
1845
+ iconNode: iconNode$v,
1829
1846
  name: "eraser"
1830
1847
  }));
1831
1848
  var eraser_default = Eraser;
1832
- var iconNode$t = [["path", {
1849
+ var iconNode$u = [["path", {
1833
1850
  d: "M15 3h6v6",
1834
1851
  key: "1q9fwt"
1835
1852
  }], ["path", {
@@ -1840,11 +1857,11 @@ var iconNode$t = [["path", {
1840
1857
  key: "a6xqqp"
1841
1858
  }]];
1842
1859
  var ExternalLink = (props) => createComponent(Icon_default, mergeProps(props, {
1843
- iconNode: iconNode$t,
1860
+ iconNode: iconNode$u,
1844
1861
  name: "external-link"
1845
1862
  }));
1846
1863
  var external_link_default = ExternalLink;
1847
- var iconNode$s = [["path", {
1864
+ var iconNode$t = [["path", {
1848
1865
  d: "M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",
1849
1866
  key: "1nclc0"
1850
1867
  }], ["circle", {
@@ -1854,11 +1871,11 @@ var iconNode$s = [["path", {
1854
1871
  key: "1v7zrd"
1855
1872
  }]];
1856
1873
  var Eye = (props) => createComponent(Icon_default, mergeProps(props, {
1857
- iconNode: iconNode$s,
1874
+ iconNode: iconNode$t,
1858
1875
  name: "eye"
1859
1876
  }));
1860
1877
  var eye_default = Eye;
1861
- var iconNode$r = [["path", {
1878
+ var iconNode$s = [["path", {
1862
1879
  d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
1863
1880
  key: "1oefj6"
1864
1881
  }], ["path", {
@@ -1872,11 +1889,11 @@ var iconNode$r = [["path", {
1872
1889
  key: "1npd3o"
1873
1890
  }]];
1874
1891
  var FileDown = (props) => createComponent(Icon_default, mergeProps(props, {
1875
- iconNode: iconNode$r,
1892
+ iconNode: iconNode$s,
1876
1893
  name: "file-down"
1877
1894
  }));
1878
1895
  var file_down_default = FileDown;
1879
- var iconNode$q = [["circle", {
1896
+ var iconNode$r = [["circle", {
1880
1897
  cx: "12",
1881
1898
  cy: "12",
1882
1899
  r: "3",
@@ -1895,11 +1912,11 @@ var iconNode$q = [["circle", {
1895
1912
  key: "ioqczr"
1896
1913
  }]];
1897
1914
  var Focus = (props) => createComponent(Icon_default, mergeProps(props, {
1898
- iconNode: iconNode$q,
1915
+ iconNode: iconNode$r,
1899
1916
  name: "focus"
1900
1917
  }));
1901
1918
  var focus_default = Focus;
1902
- var iconNode$p = [["circle", {
1919
+ var iconNode$q = [["circle", {
1903
1920
  cx: "12",
1904
1921
  cy: "12",
1905
1922
  r: "10",
@@ -1912,11 +1929,11 @@ var iconNode$p = [["circle", {
1912
1929
  key: "9i4pu4"
1913
1930
  }]];
1914
1931
  var Globe = (props) => createComponent(Icon_default, mergeProps(props, {
1915
- iconNode: iconNode$p,
1932
+ iconNode: iconNode$q,
1916
1933
  name: "globe"
1917
1934
  }));
1918
1935
  var globe_default = Globe;
1919
- var iconNode$o = [["path", {
1936
+ var iconNode$p = [["path", {
1920
1937
  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",
1921
1938
  key: "zzgyd3"
1922
1939
  }], ["path", {
@@ -1933,11 +1950,11 @@ var iconNode$o = [["path", {
1933
1950
  key: "jksky3"
1934
1951
  }]];
1935
1952
  var LayersPlus = (props) => createComponent(Icon_default, mergeProps(props, {
1936
- iconNode: iconNode$o,
1953
+ iconNode: iconNode$p,
1937
1954
  name: "layers-plus"
1938
1955
  }));
1939
1956
  var layers_plus_default = LayersPlus;
1940
- var iconNode$n = [["rect", {
1957
+ var iconNode$o = [["rect", {
1941
1958
  width: "18",
1942
1959
  height: "11",
1943
1960
  x: "3",
@@ -1950,10 +1967,29 @@ var iconNode$n = [["rect", {
1950
1967
  key: "fwvmzm"
1951
1968
  }]];
1952
1969
  var Lock = (props) => createComponent(Icon_default, mergeProps(props, {
1953
- iconNode: iconNode$n,
1970
+ iconNode: iconNode$o,
1954
1971
  name: "lock"
1955
1972
  }));
1956
1973
  var lock_default = Lock;
1974
+ var iconNode$n = [["rect", {
1975
+ width: "18",
1976
+ height: "18",
1977
+ x: "3",
1978
+ y: "3",
1979
+ rx: "2",
1980
+ key: "afitv7"
1981
+ }], ["path", {
1982
+ d: "M3 15h18",
1983
+ key: "5xshup"
1984
+ }], ["path", {
1985
+ d: "m9 10 3-3 3 3",
1986
+ key: "11gsxs"
1987
+ }]];
1988
+ var PanelBottomOpen = (props) => createComponent(Icon_default, mergeProps(props, {
1989
+ iconNode: iconNode$n,
1990
+ name: "panel-bottom-open"
1991
+ }));
1992
+ var panel_bottom_open_default = PanelBottomOpen;
1957
1993
  var iconNode$m = [["rect", {
1958
1994
  width: "18",
1959
1995
  height: "18",
@@ -2971,9 +3007,11 @@ const [commandBarOpen, setCommandBarOpen] = createSignal(false);
2971
3007
  const [browserCommandPaletteOpen, setBrowserCommandPaletteOpen] = createSignal(false);
2972
3008
  const [settingsOpen, setSettingsOpen] = createSignal(false);
2973
3009
  const [devtoolsPanelOpen, setDevtoolsPanelOpen] = createSignal(false);
3010
+ const [devtoolsPanelDetached, setDevtoolsPanelDetached] = createSignal(false);
2974
3011
  let lastIpcTime = 0;
2975
3012
  const IPC_THROTTLE_MS = 8;
2976
3013
  let sidebarStateListenerInitialized = false;
3014
+ let devtoolsPanelStateListenerInitialized = false;
2977
3015
  function applySidebarState(result) {
2978
3016
  setSidebarOpen(result.open);
2979
3017
  setSidebarWidth(result.width);
@@ -2984,8 +3022,20 @@ function ensureSidebarStateListener() {
2984
3022
  sidebarStateListenerInitialized = true;
2985
3023
  window.vessel?.ui?.onSidebarStateUpdate?.(applySidebarState);
2986
3024
  }
3025
+ function applyDevToolsPanelState(result) {
3026
+ setDevtoolsPanelOpen(result.open);
3027
+ setDevtoolsPanelDetached(result.detached);
3028
+ }
3029
+ function ensureDevToolsPanelStateListener() {
3030
+ if (devtoolsPanelStateListenerInitialized) return;
3031
+ devtoolsPanelStateListenerInitialized = true;
3032
+ window.vessel?.devtoolsPanel?.onHostStateUpdate?.(applyDevToolsPanelState);
3033
+ void window.vessel?.devtoolsPanel?.getHostState?.().then(applyDevToolsPanelState).catch(() => {
3034
+ });
3035
+ }
2987
3036
  function useUI() {
2988
3037
  ensureSidebarStateListener();
3038
+ ensureDevToolsPanelStateListener();
2989
3039
  return {
2990
3040
  sidebarOpen,
2991
3041
  sidebarWidth,
@@ -2995,6 +3045,7 @@ function useUI() {
2995
3045
  browserCommandPaletteOpen,
2996
3046
  settingsOpen,
2997
3047
  devtoolsPanelOpen,
3048
+ devtoolsPanelDetached,
2998
3049
  toggleSidebar: async () => {
2999
3050
  const result = await window.vessel.ui.toggleSidebar();
3000
3051
  applySidebarState(result);
@@ -3028,7 +3079,7 @@ function useUI() {
3028
3079
  },
3029
3080
  toggleDevTools: async () => {
3030
3081
  const result = await window.vessel.devtoolsPanel.toggle();
3031
- setDevtoolsPanelOpen(result.open);
3082
+ applyDevToolsPanelState(result);
3032
3083
  },
3033
3084
  openCommandBar: () => setCommandBarOpen(true),
3034
3085
  closeCommandBar: () => setCommandBarOpen(false),
@@ -3338,7 +3389,7 @@ const SEARCH_ENGINE_PRESETS = {
3338
3389
  ecosia: { label: "Ecosia", url: "https://www.ecosia.org/search?q=" },
3339
3390
  kagi: { label: "Kagi", url: "https://kagi.com/search?q=" }
3340
3391
  };
3341
- var _tmpl$$p = /* @__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$o = /* @__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$k = /* @__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$f = /* @__PURE__ */ template(`<div id=address-autocomplete class=autocomplete-dropdown role=listbox>`), _tmpl$6$f = /* @__PURE__ */ template(`<button class=page-diff-trigger title="Open the What Changed timeline"><span class=page-diff-trigger-dot aria-hidden=true></span><span class=page-diff-trigger-text>What Changed?`), _tmpl$7$d = /* @__PURE__ */ template(`<span class=page-diff-burst-meta>Updated <!> times over `), _tmpl$8$a = /* @__PURE__ */ template(`<div class=page-diff-burst-history><div class=page-diff-burst-history-label>Recent detections`), _tmpl$9$9 = /* @__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$0$7 = /* @__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$1$7 = /* @__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$10$7 = /* @__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$11$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$12$6 = /* @__PURE__ */ template(`<span class=nav-btn-badge>`), _tmpl$13$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$14$5 = /* @__PURE__ */ template(`<button class=nav-btn data-tooltip="Clear Data">`), _tmpl$15$5 = /* @__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$16$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$17$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$18$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$19$4 = /* @__PURE__ */ template(`<div class=page-diff-burst-row><span class=page-diff-burst-time></span><span class=page-diff-burst-summary>`), _tmpl$20$4 = /* @__PURE__ */ template(`<span class=page-diff-burst-summary-section>`), _tmpl$21$4 = /* @__PURE__ */ template(`<span class=page-diff-burst-summary-part><span>`), _tmpl$22$4 = /* @__PURE__ */ template(`<div class=page-diff-snippet><span class=page-diff-snippet-label>Before</span><span class=page-diff-snippet-text>`), _tmpl$23$4 = /* @__PURE__ */ template(`<div class=page-diff-snippet><span class=page-diff-snippet-label>After</span><span class=page-diff-snippet-text>`), _tmpl$24$4 = /* @__PURE__ */ template(`<div class=page-diff-snippets>`), _tmpl$25$3 = /* @__PURE__ */ template(`<div class=page-diff-list-group><span class=page-diff-list-label>Added</span><ul class=page-diff-list>`), _tmpl$26$3 = /* @__PURE__ */ template(`<div class=page-diff-list-group><span class=page-diff-list-label>Removed</span><ul class=page-diff-list>`), _tmpl$27$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$28$3 = /* @__PURE__ */ template(`<li>`);
3392
+ var _tmpl$$p = /* @__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$o = /* @__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$k = /* @__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$f = /* @__PURE__ */ template(`<div id=address-autocomplete class=autocomplete-dropdown role=listbox>`), _tmpl$6$f = /* @__PURE__ */ template(`<button class=page-diff-trigger title="Open the What Changed timeline"><span class=page-diff-trigger-dot aria-hidden=true></span><span class=page-diff-trigger-text>What Changed?`), _tmpl$7$d = /* @__PURE__ */ template(`<span class=page-diff-burst-meta>Updated <!> times over `), _tmpl$8$a = /* @__PURE__ */ template(`<div class=page-diff-burst-history><div class=page-diff-burst-history-label>Recent detections`), _tmpl$9$9 = /* @__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$0$7 = /* @__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$1$7 = /* @__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$10$7 = /* @__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$11$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$12$6 = /* @__PURE__ */ template(`<span class=nav-btn-badge>`), _tmpl$13$6 = /* @__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$14$6 = /* @__PURE__ */ template(`<button class=nav-btn data-tooltip="Clear Data">`), _tmpl$15$6 = /* @__PURE__ */ template(`<button class=nav-btn data-tooltip=Settings>`), _tmpl$16$5 = /* @__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$17$5 = /* @__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$18$5 = /* @__PURE__ */ template(`<div role=option><span class=autocomplete-icon></span><span class=autocomplete-text><span class=autocomplete-title></span><span class=autocomplete-url>`), _tmpl$19$5 = /* @__PURE__ */ template(`<div class=page-diff-burst-row><span class=page-diff-burst-time></span><span class=page-diff-burst-summary>`), _tmpl$20$5 = /* @__PURE__ */ template(`<span class=page-diff-burst-summary-section>`), _tmpl$21$5 = /* @__PURE__ */ template(`<span class=page-diff-burst-summary-part><span>`), _tmpl$22$5 = /* @__PURE__ */ template(`<div class=page-diff-snippet><span class=page-diff-snippet-label>Before</span><span class=page-diff-snippet-text>`), _tmpl$23$5 = /* @__PURE__ */ template(`<div class=page-diff-snippet><span class=page-diff-snippet-label>After</span><span class=page-diff-snippet-text>`), _tmpl$24$5 = /* @__PURE__ */ template(`<div class=page-diff-snippets>`), _tmpl$25$4 = /* @__PURE__ */ template(`<div class=page-diff-list-group><span class=page-diff-list-label>Added</span><ul class=page-diff-list>`), _tmpl$26$4 = /* @__PURE__ */ template(`<div class=page-diff-list-group><span class=page-diff-list-label>Removed</span><ul class=page-diff-list>`), _tmpl$27$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$28$3 = /* @__PURE__ */ template(`<li>`);
3342
3393
  const AddressBar = (props) => {
3343
3394
  const {
3344
3395
  activeTab,
@@ -3632,7 +3683,7 @@ const AddressBar = (props) => {
3632
3683
  };
3633
3684
  const formatSectionLabel = (section) => section === "title" ? "Title" : section === "headings" ? "Headings" : "Content";
3634
3685
  return (() => {
3635
- var _el$ = _tmpl$16$4(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.nextSibling, _el$11 = _el$2.nextSibling, _el$12 = _el$11.firstChild, _el$13 = _el$12.firstChild, _el$32 = _el$11.nextSibling, _el$33 = _el$32.firstChild, _el$34 = _el$33.firstChild;
3686
+ var _el$ = _tmpl$16$5(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.nextSibling, _el$11 = _el$2.nextSibling, _el$12 = _el$11.firstChild, _el$13 = _el$12.firstChild, _el$32 = _el$11.nextSibling, _el$33 = _el$32.firstChild, _el$34 = _el$33.firstChild;
3636
3687
  addEventListener(_el$3, "click", goBack, true);
3637
3688
  addEventListener(_el$4, "click", goForward, true);
3638
3689
  addEventListener(_el$5, "click", reload, true);
@@ -3652,7 +3703,7 @@ const AddressBar = (props) => {
3652
3703
  insert(_el$8, createComponent(Switch, {
3653
3704
  get fallback() {
3654
3705
  return (() => {
3655
- var _el$45 = _tmpl$17$4();
3706
+ var _el$45 = _tmpl$17$5();
3656
3707
  _el$45.firstChild;
3657
3708
  return _el$45;
3658
3709
  })();
@@ -3738,7 +3789,7 @@ const AddressBar = (props) => {
3738
3789
  return suggestions();
3739
3790
  },
3740
3791
  children: (item, i) => (() => {
3741
- var _el$47 = _tmpl$18$4(), _el$48 = _el$47.firstChild, _el$49 = _el$48.nextSibling, _el$50 = _el$49.firstChild, _el$51 = _el$50.nextSibling;
3792
+ var _el$47 = _tmpl$18$5(), _el$48 = _el$47.firstChild, _el$49 = _el$48.nextSibling, _el$50 = _el$49.firstChild, _el$51 = _el$50.nextSibling;
3742
3793
  _el$47.addEventListener("mouseenter", () => setSelectedIndex(i()));
3743
3794
  _el$47.$$mousedown = (e) => {
3744
3795
  e.preventDefault();
@@ -3812,7 +3863,7 @@ const AddressBar = (props) => {
3812
3863
  return pageDiff().recentBursts;
3813
3864
  },
3814
3865
  children: (burst, i) => (() => {
3815
- var _el$52 = _tmpl$19$4(), _el$53 = _el$52.firstChild, _el$54 = _el$53.nextSibling;
3866
+ var _el$52 = _tmpl$19$5(), _el$53 = _el$52.firstChild, _el$54 = _el$53.nextSibling;
3816
3867
  insert(_el$53, (() => {
3817
3868
  var _c$2 = memo(() => i() === 0);
3818
3869
  return () => _c$2() ? "Latest" : formatRelativeTime(burst.detectedAt);
@@ -3822,13 +3873,13 @@ const AddressBar = (props) => {
3822
3873
  return parseDiffSummaryParts(burst.summary);
3823
3874
  },
3824
3875
  children: (part) => (() => {
3825
- var _el$55 = _tmpl$21$4(), _el$57 = _el$55.firstChild;
3876
+ var _el$55 = _tmpl$21$5(), _el$57 = _el$55.firstChild;
3826
3877
  insert(_el$55, createComponent(Show, {
3827
3878
  get when() {
3828
3879
  return part.section;
3829
3880
  },
3830
3881
  get children() {
3831
- var _el$56 = _tmpl$20$4();
3882
+ var _el$56 = _tmpl$20$5();
3832
3883
  insert(_el$56, () => part.section);
3833
3884
  return _el$56;
3834
3885
  }
@@ -3858,13 +3909,13 @@ const AddressBar = (props) => {
3858
3909
  return change.before || change.after;
3859
3910
  },
3860
3911
  get children() {
3861
- var _el$64 = _tmpl$24$4();
3912
+ var _el$64 = _tmpl$24$5();
3862
3913
  insert(_el$64, createComponent(Show, {
3863
3914
  get when() {
3864
3915
  return change.before;
3865
3916
  },
3866
3917
  get children() {
3867
- var _el$65 = _tmpl$22$4(), _el$66 = _el$65.firstChild, _el$67 = _el$66.nextSibling;
3918
+ var _el$65 = _tmpl$22$5(), _el$66 = _el$65.firstChild, _el$67 = _el$66.nextSibling;
3868
3919
  insert(_el$67, () => change.before);
3869
3920
  return _el$65;
3870
3921
  }
@@ -3874,7 +3925,7 @@ const AddressBar = (props) => {
3874
3925
  return change.after;
3875
3926
  },
3876
3927
  get children() {
3877
- var _el$68 = _tmpl$23$4(), _el$69 = _el$68.firstChild, _el$70 = _el$69.nextSibling;
3928
+ var _el$68 = _tmpl$23$5(), _el$69 = _el$68.firstChild, _el$70 = _el$69.nextSibling;
3878
3929
  insert(_el$70, () => change.after);
3879
3930
  return _el$68;
3880
3931
  }
@@ -3887,7 +3938,7 @@ const AddressBar = (props) => {
3887
3938
  return change.addedItems?.length;
3888
3939
  },
3889
3940
  get children() {
3890
- var _el$71 = _tmpl$25$3(), _el$72 = _el$71.firstChild, _el$73 = _el$72.nextSibling;
3941
+ var _el$71 = _tmpl$25$4(), _el$72 = _el$71.firstChild, _el$73 = _el$72.nextSibling;
3891
3942
  insert(_el$73, createComponent(For, {
3892
3943
  get each() {
3893
3944
  return change.addedItems;
@@ -3906,7 +3957,7 @@ const AddressBar = (props) => {
3906
3957
  return change.removedItems?.length;
3907
3958
  },
3908
3959
  get children() {
3909
- var _el$74 = _tmpl$26$3(), _el$75 = _el$74.firstChild, _el$76 = _el$75.nextSibling;
3960
+ var _el$74 = _tmpl$26$4(), _el$75 = _el$74.firstChild, _el$76 = _el$75.nextSibling;
3910
3961
  insert(_el$76, createComponent(For, {
3911
3962
  get each() {
3912
3963
  return change.removedItems;
@@ -3969,7 +4020,7 @@ const AddressBar = (props) => {
3969
4020
  insert(_el$32, createComponent(Show, {
3970
4021
  when: !isPrivateWindow,
3971
4022
  get children() {
3972
- var _el$40 = _tmpl$13$5();
4023
+ var _el$40 = _tmpl$13$6();
3973
4024
  _el$40.firstChild;
3974
4025
  addEventListener(_el$40, "click", toggleSidebar, true);
3975
4026
  insert(_el$40, createComponent(Show, {
@@ -3999,15 +4050,19 @@ const AddressBar = (props) => {
3999
4050
  when: !isPrivateWindow,
4000
4051
  get children() {
4001
4052
  return [(() => {
4002
- var _el$43 = _tmpl$14$5();
4053
+ var _el$43 = _tmpl$14$6();
4003
4054
  addEventListener(_el$43, "click", props.onClearData, true);
4004
4055
  insert(_el$43, createComponent(trash_2_default, {
4005
4056
  size: 14
4006
4057
  }));
4007
4058
  return _el$43;
4008
4059
  })(), (() => {
4009
- var _el$44 = _tmpl$15$5();
4060
+ var _el$44 = _tmpl$15$6();
4010
4061
  addEventListener(_el$44, "click", openSettings, true);
4062
+ insert(_el$44, createComponent(settings_default, {
4063
+ size: 14,
4064
+ strokeWidth: 1.8
4065
+ }));
4011
4066
  return _el$44;
4012
4067
  })()];
4013
4068
  }
@@ -8006,7 +8061,7 @@ const DropdownSelect = (props) => {
8006
8061
  };
8007
8062
  delegateEvents(["click"]);
8008
8063
  const BUNDLED_KIT_IDS = /* @__PURE__ */ new Set();
8009
- 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>Skills are a premium feature. Upgrade to import, inspect, and run reusable agent capabilities.</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>Skills</span><div class=kit-list-header-actions><span class=kit-list-count> skills</span><button class=kit-install-btn type=button title="Create a skill from text"aria-label="Create skill">Create</button><button class=kit-install-btn type=button title="Import a skill from a .skill.json file"aria-label="Import skill">Import`), _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$b = /* @__PURE__ */ template(`<div class=kit-create-panel><div class=kit-create-header><span class=kit-create-title></span><button class=kit-install-error-dismiss type=button aria-label="Close create skill">×</button></div><input class=kit-form-input type=text placeholder="Skill name"><input class=kit-form-input type=text placeholder="Short description"><textarea class=kit-create-textarea placeholder="Write the skill instructions the agent should follow. Example: Research the topic carefully, compare trustworthy sources, then summarize the answer with links."></textarea><div class=kit-create-actions><button class=kit-back-btn type=button>Reset</button><button class=kit-back-btn type=button>Cancel</button><button class="agent-primary-button kit-create-save"type=button>`), _tmpl$5$b = /* @__PURE__ */ template(`<div class=kit-list>`), _tmpl$6$b = /* @__PURE__ */ template(`<div class=kit-sched-section><span>Scheduled</span><span class=kit-list-count>`), _tmpl$7$9 = /* @__PURE__ */ template(`<div class=kit-sched-list>`), _tmpl$8$8 = /* @__PURE__ */ template(`<div class=kit-sched-section><span>Recent Activity</span><span class=kit-list-count>`), _tmpl$9$7 = /* @__PURE__ */ template(`<div class=kit-activity-list>`), _tmpl$0$5 = /* @__PURE__ */ template(`<div class=kit-form-header><button class=kit-back-btn type=button title="Back to skills"><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$1$5 = /* @__PURE__ */ template(`<p class=kit-form-desc>`), _tmpl$10$5 = /* @__PURE__ */ template(`<div class=kit-form-fields>`), _tmpl$11$5 = /* @__PURE__ */ template(`<p class=kit-form-estimate>Estimated run time: ~<!> min`), _tmpl$12$5 = /* @__PURE__ */ template(`<button class="agent-primary-button kit-run-btn"type=button>`), _tmpl$13$4 = /* @__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$14$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$15$4 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label class=kit-form-label>Day</label><select class=kit-form-input>`), _tmpl$16$3 = /* @__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$17$3 = /* @__PURE__ */ template(`<p class=kit-schedule-error>`), _tmpl$18$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$19$3 = /* @__PURE__ */ template(`<div class=kit-schedule-section><label class=kit-schedule-toggle><input type=checkbox>Schedule for later`), _tmpl$20$3 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Run at</label><input type=datetime-local class="kit-form-input kit-schedule-time">`), _tmpl$21$3 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Day</label><select class="kit-form-input kit-schedule-time">`), _tmpl$22$3 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Time</label><input type=time class="kit-form-input kit-schedule-time">`), _tmpl$23$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$24$3 = /* @__PURE__ */ template(`<section class=automation-panel>`), _tmpl$25$2 = /* @__PURE__ */ template(`<div class=kit-empty-state><div class=kit-empty-title>No skills imported</div><p class=kit-empty-copy>Import a skill definition to make it available to the agent.</p><div class=kit-empty-actions><button class=kit-install-btn type=button>Create</button><button class=kit-install-btn type=button>Import`), _tmpl$26$2 = /* @__PURE__ */ template(`<div class=kit-card-meta>~<!> min`), _tmpl$27$2 = /* @__PURE__ */ template(`<button class=kit-card-action-btn type=button>`), _tmpl$28$2 = /* @__PURE__ */ template(`<button class=kit-remove-btn type=button>`), _tmpl$29$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$30$1 = /* @__PURE__ */ template(`<div class=kit-sched-next>Next: `), _tmpl$31$1 = /* @__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$32$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$33$1 = /* @__PURE__ */ template(`<div class=kit-activity-output>`), _tmpl$34$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$35$1 = /* @__PURE__ */ template(`<div class="kit-activity-output kit-activity-placeholder">`), _tmpl$36$1 = /* @__PURE__ */ template(`<span class=kit-form-required aria-hidden=true>*`), _tmpl$37$1 = /* @__PURE__ */ template(`<textarea class=kit-form-textarea rows=3>`), _tmpl$38$1 = /* @__PURE__ */ template(`<p class=kit-form-hint>`), _tmpl$39$1 = /* @__PURE__ */ template(`<div class=kit-form-field><label class=kit-form-label>`), _tmpl$40$1 = /* @__PURE__ */ template(`<input class=kit-form-input>`), _tmpl$41$1 = /* @__PURE__ */ template(`<span class=kit-run-spinner aria-hidden=true>`), _tmpl$42$1 = /* @__PURE__ */ template(`<label class=kit-schedule-type-option><input type=radio name=sched-type>`), _tmpl$43$1 = /* @__PURE__ */ template(`<option>`), _tmpl$44$1 = /* @__PURE__ */ template(`<label class=kit-schedule-type-option><input type=radio name=edit-sched-type>`);
8064
+ 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>Skills are a premium feature. Upgrade to import, inspect, and run reusable agent capabilities.</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>Skills</span><div class=kit-list-header-actions><span class=kit-list-count> skills</span><button class=kit-install-btn type=button title="Create a skill from text"aria-label="Create skill">Create</button><button class=kit-install-btn type=button title="Import a skill from a .skill.json file"aria-label="Import skill">Import`), _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$b = /* @__PURE__ */ template(`<div class=kit-create-panel><div class=kit-create-header><span class=kit-create-title></span><button class=kit-install-error-dismiss type=button aria-label="Close create skill">×</button></div><input class=kit-form-input type=text placeholder="Skill name"><input class=kit-form-input type=text placeholder="Short description"><textarea class=kit-create-textarea placeholder="Write the skill instructions the agent should follow. Example: Research the topic carefully, compare trustworthy sources, then summarize the answer with links."></textarea><div class=kit-create-actions><button class=kit-back-btn type=button>Reset</button><button class=kit-back-btn type=button>Cancel</button><button class="agent-primary-button kit-create-save"type=button>`), _tmpl$5$b = /* @__PURE__ */ template(`<div class=kit-list>`), _tmpl$6$b = /* @__PURE__ */ template(`<div class=kit-sched-section><span>Scheduled</span><span class=kit-list-count>`), _tmpl$7$9 = /* @__PURE__ */ template(`<div class=kit-sched-list>`), _tmpl$8$8 = /* @__PURE__ */ template(`<div class=kit-sched-section><span>Recent Activity</span><span class=kit-list-count>`), _tmpl$9$7 = /* @__PURE__ */ template(`<div class=kit-activity-list>`), _tmpl$0$5 = /* @__PURE__ */ template(`<div class=kit-form-header><button class=kit-back-btn type=button title="Back to skills"><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$1$5 = /* @__PURE__ */ template(`<p class=kit-form-desc>`), _tmpl$10$5 = /* @__PURE__ */ template(`<div class=kit-form-fields>`), _tmpl$11$5 = /* @__PURE__ */ template(`<p class=kit-form-estimate>Estimated run time: ~<!> min`), _tmpl$12$5 = /* @__PURE__ */ template(`<button class="agent-primary-button kit-run-btn"type=button>`), _tmpl$13$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$14$5 = /* @__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$15$5 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label class=kit-form-label>Day</label><select class=kit-form-input>`), _tmpl$16$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$17$4 = /* @__PURE__ */ template(`<p class=kit-schedule-error>`), _tmpl$18$4 = /* @__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$19$4 = /* @__PURE__ */ template(`<div class=kit-schedule-section><label class=kit-schedule-toggle><input type=checkbox>Schedule for later`), _tmpl$20$4 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Run at</label><input type=datetime-local class="kit-form-input kit-schedule-time">`), _tmpl$21$4 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Day</label><select class="kit-form-input kit-schedule-time">`), _tmpl$22$4 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Time</label><input type=time class="kit-form-input kit-schedule-time">`), _tmpl$23$4 = /* @__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$24$4 = /* @__PURE__ */ template(`<section class=automation-panel>`), _tmpl$25$3 = /* @__PURE__ */ template(`<div class=kit-empty-state><div class=kit-empty-title>No skills imported</div><p class=kit-empty-copy>Import a skill definition to make it available to the agent.</p><div class=kit-empty-actions><button class=kit-install-btn type=button>Create</button><button class=kit-install-btn type=button>Import`), _tmpl$26$3 = /* @__PURE__ */ template(`<div class=kit-card-meta>~<!> min`), _tmpl$27$2 = /* @__PURE__ */ template(`<button class=kit-card-action-btn type=button>`), _tmpl$28$2 = /* @__PURE__ */ template(`<button class=kit-remove-btn type=button>`), _tmpl$29$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$30$1 = /* @__PURE__ */ template(`<div class=kit-sched-next>Next: `), _tmpl$31$1 = /* @__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$32$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$33$1 = /* @__PURE__ */ template(`<div class=kit-activity-output>`), _tmpl$34$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$35$1 = /* @__PURE__ */ template(`<div class="kit-activity-output kit-activity-placeholder">`), _tmpl$36$1 = /* @__PURE__ */ template(`<span class=kit-form-required aria-hidden=true>*`), _tmpl$37$1 = /* @__PURE__ */ template(`<textarea class=kit-form-textarea rows=3>`), _tmpl$38$1 = /* @__PURE__ */ template(`<p class=kit-form-hint>`), _tmpl$39$1 = /* @__PURE__ */ template(`<div class=kit-form-field><label class=kit-form-label>`), _tmpl$40$1 = /* @__PURE__ */ template(`<input class=kit-form-input>`), _tmpl$41$1 = /* @__PURE__ */ template(`<span class=kit-run-spinner aria-hidden=true>`), _tmpl$42$1 = /* @__PURE__ */ template(`<label class=kit-schedule-type-option><input type=radio name=sched-type>`), _tmpl$43$1 = /* @__PURE__ */ template(`<option>`), _tmpl$44$1 = /* @__PURE__ */ template(`<label class=kit-schedule-type-option><input type=radio name=edit-sched-type>`);
8010
8065
  const ICON_MAP = {
8011
8066
  BookOpen: book_open_default,
8012
8067
  Tag: tag_default,
@@ -8437,7 +8492,7 @@ const AutomationTab = (props) => {
8437
8492
  };
8438
8493
  const timeValue = () => `${String(schedHour()).padStart(2, "0")}:${String(schedMinute()).padStart(2, "0")}`;
8439
8494
  return (() => {
8440
- var _el$ = _tmpl$24$3();
8495
+ var _el$ = _tmpl$24$4();
8441
8496
  insert(_el$, createComponent(Show, {
8442
8497
  get when() {
8443
8498
  return memo(() => !!!premiumData.loading)() && !isPremium();
@@ -8521,7 +8576,7 @@ const AutomationTab = (props) => {
8521
8576
  },
8522
8577
  get fallback() {
8523
8578
  return (() => {
8524
- var _el$90 = _tmpl$25$2(), _el$91 = _el$90.firstChild, _el$92 = _el$91.nextSibling, _el$93 = _el$92.nextSibling, _el$94 = _el$93.firstChild, _el$95 = _el$94.firstChild, _el$96 = _el$94.nextSibling, _el$97 = _el$96.firstChild;
8579
+ var _el$90 = _tmpl$25$3(), _el$91 = _el$90.firstChild, _el$92 = _el$91.nextSibling, _el$93 = _el$92.nextSibling, _el$94 = _el$93.firstChild, _el$95 = _el$94.firstChild, _el$96 = _el$94.nextSibling, _el$97 = _el$96.firstChild;
8525
8580
  _el$94.$$click = openCreateEditor;
8526
8581
  insert(_el$94, createComponent(plus_default, {
8527
8582
  size: 12,
@@ -8558,7 +8613,7 @@ const AutomationTab = (props) => {
8558
8613
  return kit.estimatedMinutes !== void 0;
8559
8614
  },
8560
8615
  get children() {
8561
- var _el$103 = _tmpl$26$2(), _el$104 = _el$103.firstChild, _el$106 = _el$104.nextSibling;
8616
+ var _el$103 = _tmpl$26$3(), _el$104 = _el$103.firstChild, _el$106 = _el$104.nextSibling;
8562
8617
  _el$106.nextSibling;
8563
8618
  insert(_el$103, () => kit.estimatedMinutes, _el$106);
8564
8619
  return _el$103;
@@ -8895,7 +8950,7 @@ const AutomationTab = (props) => {
8895
8950
  createRenderEffect(() => _el$49.disabled = !canRun());
8896
8951
  return _el$49;
8897
8952
  })(), (() => {
8898
- var _el$50 = _tmpl$19$3(), _el$51 = _el$50.firstChild, _el$52 = _el$51.firstChild, _el$53 = _el$52.nextSibling;
8953
+ var _el$50 = _tmpl$19$4(), _el$51 = _el$50.firstChild, _el$52 = _el$51.firstChild, _el$53 = _el$52.nextSibling;
8899
8954
  _el$52.addEventListener("change", (e) => setScheduleEnabled(e.currentTarget.checked));
8900
8955
  insert(_el$51, createComponent(clock_default, {
8901
8956
  size: 13
@@ -8905,7 +8960,7 @@ const AutomationTab = (props) => {
8905
8960
  return scheduleEnabled();
8906
8961
  },
8907
8962
  get children() {
8908
- var _el$54 = _tmpl$18$3(), _el$55 = _el$54.firstChild, _el$69 = _el$55.nextSibling, _el$70 = _el$69.nextSibling;
8963
+ var _el$54 = _tmpl$18$4(), _el$55 = _el$54.firstChild, _el$69 = _el$55.nextSibling, _el$70 = _el$69.nextSibling;
8909
8964
  insert(_el$55, createComponent(For, {
8910
8965
  each: ["once", "hourly", "daily", "weekly"],
8911
8966
  children: (type) => (() => {
@@ -8922,7 +8977,7 @@ const AutomationTab = (props) => {
8922
8977
  return schedType() === "once";
8923
8978
  },
8924
8979
  get children() {
8925
- var _el$56 = _tmpl$13$4(), _el$57 = _el$56.firstChild, _el$58 = _el$57.nextSibling;
8980
+ var _el$56 = _tmpl$13$5(), _el$57 = _el$56.firstChild, _el$58 = _el$57.nextSibling;
8926
8981
  _el$58.$$input = (e) => setSchedRunAt(e.currentTarget.value);
8927
8982
  createRenderEffect(() => _el$58.value = schedRunAt());
8928
8983
  return _el$56;
@@ -8933,7 +8988,7 @@ const AutomationTab = (props) => {
8933
8988
  return schedType() === "daily";
8934
8989
  },
8935
8990
  get children() {
8936
- var _el$59 = _tmpl$14$4(), _el$60 = _el$59.firstChild, _el$61 = _el$60.nextSibling;
8991
+ var _el$59 = _tmpl$14$5(), _el$60 = _el$59.firstChild, _el$61 = _el$60.nextSibling;
8937
8992
  _el$61.$$input = (e) => parseTimeInput(e.currentTarget.value);
8938
8993
  createRenderEffect(() => _el$61.value = timeValue());
8939
8994
  return _el$59;
@@ -8945,7 +9000,7 @@ const AutomationTab = (props) => {
8945
9000
  },
8946
9001
  get children() {
8947
9002
  return [(() => {
8948
- var _el$62 = _tmpl$15$4(), _el$63 = _el$62.firstChild, _el$64 = _el$63.nextSibling;
9003
+ var _el$62 = _tmpl$15$5(), _el$63 = _el$62.firstChild, _el$64 = _el$63.nextSibling;
8949
9004
  _el$64.addEventListener("change", (e) => setSchedDayOfWeek(Number(e.currentTarget.value)));
8950
9005
  insert(_el$64, createComponent(For, {
8951
9006
  each: DAY_NAMES,
@@ -8959,7 +9014,7 @@ const AutomationTab = (props) => {
8959
9014
  createRenderEffect(() => _el$64.value = schedDayOfWeek());
8960
9015
  return _el$62;
8961
9016
  })(), (() => {
8962
- var _el$65 = _tmpl$16$3(), _el$66 = _el$65.firstChild, _el$67 = _el$66.nextSibling;
9017
+ var _el$65 = _tmpl$16$4(), _el$66 = _el$65.firstChild, _el$67 = _el$66.nextSibling;
8963
9018
  _el$67.$$input = (e) => parseTimeInput(e.currentTarget.value);
8964
9019
  createRenderEffect(() => _el$67.value = timeValue());
8965
9020
  return _el$65;
@@ -8971,7 +9026,7 @@ const AutomationTab = (props) => {
8971
9026
  return scheduleError() !== null;
8972
9027
  },
8973
9028
  get children() {
8974
- var _el$68 = _tmpl$17$3();
9029
+ var _el$68 = _tmpl$17$4();
8975
9030
  insert(_el$68, scheduleError);
8976
9031
  return _el$68;
8977
9032
  }
@@ -8992,7 +9047,7 @@ const AutomationTab = (props) => {
8992
9047
  return editingJob() !== null;
8993
9048
  },
8994
9049
  get children() {
8995
- var _el$71 = _tmpl$23$3(), _el$72 = _el$71.firstChild, _el$73 = _el$72.firstChild, _el$74 = _el$73.firstChild, _el$75 = _el$74.nextSibling, _el$76 = _el$73.nextSibling, _el$87 = _el$76.nextSibling, _el$88 = _el$87.firstChild, _el$89 = _el$88.nextSibling;
9050
+ var _el$71 = _tmpl$23$4(), _el$72 = _el$71.firstChild, _el$73 = _el$72.firstChild, _el$74 = _el$73.firstChild, _el$75 = _el$74.nextSibling, _el$76 = _el$73.nextSibling, _el$87 = _el$76.nextSibling, _el$88 = _el$87.firstChild, _el$89 = _el$88.nextSibling;
8996
9051
  _el$71.$$click = () => setEditingJob(null);
8997
9052
  _el$72.$$click = (e) => e.stopPropagation();
8998
9053
  insert(_el$75, () => editingJob().kitName);
@@ -9012,7 +9067,7 @@ const AutomationTab = (props) => {
9012
9067
  return editType() === "once";
9013
9068
  },
9014
9069
  get children() {
9015
- var _el$77 = _tmpl$20$3(), _el$78 = _el$77.firstChild, _el$79 = _el$78.nextSibling;
9070
+ var _el$77 = _tmpl$20$4(), _el$78 = _el$77.firstChild, _el$79 = _el$78.nextSibling;
9016
9071
  _el$79.$$input = (e) => setEditRunAt(e.currentTarget.value);
9017
9072
  createRenderEffect(() => _el$79.value = editRunAt());
9018
9073
  return _el$77;
@@ -9028,7 +9083,7 @@ const AutomationTab = (props) => {
9028
9083
  return editType() === "weekly";
9029
9084
  },
9030
9085
  get children() {
9031
- var _el$80 = _tmpl$21$3(), _el$81 = _el$80.firstChild, _el$82 = _el$81.nextSibling;
9086
+ var _el$80 = _tmpl$21$4(), _el$81 = _el$80.firstChild, _el$82 = _el$81.nextSibling;
9032
9087
  _el$82.addEventListener("change", (e) => setEditDayOfWeek(Number(e.currentTarget.value)));
9033
9088
  insert(_el$82, createComponent(For, {
9034
9089
  each: DAY_NAMES,
@@ -9043,7 +9098,7 @@ const AutomationTab = (props) => {
9043
9098
  return _el$80;
9044
9099
  }
9045
9100
  }), (() => {
9046
- var _el$83 = _tmpl$22$3(), _el$84 = _el$83.firstChild, _el$85 = _el$84.nextSibling;
9101
+ var _el$83 = _tmpl$22$4(), _el$84 = _el$83.firstChild, _el$85 = _el$84.nextSibling;
9047
9102
  _el$85.$$input = (e) => parseEditTimeInput(e.currentTarget.value);
9048
9103
  createRenderEffect(() => _el$85.value = editTimeValue());
9049
9104
  return _el$83;
@@ -9055,7 +9110,7 @@ const AutomationTab = (props) => {
9055
9110
  return editError();
9056
9111
  },
9057
9112
  get children() {
9058
- var _el$86 = _tmpl$17$3();
9113
+ var _el$86 = _tmpl$17$4();
9059
9114
  insert(_el$86, editError);
9060
9115
  return _el$86;
9061
9116
  }
@@ -9146,7 +9201,7 @@ function useResearch() {
9146
9201
  }
9147
9202
  };
9148
9203
  }
9149
- 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$a = /* @__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`);
9204
+ 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$a = /* @__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$4 = /* @__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$4 = /* @__PURE__ */ template(`<div class=research-phase><h3>Synthesizing Report</h3><p>Compiling findings into the Research Report...`), _tmpl$15$4 = /* @__PURE__ */ template(`<div class=research-phase><h3>Report Ready`), _tmpl$16$3 = /* @__PURE__ */ template(`<div class=research-desk>`), _tmpl$17$3 = /* @__PURE__ */ template(`<div class="research-quick-replies inline"aria-label="Suggested briefing responses">`), _tmpl$18$3 = /* @__PURE__ */ template(`<button type=button class=research-quick-reply>`), _tmpl$19$3 = /* @__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$3 = /* @__PURE__ */ template(`<li><span></span><small> sources`), _tmpl$21$3 = /* @__PURE__ */ template(`<section class=objectives-section><p class=objectives-label>Excluded Sources</p><div class=objectives-source-list>`), _tmpl$22$3 = /* @__PURE__ */ template(`<span>`), _tmpl$23$3 = /* @__PURE__ */ template(`<div><span></span><small>`), _tmpl$24$3 = /* @__PURE__ */ template(`<div class=report-card><h4></h4><p>...</p><p> sources cited</p><button>Export as Markdown</button><button class=secondary>New Research`);
9150
9205
  const ResearchBriefMarkdown = (props) => {
9151
9206
  const html2 = createMemo(() => renderMarkdown(props.content));
9152
9207
  return (() => {
@@ -9481,7 +9536,7 @@ const ResearchDesk = () => {
9481
9536
  }
9482
9537
  };
9483
9538
  return (() => {
9484
- var _el$3 = _tmpl$16$2();
9539
+ var _el$3 = _tmpl$16$3();
9485
9540
  insert(_el$3, createComponent(Switch, {
9486
9541
  get children() {
9487
9542
  return [createComponent(Match, {
@@ -9553,13 +9608,13 @@ const ResearchDesk = () => {
9553
9608
  return memo(() => message.role === "assistant")() && shouldShowQuickRepliesForMessage(message.content);
9554
9609
  },
9555
9610
  get children() {
9556
- var _el$46 = _tmpl$17$2();
9611
+ var _el$46 = _tmpl$17$3();
9557
9612
  insert(_el$46, createComponent(For, {
9558
9613
  get each() {
9559
9614
  return quickReplies();
9560
9615
  },
9561
9616
  children: (option) => (() => {
9562
- var _el$47 = _tmpl$18$2();
9617
+ var _el$47 = _tmpl$18$3();
9563
9618
  _el$47.$$click = () => void sendBriefMessage(option.response);
9564
9619
  insert(_el$47, () => option.label);
9565
9620
  return _el$47;
@@ -9654,11 +9709,11 @@ const ResearchDesk = () => {
9654
9709
  return state().objectives;
9655
9710
  },
9656
9711
  children: (obj) => (() => {
9657
- var _el$48 = _tmpl$19$2(), _el$49 = _el$48.firstChild, _el$50 = _el$49.firstChild, _el$51 = _el$50.nextSibling, _el$52 = _el$49.nextSibling, _el$53 = _el$52.firstChild, _el$54 = _el$53.firstChild, _el$55 = _el$54.nextSibling, _el$56 = _el$53.nextSibling, _el$57 = _el$52.nextSibling, _el$58 = _el$57.firstChild, _el$59 = _el$58.firstChild, _el$60 = _el$58.nextSibling, _el$61 = _el$60.firstChild, _el$62 = _el$57.nextSibling, _el$63 = _el$62.firstChild, _el$64 = _el$63.nextSibling;
9712
+ var _el$48 = _tmpl$19$3(), _el$49 = _el$48.firstChild, _el$50 = _el$49.firstChild, _el$51 = _el$50.nextSibling, _el$52 = _el$49.nextSibling, _el$53 = _el$52.firstChild, _el$54 = _el$53.firstChild, _el$55 = _el$54.nextSibling, _el$56 = _el$53.nextSibling, _el$57 = _el$52.nextSibling, _el$58 = _el$57.firstChild, _el$59 = _el$58.firstChild, _el$60 = _el$58.nextSibling, _el$61 = _el$60.firstChild, _el$62 = _el$57.nextSibling, _el$63 = _el$62.firstChild, _el$64 = _el$63.nextSibling;
9658
9713
  insert(_el$51, () => obj().researchQuestion);
9659
9714
  insert(_el$55, () => obj().threads.length);
9660
9715
  insert(_el$56, () => obj().threads.map((t) => (() => {
9661
- var _el$65 = _tmpl$20$2(), _el$66 = _el$65.firstChild, _el$67 = _el$66.nextSibling, _el$68 = _el$67.firstChild;
9716
+ var _el$65 = _tmpl$20$3(), _el$66 = _el$65.firstChild, _el$67 = _el$66.nextSibling, _el$68 = _el$67.firstChild;
9662
9717
  insert(_el$66, () => t.label);
9663
9718
  insert(_el$67, () => t.sourceBudget, _el$68);
9664
9719
  return _el$65;
@@ -9672,13 +9727,13 @@ const ResearchDesk = () => {
9672
9727
  return blockedDomains().length > 0;
9673
9728
  },
9674
9729
  get children() {
9675
- var _el$69 = _tmpl$21$2(), _el$70 = _el$69.firstChild, _el$71 = _el$70.nextSibling;
9730
+ var _el$69 = _tmpl$21$3(), _el$70 = _el$69.firstChild, _el$71 = _el$70.nextSibling;
9676
9731
  insert(_el$71, createComponent(For, {
9677
9732
  get each() {
9678
9733
  return blockedDomains();
9679
9734
  },
9680
9735
  children: (domain) => (() => {
9681
- var _el$72 = _tmpl$22$2();
9736
+ var _el$72 = _tmpl$22$3();
9682
9737
  insert(_el$72, domain);
9683
9738
  return _el$72;
9684
9739
  })()
@@ -9706,7 +9761,7 @@ const ResearchDesk = () => {
9706
9761
  return state().phase === "executing";
9707
9762
  },
9708
9763
  get children() {
9709
- var _el$27 = _tmpl$13$3(), _el$28 = _el$27.firstChild, _el$29 = _el$28.nextSibling, _el$30 = _el$29.firstChild, _el$31 = _el$30.nextSibling, _el$32 = _el$31.firstChild, _el$33 = _el$32.nextSibling, _el$34 = _el$33.firstChild, _el$36 = _el$34.nextSibling;
9764
+ var _el$27 = _tmpl$13$4(), _el$28 = _el$27.firstChild, _el$29 = _el$28.nextSibling, _el$30 = _el$29.firstChild, _el$31 = _el$30.nextSibling, _el$32 = _el$31.firstChild, _el$33 = _el$32.nextSibling, _el$34 = _el$33.firstChild, _el$36 = _el$34.nextSibling;
9710
9765
  _el$36.nextSibling;
9711
9766
  var _el$38 = _el$29.nextSibling, _el$39 = _el$38.firstChild, _el$40 = _el$39.nextSibling;
9712
9767
  insert(_el$33, () => researchProgress().complete, _el$34);
@@ -9730,7 +9785,7 @@ const ResearchDesk = () => {
9730
9785
  return researchProgress().progress;
9731
9786
  },
9732
9787
  children: (thread) => (() => {
9733
- var _el$73 = _tmpl$23$2(), _el$74 = _el$73.firstChild, _el$75 = _el$74.nextSibling;
9788
+ var _el$73 = _tmpl$23$3(), _el$74 = _el$73.firstChild, _el$75 = _el$74.nextSibling;
9734
9789
  insert(_el$74, () => thread.threadLabel);
9735
9790
  insert(_el$75, () => thread.message);
9736
9791
  createRenderEffect(() => className(_el$73, `research-thread-progress ${thread.status}`));
@@ -9769,21 +9824,21 @@ const ResearchDesk = () => {
9769
9824
  return state().phase === "synthesizing";
9770
9825
  },
9771
9826
  get children() {
9772
- return _tmpl$14$3();
9827
+ return _tmpl$14$4();
9773
9828
  }
9774
9829
  }), createComponent(Match, {
9775
9830
  get when() {
9776
9831
  return state().phase === "delivered";
9777
9832
  },
9778
9833
  get children() {
9779
- var _el$44 = _tmpl$15$3();
9834
+ var _el$44 = _tmpl$15$4();
9780
9835
  _el$44.firstChild;
9781
9836
  insert(_el$44, createComponent(Show, {
9782
9837
  get when() {
9783
9838
  return state().report;
9784
9839
  },
9785
9840
  children: (report) => (() => {
9786
- var _el$76 = _tmpl$24$2(), _el$77 = _el$76.firstChild, _el$78 = _el$77.nextSibling, _el$79 = _el$78.firstChild, _el$80 = _el$78.nextSibling, _el$81 = _el$80.firstChild, _el$82 = _el$80.nextSibling, _el$83 = _el$82.nextSibling;
9841
+ var _el$76 = _tmpl$24$3(), _el$77 = _el$76.firstChild, _el$78 = _el$77.nextSibling, _el$79 = _el$78.firstChild, _el$80 = _el$78.nextSibling, _el$81 = _el$80.firstChild, _el$82 = _el$80.nextSibling, _el$83 = _el$82.nextSibling;
9787
9842
  insert(_el$77, () => report().title);
9788
9843
  insert(_el$78, () => report().executiveSummary.slice(0, 300), _el$79);
9789
9844
  insert(_el$80, () => report().sourceIndex.length, _el$81);
@@ -9982,7 +10037,7 @@ const SidebarWindowControls = (props) => {
9982
10037
  };
9983
10038
  delegateEvents(["click"]);
9984
10039
  const vesselLogo = "" + new URL("vessel-logo-transparent-IT25qr-Z.png", import.meta.url).href;
9985
- 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$8 = /* @__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>Thinking`), _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=var(--accent-primary) stroke=var(--accent-primary) 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=chat-command-error><span></span><button class=chat-command-error-dismiss type=button aria-label="Dismiss command error">×`), _tmpl$31 = /* @__PURE__ */ template(`<div class=chat-skill-suggestions role=listbox>`), _tmpl$32 = /* @__PURE__ */ template(`<div class=sidebar-input-area><div class=sidebar-input-frame><textarea class=sidebar-input rows=2></textarea></div><button class=sidebar-send>`), _tmpl$33 = /* @__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>Skills</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$34 = /* @__PURE__ */ template(`<div class=agent-muted>No pending approvals.`), _tmpl$35 = /* @__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$36 = /* @__PURE__ */ template(`<div class=agent-muted>No actions yet.`), _tmpl$37 = /* @__PURE__ */ template(`<div class=agent-muted>Recent actions are collapsed to reduce noise.`), _tmpl$38 = /* @__PURE__ */ template(`<div class="agent-card-copy success">`), _tmpl$39 = /* @__PURE__ */ template(`<div class="agent-card-copy error">`), _tmpl$40 = /* @__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$41 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>`), _tmpl$42 = /* @__PURE__ */ template(`<div class=bookmark-folder-summary>`), _tmpl$43 = /* @__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$44 = /* @__PURE__ */ template(`<button class=bookmark-ghost-button type=button>Keep bookmarks`), _tmpl$45 = /* @__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$46 = /* @__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$47 = /* @__PURE__ */ template(`<div class=bookmark-items>`), _tmpl$48 = /* @__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$49 = /* @__PURE__ */ template(`<div class=bookmark-folder-collapsed-hint>Click to view saved links.`), _tmpl$50 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>No bookmarks in this folder yet.`), _tmpl$51 = /* @__PURE__ */ template(`<div class=bookmark-item-note>`), _tmpl$52 = /* @__PURE__ */ template(`<div><strong>Intent:</strong> `), _tmpl$53 = /* @__PURE__ */ template(`<div><strong>Expected:</strong> `), _tmpl$54 = /* @__PURE__ */ template(`<div><strong>Key fields:</strong> `), _tmpl$55 = /* @__PURE__ */ template(`<div><strong>Hints:</strong> `), _tmpl$56 = /* @__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$57 = /* @__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$58 = /* @__PURE__ */ template(`<div class=agent-muted>No checkpoints yet.`), _tmpl$59 = /* @__PURE__ */ template(`<span class=checkpoint-timeline-line>`), _tmpl$60 = /* @__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$61 = /* @__PURE__ */ template(`<button class=history-entry><span class=history-entry-title></span><span class=history-entry-url></span><span class=history-entry-time>`), _tmpl$62 = /* @__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$63 = /* @__PURE__ */ template(`<div>`), _tmpl$64 = /* @__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$65 = /* @__PURE__ */ template(`<div class=chat-approval-detail>`), _tmpl$66 = /* @__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$67 = /* @__PURE__ */ template(`<div class=chat-queue-item><span class=chat-queue-text></span><button class=chat-queue-remove type=button>×`), _tmpl$68 = /* @__PURE__ */ template(`<button class=chat-skill-suggestion type=button role=option><span class=chat-skill-suggestion-command>/</span><span class=chat-skill-suggestion-body><span class=chat-skill-suggestion-name></span><span class=chat-skill-suggestion-desc>`), _tmpl$69 = /* @__PURE__ */ template(`<div class=sidebar-input-highlight aria-hidden=true><span class=sidebar-input-highlight-command>`);
10040
+ 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$8 = /* @__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</div></div><div class=agent-trace-footer><span>Showing the last 8 actions. More traces are available in DevTools -&gt; Agent Trace.</span><button class=agent-trace-link type=button>Open Agent Trace`), _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$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$14$3 = /* @__PURE__ */ template(`<button class=history-entry><span class=history-entry-title>Load more history</span><span class=history-entry-url>Showing <!> of `), _tmpl$15$3 = /* @__PURE__ */ template(`<p class=history-empty>No browsing history yet.`), _tmpl$16$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$17$2 = /* @__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$2 = /* @__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$2 = /* @__PURE__ */ template(`<span>`), _tmpl$20$2 = /* @__PURE__ */ template(`<div><div class=streaming-status><span class=streaming-pulse aria-hidden=true></span><span>Thinking`), _tmpl$21$2 = /* @__PURE__ */ template(`<div class="message message-assistant"><div class=message-content>`), _tmpl$22$2 = /* @__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$2 = /* @__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$2 = /* @__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$2 = /* @__PURE__ */ template(`<div class=chat-actions>`), _tmpl$26$2 = /* @__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=var(--accent-primary) stroke=var(--accent-primary) 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=chat-command-error><span></span><button class=chat-command-error-dismiss type=button aria-label="Dismiss command error">×`), _tmpl$31 = /* @__PURE__ */ template(`<div class=chat-skill-suggestions role=listbox>`), _tmpl$32 = /* @__PURE__ */ template(`<div class=sidebar-input-area><div class=sidebar-input-frame><textarea class=sidebar-input rows=2></textarea></div><button class=sidebar-send>`), _tmpl$33 = /* @__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>Skills</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$34 = /* @__PURE__ */ template(`<div class=agent-muted>No pending approvals.`), _tmpl$35 = /* @__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$36 = /* @__PURE__ */ template(`<div class=agent-muted>No actions yet.`), _tmpl$37 = /* @__PURE__ */ template(`<div class=agent-muted>Recent actions are collapsed to reduce noise.`), _tmpl$38 = /* @__PURE__ */ template(`<div class="agent-card-copy success">`), _tmpl$39 = /* @__PURE__ */ template(`<div class="agent-card-copy error">`), _tmpl$40 = /* @__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$41 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>`), _tmpl$42 = /* @__PURE__ */ template(`<div class=bookmark-folder-summary>`), _tmpl$43 = /* @__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$44 = /* @__PURE__ */ template(`<button class=bookmark-ghost-button type=button>Keep bookmarks`), _tmpl$45 = /* @__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$46 = /* @__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$47 = /* @__PURE__ */ template(`<div class=bookmark-items>`), _tmpl$48 = /* @__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$49 = /* @__PURE__ */ template(`<div class=bookmark-folder-collapsed-hint>Click to view saved links.`), _tmpl$50 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>No bookmarks in this folder yet.`), _tmpl$51 = /* @__PURE__ */ template(`<div class=bookmark-item-note>`), _tmpl$52 = /* @__PURE__ */ template(`<div><strong>Intent:</strong> `), _tmpl$53 = /* @__PURE__ */ template(`<div><strong>Expected:</strong> `), _tmpl$54 = /* @__PURE__ */ template(`<div><strong>Key fields:</strong> `), _tmpl$55 = /* @__PURE__ */ template(`<div><strong>Hints:</strong> `), _tmpl$56 = /* @__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$57 = /* @__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$58 = /* @__PURE__ */ template(`<div class=agent-muted>No checkpoints yet.`), _tmpl$59 = /* @__PURE__ */ template(`<span class=checkpoint-timeline-line>`), _tmpl$60 = /* @__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$61 = /* @__PURE__ */ template(`<button class=history-entry><span class=history-entry-title></span><span class=history-entry-url></span><span class=history-entry-time>`), _tmpl$62 = /* @__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$63 = /* @__PURE__ */ template(`<div>`), _tmpl$64 = /* @__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$65 = /* @__PURE__ */ template(`<div class=chat-approval-detail>`), _tmpl$66 = /* @__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$67 = /* @__PURE__ */ template(`<div class=chat-queue-item><span class=chat-queue-text></span><button class=chat-queue-remove type=button>×`), _tmpl$68 = /* @__PURE__ */ template(`<button class=chat-skill-suggestion type=button role=option><span class=chat-skill-suggestion-command>/</span><span class=chat-skill-suggestion-body><span class=chat-skill-suggestion-name></span><span class=chat-skill-suggestion-desc>`), _tmpl$69 = /* @__PURE__ */ template(`<div class=sidebar-input-highlight aria-hidden=true><span class=sidebar-input-highlight-command>`);
9986
10041
  const UNSORTED_FOLDER = {
9987
10042
  id: "unsorted",
9988
10043
  name: "Unsorted",
@@ -10375,6 +10430,9 @@ ${contextBlock}` : contextBlock);
10375
10430
  let chatInputRef;
10376
10431
  let hasInitializedMessageScroll = false;
10377
10432
  const recentActions = createMemo(() => runtimeState2().actions.slice(-8).reverse());
10433
+ const openAgentTrace = () => {
10434
+ void window.vessel.devtoolsPanel.openTab("agentTrace");
10435
+ };
10378
10436
  const recentCheckpoints = createMemo(() => runtimeState2().checkpoints.slice(-5).reverse());
10379
10437
  const approvalModeOptions = createMemo(() => [{
10380
10438
  value: "manual",
@@ -10710,7 +10768,7 @@ ${contextBlock}` : contextBlock);
10710
10768
  get children() {
10711
10769
  var _el$9 = _tmpl$33(), _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;
10712
10770
  _el$15.firstChild;
10713
- 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;
10771
+ 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$134 = _el$25.firstChild;
10714
10772
  insert(_el$9, createComponent(Show, {
10715
10773
  get when() {
10716
10774
  return !sidebarDetached2();
@@ -10759,6 +10817,7 @@ ${contextBlock}` : contextBlock);
10759
10817
  get children() {
10760
10818
  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;
10761
10819
  _el$38.firstChild;
10820
+ var _el$41 = _el$38.nextSibling, _el$42 = _el$41.firstChild, _el$43 = _el$42.nextSibling;
10762
10821
  insert(_el$30, () => runtimeState2().supervisor.paused ? "Agent is paused" : "Agent is live");
10763
10822
  insert(_el$31, () => runtimeState2().supervisor.paused ? "Paused" : "Running");
10764
10823
  insert(_el$32, createComponent(DropdownSelect, {
@@ -10800,13 +10859,13 @@ ${contextBlock}` : contextBlock);
10800
10859
  return runtimeState2().supervisor.pendingApprovals;
10801
10860
  },
10802
10861
  children: (approval) => (() => {
10803
- var _el$154 = _tmpl$35(), _el$155 = _el$154.firstChild, _el$156 = _el$155.nextSibling, _el$157 = _el$156.nextSibling, _el$158 = _el$157.nextSibling, _el$159 = _el$158.nextSibling, _el$160 = _el$159.firstChild, _el$161 = _el$160.nextSibling;
10804
- insert(_el$156, () => approval.name);
10805
- insert(_el$157, () => approval.argsSummary);
10806
- insert(_el$158, () => approval.reason);
10807
- _el$160.$$click = () => void resolveApproval(approval.id, true);
10808
- _el$161.$$click = () => void resolveApproval(approval.id, false);
10809
- return _el$154;
10862
+ var _el$157 = _tmpl$35(), _el$158 = _el$157.firstChild, _el$159 = _el$158.nextSibling, _el$160 = _el$159.nextSibling, _el$161 = _el$160.nextSibling, _el$162 = _el$161.nextSibling, _el$163 = _el$162.firstChild, _el$164 = _el$163.nextSibling;
10863
+ insert(_el$159, () => approval.name);
10864
+ insert(_el$160, () => approval.argsSummary);
10865
+ insert(_el$161, () => approval.reason);
10866
+ _el$163.$$click = () => void resolveApproval(approval.id, true);
10867
+ _el$164.$$click = () => void resolveApproval(approval.id, false);
10868
+ return _el$157;
10810
10869
  })()
10811
10870
  })];
10812
10871
  }
@@ -10846,53 +10905,54 @@ ${contextBlock}` : contextBlock);
10846
10905
  return recentActions();
10847
10906
  },
10848
10907
  children: (action) => (() => {
10849
- var _el$164 = _tmpl$40(), _el$165 = _el$164.firstChild, _el$166 = _el$165.firstChild, _el$167 = _el$166.nextSibling, _el$168 = _el$165.nextSibling;
10850
- insert(_el$166, () => action.name);
10851
- insert(_el$167, () => action.status);
10852
- insert(_el$168, () => action.argsSummary);
10853
- insert(_el$164, createComponent(Show, {
10908
+ var _el$167 = _tmpl$40(), _el$168 = _el$167.firstChild, _el$169 = _el$168.firstChild, _el$170 = _el$169.nextSibling, _el$171 = _el$168.nextSibling;
10909
+ insert(_el$169, () => action.name);
10910
+ insert(_el$170, () => action.status);
10911
+ insert(_el$171, () => action.argsSummary);
10912
+ insert(_el$167, createComponent(Show, {
10854
10913
  get when() {
10855
10914
  return action.resultSummary;
10856
10915
  },
10857
10916
  get children() {
10858
- var _el$169 = _tmpl$38();
10859
- insert(_el$169, () => action.resultSummary);
10860
- return _el$169;
10917
+ var _el$172 = _tmpl$38();
10918
+ insert(_el$172, () => action.resultSummary);
10919
+ return _el$172;
10861
10920
  }
10862
10921
  }), null);
10863
- insert(_el$164, createComponent(Show, {
10922
+ insert(_el$167, createComponent(Show, {
10864
10923
  get when() {
10865
10924
  return action.error;
10866
10925
  },
10867
10926
  get children() {
10868
- var _el$170 = _tmpl$39();
10869
- insert(_el$170, () => action.error);
10870
- return _el$170;
10927
+ var _el$173 = _tmpl$39();
10928
+ insert(_el$173, () => action.error);
10929
+ return _el$173;
10871
10930
  }
10872
10931
  }), null);
10873
- createRenderEffect(() => className(_el$167, `agent-action-status ${action.status}`));
10874
- return _el$164;
10932
+ createRenderEffect(() => className(_el$170, `agent-action-status ${action.status}`));
10933
+ return _el$167;
10875
10934
  })()
10876
10935
  });
10877
10936
  }
10878
10937
  });
10879
10938
  }
10880
- }), null);
10939
+ }), _el$41);
10940
+ _el$43.$$click = openAgentTrace;
10881
10941
  createRenderEffect(() => _el$31.classList.toggle("paused", !!runtimeState2().supervisor.paused));
10882
10942
  return _el$26;
10883
10943
  }
10884
- }), _el$131);
10944
+ }), _el$134);
10885
10945
  insert(_el$25, createComponent(Show, {
10886
10946
  get when() {
10887
10947
  return sidebarTab() === "bookmarks";
10888
10948
  },
10889
10949
  get children() {
10890
- 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;
10891
- insert(_el$45, (() => {
10950
+ var _el$44 = _tmpl$11$3(), _el$45 = _el$44.firstChild, _el$46 = _el$45.firstChild, _el$47 = _el$46.firstChild, _el$48 = _el$47.nextSibling, _el$50 = _el$45.nextSibling, _el$51 = _el$50.nextSibling, _el$52 = _el$51.firstChild, _el$53 = _el$52.nextSibling, _el$54 = _el$53.firstChild, _el$55 = _el$54.nextSibling, _el$56 = _el$55.nextSibling, _el$58 = _el$51.nextSibling, _el$59 = _el$58.firstChild, _el$60 = _el$59.firstChild, _el$61 = _el$60.nextSibling, _el$67 = _el$58.nextSibling, _el$68 = _el$67.firstChild, _el$69 = _el$68.firstChild, _el$70 = _el$69.nextSibling, _el$81 = _el$67.nextSibling, _el$82 = _el$81.firstChild, _el$83 = _el$82.firstChild, _el$84 = _el$83.nextSibling, _el$85 = _el$82.nextSibling, _el$86 = _el$81.nextSibling;
10951
+ insert(_el$48, (() => {
10892
10952
  var _c$2 = memo(() => !!normalizedBookmarkSearch());
10893
10953
  return () => _c$2() ? `${bookmarkMatchCount()} matches for "${bookmarkSearchQuery().trim()}"` : `${bookmarksState2().bookmarks.length} saved across ${bookmarkFolders().length} folders`;
10894
10954
  })());
10895
- insert(_el$42, createComponent(Show, {
10955
+ insert(_el$45, createComponent(Show, {
10896
10956
  get when() {
10897
10957
  return currentTabSaved();
10898
10958
  },
@@ -10900,61 +10960,61 @@ ${contextBlock}` : contextBlock);
10900
10960
  return _tmpl$9$4();
10901
10961
  }
10902
10962
  }), null);
10903
- _el$47.$$input = (e) => setBookmarkSearchQuery(e.currentTarget.value);
10904
- _el$51.$$click = () => void handleExportBookmarks("html");
10905
- _el$52.$$click = () => void handleExportBookmarks("html-with-notes");
10906
- _el$53.$$click = () => void handleExportBookmarks("json");
10907
- insert(_el$48, createComponent(Show, {
10963
+ _el$50.$$input = (e) => setBookmarkSearchQuery(e.currentTarget.value);
10964
+ _el$54.$$click = () => void handleExportBookmarks("html");
10965
+ _el$55.$$click = () => void handleExportBookmarks("html-with-notes");
10966
+ _el$56.$$click = () => void handleExportBookmarks("json");
10967
+ insert(_el$51, createComponent(Show, {
10908
10968
  get when() {
10909
10969
  return bookmarkExportMessage();
10910
10970
  },
10911
10971
  get children() {
10912
- var _el$54 = _tmpl$0$3();
10913
- insert(_el$54, bookmarkExportMessage);
10914
- return _el$54;
10972
+ var _el$57 = _tmpl$0$3();
10973
+ insert(_el$57, bookmarkExportMessage);
10974
+ return _el$57;
10915
10975
  }
10916
10976
  }), null);
10917
- _el$56.$$click = () => setBookmarkImportExpanded((current) => !current);
10918
- insert(_el$55, createComponent(Show, {
10977
+ _el$59.$$click = () => setBookmarkImportExpanded((current) => !current);
10978
+ insert(_el$58, createComponent(Show, {
10919
10979
  get when() {
10920
10980
  return bookmarkImportExpanded();
10921
10981
  },
10922
10982
  get children() {
10923
- var _el$59 = _tmpl$1$3(), _el$60 = _el$59.firstChild, _el$61 = _el$60.firstChild, _el$62 = _el$61.nextSibling;
10924
- _el$61.$$click = () => void handleImportBookmarks("html");
10925
- _el$62.$$click = () => void handleImportBookmarks("json");
10926
- insert(_el$59, createComponent(Show, {
10983
+ var _el$62 = _tmpl$1$3(), _el$63 = _el$62.firstChild, _el$64 = _el$63.firstChild, _el$65 = _el$64.nextSibling;
10984
+ _el$64.$$click = () => void handleImportBookmarks("html");
10985
+ _el$65.$$click = () => void handleImportBookmarks("json");
10986
+ insert(_el$62, createComponent(Show, {
10927
10987
  get when() {
10928
10988
  return bookmarkImportMessage();
10929
10989
  },
10930
10990
  get children() {
10931
- var _el$63 = _tmpl$0$3();
10932
- insert(_el$63, bookmarkImportMessage);
10933
- return _el$63;
10991
+ var _el$66 = _tmpl$0$3();
10992
+ insert(_el$66, bookmarkImportMessage);
10993
+ return _el$66;
10934
10994
  }
10935
10995
  }), null);
10936
10996
  createRenderEffect((_p$) => {
10937
10997
  var _v$ = bookmarkImporting(), _v$2 = bookmarkImporting();
10938
- _v$ !== _p$.e && (_el$61.disabled = _p$.e = _v$);
10939
- _v$2 !== _p$.t && (_el$62.disabled = _p$.t = _v$2);
10998
+ _v$ !== _p$.e && (_el$64.disabled = _p$.e = _v$);
10999
+ _v$2 !== _p$.t && (_el$65.disabled = _p$.t = _v$2);
10940
11000
  return _p$;
10941
11001
  }, {
10942
11002
  e: void 0,
10943
11003
  t: void 0
10944
11004
  });
10945
- return _el$59;
11005
+ return _el$62;
10946
11006
  }
10947
11007
  }), null);
10948
- _el$65.$$click = () => setBookmarkSaveExpanded((current) => !current);
10949
- insert(_el$64, createComponent(Show, {
11008
+ _el$68.$$click = () => setBookmarkSaveExpanded((current) => !current);
11009
+ insert(_el$67, createComponent(Show, {
10950
11010
  get when() {
10951
11011
  return bookmarkSaveExpanded();
10952
11012
  },
10953
11013
  get children() {
10954
- 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;
10955
- insert(_el$69, () => currentTab()?.title || "No active page");
10956
- insert(_el$70, () => currentTab()?.url || "Open a page to save it here.");
10957
- insert(_el$71, createComponent(DropdownSelect, {
11014
+ var _el$71 = _tmpl$10$3(), _el$72 = _el$71.firstChild, _el$73 = _el$72.nextSibling, _el$74 = _el$73.nextSibling, _el$75 = _el$74.firstChild, _el$76 = _el$74.nextSibling, _el$77 = _el$76.nextSibling, _el$78 = _el$77.nextSibling, _el$79 = _el$78.nextSibling, _el$80 = _el$79.nextSibling;
11015
+ insert(_el$72, () => currentTab()?.title || "No active page");
11016
+ insert(_el$73, () => currentTab()?.url || "Open a page to save it here.");
11017
+ insert(_el$74, createComponent(DropdownSelect, {
10958
11018
  "class": "bookmark-select",
10959
11019
  get value() {
10960
11020
  return selectedFolderId();
@@ -10964,37 +11024,37 @@ ${contextBlock}` : contextBlock);
10964
11024
  },
10965
11025
  ariaLabel: "Bookmark folder",
10966
11026
  onChange: (value) => setSelectedFolderId(value)
10967
- }), _el$72);
10968
- _el$72.$$click = () => void handleSaveBookmark();
10969
- _el$73.$$input = (e) => setBookmarkNote(e.currentTarget.value);
10970
- _el$74.$$input = (e) => setBookmarkIntent(e.currentTarget.value);
10971
- _el$75.$$input = (e) => setBookmarkExpectedContent(e.currentTarget.value);
10972
- _el$76.$$input = (e) => setBookmarkKeyFields(e.currentTarget.value);
10973
- _el$77.$$input = (e) => setBookmarkAgentHints(e.currentTarget.value);
10974
- createRenderEffect(() => _el$72.disabled = !currentTab()?.url);
10975
- createRenderEffect(() => _el$73.value = bookmarkNote());
10976
- createRenderEffect(() => _el$74.value = bookmarkIntent());
10977
- createRenderEffect(() => _el$75.value = bookmarkExpectedContent());
10978
- createRenderEffect(() => _el$76.value = bookmarkKeyFields());
10979
- createRenderEffect(() => _el$77.value = bookmarkAgentHints());
10980
- return _el$68;
11027
+ }), _el$75);
11028
+ _el$75.$$click = () => void handleSaveBookmark();
11029
+ _el$76.$$input = (e) => setBookmarkNote(e.currentTarget.value);
11030
+ _el$77.$$input = (e) => setBookmarkIntent(e.currentTarget.value);
11031
+ _el$78.$$input = (e) => setBookmarkExpectedContent(e.currentTarget.value);
11032
+ _el$79.$$input = (e) => setBookmarkKeyFields(e.currentTarget.value);
11033
+ _el$80.$$input = (e) => setBookmarkAgentHints(e.currentTarget.value);
11034
+ createRenderEffect(() => _el$75.disabled = !currentTab()?.url);
11035
+ createRenderEffect(() => _el$76.value = bookmarkNote());
11036
+ createRenderEffect(() => _el$77.value = bookmarkIntent());
11037
+ createRenderEffect(() => _el$78.value = bookmarkExpectedContent());
11038
+ createRenderEffect(() => _el$79.value = bookmarkKeyFields());
11039
+ createRenderEffect(() => _el$80.value = bookmarkAgentHints());
11040
+ return _el$71;
10981
11041
  }
10982
11042
  }), null);
10983
- _el$78.addEventListener("submit", handleCreateFolder);
10984
- _el$80.$$input = (e) => setNewFolderName(e.currentTarget.value);
10985
- _el$81.$$input = (e) => setNewFolderSummary(e.currentTarget.value);
10986
- insert(_el$83, createComponent(Show, {
11043
+ _el$81.addEventListener("submit", handleCreateFolder);
11044
+ _el$83.$$input = (e) => setNewFolderName(e.currentTarget.value);
11045
+ _el$84.$$input = (e) => setNewFolderSummary(e.currentTarget.value);
11046
+ insert(_el$86, createComponent(Show, {
10987
11047
  get when() {
10988
11048
  return filteredGroupedBookmarks().length > 0;
10989
11049
  },
10990
11050
  get fallback() {
10991
11051
  return (() => {
10992
- var _el$171 = _tmpl$41();
10993
- insert(_el$171, (() => {
11052
+ var _el$174 = _tmpl$41();
11053
+ insert(_el$174, (() => {
10994
11054
  var _c$5 = memo(() => !!normalizedBookmarkSearch());
10995
11055
  return () => _c$5() ? `No bookmarks matched "${bookmarkSearchQuery().trim()}".` : "No bookmarks saved yet.";
10996
11056
  })());
10997
- return _el$171;
11057
+ return _el$174;
10998
11058
  })();
10999
11059
  },
11000
11060
  get children() {
@@ -11003,100 +11063,100 @@ ${contextBlock}` : contextBlock);
11003
11063
  return filteredGroupedBookmarks();
11004
11064
  },
11005
11065
  children: (folder) => (() => {
11006
- var _el$172 = _tmpl$48(), _el$173 = _el$172.firstChild, _el$174 = _el$173.firstChild, _el$175 = _el$174.firstChild, _el$176 = _el$175.nextSibling, _el$177 = _el$176.firstChild, _el$178 = _el$177.nextSibling, _el$179 = _el$178.firstChild;
11007
- _el$173.$$keydown = (e) => {
11066
+ var _el$175 = _tmpl$48(), _el$176 = _el$175.firstChild, _el$177 = _el$176.firstChild, _el$178 = _el$177.firstChild, _el$179 = _el$178.nextSibling, _el$180 = _el$179.firstChild, _el$181 = _el$180.nextSibling, _el$182 = _el$181.firstChild;
11067
+ _el$176.$$keydown = (e) => {
11008
11068
  if (e.key === "Enter" || e.key === " ") {
11009
11069
  e.preventDefault();
11010
11070
  toggleFolderExpanded(folder.id);
11011
11071
  }
11012
11072
  };
11013
- _el$173.$$click = () => toggleFolderExpanded(folder.id);
11014
- insert(_el$177, () => folder.name);
11015
- insert(_el$178, () => folder.items.length, _el$179);
11016
- insert(_el$176, createComponent(Show, {
11073
+ _el$176.$$click = () => toggleFolderExpanded(folder.id);
11074
+ insert(_el$180, () => folder.name);
11075
+ insert(_el$181, () => folder.items.length, _el$182);
11076
+ insert(_el$179, createComponent(Show, {
11017
11077
  get when() {
11018
11078
  return folder.summary;
11019
11079
  },
11020
11080
  get children() {
11021
- var _el$180 = _tmpl$42();
11022
- insert(_el$180, () => folder.summary);
11023
- return _el$180;
11081
+ var _el$183 = _tmpl$42();
11082
+ insert(_el$183, () => folder.summary);
11083
+ return _el$183;
11024
11084
  }
11025
11085
  }), null);
11026
- insert(_el$173, createComponent(Show, {
11086
+ insert(_el$176, createComponent(Show, {
11027
11087
  get when() {
11028
11088
  return folder.id !== UNSORTED_FOLDER.id;
11029
11089
  },
11030
11090
  get children() {
11031
- var _el$181 = _tmpl$43(), _el$182 = _el$181.firstChild, _el$183 = _el$182.nextSibling, _el$184 = _el$183.nextSibling;
11032
- _el$182.$$click = (e) => {
11091
+ var _el$184 = _tmpl$43(), _el$185 = _el$184.firstChild, _el$186 = _el$185.nextSibling, _el$187 = _el$186.nextSibling;
11092
+ _el$185.$$click = (e) => {
11033
11093
  e.stopPropagation();
11034
11094
  setEditingFolderId(folder.id);
11035
11095
  setEditingFolderName(folder.name);
11036
11096
  setEditingFolderSummary(folder.summary || "");
11037
11097
  };
11038
- _el$183.$$click = (e) => {
11098
+ _el$186.$$click = (e) => {
11039
11099
  e.stopPropagation();
11040
11100
  void handleExportFolder(folder.id, folder.name);
11041
11101
  };
11042
- _el$184.$$click = (e) => {
11102
+ _el$187.$$click = (e) => {
11043
11103
  e.stopPropagation();
11044
11104
  setDeletingFolderId(folder.id);
11045
11105
  };
11046
- createRenderEffect(() => _el$183.disabled = bookmarkExporting());
11047
- return _el$181;
11106
+ createRenderEffect(() => _el$186.disabled = bookmarkExporting());
11107
+ return _el$184;
11048
11108
  }
11049
11109
  }), null);
11050
- insert(_el$172, createComponent(Show, {
11110
+ insert(_el$175, createComponent(Show, {
11051
11111
  get when() {
11052
11112
  return deletingFolderId() === folder.id;
11053
11113
  },
11054
11114
  get children() {
11055
- var _el$185 = _tmpl$45(), _el$186 = _el$185.firstChild, _el$187 = _el$186.firstChild, _el$189 = _el$187.nextSibling;
11056
- _el$189.nextSibling;
11057
- var _el$190 = _el$186.nextSibling, _el$192 = _el$190.firstChild, _el$193 = _el$192.nextSibling;
11058
- insert(_el$186, () => folder.name, _el$189);
11059
- insert(_el$186, (() => {
11115
+ var _el$188 = _tmpl$45(), _el$189 = _el$188.firstChild, _el$190 = _el$189.firstChild, _el$192 = _el$190.nextSibling;
11116
+ _el$192.nextSibling;
11117
+ var _el$193 = _el$189.nextSibling, _el$195 = _el$193.firstChild, _el$196 = _el$195.nextSibling;
11118
+ insert(_el$189, () => folder.name, _el$192);
11119
+ insert(_el$189, (() => {
11060
11120
  var _c$6 = memo(() => folder.items.length > 0);
11061
11121
  return () => _c$6() ? ` This folder has ${folder.items.length} bookmark${folder.items.length === 1 ? "" : "s"}.` : "";
11062
11122
  })(), null);
11063
- insert(_el$190, createComponent(Show, {
11123
+ insert(_el$193, createComponent(Show, {
11064
11124
  get when() {
11065
11125
  return folder.items.length > 0;
11066
11126
  },
11067
11127
  get children() {
11068
- var _el$191 = _tmpl$44();
11069
- _el$191.$$click = () => void handleRemoveFolder(folder.id, false);
11070
- return _el$191;
11128
+ var _el$194 = _tmpl$44();
11129
+ _el$194.$$click = () => void handleRemoveFolder(folder.id, false);
11130
+ return _el$194;
11071
11131
  }
11072
- }), _el$192);
11073
- _el$192.$$click = () => void handleRemoveFolder(folder.id, true);
11074
- insert(_el$192, () => folder.items.length > 0 ? "Delete all" : "Delete folder");
11075
- _el$193.$$click = () => setDeletingFolderId(null);
11076
- return _el$185;
11132
+ }), _el$195);
11133
+ _el$195.$$click = () => void handleRemoveFolder(folder.id, true);
11134
+ insert(_el$195, () => folder.items.length > 0 ? "Delete all" : "Delete folder");
11135
+ _el$196.$$click = () => setDeletingFolderId(null);
11136
+ return _el$188;
11077
11137
  }
11078
11138
  }), null);
11079
- insert(_el$172, createComponent(Show, {
11139
+ insert(_el$175, createComponent(Show, {
11080
11140
  get when() {
11081
11141
  return editingFolderId() === folder.id;
11082
11142
  },
11083
11143
  get children() {
11084
- var _el$194 = _tmpl$46(), _el$195 = _el$194.firstChild, _el$196 = _el$195.firstChild, _el$197 = _el$196.nextSibling, _el$198 = _el$195.nextSibling, _el$199 = _el$198.nextSibling;
11085
- _el$196.$$input = (e) => setEditingFolderName(e.currentTarget.value);
11086
- _el$197.$$input = (e) => setEditingFolderSummary(e.currentTarget.value);
11087
- _el$198.$$click = () => void handleRenameFolder(folder.id);
11088
- _el$199.$$click = () => {
11144
+ var _el$197 = _tmpl$46(), _el$198 = _el$197.firstChild, _el$199 = _el$198.firstChild, _el$200 = _el$199.nextSibling, _el$201 = _el$198.nextSibling, _el$202 = _el$201.nextSibling;
11145
+ _el$199.$$input = (e) => setEditingFolderName(e.currentTarget.value);
11146
+ _el$200.$$input = (e) => setEditingFolderSummary(e.currentTarget.value);
11147
+ _el$201.$$click = () => void handleRenameFolder(folder.id);
11148
+ _el$202.$$click = () => {
11089
11149
  setEditingFolderId(null);
11090
11150
  setEditingFolderName("");
11091
11151
  setEditingFolderSummary("");
11092
11152
  };
11093
- createRenderEffect(() => _el$198.disabled = !editingFolderName().trim());
11094
- createRenderEffect(() => _el$196.value = editingFolderName());
11095
- createRenderEffect(() => _el$197.value = editingFolderSummary());
11096
- return _el$194;
11153
+ createRenderEffect(() => _el$201.disabled = !editingFolderName().trim());
11154
+ createRenderEffect(() => _el$199.value = editingFolderName());
11155
+ createRenderEffect(() => _el$200.value = editingFolderSummary());
11156
+ return _el$197;
11097
11157
  }
11098
11158
  }), null);
11099
- insert(_el$172, createComponent(Show, {
11159
+ insert(_el$175, createComponent(Show, {
11100
11160
  get when() {
11101
11161
  return isFolderExpanded(folder.id);
11102
11162
  },
@@ -11112,134 +11172,134 @@ ${contextBlock}` : contextBlock);
11112
11172
  return _tmpl$50();
11113
11173
  },
11114
11174
  get children() {
11115
- var _el$200 = _tmpl$47();
11116
- insert(_el$200, createComponent(For, {
11175
+ var _el$203 = _tmpl$47();
11176
+ insert(_el$203, createComponent(For, {
11117
11177
  get each() {
11118
11178
  return folder.items;
11119
11179
  },
11120
11180
  children: (bookmark) => (() => {
11121
- var _el$203 = _tmpl$57(), _el$204 = _el$203.firstChild, _el$205 = _el$204.firstChild, _el$206 = _el$205.nextSibling, _el$231 = _el$204.nextSibling, _el$232 = _el$231.firstChild, _el$233 = _el$232.nextSibling, _el$234 = _el$233.nextSibling;
11122
- _el$204.$$click = () => void createTab(bookmark.url);
11123
- insert(_el$205, () => bookmark.title || bookmark.url);
11124
- insert(_el$206, () => bookmark.url);
11125
- insert(_el$203, createComponent(Show, {
11181
+ var _el$206 = _tmpl$57(), _el$207 = _el$206.firstChild, _el$208 = _el$207.firstChild, _el$209 = _el$208.nextSibling, _el$234 = _el$207.nextSibling, _el$235 = _el$234.firstChild, _el$236 = _el$235.nextSibling, _el$237 = _el$236.nextSibling;
11182
+ _el$207.$$click = () => void createTab(bookmark.url);
11183
+ insert(_el$208, () => bookmark.title || bookmark.url);
11184
+ insert(_el$209, () => bookmark.url);
11185
+ insert(_el$206, createComponent(Show, {
11126
11186
  get when() {
11127
11187
  return bookmark.note;
11128
11188
  },
11129
11189
  get children() {
11130
- var _el$207 = _tmpl$51();
11131
- insert(_el$207, () => bookmark.note);
11132
- return _el$207;
11190
+ var _el$210 = _tmpl$51();
11191
+ insert(_el$210, () => bookmark.note);
11192
+ return _el$210;
11133
11193
  }
11134
- }), _el$231);
11135
- insert(_el$203, createComponent(Show, {
11194
+ }), _el$234);
11195
+ insert(_el$206, createComponent(Show, {
11136
11196
  get when() {
11137
11197
  return bookmark.intent || bookmark.expectedContent || (bookmark.keyFields?.length || 0) > 0 || (bookmark.agentHints && Object.keys(bookmark.agentHints).length || 0) > 0;
11138
11198
  },
11139
11199
  get children() {
11140
- var _el$208 = _tmpl$51();
11141
- insert(_el$208, createComponent(Show, {
11200
+ var _el$211 = _tmpl$51();
11201
+ insert(_el$211, createComponent(Show, {
11142
11202
  get when() {
11143
11203
  return bookmark.intent;
11144
11204
  },
11145
11205
  get children() {
11146
- var _el$209 = _tmpl$52(), _el$210 = _el$209.firstChild;
11147
- _el$210.nextSibling;
11148
- insert(_el$209, () => bookmark.intent, null);
11149
- return _el$209;
11206
+ var _el$212 = _tmpl$52(), _el$213 = _el$212.firstChild;
11207
+ _el$213.nextSibling;
11208
+ insert(_el$212, () => bookmark.intent, null);
11209
+ return _el$212;
11150
11210
  }
11151
11211
  }), null);
11152
- insert(_el$208, createComponent(Show, {
11212
+ insert(_el$211, createComponent(Show, {
11153
11213
  get when() {
11154
11214
  return bookmark.expectedContent;
11155
11215
  },
11156
11216
  get children() {
11157
- var _el$212 = _tmpl$53(), _el$213 = _el$212.firstChild;
11158
- _el$213.nextSibling;
11159
- insert(_el$212, () => bookmark.expectedContent, null);
11160
- return _el$212;
11217
+ var _el$215 = _tmpl$53(), _el$216 = _el$215.firstChild;
11218
+ _el$216.nextSibling;
11219
+ insert(_el$215, () => bookmark.expectedContent, null);
11220
+ return _el$215;
11161
11221
  }
11162
11222
  }), null);
11163
- insert(_el$208, createComponent(Show, {
11223
+ insert(_el$211, createComponent(Show, {
11164
11224
  get when() {
11165
11225
  return (bookmark.keyFields?.length || 0) > 0;
11166
11226
  },
11167
11227
  get children() {
11168
- var _el$215 = _tmpl$54(), _el$216 = _el$215.firstChild;
11169
- _el$216.nextSibling;
11170
- insert(_el$215, () => bookmark.keyFields?.join(", "), null);
11171
- return _el$215;
11228
+ var _el$218 = _tmpl$54(), _el$219 = _el$218.firstChild;
11229
+ _el$219.nextSibling;
11230
+ insert(_el$218, () => bookmark.keyFields?.join(", "), null);
11231
+ return _el$218;
11172
11232
  }
11173
11233
  }), null);
11174
- insert(_el$208, createComponent(Show, {
11234
+ insert(_el$211, createComponent(Show, {
11175
11235
  get when() {
11176
11236
  return memo(() => !!bookmark.agentHints)() && Object.keys(bookmark.agentHints).length > 0;
11177
11237
  },
11178
11238
  get children() {
11179
- var _el$218 = _tmpl$55(), _el$219 = _el$218.firstChild;
11180
- _el$219.nextSibling;
11181
- insert(_el$218, () => Object.entries(bookmark.agentHints || {}).map(([key, hint]) => `${key}: ${hint}`).join(" • "), null);
11182
- return _el$218;
11239
+ var _el$221 = _tmpl$55(), _el$222 = _el$221.firstChild;
11240
+ _el$222.nextSibling;
11241
+ insert(_el$221, () => Object.entries(bookmark.agentHints || {}).map(([key, hint]) => `${key}: ${hint}`).join(" • "), null);
11242
+ return _el$221;
11183
11243
  }
11184
11244
  }), null);
11185
- return _el$208;
11245
+ return _el$211;
11186
11246
  }
11187
- }), _el$231);
11188
- insert(_el$203, createComponent(Show, {
11247
+ }), _el$234);
11248
+ insert(_el$206, createComponent(Show, {
11189
11249
  get when() {
11190
11250
  return editingBookmarkId() === bookmark.id;
11191
11251
  },
11192
11252
  get children() {
11193
- var _el$221 = _tmpl$56(), _el$222 = _el$221.firstChild, _el$223 = _el$222.nextSibling, _el$224 = _el$223.nextSibling, _el$225 = _el$224.nextSibling, _el$226 = _el$225.nextSibling, _el$227 = _el$226.nextSibling, _el$228 = _el$227.nextSibling, _el$229 = _el$228.firstChild, _el$230 = _el$229.nextSibling;
11194
- _el$222.$$input = (e) => setEditingBookmarkTitle(e.currentTarget.value);
11195
- _el$223.$$input = (e) => setEditingBookmarkNote(e.currentTarget.value);
11196
- _el$224.$$input = (e) => setEditingBookmarkIntent(e.currentTarget.value);
11197
- _el$225.$$input = (e) => setEditingBookmarkExpectedContent(e.currentTarget.value);
11198
- _el$226.$$input = (e) => setEditingBookmarkKeyFields(e.currentTarget.value);
11199
- _el$227.$$input = (e) => setEditingBookmarkAgentHints(e.currentTarget.value);
11200
- _el$229.$$click = () => void handleUpdateBookmark(bookmark.id);
11201
- _el$230.$$click = resetBookmarkEditor;
11202
- createRenderEffect(() => _el$222.value = editingBookmarkTitle());
11203
- createRenderEffect(() => _el$223.value = editingBookmarkNote());
11204
- createRenderEffect(() => _el$224.value = editingBookmarkIntent());
11205
- createRenderEffect(() => _el$225.value = editingBookmarkExpectedContent());
11206
- createRenderEffect(() => _el$226.value = editingBookmarkKeyFields());
11207
- createRenderEffect(() => _el$227.value = editingBookmarkAgentHints());
11208
- return _el$221;
11253
+ var _el$224 = _tmpl$56(), _el$225 = _el$224.firstChild, _el$226 = _el$225.nextSibling, _el$227 = _el$226.nextSibling, _el$228 = _el$227.nextSibling, _el$229 = _el$228.nextSibling, _el$230 = _el$229.nextSibling, _el$231 = _el$230.nextSibling, _el$232 = _el$231.firstChild, _el$233 = _el$232.nextSibling;
11254
+ _el$225.$$input = (e) => setEditingBookmarkTitle(e.currentTarget.value);
11255
+ _el$226.$$input = (e) => setEditingBookmarkNote(e.currentTarget.value);
11256
+ _el$227.$$input = (e) => setEditingBookmarkIntent(e.currentTarget.value);
11257
+ _el$228.$$input = (e) => setEditingBookmarkExpectedContent(e.currentTarget.value);
11258
+ _el$229.$$input = (e) => setEditingBookmarkKeyFields(e.currentTarget.value);
11259
+ _el$230.$$input = (e) => setEditingBookmarkAgentHints(e.currentTarget.value);
11260
+ _el$232.$$click = () => void handleUpdateBookmark(bookmark.id);
11261
+ _el$233.$$click = resetBookmarkEditor;
11262
+ createRenderEffect(() => _el$225.value = editingBookmarkTitle());
11263
+ createRenderEffect(() => _el$226.value = editingBookmarkNote());
11264
+ createRenderEffect(() => _el$227.value = editingBookmarkIntent());
11265
+ createRenderEffect(() => _el$228.value = editingBookmarkExpectedContent());
11266
+ createRenderEffect(() => _el$229.value = editingBookmarkKeyFields());
11267
+ createRenderEffect(() => _el$230.value = editingBookmarkAgentHints());
11268
+ return _el$224;
11209
11269
  }
11210
- }), _el$231);
11211
- insert(_el$232, () => formatBookmarkDate(bookmark.savedAt));
11212
- _el$233.$$click = () => editingBookmarkId() === bookmark.id ? resetBookmarkEditor() : startEditingBookmark(bookmark);
11213
- insert(_el$233, () => editingBookmarkId() === bookmark.id ? "Close" : "Edit");
11214
- _el$234.$$click = () => {
11270
+ }), _el$234);
11271
+ insert(_el$235, () => formatBookmarkDate(bookmark.savedAt));
11272
+ _el$236.$$click = () => editingBookmarkId() === bookmark.id ? resetBookmarkEditor() : startEditingBookmark(bookmark);
11273
+ insert(_el$236, () => editingBookmarkId() === bookmark.id ? "Close" : "Edit");
11274
+ _el$237.$$click = () => {
11215
11275
  if (editingBookmarkId() === bookmark.id) {
11216
11276
  resetBookmarkEditor();
11217
11277
  }
11218
11278
  void removeBookmark(bookmark.id);
11219
11279
  };
11220
- createRenderEffect(() => setAttribute(_el$203, "data-bookmark-id", bookmark.id));
11221
- return _el$203;
11280
+ createRenderEffect(() => setAttribute(_el$206, "data-bookmark-id", bookmark.id));
11281
+ return _el$206;
11222
11282
  })()
11223
11283
  }));
11224
- return _el$200;
11284
+ return _el$203;
11225
11285
  }
11226
11286
  });
11227
11287
  }
11228
11288
  }), null);
11229
- createRenderEffect(() => _el$175.classList.toggle("expanded", !!isFolderExpanded(folder.id)));
11230
- return _el$172;
11289
+ createRenderEffect(() => _el$178.classList.toggle("expanded", !!isFolderExpanded(folder.id)));
11290
+ return _el$175;
11231
11291
  })()
11232
11292
  });
11233
11293
  }
11234
11294
  }));
11235
11295
  createRenderEffect((_p$) => {
11236
11296
  var _v$3 = bookmarkExporting(), _v$4 = bookmarkExporting(), _v$5 = bookmarkExporting(), _v$6 = !!bookmarkImportExpanded(), _v$7 = !!bookmarkSaveExpanded(), _v$8 = !newFolderName().trim();
11237
- _v$3 !== _p$.e && (_el$51.disabled = _p$.e = _v$3);
11238
- _v$4 !== _p$.t && (_el$52.disabled = _p$.t = _v$4);
11239
- _v$5 !== _p$.a && (_el$53.disabled = _p$.a = _v$5);
11240
- _v$6 !== _p$.o && _el$58.classList.toggle("expanded", _p$.o = _v$6);
11241
- _v$7 !== _p$.i && _el$67.classList.toggle("expanded", _p$.i = _v$7);
11242
- _v$8 !== _p$.n && (_el$82.disabled = _p$.n = _v$8);
11297
+ _v$3 !== _p$.e && (_el$54.disabled = _p$.e = _v$3);
11298
+ _v$4 !== _p$.t && (_el$55.disabled = _p$.t = _v$4);
11299
+ _v$5 !== _p$.a && (_el$56.disabled = _p$.a = _v$5);
11300
+ _v$6 !== _p$.o && _el$61.classList.toggle("expanded", _p$.o = _v$6);
11301
+ _v$7 !== _p$.i && _el$70.classList.toggle("expanded", _p$.i = _v$7);
11302
+ _v$8 !== _p$.n && (_el$85.disabled = _p$.n = _v$8);
11243
11303
  return _p$;
11244
11304
  }, {
11245
11305
  e: void 0,
@@ -11249,32 +11309,32 @@ ${contextBlock}` : contextBlock);
11249
11309
  i: void 0,
11250
11310
  n: void 0
11251
11311
  });
11252
- createRenderEffect(() => _el$47.value = bookmarkSearchQuery());
11253
- createRenderEffect(() => _el$80.value = newFolderName());
11254
- createRenderEffect(() => _el$81.value = newFolderSummary());
11255
- return _el$41;
11312
+ createRenderEffect(() => _el$50.value = bookmarkSearchQuery());
11313
+ createRenderEffect(() => _el$83.value = newFolderName());
11314
+ createRenderEffect(() => _el$84.value = newFolderSummary());
11315
+ return _el$44;
11256
11316
  }
11257
- }), _el$131);
11317
+ }), _el$134);
11258
11318
  insert(_el$25, createComponent(Show, {
11259
11319
  get when() {
11260
11320
  return sidebarTab() === "checkpoints";
11261
11321
  },
11262
11322
  get children() {
11263
- 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;
11264
- _el$90.nextSibling;
11265
- insert(_el$88, (() => {
11323
+ var _el$87 = _tmpl$13$3(), _el$88 = _el$87.firstChild, _el$89 = _el$88.firstChild, _el$90 = _el$89.firstChild, _el$91 = _el$90.nextSibling, _el$92 = _el$88.nextSibling, _el$93 = _el$92.firstChild, _el$94 = _el$93.firstChild, _el$95 = _el$94.nextSibling, _el$96 = _el$95.nextSibling;
11324
+ _el$93.nextSibling;
11325
+ insert(_el$91, (() => {
11266
11326
  var _c$3 = memo(() => recentCheckpoints().length > 0);
11267
11327
  return () => _c$3() ? `${recentCheckpoints().length} saved snapshots` : "Save and restore session snapshots";
11268
11328
  })());
11269
- _el$91.$$input = (e) => setCheckpointName(e.currentTarget.value);
11270
- _el$92.$$input = (e) => setCheckpointNote(e.currentTarget.value);
11271
- _el$93.$$click = async () => {
11329
+ _el$94.$$input = (e) => setCheckpointName(e.currentTarget.value);
11330
+ _el$95.$$input = (e) => setCheckpointNote(e.currentTarget.value);
11331
+ _el$96.$$click = async () => {
11272
11332
  const name = checkpointName().trim();
11273
11333
  await createCheckpoint(name || void 0, checkpointNote() || void 0);
11274
11334
  setCheckpointName("");
11275
11335
  setCheckpointNote("");
11276
11336
  };
11277
- insert(_el$89, createComponent(Show, {
11337
+ insert(_el$92, createComponent(Show, {
11278
11338
  get when() {
11279
11339
  return recentCheckpoints().length > 0;
11280
11340
  },
@@ -11282,14 +11342,14 @@ ${contextBlock}` : contextBlock);
11282
11342
  return _tmpl$58();
11283
11343
  },
11284
11344
  get children() {
11285
- var _el$95 = _tmpl$12$3();
11286
- insert(_el$95, createComponent(For, {
11345
+ var _el$98 = _tmpl$12$3();
11346
+ insert(_el$98, createComponent(For, {
11287
11347
  get each() {
11288
11348
  return recentCheckpoints();
11289
11349
  },
11290
11350
  children: (checkpoint, i) => (() => {
11291
- var _el$236 = _tmpl$60(), _el$237 = _el$236.firstChild, _el$238 = _el$237.firstChild, _el$240 = _el$237.nextSibling, _el$241 = _el$240.firstChild, _el$242 = _el$241.nextSibling, _el$243 = _el$242.nextSibling, _el$244 = _el$243.nextSibling;
11292
- insert(_el$237, createComponent(Show, {
11351
+ var _el$239 = _tmpl$60(), _el$240 = _el$239.firstChild, _el$241 = _el$240.firstChild, _el$243 = _el$240.nextSibling, _el$244 = _el$243.firstChild, _el$245 = _el$244.nextSibling, _el$246 = _el$245.nextSibling, _el$247 = _el$246.nextSibling;
11352
+ insert(_el$240, createComponent(Show, {
11293
11353
  get when() {
11294
11354
  return i() < recentCheckpoints().length - 1;
11295
11355
  },
@@ -11297,23 +11357,23 @@ ${contextBlock}` : contextBlock);
11297
11357
  return _tmpl$59();
11298
11358
  }
11299
11359
  }), null);
11300
- insert(_el$241, () => checkpoint.name);
11301
- insert(_el$242, () => new Date(checkpoint.createdAt).toLocaleString());
11302
- _el$243.addEventListener("blur", (e) => void updateCheckpointNote(checkpoint.id, e.currentTarget.value));
11303
- _el$244.$$click = () => void restoreCheckpoint(checkpoint.id);
11304
- createRenderEffect(() => _el$238.classList.toggle("latest", !!(i() === 0)));
11305
- createRenderEffect(() => _el$243.value = checkpoint.note || "");
11306
- return _el$236;
11360
+ insert(_el$244, () => checkpoint.name);
11361
+ insert(_el$245, () => new Date(checkpoint.createdAt).toLocaleString());
11362
+ _el$246.addEventListener("blur", (e) => void updateCheckpointNote(checkpoint.id, e.currentTarget.value));
11363
+ _el$247.$$click = () => void restoreCheckpoint(checkpoint.id);
11364
+ createRenderEffect(() => _el$241.classList.toggle("latest", !!(i() === 0)));
11365
+ createRenderEffect(() => _el$246.value = checkpoint.note || "");
11366
+ return _el$239;
11307
11367
  })()
11308
11368
  }));
11309
- return _el$95;
11369
+ return _el$98;
11310
11370
  }
11311
11371
  }), null);
11312
- createRenderEffect(() => _el$91.value = checkpointName());
11313
- createRenderEffect(() => _el$92.value = checkpointNote());
11314
- return _el$84;
11372
+ createRenderEffect(() => _el$94.value = checkpointName());
11373
+ createRenderEffect(() => _el$95.value = checkpointNote());
11374
+ return _el$87;
11315
11375
  }
11316
- }), _el$131);
11376
+ }), _el$134);
11317
11377
  insert(_el$25, createComponent(Show, {
11318
11378
  get when() {
11319
11379
  return sidebarTab() === "automation";
@@ -11323,7 +11383,7 @@ ${contextBlock}` : contextBlock);
11323
11383
  onRun: () => setSidebarTab("supervisor")
11324
11384
  });
11325
11385
  }
11326
- }), _el$131);
11386
+ }), _el$134);
11327
11387
  insert(_el$25, createComponent(Show, {
11328
11388
  get when() {
11329
11389
  return sidebarTab() === "research";
@@ -11331,92 +11391,92 @@ ${contextBlock}` : contextBlock);
11331
11391
  get children() {
11332
11392
  return createComponent(ResearchDesk, {});
11333
11393
  }
11334
- }), _el$131);
11394
+ }), _el$134);
11335
11395
  insert(_el$25, createComponent(Show, {
11336
11396
  get when() {
11337
11397
  return sidebarTab() === "history";
11338
11398
  },
11339
11399
  get children() {
11340
- 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;
11341
- _el$100.$$click = async () => {
11400
+ var _el$99 = _tmpl$16$2(), _el$100 = _el$99.firstChild, _el$101 = _el$100.firstChild, _el$102 = _el$101.nextSibling, _el$103 = _el$102.firstChild, _el$104 = _el$103.nextSibling, _el$105 = _el$104.nextSibling, _el$106 = _el$105.nextSibling, _el$107 = _el$100.nextSibling;
11401
+ _el$103.$$click = async () => {
11342
11402
  await history.clear();
11343
11403
  };
11344
- _el$101.$$click = async () => {
11404
+ _el$104.$$click = async () => {
11345
11405
  const result = await window.vessel.history.exportHtml();
11346
11406
  if (!result) return;
11347
11407
  };
11348
- _el$102.$$click = async () => {
11408
+ _el$105.$$click = async () => {
11349
11409
  const result = await window.vessel.history.exportJson();
11350
11410
  if (!result) return;
11351
11411
  };
11352
- _el$103.$$click = async () => {
11412
+ _el$106.$$click = async () => {
11353
11413
  const result = await window.vessel.history.importFile();
11354
11414
  if (!result) return;
11355
11415
  };
11356
- insert(_el$104, createComponent(For, {
11416
+ insert(_el$107, createComponent(For, {
11357
11417
  get each() {
11358
11418
  return history.historyState().entries;
11359
11419
  },
11360
11420
  children: (entry) => (() => {
11361
- var _el$245 = _tmpl$61(), _el$246 = _el$245.firstChild, _el$247 = _el$246.nextSibling, _el$248 = _el$247.nextSibling;
11362
- _el$245.$$click = () => createTab(entry.url);
11363
- insert(_el$246, () => entry.title || entry.url);
11364
- insert(_el$247, () => entry.url);
11365
- insert(_el$248, () => new Date(entry.visitedAt).toLocaleString());
11366
- return _el$245;
11421
+ var _el$248 = _tmpl$61(), _el$249 = _el$248.firstChild, _el$250 = _el$249.nextSibling, _el$251 = _el$250.nextSibling;
11422
+ _el$248.$$click = () => createTab(entry.url);
11423
+ insert(_el$249, () => entry.title || entry.url);
11424
+ insert(_el$250, () => entry.url);
11425
+ insert(_el$251, () => new Date(entry.visitedAt).toLocaleString());
11426
+ return _el$248;
11367
11427
  })()
11368
11428
  }), null);
11369
- insert(_el$104, createComponent(Show, {
11429
+ insert(_el$107, createComponent(Show, {
11370
11430
  get when() {
11371
11431
  return history.hasMore();
11372
11432
  },
11373
11433
  get children() {
11374
- 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;
11375
- _el$111.nextSibling;
11376
- _el$105.$$click = () => void history.loadMore();
11377
- insert(_el$107, () => history.historyState().entries.length, _el$111);
11378
- insert(_el$107, () => history.historyTotal(), null);
11379
- return _el$105;
11434
+ var _el$108 = _tmpl$14$3(), _el$109 = _el$108.firstChild, _el$110 = _el$109.nextSibling, _el$111 = _el$110.firstChild, _el$114 = _el$111.nextSibling;
11435
+ _el$114.nextSibling;
11436
+ _el$108.$$click = () => void history.loadMore();
11437
+ insert(_el$110, () => history.historyState().entries.length, _el$114);
11438
+ insert(_el$110, () => history.historyTotal(), null);
11439
+ return _el$108;
11380
11440
  }
11381
11441
  }), null);
11382
- insert(_el$104, createComponent(Show, {
11442
+ insert(_el$107, createComponent(Show, {
11383
11443
  get when() {
11384
11444
  return history.historyState().entries.length === 0;
11385
11445
  },
11386
11446
  get children() {
11387
- return _tmpl$15$2();
11447
+ return _tmpl$15$3();
11388
11448
  }
11389
11449
  }), null);
11390
- return _el$96;
11450
+ return _el$99;
11391
11451
  }
11392
- }), _el$131);
11452
+ }), _el$134);
11393
11453
  insert(_el$25, createComponent(Show, {
11394
11454
  get when() {
11395
11455
  return sidebarTab() === "diff";
11396
11456
  },
11397
11457
  get children() {
11398
- var _el$113 = _tmpl$17$1(), _el$114 = _el$113.firstChild, _el$115 = _el$114.firstChild, _el$116 = _el$115.nextSibling;
11399
- insert(_el$116, () => isPremium() ? "Page change timeline" : "Premium feature");
11400
- insert(_el$113, createComponent(Show, {
11458
+ var _el$116 = _tmpl$17$2(), _el$117 = _el$116.firstChild, _el$118 = _el$117.firstChild, _el$119 = _el$118.nextSibling;
11459
+ insert(_el$119, () => isPremium() ? "Page change timeline" : "Premium feature");
11460
+ insert(_el$116, createComponent(Show, {
11401
11461
  get when() {
11402
11462
  return isPremium();
11403
11463
  },
11404
11464
  get fallback() {
11405
11465
  return (() => {
11406
- var _el$249 = _tmpl$62(), _el$250 = _el$249.firstChild, _el$251 = _el$250.nextSibling, _el$252 = _el$251.nextSibling, _el$253 = _el$252.firstChild, _el$254 = _el$253.nextSibling;
11407
- _el$253.$$click = () => void window.vessel.premium.checkout(premiumState().email || void 0).catch(() => {
11466
+ var _el$252 = _tmpl$62(), _el$253 = _el$252.firstChild, _el$254 = _el$253.nextSibling, _el$255 = _el$254.nextSibling, _el$256 = _el$255.firstChild, _el$257 = _el$256.nextSibling;
11467
+ _el$256.$$click = () => void window.vessel.premium.checkout(premiumState().email || void 0).catch(() => {
11408
11468
  });
11409
- _el$254.$$click = openPremiumDetails;
11410
- return _el$249;
11469
+ _el$257.$$click = openPremiumDetails;
11470
+ return _el$252;
11411
11471
  })();
11412
11472
  },
11413
11473
  get children() {
11414
11474
  return createComponent(PageDiffTimeline, {});
11415
11475
  }
11416
11476
  }), null);
11417
- return _el$113;
11477
+ return _el$116;
11418
11478
  }
11419
- }), _el$131);
11479
+ }), _el$134);
11420
11480
  insert(_el$25, createComponent(Show, {
11421
11481
  get when() {
11422
11482
  return sidebarTab() === "chat";
@@ -11427,23 +11487,23 @@ ${contextBlock}` : contextBlock);
11427
11487
  return !isPremium();
11428
11488
  },
11429
11489
  get children() {
11430
- 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;
11431
- _el$121.$$click = () => openPremiumCheckout("chat_banner_clicked");
11432
- _el$122.$$click = openPremiumDetails;
11433
- return _el$117;
11490
+ var _el$120 = _tmpl$18$2(), _el$121 = _el$120.firstChild, _el$122 = _el$121.nextSibling, _el$123 = _el$122.nextSibling, _el$124 = _el$123.firstChild, _el$125 = _el$124.nextSibling;
11491
+ _el$124.$$click = () => openPremiumCheckout("chat_banner_clicked");
11492
+ _el$125.$$click = openPremiumDetails;
11493
+ return _el$120;
11434
11494
  }
11435
11495
  }), createComponent(For, {
11436
11496
  get each() {
11437
11497
  return messages2();
11438
11498
  },
11439
11499
  children: (msg) => (() => {
11440
- var _el$255 = _tmpl$63();
11441
- insert(_el$255, createComponent(MarkdownMessage, {
11500
+ var _el$258 = _tmpl$63();
11501
+ insert(_el$258, createComponent(MarkdownMessage, {
11442
11502
  get content() {
11443
11503
  return msg.content;
11444
11504
  }
11445
11505
  }), null);
11446
- insert(_el$255, createComponent(Show, {
11506
+ insert(_el$258, createComponent(Show, {
11447
11507
  get when() {
11448
11508
  return memo(() => msg.role === "assistant")() ? getPremiumPromptKind(msg.content) : null;
11449
11509
  },
@@ -11456,16 +11516,16 @@ ${contextBlock}` : contextBlock);
11456
11516
  onOpenSettings: openPremiumDetails
11457
11517
  })
11458
11518
  }), null);
11459
- createRenderEffect(() => className(_el$255, `message message-${msg.role}`));
11460
- return _el$255;
11519
+ createRenderEffect(() => className(_el$258, `message message-${msg.role}`));
11520
+ return _el$258;
11461
11521
  })()
11462
11522
  }), createComponent(Show, {
11463
11523
  get when() {
11464
11524
  return isStreaming2();
11465
11525
  },
11466
11526
  get children() {
11467
- var _el$123 = _tmpl$21$1(), _el$124 = _el$123.firstChild;
11468
- insert(_el$124, createComponent(Show, {
11527
+ var _el$126 = _tmpl$21$2(), _el$127 = _el$126.firstChild;
11528
+ insert(_el$127, createComponent(Show, {
11469
11529
  get when() {
11470
11530
  return hasFirstChunk2();
11471
11531
  },
@@ -11473,14 +11533,14 @@ ${contextBlock}` : contextBlock);
11473
11533
  return _tmpl$64();
11474
11534
  },
11475
11535
  get children() {
11476
- var _el$125 = _tmpl$20$1(), _el$126 = _el$125.firstChild, _el$127 = _el$126.firstChild;
11477
- _el$127.nextSibling;
11478
- insert(_el$125, createComponent(MarkdownMessage, {
11536
+ var _el$128 = _tmpl$20$2(), _el$129 = _el$128.firstChild, _el$130 = _el$129.firstChild;
11537
+ _el$130.nextSibling;
11538
+ insert(_el$128, createComponent(MarkdownMessage, {
11479
11539
  get content() {
11480
11540
  return streamingText2();
11481
11541
  }
11482
- }), _el$126);
11483
- insert(_el$125, createComponent(Show, {
11542
+ }), _el$129);
11543
+ insert(_el$128, createComponent(Show, {
11484
11544
  get when() {
11485
11545
  return getPremiumPromptKind(streamingText2());
11486
11546
  },
@@ -11492,21 +11552,21 @@ ${contextBlock}` : contextBlock);
11492
11552
  onStartTrial: () => openPremiumCheckout(kind() === "premium_gate" ? "premium_gate_clicked" : "iteration_limit_clicked"),
11493
11553
  onOpenSettings: openPremiumDetails
11494
11554
  })
11495
- }), _el$126);
11496
- insert(_el$126, createComponent(Show, {
11555
+ }), _el$129);
11556
+ insert(_el$129, createComponent(Show, {
11497
11557
  get when() {
11498
11558
  return elapsedSeconds() > 0;
11499
11559
  },
11500
11560
  get children() {
11501
- var _el$129 = _tmpl$19$1();
11502
- insert(_el$129, () => ` • ${elapsedSeconds()}s`);
11503
- return _el$129;
11561
+ var _el$132 = _tmpl$19$2();
11562
+ insert(_el$132, () => ` • ${elapsedSeconds()}s`);
11563
+ return _el$132;
11504
11564
  }
11505
11565
  }), null);
11506
- return _el$125;
11566
+ return _el$128;
11507
11567
  }
11508
11568
  }));
11509
- return _el$123;
11569
+ return _el$126;
11510
11570
  }
11511
11571
  }), createComponent(Show, {
11512
11572
  get when() {
@@ -11518,22 +11578,22 @@ ${contextBlock}` : contextBlock);
11518
11578
  return runtimeState2().supervisor.pendingApprovals;
11519
11579
  },
11520
11580
  children: (approval) => (() => {
11521
- var _el$257 = _tmpl$66(), _el$258 = _el$257.firstChild, _el$259 = _el$258.nextSibling, _el$260 = _el$259.firstChild, _el$261 = _el$260.firstChild, _el$262 = _el$261.nextSibling, _el$264 = _el$260.nextSibling, _el$265 = _el$264.nextSibling, _el$266 = _el$265.firstChild, _el$267 = _el$266.nextSibling;
11522
- insert(_el$262, () => approval.name);
11523
- insert(_el$259, createComponent(Show, {
11581
+ var _el$260 = _tmpl$66(), _el$261 = _el$260.firstChild, _el$262 = _el$261.nextSibling, _el$263 = _el$262.firstChild, _el$264 = _el$263.firstChild, _el$265 = _el$264.nextSibling, _el$267 = _el$263.nextSibling, _el$268 = _el$267.nextSibling, _el$269 = _el$268.firstChild, _el$270 = _el$269.nextSibling;
11582
+ insert(_el$265, () => approval.name);
11583
+ insert(_el$262, createComponent(Show, {
11524
11584
  get when() {
11525
11585
  return approval.argsSummary;
11526
11586
  },
11527
11587
  get children() {
11528
- var _el$263 = _tmpl$65();
11529
- insert(_el$263, () => approval.argsSummary);
11530
- return _el$263;
11588
+ var _el$266 = _tmpl$65();
11589
+ insert(_el$266, () => approval.argsSummary);
11590
+ return _el$266;
11531
11591
  }
11532
- }), _el$264);
11533
- insert(_el$264, () => approval.reason);
11534
- _el$266.$$click = () => void resolveApproval(approval.id, true);
11535
- _el$267.$$click = () => void resolveApproval(approval.id, false);
11536
- return _el$257;
11592
+ }), _el$267);
11593
+ insert(_el$267, () => approval.reason);
11594
+ _el$269.$$click = () => void resolveApproval(approval.id, true);
11595
+ _el$270.$$click = () => void resolveApproval(approval.id, false);
11596
+ return _el$260;
11537
11597
  })()
11538
11598
  });
11539
11599
  }
@@ -11542,13 +11602,13 @@ ${contextBlock}` : contextBlock);
11542
11602
  return memo(() => messages2().length === 0)() && !isStreaming2();
11543
11603
  },
11544
11604
  get children() {
11545
- return _tmpl$22$1();
11605
+ return _tmpl$22$2();
11546
11606
  }
11547
11607
  })];
11548
11608
  }
11549
- }), _el$131);
11609
+ }), _el$134);
11550
11610
  var _ref$ = messagesEndRef;
11551
- typeof _ref$ === "function" ? use(_ref$, _el$131) : messagesEndRef = _el$131;
11611
+ typeof _ref$ === "function" ? use(_ref$, _el$134) : messagesEndRef = _el$134;
11552
11612
  insert(_el$9, createComponent(Show, {
11553
11613
  get when() {
11554
11614
  return sidebarTab() === "chat";
@@ -11559,156 +11619,156 @@ ${contextBlock}` : contextBlock);
11559
11619
  return isStreaming2() || messages2().length > 0;
11560
11620
  },
11561
11621
  get children() {
11562
- var _el$132 = _tmpl$25$1();
11563
- insert(_el$132, createComponent(Show, {
11622
+ var _el$135 = _tmpl$25$2();
11623
+ insert(_el$135, createComponent(Show, {
11564
11624
  get when() {
11565
11625
  return isStreaming2();
11566
11626
  },
11567
11627
  get children() {
11568
- var _el$133 = _tmpl$23$1();
11569
- _el$133.$$click = () => cancel();
11570
- return _el$133;
11628
+ var _el$136 = _tmpl$23$2();
11629
+ _el$136.$$click = () => cancel();
11630
+ return _el$136;
11571
11631
  }
11572
11632
  }), null);
11573
- insert(_el$132, createComponent(Show, {
11633
+ insert(_el$135, createComponent(Show, {
11574
11634
  get when() {
11575
11635
  return memo(() => !!!isStreaming2())() && messages2().length > 0;
11576
11636
  },
11577
11637
  get children() {
11578
- var _el$134 = _tmpl$24$1();
11579
- _el$134.$$click = handleRetry;
11580
- return _el$134;
11638
+ var _el$137 = _tmpl$24$2();
11639
+ _el$137.$$click = handleRetry;
11640
+ return _el$137;
11581
11641
  }
11582
11642
  }), null);
11583
- return _el$132;
11643
+ return _el$135;
11584
11644
  }
11585
11645
  }), createComponent(Show, {
11586
11646
  get when() {
11587
11647
  return highlightCount() > 0;
11588
11648
  },
11589
11649
  get children() {
11590
- var _el$135 = _tmpl$26$1(), _el$136 = _el$135.firstChild, _el$137 = _el$136.nextSibling;
11591
- _el$137.firstChild;
11592
- var _el$139 = _el$137.nextSibling;
11593
- _el$136.$$click = () => void scrollToHighlight(highlightIndex() - 1);
11594
- _el$137.$$click = () => void scrollToHighlight(highlightIndex() < 0 ? 0 : highlightIndex());
11595
- insert(_el$137, (() => {
11650
+ var _el$138 = _tmpl$26$2(), _el$139 = _el$138.firstChild, _el$140 = _el$139.nextSibling;
11651
+ _el$140.firstChild;
11652
+ var _el$142 = _el$140.nextSibling;
11653
+ _el$139.$$click = () => void scrollToHighlight(highlightIndex() - 1);
11654
+ _el$140.$$click = () => void scrollToHighlight(highlightIndex() < 0 ? 0 : highlightIndex());
11655
+ insert(_el$140, (() => {
11596
11656
  var _c$4 = memo(() => highlightIndex() >= 0);
11597
11657
  return () => _c$4() ? `${highlightIndex() + 1} / ${highlightCount()}` : `${highlightCount()} highlight${highlightCount() > 1 ? "s" : ""}`;
11598
11658
  })(), null);
11599
- _el$139.$$click = () => void scrollToHighlight(highlightIndex() < 0 ? 0 : highlightIndex() + 1);
11659
+ _el$142.$$click = () => void scrollToHighlight(highlightIndex() < 0 ? 0 : highlightIndex() + 1);
11600
11660
  createRenderEffect((_p$) => {
11601
11661
  var _v$9 = highlightIndex() <= 0, _v$0 = highlightIndex() >= highlightCount() - 1;
11602
- _v$9 !== _p$.e && (_el$136.disabled = _p$.e = _v$9);
11603
- _v$0 !== _p$.t && (_el$139.disabled = _p$.t = _v$0);
11662
+ _v$9 !== _p$.e && (_el$139.disabled = _p$.e = _v$9);
11663
+ _v$0 !== _p$.t && (_el$142.disabled = _p$.t = _v$0);
11604
11664
  return _p$;
11605
11665
  }, {
11606
11666
  e: void 0,
11607
11667
  t: void 0
11608
11668
  });
11609
- return _el$135;
11669
+ return _el$138;
11610
11670
  }
11611
11671
  }), createComponent(Show, {
11612
11672
  get when() {
11613
11673
  return queueNotice2() !== null || pendingQueryCount() > 0;
11614
11674
  },
11615
11675
  get children() {
11616
- var _el$140 = _tmpl$29$1(), _el$141 = _el$140.firstChild, _el$142 = _el$141.firstChild;
11617
- insert(_el$142, () => queueNotice2() ?? `Queued ${pendingQueryCount()}/${pendingQueryLimit}.`);
11618
- insert(_el$141, createComponent(Show, {
11676
+ var _el$143 = _tmpl$29$1(), _el$144 = _el$143.firstChild, _el$145 = _el$144.firstChild;
11677
+ insert(_el$145, () => queueNotice2() ?? `Queued ${pendingQueryCount()}/${pendingQueryLimit}.`);
11678
+ insert(_el$144, createComponent(Show, {
11619
11679
  get when() {
11620
11680
  return pendingQueryCount() > 0;
11621
11681
  },
11622
11682
  get children() {
11623
- var _el$143 = _tmpl$27$1();
11624
- _el$143.$$click = () => clearPendingQueries();
11625
- return _el$143;
11683
+ var _el$146 = _tmpl$27$1();
11684
+ _el$146.$$click = () => clearPendingQueries();
11685
+ return _el$146;
11626
11686
  }
11627
11687
  }), null);
11628
- insert(_el$140, createComponent(Show, {
11688
+ insert(_el$143, createComponent(Show, {
11629
11689
  get when() {
11630
11690
  return pendingQueries2().length > 0;
11631
11691
  },
11632
11692
  get children() {
11633
- var _el$144 = _tmpl$28$1();
11634
- insert(_el$144, createComponent(For, {
11693
+ var _el$147 = _tmpl$28$1();
11694
+ insert(_el$147, createComponent(For, {
11635
11695
  get each() {
11636
11696
  return pendingQueries2();
11637
11697
  },
11638
11698
  children: (pendingPrompt, index) => (() => {
11639
- var _el$268 = _tmpl$67(), _el$269 = _el$268.firstChild, _el$270 = _el$269.nextSibling;
11640
- setAttribute(_el$269, "title", pendingPrompt);
11641
- insert(_el$269, pendingPrompt);
11642
- _el$270.$$click = () => removePendingQuery(index());
11643
- createRenderEffect(() => setAttribute(_el$270, "aria-label", `Remove queued prompt ${index() + 1}`));
11644
- return _el$268;
11699
+ var _el$271 = _tmpl$67(), _el$272 = _el$271.firstChild, _el$273 = _el$272.nextSibling;
11700
+ setAttribute(_el$272, "title", pendingPrompt);
11701
+ insert(_el$272, pendingPrompt);
11702
+ _el$273.$$click = () => removePendingQuery(index());
11703
+ createRenderEffect(() => setAttribute(_el$273, "aria-label", `Remove queued prompt ${index() + 1}`));
11704
+ return _el$271;
11645
11705
  })()
11646
11706
  }));
11647
- return _el$144;
11707
+ return _el$147;
11648
11708
  }
11649
11709
  }), null);
11650
- return _el$140;
11710
+ return _el$143;
11651
11711
  }
11652
11712
  }), createComponent(Show, {
11653
11713
  get when() {
11654
11714
  return chatCommandError() !== null;
11655
11715
  },
11656
11716
  get children() {
11657
- var _el$145 = _tmpl$30(), _el$146 = _el$145.firstChild, _el$147 = _el$146.nextSibling;
11658
- insert(_el$146, chatCommandError);
11659
- _el$147.$$click = () => setChatCommandError(null);
11660
- return _el$145;
11717
+ var _el$148 = _tmpl$30(), _el$149 = _el$148.firstChild, _el$150 = _el$149.nextSibling;
11718
+ insert(_el$149, chatCommandError);
11719
+ _el$150.$$click = () => setChatCommandError(null);
11720
+ return _el$148;
11661
11721
  }
11662
11722
  }), createComponent(Show, {
11663
11723
  get when() {
11664
11724
  return slashSuggestions().length > 0;
11665
11725
  },
11666
11726
  get children() {
11667
- var _el$148 = _tmpl$31();
11668
- insert(_el$148, createComponent(For, {
11727
+ var _el$151 = _tmpl$31();
11728
+ insert(_el$151, createComponent(For, {
11669
11729
  get each() {
11670
11730
  return slashSuggestions();
11671
11731
  },
11672
11732
  children: (kit, index) => (() => {
11673
- var _el$271 = _tmpl$68(), _el$272 = _el$271.firstChild;
11674
- _el$272.firstChild;
11675
- var _el$274 = _el$272.nextSibling, _el$275 = _el$274.firstChild, _el$276 = _el$275.nextSibling;
11676
- _el$271.$$mousedown = (event) => {
11733
+ var _el$274 = _tmpl$68(), _el$275 = _el$274.firstChild;
11734
+ _el$275.firstChild;
11735
+ var _el$277 = _el$275.nextSibling, _el$278 = _el$277.firstChild, _el$279 = _el$278.nextSibling;
11736
+ _el$274.$$mousedown = (event) => {
11677
11737
  event.preventDefault();
11678
11738
  applySkillSuggestion(kit);
11679
11739
  };
11680
- insert(_el$272, () => getSkillCommandTokens(kit)[0], null);
11681
- insert(_el$275, () => kit.name);
11682
- insert(_el$276, () => kit.description);
11740
+ insert(_el$275, () => getSkillCommandTokens(kit)[0], null);
11741
+ insert(_el$278, () => kit.name);
11742
+ insert(_el$279, () => kit.description);
11683
11743
  createRenderEffect((_p$) => {
11684
11744
  var _v$30 = !!(index() === slashSuggestionIndex()), _v$31 = index() === slashSuggestionIndex();
11685
- _v$30 !== _p$.e && _el$271.classList.toggle("active", _p$.e = _v$30);
11686
- _v$31 !== _p$.t && setAttribute(_el$271, "aria-selected", _p$.t = _v$31);
11745
+ _v$30 !== _p$.e && _el$274.classList.toggle("active", _p$.e = _v$30);
11746
+ _v$31 !== _p$.t && setAttribute(_el$274, "aria-selected", _p$.t = _v$31);
11687
11747
  return _p$;
11688
11748
  }, {
11689
11749
  e: void 0,
11690
11750
  t: void 0
11691
11751
  });
11692
- return _el$271;
11752
+ return _el$274;
11693
11753
  })()
11694
11754
  }));
11695
- return _el$148;
11755
+ return _el$151;
11696
11756
  }
11697
11757
  }), (() => {
11698
- var _el$149 = _tmpl$32(), _el$150 = _el$149.firstChild, _el$151 = _el$150.firstChild, _el$152 = _el$150.nextSibling;
11699
- insert(_el$150, createComponent(Show, {
11758
+ var _el$152 = _tmpl$32(), _el$153 = _el$152.firstChild, _el$154 = _el$153.firstChild, _el$155 = _el$153.nextSibling;
11759
+ insert(_el$153, createComponent(Show, {
11700
11760
  get when() {
11701
11761
  return recognizedSkillInputParts();
11702
11762
  },
11703
11763
  children: (parts) => (() => {
11704
- var _el$277 = _tmpl$69(), _el$278 = _el$277.firstChild;
11705
- insert(_el$277, () => parts().leading, _el$278);
11706
- insert(_el$278, () => parts().command);
11707
- insert(_el$277, () => parts().rest || " ", null);
11708
- return _el$277;
11764
+ var _el$280 = _tmpl$69(), _el$281 = _el$280.firstChild;
11765
+ insert(_el$280, () => parts().leading, _el$281);
11766
+ insert(_el$281, () => parts().command);
11767
+ insert(_el$280, () => parts().rest || " ", null);
11768
+ return _el$280;
11709
11769
  })()
11710
- }), _el$151);
11711
- _el$151.$$keydown = (e) => {
11770
+ }), _el$154);
11771
+ _el$154.$$keydown = (e) => {
11712
11772
  if (slashSuggestions().length > 0) {
11713
11773
  if (e.key === "ArrowDown") {
11714
11774
  e.preventDefault();
@@ -11731,7 +11791,7 @@ ${contextBlock}` : contextBlock);
11731
11791
  void handleChatSend();
11732
11792
  }
11733
11793
  };
11734
- _el$151.$$input = (e) => {
11794
+ _el$154.$$input = (e) => {
11735
11795
  setChatInput(e.currentTarget.value);
11736
11796
  if (chatCommandError()) setChatCommandError(null);
11737
11797
  if (e.currentTarget.value.startsWith("/")) {
@@ -11739,15 +11799,15 @@ ${contextBlock}` : contextBlock);
11739
11799
  }
11740
11800
  };
11741
11801
  var _ref$2 = chatInputRef;
11742
- typeof _ref$2 === "function" ? use(_ref$2, _el$151) : chatInputRef = _el$151;
11743
- _el$152.$$click = () => void handleChatSend();
11744
- insert(_el$152, () => isStreaming2() ? "Queue" : "Send");
11802
+ typeof _ref$2 === "function" ? use(_ref$2, _el$154) : chatInputRef = _el$154;
11803
+ _el$155.$$click = () => void handleChatSend();
11804
+ insert(_el$155, () => isStreaming2() ? "Queue" : "Send");
11745
11805
  createRenderEffect((_p$) => {
11746
11806
  var _v$1 = !!(recognizedSkillInputParts() !== null), _v$10 = !!(recognizedSkillInputParts() !== null), _v$11 = isStreaming2() ? "Send now to queue the next prompt..." : "Ask anything or run /skill-id...", _v$12 = !chatInput().trim();
11747
- _v$1 !== _p$.e && _el$150.classList.toggle("skill-command-registered", _p$.e = _v$1);
11748
- _v$10 !== _p$.t && _el$151.classList.toggle("skill-command-registered", _p$.t = _v$10);
11749
- _v$11 !== _p$.a && setAttribute(_el$151, "placeholder", _p$.a = _v$11);
11750
- _v$12 !== _p$.o && (_el$152.disabled = _p$.o = _v$12);
11807
+ _v$1 !== _p$.e && _el$153.classList.toggle("skill-command-registered", _p$.e = _v$1);
11808
+ _v$10 !== _p$.t && _el$154.classList.toggle("skill-command-registered", _p$.t = _v$10);
11809
+ _v$11 !== _p$.a && setAttribute(_el$154, "placeholder", _p$.a = _v$11);
11810
+ _v$12 !== _p$.o && (_el$155.disabled = _p$.o = _v$12);
11751
11811
  return _p$;
11752
11812
  }, {
11753
11813
  e: void 0,
@@ -11755,8 +11815,8 @@ ${contextBlock}` : contextBlock);
11755
11815
  a: void 0,
11756
11816
  o: void 0
11757
11817
  });
11758
- createRenderEffect(() => _el$151.value = chatInput());
11759
- return _el$149;
11818
+ createRenderEffect(() => _el$154.value = chatInput());
11819
+ return _el$152;
11760
11820
  })()];
11761
11821
  }
11762
11822
  }), null);
@@ -11804,7 +11864,111 @@ ${contextBlock}` : contextBlock);
11804
11864
  });
11805
11865
  };
11806
11866
  delegateEvents(["click", "pointerdown", "input", "keydown", "mousedown"]);
11807
- var _tmpl$$9 = /* @__PURE__ */ template(`<div class=devtools-console>`), _tmpl$2$9 = /* @__PURE__ */ template(`<div class=devtools-empty>Waiting for console output... Console monitoring activates when an agent uses devtools.`), _tmpl$3$8 = /* @__PURE__ */ template(`<div><span></span><span class=console-time></span><span class=console-text></span><span class=console-source>`), _tmpl$4$7 = /* @__PURE__ */ template(`<div class=devtools-network><div class=network-header><span>Method</span><span>URL</span><span>Status</span><span>Type</span><span>Time`), _tmpl$5$7 = /* @__PURE__ */ template(`<div class=devtools-empty>Waiting for network requests... Network monitoring activates when an agent uses devtools.`), _tmpl$6$7 = /* @__PURE__ */ template(`<div><span class=network-method></span><span class=network-url></span><span></span><span class=network-type></span><span class=network-duration>`), _tmpl$7$5 = /* @__PURE__ */ template(`<div class=devtools-activity>`), _tmpl$8$4 = /* @__PURE__ */ template(`<div class=devtools-empty>Waiting for agent devtools activity...`), _tmpl$9$3 = /* @__PURE__ */ template(`<div class=activity-entry><span class=activity-time></span><span class=activity-tool></span><span class=activity-args></span><span></span><span class=activity-duration>`), _tmpl$0$2 = /* @__PURE__ */ template(`<span class="devtools-tab-badge error">`), _tmpl$1$2 = /* @__PURE__ */ template(`<span class="devtools-tab-badge count">`), _tmpl$10$2 = /* @__PURE__ */ template(`<div class=export-date-inputs><div class=export-date-row><span class=export-date-label>From</span><input class=export-date-input type=date></div><div class=export-date-row><span class=export-date-label>To</span><input class=export-date-input type=date>`), _tmpl$11$2 = /* @__PURE__ */ template(`<div class=devtools-export-dropdown><div class=export-section><div class=export-section-label>Log Types</div><label class=export-checkbox><input type=checkbox>Console</label><label class=export-checkbox><input type=checkbox>Network</label><label class=export-checkbox><input type=checkbox>Activity</label></div><div class=export-section><div class=export-section-label>Date Range</div><div class=export-date-btns><button>Today</button><button>Custom</button></div></div><button class=export-submit>Export JSON`), _tmpl$12$2 = /* @__PURE__ */ template(`<div class=devtools-panel><div class=devtools-tabs><button>Console</button><button>Network</button><button>Activity</button><div class=devtools-tab-spacer></div><div class=devtools-export-wrap><button title="Export Logs"><svg width=13 height=13 viewBox="0 0 13 13"fill=none style=vertical-align:middle><path d="M6.5 1v7M3.5 5l3 3 3-3"stroke=currentColor stroke-width=1.3 stroke-linecap=round stroke-linejoin=round></path><path d="M1 9.5v1A1.5 1.5 0 0 0 2.5 12h8A1.5 1.5 0 0 0 12 10.5v-1"stroke=currentColor stroke-width=1.3 stroke-linecap=round></path></svg></button></div><button class=devtools-close-btn title="Close DevTools">×</button></div><div class=devtools-content>`);
11867
+ function useDevToolsPanelHost() {
11868
+ const [hostState, setHostState] = createSignal({
11869
+ open: true,
11870
+ detached: false,
11871
+ height: 250
11872
+ });
11873
+ const [isResizing, setIsResizing] = createSignal(false);
11874
+ const applyHostState = (nextState) => {
11875
+ setHostState(nextState);
11876
+ };
11877
+ onMount(() => {
11878
+ void window.vessel.devtoolsPanel.getHostState().then(applyHostState).catch(() => {
11879
+ });
11880
+ });
11881
+ const close = () => {
11882
+ void window.vessel.devtoolsPanel.close().then(applyHostState);
11883
+ };
11884
+ const togglePlacement = () => {
11885
+ const action = hostState().detached ? window.vessel.devtoolsPanel.dock() : window.vessel.devtoolsPanel.popOut();
11886
+ void action.then(applyHostState);
11887
+ };
11888
+ const startResize = (event) => {
11889
+ if (hostState().detached) return;
11890
+ event.preventDefault();
11891
+ const target = event.currentTarget;
11892
+ target.setPointerCapture(event.pointerId);
11893
+ setIsResizing(true);
11894
+ document.body.style.cursor = "row-resize";
11895
+ document.body.style.userSelect = "none";
11896
+ void window.vessel.devtoolsPanel.startResize().catch(() => {
11897
+ });
11898
+ const startY = event.screenY;
11899
+ const startHeight = window.innerHeight;
11900
+ const dragState = { currentY: startY, rafId: null };
11901
+ const resizeToCurrentPointer = () => {
11902
+ dragState.rafId = null;
11903
+ const nextHeight = startHeight + startY - dragState.currentY;
11904
+ void window.vessel.devtoolsPanel.resize(nextHeight).then((height) => {
11905
+ setHostState((current) => ({ ...current, height }));
11906
+ }).catch(() => {
11907
+ });
11908
+ };
11909
+ const commitResize = () => {
11910
+ void window.vessel.devtoolsPanel.commitResize().catch(() => {
11911
+ });
11912
+ };
11913
+ const clearPointerTracking = () => {
11914
+ window.removeEventListener("pointermove", onPointerMove);
11915
+ window.removeEventListener("pointerup", onPointerUp);
11916
+ window.removeEventListener("pointercancel", onPointerUp);
11917
+ window.removeEventListener("blur", onWindowBlur);
11918
+ target.removeEventListener("lostpointercapture", onPointerUp);
11919
+ if (target.hasPointerCapture?.(event.pointerId)) {
11920
+ target.releasePointerCapture(event.pointerId);
11921
+ }
11922
+ if (dragState.rafId !== null) {
11923
+ cancelAnimationFrame(dragState.rafId);
11924
+ dragState.rafId = null;
11925
+ }
11926
+ document.body.style.cursor = "";
11927
+ document.body.style.userSelect = "";
11928
+ setIsResizing(false);
11929
+ commitResize();
11930
+ };
11931
+ const scheduleResize = () => {
11932
+ if (dragState.rafId !== null) return;
11933
+ dragState.rafId = requestAnimationFrame(resizeToCurrentPointer);
11934
+ };
11935
+ function onPointerMove(pointerEvent) {
11936
+ dragState.currentY = pointerEvent.screenY;
11937
+ scheduleResize();
11938
+ }
11939
+ function onPointerUp(pointerEvent) {
11940
+ dragState.currentY = pointerEvent.screenY;
11941
+ if (dragState.rafId !== null) {
11942
+ cancelAnimationFrame(dragState.rafId);
11943
+ dragState.rafId = null;
11944
+ }
11945
+ resizeToCurrentPointer();
11946
+ clearPointerTracking();
11947
+ }
11948
+ function onWindowBlur() {
11949
+ if (dragState.rafId !== null) {
11950
+ cancelAnimationFrame(dragState.rafId);
11951
+ dragState.rafId = null;
11952
+ }
11953
+ resizeToCurrentPointer();
11954
+ clearPointerTracking();
11955
+ }
11956
+ window.addEventListener("pointermove", onPointerMove);
11957
+ window.addEventListener("pointerup", onPointerUp);
11958
+ window.addEventListener("pointercancel", onPointerUp);
11959
+ window.addEventListener("blur", onWindowBlur);
11960
+ target.addEventListener("lostpointercapture", onPointerUp);
11961
+ };
11962
+ return {
11963
+ hostState,
11964
+ isResizing,
11965
+ close,
11966
+ togglePlacement,
11967
+ startResize,
11968
+ applyHostState
11969
+ };
11970
+ }
11971
+ var _tmpl$$9 = /* @__PURE__ */ template(`<div class=devtools-console>`), _tmpl$2$9 = /* @__PURE__ */ template(`<div class=devtools-empty>Waiting for console output... Open a page and console output will appear here as the page runs.`), _tmpl$3$8 = /* @__PURE__ */ template(`<div><span></span><span class=console-time></span><span class=console-text></span><span class=console-source>`), _tmpl$4$7 = /* @__PURE__ */ template(`<div class=devtools-network><div class=network-header><span>Method</span><span>URL</span><span>Status</span><span>Type</span><span>Time`), _tmpl$5$7 = /* @__PURE__ */ template(`<div class=devtools-empty>Waiting for network requests... Open a page and network requests will appear here as the page loads.`), _tmpl$6$7 = /* @__PURE__ */ template(`<div><span class=network-method></span><span class=network-url></span><span></span><span class=network-type></span><span class=network-duration>`), _tmpl$7$5 = /* @__PURE__ */ template(`<div class=devtools-activity>`), _tmpl$8$4 = /* @__PURE__ */ template(`<div class=devtools-empty>Waiting for agent devtools activity...`), _tmpl$9$3 = /* @__PURE__ */ template(`<div class=activity-entry><span class=activity-time></span><span class=activity-tool></span><span class=activity-args></span><span></span><span class=activity-duration>`), _tmpl$0$2 = /* @__PURE__ */ template(`<div class=devtools-agent-trace>`), _tmpl$1$2 = /* @__PURE__ */ template(`<div class=devtools-empty>Waiting for agent trace events...`), _tmpl$10$2 = /* @__PURE__ */ template(`<div><span class=trace-time></span><span></span><span class=trace-title></span><span class=trace-detail></span><span></span><span class=trace-duration>`), _tmpl$11$2 = /* @__PURE__ */ template(`<div class=devtools-empty>Inspecting active page...`), _tmpl$12$2 = /* @__PURE__ */ template(`<div class=page-map-issues>`), _tmpl$13$2 = /* @__PURE__ */ template(`<div class=page-map-reveal-status>`), _tmpl$14$2 = /* @__PURE__ */ template(`<div class=page-map-elements><div class=page-map-header><span>#</span><span>Element</span><span>Label</span><span>Selector</span><span>Status</span><span>Bounds`), _tmpl$15$2 = /* @__PURE__ */ template(`<div class=devtools-page-map><div class=page-map-overview><div class=page-map-page><span class=page-map-title></span><span class=page-map-url></span></div><div class=page-map-stats><div class=page-map-stat><span class=page-map-stat-value></span><span class=page-map-stat-label>total</span></div><div class=page-map-stat><span class=page-map-stat-value></span><span class=page-map-stat-label>ready</span></div><div class=page-map-stat><span class=page-map-stat-value></span><span class=page-map-stat-label>blocked</span></div><div class=page-map-stat><span class=page-map-stat-value></span><span class=page-map-stat-label>disabled</span></div></div></div><div class=page-map-filter-row><input class=page-map-filter type=search placeholder="Filter by label, selector, role…"><span class=page-map-filter-count> / <!> shown`), _tmpl$16$1 = /* @__PURE__ */ template(`<span class=page-map-issue>`), _tmpl$17$1 = /* @__PURE__ */ template(`<div class="devtools-empty page-map-empty">No interactive elements found on this page.`), _tmpl$18$1 = /* @__PURE__ */ template(`<span class=page-map-element-sub>`), _tmpl$19$1 = /* @__PURE__ */ template(`<div class=page-map-row role=button tabindex=0 title="Reveal element on page"><span class=page-map-index></span><span class=page-map-element-tag></span><span class=page-map-element-label></span><span class=page-map-element-selector><span class=page-map-selector-text></span><button class=page-map-copy-btn title="Copy selector"aria-label="Copy selector"></button></span><span></span><span class=page-map-element-bounds>,<!> • <!>x`), _tmpl$20$1 = /* @__PURE__ */ template(`<div class=devtools-resize-handle title="Resize DevTools">`), _tmpl$21$1 = /* @__PURE__ */ template(`<span class="devtools-tab-badge error">`), _tmpl$22$1 = /* @__PURE__ */ template(`<span class="devtools-tab-badge count">`), _tmpl$23$1 = /* @__PURE__ */ template(`<div class=export-date-inputs><div class=export-date-row><span class=export-date-label>From</span><input class=export-date-input type=date></div><div class=export-date-row><span class=export-date-label>To</span><input class=export-date-input type=date>`), _tmpl$24$1 = /* @__PURE__ */ template(`<div class=devtools-export-dropdown><div class=export-section><div class=export-section-label>Log Types</div><label class=export-checkbox><input type=checkbox>Console</label><label class=export-checkbox><input type=checkbox>Network</label><label class=export-checkbox><input type=checkbox>Activity</label><label class=export-checkbox><input type=checkbox>Trace</label><label class=export-checkbox><input type=checkbox>Page Map</label></div><div class=export-section><div class=export-section-label>Date Range</div><div class=export-date-btns><button>Today</button><button>Custom</button></div></div><button class=export-submit>Export JSON`), _tmpl$25$1 = /* @__PURE__ */ template(`<button class=devtools-close-btn title="Close DevTools">×`), _tmpl$26$1 = /* @__PURE__ */ template(`<div class=devtools-panel><div class=devtools-tabs><button>Console</button><button>Network</button><button>Activity</button><button>Agent Trace</button><button>Page Map</button><div class=devtools-tab-spacer></div><div class=devtools-export-wrap><button title="Export Logs"><svg width=13 height=13 viewBox="0 0 13 13"fill=none style=vertical-align:middle><path d="M6.5 1v7M3.5 5l3 3 3-3"stroke=currentColor stroke-width=1.3 stroke-linecap=round stroke-linejoin=round></path><path d="M1 9.5v1A1.5 1.5 0 0 0 2.5 12h8A1.5 1.5 0 0 0 12 10.5v-1"stroke=currentColor stroke-width=1.3 stroke-linecap=round></path></svg></button></div><button class=devtools-close-btn></button></div><div class=devtools-content>`);
11808
11972
  function statusClass(status) {
11809
11973
  if (status == null) return "pending";
11810
11974
  if (status >= 200 && status < 300) return "ok";
@@ -12009,29 +12173,308 @@ const ActivityView = (props) => {
12009
12173
  }
12010
12174
  });
12011
12175
  };
12176
+ const AgentTraceView = (props) => {
12177
+ return createComponent(Show, {
12178
+ get when() {
12179
+ return props.entries.length > 0;
12180
+ },
12181
+ get fallback() {
12182
+ return _tmpl$1$2();
12183
+ },
12184
+ get children() {
12185
+ var _el$23 = _tmpl$0$2();
12186
+ insert(_el$23, createComponent(For, {
12187
+ get each() {
12188
+ return [...props.entries].reverse();
12189
+ },
12190
+ children: (entry) => (() => {
12191
+ var _el$25 = _tmpl$10$2(), _el$26 = _el$25.firstChild, _el$27 = _el$26.nextSibling, _el$28 = _el$27.nextSibling, _el$29 = _el$28.nextSibling, _el$30 = _el$29.nextSibling, _el$31 = _el$30.nextSibling;
12192
+ insert(_el$26, () => formatTime(entry.timestamp, {
12193
+ includeSeconds: true
12194
+ }));
12195
+ insert(_el$27, () => entry.kind.replace("tool-", ""));
12196
+ insert(_el$28, () => entry.title);
12197
+ insert(_el$29, () => entry.detail || "—");
12198
+ insert(_el$30, () => entry.status);
12199
+ insert(_el$31, (() => {
12200
+ var _c$5 = memo(() => entry.durationMs != null);
12201
+ return () => _c$5() ? `${entry.durationMs}ms` : "—";
12202
+ })());
12203
+ createRenderEffect((_p$) => {
12204
+ var _v$8 = `trace-entry ${entry.status}`, _v$9 = `trace-kind ${entry.kind}`, _v$0 = entry.title, _v$1 = entry.detail, _v$10 = `trace-status ${entry.status}`;
12205
+ _v$8 !== _p$.e && className(_el$25, _p$.e = _v$8);
12206
+ _v$9 !== _p$.t && className(_el$27, _p$.t = _v$9);
12207
+ _v$0 !== _p$.a && setAttribute(_el$28, "title", _p$.a = _v$0);
12208
+ _v$1 !== _p$.o && setAttribute(_el$29, "title", _p$.o = _v$1);
12209
+ _v$10 !== _p$.i && className(_el$30, _p$.i = _v$10);
12210
+ return _p$;
12211
+ }, {
12212
+ e: void 0,
12213
+ t: void 0,
12214
+ a: void 0,
12215
+ o: void 0,
12216
+ i: void 0
12217
+ });
12218
+ return _el$25;
12219
+ })()
12220
+ }));
12221
+ return _el$23;
12222
+ }
12223
+ });
12224
+ };
12225
+ const PageMapView = (props) => {
12226
+ const [query, setQuery] = createSignal("");
12227
+ const [copiedId, setCopiedId] = createSignal(null);
12228
+ const [revealMessage, setRevealMessage] = createSignal("");
12229
+ let copyTimer;
12230
+ let revealTimer;
12231
+ const pageLabel = () => props.snapshot?.title || props.snapshot?.pageUrl || "Active page";
12232
+ const filteredElements = () => {
12233
+ const snap = props.snapshot;
12234
+ if (!snap) return [];
12235
+ const q = query().trim().toLowerCase();
12236
+ if (!q) return snap.elements;
12237
+ return snap.elements.filter((el) => {
12238
+ const haystack = [el.label, el.selector, el.role, el.tag, el.type, el.href].filter(Boolean).join(" ").toLowerCase();
12239
+ return haystack.includes(q);
12240
+ });
12241
+ };
12242
+ const flashCopied = (id) => {
12243
+ setCopiedId(id);
12244
+ if (copyTimer) clearTimeout(copyTimer);
12245
+ copyTimer = setTimeout(() => setCopiedId(null), 1200);
12246
+ };
12247
+ const copySelector = (element) => {
12248
+ navigator.clipboard?.writeText(element.selector).catch(() => {
12249
+ });
12250
+ flashCopied(element.id);
12251
+ };
12252
+ const REVEAL_MESSAGES = {
12253
+ "not-found": "Element not found — the page may have changed since the last snapshot.",
12254
+ "invalid-selector": "Could not locate this element (invalid selector).",
12255
+ "no-active-tab": "No active tab to inspect."
12256
+ };
12257
+ const reveal = async (selector) => {
12258
+ if (!selector) return;
12259
+ try {
12260
+ const status = await window.vessel.devtoolsPanel.revealElement(selector);
12261
+ const message = REVEAL_MESSAGES[status] ?? "";
12262
+ setRevealMessage(message);
12263
+ if (revealTimer) clearTimeout(revealTimer);
12264
+ revealTimer = setTimeout(() => setRevealMessage(""), 3e3);
12265
+ } catch {
12266
+ setRevealMessage("Could not reach the page to reveal this element.");
12267
+ if (revealTimer) clearTimeout(revealTimer);
12268
+ revealTimer = setTimeout(() => setRevealMessage(""), 3e3);
12269
+ }
12270
+ };
12271
+ const onRevealRowKeyDown = (event, selector) => {
12272
+ if (event.key !== "Enter" && event.key !== " ") return;
12273
+ event.preventDefault();
12274
+ void reveal(selector);
12275
+ };
12276
+ onCleanup(() => {
12277
+ if (copyTimer) clearTimeout(copyTimer);
12278
+ if (revealTimer) clearTimeout(revealTimer);
12279
+ });
12280
+ return createComponent(Show, {
12281
+ get when() {
12282
+ return props.snapshot;
12283
+ },
12284
+ get fallback() {
12285
+ return _tmpl$11$2();
12286
+ },
12287
+ children: (snapshot) => (() => {
12288
+ var _el$33 = _tmpl$15$2(), _el$34 = _el$33.firstChild, _el$35 = _el$34.firstChild, _el$36 = _el$35.firstChild, _el$37 = _el$36.nextSibling, _el$38 = _el$35.nextSibling, _el$39 = _el$38.firstChild, _el$40 = _el$39.firstChild, _el$41 = _el$39.nextSibling, _el$42 = _el$41.firstChild, _el$43 = _el$41.nextSibling, _el$44 = _el$43.firstChild, _el$45 = _el$43.nextSibling, _el$46 = _el$45.firstChild, _el$48 = _el$34.nextSibling, _el$49 = _el$48.firstChild, _el$50 = _el$49.nextSibling, _el$51 = _el$50.firstChild, _el$53 = _el$51.nextSibling;
12289
+ _el$53.nextSibling;
12290
+ insert(_el$36, pageLabel);
12291
+ insert(_el$37, () => snapshot().pageUrl || "No URL");
12292
+ insert(_el$40, () => snapshot().counts.total);
12293
+ insert(_el$42, () => snapshot().counts.interactable);
12294
+ insert(_el$44, () => snapshot().counts.blocked);
12295
+ insert(_el$46, () => snapshot().counts.disabled);
12296
+ insert(_el$33, createComponent(Show, {
12297
+ get when() {
12298
+ return snapshot().accessIssues.length > 0;
12299
+ },
12300
+ get children() {
12301
+ var _el$47 = _tmpl$12$2();
12302
+ insert(_el$47, createComponent(For, {
12303
+ get each() {
12304
+ return snapshot().accessIssues;
12305
+ },
12306
+ children: (issue) => (() => {
12307
+ var _el$57 = _tmpl$16$1();
12308
+ insert(_el$57, issue);
12309
+ return _el$57;
12310
+ })()
12311
+ }));
12312
+ return _el$47;
12313
+ }
12314
+ }), _el$48);
12315
+ _el$49.$$input = (e) => setQuery(e.currentTarget.value);
12316
+ insert(_el$50, () => filteredElements().length, _el$51);
12317
+ insert(_el$50, () => snapshot().elements.length, _el$53);
12318
+ insert(_el$33, createComponent(Show, {
12319
+ get when() {
12320
+ return revealMessage();
12321
+ },
12322
+ get children() {
12323
+ var _el$54 = _tmpl$13$2();
12324
+ insert(_el$54, revealMessage);
12325
+ return _el$54;
12326
+ }
12327
+ }), null);
12328
+ insert(_el$33, createComponent(Show, {
12329
+ get when() {
12330
+ return snapshot().elements.length > 0;
12331
+ },
12332
+ get fallback() {
12333
+ return _tmpl$17$1();
12334
+ },
12335
+ get children() {
12336
+ var _el$55 = _tmpl$14$2();
12337
+ _el$55.firstChild;
12338
+ insert(_el$55, createComponent(For, {
12339
+ get each() {
12340
+ return filteredElements();
12341
+ },
12342
+ children: (element) => (() => {
12343
+ var _el$59 = _tmpl$19$1(), _el$60 = _el$59.firstChild, _el$61 = _el$60.nextSibling, _el$62 = _el$61.nextSibling, _el$64 = _el$62.nextSibling, _el$65 = _el$64.firstChild, _el$66 = _el$65.nextSibling, _el$67 = _el$64.nextSibling, _el$68 = _el$67.nextSibling, _el$69 = _el$68.firstChild, _el$74 = _el$69.nextSibling, _el$70 = _el$74.nextSibling, _el$75 = _el$70.nextSibling;
12344
+ _el$75.nextSibling;
12345
+ _el$59.$$keydown = (event) => onRevealRowKeyDown(event, element.selector);
12346
+ _el$59.$$click = () => void reveal(element.selector);
12347
+ insert(_el$60, () => element.id);
12348
+ insert(_el$61, () => element.tag, null);
12349
+ insert(_el$61, (() => {
12350
+ var _c$6 = memo(() => !!element.role);
12351
+ return () => _c$6() ? ` [${element.role}]` : "";
12352
+ })(), null);
12353
+ insert(_el$62, () => element.label, null);
12354
+ insert(_el$62, createComponent(Show, {
12355
+ get when() {
12356
+ return element.type || element.href;
12357
+ },
12358
+ get children() {
12359
+ var _el$63 = _tmpl$18$1();
12360
+ insert(_el$63, (() => {
12361
+ var _c$7 = memo(() => !!element.type);
12362
+ return () => _c$7() ? `type=${element.type}` : "";
12363
+ })(), null);
12364
+ insert(_el$63, (() => {
12365
+ var _c$8 = memo(() => !!element.href);
12366
+ return () => _c$8() ? ` → ${element.href}` : "";
12367
+ })(), null);
12368
+ return _el$63;
12369
+ }
12370
+ }), null);
12371
+ insert(_el$65, () => element.selector);
12372
+ _el$66.$$click = (e) => {
12373
+ e.stopPropagation();
12374
+ copySelector(element);
12375
+ };
12376
+ insert(_el$66, createComponent(Show, {
12377
+ get when() {
12378
+ return copiedId() === element.id;
12379
+ },
12380
+ get fallback() {
12381
+ return createComponent(copy_default, {
12382
+ size: 12,
12383
+ "aria-hidden": "true"
12384
+ });
12385
+ },
12386
+ get children() {
12387
+ return createComponent(check_default, {
12388
+ size: 12,
12389
+ "aria-hidden": "true"
12390
+ });
12391
+ }
12392
+ }));
12393
+ insert(_el$67, (() => {
12394
+ var _c$9 = memo(() => !!element.interactable);
12395
+ return () => _c$9() ? "ready" : element.issue || (element.disabled ? "disabled" : "not ready");
12396
+ })());
12397
+ insert(_el$68, () => Math.round(element.bounds.x), _el$69);
12398
+ insert(_el$68, () => Math.round(element.bounds.y), _el$74);
12399
+ insert(_el$68, () => Math.round(element.bounds.width), _el$75);
12400
+ insert(_el$68, () => Math.round(element.bounds.height), null);
12401
+ createRenderEffect((_p$) => {
12402
+ var _v$11 = !!Boolean(element.issue), _v$12 = !!element.interactable, _v$13 = element.label, _v$14 = element.selector, _v$15 = !!(copiedId() === element.id), _v$16 = `page-map-element-state ${element.interactable ? "ready" : "blocked"}`, _v$17 = element.issue;
12403
+ _v$11 !== _p$.e && _el$59.classList.toggle("blocked", _p$.e = _v$11);
12404
+ _v$12 !== _p$.t && _el$59.classList.toggle("ready", _p$.t = _v$12);
12405
+ _v$13 !== _p$.a && setAttribute(_el$62, "title", _p$.a = _v$13);
12406
+ _v$14 !== _p$.o && setAttribute(_el$65, "title", _p$.o = _v$14);
12407
+ _v$15 !== _p$.i && _el$66.classList.toggle("copied", _p$.i = _v$15);
12408
+ _v$16 !== _p$.n && className(_el$67, _p$.n = _v$16);
12409
+ _v$17 !== _p$.s && setAttribute(_el$67, "title", _p$.s = _v$17);
12410
+ return _p$;
12411
+ }, {
12412
+ e: void 0,
12413
+ t: void 0,
12414
+ a: void 0,
12415
+ o: void 0,
12416
+ i: void 0,
12417
+ n: void 0,
12418
+ s: void 0
12419
+ });
12420
+ return _el$59;
12421
+ })()
12422
+ }), null);
12423
+ return _el$55;
12424
+ }
12425
+ }), null);
12426
+ createRenderEffect(() => setAttribute(_el$35, "title", snapshot().pageUrl));
12427
+ createRenderEffect(() => _el$49.value = query());
12428
+ return _el$33;
12429
+ })()
12430
+ });
12431
+ };
12012
12432
  const DevToolsPanel = () => {
12013
12433
  const [activeTab, setActiveTab] = createSignal("console");
12434
+ const {
12435
+ hostState,
12436
+ isResizing,
12437
+ close,
12438
+ togglePlacement,
12439
+ startResize,
12440
+ applyHostState
12441
+ } = useDevToolsPanelHost();
12014
12442
  const [state, setState] = createSignal({
12015
12443
  console: [],
12016
12444
  network: [],
12017
12445
  errors: [],
12018
- activity: []
12446
+ activity: [],
12447
+ agentTrace: [],
12448
+ pageMap: null
12019
12449
  });
12020
12450
  const [showExport, setShowExport] = createSignal(false);
12021
12451
  const [exportConsole, setExportConsole] = createSignal(true);
12022
12452
  const [exportNetwork, setExportNetwork] = createSignal(true);
12023
12453
  const [exportActivity, setExportActivity] = createSignal(true);
12454
+ const [exportTrace, setExportTrace] = createSignal(true);
12455
+ const [exportPageMap, setExportPageMap] = createSignal(true);
12024
12456
  const [dateMode, setDateMode] = createSignal("today");
12025
12457
  const [dateFrom, setDateFrom] = createSignal(todayDateString());
12026
12458
  const [dateTo, setDateTo] = createSignal(todayDateString());
12027
12459
  let exportBtnRef;
12028
12460
  let exportDropdownRef;
12461
+ onMount(() => {
12462
+ void window.vessel.devtoolsPanel.getState().then(setState).catch(() => void 0);
12463
+ });
12029
12464
  createEffect(() => {
12030
12465
  const cleanup2 = window.vessel.devtoolsPanel.onStateUpdate((newState) => {
12031
12466
  setState(newState);
12032
12467
  });
12033
12468
  onCleanup(cleanup2);
12034
12469
  });
12470
+ createEffect(() => {
12471
+ const cleanup2 = window.vessel.devtoolsPanel.onHostStateUpdate(applyHostState);
12472
+ onCleanup(cleanup2);
12473
+ });
12474
+ createEffect(() => {
12475
+ const cleanup2 = window.vessel.devtoolsPanel.onSelectTab(setActiveTab);
12476
+ onCleanup(cleanup2);
12477
+ });
12035
12478
  createEffect(() => {
12036
12479
  if (!showExport()) return;
12037
12480
  const handler = (e) => {
@@ -12046,9 +12489,8 @@ const DevToolsPanel = () => {
12046
12489
  const errorCount = () => state().errors.length;
12047
12490
  const networkCount = () => state().network.length;
12048
12491
  const activityRunning = () => state().activity.filter((a) => a.status === "running").length;
12049
- const close = () => {
12050
- window.vessel.devtoolsPanel.toggle();
12051
- };
12492
+ const traceRunning = () => state().agentTrace.filter((entry) => entry.status === "running").length;
12493
+ const pageMapCount = () => state().pageMap?.counts.interactable ?? 0;
12052
12494
  const handleExport = () => {
12053
12495
  const mode = dateMode();
12054
12496
  const from = dateFrom();
@@ -12069,6 +12511,12 @@ const DevToolsPanel = () => {
12069
12511
  if (exportActivity()) {
12070
12512
  data.activity = filterByDate(state().activity, mode, from, to);
12071
12513
  }
12514
+ if (exportTrace()) {
12515
+ data.agentTrace = filterByDate(state().agentTrace, mode, from, to);
12516
+ }
12517
+ if (exportPageMap()) {
12518
+ data.pageMap = state().pageMap;
12519
+ }
12072
12520
  const json = JSON.stringify(data, null, 2);
12073
12521
  const blob = new Blob([json], {
12074
12522
  type: "application/json"
@@ -12082,97 +12530,165 @@ const DevToolsPanel = () => {
12082
12530
  URL.revokeObjectURL(url);
12083
12531
  setShowExport(false);
12084
12532
  };
12085
- const noneSelected = () => !exportConsole() && !exportNetwork() && !exportActivity();
12533
+ const noneSelected = () => !exportConsole() && !exportNetwork() && !exportActivity() && !exportTrace() && !exportPageMap();
12086
12534
  return (() => {
12087
- var _el$23 = _tmpl$12$2(), _el$24 = _el$23.firstChild, _el$25 = _el$24.firstChild;
12088
- _el$25.firstChild;
12089
- var _el$28 = _el$25.nextSibling;
12090
- _el$28.firstChild;
12091
- var _el$31 = _el$28.nextSibling;
12092
- _el$31.firstChild;
12093
- var _el$34 = _el$31.nextSibling, _el$35 = _el$34.nextSibling, _el$36 = _el$35.firstChild, _el$59 = _el$35.nextSibling, _el$60 = _el$24.nextSibling;
12094
- _el$25.$$click = () => setActiveTab("console");
12095
- insert(_el$25, createComponent(Show, {
12535
+ var _el$76 = _tmpl$26$1(), _el$78 = _el$76.firstChild, _el$79 = _el$78.firstChild;
12536
+ _el$79.firstChild;
12537
+ var _el$82 = _el$79.nextSibling;
12538
+ _el$82.firstChild;
12539
+ var _el$85 = _el$82.nextSibling;
12540
+ _el$85.firstChild;
12541
+ var _el$88 = _el$85.nextSibling;
12542
+ _el$88.firstChild;
12543
+ var _el$91 = _el$88.nextSibling;
12544
+ _el$91.firstChild;
12545
+ var _el$94 = _el$91.nextSibling, _el$95 = _el$94.nextSibling, _el$96 = _el$95.firstChild, _el$123 = _el$95.nextSibling, _el$125 = _el$78.nextSibling;
12546
+ insert(_el$76, createComponent(Show, {
12547
+ get when() {
12548
+ return !hostState().detached;
12549
+ },
12550
+ get children() {
12551
+ var _el$77 = _tmpl$20$1();
12552
+ addEventListener(_el$77, "pointerdown", startResize, true);
12553
+ createRenderEffect(() => _el$77.classList.toggle("resizing", !!isResizing()));
12554
+ return _el$77;
12555
+ }
12556
+ }), _el$78);
12557
+ _el$79.$$click = () => setActiveTab("console");
12558
+ insert(_el$79, createComponent(Show, {
12096
12559
  get when() {
12097
12560
  return errorCount() > 0;
12098
12561
  },
12099
12562
  get children() {
12100
- var _el$27 = _tmpl$0$2();
12101
- insert(_el$27, errorCount);
12102
- return _el$27;
12563
+ var _el$81 = _tmpl$21$1();
12564
+ insert(_el$81, errorCount);
12565
+ return _el$81;
12103
12566
  }
12104
12567
  }), null);
12105
- _el$28.$$click = () => setActiveTab("network");
12106
- insert(_el$28, createComponent(Show, {
12568
+ _el$82.$$click = () => setActiveTab("network");
12569
+ insert(_el$82, createComponent(Show, {
12107
12570
  get when() {
12108
12571
  return networkCount() > 0;
12109
12572
  },
12110
12573
  get children() {
12111
- var _el$30 = _tmpl$1$2();
12112
- insert(_el$30, networkCount);
12113
- return _el$30;
12574
+ var _el$84 = _tmpl$22$1();
12575
+ insert(_el$84, networkCount);
12576
+ return _el$84;
12114
12577
  }
12115
12578
  }), null);
12116
- _el$31.$$click = () => setActiveTab("activity");
12117
- insert(_el$31, createComponent(Show, {
12579
+ _el$85.$$click = () => setActiveTab("activity");
12580
+ insert(_el$85, createComponent(Show, {
12118
12581
  get when() {
12119
12582
  return activityRunning() > 0;
12120
12583
  },
12121
12584
  get children() {
12122
- var _el$33 = _tmpl$1$2();
12123
- insert(_el$33, activityRunning);
12124
- return _el$33;
12585
+ var _el$87 = _tmpl$22$1();
12586
+ insert(_el$87, activityRunning);
12587
+ return _el$87;
12125
12588
  }
12126
12589
  }), null);
12127
- _el$36.$$click = () => setShowExport((v) => !v);
12590
+ _el$88.$$click = () => setActiveTab("agentTrace");
12591
+ insert(_el$88, createComponent(Show, {
12592
+ get when() {
12593
+ return traceRunning() > 0;
12594
+ },
12595
+ get children() {
12596
+ var _el$90 = _tmpl$22$1();
12597
+ insert(_el$90, traceRunning);
12598
+ return _el$90;
12599
+ }
12600
+ }), null);
12601
+ _el$91.$$click = () => setActiveTab("pageMap");
12602
+ insert(_el$91, createComponent(Show, {
12603
+ get when() {
12604
+ return pageMapCount() > 0;
12605
+ },
12606
+ get children() {
12607
+ var _el$93 = _tmpl$22$1();
12608
+ insert(_el$93, pageMapCount);
12609
+ return _el$93;
12610
+ }
12611
+ }), null);
12612
+ _el$96.$$click = () => setShowExport((v) => !v);
12128
12613
  var _ref$3 = exportBtnRef;
12129
- typeof _ref$3 === "function" ? use(_ref$3, _el$36) : exportBtnRef = _el$36;
12130
- insert(_el$35, createComponent(Show, {
12614
+ typeof _ref$3 === "function" ? use(_ref$3, _el$96) : exportBtnRef = _el$96;
12615
+ insert(_el$95, createComponent(Show, {
12131
12616
  get when() {
12132
12617
  return showExport();
12133
12618
  },
12134
12619
  get children() {
12135
- var _el$37 = _tmpl$11$2(), _el$38 = _el$37.firstChild, _el$39 = _el$38.firstChild, _el$40 = _el$39.nextSibling, _el$41 = _el$40.firstChild, _el$42 = _el$40.nextSibling, _el$43 = _el$42.firstChild, _el$44 = _el$42.nextSibling, _el$45 = _el$44.firstChild, _el$46 = _el$38.nextSibling, _el$47 = _el$46.firstChild, _el$48 = _el$47.nextSibling, _el$49 = _el$48.firstChild, _el$50 = _el$49.nextSibling, _el$58 = _el$46.nextSibling;
12620
+ var _el$97 = _tmpl$24$1(), _el$98 = _el$97.firstChild, _el$99 = _el$98.firstChild, _el$100 = _el$99.nextSibling, _el$101 = _el$100.firstChild, _el$102 = _el$100.nextSibling, _el$103 = _el$102.firstChild, _el$104 = _el$102.nextSibling, _el$105 = _el$104.firstChild, _el$106 = _el$104.nextSibling, _el$107 = _el$106.firstChild, _el$108 = _el$106.nextSibling, _el$109 = _el$108.firstChild, _el$110 = _el$98.nextSibling, _el$111 = _el$110.firstChild, _el$112 = _el$111.nextSibling, _el$113 = _el$112.firstChild, _el$114 = _el$113.nextSibling, _el$122 = _el$110.nextSibling;
12136
12621
  var _ref$4 = exportDropdownRef;
12137
- typeof _ref$4 === "function" ? use(_ref$4, _el$37) : exportDropdownRef = _el$37;
12138
- _el$41.addEventListener("change", (e) => setExportConsole(e.currentTarget.checked));
12139
- _el$43.addEventListener("change", (e) => setExportNetwork(e.currentTarget.checked));
12140
- _el$45.addEventListener("change", (e) => setExportActivity(e.currentTarget.checked));
12141
- _el$49.$$click = () => setDateMode("today");
12142
- _el$50.$$click = () => setDateMode("custom");
12143
- insert(_el$46, createComponent(Show, {
12622
+ typeof _ref$4 === "function" ? use(_ref$4, _el$97) : exportDropdownRef = _el$97;
12623
+ _el$101.addEventListener("change", (e) => setExportConsole(e.currentTarget.checked));
12624
+ _el$103.addEventListener("change", (e) => setExportNetwork(e.currentTarget.checked));
12625
+ _el$105.addEventListener("change", (e) => setExportActivity(e.currentTarget.checked));
12626
+ _el$107.addEventListener("change", (e) => setExportTrace(e.currentTarget.checked));
12627
+ _el$109.addEventListener("change", (e) => setExportPageMap(e.currentTarget.checked));
12628
+ _el$113.$$click = () => setDateMode("today");
12629
+ _el$114.$$click = () => setDateMode("custom");
12630
+ insert(_el$110, createComponent(Show, {
12144
12631
  get when() {
12145
12632
  return dateMode() === "custom";
12146
12633
  },
12147
12634
  get children() {
12148
- var _el$51 = _tmpl$10$2(), _el$52 = _el$51.firstChild, _el$53 = _el$52.firstChild, _el$54 = _el$53.nextSibling, _el$55 = _el$52.nextSibling, _el$56 = _el$55.firstChild, _el$57 = _el$56.nextSibling;
12149
- _el$54.$$input = (e) => setDateFrom(e.currentTarget.value);
12150
- _el$57.$$input = (e) => setDateTo(e.currentTarget.value);
12151
- createRenderEffect(() => _el$54.value = dateFrom());
12152
- createRenderEffect(() => _el$57.value = dateTo());
12153
- return _el$51;
12635
+ var _el$115 = _tmpl$23$1(), _el$116 = _el$115.firstChild, _el$117 = _el$116.firstChild, _el$118 = _el$117.nextSibling, _el$119 = _el$116.nextSibling, _el$120 = _el$119.firstChild, _el$121 = _el$120.nextSibling;
12636
+ _el$118.$$input = (e) => setDateFrom(e.currentTarget.value);
12637
+ _el$121.$$input = (e) => setDateTo(e.currentTarget.value);
12638
+ createRenderEffect(() => _el$118.value = dateFrom());
12639
+ createRenderEffect(() => _el$121.value = dateTo());
12640
+ return _el$115;
12154
12641
  }
12155
12642
  }), null);
12156
- _el$58.$$click = handleExport;
12643
+ _el$122.$$click = handleExport;
12157
12644
  createRenderEffect((_p$) => {
12158
- var _v$8 = `export-date-btn ${dateMode() === "today" ? "active" : ""}`, _v$9 = `export-date-btn ${dateMode() === "custom" ? "active" : ""}`, _v$0 = noneSelected();
12159
- _v$8 !== _p$.e && className(_el$49, _p$.e = _v$8);
12160
- _v$9 !== _p$.t && className(_el$50, _p$.t = _v$9);
12161
- _v$0 !== _p$.a && (_el$58.disabled = _p$.a = _v$0);
12645
+ var _v$18 = `export-date-btn ${dateMode() === "today" ? "active" : ""}`, _v$19 = `export-date-btn ${dateMode() === "custom" ? "active" : ""}`, _v$20 = noneSelected();
12646
+ _v$18 !== _p$.e && className(_el$113, _p$.e = _v$18);
12647
+ _v$19 !== _p$.t && className(_el$114, _p$.t = _v$19);
12648
+ _v$20 !== _p$.a && (_el$122.disabled = _p$.a = _v$20);
12162
12649
  return _p$;
12163
12650
  }, {
12164
12651
  e: void 0,
12165
12652
  t: void 0,
12166
12653
  a: void 0
12167
12654
  });
12168
- createRenderEffect(() => _el$41.checked = exportConsole());
12169
- createRenderEffect(() => _el$43.checked = exportNetwork());
12170
- createRenderEffect(() => _el$45.checked = exportActivity());
12171
- return _el$37;
12655
+ createRenderEffect(() => _el$101.checked = exportConsole());
12656
+ createRenderEffect(() => _el$103.checked = exportNetwork());
12657
+ createRenderEffect(() => _el$105.checked = exportActivity());
12658
+ createRenderEffect(() => _el$107.checked = exportTrace());
12659
+ createRenderEffect(() => _el$109.checked = exportPageMap());
12660
+ return _el$97;
12172
12661
  }
12173
12662
  }), null);
12174
- _el$59.$$click = close;
12175
- insert(_el$60, createComponent(Show, {
12663
+ addEventListener(_el$123, "click", togglePlacement, true);
12664
+ insert(_el$123, createComponent(Show, {
12665
+ get when() {
12666
+ return hostState().detached;
12667
+ },
12668
+ get fallback() {
12669
+ return createComponent(external_link_default, {
12670
+ size: 14,
12671
+ "aria-hidden": "true"
12672
+ });
12673
+ },
12674
+ get children() {
12675
+ return createComponent(panel_bottom_open_default, {
12676
+ size: 14,
12677
+ "aria-hidden": "true"
12678
+ });
12679
+ }
12680
+ }));
12681
+ insert(_el$78, createComponent(Show, {
12682
+ get when() {
12683
+ return !hostState().detached;
12684
+ },
12685
+ get children() {
12686
+ var _el$124 = _tmpl$25$1();
12687
+ addEventListener(_el$124, "click", close, true);
12688
+ return _el$124;
12689
+ }
12690
+ }), null);
12691
+ insert(_el$125, createComponent(Show, {
12176
12692
  get when() {
12177
12693
  return activeTab() === "console";
12178
12694
  },
@@ -12184,7 +12700,7 @@ const DevToolsPanel = () => {
12184
12700
  });
12185
12701
  }
12186
12702
  }), null);
12187
- insert(_el$60, createComponent(Show, {
12703
+ insert(_el$125, createComponent(Show, {
12188
12704
  get when() {
12189
12705
  return activeTab() === "network";
12190
12706
  },
@@ -12196,7 +12712,7 @@ const DevToolsPanel = () => {
12196
12712
  });
12197
12713
  }
12198
12714
  }), null);
12199
- insert(_el$60, createComponent(Show, {
12715
+ insert(_el$125, createComponent(Show, {
12200
12716
  get when() {
12201
12717
  return activeTab() === "activity";
12202
12718
  },
@@ -12208,23 +12724,59 @@ const DevToolsPanel = () => {
12208
12724
  });
12209
12725
  }
12210
12726
  }), null);
12727
+ insert(_el$125, createComponent(Show, {
12728
+ get when() {
12729
+ return activeTab() === "agentTrace";
12730
+ },
12731
+ get children() {
12732
+ return createComponent(AgentTraceView, {
12733
+ get entries() {
12734
+ return state().agentTrace;
12735
+ }
12736
+ });
12737
+ }
12738
+ }), null);
12739
+ insert(_el$125, createComponent(Show, {
12740
+ get when() {
12741
+ return activeTab() === "pageMap";
12742
+ },
12743
+ get children() {
12744
+ return createComponent(PageMapView, {
12745
+ get snapshot() {
12746
+ return state().pageMap;
12747
+ }
12748
+ });
12749
+ }
12750
+ }), null);
12211
12751
  createRenderEffect((_p$) => {
12212
- var _v$1 = `devtools-tab ${activeTab() === "console" ? "active" : ""}`, _v$10 = `devtools-tab ${activeTab() === "network" ? "active" : ""}`, _v$11 = `devtools-tab ${activeTab() === "activity" ? "active" : ""}`, _v$12 = `devtools-close-btn ${showExport() ? "active" : ""}`;
12213
- _v$1 !== _p$.e && className(_el$25, _p$.e = _v$1);
12214
- _v$10 !== _p$.t && className(_el$28, _p$.t = _v$10);
12215
- _v$11 !== _p$.a && className(_el$31, _p$.a = _v$11);
12216
- _v$12 !== _p$.o && className(_el$36, _p$.o = _v$12);
12752
+ var _v$21 = !!isResizing(), _v$22 = `${hostState().height}px`, _v$23 = `devtools-tab ${activeTab() === "console" ? "active" : ""}`, _v$24 = `devtools-tab ${activeTab() === "network" ? "active" : ""}`, _v$25 = `devtools-tab ${activeTab() === "activity" ? "active" : ""}`, _v$26 = `devtools-tab ${activeTab() === "agentTrace" ? "active" : ""}`, _v$27 = `devtools-tab ${activeTab() === "pageMap" ? "active" : ""}`, _v$28 = `devtools-close-btn ${showExport() ? "active" : ""}`, _v$29 = hostState().detached ? "Dock DevTools" : "Pop out DevTools", _v$30 = hostState().detached ? "Dock DevTools" : "Pop out DevTools";
12753
+ _v$21 !== _p$.e && _el$76.classList.toggle("tracking-resize", _p$.e = _v$21);
12754
+ _v$22 !== _p$.t && setStyleProperty(_el$76, "--devtools-panel-height", _p$.t = _v$22);
12755
+ _v$23 !== _p$.a && className(_el$79, _p$.a = _v$23);
12756
+ _v$24 !== _p$.o && className(_el$82, _p$.o = _v$24);
12757
+ _v$25 !== _p$.i && className(_el$85, _p$.i = _v$25);
12758
+ _v$26 !== _p$.n && className(_el$88, _p$.n = _v$26);
12759
+ _v$27 !== _p$.s && className(_el$91, _p$.s = _v$27);
12760
+ _v$28 !== _p$.h && className(_el$96, _p$.h = _v$28);
12761
+ _v$29 !== _p$.r && setAttribute(_el$123, "title", _p$.r = _v$29);
12762
+ _v$30 !== _p$.d && setAttribute(_el$123, "aria-label", _p$.d = _v$30);
12217
12763
  return _p$;
12218
12764
  }, {
12219
12765
  e: void 0,
12220
12766
  t: void 0,
12221
12767
  a: void 0,
12222
- o: void 0
12768
+ o: void 0,
12769
+ i: void 0,
12770
+ n: void 0,
12771
+ s: void 0,
12772
+ h: void 0,
12773
+ r: void 0,
12774
+ d: void 0
12223
12775
  });
12224
- return _el$23;
12776
+ return _el$76;
12225
12777
  })();
12226
12778
  };
12227
- delegateEvents(["click", "input"]);
12779
+ delegateEvents(["input", "click", "keydown", "pointerdown"]);
12228
12780
  const PROVIDERS = {
12229
12781
  anthropic: {
12230
12782
  id: "anthropic",