@quanta-intellect/vessel-browser 0.1.137 → 0.1.140
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.
- package/README.md +4 -4
- package/out/main/index.js +14499 -12949
- package/out/preload/content-script.js +18 -0
- package/out/preload/index.js +4 -0
- package/out/renderer/assets/{index-CdUTXTU4.css → index-T8vlGvDJ.css} +270 -19
- package/out/renderer/assets/{index-k2scA5OB.js → index-l3uzsLbO.js} +1078 -679
- package/out/renderer/index.html +2 -2
- package/package.json +3 -3
|
@@ -1606,7 +1606,7 @@ var Icon = (props) => {
|
|
|
1606
1606
|
})();
|
|
1607
1607
|
};
|
|
1608
1608
|
var Icon_default = Icon;
|
|
1609
|
-
var iconNode$
|
|
1609
|
+
var iconNode$E = [["rect", {
|
|
1610
1610
|
x: "2",
|
|
1611
1611
|
y: "4",
|
|
1612
1612
|
width: "20",
|
|
@@ -1624,11 +1624,11 @@ var iconNode$A = [["rect", {
|
|
|
1624
1624
|
key: "1svtjw"
|
|
1625
1625
|
}]];
|
|
1626
1626
|
var AppWindow = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
1627
|
-
iconNode: iconNode$
|
|
1627
|
+
iconNode: iconNode$E,
|
|
1628
1628
|
name: "app-window"
|
|
1629
1629
|
}));
|
|
1630
1630
|
var app_window_default = AppWindow;
|
|
1631
|
-
var iconNode$
|
|
1631
|
+
var iconNode$D = [["path", {
|
|
1632
1632
|
d: "M12 7v14",
|
|
1633
1633
|
key: "1akyts"
|
|
1634
1634
|
}], ["path", {
|
|
@@ -1636,11 +1636,11 @@ var iconNode$z = [["path", {
|
|
|
1636
1636
|
key: "ruj8y"
|
|
1637
1637
|
}]];
|
|
1638
1638
|
var BookOpen = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
1639
|
-
iconNode: iconNode$
|
|
1639
|
+
iconNode: iconNode$D,
|
|
1640
1640
|
name: "book-open"
|
|
1641
1641
|
}));
|
|
1642
1642
|
var book_open_default = BookOpen;
|
|
1643
|
-
var iconNode$
|
|
1643
|
+
var iconNode$C = [["path", {
|
|
1644
1644
|
d: "M12 8V4H8",
|
|
1645
1645
|
key: "hb8ula"
|
|
1646
1646
|
}], ["rect", {
|
|
@@ -1664,20 +1664,29 @@ var iconNode$y = [["path", {
|
|
|
1664
1664
|
key: "rq6x2g"
|
|
1665
1665
|
}]];
|
|
1666
1666
|
var Bot = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
1667
|
-
iconNode: iconNode$
|
|
1667
|
+
iconNode: iconNode$C,
|
|
1668
1668
|
name: "bot"
|
|
1669
1669
|
}));
|
|
1670
1670
|
var bot_default = Bot;
|
|
1671
|
-
var iconNode$
|
|
1671
|
+
var iconNode$B = [["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$
|
|
1676
|
+
iconNode: iconNode$B,
|
|
1677
1677
|
name: "check"
|
|
1678
1678
|
}));
|
|
1679
1679
|
var check_default = Check;
|
|
1680
|
-
var iconNode$
|
|
1680
|
+
var iconNode$A = [["path", {
|
|
1681
|
+
d: "m9 18 6-6-6-6",
|
|
1682
|
+
key: "mthhwq"
|
|
1683
|
+
}]];
|
|
1684
|
+
var ChevronRight = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
1685
|
+
iconNode: iconNode$A,
|
|
1686
|
+
name: "chevron-right"
|
|
1687
|
+
}));
|
|
1688
|
+
var chevron_right_default = ChevronRight;
|
|
1689
|
+
var iconNode$z = [["circle", {
|
|
1681
1690
|
cx: "12",
|
|
1682
1691
|
cy: "12",
|
|
1683
1692
|
r: "10",
|
|
@@ -1690,11 +1699,11 @@ var iconNode$w = [["circle", {
|
|
|
1690
1699
|
key: "p32p05"
|
|
1691
1700
|
}]];
|
|
1692
1701
|
var CircleQuestionMark = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
1693
|
-
iconNode: iconNode$
|
|
1702
|
+
iconNode: iconNode$z,
|
|
1694
1703
|
name: "circle-question-mark"
|
|
1695
1704
|
}));
|
|
1696
1705
|
var circle_question_mark_default = CircleQuestionMark;
|
|
1697
|
-
var iconNode$
|
|
1706
|
+
var iconNode$y = [["rect", {
|
|
1698
1707
|
width: "8",
|
|
1699
1708
|
height: "4",
|
|
1700
1709
|
x: "8",
|
|
@@ -1719,11 +1728,11 @@ var iconNode$v = [["rect", {
|
|
|
1719
1728
|
key: "18s6g9"
|
|
1720
1729
|
}]];
|
|
1721
1730
|
var ClipboardList = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
1722
|
-
iconNode: iconNode$
|
|
1731
|
+
iconNode: iconNode$y,
|
|
1723
1732
|
name: "clipboard-list"
|
|
1724
1733
|
}));
|
|
1725
1734
|
var clipboard_list_default = ClipboardList;
|
|
1726
|
-
var iconNode$
|
|
1735
|
+
var iconNode$x = [["circle", {
|
|
1727
1736
|
cx: "12",
|
|
1728
1737
|
cy: "12",
|
|
1729
1738
|
r: "10",
|
|
@@ -1733,11 +1742,11 @@ var iconNode$u = [["circle", {
|
|
|
1733
1742
|
key: "mmk7yg"
|
|
1734
1743
|
}]];
|
|
1735
1744
|
var Clock = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
1736
|
-
iconNode: iconNode$
|
|
1745
|
+
iconNode: iconNode$x,
|
|
1737
1746
|
name: "clock"
|
|
1738
1747
|
}));
|
|
1739
1748
|
var clock_default = Clock;
|
|
1740
|
-
var iconNode$
|
|
1749
|
+
var iconNode$w = [["path", {
|
|
1741
1750
|
d: "M12 20v2",
|
|
1742
1751
|
key: "1lh1kg"
|
|
1743
1752
|
}], ["path", {
|
|
@@ -1789,11 +1798,11 @@ var iconNode$t = [["path", {
|
|
|
1789
1798
|
key: "z9xiuo"
|
|
1790
1799
|
}]];
|
|
1791
1800
|
var Cpu = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
1792
|
-
iconNode: iconNode$
|
|
1801
|
+
iconNode: iconNode$w,
|
|
1793
1802
|
name: "cpu"
|
|
1794
1803
|
}));
|
|
1795
1804
|
var cpu_default = Cpu;
|
|
1796
|
-
var iconNode$
|
|
1805
|
+
var iconNode$v = [["path", {
|
|
1797
1806
|
d: "M12 15V3",
|
|
1798
1807
|
key: "m9g1x1"
|
|
1799
1808
|
}], ["path", {
|
|
@@ -1804,11 +1813,11 @@ var iconNode$s = [["path", {
|
|
|
1804
1813
|
key: "brsn70"
|
|
1805
1814
|
}]];
|
|
1806
1815
|
var Download = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
1807
|
-
iconNode: iconNode$
|
|
1816
|
+
iconNode: iconNode$v,
|
|
1808
1817
|
name: "download"
|
|
1809
1818
|
}));
|
|
1810
1819
|
var download_default = Download;
|
|
1811
|
-
var iconNode$
|
|
1820
|
+
var iconNode$u = [["path", {
|
|
1812
1821
|
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",
|
|
1813
1822
|
key: "g5wo59"
|
|
1814
1823
|
}], ["path", {
|
|
@@ -1816,11 +1825,11 @@ var iconNode$r = [["path", {
|
|
|
1816
1825
|
key: "1wx5vj"
|
|
1817
1826
|
}]];
|
|
1818
1827
|
var Eraser = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
1819
|
-
iconNode: iconNode$
|
|
1828
|
+
iconNode: iconNode$u,
|
|
1820
1829
|
name: "eraser"
|
|
1821
1830
|
}));
|
|
1822
1831
|
var eraser_default = Eraser;
|
|
1823
|
-
var iconNode$
|
|
1832
|
+
var iconNode$t = [["path", {
|
|
1824
1833
|
d: "M15 3h6v6",
|
|
1825
1834
|
key: "1q9fwt"
|
|
1826
1835
|
}], ["path", {
|
|
@@ -1831,11 +1840,25 @@ var iconNode$q = [["path", {
|
|
|
1831
1840
|
key: "a6xqqp"
|
|
1832
1841
|
}]];
|
|
1833
1842
|
var ExternalLink = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
1834
|
-
iconNode: iconNode$
|
|
1843
|
+
iconNode: iconNode$t,
|
|
1835
1844
|
name: "external-link"
|
|
1836
1845
|
}));
|
|
1837
1846
|
var external_link_default = ExternalLink;
|
|
1838
|
-
var iconNode$
|
|
1847
|
+
var iconNode$s = [["path", {
|
|
1848
|
+
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
|
+
key: "1nclc0"
|
|
1850
|
+
}], ["circle", {
|
|
1851
|
+
cx: "12",
|
|
1852
|
+
cy: "12",
|
|
1853
|
+
r: "3",
|
|
1854
|
+
key: "1v7zrd"
|
|
1855
|
+
}]];
|
|
1856
|
+
var Eye = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
1857
|
+
iconNode: iconNode$s,
|
|
1858
|
+
name: "eye"
|
|
1859
|
+
}));
|
|
1860
|
+
var eye_default = Eye;
|
|
1861
|
+
var iconNode$r = [["path", {
|
|
1839
1862
|
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",
|
|
1840
1863
|
key: "1oefj6"
|
|
1841
1864
|
}], ["path", {
|
|
@@ -1849,11 +1872,11 @@ var iconNode$p = [["path", {
|
|
|
1849
1872
|
key: "1npd3o"
|
|
1850
1873
|
}]];
|
|
1851
1874
|
var FileDown = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
1852
|
-
iconNode: iconNode$
|
|
1875
|
+
iconNode: iconNode$r,
|
|
1853
1876
|
name: "file-down"
|
|
1854
1877
|
}));
|
|
1855
1878
|
var file_down_default = FileDown;
|
|
1856
|
-
var iconNode$
|
|
1879
|
+
var iconNode$q = [["circle", {
|
|
1857
1880
|
cx: "12",
|
|
1858
1881
|
cy: "12",
|
|
1859
1882
|
r: "3",
|
|
@@ -1872,11 +1895,11 @@ var iconNode$o = [["circle", {
|
|
|
1872
1895
|
key: "ioqczr"
|
|
1873
1896
|
}]];
|
|
1874
1897
|
var Focus = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
1875
|
-
iconNode: iconNode$
|
|
1898
|
+
iconNode: iconNode$q,
|
|
1876
1899
|
name: "focus"
|
|
1877
1900
|
}));
|
|
1878
1901
|
var focus_default = Focus;
|
|
1879
|
-
var iconNode$
|
|
1902
|
+
var iconNode$p = [["circle", {
|
|
1880
1903
|
cx: "12",
|
|
1881
1904
|
cy: "12",
|
|
1882
1905
|
r: "10",
|
|
@@ -1889,11 +1912,11 @@ var iconNode$n = [["circle", {
|
|
|
1889
1912
|
key: "9i4pu4"
|
|
1890
1913
|
}]];
|
|
1891
1914
|
var Globe = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
1892
|
-
iconNode: iconNode$
|
|
1915
|
+
iconNode: iconNode$p,
|
|
1893
1916
|
name: "globe"
|
|
1894
1917
|
}));
|
|
1895
1918
|
var globe_default = Globe;
|
|
1896
|
-
var iconNode$
|
|
1919
|
+
var iconNode$o = [["path", {
|
|
1897
1920
|
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",
|
|
1898
1921
|
key: "zzgyd3"
|
|
1899
1922
|
}], ["path", {
|
|
@@ -1910,11 +1933,11 @@ var iconNode$m = [["path", {
|
|
|
1910
1933
|
key: "jksky3"
|
|
1911
1934
|
}]];
|
|
1912
1935
|
var LayersPlus = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
1913
|
-
iconNode: iconNode$
|
|
1936
|
+
iconNode: iconNode$o,
|
|
1914
1937
|
name: "layers-plus"
|
|
1915
1938
|
}));
|
|
1916
1939
|
var layers_plus_default = LayersPlus;
|
|
1917
|
-
var iconNode$
|
|
1940
|
+
var iconNode$n = [["rect", {
|
|
1918
1941
|
width: "18",
|
|
1919
1942
|
height: "11",
|
|
1920
1943
|
x: "3",
|
|
@@ -1927,11 +1950,11 @@ var iconNode$l = [["rect", {
|
|
|
1927
1950
|
key: "fwvmzm"
|
|
1928
1951
|
}]];
|
|
1929
1952
|
var Lock = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
1930
|
-
iconNode: iconNode$
|
|
1953
|
+
iconNode: iconNode$n,
|
|
1931
1954
|
name: "lock"
|
|
1932
1955
|
}));
|
|
1933
1956
|
var lock_default = Lock;
|
|
1934
|
-
var iconNode$
|
|
1957
|
+
var iconNode$m = [["rect", {
|
|
1935
1958
|
width: "18",
|
|
1936
1959
|
height: "18",
|
|
1937
1960
|
x: "3",
|
|
@@ -1943,11 +1966,11 @@ var iconNode$k = [["rect", {
|
|
|
1943
1966
|
key: "fh3hqa"
|
|
1944
1967
|
}]];
|
|
1945
1968
|
var PanelLeft = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
1946
|
-
iconNode: iconNode$
|
|
1969
|
+
iconNode: iconNode$m,
|
|
1947
1970
|
name: "panel-left"
|
|
1948
1971
|
}));
|
|
1949
1972
|
var panel_left_default = PanelLeft;
|
|
1950
|
-
var iconNode$
|
|
1973
|
+
var iconNode$l = [["rect", {
|
|
1951
1974
|
width: "18",
|
|
1952
1975
|
height: "18",
|
|
1953
1976
|
x: "3",
|
|
@@ -1962,11 +1985,11 @@ var iconNode$j = [["rect", {
|
|
|
1962
1985
|
key: "12hl5m"
|
|
1963
1986
|
}]];
|
|
1964
1987
|
var PanelRightClose = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
1965
|
-
iconNode: iconNode$
|
|
1988
|
+
iconNode: iconNode$l,
|
|
1966
1989
|
name: "panel-right-close"
|
|
1967
1990
|
}));
|
|
1968
1991
|
var panel_right_close_default = PanelRightClose;
|
|
1969
|
-
var iconNode$
|
|
1992
|
+
var iconNode$k = [["rect", {
|
|
1970
1993
|
width: "18",
|
|
1971
1994
|
height: "18",
|
|
1972
1995
|
x: "3",
|
|
@@ -1978,11 +2001,11 @@ var iconNode$i = [["rect", {
|
|
|
1978
2001
|
key: "14nvp0"
|
|
1979
2002
|
}]];
|
|
1980
2003
|
var PanelRight = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
1981
|
-
iconNode: iconNode$
|
|
2004
|
+
iconNode: iconNode$k,
|
|
1982
2005
|
name: "panel-right"
|
|
1983
2006
|
}));
|
|
1984
2007
|
var panel_right_default = PanelRight;
|
|
1985
|
-
var iconNode$
|
|
2008
|
+
var iconNode$j = [["rect", {
|
|
1986
2009
|
width: "18",
|
|
1987
2010
|
height: "18",
|
|
1988
2011
|
x: "3",
|
|
@@ -1994,11 +2017,23 @@ var iconNode$h = [["rect", {
|
|
|
1994
2017
|
key: "1pudct"
|
|
1995
2018
|
}]];
|
|
1996
2019
|
var PanelTop = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
1997
|
-
iconNode: iconNode$
|
|
2020
|
+
iconNode: iconNode$j,
|
|
1998
2021
|
name: "panel-top"
|
|
1999
2022
|
}));
|
|
2000
2023
|
var panel_top_default = PanelTop;
|
|
2001
|
-
var iconNode$
|
|
2024
|
+
var iconNode$i = [["path", {
|
|
2025
|
+
d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",
|
|
2026
|
+
key: "1a8usu"
|
|
2027
|
+
}], ["path", {
|
|
2028
|
+
d: "m15 5 4 4",
|
|
2029
|
+
key: "1mk7zo"
|
|
2030
|
+
}]];
|
|
2031
|
+
var Pencil = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
2032
|
+
iconNode: iconNode$i,
|
|
2033
|
+
name: "pencil"
|
|
2034
|
+
}));
|
|
2035
|
+
var pencil_default = Pencil;
|
|
2036
|
+
var iconNode$h = [["path", {
|
|
2002
2037
|
d: "M5 12h14",
|
|
2003
2038
|
key: "1ays0h"
|
|
2004
2039
|
}], ["path", {
|
|
@@ -2006,11 +2041,11 @@ var iconNode$g = [["path", {
|
|
|
2006
2041
|
key: "s699le"
|
|
2007
2042
|
}]];
|
|
2008
2043
|
var Plus = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
2009
|
-
iconNode: iconNode$
|
|
2044
|
+
iconNode: iconNode$h,
|
|
2010
2045
|
name: "plus"
|
|
2011
2046
|
}));
|
|
2012
2047
|
var plus_default = Plus;
|
|
2013
|
-
var iconNode$
|
|
2048
|
+
var iconNode$g = [["path", {
|
|
2014
2049
|
d: "M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2",
|
|
2015
2050
|
key: "143wyd"
|
|
2016
2051
|
}], ["path", {
|
|
@@ -2025,11 +2060,11 @@ var iconNode$f = [["path", {
|
|
|
2025
2060
|
key: "1ue0tg"
|
|
2026
2061
|
}]];
|
|
2027
2062
|
var Printer = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
2028
|
-
iconNode: iconNode$
|
|
2063
|
+
iconNode: iconNode$g,
|
|
2029
2064
|
name: "printer"
|
|
2030
2065
|
}));
|
|
2031
2066
|
var printer_default = Printer;
|
|
2032
|
-
var iconNode$
|
|
2067
|
+
var iconNode$f = [["path", {
|
|
2033
2068
|
d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",
|
|
2034
2069
|
key: "1357e3"
|
|
2035
2070
|
}], ["path", {
|
|
@@ -2037,11 +2072,11 @@ var iconNode$e = [["path", {
|
|
|
2037
2072
|
key: "1xhq8a"
|
|
2038
2073
|
}]];
|
|
2039
2074
|
var RotateCcw = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
2040
|
-
iconNode: iconNode$
|
|
2075
|
+
iconNode: iconNode$f,
|
|
2041
2076
|
name: "rotate-ccw"
|
|
2042
2077
|
}));
|
|
2043
2078
|
var rotate_ccw_default = RotateCcw;
|
|
2044
|
-
var iconNode$
|
|
2079
|
+
var iconNode$e = [["path", {
|
|
2045
2080
|
d: "m21 21-4.34-4.34",
|
|
2046
2081
|
key: "14j7rj"
|
|
2047
2082
|
}], ["circle", {
|
|
@@ -2051,11 +2086,11 @@ var iconNode$d = [["path", {
|
|
|
2051
2086
|
key: "4ej97u"
|
|
2052
2087
|
}]];
|
|
2053
2088
|
var Search = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
2054
|
-
iconNode: iconNode$
|
|
2089
|
+
iconNode: iconNode$e,
|
|
2055
2090
|
name: "search"
|
|
2056
2091
|
}));
|
|
2057
2092
|
var search_default = Search;
|
|
2058
|
-
var iconNode$
|
|
2093
|
+
var iconNode$d = [["path", {
|
|
2059
2094
|
d: "M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",
|
|
2060
2095
|
key: "1i5ecw"
|
|
2061
2096
|
}], ["circle", {
|
|
@@ -2065,29 +2100,29 @@ var iconNode$c = [["path", {
|
|
|
2065
2100
|
key: "1v7zrd"
|
|
2066
2101
|
}]];
|
|
2067
2102
|
var Settings$1 = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
2068
|
-
iconNode: iconNode$
|
|
2103
|
+
iconNode: iconNode$d,
|
|
2069
2104
|
name: "settings"
|
|
2070
2105
|
}));
|
|
2071
2106
|
var settings_default = Settings$1;
|
|
2072
|
-
var iconNode$
|
|
2107
|
+
var iconNode$c = [["path", {
|
|
2073
2108
|
d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
|
|
2074
2109
|
key: "oel41y"
|
|
2075
2110
|
}]];
|
|
2076
2111
|
var Shield = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
2077
|
-
iconNode: iconNode$
|
|
2112
|
+
iconNode: iconNode$c,
|
|
2078
2113
|
name: "shield"
|
|
2079
2114
|
}));
|
|
2080
2115
|
var shield_default = Shield;
|
|
2081
|
-
var iconNode$
|
|
2116
|
+
var iconNode$b = [["path", {
|
|
2082
2117
|
d: "M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",
|
|
2083
2118
|
key: "r04s7s"
|
|
2084
2119
|
}]];
|
|
2085
2120
|
var Star = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
2086
|
-
iconNode: iconNode$
|
|
2121
|
+
iconNode: iconNode$b,
|
|
2087
2122
|
name: "star"
|
|
2088
2123
|
}));
|
|
2089
2124
|
var star_default = Star;
|
|
2090
|
-
var iconNode$
|
|
2125
|
+
var iconNode$a = [["path", {
|
|
2091
2126
|
d: "M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",
|
|
2092
2127
|
key: "vktsd0"
|
|
2093
2128
|
}], ["circle", {
|
|
@@ -2098,11 +2133,11 @@ var iconNode$9 = [["path", {
|
|
|
2098
2133
|
key: "kqv944"
|
|
2099
2134
|
}]];
|
|
2100
2135
|
var Tag = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
2101
|
-
iconNode: iconNode$
|
|
2136
|
+
iconNode: iconNode$a,
|
|
2102
2137
|
name: "tag"
|
|
2103
2138
|
}));
|
|
2104
2139
|
var tag_default = Tag;
|
|
2105
|
-
var iconNode$
|
|
2140
|
+
var iconNode$9 = [["path", {
|
|
2106
2141
|
d: "M10 11v6",
|
|
2107
2142
|
key: "nco0om"
|
|
2108
2143
|
}], ["path", {
|
|
@@ -2119,11 +2154,11 @@ var iconNode$8 = [["path", {
|
|
|
2119
2154
|
key: "e791ji"
|
|
2120
2155
|
}]];
|
|
2121
2156
|
var Trash2 = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
2122
|
-
iconNode: iconNode$
|
|
2157
|
+
iconNode: iconNode$9,
|
|
2123
2158
|
name: "trash-2"
|
|
2124
2159
|
}));
|
|
2125
2160
|
var trash_2_default = Trash2;
|
|
2126
|
-
var iconNode$
|
|
2161
|
+
var iconNode$8 = [["path", {
|
|
2127
2162
|
d: "M9 14 4 9l5-5",
|
|
2128
2163
|
key: "102s5s"
|
|
2129
2164
|
}], ["path", {
|
|
@@ -2131,10 +2166,25 @@ var iconNode$7 = [["path", {
|
|
|
2131
2166
|
key: "f3b9sd"
|
|
2132
2167
|
}]];
|
|
2133
2168
|
var Undo2 = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
2134
|
-
iconNode: iconNode$
|
|
2169
|
+
iconNode: iconNode$8,
|
|
2135
2170
|
name: "undo-2"
|
|
2136
2171
|
}));
|
|
2137
2172
|
var undo_2_default = Undo2;
|
|
2173
|
+
var iconNode$7 = [["path", {
|
|
2174
|
+
d: "M12 3v12",
|
|
2175
|
+
key: "1x0j5s"
|
|
2176
|
+
}], ["path", {
|
|
2177
|
+
d: "m17 8-5-5-5 5",
|
|
2178
|
+
key: "7q97r8"
|
|
2179
|
+
}], ["path", {
|
|
2180
|
+
d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",
|
|
2181
|
+
key: "ih7n3h"
|
|
2182
|
+
}]];
|
|
2183
|
+
var Upload = (props) => createComponent(Icon_default, mergeProps(props, {
|
|
2184
|
+
iconNode: iconNode$7,
|
|
2185
|
+
name: "upload"
|
|
2186
|
+
}));
|
|
2187
|
+
var upload_default = Upload;
|
|
2138
2188
|
var iconNode$6 = [["path", {
|
|
2139
2189
|
d: "M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",
|
|
2140
2190
|
key: "975kel"
|
|
@@ -6045,6 +6095,105 @@ function buildAndRememberBookmarkContext(args) {
|
|
|
6045
6095
|
rememberedSummary: remembered?.summary ?? null
|
|
6046
6096
|
});
|
|
6047
6097
|
}
|
|
6098
|
+
const logger$1 = createLogger("AutomationKits");
|
|
6099
|
+
const BUNDLED_KITS = [];
|
|
6100
|
+
function normalizeSkillCommandToken(value) {
|
|
6101
|
+
return value.trim().toLowerCase().replace(/^\/+/, "").replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
6102
|
+
}
|
|
6103
|
+
function getSkillCommandTokens(kit) {
|
|
6104
|
+
return Array.from(
|
|
6105
|
+
new Set([
|
|
6106
|
+
normalizeSkillCommandToken(kit.name),
|
|
6107
|
+
normalizeSkillCommandToken(kit.id)
|
|
6108
|
+
].filter(Boolean))
|
|
6109
|
+
);
|
|
6110
|
+
}
|
|
6111
|
+
function parseSkillSlashInvocation(value, kits) {
|
|
6112
|
+
const trimmed = value.trim();
|
|
6113
|
+
if (!trimmed.startsWith("/")) return null;
|
|
6114
|
+
const [rawCommand = "", ...rest] = trimmed.split(/\s+/);
|
|
6115
|
+
const command = normalizeSkillCommandToken(rawCommand);
|
|
6116
|
+
let skillToken = command;
|
|
6117
|
+
let task = rest.join(" ").trim();
|
|
6118
|
+
if (command === "skill") {
|
|
6119
|
+
const [rawSkillToken = "", ...skillRest] = rest;
|
|
6120
|
+
skillToken = normalizeSkillCommandToken(rawSkillToken);
|
|
6121
|
+
task = skillRest.join(" ").trim();
|
|
6122
|
+
}
|
|
6123
|
+
if (!skillToken) return null;
|
|
6124
|
+
const kit = kits.find(
|
|
6125
|
+
(candidate) => getSkillCommandTokens(candidate).includes(skillToken)
|
|
6126
|
+
);
|
|
6127
|
+
return kit ? { kit, task } : null;
|
|
6128
|
+
}
|
|
6129
|
+
function getSkillSlashSuggestionQuery(value) {
|
|
6130
|
+
if (!value.startsWith("/") || value.includes("\n")) return null;
|
|
6131
|
+
const withoutSlash = value.slice(1);
|
|
6132
|
+
if (/^\S+\s+\S/.test(withoutSlash) && !withoutSlash.startsWith("skill ")) {
|
|
6133
|
+
return null;
|
|
6134
|
+
}
|
|
6135
|
+
if (withoutSlash === "skill") return "";
|
|
6136
|
+
if (withoutSlash.startsWith("skill ")) {
|
|
6137
|
+
const afterSkill = withoutSlash.slice("skill ".length);
|
|
6138
|
+
if (afterSkill.includes(" ")) return null;
|
|
6139
|
+
return normalizeSkillCommandToken(afterSkill);
|
|
6140
|
+
}
|
|
6141
|
+
if (withoutSlash.includes(" ")) return null;
|
|
6142
|
+
return normalizeSkillCommandToken(withoutSlash);
|
|
6143
|
+
}
|
|
6144
|
+
function getSkillSlashSuggestions(value, kits, limit = 6) {
|
|
6145
|
+
const query = getSkillSlashSuggestionQuery(value);
|
|
6146
|
+
if (query === null) return [];
|
|
6147
|
+
return kits.map((kit) => ({
|
|
6148
|
+
kit,
|
|
6149
|
+
tokens: getSkillCommandTokens(kit),
|
|
6150
|
+
normalizedName: normalizeSkillCommandToken(kit.name)
|
|
6151
|
+
})).filter(
|
|
6152
|
+
({ tokens, normalizedName }) => query ? tokens.some((token) => token.includes(query)) || normalizedName.includes(query) : true
|
|
6153
|
+
).sort((left, right) => {
|
|
6154
|
+
if (!query) return left.kit.name.localeCompare(right.kit.name);
|
|
6155
|
+
const leftStarts = left.tokens.some((token) => token.startsWith(query));
|
|
6156
|
+
const rightStarts = right.tokens.some((token) => token.startsWith(query));
|
|
6157
|
+
if (leftStarts !== rightStarts) return leftStarts ? -1 : 1;
|
|
6158
|
+
return left.kit.name.localeCompare(right.kit.name);
|
|
6159
|
+
}).slice(0, limit).map(({ kit }) => kit);
|
|
6160
|
+
}
|
|
6161
|
+
function canRunWithoutSlashTask(kit, inputKey) {
|
|
6162
|
+
if (inputKey !== "task") return false;
|
|
6163
|
+
const taskPlaceholder = `{{${inputKey}}}`;
|
|
6164
|
+
const placeholderIndex = kit.promptTemplate.indexOf(taskPlaceholder);
|
|
6165
|
+
if (placeholderIndex <= 0) return false;
|
|
6166
|
+
const leadingInstructions = kit.promptTemplate.slice(0, placeholderIndex).replace(/\{\{\w+\}\}/g, "").replace(/\btask\s*:?\s*$/i, "").trim();
|
|
6167
|
+
return /[a-z0-9]/i.test(leadingInstructions);
|
|
6168
|
+
}
|
|
6169
|
+
function buildSlashSkillValues(kit, task) {
|
|
6170
|
+
const values = {};
|
|
6171
|
+
for (const input of kit.inputs) {
|
|
6172
|
+
values[input.key] = input.defaultValue ?? "";
|
|
6173
|
+
}
|
|
6174
|
+
const targetInput = kit.inputs.find((input) => input.key === "task") ?? kit.inputs.find((input) => input.type === "textarea") ?? kit.inputs.find((input) => input.required) ?? kit.inputs[0];
|
|
6175
|
+
if (targetInput) {
|
|
6176
|
+
values[targetInput.key] = task;
|
|
6177
|
+
}
|
|
6178
|
+
const missingLabels = kit.inputs.filter((input) => input.required).filter((input) => {
|
|
6179
|
+
if (values[input.key]?.trim()) return false;
|
|
6180
|
+
return !canRunWithoutSlashTask(kit, input.key);
|
|
6181
|
+
}).map((input) => input.label);
|
|
6182
|
+
return { values, missingLabels };
|
|
6183
|
+
}
|
|
6184
|
+
function renderKitPrompt(kit, values) {
|
|
6185
|
+
for (const input of kit.inputs) {
|
|
6186
|
+
if (input.required && !values[input.key]?.trim() && !canRunWithoutSlashTask(kit, input.key)) {
|
|
6187
|
+
logger$1.warn(
|
|
6188
|
+
`Required field "${input.key}" is empty for kit "${kit.id}".`
|
|
6189
|
+
);
|
|
6190
|
+
}
|
|
6191
|
+
}
|
|
6192
|
+
return kit.promptTemplate.replace(
|
|
6193
|
+
/\{\{(\w+)\}\}/g,
|
|
6194
|
+
(_, key) => values[key] ?? ""
|
|
6195
|
+
);
|
|
6196
|
+
}
|
|
6048
6197
|
function _arrayLikeToArray(r, a) {
|
|
6049
6198
|
(null == a || a > r.length) && (a = r.length);
|
|
6050
6199
|
for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
|
|
@@ -7456,8 +7605,9 @@ const TOOL_ICONS = {
|
|
|
7456
7605
|
function renderToolChip(name, args) {
|
|
7457
7606
|
const icon = TOOL_ICONS[name] || "⚙";
|
|
7458
7607
|
const displayName = name.replace(/_/g, " ");
|
|
7608
|
+
const failed = args.trim().startsWith("⚠");
|
|
7459
7609
|
const argsHtml = args ? `<span class="tool-chip-args">${escapeHtml(args.length > MAX_PREVIEW_TEXT ? args.slice(0, TRUNCATE_KEEP) + "..." : args)}</span>` : "";
|
|
7460
|
-
return `<div class="tool-chip"><span class="tool-chip-icon">${icon}</span><span class="tool-chip-name">${escapeHtml(displayName)}</span>${argsHtml}</div>`;
|
|
7610
|
+
return `<div class="tool-chip${failed ? " tool-chip-failed" : ""}"><span class="tool-chip-icon">${icon}</span><span class="tool-chip-name">${escapeHtml(displayName)}</span>${argsHtml}</div>`;
|
|
7461
7611
|
}
|
|
7462
7612
|
function renderMarkdown(source) {
|
|
7463
7613
|
const codeBlocks = [];
|
|
@@ -7690,156 +7840,8 @@ const DropdownSelect = (props) => {
|
|
|
7690
7840
|
})();
|
|
7691
7841
|
};
|
|
7692
7842
|
delegateEvents(["click"]);
|
|
7693
|
-
const BUNDLED_KIT_IDS = /* @__PURE__ */ new Set(
|
|
7694
|
-
|
|
7695
|
-
"price-scout",
|
|
7696
|
-
"form-filler"
|
|
7697
|
-
]);
|
|
7698
|
-
const logger$1 = createLogger("AutomationKits");
|
|
7699
|
-
const BUNDLED_KITS = [
|
|
7700
|
-
{
|
|
7701
|
-
id: "research-collect",
|
|
7702
|
-
name: "Research & Collect",
|
|
7703
|
-
description: "Browse the web to research a topic, compile key findings, and save the best sources as bookmarks.",
|
|
7704
|
-
category: "research",
|
|
7705
|
-
icon: "BookOpen",
|
|
7706
|
-
estimatedMinutes: 5,
|
|
7707
|
-
inputs: [
|
|
7708
|
-
{
|
|
7709
|
-
key: "topic",
|
|
7710
|
-
label: "Topic",
|
|
7711
|
-
type: "text",
|
|
7712
|
-
placeholder: "e.g. best ergonomic keyboards 2024",
|
|
7713
|
-
required: true
|
|
7714
|
-
},
|
|
7715
|
-
{
|
|
7716
|
-
key: "question",
|
|
7717
|
-
label: "What do you want to know?",
|
|
7718
|
-
type: "textarea",
|
|
7719
|
-
placeholder: "e.g. What are the top-rated options under $200, and what makes each one stand out?",
|
|
7720
|
-
hint: "The more specific your question, the better the results",
|
|
7721
|
-
required: true
|
|
7722
|
-
},
|
|
7723
|
-
{
|
|
7724
|
-
key: "folderName",
|
|
7725
|
-
label: "Save bookmarks to folder",
|
|
7726
|
-
type: "text",
|
|
7727
|
-
placeholder: "e.g. Keyboard Research",
|
|
7728
|
-
hint: "Folder will be created if it doesn't exist",
|
|
7729
|
-
required: true,
|
|
7730
|
-
defaultValue: "Research"
|
|
7731
|
-
}
|
|
7732
|
-
],
|
|
7733
|
-
promptTemplate: `Research the topic "{{topic}}" to answer this question: {{question}}
|
|
7734
|
-
|
|
7735
|
-
Browse at least 3–5 reputable web sources. For each useful source you find:
|
|
7736
|
-
1. Read the key information relevant to the question
|
|
7737
|
-
2. Save the page as a bookmark in the "{{folderName}}" folder (create it if it doesn't exist)
|
|
7738
|
-
3. Add a short note to the bookmark explaining why it's relevant
|
|
7739
|
-
|
|
7740
|
-
When finished, summarize the most important findings in 3–5 bullet points and list the sources saved.`
|
|
7741
|
-
},
|
|
7742
|
-
{
|
|
7743
|
-
id: "price-scout",
|
|
7744
|
-
name: "Price Scout",
|
|
7745
|
-
description: "Search for a product across major retailers and surface the best current price.",
|
|
7746
|
-
category: "shopping",
|
|
7747
|
-
icon: "Tag",
|
|
7748
|
-
estimatedMinutes: 4,
|
|
7749
|
-
inputs: [
|
|
7750
|
-
{
|
|
7751
|
-
key: "product",
|
|
7752
|
-
label: "Product",
|
|
7753
|
-
type: "text",
|
|
7754
|
-
placeholder: "e.g. Sony WH-1000XM5 headphones",
|
|
7755
|
-
hint: "Include brand and model number for best results",
|
|
7756
|
-
required: true
|
|
7757
|
-
},
|
|
7758
|
-
{
|
|
7759
|
-
key: "condition",
|
|
7760
|
-
label: "Condition",
|
|
7761
|
-
type: "text",
|
|
7762
|
-
placeholder: "new",
|
|
7763
|
-
hint: "e.g. new, used, refurbished",
|
|
7764
|
-
required: false,
|
|
7765
|
-
defaultValue: "new"
|
|
7766
|
-
}
|
|
7767
|
-
],
|
|
7768
|
-
promptTemplate: `Find the best current price for "{{product}}" (condition: {{condition}}).
|
|
7769
|
-
|
|
7770
|
-
Search Google Shopping, then check at least 3–4 major retailers (Amazon, Walmart, Best Buy, Target, or whichever are most relevant for this product type).
|
|
7771
|
-
|
|
7772
|
-
For each retailer where you find the product:
|
|
7773
|
-
1. Note the price and any important details (shipping cost, availability, condition)
|
|
7774
|
-
2. Highlight the price on the page
|
|
7775
|
-
|
|
7776
|
-
At the end, tell me:
|
|
7777
|
-
- Which store has the best deal and why
|
|
7778
|
-
- A summary of all prices found
|
|
7779
|
-
- Any caveats worth knowing (limited stock, slow shipping, marketplace sellers, etc.)`
|
|
7780
|
-
},
|
|
7781
|
-
{
|
|
7782
|
-
id: "form-filler",
|
|
7783
|
-
name: "Form Filler",
|
|
7784
|
-
description: "Navigate to any form, fill it out with your details, and confirm before submitting.",
|
|
7785
|
-
category: "forms",
|
|
7786
|
-
icon: "ClipboardList",
|
|
7787
|
-
estimatedMinutes: 3,
|
|
7788
|
-
inputs: [
|
|
7789
|
-
{
|
|
7790
|
-
key: "url",
|
|
7791
|
-
label: "Form URL",
|
|
7792
|
-
type: "url",
|
|
7793
|
-
placeholder: "https://example.com/contact",
|
|
7794
|
-
required: true
|
|
7795
|
-
},
|
|
7796
|
-
{
|
|
7797
|
-
key: "formPurpose",
|
|
7798
|
-
label: "What is this form for?",
|
|
7799
|
-
type: "text",
|
|
7800
|
-
placeholder: "e.g. contact inquiry, job application, newsletter signup",
|
|
7801
|
-
hint: "Gives the agent context for how to interpret the fields",
|
|
7802
|
-
required: false
|
|
7803
|
-
},
|
|
7804
|
-
{
|
|
7805
|
-
key: "details",
|
|
7806
|
-
label: "Your details",
|
|
7807
|
-
type: "textarea",
|
|
7808
|
-
placeholder: "Name: Jane Smith\nEmail: jane@example.com\nMessage: I'd like to learn more about...",
|
|
7809
|
-
hint: "List as key: value pairs, one per line",
|
|
7810
|
-
required: true
|
|
7811
|
-
}
|
|
7812
|
-
],
|
|
7813
|
-
promptTemplate: `Navigate to {{url}} and fill out the form.
|
|
7814
|
-
{{formPurpose}}
|
|
7815
|
-
|
|
7816
|
-
Use the following details to fill the form fields:
|
|
7817
|
-
{{details}}
|
|
7818
|
-
|
|
7819
|
-
Steps:
|
|
7820
|
-
1. Navigate to the page and dismiss any cookie banners or overlays
|
|
7821
|
-
2. Read the form to understand what each field expects
|
|
7822
|
-
3. Match and fill all fields you have information for — skip fields you have no data for
|
|
7823
|
-
- Text inputs, textareas, and <select> dropdowns: use fill_form_field or select_option
|
|
7824
|
-
- Checkboxes and radio buttons: use click — do NOT use select_option on these
|
|
7825
|
-
- For multi-checkbox groups (e.g. "select all that apply"), click each relevant option individually
|
|
7826
|
-
4. Do NOT submit yet — show me a summary of everything you filled in and wait for my confirmation`
|
|
7827
|
-
}
|
|
7828
|
-
];
|
|
7829
|
-
function renderKitPrompt(kit, values) {
|
|
7830
|
-
for (const input of kit.inputs) {
|
|
7831
|
-
if (input.required && !values[input.key]?.trim()) {
|
|
7832
|
-
logger$1.warn(
|
|
7833
|
-
`Required field "${input.key}" is empty for kit "${kit.id}".`
|
|
7834
|
-
);
|
|
7835
|
-
}
|
|
7836
|
-
}
|
|
7837
|
-
return kit.promptTemplate.replace(
|
|
7838
|
-
/\{\{(\w+)\}\}/g,
|
|
7839
|
-
(_, key) => values[key] ?? ""
|
|
7840
|
-
);
|
|
7841
|
-
}
|
|
7842
|
-
var _tmpl$$e = /* @__PURE__ */ template(`<div class=kit-upsell><div class=kit-upsell-icon aria-hidden=true></div><p class=kit-upsell-title>Vessel Premium</p><p class=kit-upsell-body>Automation Kits are a premium feature. Upgrade to unlock pre-built workflows you can launch with one click.</p><button class="agent-primary-button kit-upsell-btn"type=button>Start 7-day free trial — $5.99/mo after`), _tmpl$2$e = /* @__PURE__ */ template(`<div class=kit-list-header><span class=agent-panel-title>Automation Kits <span class=kit-beta-tag>Beta</span></span><div class=kit-list-header-actions><span class=kit-list-count> kits</span><button class=kit-install-btn type=button title="Install a kit from a .kit.json file">+ Install`), _tmpl$3$c = /* @__PURE__ */ template(`<div class=kit-install-error><span></span><button class=kit-install-error-dismiss type=button aria-label=Dismiss>×`), _tmpl$4$b = /* @__PURE__ */ template(`<div class=kit-list>`), _tmpl$5$b = /* @__PURE__ */ template(`<div class=kit-sched-section><span>Scheduled</span><span class=kit-list-count>`), _tmpl$6$b = /* @__PURE__ */ template(`<div class=kit-sched-list>`), _tmpl$7$9 = /* @__PURE__ */ template(`<div class=kit-sched-section><span>Recent Activity</span><span class=kit-list-count>`), _tmpl$8$8 = /* @__PURE__ */ template(`<div class=kit-activity-list>`), _tmpl$9$7 = /* @__PURE__ */ template(`<div class=kit-form-header><button class=kit-back-btn type=button title="Back to kits"><svg width=14 height=14 viewBox="0 0 14 14"fill=none aria-hidden=true><path d="M9 11L5 7l4-4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg>Back</button><div class=kit-form-title>`), _tmpl$0$5 = /* @__PURE__ */ template(`<p class=kit-form-desc>`), _tmpl$1$5 = /* @__PURE__ */ template(`<div class=kit-form-fields>`), _tmpl$10$5 = /* @__PURE__ */ template(`<p class=kit-form-estimate>Estimated run time: ~<!> min`), _tmpl$11$5 = /* @__PURE__ */ template(`<button class="agent-primary-button kit-run-btn"type=button>`), _tmpl$12$5 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label class=kit-form-label>Date & time</label><input class=kit-form-input type=datetime-local>`), _tmpl$13$4 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label class=kit-form-label>Time of day</label><input class="kit-form-input kit-schedule-time"type=time>`), _tmpl$14$4 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label class=kit-form-label>Day</label><select class=kit-form-input>`), _tmpl$15$4 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label class=kit-form-label>Time</label><input class="kit-form-input kit-schedule-time"type=time>`), _tmpl$16$3 = /* @__PURE__ */ template(`<p class=kit-schedule-error>`), _tmpl$17$3 = /* @__PURE__ */ template(`<div class=kit-schedule-form><div class=kit-schedule-types></div><p class=kit-schedule-note>Schedules run only while Vessel is open. Missed runs are skipped.</p><button class="agent-primary-button kit-schedule-btn"type=button>`), _tmpl$18$3 = /* @__PURE__ */ template(`<div class=kit-schedule-section><label class=kit-schedule-toggle><input type=checkbox>Schedule for later`), _tmpl$19$3 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Run at</label><input type=datetime-local class="kit-form-input kit-schedule-time">`), _tmpl$20$3 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Day</label><select class="kit-form-input kit-schedule-time">`), _tmpl$21$3 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Time</label><input type=time class="kit-form-input kit-schedule-time">`), _tmpl$22$3 = /* @__PURE__ */ template(`<div class=sched-edit-backdrop><div class=sched-edit-panel><div class=sched-edit-header><span class=sched-edit-title>Edit schedule</span><span class=sched-edit-job-name></span></div><div class=kit-schedule-types></div><div class=sched-edit-actions><button class=kit-back-btn type=button>Cancel</button><button class=agent-primary-button type=button>Save`), _tmpl$23$3 = /* @__PURE__ */ template(`<section class=automation-panel>`), _tmpl$24$3 = /* @__PURE__ */ template(`<div class=kit-card-meta>~<!> min`), _tmpl$25$2 = /* @__PURE__ */ template(`<button class=kit-remove-btn type=button>×`), _tmpl$26$2 = /* @__PURE__ */ template(`<div class=kit-card role=button tabindex=0><span class=kit-card-icon aria-hidden=true></span><div class=kit-card-body><div class=kit-card-name></div><div class=kit-card-desc>`), _tmpl$27$2 = /* @__PURE__ */ template(`<svg class=kit-card-caret width=14 height=14 viewBox="0 0 14 14"fill=none aria-hidden=true><path d="M5 3l4 4-4 4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round>`), _tmpl$28$2 = /* @__PURE__ */ template(`<div class=kit-sched-next>Next: `), _tmpl$29$2 = /* @__PURE__ */ template(`<div class=sched-context-menu><button class=sched-ctx-item type=button>Edit task</button><button class=sched-ctx-item type=button>Edit schedule</button><div class=sched-ctx-divider></div><button class=sched-ctx-item type=button></button><button class="sched-ctx-item sched-ctx-danger"type=button>Delete`), _tmpl$30$1 = /* @__PURE__ */ template(`<div class=kit-sched-card><span class="kit-card-icon kit-sched-icon"aria-hidden=true></span><div class=kit-sched-body><div class=kit-sched-name></div><div class=kit-sched-meta></div></div><div class=kit-sched-actions><button class=kit-sched-toggle type=button></button><button class=kit-remove-btn type=button title="Delete schedule"aria-label="Delete schedule">×`), _tmpl$31$1 = /* @__PURE__ */ template(`<div class=kit-activity-output>`), _tmpl$32$1 = /* @__PURE__ */ template(`<div class=kit-activity-card><div class=kit-activity-header><div class=kit-activity-title><span class="kit-card-icon kit-sched-icon"aria-hidden=true></span><div class=kit-activity-title-copy><div class=kit-sched-name></div><div class=kit-activity-time></div></div></div><span class=kit-activity-badge>`), _tmpl$33$1 = /* @__PURE__ */ template(`<div class="kit-activity-output kit-activity-placeholder">`), _tmpl$34$1 = /* @__PURE__ */ template(`<span class=kit-form-required aria-hidden=true>*`), _tmpl$35$1 = /* @__PURE__ */ template(`<textarea class=kit-form-textarea rows=3>`), _tmpl$36$1 = /* @__PURE__ */ template(`<p class=kit-form-hint>`), _tmpl$37$1 = /* @__PURE__ */ template(`<div class=kit-form-field><label class=kit-form-label>`), _tmpl$38$1 = /* @__PURE__ */ template(`<input class=kit-form-input>`), _tmpl$39$1 = /* @__PURE__ */ template(`<span class=kit-run-spinner aria-hidden=true>`), _tmpl$40$1 = /* @__PURE__ */ template(`<label class=kit-schedule-type-option><input type=radio name=sched-type>`), _tmpl$41$1 = /* @__PURE__ */ template(`<option>`), _tmpl$42$1 = /* @__PURE__ */ template(`<label class=kit-schedule-type-option><input type=radio name=edit-sched-type>`);
|
|
7843
|
+
const BUNDLED_KIT_IDS = /* @__PURE__ */ new Set();
|
|
7844
|
+
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 & 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>`);
|
|
7843
7845
|
const ICON_MAP = {
|
|
7844
7846
|
BookOpen: book_open_default,
|
|
7845
7847
|
Tag: tag_default,
|
|
@@ -7910,6 +7912,39 @@ function toLocalDateTimeInput(iso) {
|
|
|
7910
7912
|
const pad = (n) => String(n).padStart(2, "0");
|
|
7911
7913
|
return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}T${pad(d.getHours())}:${pad(d.getMinutes())}`;
|
|
7912
7914
|
}
|
|
7915
|
+
function createSkillId(name) {
|
|
7916
|
+
const slug = name.trim().toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
7917
|
+
return slug ? `custom-${slug}` : `custom-skill-${Date.now()}`;
|
|
7918
|
+
}
|
|
7919
|
+
const SIMPLE_TASK_PROMPT_SUFFIX = "\n\nTask:\n{{task}}";
|
|
7920
|
+
function isSimpleTaskSkill(kit) {
|
|
7921
|
+
return kit.inputs.length === 1 && kit.inputs[0]?.key === "task" && kit.inputs[0]?.type === "textarea";
|
|
7922
|
+
}
|
|
7923
|
+
function getEditableInstructions(kit) {
|
|
7924
|
+
if (isSimpleTaskSkill(kit) && kit.promptTemplate.endsWith(SIMPLE_TASK_PROMPT_SUFFIX)) {
|
|
7925
|
+
return kit.promptTemplate.slice(0, -SIMPLE_TASK_PROMPT_SUFFIX.length);
|
|
7926
|
+
}
|
|
7927
|
+
return kit.promptTemplate;
|
|
7928
|
+
}
|
|
7929
|
+
function buildSkillDraft(name, description, instructions, existing) {
|
|
7930
|
+
const simpleTaskSkill = !existing || isSimpleTaskSkill(existing);
|
|
7931
|
+
return {
|
|
7932
|
+
id: existing?.id ?? createSkillId(name),
|
|
7933
|
+
name,
|
|
7934
|
+
description: description || "Custom agent skill.",
|
|
7935
|
+
category: existing?.category ?? "productivity",
|
|
7936
|
+
icon: existing?.icon ?? "Zap",
|
|
7937
|
+
estimatedMinutes: existing?.estimatedMinutes ?? 3,
|
|
7938
|
+
inputs: simpleTaskSkill ? [{
|
|
7939
|
+
key: "task",
|
|
7940
|
+
label: "Task",
|
|
7941
|
+
type: "textarea",
|
|
7942
|
+
placeholder: "What should the agent do with this skill?",
|
|
7943
|
+
required: true
|
|
7944
|
+
}] : existing.inputs,
|
|
7945
|
+
promptTemplate: simpleTaskSkill ? `${instructions}${SIMPLE_TASK_PROMPT_SUFFIX}` : instructions
|
|
7946
|
+
};
|
|
7947
|
+
}
|
|
7913
7948
|
const AutomationTab = (props) => {
|
|
7914
7949
|
const {
|
|
7915
7950
|
runAutomationPrompt,
|
|
@@ -7922,6 +7957,13 @@ const AutomationTab = (props) => {
|
|
|
7922
7957
|
const [selectedKit, setSelectedKit] = createSignal(null);
|
|
7923
7958
|
const [fieldValues, setFieldValues] = createSignal({});
|
|
7924
7959
|
const [installError, setInstallError] = createSignal(null);
|
|
7960
|
+
const [createEditorOpen, setCreateEditorOpen] = createSignal(false);
|
|
7961
|
+
const [createName, setCreateName] = createSignal("");
|
|
7962
|
+
const [createDescription, setCreateDescription] = createSignal("");
|
|
7963
|
+
const [createInstructions, setCreateInstructions] = createSignal("");
|
|
7964
|
+
const [createError, setCreateError] = createSignal(null);
|
|
7965
|
+
const [savingSkill, setSavingSkill] = createSignal(false);
|
|
7966
|
+
const [editingSkill, setEditingSkill] = createSignal(null);
|
|
7925
7967
|
const [scheduleEnabled, setScheduleEnabled] = createSignal(false);
|
|
7926
7968
|
const [schedType, setSchedType] = createSignal("daily");
|
|
7927
7969
|
const [schedHour, setSchedHour] = createSignal(9);
|
|
@@ -7950,6 +7992,7 @@ const AutomationTab = (props) => {
|
|
|
7950
7992
|
if (e.key === "Escape") {
|
|
7951
7993
|
setOpenMenuJobId(null);
|
|
7952
7994
|
setEditingJob(null);
|
|
7995
|
+
closeCreateEditor();
|
|
7953
7996
|
}
|
|
7954
7997
|
};
|
|
7955
7998
|
document.addEventListener("keydown", onKeyDown);
|
|
@@ -8062,6 +8105,7 @@ const AutomationTab = (props) => {
|
|
|
8062
8105
|
};
|
|
8063
8106
|
const handleInstall = async () => {
|
|
8064
8107
|
setInstallError(null);
|
|
8108
|
+
setCreateError(null);
|
|
8065
8109
|
const result = await window.vessel.automation.installFromFile();
|
|
8066
8110
|
if (!result.ok) {
|
|
8067
8111
|
if (result.error !== "canceled") {
|
|
@@ -8071,11 +8115,81 @@ const AutomationTab = (props) => {
|
|
|
8071
8115
|
}
|
|
8072
8116
|
void refetchInstalled();
|
|
8073
8117
|
};
|
|
8118
|
+
const openCreateEditor = () => {
|
|
8119
|
+
setInstallError(null);
|
|
8120
|
+
setCreateError(null);
|
|
8121
|
+
setSavingSkill(false);
|
|
8122
|
+
setEditingSkill(null);
|
|
8123
|
+
setCreateName("");
|
|
8124
|
+
setCreateDescription("");
|
|
8125
|
+
setCreateInstructions("");
|
|
8126
|
+
setCreateEditorOpen(true);
|
|
8127
|
+
};
|
|
8128
|
+
const closeCreateEditor = () => {
|
|
8129
|
+
setCreateEditorOpen(false);
|
|
8130
|
+
setCreateError(null);
|
|
8131
|
+
setSavingSkill(false);
|
|
8132
|
+
setEditingSkill(null);
|
|
8133
|
+
};
|
|
8134
|
+
const clearCreateDraft = () => {
|
|
8135
|
+
setCreateName("");
|
|
8136
|
+
setCreateDescription("");
|
|
8137
|
+
setCreateInstructions("");
|
|
8138
|
+
};
|
|
8139
|
+
const resetCreateDraft = () => {
|
|
8140
|
+
const skill = editingSkill();
|
|
8141
|
+
setCreateName(skill?.name ?? "");
|
|
8142
|
+
setCreateDescription(skill?.description ?? "");
|
|
8143
|
+
setCreateInstructions(skill ? getEditableInstructions(skill) : "");
|
|
8144
|
+
setCreateError(null);
|
|
8145
|
+
};
|
|
8146
|
+
const handleOpenEditSkill = (e, kit) => {
|
|
8147
|
+
e.stopPropagation();
|
|
8148
|
+
if (BUNDLED_KIT_IDS.has(kit.id)) return;
|
|
8149
|
+
setInstallError(null);
|
|
8150
|
+
setCreateError(null);
|
|
8151
|
+
setEditingSkill(kit);
|
|
8152
|
+
setCreateName(kit.name);
|
|
8153
|
+
setCreateDescription(kit.description);
|
|
8154
|
+
setCreateInstructions(getEditableInstructions(kit));
|
|
8155
|
+
setCreateEditorOpen(true);
|
|
8156
|
+
};
|
|
8157
|
+
const handleSaveSkill = async () => {
|
|
8158
|
+
if (savingSkill()) return;
|
|
8159
|
+
setInstallError(null);
|
|
8160
|
+
setCreateError(null);
|
|
8161
|
+
const name = createName().trim();
|
|
8162
|
+
const instructions = createInstructions().trim();
|
|
8163
|
+
if (!name || !instructions) {
|
|
8164
|
+
setCreateError("Add a skill name and instructions before saving.");
|
|
8165
|
+
return;
|
|
8166
|
+
}
|
|
8167
|
+
const existing = editingSkill() ?? void 0;
|
|
8168
|
+
const skill = buildSkillDraft(name, createDescription().trim(), instructions, existing);
|
|
8169
|
+
setSavingSkill(true);
|
|
8170
|
+
try {
|
|
8171
|
+
const source = JSON.stringify(skill);
|
|
8172
|
+
const automationApi = window.vessel.automation;
|
|
8173
|
+
const result = existing && automationApi.updateFromText ? await automationApi.updateFromText(existing.id, source) : await window.vessel.automation.createFromText(source);
|
|
8174
|
+
if (!result.ok) {
|
|
8175
|
+
setCreateError(result.error ?? "Could not save skill.");
|
|
8176
|
+
return;
|
|
8177
|
+
}
|
|
8178
|
+
setCreateEditorOpen(false);
|
|
8179
|
+
setEditingSkill(null);
|
|
8180
|
+
clearCreateDraft();
|
|
8181
|
+
void refetchInstalled();
|
|
8182
|
+
} catch (err) {
|
|
8183
|
+
setCreateError(err instanceof Error ? err.message : "Could not save skill.");
|
|
8184
|
+
} finally {
|
|
8185
|
+
setSavingSkill(false);
|
|
8186
|
+
}
|
|
8187
|
+
};
|
|
8074
8188
|
const handleUninstall = async (e, id) => {
|
|
8075
8189
|
e.stopPropagation();
|
|
8076
8190
|
const result = await window.vessel.automation.uninstall(id);
|
|
8077
8191
|
if (!result.ok) {
|
|
8078
|
-
setInstallError(result.error ?? "Could not remove
|
|
8192
|
+
setInstallError(result.error ?? "Could not remove skill.");
|
|
8079
8193
|
return;
|
|
8080
8194
|
}
|
|
8081
8195
|
void refetchInstalled();
|
|
@@ -8158,7 +8272,7 @@ const AutomationTab = (props) => {
|
|
|
8158
8272
|
};
|
|
8159
8273
|
const timeValue = () => `${String(schedHour()).padStart(2, "0")}:${String(schedMinute()).padStart(2, "0")}`;
|
|
8160
8274
|
return (() => {
|
|
8161
|
-
var _el$ = _tmpl$
|
|
8275
|
+
var _el$ = _tmpl$24$3();
|
|
8162
8276
|
insert(_el$, createComponent(Show, {
|
|
8163
8277
|
get when() {
|
|
8164
8278
|
return memo(() => !!!premiumData.loading)() && !isPremium();
|
|
@@ -8178,158 +8292,270 @@ const AutomationTab = (props) => {
|
|
|
8178
8292
|
},
|
|
8179
8293
|
get children() {
|
|
8180
8294
|
return [(() => {
|
|
8181
|
-
var _el$7 = _tmpl$2$e(), _el$8 = _el$7.firstChild, _el$9 = _el$8.nextSibling, _el$0 = _el$9.firstChild, _el$1 = _el$0.firstChild, _el$10 = _el$0.nextSibling;
|
|
8295
|
+
var _el$7 = _tmpl$2$e(), _el$8 = _el$7.firstChild, _el$9 = _el$8.nextSibling, _el$0 = _el$9.firstChild, _el$1 = _el$0.firstChild, _el$10 = _el$0.nextSibling, _el$11 = _el$10.firstChild, _el$12 = _el$10.nextSibling, _el$13 = _el$12.firstChild;
|
|
8182
8296
|
insert(_el$0, () => allKits().length, _el$1);
|
|
8183
|
-
_el$10.$$click =
|
|
8297
|
+
_el$10.$$click = openCreateEditor;
|
|
8298
|
+
insert(_el$10, createComponent(plus_default, {
|
|
8299
|
+
size: 12,
|
|
8300
|
+
"aria-hidden": "true"
|
|
8301
|
+
}), _el$11);
|
|
8302
|
+
_el$12.$$click = () => void handleInstall();
|
|
8303
|
+
insert(_el$12, createComponent(upload_default, {
|
|
8304
|
+
size: 12,
|
|
8305
|
+
"aria-hidden": "true"
|
|
8306
|
+
}), _el$13);
|
|
8184
8307
|
return _el$7;
|
|
8185
8308
|
})(), createComponent(Show, {
|
|
8186
8309
|
get when() {
|
|
8187
8310
|
return installError() !== null;
|
|
8188
8311
|
},
|
|
8189
8312
|
get children() {
|
|
8190
|
-
var _el$
|
|
8191
|
-
insert(_el$
|
|
8192
|
-
_el$
|
|
8193
|
-
return _el$
|
|
8313
|
+
var _el$14 = _tmpl$3$c(), _el$15 = _el$14.firstChild, _el$16 = _el$15.nextSibling;
|
|
8314
|
+
insert(_el$15, installError);
|
|
8315
|
+
_el$16.$$click = () => setInstallError(null);
|
|
8316
|
+
return _el$14;
|
|
8194
8317
|
}
|
|
8195
|
-
}), (
|
|
8196
|
-
|
|
8197
|
-
|
|
8198
|
-
|
|
8199
|
-
|
|
8200
|
-
|
|
8201
|
-
|
|
8202
|
-
|
|
8203
|
-
|
|
8204
|
-
|
|
8205
|
-
|
|
8206
|
-
|
|
8207
|
-
|
|
8208
|
-
|
|
8209
|
-
|
|
8210
|
-
|
|
8211
|
-
|
|
8212
|
-
|
|
8213
|
-
|
|
8214
|
-
|
|
8215
|
-
|
|
8216
|
-
|
|
8217
|
-
|
|
8218
|
-
|
|
8219
|
-
|
|
8220
|
-
|
|
8221
|
-
|
|
8222
|
-
|
|
8223
|
-
|
|
8224
|
-
|
|
8225
|
-
|
|
8226
|
-
|
|
8227
|
-
|
|
8228
|
-
|
|
8229
|
-
|
|
8230
|
-
|
|
8231
|
-
|
|
8232
|
-
|
|
8233
|
-
|
|
8234
|
-
|
|
8235
|
-
|
|
8236
|
-
|
|
8237
|
-
|
|
8238
|
-
|
|
8239
|
-
|
|
8240
|
-
|
|
8241
|
-
|
|
8242
|
-
|
|
8243
|
-
|
|
8244
|
-
|
|
8245
|
-
|
|
8246
|
-
|
|
8247
|
-
|
|
8248
|
-
|
|
8249
|
-
|
|
8250
|
-
|
|
8318
|
+
}), createComponent(Show, {
|
|
8319
|
+
get when() {
|
|
8320
|
+
return createEditorOpen();
|
|
8321
|
+
},
|
|
8322
|
+
get children() {
|
|
8323
|
+
var _el$17 = _tmpl$4$b(), _el$18 = _el$17.firstChild, _el$19 = _el$18.firstChild, _el$20 = _el$19.nextSibling, _el$21 = _el$18.nextSibling, _el$22 = _el$21.nextSibling, _el$23 = _el$22.nextSibling, _el$27 = _el$23.nextSibling, _el$28 = _el$27.firstChild, _el$29 = _el$28.nextSibling, _el$30 = _el$29.nextSibling;
|
|
8324
|
+
insert(_el$19, () => editingSkill() ? "Edit Skill" : "Create Skill");
|
|
8325
|
+
_el$20.$$click = closeCreateEditor;
|
|
8326
|
+
_el$21.$$input = (e) => setCreateName(e.currentTarget.value);
|
|
8327
|
+
_el$22.$$input = (e) => setCreateDescription(e.currentTarget.value);
|
|
8328
|
+
_el$23.$$input = (e) => setCreateInstructions(e.currentTarget.value);
|
|
8329
|
+
insert(_el$17, createComponent(Show, {
|
|
8330
|
+
get when() {
|
|
8331
|
+
return createError() !== null;
|
|
8332
|
+
},
|
|
8333
|
+
get children() {
|
|
8334
|
+
var _el$24 = _tmpl$3$c(), _el$25 = _el$24.firstChild, _el$26 = _el$25.nextSibling;
|
|
8335
|
+
insert(_el$25, createError);
|
|
8336
|
+
_el$26.$$click = () => setCreateError(null);
|
|
8337
|
+
return _el$24;
|
|
8338
|
+
}
|
|
8339
|
+
}), _el$27);
|
|
8340
|
+
_el$28.$$click = resetCreateDraft;
|
|
8341
|
+
_el$29.$$click = closeCreateEditor;
|
|
8342
|
+
_el$30.$$click = () => void handleSaveSkill();
|
|
8343
|
+
insert(_el$30, (() => {
|
|
8344
|
+
var _c$ = memo(() => !!savingSkill());
|
|
8345
|
+
return () => _c$() ? "Saving..." : editingSkill() ? "Save Changes" : "Save Skill";
|
|
8346
|
+
})());
|
|
8347
|
+
createRenderEffect(() => _el$30.disabled = savingSkill());
|
|
8348
|
+
createRenderEffect(() => _el$21.value = createName());
|
|
8349
|
+
createRenderEffect(() => _el$22.value = createDescription());
|
|
8350
|
+
createRenderEffect(() => _el$23.value = createInstructions());
|
|
8351
|
+
return _el$17;
|
|
8352
|
+
}
|
|
8353
|
+
}), createComponent(Show, {
|
|
8354
|
+
get when() {
|
|
8355
|
+
return allKits().length > 0;
|
|
8356
|
+
},
|
|
8357
|
+
get fallback() {
|
|
8358
|
+
return (() => {
|
|
8359
|
+
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;
|
|
8360
|
+
_el$94.$$click = openCreateEditor;
|
|
8361
|
+
insert(_el$94, createComponent(plus_default, {
|
|
8362
|
+
size: 12,
|
|
8363
|
+
"aria-hidden": "true"
|
|
8364
|
+
}), _el$95);
|
|
8365
|
+
_el$96.$$click = () => void handleInstall();
|
|
8366
|
+
insert(_el$96, createComponent(upload_default, {
|
|
8367
|
+
size: 12,
|
|
8368
|
+
"aria-hidden": "true"
|
|
8369
|
+
}), _el$97);
|
|
8370
|
+
return _el$90;
|
|
8371
|
+
})();
|
|
8372
|
+
},
|
|
8373
|
+
get children() {
|
|
8374
|
+
var _el$31 = _tmpl$5$b();
|
|
8375
|
+
insert(_el$31, createComponent(For, {
|
|
8376
|
+
get each() {
|
|
8377
|
+
return allKits();
|
|
8378
|
+
},
|
|
8379
|
+
children: (kit) => (() => {
|
|
8380
|
+
var _el$98 = _tmpl$29$2(), _el$99 = _el$98.firstChild, _el$100 = _el$99.nextSibling, _el$101 = _el$100.firstChild, _el$102 = _el$101.nextSibling;
|
|
8381
|
+
_el$98.$$keydown = (e) => e.key === "Enter" && selectKit(kit);
|
|
8382
|
+
_el$98.$$click = () => selectKit(kit);
|
|
8383
|
+
insert(_el$99, createComponent(KitIcon, {
|
|
8384
|
+
get name() {
|
|
8385
|
+
return kit.icon;
|
|
8386
|
+
},
|
|
8387
|
+
size: 18
|
|
8388
|
+
}));
|
|
8389
|
+
insert(_el$101, () => kit.name);
|
|
8390
|
+
insert(_el$102, () => kit.description);
|
|
8391
|
+
insert(_el$100, createComponent(Show, {
|
|
8392
|
+
get when() {
|
|
8393
|
+
return kit.estimatedMinutes !== void 0;
|
|
8394
|
+
},
|
|
8395
|
+
get children() {
|
|
8396
|
+
var _el$103 = _tmpl$26$2(), _el$104 = _el$103.firstChild, _el$106 = _el$104.nextSibling;
|
|
8397
|
+
_el$106.nextSibling;
|
|
8398
|
+
insert(_el$103, () => kit.estimatedMinutes, _el$106);
|
|
8399
|
+
return _el$103;
|
|
8400
|
+
}
|
|
8401
|
+
}), null);
|
|
8402
|
+
insert(_el$98, createComponent(Show, {
|
|
8403
|
+
get when() {
|
|
8404
|
+
return !BUNDLED_KIT_IDS.has(kit.id);
|
|
8405
|
+
},
|
|
8406
|
+
get fallback() {
|
|
8407
|
+
return createComponent(chevron_right_default, {
|
|
8408
|
+
"class": "kit-card-caret",
|
|
8409
|
+
size: 14,
|
|
8410
|
+
"aria-hidden": "true"
|
|
8411
|
+
});
|
|
8412
|
+
},
|
|
8413
|
+
get children() {
|
|
8414
|
+
return [(() => {
|
|
8415
|
+
var _el$107 = _tmpl$27$2();
|
|
8416
|
+
_el$107.$$click = (e) => handleOpenEditSkill(e, kit);
|
|
8417
|
+
insert(_el$107, createComponent(pencil_default, {
|
|
8418
|
+
size: 13,
|
|
8419
|
+
"aria-hidden": "true"
|
|
8420
|
+
}));
|
|
8421
|
+
createRenderEffect((_p$) => {
|
|
8422
|
+
var _v$ = `Edit ${kit.name}`, _v$2 = `Edit ${kit.name}`;
|
|
8423
|
+
_v$ !== _p$.e && setAttribute(_el$107, "title", _p$.e = _v$);
|
|
8424
|
+
_v$2 !== _p$.t && setAttribute(_el$107, "aria-label", _p$.t = _v$2);
|
|
8425
|
+
return _p$;
|
|
8426
|
+
}, {
|
|
8427
|
+
e: void 0,
|
|
8428
|
+
t: void 0
|
|
8429
|
+
});
|
|
8430
|
+
return _el$107;
|
|
8431
|
+
})(), (() => {
|
|
8432
|
+
var _el$108 = _tmpl$27$2();
|
|
8433
|
+
_el$108.$$click = (e) => {
|
|
8434
|
+
e.stopPropagation();
|
|
8435
|
+
selectKit(kit);
|
|
8436
|
+
};
|
|
8437
|
+
insert(_el$108, createComponent(eye_default, {
|
|
8438
|
+
size: 13,
|
|
8439
|
+
"aria-hidden": "true"
|
|
8440
|
+
}));
|
|
8441
|
+
createRenderEffect((_p$) => {
|
|
8442
|
+
var _v$3 = `View ${kit.name}`, _v$4 = `View ${kit.name}`;
|
|
8443
|
+
_v$3 !== _p$.e && setAttribute(_el$108, "title", _p$.e = _v$3);
|
|
8444
|
+
_v$4 !== _p$.t && setAttribute(_el$108, "aria-label", _p$.t = _v$4);
|
|
8445
|
+
return _p$;
|
|
8446
|
+
}, {
|
|
8447
|
+
e: void 0,
|
|
8448
|
+
t: void 0
|
|
8449
|
+
});
|
|
8450
|
+
return _el$108;
|
|
8451
|
+
})(), (() => {
|
|
8452
|
+
var _el$109 = _tmpl$28$2();
|
|
8453
|
+
_el$109.$$click = (e) => void handleUninstall(e, kit.id);
|
|
8454
|
+
insert(_el$109, createComponent(trash_2_default, {
|
|
8455
|
+
size: 13,
|
|
8456
|
+
"aria-hidden": "true"
|
|
8457
|
+
}));
|
|
8458
|
+
createRenderEffect((_p$) => {
|
|
8459
|
+
var _v$5 = `Delete ${kit.name}`, _v$6 = `Delete ${kit.name}`;
|
|
8460
|
+
_v$5 !== _p$.e && setAttribute(_el$109, "title", _p$.e = _v$5);
|
|
8461
|
+
_v$6 !== _p$.t && setAttribute(_el$109, "aria-label", _p$.t = _v$6);
|
|
8462
|
+
return _p$;
|
|
8463
|
+
}, {
|
|
8464
|
+
e: void 0,
|
|
8465
|
+
t: void 0
|
|
8466
|
+
});
|
|
8467
|
+
return _el$109;
|
|
8468
|
+
})()];
|
|
8469
|
+
}
|
|
8470
|
+
}), null);
|
|
8471
|
+
return _el$98;
|
|
8472
|
+
})()
|
|
8473
|
+
}));
|
|
8474
|
+
return _el$31;
|
|
8475
|
+
}
|
|
8476
|
+
}), createComponent(Show, {
|
|
8251
8477
|
get when() {
|
|
8252
8478
|
return scheduledJobs().length > 0;
|
|
8253
8479
|
},
|
|
8254
8480
|
get children() {
|
|
8255
8481
|
return [(() => {
|
|
8256
|
-
var _el$
|
|
8257
|
-
insert(_el$
|
|
8482
|
+
var _el$32 = _tmpl$6$b(), _el$33 = _el$32.firstChild, _el$34 = _el$33.nextSibling;
|
|
8483
|
+
insert(_el$32, createComponent(clock_default, {
|
|
8258
8484
|
size: 12
|
|
8259
|
-
}), _el$
|
|
8260
|
-
insert(_el$
|
|
8261
|
-
return _el$
|
|
8485
|
+
}), _el$33);
|
|
8486
|
+
insert(_el$34, () => scheduledJobs().length);
|
|
8487
|
+
return _el$32;
|
|
8262
8488
|
})(), (() => {
|
|
8263
|
-
var _el$
|
|
8264
|
-
insert(_el$
|
|
8489
|
+
var _el$35 = _tmpl$7$9();
|
|
8490
|
+
insert(_el$35, createComponent(For, {
|
|
8265
8491
|
get each() {
|
|
8266
8492
|
return scheduledJobs();
|
|
8267
8493
|
},
|
|
8268
8494
|
children: (job) => (() => {
|
|
8269
|
-
var _el$
|
|
8270
|
-
_el$
|
|
8495
|
+
var _el$110 = _tmpl$32$1(), _el$111 = _el$110.firstChild, _el$112 = _el$111.nextSibling, _el$113 = _el$112.firstChild, _el$114 = _el$113.nextSibling, _el$117 = _el$112.nextSibling, _el$118 = _el$117.firstChild, _el$119 = _el$118.nextSibling;
|
|
8496
|
+
_el$110.$$contextmenu = (e) => {
|
|
8271
8497
|
e.preventDefault();
|
|
8272
8498
|
e.stopPropagation();
|
|
8273
8499
|
setOpenMenuJobId(job.id);
|
|
8274
8500
|
};
|
|
8275
|
-
insert(_el$
|
|
8501
|
+
insert(_el$111, createComponent(KitIcon, {
|
|
8276
8502
|
get name() {
|
|
8277
8503
|
return job.kitIcon;
|
|
8278
8504
|
},
|
|
8279
8505
|
size: 14
|
|
8280
8506
|
}));
|
|
8281
|
-
insert(_el$
|
|
8282
|
-
insert(_el$
|
|
8283
|
-
insert(_el$
|
|
8507
|
+
insert(_el$113, () => job.kitName);
|
|
8508
|
+
insert(_el$114, () => formatScheduleLabel(job));
|
|
8509
|
+
insert(_el$112, createComponent(Show, {
|
|
8284
8510
|
get when() {
|
|
8285
8511
|
return job.enabled;
|
|
8286
8512
|
},
|
|
8287
8513
|
get children() {
|
|
8288
|
-
var _el$
|
|
8289
|
-
_el$
|
|
8290
|
-
insert(_el$
|
|
8291
|
-
return _el$
|
|
8514
|
+
var _el$115 = _tmpl$30$1();
|
|
8515
|
+
_el$115.firstChild;
|
|
8516
|
+
insert(_el$115, () => formatNextRun(job.nextRunAt), null);
|
|
8517
|
+
return _el$115;
|
|
8292
8518
|
}
|
|
8293
8519
|
}), null);
|
|
8294
|
-
_el$
|
|
8295
|
-
insert(_el$
|
|
8296
|
-
_el$
|
|
8297
|
-
insert(_el$
|
|
8520
|
+
_el$118.$$click = (e) => void handleToggleJob(e, job);
|
|
8521
|
+
insert(_el$118, () => job.enabled ? "⏸" : "▶");
|
|
8522
|
+
_el$119.$$click = (e) => void handleDeleteJob(e, job.id);
|
|
8523
|
+
insert(_el$110, createComponent(Show, {
|
|
8298
8524
|
get when() {
|
|
8299
8525
|
return openMenuJobId() === job.id;
|
|
8300
8526
|
},
|
|
8301
8527
|
get children() {
|
|
8302
|
-
var _el$
|
|
8303
|
-
_el$
|
|
8304
|
-
_el$
|
|
8305
|
-
_el$
|
|
8306
|
-
_el$
|
|
8528
|
+
var _el$120 = _tmpl$31$1(), _el$121 = _el$120.firstChild, _el$122 = _el$121.nextSibling, _el$123 = _el$122.nextSibling, _el$124 = _el$123.nextSibling, _el$125 = _el$124.nextSibling;
|
|
8529
|
+
_el$120.$$click = (e) => e.stopPropagation();
|
|
8530
|
+
_el$121.$$click = () => handleOpenEditTask(job);
|
|
8531
|
+
_el$122.$$click = () => handleOpenEditSchedule(job);
|
|
8532
|
+
_el$124.$$click = (e) => {
|
|
8307
8533
|
void handleToggleJob(e, job);
|
|
8308
8534
|
setOpenMenuJobId(null);
|
|
8309
8535
|
};
|
|
8310
|
-
insert(_el$
|
|
8311
|
-
_el$
|
|
8536
|
+
insert(_el$124, () => job.enabled ? "Pause" : "Resume");
|
|
8537
|
+
_el$125.$$click = (e) => {
|
|
8312
8538
|
void handleDeleteJob(e, job.id);
|
|
8313
8539
|
setOpenMenuJobId(null);
|
|
8314
8540
|
};
|
|
8315
|
-
return _el$
|
|
8541
|
+
return _el$120;
|
|
8316
8542
|
}
|
|
8317
8543
|
}), null);
|
|
8318
8544
|
createRenderEffect((_p$) => {
|
|
8319
|
-
var _v$
|
|
8320
|
-
_v$
|
|
8321
|
-
_v$
|
|
8322
|
-
_v$
|
|
8545
|
+
var _v$7 = !job.enabled, _v$8 = job.enabled ? "Pause schedule" : "Resume schedule", _v$9 = job.enabled ? "Pause" : "Resume";
|
|
8546
|
+
_v$7 !== _p$.e && _el$110.classList.toggle("kit-sched-disabled", _p$.e = _v$7);
|
|
8547
|
+
_v$8 !== _p$.t && setAttribute(_el$118, "title", _p$.t = _v$8);
|
|
8548
|
+
_v$9 !== _p$.a && setAttribute(_el$118, "aria-label", _p$.a = _v$9);
|
|
8323
8549
|
return _p$;
|
|
8324
8550
|
}, {
|
|
8325
8551
|
e: void 0,
|
|
8326
8552
|
t: void 0,
|
|
8327
8553
|
a: void 0
|
|
8328
8554
|
});
|
|
8329
|
-
return _el$
|
|
8555
|
+
return _el$110;
|
|
8330
8556
|
})()
|
|
8331
8557
|
}));
|
|
8332
|
-
return _el$
|
|
8558
|
+
return _el$35;
|
|
8333
8559
|
})()];
|
|
8334
8560
|
}
|
|
8335
8561
|
}), createComponent(Show, {
|
|
@@ -8338,59 +8564,59 @@ const AutomationTab = (props) => {
|
|
|
8338
8564
|
},
|
|
8339
8565
|
get children() {
|
|
8340
8566
|
return [(() => {
|
|
8341
|
-
var _el$
|
|
8342
|
-
insert(_el$
|
|
8567
|
+
var _el$36 = _tmpl$8$8(), _el$37 = _el$36.firstChild, _el$38 = _el$37.nextSibling;
|
|
8568
|
+
insert(_el$36, createComponent(zap_default, {
|
|
8343
8569
|
size: 12
|
|
8344
|
-
}), _el$
|
|
8345
|
-
insert(_el$
|
|
8346
|
-
return _el$
|
|
8570
|
+
}), _el$37);
|
|
8571
|
+
insert(_el$38, () => automationActivities2().length);
|
|
8572
|
+
return _el$36;
|
|
8347
8573
|
})(), (() => {
|
|
8348
|
-
var _el$
|
|
8349
|
-
insert(_el$
|
|
8574
|
+
var _el$39 = _tmpl$9$7();
|
|
8575
|
+
insert(_el$39, createComponent(For, {
|
|
8350
8576
|
get each() {
|
|
8351
8577
|
return automationActivities2();
|
|
8352
8578
|
},
|
|
8353
8579
|
children: (activity) => (() => {
|
|
8354
|
-
var _el$
|
|
8355
|
-
insert(_el$
|
|
8580
|
+
var _el$126 = _tmpl$34$1(), _el$127 = _el$126.firstChild, _el$128 = _el$127.firstChild, _el$129 = _el$128.firstChild, _el$130 = _el$129.nextSibling, _el$131 = _el$130.firstChild, _el$132 = _el$131.nextSibling, _el$133 = _el$128.nextSibling;
|
|
8581
|
+
insert(_el$129, createComponent(KitIcon, {
|
|
8356
8582
|
get name() {
|
|
8357
8583
|
return activity.icon ?? "Zap";
|
|
8358
8584
|
},
|
|
8359
8585
|
size: 14
|
|
8360
8586
|
}));
|
|
8361
|
-
insert(_el$
|
|
8362
|
-
insert(_el$
|
|
8363
|
-
insert(_el$
|
|
8364
|
-
insert(_el$
|
|
8587
|
+
insert(_el$131, () => activity.title);
|
|
8588
|
+
insert(_el$132, () => formatActivityTime(activity.startedAt));
|
|
8589
|
+
insert(_el$133, () => formatActivityStatus(activity));
|
|
8590
|
+
insert(_el$126, createComponent(Show, {
|
|
8365
8591
|
get when() {
|
|
8366
8592
|
return activity.output.trim().length > 0;
|
|
8367
8593
|
},
|
|
8368
8594
|
get fallback() {
|
|
8369
8595
|
return (() => {
|
|
8370
|
-
var _el$
|
|
8371
|
-
insert(_el$
|
|
8372
|
-
return _el$
|
|
8596
|
+
var _el$135 = _tmpl$35$1();
|
|
8597
|
+
insert(_el$135, () => activity.status === "running" ? "Waiting for output..." : "No output captured.");
|
|
8598
|
+
return _el$135;
|
|
8373
8599
|
})();
|
|
8374
8600
|
},
|
|
8375
8601
|
get children() {
|
|
8376
|
-
var _el$
|
|
8377
|
-
insert(_el$
|
|
8378
|
-
return _el$
|
|
8602
|
+
var _el$134 = _tmpl$33$1();
|
|
8603
|
+
insert(_el$134, () => activity.output.trim());
|
|
8604
|
+
return _el$134;
|
|
8379
8605
|
}
|
|
8380
8606
|
}), null);
|
|
8381
8607
|
createRenderEffect((_p$) => {
|
|
8382
|
-
var _v$
|
|
8383
|
-
_v$
|
|
8384
|
-
_v$
|
|
8608
|
+
var _v$0 = !!(activity.status === "running"), _v$1 = !!(activity.status === "failed");
|
|
8609
|
+
_v$0 !== _p$.e && _el$126.classList.toggle("kit-activity-running", _p$.e = _v$0);
|
|
8610
|
+
_v$1 !== _p$.t && _el$126.classList.toggle("kit-activity-failed", _p$.t = _v$1);
|
|
8385
8611
|
return _p$;
|
|
8386
8612
|
}, {
|
|
8387
8613
|
e: void 0,
|
|
8388
8614
|
t: void 0
|
|
8389
8615
|
});
|
|
8390
|
-
return _el$
|
|
8616
|
+
return _el$126;
|
|
8391
8617
|
})()
|
|
8392
8618
|
}));
|
|
8393
|
-
return _el$
|
|
8619
|
+
return _el$39;
|
|
8394
8620
|
})()];
|
|
8395
8621
|
}
|
|
8396
8622
|
})];
|
|
@@ -8402,197 +8628,197 @@ const AutomationTab = (props) => {
|
|
|
8402
8628
|
},
|
|
8403
8629
|
get children() {
|
|
8404
8630
|
return [(() => {
|
|
8405
|
-
var _el$
|
|
8406
|
-
_el$
|
|
8631
|
+
var _el$40 = _tmpl$0$5(), _el$41 = _el$40.firstChild, _el$42 = _el$41.nextSibling;
|
|
8632
|
+
_el$41.$$click = () => {
|
|
8407
8633
|
setSelectedKit(null);
|
|
8408
8634
|
setEditingTaskJobId(null);
|
|
8409
8635
|
};
|
|
8410
|
-
insert(_el$
|
|
8636
|
+
insert(_el$42, createComponent(KitIcon, {
|
|
8411
8637
|
get name() {
|
|
8412
8638
|
return selectedKit().icon;
|
|
8413
8639
|
},
|
|
8414
8640
|
size: 14
|
|
8415
8641
|
}), null);
|
|
8416
|
-
insert(_el$
|
|
8417
|
-
return _el$
|
|
8642
|
+
insert(_el$42, () => selectedKit().name, null);
|
|
8643
|
+
return _el$40;
|
|
8418
8644
|
})(), (() => {
|
|
8419
|
-
var _el$
|
|
8420
|
-
insert(_el$
|
|
8421
|
-
return _el$
|
|
8645
|
+
var _el$43 = _tmpl$1$5();
|
|
8646
|
+
insert(_el$43, () => selectedKit().description);
|
|
8647
|
+
return _el$43;
|
|
8422
8648
|
})(), (() => {
|
|
8423
|
-
var _el$
|
|
8424
|
-
insert(_el$
|
|
8649
|
+
var _el$44 = _tmpl$10$5();
|
|
8650
|
+
insert(_el$44, createComponent(For, {
|
|
8425
8651
|
get each() {
|
|
8426
8652
|
return selectedKit().inputs;
|
|
8427
8653
|
},
|
|
8428
8654
|
children: (input) => (() => {
|
|
8429
|
-
var _el$
|
|
8430
|
-
insert(_el$
|
|
8431
|
-
insert(_el$
|
|
8655
|
+
var _el$136 = _tmpl$39$1(), _el$137 = _el$136.firstChild;
|
|
8656
|
+
insert(_el$137, () => input.label, null);
|
|
8657
|
+
insert(_el$137, createComponent(Show, {
|
|
8432
8658
|
get when() {
|
|
8433
8659
|
return input.required;
|
|
8434
8660
|
},
|
|
8435
8661
|
get children() {
|
|
8436
|
-
return _tmpl$
|
|
8662
|
+
return _tmpl$36$1();
|
|
8437
8663
|
}
|
|
8438
8664
|
}), null);
|
|
8439
|
-
insert(_el$
|
|
8665
|
+
insert(_el$136, createComponent(Show, {
|
|
8440
8666
|
get when() {
|
|
8441
8667
|
return input.type === "textarea";
|
|
8442
8668
|
},
|
|
8443
8669
|
get fallback() {
|
|
8444
8670
|
return (() => {
|
|
8445
|
-
var _el$
|
|
8446
|
-
_el$
|
|
8671
|
+
var _el$141 = _tmpl$40$1();
|
|
8672
|
+
_el$141.$$input = (e) => setField(input.key, e.currentTarget.value);
|
|
8447
8673
|
createRenderEffect((_p$) => {
|
|
8448
|
-
var _v$
|
|
8449
|
-
_v$
|
|
8450
|
-
_v$
|
|
8674
|
+
var _v$10 = input.type === "url" ? "url" : input.type === "number" ? "number" : "text", _v$11 = input.placeholder ?? "";
|
|
8675
|
+
_v$10 !== _p$.e && setAttribute(_el$141, "type", _p$.e = _v$10);
|
|
8676
|
+
_v$11 !== _p$.t && setAttribute(_el$141, "placeholder", _p$.t = _v$11);
|
|
8451
8677
|
return _p$;
|
|
8452
8678
|
}, {
|
|
8453
8679
|
e: void 0,
|
|
8454
8680
|
t: void 0
|
|
8455
8681
|
});
|
|
8456
|
-
createRenderEffect(() => _el$
|
|
8457
|
-
return _el$
|
|
8682
|
+
createRenderEffect(() => _el$141.value = fieldValues()[input.key] ?? "");
|
|
8683
|
+
return _el$141;
|
|
8458
8684
|
})();
|
|
8459
8685
|
},
|
|
8460
8686
|
get children() {
|
|
8461
|
-
var _el$
|
|
8462
|
-
_el$
|
|
8463
|
-
createRenderEffect(() => setAttribute(_el$
|
|
8464
|
-
createRenderEffect(() => _el$
|
|
8465
|
-
return _el$
|
|
8687
|
+
var _el$139 = _tmpl$37$1();
|
|
8688
|
+
_el$139.$$input = (e) => setField(input.key, e.currentTarget.value);
|
|
8689
|
+
createRenderEffect(() => setAttribute(_el$139, "placeholder", input.placeholder ?? ""));
|
|
8690
|
+
createRenderEffect(() => _el$139.value = fieldValues()[input.key] ?? "");
|
|
8691
|
+
return _el$139;
|
|
8466
8692
|
}
|
|
8467
8693
|
}), null);
|
|
8468
|
-
insert(_el$
|
|
8694
|
+
insert(_el$136, createComponent(Show, {
|
|
8469
8695
|
get when() {
|
|
8470
8696
|
return input.hint;
|
|
8471
8697
|
},
|
|
8472
8698
|
get children() {
|
|
8473
|
-
var _el$
|
|
8474
|
-
insert(_el$
|
|
8475
|
-
return _el$
|
|
8699
|
+
var _el$140 = _tmpl$38$1();
|
|
8700
|
+
insert(_el$140, () => input.hint);
|
|
8701
|
+
return _el$140;
|
|
8476
8702
|
}
|
|
8477
8703
|
}), null);
|
|
8478
|
-
return _el$
|
|
8704
|
+
return _el$136;
|
|
8479
8705
|
})()
|
|
8480
8706
|
}));
|
|
8481
|
-
return _el$
|
|
8707
|
+
return _el$44;
|
|
8482
8708
|
})(), createComponent(Show, {
|
|
8483
8709
|
get when() {
|
|
8484
8710
|
return selectedKit().estimatedMinutes !== void 0;
|
|
8485
8711
|
},
|
|
8486
8712
|
get children() {
|
|
8487
|
-
var _el$
|
|
8488
|
-
_el$
|
|
8489
|
-
insert(_el$
|
|
8490
|
-
return _el$
|
|
8713
|
+
var _el$45 = _tmpl$11$5(), _el$46 = _el$45.firstChild, _el$48 = _el$46.nextSibling;
|
|
8714
|
+
_el$48.nextSibling;
|
|
8715
|
+
insert(_el$45, () => selectedKit().estimatedMinutes, _el$48);
|
|
8716
|
+
return _el$45;
|
|
8491
8717
|
}
|
|
8492
8718
|
}), (() => {
|
|
8493
|
-
var _el$
|
|
8494
|
-
_el$
|
|
8495
|
-
insert(_el$
|
|
8719
|
+
var _el$49 = _tmpl$12$5();
|
|
8720
|
+
_el$49.$$click = () => void handleRun();
|
|
8721
|
+
insert(_el$49, createComponent(Show, {
|
|
8496
8722
|
get when() {
|
|
8497
8723
|
return !isStreaming2();
|
|
8498
8724
|
},
|
|
8499
8725
|
get fallback() {
|
|
8500
|
-
return [_tmpl$
|
|
8726
|
+
return [_tmpl$41$1(), "Agent busy…"];
|
|
8501
8727
|
},
|
|
8502
|
-
children: "Run
|
|
8728
|
+
children: "Run Skill"
|
|
8503
8729
|
}));
|
|
8504
|
-
createRenderEffect(() => _el$
|
|
8505
|
-
return _el$
|
|
8730
|
+
createRenderEffect(() => _el$49.disabled = !canRun());
|
|
8731
|
+
return _el$49;
|
|
8506
8732
|
})(), (() => {
|
|
8507
|
-
var _el$
|
|
8508
|
-
_el$
|
|
8509
|
-
insert(_el$
|
|
8733
|
+
var _el$50 = _tmpl$19$3(), _el$51 = _el$50.firstChild, _el$52 = _el$51.firstChild, _el$53 = _el$52.nextSibling;
|
|
8734
|
+
_el$52.addEventListener("change", (e) => setScheduleEnabled(e.currentTarget.checked));
|
|
8735
|
+
insert(_el$51, createComponent(clock_default, {
|
|
8510
8736
|
size: 13
|
|
8511
|
-
}), _el$
|
|
8512
|
-
insert(_el$
|
|
8737
|
+
}), _el$53);
|
|
8738
|
+
insert(_el$50, createComponent(Show, {
|
|
8513
8739
|
get when() {
|
|
8514
8740
|
return scheduleEnabled();
|
|
8515
8741
|
},
|
|
8516
8742
|
get children() {
|
|
8517
|
-
var _el$
|
|
8518
|
-
insert(_el$
|
|
8743
|
+
var _el$54 = _tmpl$18$3(), _el$55 = _el$54.firstChild, _el$69 = _el$55.nextSibling, _el$70 = _el$69.nextSibling;
|
|
8744
|
+
insert(_el$55, createComponent(For, {
|
|
8519
8745
|
each: ["once", "hourly", "daily", "weekly"],
|
|
8520
8746
|
children: (type) => (() => {
|
|
8521
|
-
var _el$
|
|
8522
|
-
_el$
|
|
8523
|
-
_el$
|
|
8524
|
-
insert(_el$
|
|
8525
|
-
createRenderEffect(() => _el$
|
|
8526
|
-
return _el$
|
|
8747
|
+
var _el$143 = _tmpl$42$1(), _el$144 = _el$143.firstChild;
|
|
8748
|
+
_el$144.addEventListener("change", () => setSchedType(type));
|
|
8749
|
+
_el$144.value = type;
|
|
8750
|
+
insert(_el$143, () => type.charAt(0).toUpperCase() + type.slice(1), null);
|
|
8751
|
+
createRenderEffect(() => _el$144.checked = schedType() === type);
|
|
8752
|
+
return _el$143;
|
|
8527
8753
|
})()
|
|
8528
8754
|
}));
|
|
8529
|
-
insert(_el$
|
|
8755
|
+
insert(_el$54, createComponent(Show, {
|
|
8530
8756
|
get when() {
|
|
8531
8757
|
return schedType() === "once";
|
|
8532
8758
|
},
|
|
8533
8759
|
get children() {
|
|
8534
|
-
var _el$
|
|
8535
|
-
_el$
|
|
8536
|
-
createRenderEffect(() => _el$
|
|
8537
|
-
return _el$
|
|
8760
|
+
var _el$56 = _tmpl$13$4(), _el$57 = _el$56.firstChild, _el$58 = _el$57.nextSibling;
|
|
8761
|
+
_el$58.$$input = (e) => setSchedRunAt(e.currentTarget.value);
|
|
8762
|
+
createRenderEffect(() => _el$58.value = schedRunAt());
|
|
8763
|
+
return _el$56;
|
|
8538
8764
|
}
|
|
8539
|
-
}), _el$
|
|
8540
|
-
insert(_el$
|
|
8765
|
+
}), _el$69);
|
|
8766
|
+
insert(_el$54, createComponent(Show, {
|
|
8541
8767
|
get when() {
|
|
8542
8768
|
return schedType() === "daily";
|
|
8543
8769
|
},
|
|
8544
8770
|
get children() {
|
|
8545
|
-
var _el$
|
|
8546
|
-
_el$
|
|
8547
|
-
createRenderEffect(() => _el$
|
|
8548
|
-
return _el$
|
|
8771
|
+
var _el$59 = _tmpl$14$4(), _el$60 = _el$59.firstChild, _el$61 = _el$60.nextSibling;
|
|
8772
|
+
_el$61.$$input = (e) => parseTimeInput(e.currentTarget.value);
|
|
8773
|
+
createRenderEffect(() => _el$61.value = timeValue());
|
|
8774
|
+
return _el$59;
|
|
8549
8775
|
}
|
|
8550
|
-
}), _el$
|
|
8551
|
-
insert(_el$
|
|
8776
|
+
}), _el$69);
|
|
8777
|
+
insert(_el$54, createComponent(Show, {
|
|
8552
8778
|
get when() {
|
|
8553
8779
|
return schedType() === "weekly";
|
|
8554
8780
|
},
|
|
8555
8781
|
get children() {
|
|
8556
8782
|
return [(() => {
|
|
8557
|
-
var _el$
|
|
8558
|
-
_el$
|
|
8559
|
-
insert(_el$
|
|
8783
|
+
var _el$62 = _tmpl$15$4(), _el$63 = _el$62.firstChild, _el$64 = _el$63.nextSibling;
|
|
8784
|
+
_el$64.addEventListener("change", (e) => setSchedDayOfWeek(Number(e.currentTarget.value)));
|
|
8785
|
+
insert(_el$64, createComponent(For, {
|
|
8560
8786
|
each: DAY_NAMES,
|
|
8561
8787
|
children: (day, i) => (() => {
|
|
8562
|
-
var _el$
|
|
8563
|
-
insert(_el$
|
|
8564
|
-
createRenderEffect(() => _el$
|
|
8565
|
-
return _el$
|
|
8788
|
+
var _el$145 = _tmpl$43$1();
|
|
8789
|
+
insert(_el$145, day);
|
|
8790
|
+
createRenderEffect(() => _el$145.value = i());
|
|
8791
|
+
return _el$145;
|
|
8566
8792
|
})()
|
|
8567
8793
|
}));
|
|
8568
|
-
createRenderEffect(() => _el$
|
|
8569
|
-
return _el$
|
|
8794
|
+
createRenderEffect(() => _el$64.value = schedDayOfWeek());
|
|
8795
|
+
return _el$62;
|
|
8570
8796
|
})(), (() => {
|
|
8571
|
-
var _el$
|
|
8572
|
-
_el$
|
|
8573
|
-
createRenderEffect(() => _el$
|
|
8574
|
-
return _el$
|
|
8797
|
+
var _el$65 = _tmpl$16$3(), _el$66 = _el$65.firstChild, _el$67 = _el$66.nextSibling;
|
|
8798
|
+
_el$67.$$input = (e) => parseTimeInput(e.currentTarget.value);
|
|
8799
|
+
createRenderEffect(() => _el$67.value = timeValue());
|
|
8800
|
+
return _el$65;
|
|
8575
8801
|
})()];
|
|
8576
8802
|
}
|
|
8577
|
-
}), _el$
|
|
8578
|
-
insert(_el$
|
|
8803
|
+
}), _el$69);
|
|
8804
|
+
insert(_el$54, createComponent(Show, {
|
|
8579
8805
|
get when() {
|
|
8580
8806
|
return scheduleError() !== null;
|
|
8581
8807
|
},
|
|
8582
8808
|
get children() {
|
|
8583
|
-
var _el$
|
|
8584
|
-
insert(_el$
|
|
8585
|
-
return _el$
|
|
8809
|
+
var _el$68 = _tmpl$17$3();
|
|
8810
|
+
insert(_el$68, scheduleError);
|
|
8811
|
+
return _el$68;
|
|
8586
8812
|
}
|
|
8587
|
-
}), _el$
|
|
8588
|
-
_el$
|
|
8589
|
-
insert(_el$
|
|
8590
|
-
createRenderEffect(() => _el$
|
|
8591
|
-
return _el$
|
|
8813
|
+
}), _el$69);
|
|
8814
|
+
_el$70.$$click = () => void handleSchedule();
|
|
8815
|
+
insert(_el$70, () => editingTaskJobId() ? "Save Changes" : "Schedule Skill");
|
|
8816
|
+
createRenderEffect(() => _el$70.disabled = !canSchedule());
|
|
8817
|
+
return _el$54;
|
|
8592
8818
|
}
|
|
8593
8819
|
}), null);
|
|
8594
|
-
createRenderEffect(() => _el$
|
|
8595
|
-
return _el$
|
|
8820
|
+
createRenderEffect(() => _el$52.checked = scheduleEnabled());
|
|
8821
|
+
return _el$50;
|
|
8596
8822
|
})()];
|
|
8597
8823
|
}
|
|
8598
8824
|
}), null);
|
|
@@ -8601,33 +8827,33 @@ const AutomationTab = (props) => {
|
|
|
8601
8827
|
return editingJob() !== null;
|
|
8602
8828
|
},
|
|
8603
8829
|
get children() {
|
|
8604
|
-
var _el$
|
|
8605
|
-
_el$
|
|
8606
|
-
_el$
|
|
8607
|
-
insert(_el$
|
|
8608
|
-
insert(_el$
|
|
8830
|
+
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;
|
|
8831
|
+
_el$71.$$click = () => setEditingJob(null);
|
|
8832
|
+
_el$72.$$click = (e) => e.stopPropagation();
|
|
8833
|
+
insert(_el$75, () => editingJob().kitName);
|
|
8834
|
+
insert(_el$76, createComponent(For, {
|
|
8609
8835
|
each: ["once", "hourly", "daily", "weekly"],
|
|
8610
8836
|
children: (t) => (() => {
|
|
8611
|
-
var _el$
|
|
8612
|
-
_el$
|
|
8613
|
-
_el$
|
|
8614
|
-
insert(_el$
|
|
8615
|
-
createRenderEffect(() => _el$
|
|
8616
|
-
return _el$
|
|
8837
|
+
var _el$146 = _tmpl$44$1(), _el$147 = _el$146.firstChild;
|
|
8838
|
+
_el$147.addEventListener("change", () => setEditType(t));
|
|
8839
|
+
_el$147.value = t;
|
|
8840
|
+
insert(_el$146, () => t.charAt(0).toUpperCase() + t.slice(1), null);
|
|
8841
|
+
createRenderEffect(() => _el$147.checked = editType() === t);
|
|
8842
|
+
return _el$146;
|
|
8617
8843
|
})()
|
|
8618
8844
|
}));
|
|
8619
|
-
insert(_el$
|
|
8845
|
+
insert(_el$72, createComponent(Show, {
|
|
8620
8846
|
get when() {
|
|
8621
8847
|
return editType() === "once";
|
|
8622
8848
|
},
|
|
8623
8849
|
get children() {
|
|
8624
|
-
var _el$
|
|
8625
|
-
_el$
|
|
8626
|
-
createRenderEffect(() => _el$
|
|
8627
|
-
return _el$
|
|
8850
|
+
var _el$77 = _tmpl$20$3(), _el$78 = _el$77.firstChild, _el$79 = _el$78.nextSibling;
|
|
8851
|
+
_el$79.$$input = (e) => setEditRunAt(e.currentTarget.value);
|
|
8852
|
+
createRenderEffect(() => _el$79.value = editRunAt());
|
|
8853
|
+
return _el$77;
|
|
8628
8854
|
}
|
|
8629
|
-
}), _el$
|
|
8630
|
-
insert(_el$
|
|
8855
|
+
}), _el$87);
|
|
8856
|
+
insert(_el$72, createComponent(Show, {
|
|
8631
8857
|
get when() {
|
|
8632
8858
|
return editType() === "daily" || editType() === "weekly";
|
|
8633
8859
|
},
|
|
@@ -8637,41 +8863,41 @@ const AutomationTab = (props) => {
|
|
|
8637
8863
|
return editType() === "weekly";
|
|
8638
8864
|
},
|
|
8639
8865
|
get children() {
|
|
8640
|
-
var _el$
|
|
8641
|
-
_el$
|
|
8642
|
-
insert(_el$
|
|
8866
|
+
var _el$80 = _tmpl$21$3(), _el$81 = _el$80.firstChild, _el$82 = _el$81.nextSibling;
|
|
8867
|
+
_el$82.addEventListener("change", (e) => setEditDayOfWeek(Number(e.currentTarget.value)));
|
|
8868
|
+
insert(_el$82, createComponent(For, {
|
|
8643
8869
|
each: DAY_NAMES,
|
|
8644
8870
|
children: (name, i) => (() => {
|
|
8645
|
-
var _el$
|
|
8646
|
-
insert(_el$
|
|
8647
|
-
createRenderEffect(() => _el$
|
|
8648
|
-
return _el$
|
|
8871
|
+
var _el$148 = _tmpl$43$1();
|
|
8872
|
+
insert(_el$148, name);
|
|
8873
|
+
createRenderEffect(() => _el$148.value = i());
|
|
8874
|
+
return _el$148;
|
|
8649
8875
|
})()
|
|
8650
8876
|
}));
|
|
8651
|
-
createRenderEffect(() => _el$
|
|
8652
|
-
return _el$
|
|
8877
|
+
createRenderEffect(() => _el$82.value = editDayOfWeek());
|
|
8878
|
+
return _el$80;
|
|
8653
8879
|
}
|
|
8654
8880
|
}), (() => {
|
|
8655
|
-
var _el$
|
|
8656
|
-
_el$
|
|
8657
|
-
createRenderEffect(() => _el$
|
|
8658
|
-
return _el$
|
|
8881
|
+
var _el$83 = _tmpl$22$3(), _el$84 = _el$83.firstChild, _el$85 = _el$84.nextSibling;
|
|
8882
|
+
_el$85.$$input = (e) => parseEditTimeInput(e.currentTarget.value);
|
|
8883
|
+
createRenderEffect(() => _el$85.value = editTimeValue());
|
|
8884
|
+
return _el$83;
|
|
8659
8885
|
})()];
|
|
8660
8886
|
}
|
|
8661
|
-
}), _el$
|
|
8662
|
-
insert(_el$
|
|
8887
|
+
}), _el$87);
|
|
8888
|
+
insert(_el$72, createComponent(Show, {
|
|
8663
8889
|
get when() {
|
|
8664
8890
|
return editError();
|
|
8665
8891
|
},
|
|
8666
8892
|
get children() {
|
|
8667
|
-
var _el$
|
|
8668
|
-
insert(_el$
|
|
8669
|
-
return _el$
|
|
8893
|
+
var _el$86 = _tmpl$17$3();
|
|
8894
|
+
insert(_el$86, editError);
|
|
8895
|
+
return _el$86;
|
|
8670
8896
|
}
|
|
8671
|
-
}), _el$
|
|
8672
|
-
_el$
|
|
8673
|
-
_el$
|
|
8674
|
-
return _el$
|
|
8897
|
+
}), _el$87);
|
|
8898
|
+
_el$88.$$click = () => setEditingJob(null);
|
|
8899
|
+
_el$89.$$click = () => void handleSaveEditSchedule();
|
|
8900
|
+
return _el$71;
|
|
8675
8901
|
}
|
|
8676
8902
|
}), null);
|
|
8677
8903
|
return _el$;
|
|
@@ -9591,7 +9817,7 @@ const SidebarWindowControls = (props) => {
|
|
|
9591
9817
|
};
|
|
9592
9818
|
delegateEvents(["click"]);
|
|
9593
9819
|
const vesselLogo = "" + new URL("vessel-logo-transparent-IT25qr-Z.png", import.meta.url).href;
|
|
9594
|
-
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>Generating`), _tmpl$21$1 = /* @__PURE__ */ template(`<div class="message message-assistant"><div class=message-content>`), _tmpl$22$1 = /* @__PURE__ */ template(`<div class=sidebar-empty><svg class=sidebar-empty-icon width=48 height=48 viewBox="0 0 48 48"aria-hidden=true><line x1=8 y1=8 x2=24 y2=5 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=24 y1=5 x2=40 y2=10 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=8 y1=8 x2=6 y2=24 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=40 y1=10 x2=44 y2=26 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=6 y1=24 x2=10 y2=38 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=44 y1=26 x2=38 y2=40 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=10 y1=38 x2=24 y2=44 stroke=var(--border-visible) stroke-width=1 opacity=0.35></line><line x1=38 y1=40 x2=24 y2=44 stroke=var(--border-visible) stroke-width=1 opacity=0.35></line><line x1=8 y1=8 x2=20 y2=18 stroke=var(--border-visible) stroke-width=1 opacity=0.5></line><line x1=24 y1=5 x2=20 y2=18 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=40 y1=10 x2=32 y2=20 stroke=var(--border-visible) stroke-width=1 opacity=0.5></line><line x1=20 y1=18 x2=32 y2=20 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.3></line><line x1=6 y1=24 x2=18 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=20 y1=18 x2=18 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=32 y1=20 x2=36 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=44 y1=26 x2=36 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=18 y1=30 x2=36 y2=30 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.25></line><line x1=18 y1=30 x2=10 y2=38 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=36 y1=30 x2=38 y2=40 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=18 y1=30 x2=24 y2=44 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.2></line><line x1=36 y1=30 x2=24 y2=44 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.2></line><circle cx=8 cy=8 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.55></circle><circle cx=24 cy=5 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.45></circle><circle cx=40 cy=10 r=3 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.7></circle><circle cx=6 cy=24 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=44 cy=26 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.55></circle><circle cx=10 cy=38 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=38 cy=40 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.45></circle><circle cx=24 cy=44 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=20 cy=18 r=3.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.85></circle><circle cx=32 cy=20 r=4 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.9></circle><circle cx=18 cy=30 r=3 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.75></circle><circle cx=36 cy=30 r=3.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.8></circle></svg><p class=sidebar-empty-title>Your move.</p><p class=sidebar-empty-hint>Configure a provider in Settings (Ctrl+,) then ask anything about the current page or beyond.`), _tmpl$23$1 = /* @__PURE__ */ template(`<button class=chat-action-btn title="Stop generating"><svg width=14 height=14 viewBox="0 0 14 14"fill=none aria-hidden=true><rect x=2 y=2 width=10 height=10 rx=1.5 fill=currentColor></rect></svg>Stop`), _tmpl$24$1 = /* @__PURE__ */ template(`<button class=chat-action-btn title="Retry last prompt"><svg width=14 height=14 viewBox="0 0 14 14"fill=none aria-hidden=true><path d="M11.5 7a4.5 4.5 0 1 1-1.3-3.2"stroke=currentColor stroke-width=1.5 stroke-linecap=round></path><path d="M10.5 1v3h-3"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg>Retry`), _tmpl$25$1 = /* @__PURE__ */ template(`<div class=chat-actions>`), _tmpl$26$1 = /* @__PURE__ */ template(`<div class=highlight-nav><button class=highlight-nav-btn type=button title="Previous highlight"><svg width=12 height=12 viewBox="0 0 12 12"fill=none aria-hidden=true><path d="M8 10L4 6l4-4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg></button><button class=highlight-nav-label type=button title="Go to current highlight"><svg width=12 height=12 viewBox="0 0 12 12"fill=none aria-hidden=true><circle cx=6 cy=6 r=3 fill=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=sidebar-input-area><textarea class=sidebar-input rows=2></textarea><button class=sidebar-send>`), _tmpl$31 = /* @__PURE__ */ template(`<div class=sidebar><div class=sidebar-header><div class=sidebar-brand><img class=sidebar-logo alt=Vessel><span class=sidebar-brand-text>Vessel Browser</span></div><div class=sidebar-header-actions><button class=sidebar-clear title="Clear chat">Clear</button></div></div><div class=sidebar-tabs role=tablist><button class=sidebar-tab role=tab>Supervisor</button><button class=sidebar-tab role=tab>Bookmarks</button><button class=sidebar-tab role=tab>Checkpoints</button><button class=sidebar-tab role=tab>Chat</button><button class=sidebar-tab role=tab>Automate</button><button class=sidebar-tab role=tab>History</button><button class=sidebar-tab role=tab>Changes</button><button class=sidebar-tab role=tab>Research<span class=sidebar-tab-beta>Beta</span></button></div><div class=sidebar-messages><div>`), _tmpl$32 = /* @__PURE__ */ template(`<div class=agent-muted>No pending approvals.`), _tmpl$33 = /* @__PURE__ */ template(`<div class="agent-card agent-card-approval"><div class=agent-card-approval-stripe aria-hidden=true></div><div class=agent-card-title></div><div class=agent-card-copy></div><div class=agent-card-copy></div><div class=agent-card-actions><button class=agent-primary-button type=button>Approve</button><button class=agent-control-button type=button>Reject`), _tmpl$34 = /* @__PURE__ */ template(`<div class=agent-muted>No actions yet.`), _tmpl$35 = /* @__PURE__ */ template(`<div class=agent-muted>Recent actions are collapsed to reduce noise.`), _tmpl$36 = /* @__PURE__ */ template(`<div class="agent-card-copy success">`), _tmpl$37 = /* @__PURE__ */ template(`<div class="agent-card-copy error">`), _tmpl$38 = /* @__PURE__ */ template(`<div class=agent-card><div class=agent-action-row><span class=agent-card-title></span><span></span></div><div class=agent-card-copy>`), _tmpl$39 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>`), _tmpl$40 = /* @__PURE__ */ template(`<div class=bookmark-folder-summary>`), _tmpl$41 = /* @__PURE__ */ template(`<div class=bookmark-folder-actions><button class=bookmark-ghost-button type=button>Rename</button><button class=bookmark-ghost-button type=button>Export</button><button class="bookmark-ghost-button danger"type=button>Delete`), _tmpl$42 = /* @__PURE__ */ template(`<button class=bookmark-ghost-button type=button>Keep bookmarks`), _tmpl$43 = /* @__PURE__ */ template(`<div class=bookmark-folder-delete-confirm><p class=bookmark-delete-prompt>Delete "<!>"?</p><div class=bookmark-delete-options><button class="bookmark-ghost-button danger"type=button></button><button class=bookmark-ghost-button type=button>Cancel`), _tmpl$44 = /* @__PURE__ */ template(`<div class=bookmark-folder-edit><div class=bookmark-folder-form-fields><input class=bookmark-input><input class=bookmark-input placeholder="Optional one-line summary"></div><button class=bookmark-secondary-button type=button>Save</button><button class=bookmark-ghost-button type=button>Cancel`), _tmpl$45 = /* @__PURE__ */ template(`<div class=bookmark-items>`), _tmpl$46 = /* @__PURE__ */ template(`<div class=bookmark-folder-section><div class="bookmark-folder-header clickable"role=button tabindex=0><div class=bookmark-folder-overview><span class=bookmark-folder-chevron aria-hidden=true>▸</span><div><div class=bookmark-folder-name></div><div class=bookmark-folder-meta> saved`), _tmpl$47 = /* @__PURE__ */ template(`<div class=bookmark-folder-collapsed-hint>Click to view saved links.`), _tmpl$48 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>No bookmarks in this folder yet.`), _tmpl$49 = /* @__PURE__ */ template(`<div class=bookmark-item-note>`), _tmpl$50 = /* @__PURE__ */ template(`<div><strong>Intent:</strong> `), _tmpl$51 = /* @__PURE__ */ template(`<div><strong>Expected:</strong> `), _tmpl$52 = /* @__PURE__ */ template(`<div><strong>Key fields:</strong> `), _tmpl$53 = /* @__PURE__ */ template(`<div><strong>Hints:</strong> `), _tmpl$54 = /* @__PURE__ */ template(`<div class=bookmark-folder-edit><input class=bookmark-input placeholder="Bookmark title"><textarea class=bookmark-note-input rows=2 placeholder="Why this bookmark matters"></textarea><textarea class=bookmark-note-input rows=1 placeholder=Intent></textarea><textarea class=bookmark-note-input rows=1 placeholder="Expected content"></textarea><input class=bookmark-input placeholder="Key fields (comma-separated)"><textarea class=bookmark-note-input rows=2 placeholder="Agent hints (one key:value per line)"></textarea><div class=bookmark-item-footer><button class=bookmark-secondary-button type=button>Save edits</button><button class=bookmark-ghost-button type=button>Cancel`), _tmpl$55 = /* @__PURE__ */ template(`<div class=bookmark-item><button class=bookmark-item-link type=button><span class=bookmark-item-title></span><span class=bookmark-item-url></span></button><div class=bookmark-item-footer><span class=bookmark-item-time></span><button class=bookmark-ghost-button type=button></button><button class="bookmark-ghost-button danger"type=button>Remove`), _tmpl$56 = /* @__PURE__ */ template(`<div class=agent-muted>No checkpoints yet.`), _tmpl$57 = /* @__PURE__ */ template(`<span class=checkpoint-timeline-line>`), _tmpl$58 = /* @__PURE__ */ template(`<div class=checkpoint-timeline-item><div class=checkpoint-timeline-rail><span class=checkpoint-timeline-dot></span></div><div class=checkpoint-timeline-content><div class=checkpoint-timeline-name></div><div class=checkpoint-timeline-time></div><textarea class=agent-textarea rows=2 placeholder="Add a note..."></textarea><button class=agent-control-button type=button>Restore`), _tmpl$59 = /* @__PURE__ */ template(`<button class=history-entry><span class=history-entry-title></span><span class=history-entry-url></span><span class=history-entry-time>`), _tmpl$60 = /* @__PURE__ */ template(`<div class="kit-upsell premium-chat-banner"><p class=kit-upsell-title>Vessel Premium</p><p class="kit-upsell-body premium-chat-banner-body">The Diff timeline is a premium feature. Upgrade to see a full history of what changed on this page.</p><div class="premium-inline-actions premium-chat-banner-actions"><button class="agent-primary-button premium-inline-primary"type=button>Start 7-day free trial — $5.99/mo after</button><button class="agent-control-button premium-inline-secondary"type=button>See Premium`), _tmpl$61 = /* @__PURE__ */ template(`<div>`), _tmpl$62 = /* @__PURE__ */ template(`<div class=thinking-state><div class=thinking-orb aria-hidden=true><span></span><span></span><span></span></div><div class=thinking-copy><div class=thinking-title>Thinking`), _tmpl$63 = /* @__PURE__ */ template(`<div class=chat-approval-detail>`), _tmpl$64 = /* @__PURE__ */ template(`<div class=chat-approval><div class=chat-approval-icon aria-hidden=true><svg width=16 height=16 viewBox="0 0 16 16"fill=none><path d="M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM7.25 4.75a.75.75 0 011.5 0v3.5a.75.75 0 01-1.5 0v-3.5zM8 11.5a.75.75 0 110-1.5.75.75 0 010 1.5z"fill=currentColor></path></svg></div><div class=chat-approval-body><div class=chat-approval-title>Approval needed: <strong></strong></div><div class=chat-approval-detail></div><div class=chat-approval-actions><button class="chat-approval-btn chat-approval-approve"type=button>Approve</button><button class="chat-approval-btn chat-approval-reject"type=button>Reject`), _tmpl$65 = /* @__PURE__ */ template(`<div class=chat-queue-item><span class=chat-queue-text></span><button class=chat-queue-remove type=button>×`);
|
|
9820
|
+
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>Generating`), _tmpl$21$1 = /* @__PURE__ */ template(`<div class="message message-assistant"><div class=message-content>`), _tmpl$22$1 = /* @__PURE__ */ template(`<div class=sidebar-empty><svg class=sidebar-empty-icon width=48 height=48 viewBox="0 0 48 48"aria-hidden=true><line x1=8 y1=8 x2=24 y2=5 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=24 y1=5 x2=40 y2=10 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=8 y1=8 x2=6 y2=24 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=40 y1=10 x2=44 y2=26 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=6 y1=24 x2=10 y2=38 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=44 y1=26 x2=38 y2=40 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=10 y1=38 x2=24 y2=44 stroke=var(--border-visible) stroke-width=1 opacity=0.35></line><line x1=38 y1=40 x2=24 y2=44 stroke=var(--border-visible) stroke-width=1 opacity=0.35></line><line x1=8 y1=8 x2=20 y2=18 stroke=var(--border-visible) stroke-width=1 opacity=0.5></line><line x1=24 y1=5 x2=20 y2=18 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=40 y1=10 x2=32 y2=20 stroke=var(--border-visible) stroke-width=1 opacity=0.5></line><line x1=20 y1=18 x2=32 y2=20 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.3></line><line x1=6 y1=24 x2=18 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=20 y1=18 x2=18 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=32 y1=20 x2=36 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=44 y1=26 x2=36 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=18 y1=30 x2=36 y2=30 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.25></line><line x1=18 y1=30 x2=10 y2=38 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=36 y1=30 x2=38 y2=40 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=18 y1=30 x2=24 y2=44 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.2></line><line x1=36 y1=30 x2=24 y2=44 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.2></line><circle cx=8 cy=8 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.55></circle><circle cx=24 cy=5 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.45></circle><circle cx=40 cy=10 r=3 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.7></circle><circle cx=6 cy=24 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=44 cy=26 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.55></circle><circle cx=10 cy=38 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=38 cy=40 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.45></circle><circle cx=24 cy=44 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=20 cy=18 r=3.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.85></circle><circle cx=32 cy=20 r=4 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.9></circle><circle cx=18 cy=30 r=3 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.75></circle><circle cx=36 cy=30 r=3.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.8></circle></svg><p class=sidebar-empty-title>Your move.</p><p class=sidebar-empty-hint>Configure a provider in Settings (Ctrl+,) then ask anything about the current page or beyond.`), _tmpl$23$1 = /* @__PURE__ */ template(`<button class=chat-action-btn title="Stop generating"><svg width=14 height=14 viewBox="0 0 14 14"fill=none aria-hidden=true><rect x=2 y=2 width=10 height=10 rx=1.5 fill=currentColor></rect></svg>Stop`), _tmpl$24$1 = /* @__PURE__ */ template(`<button class=chat-action-btn title="Retry last prompt"><svg width=14 height=14 viewBox="0 0 14 14"fill=none aria-hidden=true><path d="M11.5 7a4.5 4.5 0 1 1-1.3-3.2"stroke=currentColor stroke-width=1.5 stroke-linecap=round></path><path d="M10.5 1v3h-3"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg>Retry`), _tmpl$25$1 = /* @__PURE__ */ template(`<div class=chat-actions>`), _tmpl$26$1 = /* @__PURE__ */ template(`<div class=highlight-nav><button class=highlight-nav-btn type=button title="Previous highlight"><svg width=12 height=12 viewBox="0 0 12 12"fill=none aria-hidden=true><path d="M8 10L4 6l4-4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg></button><button class=highlight-nav-label type=button title="Go to current highlight"><svg width=12 height=12 viewBox="0 0 12 12"fill=none aria-hidden=true><circle cx=6 cy=6 r=3 fill=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>`);
|
|
9595
9821
|
const UNSORTED_FOLDER = {
|
|
9596
9822
|
id: "unsorted",
|
|
9597
9823
|
name: "Unsorted",
|
|
@@ -9642,6 +9868,7 @@ const Sidebar = (props) => {
|
|
|
9642
9868
|
clearPendingQueries,
|
|
9643
9869
|
clearHistory,
|
|
9644
9870
|
query,
|
|
9871
|
+
runAutomationPrompt,
|
|
9645
9872
|
cancel
|
|
9646
9873
|
} = useAI();
|
|
9647
9874
|
const {
|
|
@@ -9686,6 +9913,9 @@ const Sidebar = (props) => {
|
|
|
9686
9913
|
} = useBookmarks();
|
|
9687
9914
|
const [sidebarTab, setSidebarTab] = createSignal("supervisor");
|
|
9688
9915
|
const [chatInput, setChatInput] = createSignal("");
|
|
9916
|
+
const [chatCommandError, setChatCommandError] = createSignal(null);
|
|
9917
|
+
const [installedSkillKits, setInstalledSkillKits] = createSignal([]);
|
|
9918
|
+
const [slashSuggestionIndex, setSlashSuggestionIndex] = createSignal(0);
|
|
9689
9919
|
const [highlightCount, setHighlightCount] = createSignal(0);
|
|
9690
9920
|
const [highlightIndex, setHighlightIndex] = createSignal(-1);
|
|
9691
9921
|
const [premiumState, setPremiumState] = createSignal({
|
|
@@ -9698,6 +9928,33 @@ const Sidebar = (props) => {
|
|
|
9698
9928
|
});
|
|
9699
9929
|
const trackedPremiumContexts = /* @__PURE__ */ new Set();
|
|
9700
9930
|
const isPremium = () => isPremiumStatus(premiumState().status);
|
|
9931
|
+
const allSkillKits = createMemo(() => [...BUNDLED_KITS, ...installedSkillKits()]);
|
|
9932
|
+
const slashSuggestions = createMemo(() => getSkillSlashSuggestions(chatInput(), allSkillKits()));
|
|
9933
|
+
const recognizedSkillInvocation = createMemo(() => {
|
|
9934
|
+
const input = chatInput().trimStart();
|
|
9935
|
+
if (!input.startsWith("/")) return null;
|
|
9936
|
+
return parseSkillSlashInvocation(input, allSkillKits());
|
|
9937
|
+
});
|
|
9938
|
+
const recognizedSkillInputParts = createMemo(() => {
|
|
9939
|
+
if (recognizedSkillInvocation() === null) return null;
|
|
9940
|
+
const match = chatInput().match(/^(\s*)(\/\S+)([\s\S]*)$/);
|
|
9941
|
+
if (!match) return null;
|
|
9942
|
+
return {
|
|
9943
|
+
leading: match[1],
|
|
9944
|
+
command: match[2],
|
|
9945
|
+
rest: match[3]
|
|
9946
|
+
};
|
|
9947
|
+
});
|
|
9948
|
+
const loadInstalledSkillKits = async () => {
|
|
9949
|
+
try {
|
|
9950
|
+
const kits = await window.vessel.automation.getInstalled();
|
|
9951
|
+
setInstalledSkillKits(kits);
|
|
9952
|
+
return kits;
|
|
9953
|
+
} catch {
|
|
9954
|
+
setInstalledSkillKits([]);
|
|
9955
|
+
return [];
|
|
9956
|
+
}
|
|
9957
|
+
};
|
|
9701
9958
|
const trackPremiumContext = (step) => {
|
|
9702
9959
|
if (trackedPremiumContexts.has(step)) return;
|
|
9703
9960
|
trackedPremiumContexts.add(step);
|
|
@@ -9717,6 +9974,11 @@ const Sidebar = (props) => {
|
|
|
9717
9974
|
});
|
|
9718
9975
|
const cleanup2 = window.vessel.premium.onUpdate(setPremiumState);
|
|
9719
9976
|
onCleanup(cleanup2);
|
|
9977
|
+
void loadInstalledSkillKits();
|
|
9978
|
+
});
|
|
9979
|
+
createEffect(() => {
|
|
9980
|
+
slashSuggestions();
|
|
9981
|
+
setSlashSuggestionIndex(0);
|
|
9720
9982
|
});
|
|
9721
9983
|
const syncHighlightCount = async () => {
|
|
9722
9984
|
try {
|
|
@@ -9833,11 +10095,64 @@ ${contextBlock}` : contextBlock);
|
|
|
9833
10095
|
const handleChatSend = async () => {
|
|
9834
10096
|
const prompt = chatInput().trim();
|
|
9835
10097
|
if (!prompt) return;
|
|
10098
|
+
setChatCommandError(null);
|
|
10099
|
+
if (prompt.startsWith("/")) {
|
|
10100
|
+
const installedKits = await loadInstalledSkillKits();
|
|
10101
|
+
const kits = [...BUNDLED_KITS, ...installedKits];
|
|
10102
|
+
const invocation = parseSkillSlashInvocation(prompt, kits);
|
|
10103
|
+
if (invocation) {
|
|
10104
|
+
const {
|
|
10105
|
+
values,
|
|
10106
|
+
missingLabels
|
|
10107
|
+
} = buildSlashSkillValues(invocation.kit, invocation.task);
|
|
10108
|
+
if (missingLabels.length > 0) {
|
|
10109
|
+
setChatCommandError(`${invocation.kit.name} needs ${missingLabels.join(", ")}. Open Skills to run it with all fields.`);
|
|
10110
|
+
return;
|
|
10111
|
+
}
|
|
10112
|
+
const renderedPrompt = renderKitPrompt(invocation.kit, values);
|
|
10113
|
+
const result2 = await runAutomationPrompt(renderedPrompt, {
|
|
10114
|
+
id: `slash:${invocation.kit.id}:${Date.now()}`,
|
|
10115
|
+
title: invocation.kit.name,
|
|
10116
|
+
icon: invocation.kit.icon
|
|
10117
|
+
});
|
|
10118
|
+
if (result2 !== "rejected") {
|
|
10119
|
+
setChatInput("");
|
|
10120
|
+
}
|
|
10121
|
+
return;
|
|
10122
|
+
}
|
|
10123
|
+
if (prompt.startsWith("/skill ")) {
|
|
10124
|
+
setChatCommandError("No matching skill found for that command.");
|
|
10125
|
+
return;
|
|
10126
|
+
}
|
|
10127
|
+
}
|
|
9836
10128
|
const result = await query(prompt);
|
|
9837
10129
|
if (result !== "rejected") {
|
|
9838
10130
|
setChatInput("");
|
|
9839
10131
|
}
|
|
9840
10132
|
};
|
|
10133
|
+
const applySkillSuggestion = (kit) => {
|
|
10134
|
+
const token = getSkillCommandTokens(kit)[0] ?? kit.id;
|
|
10135
|
+
setChatInput(`/${token} `);
|
|
10136
|
+
setChatCommandError(null);
|
|
10137
|
+
setSlashSuggestionIndex(0);
|
|
10138
|
+
queueMicrotask(() => {
|
|
10139
|
+
chatInputRef?.focus();
|
|
10140
|
+
const length = chatInputRef?.value.length ?? 0;
|
|
10141
|
+
chatInputRef?.setSelectionRange(length, length);
|
|
10142
|
+
});
|
|
10143
|
+
};
|
|
10144
|
+
const applyActiveSkillSuggestion = () => {
|
|
10145
|
+
const suggestions = slashSuggestions();
|
|
10146
|
+
if (suggestions.length === 0) return false;
|
|
10147
|
+
const index = Math.max(0, Math.min(slashSuggestionIndex(), suggestions.length - 1));
|
|
10148
|
+
applySkillSuggestion(suggestions[index]);
|
|
10149
|
+
return true;
|
|
10150
|
+
};
|
|
10151
|
+
const moveSlashSuggestion = (delta) => {
|
|
10152
|
+
const count = slashSuggestions().length;
|
|
10153
|
+
if (count === 0) return;
|
|
10154
|
+
setSlashSuggestionIndex((current) => (current + delta + count) % count);
|
|
10155
|
+
};
|
|
9841
10156
|
const handleRetry = () => {
|
|
9842
10157
|
const msgs = messages2();
|
|
9843
10158
|
for (let i = msgs.length - 1; i >= 0; i--) {
|
|
@@ -10217,7 +10532,7 @@ ${contextBlock}` : contextBlock);
|
|
|
10217
10532
|
return props.forceOpen || sidebarOpen2();
|
|
10218
10533
|
},
|
|
10219
10534
|
get children() {
|
|
10220
|
-
var _el$9 = _tmpl$
|
|
10535
|
+
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;
|
|
10221
10536
|
_el$15.firstChild;
|
|
10222
10537
|
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;
|
|
10223
10538
|
insert(_el$9, createComponent(Show, {
|
|
@@ -10301,7 +10616,7 @@ ${contextBlock}` : contextBlock);
|
|
|
10301
10616
|
return runtimeState2().supervisor.pendingApprovals.length > 0;
|
|
10302
10617
|
},
|
|
10303
10618
|
get fallback() {
|
|
10304
|
-
return _tmpl$
|
|
10619
|
+
return _tmpl$34();
|
|
10305
10620
|
},
|
|
10306
10621
|
get children() {
|
|
10307
10622
|
return [_tmpl$6$8(), createComponent(For, {
|
|
@@ -10309,13 +10624,13 @@ ${contextBlock}` : contextBlock);
|
|
|
10309
10624
|
return runtimeState2().supervisor.pendingApprovals;
|
|
10310
10625
|
},
|
|
10311
10626
|
children: (approval) => (() => {
|
|
10312
|
-
var _el$
|
|
10313
|
-
insert(_el$
|
|
10314
|
-
insert(_el$
|
|
10315
|
-
insert(_el$
|
|
10316
|
-
_el$
|
|
10317
|
-
_el$
|
|
10318
|
-
return _el$
|
|
10627
|
+
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;
|
|
10628
|
+
insert(_el$156, () => approval.name);
|
|
10629
|
+
insert(_el$157, () => approval.argsSummary);
|
|
10630
|
+
insert(_el$158, () => approval.reason);
|
|
10631
|
+
_el$160.$$click = () => void resolveApproval(approval.id, true);
|
|
10632
|
+
_el$161.$$click = () => void resolveApproval(approval.id, false);
|
|
10633
|
+
return _el$154;
|
|
10319
10634
|
})()
|
|
10320
10635
|
})];
|
|
10321
10636
|
}
|
|
@@ -10339,7 +10654,7 @@ ${contextBlock}` : contextBlock);
|
|
|
10339
10654
|
return recentActions().length > 0;
|
|
10340
10655
|
},
|
|
10341
10656
|
get fallback() {
|
|
10342
|
-
return _tmpl$
|
|
10657
|
+
return _tmpl$36();
|
|
10343
10658
|
},
|
|
10344
10659
|
get children() {
|
|
10345
10660
|
return createComponent(Show, {
|
|
@@ -10347,7 +10662,7 @@ ${contextBlock}` : contextBlock);
|
|
|
10347
10662
|
return actionsExpanded();
|
|
10348
10663
|
},
|
|
10349
10664
|
get fallback() {
|
|
10350
|
-
return _tmpl$
|
|
10665
|
+
return _tmpl$37();
|
|
10351
10666
|
},
|
|
10352
10667
|
get children() {
|
|
10353
10668
|
return createComponent(For, {
|
|
@@ -10355,32 +10670,32 @@ ${contextBlock}` : contextBlock);
|
|
|
10355
10670
|
return recentActions();
|
|
10356
10671
|
},
|
|
10357
10672
|
children: (action) => (() => {
|
|
10358
|
-
var _el$
|
|
10359
|
-
insert(_el$
|
|
10360
|
-
insert(_el$
|
|
10361
|
-
insert(_el$
|
|
10362
|
-
insert(_el$
|
|
10673
|
+
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;
|
|
10674
|
+
insert(_el$166, () => action.name);
|
|
10675
|
+
insert(_el$167, () => action.status);
|
|
10676
|
+
insert(_el$168, () => action.argsSummary);
|
|
10677
|
+
insert(_el$164, createComponent(Show, {
|
|
10363
10678
|
get when() {
|
|
10364
10679
|
return action.resultSummary;
|
|
10365
10680
|
},
|
|
10366
10681
|
get children() {
|
|
10367
|
-
var _el$
|
|
10368
|
-
insert(_el$
|
|
10369
|
-
return _el$
|
|
10682
|
+
var _el$169 = _tmpl$38();
|
|
10683
|
+
insert(_el$169, () => action.resultSummary);
|
|
10684
|
+
return _el$169;
|
|
10370
10685
|
}
|
|
10371
10686
|
}), null);
|
|
10372
|
-
insert(_el$
|
|
10687
|
+
insert(_el$164, createComponent(Show, {
|
|
10373
10688
|
get when() {
|
|
10374
10689
|
return action.error;
|
|
10375
10690
|
},
|
|
10376
10691
|
get children() {
|
|
10377
|
-
var _el$
|
|
10378
|
-
insert(_el$
|
|
10379
|
-
return _el$
|
|
10692
|
+
var _el$170 = _tmpl$39();
|
|
10693
|
+
insert(_el$170, () => action.error);
|
|
10694
|
+
return _el$170;
|
|
10380
10695
|
}
|
|
10381
10696
|
}), null);
|
|
10382
|
-
createRenderEffect(() => className(_el$
|
|
10383
|
-
return _el$
|
|
10697
|
+
createRenderEffect(() => className(_el$167, `agent-action-status ${action.status}`));
|
|
10698
|
+
return _el$164;
|
|
10384
10699
|
})()
|
|
10385
10700
|
});
|
|
10386
10701
|
}
|
|
@@ -10498,12 +10813,12 @@ ${contextBlock}` : contextBlock);
|
|
|
10498
10813
|
},
|
|
10499
10814
|
get fallback() {
|
|
10500
10815
|
return (() => {
|
|
10501
|
-
var _el$
|
|
10502
|
-
insert(_el$
|
|
10816
|
+
var _el$171 = _tmpl$41();
|
|
10817
|
+
insert(_el$171, (() => {
|
|
10503
10818
|
var _c$5 = memo(() => !!normalizedBookmarkSearch());
|
|
10504
10819
|
return () => _c$5() ? `No bookmarks matched "${bookmarkSearchQuery().trim()}".` : "No bookmarks saved yet.";
|
|
10505
10820
|
})());
|
|
10506
|
-
return _el$
|
|
10821
|
+
return _el$171;
|
|
10507
10822
|
})();
|
|
10508
10823
|
},
|
|
10509
10824
|
get children() {
|
|
@@ -10512,105 +10827,105 @@ ${contextBlock}` : contextBlock);
|
|
|
10512
10827
|
return filteredGroupedBookmarks();
|
|
10513
10828
|
},
|
|
10514
10829
|
children: (folder) => (() => {
|
|
10515
|
-
var _el$
|
|
10516
|
-
_el$
|
|
10830
|
+
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;
|
|
10831
|
+
_el$173.$$keydown = (e) => {
|
|
10517
10832
|
if (e.key === "Enter" || e.key === " ") {
|
|
10518
10833
|
e.preventDefault();
|
|
10519
10834
|
toggleFolderExpanded(folder.id);
|
|
10520
10835
|
}
|
|
10521
10836
|
};
|
|
10522
|
-
_el$
|
|
10523
|
-
insert(_el$
|
|
10524
|
-
insert(_el$
|
|
10525
|
-
insert(_el$
|
|
10837
|
+
_el$173.$$click = () => toggleFolderExpanded(folder.id);
|
|
10838
|
+
insert(_el$177, () => folder.name);
|
|
10839
|
+
insert(_el$178, () => folder.items.length, _el$179);
|
|
10840
|
+
insert(_el$176, createComponent(Show, {
|
|
10526
10841
|
get when() {
|
|
10527
10842
|
return folder.summary;
|
|
10528
10843
|
},
|
|
10529
10844
|
get children() {
|
|
10530
|
-
var _el$
|
|
10531
|
-
insert(_el$
|
|
10532
|
-
return _el$
|
|
10845
|
+
var _el$180 = _tmpl$42();
|
|
10846
|
+
insert(_el$180, () => folder.summary);
|
|
10847
|
+
return _el$180;
|
|
10533
10848
|
}
|
|
10534
10849
|
}), null);
|
|
10535
|
-
insert(_el$
|
|
10850
|
+
insert(_el$173, createComponent(Show, {
|
|
10536
10851
|
get when() {
|
|
10537
10852
|
return folder.id !== UNSORTED_FOLDER.id;
|
|
10538
10853
|
},
|
|
10539
10854
|
get children() {
|
|
10540
|
-
var _el$
|
|
10541
|
-
_el$
|
|
10855
|
+
var _el$181 = _tmpl$43(), _el$182 = _el$181.firstChild, _el$183 = _el$182.nextSibling, _el$184 = _el$183.nextSibling;
|
|
10856
|
+
_el$182.$$click = (e) => {
|
|
10542
10857
|
e.stopPropagation();
|
|
10543
10858
|
setEditingFolderId(folder.id);
|
|
10544
10859
|
setEditingFolderName(folder.name);
|
|
10545
10860
|
setEditingFolderSummary(folder.summary || "");
|
|
10546
10861
|
};
|
|
10547
|
-
_el$
|
|
10862
|
+
_el$183.$$click = (e) => {
|
|
10548
10863
|
e.stopPropagation();
|
|
10549
10864
|
void handleExportFolder(folder.id, folder.name);
|
|
10550
10865
|
};
|
|
10551
|
-
_el$
|
|
10866
|
+
_el$184.$$click = (e) => {
|
|
10552
10867
|
e.stopPropagation();
|
|
10553
10868
|
setDeletingFolderId(folder.id);
|
|
10554
10869
|
};
|
|
10555
|
-
createRenderEffect(() => _el$
|
|
10556
|
-
return _el$
|
|
10870
|
+
createRenderEffect(() => _el$183.disabled = bookmarkExporting());
|
|
10871
|
+
return _el$181;
|
|
10557
10872
|
}
|
|
10558
10873
|
}), null);
|
|
10559
|
-
insert(_el$
|
|
10874
|
+
insert(_el$172, createComponent(Show, {
|
|
10560
10875
|
get when() {
|
|
10561
10876
|
return deletingFolderId() === folder.id;
|
|
10562
10877
|
},
|
|
10563
10878
|
get children() {
|
|
10564
|
-
var _el$
|
|
10565
|
-
_el$
|
|
10566
|
-
var _el$
|
|
10567
|
-
insert(_el$
|
|
10568
|
-
insert(_el$
|
|
10879
|
+
var _el$185 = _tmpl$45(), _el$186 = _el$185.firstChild, _el$187 = _el$186.firstChild, _el$189 = _el$187.nextSibling;
|
|
10880
|
+
_el$189.nextSibling;
|
|
10881
|
+
var _el$190 = _el$186.nextSibling, _el$192 = _el$190.firstChild, _el$193 = _el$192.nextSibling;
|
|
10882
|
+
insert(_el$186, () => folder.name, _el$189);
|
|
10883
|
+
insert(_el$186, (() => {
|
|
10569
10884
|
var _c$6 = memo(() => folder.items.length > 0);
|
|
10570
10885
|
return () => _c$6() ? ` This folder has ${folder.items.length} bookmark${folder.items.length === 1 ? "" : "s"}.` : "";
|
|
10571
10886
|
})(), null);
|
|
10572
|
-
insert(_el$
|
|
10887
|
+
insert(_el$190, createComponent(Show, {
|
|
10573
10888
|
get when() {
|
|
10574
10889
|
return folder.items.length > 0;
|
|
10575
10890
|
},
|
|
10576
10891
|
get children() {
|
|
10577
|
-
var _el$
|
|
10578
|
-
_el$
|
|
10579
|
-
return _el$
|
|
10892
|
+
var _el$191 = _tmpl$44();
|
|
10893
|
+
_el$191.$$click = () => void handleRemoveFolder(folder.id, false);
|
|
10894
|
+
return _el$191;
|
|
10580
10895
|
}
|
|
10581
|
-
}), _el$
|
|
10582
|
-
_el$
|
|
10583
|
-
insert(_el$
|
|
10584
|
-
_el$
|
|
10585
|
-
return _el$
|
|
10896
|
+
}), _el$192);
|
|
10897
|
+
_el$192.$$click = () => void handleRemoveFolder(folder.id, true);
|
|
10898
|
+
insert(_el$192, () => folder.items.length > 0 ? "Delete all" : "Delete folder");
|
|
10899
|
+
_el$193.$$click = () => setDeletingFolderId(null);
|
|
10900
|
+
return _el$185;
|
|
10586
10901
|
}
|
|
10587
10902
|
}), null);
|
|
10588
|
-
insert(_el$
|
|
10903
|
+
insert(_el$172, createComponent(Show, {
|
|
10589
10904
|
get when() {
|
|
10590
10905
|
return editingFolderId() === folder.id;
|
|
10591
10906
|
},
|
|
10592
10907
|
get children() {
|
|
10593
|
-
var _el$
|
|
10594
|
-
_el$
|
|
10595
|
-
_el$
|
|
10596
|
-
_el$
|
|
10597
|
-
_el$
|
|
10908
|
+
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;
|
|
10909
|
+
_el$196.$$input = (e) => setEditingFolderName(e.currentTarget.value);
|
|
10910
|
+
_el$197.$$input = (e) => setEditingFolderSummary(e.currentTarget.value);
|
|
10911
|
+
_el$198.$$click = () => void handleRenameFolder(folder.id);
|
|
10912
|
+
_el$199.$$click = () => {
|
|
10598
10913
|
setEditingFolderId(null);
|
|
10599
10914
|
setEditingFolderName("");
|
|
10600
10915
|
setEditingFolderSummary("");
|
|
10601
10916
|
};
|
|
10602
|
-
createRenderEffect(() => _el$
|
|
10603
|
-
createRenderEffect(() => _el$
|
|
10604
|
-
createRenderEffect(() => _el$
|
|
10605
|
-
return _el$
|
|
10917
|
+
createRenderEffect(() => _el$198.disabled = !editingFolderName().trim());
|
|
10918
|
+
createRenderEffect(() => _el$196.value = editingFolderName());
|
|
10919
|
+
createRenderEffect(() => _el$197.value = editingFolderSummary());
|
|
10920
|
+
return _el$194;
|
|
10606
10921
|
}
|
|
10607
10922
|
}), null);
|
|
10608
|
-
insert(_el$
|
|
10923
|
+
insert(_el$172, createComponent(Show, {
|
|
10609
10924
|
get when() {
|
|
10610
10925
|
return isFolderExpanded(folder.id);
|
|
10611
10926
|
},
|
|
10612
10927
|
get fallback() {
|
|
10613
|
-
return _tmpl$
|
|
10928
|
+
return _tmpl$49();
|
|
10614
10929
|
},
|
|
10615
10930
|
get children() {
|
|
10616
10931
|
return createComponent(Show, {
|
|
@@ -10618,125 +10933,125 @@ ${contextBlock}` : contextBlock);
|
|
|
10618
10933
|
return folder.items.length > 0;
|
|
10619
10934
|
},
|
|
10620
10935
|
get fallback() {
|
|
10621
|
-
return _tmpl$
|
|
10936
|
+
return _tmpl$50();
|
|
10622
10937
|
},
|
|
10623
10938
|
get children() {
|
|
10624
|
-
var _el$
|
|
10625
|
-
insert(_el$
|
|
10939
|
+
var _el$200 = _tmpl$47();
|
|
10940
|
+
insert(_el$200, createComponent(For, {
|
|
10626
10941
|
get each() {
|
|
10627
10942
|
return folder.items;
|
|
10628
10943
|
},
|
|
10629
10944
|
children: (bookmark) => (() => {
|
|
10630
|
-
var _el$
|
|
10631
|
-
_el$
|
|
10632
|
-
insert(_el$
|
|
10633
|
-
insert(_el$
|
|
10634
|
-
insert(_el$
|
|
10945
|
+
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;
|
|
10946
|
+
_el$204.$$click = () => void createTab(bookmark.url);
|
|
10947
|
+
insert(_el$205, () => bookmark.title || bookmark.url);
|
|
10948
|
+
insert(_el$206, () => bookmark.url);
|
|
10949
|
+
insert(_el$203, createComponent(Show, {
|
|
10635
10950
|
get when() {
|
|
10636
10951
|
return bookmark.note;
|
|
10637
10952
|
},
|
|
10638
10953
|
get children() {
|
|
10639
|
-
var _el$
|
|
10640
|
-
insert(_el$
|
|
10641
|
-
return _el$
|
|
10954
|
+
var _el$207 = _tmpl$51();
|
|
10955
|
+
insert(_el$207, () => bookmark.note);
|
|
10956
|
+
return _el$207;
|
|
10642
10957
|
}
|
|
10643
|
-
}), _el$
|
|
10644
|
-
insert(_el$
|
|
10958
|
+
}), _el$231);
|
|
10959
|
+
insert(_el$203, createComponent(Show, {
|
|
10645
10960
|
get when() {
|
|
10646
10961
|
return bookmark.intent || bookmark.expectedContent || (bookmark.keyFields?.length || 0) > 0 || (bookmark.agentHints && Object.keys(bookmark.agentHints).length || 0) > 0;
|
|
10647
10962
|
},
|
|
10648
10963
|
get children() {
|
|
10649
|
-
var _el$
|
|
10650
|
-
insert(_el$
|
|
10964
|
+
var _el$208 = _tmpl$51();
|
|
10965
|
+
insert(_el$208, createComponent(Show, {
|
|
10651
10966
|
get when() {
|
|
10652
10967
|
return bookmark.intent;
|
|
10653
10968
|
},
|
|
10654
10969
|
get children() {
|
|
10655
|
-
var _el$
|
|
10656
|
-
_el$
|
|
10657
|
-
insert(_el$
|
|
10658
|
-
return _el$
|
|
10970
|
+
var _el$209 = _tmpl$52(), _el$210 = _el$209.firstChild;
|
|
10971
|
+
_el$210.nextSibling;
|
|
10972
|
+
insert(_el$209, () => bookmark.intent, null);
|
|
10973
|
+
return _el$209;
|
|
10659
10974
|
}
|
|
10660
10975
|
}), null);
|
|
10661
|
-
insert(_el$
|
|
10976
|
+
insert(_el$208, createComponent(Show, {
|
|
10662
10977
|
get when() {
|
|
10663
10978
|
return bookmark.expectedContent;
|
|
10664
10979
|
},
|
|
10665
10980
|
get children() {
|
|
10666
|
-
var _el$
|
|
10667
|
-
_el$
|
|
10668
|
-
insert(_el$
|
|
10669
|
-
return _el$
|
|
10981
|
+
var _el$212 = _tmpl$53(), _el$213 = _el$212.firstChild;
|
|
10982
|
+
_el$213.nextSibling;
|
|
10983
|
+
insert(_el$212, () => bookmark.expectedContent, null);
|
|
10984
|
+
return _el$212;
|
|
10670
10985
|
}
|
|
10671
10986
|
}), null);
|
|
10672
|
-
insert(_el$
|
|
10987
|
+
insert(_el$208, createComponent(Show, {
|
|
10673
10988
|
get when() {
|
|
10674
10989
|
return (bookmark.keyFields?.length || 0) > 0;
|
|
10675
10990
|
},
|
|
10676
10991
|
get children() {
|
|
10677
|
-
var _el$
|
|
10678
|
-
_el$
|
|
10679
|
-
insert(_el$
|
|
10680
|
-
return _el$
|
|
10992
|
+
var _el$215 = _tmpl$54(), _el$216 = _el$215.firstChild;
|
|
10993
|
+
_el$216.nextSibling;
|
|
10994
|
+
insert(_el$215, () => bookmark.keyFields?.join(", "), null);
|
|
10995
|
+
return _el$215;
|
|
10681
10996
|
}
|
|
10682
10997
|
}), null);
|
|
10683
|
-
insert(_el$
|
|
10998
|
+
insert(_el$208, createComponent(Show, {
|
|
10684
10999
|
get when() {
|
|
10685
11000
|
return memo(() => !!bookmark.agentHints)() && Object.keys(bookmark.agentHints).length > 0;
|
|
10686
11001
|
},
|
|
10687
11002
|
get children() {
|
|
10688
|
-
var _el$
|
|
10689
|
-
_el$
|
|
10690
|
-
insert(_el$
|
|
10691
|
-
return _el$
|
|
11003
|
+
var _el$218 = _tmpl$55(), _el$219 = _el$218.firstChild;
|
|
11004
|
+
_el$219.nextSibling;
|
|
11005
|
+
insert(_el$218, () => Object.entries(bookmark.agentHints || {}).map(([key, hint]) => `${key}: ${hint}`).join(" • "), null);
|
|
11006
|
+
return _el$218;
|
|
10692
11007
|
}
|
|
10693
11008
|
}), null);
|
|
10694
|
-
return _el$
|
|
11009
|
+
return _el$208;
|
|
10695
11010
|
}
|
|
10696
|
-
}), _el$
|
|
10697
|
-
insert(_el$
|
|
11011
|
+
}), _el$231);
|
|
11012
|
+
insert(_el$203, createComponent(Show, {
|
|
10698
11013
|
get when() {
|
|
10699
11014
|
return editingBookmarkId() === bookmark.id;
|
|
10700
11015
|
},
|
|
10701
11016
|
get children() {
|
|
10702
|
-
var _el$
|
|
10703
|
-
_el$
|
|
10704
|
-
_el$
|
|
10705
|
-
_el$
|
|
10706
|
-
_el$
|
|
10707
|
-
_el$
|
|
10708
|
-
_el$
|
|
10709
|
-
_el$
|
|
10710
|
-
_el$
|
|
10711
|
-
createRenderEffect(() => _el$
|
|
10712
|
-
createRenderEffect(() => _el$
|
|
10713
|
-
createRenderEffect(() => _el$
|
|
10714
|
-
createRenderEffect(() => _el$
|
|
10715
|
-
createRenderEffect(() => _el$
|
|
10716
|
-
createRenderEffect(() => _el$
|
|
10717
|
-
return _el$
|
|
11017
|
+
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;
|
|
11018
|
+
_el$222.$$input = (e) => setEditingBookmarkTitle(e.currentTarget.value);
|
|
11019
|
+
_el$223.$$input = (e) => setEditingBookmarkNote(e.currentTarget.value);
|
|
11020
|
+
_el$224.$$input = (e) => setEditingBookmarkIntent(e.currentTarget.value);
|
|
11021
|
+
_el$225.$$input = (e) => setEditingBookmarkExpectedContent(e.currentTarget.value);
|
|
11022
|
+
_el$226.$$input = (e) => setEditingBookmarkKeyFields(e.currentTarget.value);
|
|
11023
|
+
_el$227.$$input = (e) => setEditingBookmarkAgentHints(e.currentTarget.value);
|
|
11024
|
+
_el$229.$$click = () => void handleUpdateBookmark(bookmark.id);
|
|
11025
|
+
_el$230.$$click = resetBookmarkEditor;
|
|
11026
|
+
createRenderEffect(() => _el$222.value = editingBookmarkTitle());
|
|
11027
|
+
createRenderEffect(() => _el$223.value = editingBookmarkNote());
|
|
11028
|
+
createRenderEffect(() => _el$224.value = editingBookmarkIntent());
|
|
11029
|
+
createRenderEffect(() => _el$225.value = editingBookmarkExpectedContent());
|
|
11030
|
+
createRenderEffect(() => _el$226.value = editingBookmarkKeyFields());
|
|
11031
|
+
createRenderEffect(() => _el$227.value = editingBookmarkAgentHints());
|
|
11032
|
+
return _el$221;
|
|
10718
11033
|
}
|
|
10719
|
-
}), _el$
|
|
10720
|
-
insert(_el$
|
|
10721
|
-
_el$
|
|
10722
|
-
insert(_el$
|
|
10723
|
-
_el$
|
|
11034
|
+
}), _el$231);
|
|
11035
|
+
insert(_el$232, () => formatBookmarkDate(bookmark.savedAt));
|
|
11036
|
+
_el$233.$$click = () => editingBookmarkId() === bookmark.id ? resetBookmarkEditor() : startEditingBookmark(bookmark);
|
|
11037
|
+
insert(_el$233, () => editingBookmarkId() === bookmark.id ? "Close" : "Edit");
|
|
11038
|
+
_el$234.$$click = () => {
|
|
10724
11039
|
if (editingBookmarkId() === bookmark.id) {
|
|
10725
11040
|
resetBookmarkEditor();
|
|
10726
11041
|
}
|
|
10727
11042
|
void removeBookmark(bookmark.id);
|
|
10728
11043
|
};
|
|
10729
|
-
createRenderEffect(() => setAttribute(_el$
|
|
10730
|
-
return _el$
|
|
11044
|
+
createRenderEffect(() => setAttribute(_el$203, "data-bookmark-id", bookmark.id));
|
|
11045
|
+
return _el$203;
|
|
10731
11046
|
})()
|
|
10732
11047
|
}));
|
|
10733
|
-
return _el$
|
|
11048
|
+
return _el$200;
|
|
10734
11049
|
}
|
|
10735
11050
|
});
|
|
10736
11051
|
}
|
|
10737
11052
|
}), null);
|
|
10738
|
-
createRenderEffect(() => _el$
|
|
10739
|
-
return _el$
|
|
11053
|
+
createRenderEffect(() => _el$175.classList.toggle("expanded", !!isFolderExpanded(folder.id)));
|
|
11054
|
+
return _el$172;
|
|
10740
11055
|
})()
|
|
10741
11056
|
});
|
|
10742
11057
|
}
|
|
@@ -10788,7 +11103,7 @@ ${contextBlock}` : contextBlock);
|
|
|
10788
11103
|
return recentCheckpoints().length > 0;
|
|
10789
11104
|
},
|
|
10790
11105
|
get fallback() {
|
|
10791
|
-
return _tmpl$
|
|
11106
|
+
return _tmpl$58();
|
|
10792
11107
|
},
|
|
10793
11108
|
get children() {
|
|
10794
11109
|
var _el$95 = _tmpl$12$3();
|
|
@@ -10797,22 +11112,22 @@ ${contextBlock}` : contextBlock);
|
|
|
10797
11112
|
return recentCheckpoints();
|
|
10798
11113
|
},
|
|
10799
11114
|
children: (checkpoint, i) => (() => {
|
|
10800
|
-
var _el$
|
|
10801
|
-
insert(_el$
|
|
11115
|
+
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;
|
|
11116
|
+
insert(_el$237, createComponent(Show, {
|
|
10802
11117
|
get when() {
|
|
10803
11118
|
return i() < recentCheckpoints().length - 1;
|
|
10804
11119
|
},
|
|
10805
11120
|
get children() {
|
|
10806
|
-
return _tmpl$
|
|
11121
|
+
return _tmpl$59();
|
|
10807
11122
|
}
|
|
10808
11123
|
}), null);
|
|
10809
|
-
insert(_el$
|
|
10810
|
-
insert(_el$
|
|
10811
|
-
_el$
|
|
10812
|
-
_el$
|
|
10813
|
-
createRenderEffect(() => _el$
|
|
10814
|
-
createRenderEffect(() => _el$
|
|
10815
|
-
return _el$
|
|
11124
|
+
insert(_el$241, () => checkpoint.name);
|
|
11125
|
+
insert(_el$242, () => new Date(checkpoint.createdAt).toLocaleString());
|
|
11126
|
+
_el$243.addEventListener("blur", (e) => void updateCheckpointNote(checkpoint.id, e.currentTarget.value));
|
|
11127
|
+
_el$244.$$click = () => void restoreCheckpoint(checkpoint.id);
|
|
11128
|
+
createRenderEffect(() => _el$238.classList.toggle("latest", !!(i() === 0)));
|
|
11129
|
+
createRenderEffect(() => _el$243.value = checkpoint.note || "");
|
|
11130
|
+
return _el$236;
|
|
10816
11131
|
})()
|
|
10817
11132
|
}));
|
|
10818
11133
|
return _el$95;
|
|
@@ -10867,12 +11182,12 @@ ${contextBlock}` : contextBlock);
|
|
|
10867
11182
|
return history.historyState().entries;
|
|
10868
11183
|
},
|
|
10869
11184
|
children: (entry) => (() => {
|
|
10870
|
-
var _el$
|
|
10871
|
-
_el$
|
|
10872
|
-
insert(_el$
|
|
10873
|
-
insert(_el$
|
|
10874
|
-
insert(_el$
|
|
10875
|
-
return _el$
|
|
11185
|
+
var _el$245 = _tmpl$61(), _el$246 = _el$245.firstChild, _el$247 = _el$246.nextSibling, _el$248 = _el$247.nextSibling;
|
|
11186
|
+
_el$245.$$click = () => createTab(entry.url);
|
|
11187
|
+
insert(_el$246, () => entry.title || entry.url);
|
|
11188
|
+
insert(_el$247, () => entry.url);
|
|
11189
|
+
insert(_el$248, () => new Date(entry.visitedAt).toLocaleString());
|
|
11190
|
+
return _el$245;
|
|
10876
11191
|
})()
|
|
10877
11192
|
}), null);
|
|
10878
11193
|
insert(_el$104, createComponent(Show, {
|
|
@@ -10912,11 +11227,11 @@ ${contextBlock}` : contextBlock);
|
|
|
10912
11227
|
},
|
|
10913
11228
|
get fallback() {
|
|
10914
11229
|
return (() => {
|
|
10915
|
-
var _el$
|
|
10916
|
-
_el$
|
|
11230
|
+
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;
|
|
11231
|
+
_el$253.$$click = () => void window.vessel.premium.checkout(premiumState().email || void 0).catch(() => {
|
|
10917
11232
|
});
|
|
10918
|
-
_el$
|
|
10919
|
-
return _el$
|
|
11233
|
+
_el$254.$$click = openPremiumDetails;
|
|
11234
|
+
return _el$249;
|
|
10920
11235
|
})();
|
|
10921
11236
|
},
|
|
10922
11237
|
get children() {
|
|
@@ -10946,13 +11261,13 @@ ${contextBlock}` : contextBlock);
|
|
|
10946
11261
|
return messages2();
|
|
10947
11262
|
},
|
|
10948
11263
|
children: (msg) => (() => {
|
|
10949
|
-
var _el$
|
|
10950
|
-
insert(_el$
|
|
11264
|
+
var _el$255 = _tmpl$63();
|
|
11265
|
+
insert(_el$255, createComponent(MarkdownMessage, {
|
|
10951
11266
|
get content() {
|
|
10952
11267
|
return msg.content;
|
|
10953
11268
|
}
|
|
10954
11269
|
}), null);
|
|
10955
|
-
insert(_el$
|
|
11270
|
+
insert(_el$255, createComponent(Show, {
|
|
10956
11271
|
get when() {
|
|
10957
11272
|
return memo(() => msg.role === "assistant")() ? getPremiumPromptKind(msg.content) : null;
|
|
10958
11273
|
},
|
|
@@ -10965,8 +11280,8 @@ ${contextBlock}` : contextBlock);
|
|
|
10965
11280
|
onOpenSettings: openPremiumDetails
|
|
10966
11281
|
})
|
|
10967
11282
|
}), null);
|
|
10968
|
-
createRenderEffect(() => className(_el$
|
|
10969
|
-
return _el$
|
|
11283
|
+
createRenderEffect(() => className(_el$255, `message message-${msg.role}`));
|
|
11284
|
+
return _el$255;
|
|
10970
11285
|
})()
|
|
10971
11286
|
}), createComponent(Show, {
|
|
10972
11287
|
get when() {
|
|
@@ -10979,7 +11294,7 @@ ${contextBlock}` : contextBlock);
|
|
|
10979
11294
|
return hasFirstChunk2();
|
|
10980
11295
|
},
|
|
10981
11296
|
get fallback() {
|
|
10982
|
-
return _tmpl$
|
|
11297
|
+
return _tmpl$64();
|
|
10983
11298
|
},
|
|
10984
11299
|
get children() {
|
|
10985
11300
|
var _el$125 = _tmpl$20$1(), _el$126 = _el$125.firstChild, _el$127 = _el$126.firstChild;
|
|
@@ -11027,22 +11342,22 @@ ${contextBlock}` : contextBlock);
|
|
|
11027
11342
|
return runtimeState2().supervisor.pendingApprovals;
|
|
11028
11343
|
},
|
|
11029
11344
|
children: (approval) => (() => {
|
|
11030
|
-
var _el$
|
|
11031
|
-
insert(_el$
|
|
11032
|
-
insert(_el$
|
|
11345
|
+
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;
|
|
11346
|
+
insert(_el$262, () => approval.name);
|
|
11347
|
+
insert(_el$259, createComponent(Show, {
|
|
11033
11348
|
get when() {
|
|
11034
11349
|
return approval.argsSummary;
|
|
11035
11350
|
},
|
|
11036
11351
|
get children() {
|
|
11037
|
-
var _el$
|
|
11038
|
-
insert(_el$
|
|
11039
|
-
return _el$
|
|
11352
|
+
var _el$263 = _tmpl$65();
|
|
11353
|
+
insert(_el$263, () => approval.argsSummary);
|
|
11354
|
+
return _el$263;
|
|
11040
11355
|
}
|
|
11041
|
-
}), _el$
|
|
11042
|
-
insert(_el$
|
|
11043
|
-
_el$
|
|
11044
|
-
_el$
|
|
11045
|
-
return _el$
|
|
11356
|
+
}), _el$264);
|
|
11357
|
+
insert(_el$264, () => approval.reason);
|
|
11358
|
+
_el$266.$$click = () => void resolveApproval(approval.id, true);
|
|
11359
|
+
_el$267.$$click = () => void resolveApproval(approval.id, false);
|
|
11360
|
+
return _el$257;
|
|
11046
11361
|
})()
|
|
11047
11362
|
});
|
|
11048
11363
|
}
|
|
@@ -11145,12 +11460,12 @@ ${contextBlock}` : contextBlock);
|
|
|
11145
11460
|
return pendingQueries2();
|
|
11146
11461
|
},
|
|
11147
11462
|
children: (pendingPrompt, index) => (() => {
|
|
11148
|
-
var _el$
|
|
11149
|
-
setAttribute(_el$
|
|
11150
|
-
insert(_el$
|
|
11151
|
-
_el$
|
|
11152
|
-
createRenderEffect(() => setAttribute(_el$
|
|
11153
|
-
return _el$
|
|
11463
|
+
var _el$268 = _tmpl$67(), _el$269 = _el$268.firstChild, _el$270 = _el$269.nextSibling;
|
|
11464
|
+
setAttribute(_el$269, "title", pendingPrompt);
|
|
11465
|
+
insert(_el$269, pendingPrompt);
|
|
11466
|
+
_el$270.$$click = () => removePendingQuery(index());
|
|
11467
|
+
createRenderEffect(() => setAttribute(_el$270, "aria-label", `Remove queued prompt ${index() + 1}`));
|
|
11468
|
+
return _el$268;
|
|
11154
11469
|
})()
|
|
11155
11470
|
}));
|
|
11156
11471
|
return _el$144;
|
|
@@ -11158,52 +11473,136 @@ ${contextBlock}` : contextBlock);
|
|
|
11158
11473
|
}), null);
|
|
11159
11474
|
return _el$140;
|
|
11160
11475
|
}
|
|
11476
|
+
}), createComponent(Show, {
|
|
11477
|
+
get when() {
|
|
11478
|
+
return chatCommandError() !== null;
|
|
11479
|
+
},
|
|
11480
|
+
get children() {
|
|
11481
|
+
var _el$145 = _tmpl$30(), _el$146 = _el$145.firstChild, _el$147 = _el$146.nextSibling;
|
|
11482
|
+
insert(_el$146, chatCommandError);
|
|
11483
|
+
_el$147.$$click = () => setChatCommandError(null);
|
|
11484
|
+
return _el$145;
|
|
11485
|
+
}
|
|
11486
|
+
}), createComponent(Show, {
|
|
11487
|
+
get when() {
|
|
11488
|
+
return slashSuggestions().length > 0;
|
|
11489
|
+
},
|
|
11490
|
+
get children() {
|
|
11491
|
+
var _el$148 = _tmpl$31();
|
|
11492
|
+
insert(_el$148, createComponent(For, {
|
|
11493
|
+
get each() {
|
|
11494
|
+
return slashSuggestions();
|
|
11495
|
+
},
|
|
11496
|
+
children: (kit, index) => (() => {
|
|
11497
|
+
var _el$271 = _tmpl$68(), _el$272 = _el$271.firstChild;
|
|
11498
|
+
_el$272.firstChild;
|
|
11499
|
+
var _el$274 = _el$272.nextSibling, _el$275 = _el$274.firstChild, _el$276 = _el$275.nextSibling;
|
|
11500
|
+
_el$271.$$mousedown = (event) => {
|
|
11501
|
+
event.preventDefault();
|
|
11502
|
+
applySkillSuggestion(kit);
|
|
11503
|
+
};
|
|
11504
|
+
insert(_el$272, () => getSkillCommandTokens(kit)[0], null);
|
|
11505
|
+
insert(_el$275, () => kit.name);
|
|
11506
|
+
insert(_el$276, () => kit.description);
|
|
11507
|
+
createRenderEffect((_p$) => {
|
|
11508
|
+
var _v$30 = !!(index() === slashSuggestionIndex()), _v$31 = index() === slashSuggestionIndex();
|
|
11509
|
+
_v$30 !== _p$.e && _el$271.classList.toggle("active", _p$.e = _v$30);
|
|
11510
|
+
_v$31 !== _p$.t && setAttribute(_el$271, "aria-selected", _p$.t = _v$31);
|
|
11511
|
+
return _p$;
|
|
11512
|
+
}, {
|
|
11513
|
+
e: void 0,
|
|
11514
|
+
t: void 0
|
|
11515
|
+
});
|
|
11516
|
+
return _el$271;
|
|
11517
|
+
})()
|
|
11518
|
+
}));
|
|
11519
|
+
return _el$148;
|
|
11520
|
+
}
|
|
11161
11521
|
}), (() => {
|
|
11162
|
-
var _el$
|
|
11163
|
-
_el$
|
|
11522
|
+
var _el$149 = _tmpl$32(), _el$150 = _el$149.firstChild, _el$151 = _el$150.firstChild, _el$152 = _el$150.nextSibling;
|
|
11523
|
+
insert(_el$150, createComponent(Show, {
|
|
11524
|
+
get when() {
|
|
11525
|
+
return recognizedSkillInputParts();
|
|
11526
|
+
},
|
|
11527
|
+
children: (parts) => (() => {
|
|
11528
|
+
var _el$277 = _tmpl$69(), _el$278 = _el$277.firstChild;
|
|
11529
|
+
insert(_el$277, () => parts().leading, _el$278);
|
|
11530
|
+
insert(_el$278, () => parts().command);
|
|
11531
|
+
insert(_el$277, () => parts().rest || " ", null);
|
|
11532
|
+
return _el$277;
|
|
11533
|
+
})()
|
|
11534
|
+
}), _el$151);
|
|
11535
|
+
_el$151.$$keydown = (e) => {
|
|
11536
|
+
if (slashSuggestions().length > 0) {
|
|
11537
|
+
if (e.key === "ArrowDown") {
|
|
11538
|
+
e.preventDefault();
|
|
11539
|
+
moveSlashSuggestion(1);
|
|
11540
|
+
return;
|
|
11541
|
+
}
|
|
11542
|
+
if (e.key === "ArrowUp") {
|
|
11543
|
+
e.preventDefault();
|
|
11544
|
+
moveSlashSuggestion(-1);
|
|
11545
|
+
return;
|
|
11546
|
+
}
|
|
11547
|
+
if (e.key === "Enter" || e.key === "Tab") {
|
|
11548
|
+
e.preventDefault();
|
|
11549
|
+
applyActiveSkillSuggestion();
|
|
11550
|
+
return;
|
|
11551
|
+
}
|
|
11552
|
+
}
|
|
11164
11553
|
if (e.key === "Enter" && !e.shiftKey) {
|
|
11165
11554
|
e.preventDefault();
|
|
11166
11555
|
void handleChatSend();
|
|
11167
11556
|
}
|
|
11168
11557
|
};
|
|
11169
|
-
_el$
|
|
11558
|
+
_el$151.$$input = (e) => {
|
|
11559
|
+
setChatInput(e.currentTarget.value);
|
|
11560
|
+
if (chatCommandError()) setChatCommandError(null);
|
|
11561
|
+
if (e.currentTarget.value.startsWith("/")) {
|
|
11562
|
+
void loadInstalledSkillKits();
|
|
11563
|
+
}
|
|
11564
|
+
};
|
|
11170
11565
|
var _ref$2 = chatInputRef;
|
|
11171
|
-
typeof _ref$2 === "function" ? use(_ref$2, _el$
|
|
11172
|
-
_el$
|
|
11173
|
-
insert(_el$
|
|
11566
|
+
typeof _ref$2 === "function" ? use(_ref$2, _el$151) : chatInputRef = _el$151;
|
|
11567
|
+
_el$152.$$click = () => void handleChatSend();
|
|
11568
|
+
insert(_el$152, () => isStreaming2() ? "Queue" : "Send");
|
|
11174
11569
|
createRenderEffect((_p$) => {
|
|
11175
|
-
var _v$1 = isStreaming2() ? "Send now to queue the next prompt..." : "Ask anything...", _v$
|
|
11176
|
-
_v$1 !== _p$.e &&
|
|
11177
|
-
_v$10 !== _p$.t &&
|
|
11570
|
+
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();
|
|
11571
|
+
_v$1 !== _p$.e && _el$150.classList.toggle("skill-command-registered", _p$.e = _v$1);
|
|
11572
|
+
_v$10 !== _p$.t && _el$151.classList.toggle("skill-command-registered", _p$.t = _v$10);
|
|
11573
|
+
_v$11 !== _p$.a && setAttribute(_el$151, "placeholder", _p$.a = _v$11);
|
|
11574
|
+
_v$12 !== _p$.o && (_el$152.disabled = _p$.o = _v$12);
|
|
11178
11575
|
return _p$;
|
|
11179
11576
|
}, {
|
|
11180
11577
|
e: void 0,
|
|
11181
|
-
t: void 0
|
|
11578
|
+
t: void 0,
|
|
11579
|
+
a: void 0,
|
|
11580
|
+
o: void 0
|
|
11182
11581
|
});
|
|
11183
|
-
createRenderEffect(() => _el$
|
|
11184
|
-
return _el$
|
|
11582
|
+
createRenderEffect(() => _el$151.value = chatInput());
|
|
11583
|
+
return _el$149;
|
|
11185
11584
|
})()];
|
|
11186
11585
|
}
|
|
11187
11586
|
}), null);
|
|
11188
11587
|
createRenderEffect((_p$) => {
|
|
11189
|
-
var _v$
|
|
11190
|
-
_v$
|
|
11191
|
-
_v$
|
|
11192
|
-
_v$
|
|
11193
|
-
_v$
|
|
11194
|
-
_v$
|
|
11195
|
-
_v$
|
|
11196
|
-
_v$
|
|
11197
|
-
_v$
|
|
11198
|
-
_v$
|
|
11199
|
-
_v$
|
|
11200
|
-
_v$
|
|
11201
|
-
_v$
|
|
11202
|
-
_v$
|
|
11203
|
-
_v$
|
|
11204
|
-
_v$
|
|
11205
|
-
_v$
|
|
11206
|
-
_v$
|
|
11588
|
+
var _v$13 = sidebarDetached2() ? "100%" : `${sidebarWidth2()}px`, _v$14 = !!(sidebarTab() === "supervisor"), _v$15 = sidebarTab() === "supervisor", _v$16 = !!(sidebarTab() === "bookmarks"), _v$17 = sidebarTab() === "bookmarks", _v$18 = !!(sidebarTab() === "checkpoints"), _v$19 = sidebarTab() === "checkpoints", _v$20 = !!(sidebarTab() === "chat"), _v$21 = sidebarTab() === "chat", _v$22 = !!(sidebarTab() === "automation"), _v$23 = sidebarTab() === "automation", _v$24 = !!(sidebarTab() === "history"), _v$25 = sidebarTab() === "history", _v$26 = !!(sidebarTab() === "diff"), _v$27 = sidebarTab() === "diff", _v$28 = !!(sidebarTab() === "research"), _v$29 = sidebarTab() === "research";
|
|
11589
|
+
_v$13 !== _p$.e && setStyleProperty(_el$9, "width", _p$.e = _v$13);
|
|
11590
|
+
_v$14 !== _p$.t && _el$15.classList.toggle("active", _p$.t = _v$14);
|
|
11591
|
+
_v$15 !== _p$.a && setAttribute(_el$15, "aria-selected", _p$.a = _v$15);
|
|
11592
|
+
_v$16 !== _p$.o && _el$18.classList.toggle("active", _p$.o = _v$16);
|
|
11593
|
+
_v$17 !== _p$.i && setAttribute(_el$18, "aria-selected", _p$.i = _v$17);
|
|
11594
|
+
_v$18 !== _p$.n && _el$19.classList.toggle("active", _p$.n = _v$18);
|
|
11595
|
+
_v$19 !== _p$.s && setAttribute(_el$19, "aria-selected", _p$.s = _v$19);
|
|
11596
|
+
_v$20 !== _p$.h && _el$20.classList.toggle("active", _p$.h = _v$20);
|
|
11597
|
+
_v$21 !== _p$.r && setAttribute(_el$20, "aria-selected", _p$.r = _v$21);
|
|
11598
|
+
_v$22 !== _p$.d && _el$21.classList.toggle("active", _p$.d = _v$22);
|
|
11599
|
+
_v$23 !== _p$.l && setAttribute(_el$21, "aria-selected", _p$.l = _v$23);
|
|
11600
|
+
_v$24 !== _p$.u && _el$22.classList.toggle("active", _p$.u = _v$24);
|
|
11601
|
+
_v$25 !== _p$.c && setAttribute(_el$22, "aria-selected", _p$.c = _v$25);
|
|
11602
|
+
_v$26 !== _p$.w && _el$23.classList.toggle("active", _p$.w = _v$26);
|
|
11603
|
+
_v$27 !== _p$.m && setAttribute(_el$23, "aria-selected", _p$.m = _v$27);
|
|
11604
|
+
_v$28 !== _p$.f && _el$24.classList.toggle("active", _p$.f = _v$28);
|
|
11605
|
+
_v$29 !== _p$.y && setAttribute(_el$24, "aria-selected", _p$.y = _v$29);
|
|
11207
11606
|
return _p$;
|
|
11208
11607
|
}, {
|
|
11209
11608
|
e: void 0,
|
|
@@ -11228,7 +11627,7 @@ ${contextBlock}` : contextBlock);
|
|
|
11228
11627
|
}
|
|
11229
11628
|
});
|
|
11230
11629
|
};
|
|
11231
|
-
delegateEvents(["click", "pointerdown", "input", "keydown"]);
|
|
11630
|
+
delegateEvents(["click", "pointerdown", "input", "keydown", "mousedown"]);
|
|
11232
11631
|
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>`);
|
|
11233
11632
|
function statusClass(status) {
|
|
11234
11633
|
if (status == null) return "pending";
|