@quanta-intellect/vessel-browser 0.1.13 → 0.1.15
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 +1 -1
- package/out/main/index.js +1630 -498
- package/out/preload/content-script.js +303 -19
- package/out/preload/index.js +32 -1
- package/out/renderer/assets/{index-DiB_DxLD.js → index-DSaws_sH.js} +429 -410
- package/out/renderer/index.html +2 -1
- package/package.json +1 -1
|
@@ -703,10 +703,10 @@ function cleanChildren(parent, current, marker, replacement) {
|
|
|
703
703
|
} else parent.insertBefore(node, marker);
|
|
704
704
|
return [node];
|
|
705
705
|
}
|
|
706
|
-
var _tmpl$$
|
|
706
|
+
var _tmpl$$b = /* @__PURE__ */ template(`<div class=title-bar><div class=title-bar-drag></div><div class=window-controls><button class=window-btn data-tooltip=Minimize><svg width=10 height=10 viewBox="0 0 10 10"><rect x=1 y=5 width=8 height=1 fill=currentColor></rect></svg></button><button class=window-btn data-tooltip=Maximize><svg width=10 height=10 viewBox="0 0 10 10"><rect x=1 y=1 width=8 height=8 fill=none stroke=currentColor stroke-width=1></rect></svg></button><button class="window-btn window-btn-close"data-tooltip=Close><svg width=10 height=10 viewBox="0 0 10 10"><line x1=1 y1=1 x2=9 y2=9 stroke=currentColor stroke-width=1.2></line><line x1=9 y1=1 x2=1 y2=9 stroke=currentColor stroke-width=1.2>`);
|
|
707
707
|
const TitleBar = () => {
|
|
708
708
|
return (() => {
|
|
709
|
-
var _el$ = _tmpl$$
|
|
709
|
+
var _el$ = _tmpl$$b(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$6 = _el$5.nextSibling;
|
|
710
710
|
_el$4.$$click = () => window.vessel.window.minimize();
|
|
711
711
|
_el$5.$$click = () => window.vessel.window.maximize();
|
|
712
712
|
_el$6.$$click = () => window.vessel.window.close();
|
|
@@ -905,7 +905,7 @@ function getAgentPresence(state, currentTime = Date.now()) {
|
|
|
905
905
|
}
|
|
906
906
|
return "idle";
|
|
907
907
|
}
|
|
908
|
-
var _tmpl$$
|
|
908
|
+
var _tmpl$$a = /* @__PURE__ */ template(`<img class=tab-favicon alt>`), _tmpl$2$9 = /* @__PURE__ */ template(`<span class=tab-favicon-fallback>`), _tmpl$3$6 = /* @__PURE__ */ template(`<div class=tab-bar><div class=tab-list><button class=tab-new data-tooltip="New Tab">+`), _tmpl$4$5 = /* @__PURE__ */ template(`<div role=tab><span class=tab-title></span><button class=tab-close>×`), _tmpl$5$3 = /* @__PURE__ */ template(`<span class=tab-agent-indicator aria-hidden=true title="Agent active on this tab">`), _tmpl$6$3 = /* @__PURE__ */ template(`<span class=tab-loading>`);
|
|
909
909
|
function stringToHue(str) {
|
|
910
910
|
let hash = 0;
|
|
911
911
|
for (let i = 0; i < str.length; i++) {
|
|
@@ -931,14 +931,14 @@ const TabFavicon = (props) => {
|
|
|
931
931
|
},
|
|
932
932
|
get fallback() {
|
|
933
933
|
return (() => {
|
|
934
|
-
var _el$2 = _tmpl$2$
|
|
934
|
+
var _el$2 = _tmpl$2$9();
|
|
935
935
|
insert(_el$2, letter);
|
|
936
936
|
createRenderEffect((_$p) => setStyleProperty(_el$2, "--favicon-hue", `${hue()}`));
|
|
937
937
|
return _el$2;
|
|
938
938
|
})();
|
|
939
939
|
},
|
|
940
940
|
get children() {
|
|
941
|
-
var _el$ = _tmpl$$
|
|
941
|
+
var _el$ = _tmpl$$a();
|
|
942
942
|
_el$.addEventListener("error", () => setFailed(true));
|
|
943
943
|
createRenderEffect(() => setAttribute(_el$, "src", props.favicon));
|
|
944
944
|
return _el$;
|
|
@@ -961,13 +961,13 @@ const TabBar = () => {
|
|
|
961
961
|
onCleanup(() => clearInterval(ticker));
|
|
962
962
|
const modelActiveTabIds = createMemo(() => getAgentActiveTabIds(runtimeState2(), now()));
|
|
963
963
|
return (() => {
|
|
964
|
-
var _el$3 = _tmpl$3$
|
|
964
|
+
var _el$3 = _tmpl$3$6(), _el$4 = _el$3.firstChild, _el$5 = _el$4.firstChild;
|
|
965
965
|
insert(_el$4, createComponent(For, {
|
|
966
966
|
get each() {
|
|
967
967
|
return tabs2();
|
|
968
968
|
},
|
|
969
969
|
children: (tab) => (() => {
|
|
970
|
-
var _el$6 = _tmpl$4$
|
|
970
|
+
var _el$6 = _tmpl$4$5(), _el$7 = _el$6.firstChild, _el$8 = _el$7.nextSibling;
|
|
971
971
|
_el$6.addEventListener("auxclick", (e) => {
|
|
972
972
|
if (e.button === 1) closeTab(tab.id);
|
|
973
973
|
});
|
|
@@ -1094,7 +1094,7 @@ function useUI() {
|
|
|
1094
1094
|
}
|
|
1095
1095
|
};
|
|
1096
1096
|
}
|
|
1097
|
-
var _tmpl$$
|
|
1097
|
+
var _tmpl$$9 = /* @__PURE__ */ template(`<span class=nav-btn-badge>`), _tmpl$2$8 = /* @__PURE__ */ template(`<div class=address-bar><div class=nav-controls><button class=nav-btn data-tooltip=Back><svg width=14 height=14 viewBox="0 0 14 14"><path d="M9 2L4 7l5 5"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg></button><button class=nav-btn data-tooltip=Forward><svg width=14 height=14 viewBox="0 0 14 14"><path d="M5 2l5 5-5 5"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg></button><button class=nav-btn data-tooltip=Reload><svg width=14 height=14 viewBox="0 0 14 14"><path d="M2.5 7a4.5 4.5 0 1 1 1 3"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round></path><path d="M2 4v3.5h3.5"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg></button></div><div class=url-shell><form class=url-form><input class=url-input type=text placeholder="Search or enter URL"></form><div><span class=agent-status-dot aria-hidden=true></span><span class=agent-status-text></span></div></div><div class=toolbar-actions><button class=nav-btn data-tooltip="Reader Mode"><svg width=14 height=14 viewBox="0 0 14 14"><rect x=2 y=1 width=10 height=12 rx=1 fill=none stroke=currentColor stroke-width=1.2></rect><line x1=4 y1=4 x2=10 y2=4 stroke=currentColor stroke-width=1></line><line x1=4 y1=6.5 x2=10 y2=6.5 stroke=currentColor stroke-width=1></line><line x1=4 y1=9 x2=8 y2=9 stroke=currentColor stroke-width=1></line></svg></button><button class=nav-btn data-tooltip="Dev Tools"><svg width=14 height=14 viewBox="0 0 14 14"><polyline points="3,5 1,7 3,9"fill=none stroke=currentColor stroke-width=1.2 stroke-linecap=round stroke-linejoin=round></polyline><polyline points="11,5 13,7 11,9"fill=none stroke=currentColor stroke-width=1.2 stroke-linecap=round stroke-linejoin=round></polyline><line x1=8.5 y1=2 x2=5.5 y2=12 stroke=currentColor stroke-width=1.2 stroke-linecap=round></line></svg></button><button class="nav-btn nav-btn-sidebar"><svg width=14 height=14 viewBox="0 0 14 14"><rect x=1 y=1 width=12 height=12 rx=1.5 fill=none stroke=currentColor stroke-width=1.2></rect><line x1=9 y1=1 x2=9 y2=13 stroke=currentColor stroke-width=1.2></line></svg></button><button class=nav-btn data-tooltip=Settings><svg width=14 height=14 viewBox="0 0 14 14"><circle cx=7 cy=7 r=2 fill=none stroke=currentColor stroke-width=1.2></circle><path d="M7 1v2M7 11v2M1 7h2M11 7h2M2.8 2.8l1.4 1.4M9.8 9.8l1.4 1.4M11.2 2.8l-1.4 1.4M4.2 9.8l-1.4 1.4"stroke=currentColor stroke-width=1 stroke-linecap=round>`);
|
|
1098
1098
|
const AddressBar = () => {
|
|
1099
1099
|
const {
|
|
1100
1100
|
activeTab,
|
|
@@ -1135,7 +1135,7 @@ const AddressBar = () => {
|
|
|
1135
1135
|
}
|
|
1136
1136
|
};
|
|
1137
1137
|
return (() => {
|
|
1138
|
-
var _el$ = _tmpl$2$
|
|
1138
|
+
var _el$ = _tmpl$2$8(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.nextSibling, _el$6 = _el$2.nextSibling, _el$7 = _el$6.firstChild, _el$8 = _el$7.firstChild, _el$9 = _el$7.nextSibling, _el$0 = _el$9.firstChild, _el$1 = _el$0.nextSibling, _el$10 = _el$6.nextSibling, _el$11 = _el$10.firstChild, _el$12 = _el$11.nextSibling, _el$13 = _el$12.nextSibling;
|
|
1139
1139
|
_el$13.firstChild;
|
|
1140
1140
|
var _el$16 = _el$13.nextSibling;
|
|
1141
1141
|
addEventListener(_el$3, "click", goBack);
|
|
@@ -1156,7 +1156,7 @@ const AddressBar = () => {
|
|
|
1156
1156
|
return pendingApprovalCount() > 0;
|
|
1157
1157
|
},
|
|
1158
1158
|
get children() {
|
|
1159
|
-
var _el$15 = _tmpl$$
|
|
1159
|
+
var _el$15 = _tmpl$$9();
|
|
1160
1160
|
insert(_el$15, pendingApprovalCount);
|
|
1161
1161
|
createRenderEffect(() => setAttribute(_el$15, "aria-label", `${pendingApprovalCount()} pending`));
|
|
1162
1162
|
return _el$15;
|
|
@@ -1189,7 +1189,7 @@ const AddressBar = () => {
|
|
|
1189
1189
|
})();
|
|
1190
1190
|
};
|
|
1191
1191
|
delegateEvents(["click", "input"]);
|
|
1192
|
-
var _tmpl$$
|
|
1192
|
+
var _tmpl$$8 = /* @__PURE__ */ template(`<div class=bookmark-toast-stack aria-live=polite aria-atomic=true>`), _tmpl$2$7 = /* @__PURE__ */ template(`<div class=bookmark-toast role=status><div class=bookmark-toast-title></div><div class=bookmark-toast-message>`);
|
|
1193
1193
|
const TOAST_DURATION_MS$1 = 4200;
|
|
1194
1194
|
const TOAST_EXIT_MS$1 = 300;
|
|
1195
1195
|
function isBookmarkToastCandidate(action) {
|
|
@@ -1249,13 +1249,13 @@ const BookmarkNotifications = () => {
|
|
|
1249
1249
|
timeoutIds.clear();
|
|
1250
1250
|
});
|
|
1251
1251
|
return (() => {
|
|
1252
|
-
var _el$ = _tmpl$$
|
|
1252
|
+
var _el$ = _tmpl$$8();
|
|
1253
1253
|
insert(_el$, createComponent(For, {
|
|
1254
1254
|
get each() {
|
|
1255
1255
|
return toasts();
|
|
1256
1256
|
},
|
|
1257
1257
|
children: (toast) => (() => {
|
|
1258
|
-
var _el$2 = _tmpl$2$
|
|
1258
|
+
var _el$2 = _tmpl$2$7(), _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling;
|
|
1259
1259
|
insert(_el$3, () => toast.title);
|
|
1260
1260
|
insert(_el$4, () => toast.message);
|
|
1261
1261
|
createRenderEffect(() => _el$2.classList.toggle("bookmark-toast-leaving", !!toast.leaving));
|
|
@@ -1265,7 +1265,7 @@ const BookmarkNotifications = () => {
|
|
|
1265
1265
|
return _el$;
|
|
1266
1266
|
})();
|
|
1267
1267
|
};
|
|
1268
|
-
var _tmpl$$
|
|
1268
|
+
var _tmpl$$7 = /* @__PURE__ */ template(`<div class=bookmark-toast-stack aria-live=polite><div class="bookmark-toast highlight-toast"role=status><div class=bookmark-toast-title></div><div class=bookmark-toast-message>`);
|
|
1269
1269
|
const TOAST_DURATION_MS = 3e3;
|
|
1270
1270
|
const TOAST_EXIT_MS = 300;
|
|
1271
1271
|
const HighlightNotifications = (props) => {
|
|
@@ -1304,7 +1304,7 @@ const HighlightNotifications = (props) => {
|
|
|
1304
1304
|
return memo(() => !!visible())() && current();
|
|
1305
1305
|
},
|
|
1306
1306
|
get children() {
|
|
1307
|
-
var _el$ = _tmpl$$
|
|
1307
|
+
var _el$ = _tmpl$$7(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling;
|
|
1308
1308
|
insert(_el$3, () => current().title);
|
|
1309
1309
|
insert(_el$4, () => current().message);
|
|
1310
1310
|
createRenderEffect(() => _el$2.classList.toggle("bookmark-toast-leaving", !!leaving()));
|
|
@@ -1330,7 +1330,7 @@ function useScrollFade(el) {
|
|
|
1330
1330
|
observer.disconnect();
|
|
1331
1331
|
});
|
|
1332
1332
|
}
|
|
1333
|
-
var _tmpl$$
|
|
1333
|
+
var _tmpl$$6 = /* @__PURE__ */ template(`<span class=agent-transcript-live><span class=agent-transcript-live-dot aria-hidden=true></span>Live`), _tmpl$2$6 = /* @__PURE__ */ template(`<div class=agent-transcript-list>`), _tmpl$3$5 = /* @__PURE__ */ template(`<aside class=agent-transcript-dock><div class=agent-transcript-header><div class=agent-transcript-title-row><span class=agent-transcript-title>Agent Transcript</span></div><div class=agent-transcript-actions><button class=agent-transcript-icon></button><button class=agent-transcript-icon data-tooltip=Hide>×`), _tmpl$4$4 = /* @__PURE__ */ template(`<article><div class=agent-transcript-meta><span class=agent-transcript-badge></span><span class=agent-transcript-time></span></div><div class=agent-transcript-text>`);
|
|
1334
1334
|
const AgentTranscriptDock = () => {
|
|
1335
1335
|
const {
|
|
1336
1336
|
runtimeState: runtimeState2
|
|
@@ -1365,7 +1365,7 @@ const AgentTranscriptDock = () => {
|
|
|
1365
1365
|
return memo(() => mode() === "full")() && visibleEntries().length > 0;
|
|
1366
1366
|
},
|
|
1367
1367
|
get children() {
|
|
1368
|
-
var _el$ = _tmpl$3$
|
|
1368
|
+
var _el$ = _tmpl$3$5(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild;
|
|
1369
1369
|
_el$3.firstChild;
|
|
1370
1370
|
var _el$6 = _el$3.nextSibling, _el$7 = _el$6.firstChild, _el$8 = _el$7.nextSibling;
|
|
1371
1371
|
insert(_el$3, createComponent(Show, {
|
|
@@ -1373,7 +1373,7 @@ const AgentTranscriptDock = () => {
|
|
|
1373
1373
|
return hasStreamingEntry();
|
|
1374
1374
|
},
|
|
1375
1375
|
get children() {
|
|
1376
|
-
return _tmpl$$
|
|
1376
|
+
return _tmpl$$6();
|
|
1377
1377
|
}
|
|
1378
1378
|
}), null);
|
|
1379
1379
|
_el$7.$$click = () => setCollapsed((value) => !value);
|
|
@@ -1384,14 +1384,14 @@ const AgentTranscriptDock = () => {
|
|
|
1384
1384
|
return !collapsed();
|
|
1385
1385
|
},
|
|
1386
1386
|
get children() {
|
|
1387
|
-
var _el$9 = _tmpl$2$
|
|
1387
|
+
var _el$9 = _tmpl$2$6();
|
|
1388
1388
|
use((el) => useScrollFade(el), _el$9);
|
|
1389
1389
|
insert(_el$9, createComponent(For, {
|
|
1390
1390
|
get each() {
|
|
1391
1391
|
return visibleEntries();
|
|
1392
1392
|
},
|
|
1393
1393
|
children: (entry) => (() => {
|
|
1394
|
-
var _el$0 = _tmpl$4$
|
|
1394
|
+
var _el$0 = _tmpl$4$4(), _el$1 = _el$0.firstChild, _el$10 = _el$1.firstChild, _el$11 = _el$10.nextSibling, _el$12 = _el$1.nextSibling;
|
|
1395
1395
|
insert(_el$10, () => entry.title || entry.kind);
|
|
1396
1396
|
insert(_el$11, () => formatTime2(entry.updatedAt));
|
|
1397
1397
|
insert(_el$12, () => entry.text);
|
|
@@ -1425,6 +1425,7 @@ const AgentTranscriptDock = () => {
|
|
|
1425
1425
|
};
|
|
1426
1426
|
delegateEvents(["click"]);
|
|
1427
1427
|
const MAX_RECENT_QUERIES = 5;
|
|
1428
|
+
const MAX_MESSAGE_HISTORY = 200;
|
|
1428
1429
|
const [messages, setMessages] = createSignal([]);
|
|
1429
1430
|
const [streamingText, setStreamingText] = createSignal("");
|
|
1430
1431
|
const [isStreaming, setIsStreaming] = createSignal(false);
|
|
@@ -1436,7 +1437,10 @@ function init$1() {
|
|
|
1436
1437
|
if (initialized$1) return;
|
|
1437
1438
|
initialized$1 = true;
|
|
1438
1439
|
window.vessel.ai.onStreamStart((prompt) => {
|
|
1439
|
-
setMessages((prev) =>
|
|
1440
|
+
setMessages((prev) => {
|
|
1441
|
+
const next = [...prev, { role: "user", content: prompt }];
|
|
1442
|
+
return next.length > MAX_MESSAGE_HISTORY ? next.slice(-MAX_MESSAGE_HISTORY) : next;
|
|
1443
|
+
});
|
|
1440
1444
|
setStreamingText("");
|
|
1441
1445
|
setIsStreaming(true);
|
|
1442
1446
|
setHasFirstChunk(false);
|
|
@@ -1451,10 +1455,10 @@ function init$1() {
|
|
|
1451
1455
|
window.vessel.ai.onStreamEnd(() => {
|
|
1452
1456
|
const finalText = streamingText();
|
|
1453
1457
|
if (finalText) {
|
|
1454
|
-
setMessages((prev) =>
|
|
1455
|
-
...prev,
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
+
setMessages((prev) => {
|
|
1459
|
+
const next = [...prev, { role: "assistant", content: finalText }];
|
|
1460
|
+
return next.length > MAX_MESSAGE_HISTORY ? next.slice(-MAX_MESSAGE_HISTORY) : next;
|
|
1461
|
+
});
|
|
1458
1462
|
}
|
|
1459
1463
|
setStreamingText("");
|
|
1460
1464
|
setIsStreaming(false);
|
|
@@ -1482,7 +1486,7 @@ function useAI() {
|
|
|
1482
1486
|
clearHistory: () => setMessages([])
|
|
1483
1487
|
};
|
|
1484
1488
|
}
|
|
1485
|
-
var _tmpl$$
|
|
1489
|
+
var _tmpl$$5 = /* @__PURE__ */ template(`<div class=command-bar-recent><span class=command-bar-recent-label>Recent</span><div class=command-bar-recent-list>`), _tmpl$2$5 = /* @__PURE__ */ template(`<div class=command-bar-overlay><div class=command-bar><form><div class=command-bar-icon><svg width=16 height=16 viewBox="0 0 16 16"><circle cx=8 cy=8 r=6 fill=none stroke=var(--accent-primary) stroke-width=1.5></circle><circle cx=6 cy=7 r=0.8 fill=var(--accent-primary)></circle><circle cx=10 cy=7 r=0.8 fill=var(--accent-primary)></circle><path d="M6 10c0.5 0.8 3.5 0.8 4 0"fill=none stroke=var(--accent-primary) stroke-width=0.8 stroke-linecap=round></path></svg></div><input class=command-bar-input type=text placeholder="Ask about this page, summarize, or search..."></form><div class=command-bar-hints><span><kbd>Enter</kbd> to ask</span><span><kbd>Esc</kbd> to close</span><span>Try "summarize" or ask a question`), _tmpl$3$4 = /* @__PURE__ */ template(`<button class=command-bar-recent-item type=button>`);
|
|
1486
1490
|
const CommandBar = () => {
|
|
1487
1491
|
const {
|
|
1488
1492
|
commandBarOpen: commandBarOpen2,
|
|
@@ -1527,7 +1531,7 @@ const CommandBar = () => {
|
|
|
1527
1531
|
return commandBarOpen2();
|
|
1528
1532
|
},
|
|
1529
1533
|
get children() {
|
|
1530
|
-
var _el$ = _tmpl$2$
|
|
1534
|
+
var _el$ = _tmpl$2$5(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$9 = _el$3.nextSibling;
|
|
1531
1535
|
addEventListener(_el$, "click", closeCommandBar);
|
|
1532
1536
|
_el$2.$$click = (e) => e.stopPropagation();
|
|
1533
1537
|
_el$3.addEventListener("submit", handleSubmit);
|
|
@@ -1540,13 +1544,13 @@ const CommandBar = () => {
|
|
|
1540
1544
|
return memo(() => recentQueries2().length > 0)() && !input().trim();
|
|
1541
1545
|
},
|
|
1542
1546
|
get children() {
|
|
1543
|
-
var _el$6 = _tmpl$$
|
|
1547
|
+
var _el$6 = _tmpl$$5(), _el$7 = _el$6.firstChild, _el$8 = _el$7.nextSibling;
|
|
1544
1548
|
insert(_el$8, createComponent(For, {
|
|
1545
1549
|
get each() {
|
|
1546
1550
|
return recentQueries2();
|
|
1547
1551
|
},
|
|
1548
1552
|
children: (q) => (() => {
|
|
1549
|
-
var _el$0 = _tmpl$3$
|
|
1553
|
+
var _el$0 = _tmpl$3$4();
|
|
1550
1554
|
_el$0.$$click = () => void handleRecentClick(q);
|
|
1551
1555
|
insert(_el$0, q);
|
|
1552
1556
|
return _el$0;
|
|
@@ -2805,15 +2809,15 @@ function isTableBlock(text2) {
|
|
|
2805
2809
|
const lines = text2.split("\n").filter((l) => l.trim());
|
|
2806
2810
|
if (lines.length < 2) return false;
|
|
2807
2811
|
const hasPipes = lines.every((l) => l.trim().includes("|"));
|
|
2808
|
-
const hasSeparator = lines.some(
|
|
2812
|
+
const hasSeparator = lines.some(
|
|
2813
|
+
(l) => /^\|?\s*[-:]+[-|\s:]*$/.test(l.trim())
|
|
2814
|
+
);
|
|
2809
2815
|
return hasPipes && hasSeparator;
|
|
2810
2816
|
}
|
|
2811
2817
|
function renderTable(block) {
|
|
2812
2818
|
const lines = block.split("\n").map((l) => l.trim()).filter(Boolean);
|
|
2813
2819
|
const parseRow = (line) => line.replace(/^\|/, "").replace(/\|$/, "").split("|").map((cell) => cell.trim());
|
|
2814
|
-
const sepIndex = lines.findIndex(
|
|
2815
|
-
(l) => /^\|?\s*[-:]+[-|\s:]*$/.test(l)
|
|
2816
|
-
);
|
|
2820
|
+
const sepIndex = lines.findIndex((l) => /^\|?\s*[-:]+[-|\s:]*$/.test(l));
|
|
2817
2821
|
const headerRows = sepIndex > 0 ? lines.slice(0, sepIndex) : [lines[0]];
|
|
2818
2822
|
const bodyRows = lines.slice(sepIndex + 1);
|
|
2819
2823
|
const sepCells = sepIndex >= 0 ? parseRow(lines[sepIndex]) : [];
|
|
@@ -2828,10 +2832,14 @@ function renderTable(block) {
|
|
|
2828
2832
|
return align && align !== "left" ? ` style="text-align:${align}"` : "";
|
|
2829
2833
|
};
|
|
2830
2834
|
const thead = headerRows.map(
|
|
2831
|
-
(row) => `<tr>${parseRow(row).map(
|
|
2835
|
+
(row) => `<tr>${parseRow(row).map(
|
|
2836
|
+
(cell, i) => `<th${alignAttr(i)}>${applyInlineMarkdown(cell)}</th>`
|
|
2837
|
+
).join("")}</tr>`
|
|
2832
2838
|
).join("");
|
|
2833
2839
|
const tbody = bodyRows.map(
|
|
2834
|
-
(row) => `<tr>${parseRow(row).map(
|
|
2840
|
+
(row) => `<tr>${parseRow(row).map(
|
|
2841
|
+
(cell, i) => `<td${alignAttr(i)}>${applyInlineMarkdown(cell)}</td>`
|
|
2842
|
+
).join("")}</tr>`
|
|
2835
2843
|
).join("");
|
|
2836
2844
|
return `<table><thead>${thead}</thead><tbody>${tbody}</tbody></table>`;
|
|
2837
2845
|
}
|
|
@@ -2877,9 +2885,11 @@ function renderBlock(block) {
|
|
|
2877
2885
|
const tableBlock = tableEndIdx > 0 ? tableLines.slice(0, tableEndIdx).join("\n") : tableLines.join("\n");
|
|
2878
2886
|
const afterTable = tableEndIdx > 0 ? tableLines.slice(tableEndIdx).join("\n").trim() : "";
|
|
2879
2887
|
let result = "";
|
|
2880
|
-
if (beforeTable)
|
|
2888
|
+
if (beforeTable)
|
|
2889
|
+
result += `<p>${applyInlineMarkdown(beforeTable).replace(/\n/g, "<br>")}</p>`;
|
|
2881
2890
|
result += renderTable(tableBlock);
|
|
2882
|
-
if (afterTable)
|
|
2891
|
+
if (afterTable)
|
|
2892
|
+
result += `<p>${applyInlineMarkdown(afterTable).replace(/\n/g, "<br>")}</p>`;
|
|
2883
2893
|
return result;
|
|
2884
2894
|
}
|
|
2885
2895
|
if (trimmed.split("\n").every((line) => /^[-*+]\s+/.test(line))) {
|
|
@@ -2916,6 +2926,7 @@ const TOOL_ICONS = {
|
|
|
2916
2926
|
flow_status: "◈",
|
|
2917
2927
|
flow_end: "■",
|
|
2918
2928
|
dismiss_popup: "✕",
|
|
2929
|
+
clear_overlays: "✕",
|
|
2919
2930
|
wait_for: "◴",
|
|
2920
2931
|
create_tab: "+",
|
|
2921
2932
|
switch_tab: "⇥",
|
|
@@ -3059,21 +3070,7 @@ function getBookmarkSearchMatch(args) {
|
|
|
3059
3070
|
}
|
|
3060
3071
|
return { matchedFields, score };
|
|
3061
3072
|
}
|
|
3062
|
-
|
|
3063
|
-
var _tmpl$$3 = /* @__PURE__ */ template(`<div class="message-content markdown-content">`), _tmpl$2$3 = /* @__PURE__ */ template(`<div class=dropdown-select-menu role=listbox>`), _tmpl$3$2 = /* @__PURE__ */ template(`<div><button class=dropdown-select-trigger type=button aria-haspopup=listbox><span class=dropdown-select-value></span><span class=dropdown-select-caret aria-hidden=true>▾`), _tmpl$4$2 = /* @__PURE__ */ template(`<span class=dropdown-select-option-description>`), _tmpl$5$2 = /* @__PURE__ */ template(`<button class=dropdown-select-option type=button role=option><span class=dropdown-select-option-copy><span class=dropdown-select-option-label>`), _tmpl$6$2 = /* @__PURE__ */ template(`<span class=sidebar-tab-badge>`), _tmpl$7$2 = /* @__PURE__ */ template(`<div class=agent-section-title>Pending approvals`), _tmpl$8$2 = /* @__PURE__ */ template(`<button class=agent-section-toggle type=button>`), _tmpl$9$2 = /* @__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$0$2 = /* @__PURE__ */ template(`<span class=bookmark-status-pill>Saved`), _tmpl$1$2 = /* @__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>`), _tmpl$10$2 = /* @__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-save-shell><button class=bookmark-save-toggle type=button><span class=bookmark-save-toggle-copy><span class=bookmark-save-toggle-title>Save Current Page</span><span class=bookmark-save-toggle-subtitle>Manual bookmark save options</span></span><span class=bookmark-save-toggle-caret aria-hidden=true>▾</span></button></div><form class=bookmark-folder-create><div class=bookmark-folder-form-fields><input class=bookmark-input placeholder="Create a folder"><input class=bookmark-input placeholder="Optional one-line summary"></div><button class=bookmark-secondary-button type=submit>New folder</button></form><div class=bookmark-folder-list>`), _tmpl$11$2 = /* @__PURE__ */ template(`<div class=checkpoint-timeline>`), _tmpl$12$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"><button class=agent-primary-button type=button>Save checkpoint</button></div><div class=agent-section-title>Recent checkpoints`), _tmpl$13$1 = /* @__PURE__ */ template(`<span>`), _tmpl$14$1 = /* @__PURE__ */ template(`<div><div class=streaming-status><span class=streaming-pulse aria-hidden=true></span><span>Generating`), _tmpl$15 = /* @__PURE__ */ template(`<div class="message message-assistant"><div class=message-content>`), _tmpl$16 = /* @__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$17 = /* @__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$18 = /* @__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$19 = /* @__PURE__ */ template(`<div class=chat-actions>`), _tmpl$20 = /* @__PURE__ */ template(`<div class=highlight-nav><button class=highlight-nav-btn type=button title="Previous highlight"><svg width=12 height=12 viewBox="0 0 12 12"fill=none aria-hidden=true><path d="M8 10L4 6l4-4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg></button><button class=highlight-nav-label type=button title="Go to current highlight"><svg width=12 height=12 viewBox="0 0 12 12"fill=none aria-hidden=true><circle cx=6 cy=6 r=3 fill="rgba(196, 160, 90, 0.6)"stroke="rgba(196, 160, 90, 0.9)"stroke-width=1></circle></svg></button><button class=highlight-nav-btn type=button title="Next highlight"><svg width=12 height=12 viewBox="0 0 12 12"fill=none aria-hidden=true><path d="M4 2l4 4-4 4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round>`), _tmpl$21 = /* @__PURE__ */ template(`<div class=sidebar-input-area><textarea class=sidebar-input rows=2 placeholder="Ask anything..."></textarea><button class=sidebar-send>Send`), _tmpl$22 = /* @__PURE__ */ template(`<div class=sidebar><div class=sidebar-resize-handle></div><div class=sidebar-header><div class=sidebar-brand><img class=sidebar-logo alt=Vessel><span class=sidebar-brand-text>Vessel Browser</span></div><div class=sidebar-header-actions><button class=sidebar-clear title="Clear chat">Clear</button><button class=sidebar-close title="Close AI chat (Esc)"aria-label="Close AI chat"><svg width=14 height=14 viewBox="0 0 14 14"aria-hidden=true><path d="M3.5 3.5l7 7M10.5 3.5l-7 7"fill=none stroke=currentColor stroke-width=1.4 stroke-linecap=round></path></svg></button></div></div><div class=sidebar-tabs role=tablist><button class=sidebar-tab role=tab>Supervisor</button><button class=sidebar-tab role=tab>Bookmarks</button><button class=sidebar-tab role=tab>Checkpoints</button><button class=sidebar-tab role=tab>Chat</button></div><div class=sidebar-messages><div>`), _tmpl$23 = /* @__PURE__ */ template(`<div class=agent-muted>No pending approvals.`), _tmpl$24 = /* @__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$25 = /* @__PURE__ */ template(`<div class=agent-muted>No actions yet.`), _tmpl$26 = /* @__PURE__ */ template(`<div class=agent-muted>Recent actions are collapsed to reduce noise.`), _tmpl$27 = /* @__PURE__ */ template(`<div class="agent-card-copy success">`), _tmpl$28 = /* @__PURE__ */ template(`<div class="agent-card-copy error">`), _tmpl$29 = /* @__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$30 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>`), _tmpl$31 = /* @__PURE__ */ template(`<div class=bookmark-folder-summary>`), _tmpl$32 = /* @__PURE__ */ template(`<div class=bookmark-folder-actions><button class=bookmark-ghost-button type=button>Rename</button><button class="bookmark-ghost-button danger"type=button>Delete`), _tmpl$33 = /* @__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$34 = /* @__PURE__ */ template(`<div class=bookmark-items>`), _tmpl$35 = /* @__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$36 = /* @__PURE__ */ template(`<div class=bookmark-folder-collapsed-hint>Click to view saved links.`), _tmpl$37 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>No bookmarks in this folder yet.`), _tmpl$38 = /* @__PURE__ */ template(`<div class=bookmark-item-note>`), _tmpl$39 = /* @__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 danger"type=button>Remove`), _tmpl$40 = /* @__PURE__ */ template(`<div class=agent-muted>No checkpoints yet.`), _tmpl$41 = /* @__PURE__ */ template(`<span class=checkpoint-timeline-line>`), _tmpl$42 = /* @__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><button class=agent-control-button type=button>Restore`), _tmpl$43 = /* @__PURE__ */ template(`<div>`), _tmpl$44 = /* @__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$45 = /* @__PURE__ */ template(`<div class=chat-approval-detail>`), _tmpl$46 = /* @__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`);
|
|
3064
|
-
const UNSORTED_FOLDER = {
|
|
3065
|
-
id: "unsorted",
|
|
3066
|
-
name: "Unsorted",
|
|
3067
|
-
createdAt: ""
|
|
3068
|
-
};
|
|
3069
|
-
const MarkdownMessage = (props) => {
|
|
3070
|
-
const html2 = createMemo(() => renderMarkdown(props.content));
|
|
3071
|
-
return (() => {
|
|
3072
|
-
var _el$ = _tmpl$$3();
|
|
3073
|
-
createRenderEffect(() => _el$.innerHTML = html2());
|
|
3074
|
-
return _el$;
|
|
3075
|
-
})();
|
|
3076
|
-
};
|
|
3073
|
+
var _tmpl$$4 = /* @__PURE__ */ template(`<div class=dropdown-select-menu role=listbox>`), _tmpl$2$4 = /* @__PURE__ */ template(`<div><button class=dropdown-select-trigger type=button aria-haspopup=listbox><span class=dropdown-select-value></span><span class=dropdown-select-caret aria-hidden=true>▾`), _tmpl$3$3 = /* @__PURE__ */ template(`<span class=dropdown-select-option-description>`), _tmpl$4$3 = /* @__PURE__ */ template(`<button class=dropdown-select-option type=button role=option><span class=dropdown-select-option-copy><span class=dropdown-select-option-label>`);
|
|
3077
3074
|
const DropdownSelect = (props) => {
|
|
3078
3075
|
const [open, setOpen] = createSignal(false);
|
|
3079
3076
|
let rootRef;
|
|
@@ -3097,59 +3094,59 @@ const DropdownSelect = (props) => {
|
|
|
3097
3094
|
});
|
|
3098
3095
|
});
|
|
3099
3096
|
return (() => {
|
|
3100
|
-
var _el$
|
|
3097
|
+
var _el$ = _tmpl$2$4(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling;
|
|
3101
3098
|
var _ref$ = rootRef;
|
|
3102
|
-
typeof _ref$ === "function" ? use(_ref$, _el$
|
|
3103
|
-
_el$
|
|
3104
|
-
insert(_el$
|
|
3105
|
-
insert(_el
|
|
3099
|
+
typeof _ref$ === "function" ? use(_ref$, _el$) : rootRef = _el$;
|
|
3100
|
+
_el$2.$$click = () => setOpen((current) => !current);
|
|
3101
|
+
insert(_el$3, selectedLabel);
|
|
3102
|
+
insert(_el$, createComponent(Show, {
|
|
3106
3103
|
get when() {
|
|
3107
3104
|
return open();
|
|
3108
3105
|
},
|
|
3109
3106
|
get children() {
|
|
3110
|
-
var _el$
|
|
3111
|
-
insert(_el$
|
|
3107
|
+
var _el$5 = _tmpl$$4();
|
|
3108
|
+
insert(_el$5, createComponent(For, {
|
|
3112
3109
|
get each() {
|
|
3113
3110
|
return props.options;
|
|
3114
3111
|
},
|
|
3115
3112
|
children: (option) => (() => {
|
|
3116
|
-
var _el$
|
|
3117
|
-
_el$
|
|
3113
|
+
var _el$6 = _tmpl$4$3(), _el$7 = _el$6.firstChild, _el$8 = _el$7.firstChild;
|
|
3114
|
+
_el$6.$$click = () => {
|
|
3118
3115
|
props.onChange(option.value);
|
|
3119
3116
|
setOpen(false);
|
|
3120
3117
|
};
|
|
3121
|
-
insert(_el$
|
|
3122
|
-
insert(_el$
|
|
3118
|
+
insert(_el$8, () => option.label);
|
|
3119
|
+
insert(_el$7, createComponent(Show, {
|
|
3123
3120
|
get when() {
|
|
3124
3121
|
return option.description;
|
|
3125
3122
|
},
|
|
3126
3123
|
get children() {
|
|
3127
|
-
var _el$
|
|
3128
|
-
insert(_el$
|
|
3129
|
-
return _el$
|
|
3124
|
+
var _el$9 = _tmpl$3$3();
|
|
3125
|
+
insert(_el$9, () => option.description);
|
|
3126
|
+
return _el$9;
|
|
3130
3127
|
}
|
|
3131
3128
|
}), null);
|
|
3132
3129
|
createRenderEffect((_p$) => {
|
|
3133
3130
|
var _v$5 = !!(option.value === props.value), _v$6 = option.value === props.value;
|
|
3134
|
-
_v$5 !== _p$.e && _el$
|
|
3135
|
-
_v$6 !== _p$.t && setAttribute(_el$
|
|
3131
|
+
_v$5 !== _p$.e && _el$6.classList.toggle("selected", _p$.e = _v$5);
|
|
3132
|
+
_v$6 !== _p$.t && setAttribute(_el$6, "aria-selected", _p$.t = _v$6);
|
|
3136
3133
|
return _p$;
|
|
3137
3134
|
}, {
|
|
3138
3135
|
e: void 0,
|
|
3139
3136
|
t: void 0
|
|
3140
3137
|
});
|
|
3141
|
-
return _el$
|
|
3138
|
+
return _el$6;
|
|
3142
3139
|
})()
|
|
3143
3140
|
}));
|
|
3144
|
-
return _el$
|
|
3141
|
+
return _el$5;
|
|
3145
3142
|
}
|
|
3146
3143
|
}), null);
|
|
3147
3144
|
createRenderEffect((_p$) => {
|
|
3148
3145
|
var _v$ = `dropdown-select ${props.class || ""}`, _v$2 = open(), _v$3 = props.ariaLabel, _v$4 = !!open();
|
|
3149
|
-
_v$ !== _p$.e && className(_el
|
|
3150
|
-
_v$2 !== _p$.t && setAttribute(_el$
|
|
3151
|
-
_v$3 !== _p$.a && setAttribute(_el$
|
|
3152
|
-
_v$4 !== _p$.o && _el$
|
|
3146
|
+
_v$ !== _p$.e && className(_el$, _p$.e = _v$);
|
|
3147
|
+
_v$2 !== _p$.t && setAttribute(_el$2, "aria-expanded", _p$.t = _v$2);
|
|
3148
|
+
_v$3 !== _p$.a && setAttribute(_el$2, "aria-label", _p$.a = _v$3);
|
|
3149
|
+
_v$4 !== _p$.o && _el$4.classList.toggle("open", _p$.o = _v$4);
|
|
3153
3150
|
return _p$;
|
|
3154
3151
|
}, {
|
|
3155
3152
|
e: void 0,
|
|
@@ -3157,7 +3154,23 @@ const DropdownSelect = (props) => {
|
|
|
3157
3154
|
a: void 0,
|
|
3158
3155
|
o: void 0
|
|
3159
3156
|
});
|
|
3160
|
-
return _el
|
|
3157
|
+
return _el$;
|
|
3158
|
+
})();
|
|
3159
|
+
};
|
|
3160
|
+
delegateEvents(["click"]);
|
|
3161
|
+
const vesselLogo = "" + new URL("vessel-logo-transparent-IT25qr-Z.png", import.meta.url).href;
|
|
3162
|
+
var _tmpl$$3 = /* @__PURE__ */ template(`<div class="message-content markdown-content">`), _tmpl$2$3 = /* @__PURE__ */ template(`<span class=sidebar-tab-badge>`), _tmpl$3$2 = /* @__PURE__ */ template(`<div class=agent-section-title>Pending approvals`), _tmpl$4$2 = /* @__PURE__ */ template(`<button class=agent-section-toggle type=button>`), _tmpl$5$2 = /* @__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$6$2 = /* @__PURE__ */ template(`<span class=bookmark-status-pill>Saved`), _tmpl$7$2 = /* @__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>`), _tmpl$8$2 = /* @__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-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$9$2 = /* @__PURE__ */ template(`<div class=checkpoint-timeline>`), _tmpl$0$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"><button class=agent-primary-button type=button>Save checkpoint</button></div><div class=agent-section-title>Recent checkpoints`), _tmpl$1$2 = /* @__PURE__ */ template(`<span>`), _tmpl$10$2 = /* @__PURE__ */ template(`<div><div class=streaming-status><span class=streaming-pulse aria-hidden=true></span><span>Generating`), _tmpl$11$2 = /* @__PURE__ */ template(`<div class="message message-assistant"><div class=message-content>`), _tmpl$12$2 = /* @__PURE__ */ template(`<div class=sidebar-empty><svg class=sidebar-empty-icon width=48 height=48 viewBox="0 0 48 48"aria-hidden=true><line x1=8 y1=8 x2=24 y2=5 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=24 y1=5 x2=40 y2=10 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=8 y1=8 x2=6 y2=24 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=40 y1=10 x2=44 y2=26 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=6 y1=24 x2=10 y2=38 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=44 y1=26 x2=38 y2=40 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=10 y1=38 x2=24 y2=44 stroke=var(--border-visible) stroke-width=1 opacity=0.35></line><line x1=38 y1=40 x2=24 y2=44 stroke=var(--border-visible) stroke-width=1 opacity=0.35></line><line x1=8 y1=8 x2=20 y2=18 stroke=var(--border-visible) stroke-width=1 opacity=0.5></line><line x1=24 y1=5 x2=20 y2=18 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=40 y1=10 x2=32 y2=20 stroke=var(--border-visible) stroke-width=1 opacity=0.5></line><line x1=20 y1=18 x2=32 y2=20 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.3></line><line x1=6 y1=24 x2=18 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=20 y1=18 x2=18 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=32 y1=20 x2=36 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=44 y1=26 x2=36 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=18 y1=30 x2=36 y2=30 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.25></line><line x1=18 y1=30 x2=10 y2=38 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=36 y1=30 x2=38 y2=40 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=18 y1=30 x2=24 y2=44 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.2></line><line x1=36 y1=30 x2=24 y2=44 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.2></line><circle cx=8 cy=8 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.55></circle><circle cx=24 cy=5 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.45></circle><circle cx=40 cy=10 r=3 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.7></circle><circle cx=6 cy=24 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=44 cy=26 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.55></circle><circle cx=10 cy=38 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=38 cy=40 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.45></circle><circle cx=24 cy=44 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=20 cy=18 r=3.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.85></circle><circle cx=32 cy=20 r=4 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.9></circle><circle cx=18 cy=30 r=3 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.75></circle><circle cx=36 cy=30 r=3.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.8></circle></svg><p class=sidebar-empty-title>Your move.</p><p class=sidebar-empty-hint>Configure a provider in Settings (Ctrl+,) then ask anything about the current page or beyond.`), _tmpl$13$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$14$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$15 = /* @__PURE__ */ template(`<div class=chat-actions>`), _tmpl$16 = /* @__PURE__ */ template(`<div class=highlight-nav><button class=highlight-nav-btn type=button title="Previous highlight"><svg width=12 height=12 viewBox="0 0 12 12"fill=none aria-hidden=true><path d="M8 10L4 6l4-4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg></button><button class=highlight-nav-label type=button title="Go to current highlight"><svg width=12 height=12 viewBox="0 0 12 12"fill=none aria-hidden=true><circle cx=6 cy=6 r=3 fill="rgba(196, 160, 90, 0.6)"stroke="rgba(196, 160, 90, 0.9)"stroke-width=1></circle></svg></button><button class=highlight-nav-btn type=button title="Next highlight"><svg width=12 height=12 viewBox="0 0 12 12"fill=none aria-hidden=true><path d="M4 2l4 4-4 4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round>`), _tmpl$17 = /* @__PURE__ */ template(`<div class=sidebar-input-area><textarea class=sidebar-input rows=2 placeholder="Ask anything..."></textarea><button class=sidebar-send>Send`), _tmpl$18 = /* @__PURE__ */ template(`<div class=sidebar><div class=sidebar-resize-handle></div><div class=sidebar-header><div class=sidebar-brand><img class=sidebar-logo alt=Vessel><span class=sidebar-brand-text>Vessel Browser</span></div><div class=sidebar-header-actions><button class=sidebar-clear title="Clear chat">Clear</button><button class=sidebar-close title="Close AI chat (Esc)"aria-label="Close AI chat"><svg width=14 height=14 viewBox="0 0 14 14"aria-hidden=true><path d="M3.5 3.5l7 7M10.5 3.5l-7 7"fill=none stroke=currentColor stroke-width=1.4 stroke-linecap=round></path></svg></button></div></div><div class=sidebar-tabs role=tablist><button class=sidebar-tab role=tab>Supervisor</button><button class=sidebar-tab role=tab>Bookmarks</button><button class=sidebar-tab role=tab>Checkpoints</button><button class=sidebar-tab role=tab>Chat</button></div><div class=sidebar-messages><div>`), _tmpl$19 = /* @__PURE__ */ template(`<div class=agent-muted>No pending approvals.`), _tmpl$20 = /* @__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$21 = /* @__PURE__ */ template(`<div class=agent-muted>No actions yet.`), _tmpl$22 = /* @__PURE__ */ template(`<div class=agent-muted>Recent actions are collapsed to reduce noise.`), _tmpl$23 = /* @__PURE__ */ template(`<div class="agent-card-copy success">`), _tmpl$24 = /* @__PURE__ */ template(`<div class="agent-card-copy error">`), _tmpl$25 = /* @__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$26 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>`), _tmpl$27 = /* @__PURE__ */ template(`<div class=bookmark-folder-summary>`), _tmpl$28 = /* @__PURE__ */ template(`<div class=bookmark-folder-actions><button class=bookmark-ghost-button type=button>Rename</button><button class="bookmark-ghost-button danger"type=button>Delete`), _tmpl$29 = /* @__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$30 = /* @__PURE__ */ template(`<div class=bookmark-items>`), _tmpl$31 = /* @__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$32 = /* @__PURE__ */ template(`<div class=bookmark-folder-collapsed-hint>Click to view saved links.`), _tmpl$33 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>No bookmarks in this folder yet.`), _tmpl$34 = /* @__PURE__ */ template(`<div class=bookmark-item-note>`), _tmpl$35 = /* @__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 danger"type=button>Remove`), _tmpl$36 = /* @__PURE__ */ template(`<div class=agent-muted>No checkpoints yet.`), _tmpl$37 = /* @__PURE__ */ template(`<span class=checkpoint-timeline-line>`), _tmpl$38 = /* @__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><button class=agent-control-button type=button>Restore`), _tmpl$39 = /* @__PURE__ */ template(`<div>`), _tmpl$40 = /* @__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$41 = /* @__PURE__ */ template(`<div class=chat-approval-detail>`), _tmpl$42 = /* @__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`);
|
|
3163
|
+
const UNSORTED_FOLDER = {
|
|
3164
|
+
id: "unsorted",
|
|
3165
|
+
name: "Unsorted",
|
|
3166
|
+
createdAt: ""
|
|
3167
|
+
};
|
|
3168
|
+
const MarkdownMessage = (props) => {
|
|
3169
|
+
const html2 = createMemo(() => renderMarkdown(props.content));
|
|
3170
|
+
return (() => {
|
|
3171
|
+
var _el$ = _tmpl$$3();
|
|
3172
|
+
createRenderEffect(() => _el$.innerHTML = html2());
|
|
3173
|
+
return _el$;
|
|
3161
3174
|
})();
|
|
3162
3175
|
};
|
|
3163
3176
|
const Sidebar = (props) => {
|
|
@@ -3485,41 +3498,41 @@ ${contextBlock}` : contextBlock);
|
|
|
3485
3498
|
return props.forceOpen || sidebarOpen2();
|
|
3486
3499
|
},
|
|
3487
3500
|
get children() {
|
|
3488
|
-
var _el$
|
|
3489
|
-
_el$
|
|
3490
|
-
var _el$
|
|
3491
|
-
_el$
|
|
3492
|
-
setAttribute(_el$
|
|
3493
|
-
addEventListener(_el$
|
|
3494
|
-
_el$
|
|
3495
|
-
_el$
|
|
3496
|
-
insert(_el$
|
|
3501
|
+
var _el$2 = _tmpl$18(), _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild, _el$7 = _el$5.nextSibling, _el$8 = _el$7.firstChild, _el$9 = _el$8.nextSibling, _el$0 = _el$4.nextSibling, _el$1 = _el$0.firstChild;
|
|
3502
|
+
_el$1.firstChild;
|
|
3503
|
+
var _el$12 = _el$1.nextSibling, _el$13 = _el$12.nextSibling, _el$14 = _el$13.nextSibling, _el$15 = _el$0.nextSibling, _el$72 = _el$15.firstChild;
|
|
3504
|
+
_el$3.$$pointerdown = startResize;
|
|
3505
|
+
setAttribute(_el$6, "src", vesselLogo);
|
|
3506
|
+
addEventListener(_el$8, "click", clearHistory);
|
|
3507
|
+
_el$9.$$click = () => void toggleSidebar();
|
|
3508
|
+
_el$1.$$click = () => setSidebarTab("supervisor");
|
|
3509
|
+
insert(_el$1, createComponent(Show, {
|
|
3497
3510
|
get when() {
|
|
3498
3511
|
return runtimeState2().supervisor.pendingApprovals.length > 0;
|
|
3499
3512
|
},
|
|
3500
3513
|
get children() {
|
|
3501
|
-
var _el$
|
|
3502
|
-
insert(_el$
|
|
3503
|
-
return _el$
|
|
3514
|
+
var _el$11 = _tmpl$2$3();
|
|
3515
|
+
insert(_el$11, () => runtimeState2().supervisor.pendingApprovals.length);
|
|
3516
|
+
return _el$11;
|
|
3504
3517
|
}
|
|
3505
3518
|
}), null);
|
|
3506
|
-
_el$
|
|
3507
|
-
_el$
|
|
3508
|
-
_el$
|
|
3519
|
+
_el$12.$$click = () => setSidebarTab("bookmarks");
|
|
3520
|
+
_el$13.$$click = () => setSidebarTab("checkpoints");
|
|
3521
|
+
_el$14.$$click = () => setSidebarTab("chat");
|
|
3509
3522
|
use((el) => {
|
|
3510
3523
|
messagesContainerRef = el;
|
|
3511
3524
|
useScrollFade(el);
|
|
3512
|
-
}, _el$
|
|
3513
|
-
insert(_el$
|
|
3525
|
+
}, _el$15);
|
|
3526
|
+
insert(_el$15, createComponent(Show, {
|
|
3514
3527
|
get when() {
|
|
3515
3528
|
return sidebarTab() === "supervisor";
|
|
3516
3529
|
},
|
|
3517
3530
|
get children() {
|
|
3518
|
-
var _el$
|
|
3519
|
-
_el$
|
|
3520
|
-
insert(_el$
|
|
3521
|
-
insert(_el$
|
|
3522
|
-
insert(_el$
|
|
3531
|
+
var _el$16 = _tmpl$5$2(), _el$17 = _el$16.firstChild, _el$18 = _el$17.firstChild, _el$19 = _el$18.firstChild, _el$20 = _el$19.nextSibling, _el$21 = _el$18.nextSibling, _el$22 = _el$17.nextSibling, _el$23 = _el$22.firstChild, _el$24 = _el$23.nextSibling, _el$25 = _el$22.nextSibling, _el$27 = _el$25.nextSibling;
|
|
3532
|
+
_el$27.firstChild;
|
|
3533
|
+
insert(_el$20, () => runtimeState2().supervisor.paused ? "Agent is paused" : "Agent is live");
|
|
3534
|
+
insert(_el$21, () => runtimeState2().supervisor.paused ? "Paused" : "Running");
|
|
3535
|
+
insert(_el$22, createComponent(DropdownSelect, {
|
|
3523
3536
|
"class": "agent-select",
|
|
3524
3537
|
get value() {
|
|
3525
3538
|
return runtimeState2().supervisor.approvalMode;
|
|
@@ -3529,55 +3542,55 @@ ${contextBlock}` : contextBlock);
|
|
|
3529
3542
|
},
|
|
3530
3543
|
ariaLabel: "Approval mode",
|
|
3531
3544
|
onChange: (value) => void setApprovalMode(value)
|
|
3532
|
-
}), _el$
|
|
3533
|
-
_el$
|
|
3534
|
-
insert(_el$
|
|
3535
|
-
_el$
|
|
3536
|
-
insert(_el$
|
|
3537
|
-
insert(_el$
|
|
3545
|
+
}), _el$23);
|
|
3546
|
+
_el$23.$$click = () => void (runtimeState2().supervisor.paused ? resume() : pause());
|
|
3547
|
+
insert(_el$23, () => runtimeState2().supervisor.paused ? "Resume" : "Pause");
|
|
3548
|
+
_el$24.$$click = () => void restoreSession();
|
|
3549
|
+
insert(_el$25, approvalModeDescription);
|
|
3550
|
+
insert(_el$16, createComponent(Show, {
|
|
3538
3551
|
get when() {
|
|
3539
3552
|
return runtimeState2().supervisor.pendingApprovals.length > 0;
|
|
3540
3553
|
},
|
|
3541
3554
|
get fallback() {
|
|
3542
|
-
return _tmpl$
|
|
3555
|
+
return _tmpl$19();
|
|
3543
3556
|
},
|
|
3544
3557
|
get children() {
|
|
3545
|
-
return [_tmpl$
|
|
3558
|
+
return [_tmpl$3$2(), createComponent(For, {
|
|
3546
3559
|
get each() {
|
|
3547
3560
|
return runtimeState2().supervisor.pendingApprovals;
|
|
3548
3561
|
},
|
|
3549
3562
|
children: (approval) => (() => {
|
|
3550
|
-
var _el$
|
|
3551
|
-
insert(_el$
|
|
3552
|
-
insert(_el$
|
|
3553
|
-
insert(_el$
|
|
3554
|
-
_el$
|
|
3555
|
-
_el$
|
|
3556
|
-
return _el$
|
|
3563
|
+
var _el$85 = _tmpl$20(), _el$86 = _el$85.firstChild, _el$87 = _el$86.nextSibling, _el$88 = _el$87.nextSibling, _el$89 = _el$88.nextSibling, _el$90 = _el$89.nextSibling, _el$91 = _el$90.firstChild, _el$92 = _el$91.nextSibling;
|
|
3564
|
+
insert(_el$87, () => approval.name);
|
|
3565
|
+
insert(_el$88, () => approval.argsSummary);
|
|
3566
|
+
insert(_el$89, () => approval.reason);
|
|
3567
|
+
_el$91.$$click = () => void resolveApproval(approval.id, true);
|
|
3568
|
+
_el$92.$$click = () => void resolveApproval(approval.id, false);
|
|
3569
|
+
return _el$85;
|
|
3557
3570
|
})()
|
|
3558
3571
|
})];
|
|
3559
3572
|
}
|
|
3560
|
-
}), _el$
|
|
3561
|
-
insert(_el$
|
|
3573
|
+
}), _el$27);
|
|
3574
|
+
insert(_el$27, createComponent(Show, {
|
|
3562
3575
|
get when() {
|
|
3563
3576
|
return recentActions().length > 0;
|
|
3564
3577
|
},
|
|
3565
3578
|
get children() {
|
|
3566
|
-
var _el$
|
|
3567
|
-
_el$
|
|
3568
|
-
insert(_el$
|
|
3579
|
+
var _el$29 = _tmpl$4$2();
|
|
3580
|
+
_el$29.$$click = () => setActionsExpanded((current) => !current);
|
|
3581
|
+
insert(_el$29, (() => {
|
|
3569
3582
|
var _c$ = memo(() => !!actionsExpanded());
|
|
3570
3583
|
return () => _c$() ? "Hide history" : `Show history (${recentActions().length})`;
|
|
3571
3584
|
})());
|
|
3572
|
-
return _el$
|
|
3585
|
+
return _el$29;
|
|
3573
3586
|
}
|
|
3574
3587
|
}), null);
|
|
3575
|
-
insert(_el$
|
|
3588
|
+
insert(_el$16, createComponent(Show, {
|
|
3576
3589
|
get when() {
|
|
3577
3590
|
return recentActions().length > 0;
|
|
3578
3591
|
},
|
|
3579
3592
|
get fallback() {
|
|
3580
|
-
return _tmpl$
|
|
3593
|
+
return _tmpl$21();
|
|
3581
3594
|
},
|
|
3582
3595
|
get children() {
|
|
3583
3596
|
return createComponent(Show, {
|
|
@@ -3585,7 +3598,7 @@ ${contextBlock}` : contextBlock);
|
|
|
3585
3598
|
return actionsExpanded();
|
|
3586
3599
|
},
|
|
3587
3600
|
get fallback() {
|
|
3588
|
-
return _tmpl$
|
|
3601
|
+
return _tmpl$22();
|
|
3589
3602
|
},
|
|
3590
3603
|
get children() {
|
|
3591
3604
|
return createComponent(For, {
|
|
@@ -3593,71 +3606,71 @@ ${contextBlock}` : contextBlock);
|
|
|
3593
3606
|
return recentActions();
|
|
3594
3607
|
},
|
|
3595
3608
|
children: (action) => (() => {
|
|
3596
|
-
var _el$
|
|
3597
|
-
insert(_el$
|
|
3598
|
-
insert(_el$
|
|
3599
|
-
insert(_el$
|
|
3600
|
-
insert(_el$
|
|
3609
|
+
var _el$95 = _tmpl$25(), _el$96 = _el$95.firstChild, _el$97 = _el$96.firstChild, _el$98 = _el$97.nextSibling, _el$99 = _el$96.nextSibling;
|
|
3610
|
+
insert(_el$97, () => action.name);
|
|
3611
|
+
insert(_el$98, () => action.status);
|
|
3612
|
+
insert(_el$99, () => action.argsSummary);
|
|
3613
|
+
insert(_el$95, createComponent(Show, {
|
|
3601
3614
|
get when() {
|
|
3602
3615
|
return action.resultSummary;
|
|
3603
3616
|
},
|
|
3604
3617
|
get children() {
|
|
3605
|
-
var _el$
|
|
3606
|
-
insert(_el$
|
|
3607
|
-
return _el$
|
|
3618
|
+
var _el$100 = _tmpl$23();
|
|
3619
|
+
insert(_el$100, () => action.resultSummary);
|
|
3620
|
+
return _el$100;
|
|
3608
3621
|
}
|
|
3609
3622
|
}), null);
|
|
3610
|
-
insert(_el$
|
|
3623
|
+
insert(_el$95, createComponent(Show, {
|
|
3611
3624
|
get when() {
|
|
3612
3625
|
return action.error;
|
|
3613
3626
|
},
|
|
3614
3627
|
get children() {
|
|
3615
|
-
var _el$
|
|
3616
|
-
insert(_el$
|
|
3617
|
-
return _el$
|
|
3628
|
+
var _el$101 = _tmpl$24();
|
|
3629
|
+
insert(_el$101, () => action.error);
|
|
3630
|
+
return _el$101;
|
|
3618
3631
|
}
|
|
3619
3632
|
}), null);
|
|
3620
|
-
createRenderEffect(() => className(_el$
|
|
3621
|
-
return _el$
|
|
3633
|
+
createRenderEffect(() => className(_el$98, `agent-action-status ${action.status}`));
|
|
3634
|
+
return _el$95;
|
|
3622
3635
|
})()
|
|
3623
3636
|
});
|
|
3624
3637
|
}
|
|
3625
3638
|
});
|
|
3626
3639
|
}
|
|
3627
3640
|
}), null);
|
|
3628
|
-
createRenderEffect(() => _el$
|
|
3629
|
-
return _el$
|
|
3641
|
+
createRenderEffect(() => _el$21.classList.toggle("paused", !!runtimeState2().supervisor.paused));
|
|
3642
|
+
return _el$16;
|
|
3630
3643
|
}
|
|
3631
|
-
}), _el$
|
|
3632
|
-
insert(_el$
|
|
3644
|
+
}), _el$72);
|
|
3645
|
+
insert(_el$15, createComponent(Show, {
|
|
3633
3646
|
get when() {
|
|
3634
3647
|
return sidebarTab() === "bookmarks";
|
|
3635
3648
|
},
|
|
3636
3649
|
get children() {
|
|
3637
|
-
var _el$
|
|
3638
|
-
insert(_el$
|
|
3650
|
+
var _el$30 = _tmpl$8$2(), _el$31 = _el$30.firstChild, _el$32 = _el$31.firstChild, _el$33 = _el$32.firstChild, _el$34 = _el$33.nextSibling, _el$36 = _el$31.nextSibling, _el$37 = _el$36.nextSibling, _el$38 = _el$37.firstChild, _el$39 = _el$38.firstChild, _el$40 = _el$39.nextSibling, _el$47 = _el$37.nextSibling, _el$48 = _el$47.firstChild, _el$49 = _el$48.firstChild, _el$50 = _el$49.nextSibling, _el$51 = _el$48.nextSibling, _el$52 = _el$47.nextSibling;
|
|
3651
|
+
insert(_el$34, (() => {
|
|
3639
3652
|
var _c$2 = memo(() => !!normalizedBookmarkSearch());
|
|
3640
3653
|
return () => _c$2() ? `${bookmarkMatchCount()} matches for "${bookmarkSearchQuery().trim()}"` : `${bookmarksState2().bookmarks.length} saved across ${bookmarkFolders().length} folders`;
|
|
3641
3654
|
})());
|
|
3642
|
-
insert(_el$
|
|
3655
|
+
insert(_el$31, createComponent(Show, {
|
|
3643
3656
|
get when() {
|
|
3644
3657
|
return currentTabSaved();
|
|
3645
3658
|
},
|
|
3646
3659
|
get children() {
|
|
3647
|
-
return _tmpl$
|
|
3660
|
+
return _tmpl$6$2();
|
|
3648
3661
|
}
|
|
3649
3662
|
}), null);
|
|
3650
|
-
_el$
|
|
3651
|
-
_el$
|
|
3652
|
-
insert(_el$
|
|
3663
|
+
_el$36.$$input = (e) => setBookmarkSearchQuery(e.currentTarget.value);
|
|
3664
|
+
_el$38.$$click = () => setBookmarkSaveExpanded((current) => !current);
|
|
3665
|
+
insert(_el$37, createComponent(Show, {
|
|
3653
3666
|
get when() {
|
|
3654
3667
|
return bookmarkSaveExpanded();
|
|
3655
3668
|
},
|
|
3656
3669
|
get children() {
|
|
3657
|
-
var _el$
|
|
3658
|
-
insert(_el$
|
|
3659
|
-
insert(_el$
|
|
3660
|
-
insert(_el$
|
|
3670
|
+
var _el$41 = _tmpl$7$2(), _el$42 = _el$41.firstChild, _el$43 = _el$42.nextSibling, _el$44 = _el$43.nextSibling, _el$45 = _el$44.firstChild, _el$46 = _el$44.nextSibling;
|
|
3671
|
+
insert(_el$42, () => currentTab()?.title || "No active page");
|
|
3672
|
+
insert(_el$43, () => currentTab()?.url || "Open a page to save it here.");
|
|
3673
|
+
insert(_el$44, createComponent(DropdownSelect, {
|
|
3661
3674
|
"class": "bookmark-select",
|
|
3662
3675
|
get value() {
|
|
3663
3676
|
return selectedFolderId();
|
|
@@ -3667,29 +3680,29 @@ ${contextBlock}` : contextBlock);
|
|
|
3667
3680
|
},
|
|
3668
3681
|
ariaLabel: "Bookmark folder",
|
|
3669
3682
|
onChange: (value) => setSelectedFolderId(value)
|
|
3670
|
-
}), _el$
|
|
3671
|
-
_el$
|
|
3672
|
-
_el$
|
|
3673
|
-
createRenderEffect(() => _el$
|
|
3674
|
-
createRenderEffect(() => _el$
|
|
3675
|
-
return _el$
|
|
3683
|
+
}), _el$45);
|
|
3684
|
+
_el$45.$$click = () => void handleSaveBookmark();
|
|
3685
|
+
_el$46.$$input = (e) => setBookmarkNote(e.currentTarget.value);
|
|
3686
|
+
createRenderEffect(() => _el$45.disabled = !currentTab()?.url);
|
|
3687
|
+
createRenderEffect(() => _el$46.value = bookmarkNote());
|
|
3688
|
+
return _el$41;
|
|
3676
3689
|
}
|
|
3677
3690
|
}), null);
|
|
3678
|
-
_el$
|
|
3679
|
-
_el$
|
|
3680
|
-
_el$
|
|
3681
|
-
insert(_el$
|
|
3691
|
+
_el$47.addEventListener("submit", handleCreateFolder);
|
|
3692
|
+
_el$49.$$input = (e) => setNewFolderName(e.currentTarget.value);
|
|
3693
|
+
_el$50.$$input = (e) => setNewFolderSummary(e.currentTarget.value);
|
|
3694
|
+
insert(_el$52, createComponent(Show, {
|
|
3682
3695
|
get when() {
|
|
3683
3696
|
return filteredGroupedBookmarks().length > 0;
|
|
3684
3697
|
},
|
|
3685
3698
|
get fallback() {
|
|
3686
3699
|
return (() => {
|
|
3687
|
-
var _el$
|
|
3688
|
-
insert(_el$
|
|
3700
|
+
var _el$102 = _tmpl$26();
|
|
3701
|
+
insert(_el$102, (() => {
|
|
3689
3702
|
var _c$5 = memo(() => !!normalizedBookmarkSearch());
|
|
3690
3703
|
return () => _c$5() ? `No bookmarks matched "${bookmarkSearchQuery().trim()}".` : "No bookmarks saved yet.";
|
|
3691
3704
|
})());
|
|
3692
|
-
return _el$
|
|
3705
|
+
return _el$102;
|
|
3693
3706
|
})();
|
|
3694
3707
|
},
|
|
3695
3708
|
get children() {
|
|
@@ -3698,71 +3711,71 @@ ${contextBlock}` : contextBlock);
|
|
|
3698
3711
|
return filteredGroupedBookmarks();
|
|
3699
3712
|
},
|
|
3700
3713
|
children: (folder) => (() => {
|
|
3701
|
-
var _el$
|
|
3702
|
-
_el$
|
|
3714
|
+
var _el$103 = _tmpl$31(), _el$104 = _el$103.firstChild, _el$105 = _el$104.firstChild, _el$106 = _el$105.firstChild, _el$107 = _el$106.nextSibling, _el$108 = _el$107.firstChild, _el$109 = _el$108.nextSibling, _el$110 = _el$109.firstChild;
|
|
3715
|
+
_el$104.$$keydown = (e) => {
|
|
3703
3716
|
if (e.key === "Enter" || e.key === " ") {
|
|
3704
3717
|
e.preventDefault();
|
|
3705
3718
|
toggleFolderExpanded(folder.id);
|
|
3706
3719
|
}
|
|
3707
3720
|
};
|
|
3708
|
-
_el$
|
|
3709
|
-
insert(_el$
|
|
3710
|
-
insert(_el$
|
|
3711
|
-
insert(_el$
|
|
3721
|
+
_el$104.$$click = () => toggleFolderExpanded(folder.id);
|
|
3722
|
+
insert(_el$108, () => folder.name);
|
|
3723
|
+
insert(_el$109, () => folder.items.length, _el$110);
|
|
3724
|
+
insert(_el$107, createComponent(Show, {
|
|
3712
3725
|
get when() {
|
|
3713
3726
|
return folder.summary;
|
|
3714
3727
|
},
|
|
3715
3728
|
get children() {
|
|
3716
|
-
var _el$
|
|
3717
|
-
insert(_el$
|
|
3718
|
-
return _el$
|
|
3729
|
+
var _el$111 = _tmpl$27();
|
|
3730
|
+
insert(_el$111, () => folder.summary);
|
|
3731
|
+
return _el$111;
|
|
3719
3732
|
}
|
|
3720
3733
|
}), null);
|
|
3721
|
-
insert(_el$
|
|
3734
|
+
insert(_el$104, createComponent(Show, {
|
|
3722
3735
|
get when() {
|
|
3723
3736
|
return folder.id !== UNSORTED_FOLDER.id;
|
|
3724
3737
|
},
|
|
3725
3738
|
get children() {
|
|
3726
|
-
var _el$
|
|
3727
|
-
_el$
|
|
3739
|
+
var _el$112 = _tmpl$28(), _el$113 = _el$112.firstChild, _el$114 = _el$113.nextSibling;
|
|
3740
|
+
_el$113.$$click = (e) => {
|
|
3728
3741
|
e.stopPropagation();
|
|
3729
3742
|
setEditingFolderId(folder.id);
|
|
3730
3743
|
setEditingFolderName(folder.name);
|
|
3731
3744
|
setEditingFolderSummary(folder.summary || "");
|
|
3732
3745
|
};
|
|
3733
|
-
_el$
|
|
3746
|
+
_el$114.$$click = (e) => {
|
|
3734
3747
|
e.stopPropagation();
|
|
3735
3748
|
void handleRemoveFolder(folder.id);
|
|
3736
3749
|
};
|
|
3737
|
-
return _el$
|
|
3750
|
+
return _el$112;
|
|
3738
3751
|
}
|
|
3739
3752
|
}), null);
|
|
3740
|
-
insert(_el$
|
|
3753
|
+
insert(_el$103, createComponent(Show, {
|
|
3741
3754
|
get when() {
|
|
3742
3755
|
return editingFolderId() === folder.id;
|
|
3743
3756
|
},
|
|
3744
3757
|
get children() {
|
|
3745
|
-
var _el$
|
|
3746
|
-
_el$
|
|
3747
|
-
_el$
|
|
3748
|
-
_el$
|
|
3749
|
-
_el$
|
|
3758
|
+
var _el$115 = _tmpl$29(), _el$116 = _el$115.firstChild, _el$117 = _el$116.firstChild, _el$118 = _el$117.nextSibling, _el$119 = _el$116.nextSibling, _el$120 = _el$119.nextSibling;
|
|
3759
|
+
_el$117.$$input = (e) => setEditingFolderName(e.currentTarget.value);
|
|
3760
|
+
_el$118.$$input = (e) => setEditingFolderSummary(e.currentTarget.value);
|
|
3761
|
+
_el$119.$$click = () => void handleRenameFolder(folder.id);
|
|
3762
|
+
_el$120.$$click = () => {
|
|
3750
3763
|
setEditingFolderId(null);
|
|
3751
3764
|
setEditingFolderName("");
|
|
3752
3765
|
setEditingFolderSummary("");
|
|
3753
3766
|
};
|
|
3754
|
-
createRenderEffect(() => _el$
|
|
3755
|
-
createRenderEffect(() => _el$
|
|
3756
|
-
createRenderEffect(() => _el$
|
|
3757
|
-
return _el$
|
|
3767
|
+
createRenderEffect(() => _el$119.disabled = !editingFolderName().trim());
|
|
3768
|
+
createRenderEffect(() => _el$117.value = editingFolderName());
|
|
3769
|
+
createRenderEffect(() => _el$118.value = editingFolderSummary());
|
|
3770
|
+
return _el$115;
|
|
3758
3771
|
}
|
|
3759
3772
|
}), null);
|
|
3760
|
-
insert(_el$
|
|
3773
|
+
insert(_el$103, createComponent(Show, {
|
|
3761
3774
|
get when() {
|
|
3762
3775
|
return isFolderExpanded(folder.id);
|
|
3763
3776
|
},
|
|
3764
3777
|
get fallback() {
|
|
3765
|
-
return _tmpl$
|
|
3778
|
+
return _tmpl$32();
|
|
3766
3779
|
},
|
|
3767
3780
|
get children() {
|
|
3768
3781
|
return createComponent(Show, {
|
|
@@ -3770,116 +3783,116 @@ ${contextBlock}` : contextBlock);
|
|
|
3770
3783
|
return folder.items.length > 0;
|
|
3771
3784
|
},
|
|
3772
3785
|
get fallback() {
|
|
3773
|
-
return _tmpl$
|
|
3786
|
+
return _tmpl$33();
|
|
3774
3787
|
},
|
|
3775
3788
|
get children() {
|
|
3776
|
-
var _el$
|
|
3777
|
-
insert(_el$
|
|
3789
|
+
var _el$121 = _tmpl$30();
|
|
3790
|
+
insert(_el$121, createComponent(For, {
|
|
3778
3791
|
get each() {
|
|
3779
3792
|
return folder.items;
|
|
3780
3793
|
},
|
|
3781
3794
|
children: (bookmark) => (() => {
|
|
3782
|
-
var _el$
|
|
3783
|
-
_el$
|
|
3784
|
-
insert(_el$
|
|
3785
|
-
insert(_el$
|
|
3786
|
-
insert(_el$
|
|
3795
|
+
var _el$124 = _tmpl$35(), _el$125 = _el$124.firstChild, _el$126 = _el$125.firstChild, _el$127 = _el$126.nextSibling, _el$129 = _el$125.nextSibling, _el$130 = _el$129.firstChild, _el$131 = _el$130.nextSibling;
|
|
3796
|
+
_el$125.$$click = () => void createTab(bookmark.url);
|
|
3797
|
+
insert(_el$126, () => bookmark.title || bookmark.url);
|
|
3798
|
+
insert(_el$127, () => bookmark.url);
|
|
3799
|
+
insert(_el$124, createComponent(Show, {
|
|
3787
3800
|
get when() {
|
|
3788
3801
|
return bookmark.note;
|
|
3789
3802
|
},
|
|
3790
3803
|
get children() {
|
|
3791
|
-
var _el$
|
|
3792
|
-
insert(_el$
|
|
3793
|
-
return _el$
|
|
3804
|
+
var _el$128 = _tmpl$34();
|
|
3805
|
+
insert(_el$128, () => bookmark.note);
|
|
3806
|
+
return _el$128;
|
|
3794
3807
|
}
|
|
3795
|
-
}), _el$
|
|
3796
|
-
insert(_el$
|
|
3797
|
-
_el$
|
|
3798
|
-
createRenderEffect(() => setAttribute(_el$
|
|
3799
|
-
return _el$
|
|
3808
|
+
}), _el$129);
|
|
3809
|
+
insert(_el$130, () => formatBookmarkDate(bookmark.savedAt));
|
|
3810
|
+
_el$131.$$click = () => void removeBookmark(bookmark.id);
|
|
3811
|
+
createRenderEffect(() => setAttribute(_el$124, "data-bookmark-id", bookmark.id));
|
|
3812
|
+
return _el$124;
|
|
3800
3813
|
})()
|
|
3801
3814
|
}));
|
|
3802
|
-
return _el$
|
|
3815
|
+
return _el$121;
|
|
3803
3816
|
}
|
|
3804
3817
|
});
|
|
3805
3818
|
}
|
|
3806
3819
|
}), null);
|
|
3807
|
-
createRenderEffect(() => _el$
|
|
3808
|
-
return _el$
|
|
3820
|
+
createRenderEffect(() => _el$106.classList.toggle("expanded", !!isFolderExpanded(folder.id)));
|
|
3821
|
+
return _el$103;
|
|
3809
3822
|
})()
|
|
3810
3823
|
});
|
|
3811
3824
|
}
|
|
3812
3825
|
}));
|
|
3813
3826
|
createRenderEffect((_p$) => {
|
|
3814
|
-
var _v$
|
|
3815
|
-
_v$
|
|
3816
|
-
_v$
|
|
3827
|
+
var _v$ = !!bookmarkSaveExpanded(), _v$2 = !newFolderName().trim();
|
|
3828
|
+
_v$ !== _p$.e && _el$40.classList.toggle("expanded", _p$.e = _v$);
|
|
3829
|
+
_v$2 !== _p$.t && (_el$51.disabled = _p$.t = _v$2);
|
|
3817
3830
|
return _p$;
|
|
3818
3831
|
}, {
|
|
3819
3832
|
e: void 0,
|
|
3820
3833
|
t: void 0
|
|
3821
3834
|
});
|
|
3822
|
-
createRenderEffect(() => _el$
|
|
3823
|
-
createRenderEffect(() => _el$
|
|
3824
|
-
createRenderEffect(() => _el$
|
|
3825
|
-
return _el$
|
|
3835
|
+
createRenderEffect(() => _el$36.value = bookmarkSearchQuery());
|
|
3836
|
+
createRenderEffect(() => _el$49.value = newFolderName());
|
|
3837
|
+
createRenderEffect(() => _el$50.value = newFolderSummary());
|
|
3838
|
+
return _el$30;
|
|
3826
3839
|
}
|
|
3827
|
-
}), _el$
|
|
3828
|
-
insert(_el$
|
|
3840
|
+
}), _el$72);
|
|
3841
|
+
insert(_el$15, createComponent(Show, {
|
|
3829
3842
|
get when() {
|
|
3830
3843
|
return sidebarTab() === "checkpoints";
|
|
3831
3844
|
},
|
|
3832
3845
|
get children() {
|
|
3833
|
-
var _el$
|
|
3834
|
-
_el$
|
|
3835
|
-
insert(_el$
|
|
3846
|
+
var _el$53 = _tmpl$0$2(), _el$54 = _el$53.firstChild, _el$55 = _el$54.firstChild, _el$56 = _el$55.firstChild, _el$57 = _el$56.nextSibling, _el$58 = _el$54.nextSibling, _el$59 = _el$58.firstChild, _el$60 = _el$59.firstChild, _el$61 = _el$60.nextSibling;
|
|
3847
|
+
_el$59.nextSibling;
|
|
3848
|
+
insert(_el$57, (() => {
|
|
3836
3849
|
var _c$3 = memo(() => recentCheckpoints().length > 0);
|
|
3837
3850
|
return () => _c$3() ? `${recentCheckpoints().length} saved snapshots` : "Save and restore session snapshots";
|
|
3838
3851
|
})());
|
|
3839
|
-
_el$
|
|
3840
|
-
_el$
|
|
3852
|
+
_el$60.$$input = (e) => setCheckpointName(e.currentTarget.value);
|
|
3853
|
+
_el$61.$$click = async () => {
|
|
3841
3854
|
const name = checkpointName().trim();
|
|
3842
3855
|
await createCheckpoint(name || void 0);
|
|
3843
3856
|
setCheckpointName("");
|
|
3844
3857
|
};
|
|
3845
|
-
insert(_el$
|
|
3858
|
+
insert(_el$58, createComponent(Show, {
|
|
3846
3859
|
get when() {
|
|
3847
3860
|
return recentCheckpoints().length > 0;
|
|
3848
3861
|
},
|
|
3849
3862
|
get fallback() {
|
|
3850
|
-
return _tmpl$
|
|
3863
|
+
return _tmpl$36();
|
|
3851
3864
|
},
|
|
3852
3865
|
get children() {
|
|
3853
|
-
var _el$
|
|
3854
|
-
insert(_el$
|
|
3866
|
+
var _el$63 = _tmpl$9$2();
|
|
3867
|
+
insert(_el$63, createComponent(For, {
|
|
3855
3868
|
get each() {
|
|
3856
3869
|
return recentCheckpoints();
|
|
3857
3870
|
},
|
|
3858
3871
|
children: (checkpoint, i) => (() => {
|
|
3859
|
-
var _el$
|
|
3860
|
-
insert(_el$
|
|
3872
|
+
var _el$133 = _tmpl$38(), _el$134 = _el$133.firstChild, _el$135 = _el$134.firstChild, _el$137 = _el$134.nextSibling, _el$138 = _el$137.firstChild, _el$139 = _el$138.nextSibling, _el$140 = _el$139.nextSibling;
|
|
3873
|
+
insert(_el$134, createComponent(Show, {
|
|
3861
3874
|
get when() {
|
|
3862
3875
|
return i() < recentCheckpoints().length - 1;
|
|
3863
3876
|
},
|
|
3864
3877
|
get children() {
|
|
3865
|
-
return _tmpl$
|
|
3878
|
+
return _tmpl$37();
|
|
3866
3879
|
}
|
|
3867
3880
|
}), null);
|
|
3868
|
-
insert(_el$
|
|
3869
|
-
insert(_el$
|
|
3870
|
-
_el$
|
|
3871
|
-
createRenderEffect(() => _el$
|
|
3872
|
-
return _el$
|
|
3881
|
+
insert(_el$138, () => checkpoint.name);
|
|
3882
|
+
insert(_el$139, () => new Date(checkpoint.createdAt).toLocaleString());
|
|
3883
|
+
_el$140.$$click = () => void restoreCheckpoint(checkpoint.id);
|
|
3884
|
+
createRenderEffect(() => _el$135.classList.toggle("latest", !!(i() === 0)));
|
|
3885
|
+
return _el$133;
|
|
3873
3886
|
})()
|
|
3874
3887
|
}));
|
|
3875
|
-
return _el$
|
|
3888
|
+
return _el$63;
|
|
3876
3889
|
}
|
|
3877
3890
|
}), null);
|
|
3878
|
-
createRenderEffect(() => _el$
|
|
3879
|
-
return _el$
|
|
3891
|
+
createRenderEffect(() => _el$60.value = checkpointName());
|
|
3892
|
+
return _el$53;
|
|
3880
3893
|
}
|
|
3881
|
-
}), _el$
|
|
3882
|
-
insert(_el$
|
|
3894
|
+
}), _el$72);
|
|
3895
|
+
insert(_el$15, createComponent(Show, {
|
|
3883
3896
|
get when() {
|
|
3884
3897
|
return sidebarTab() === "chat";
|
|
3885
3898
|
},
|
|
@@ -3889,50 +3902,50 @@ ${contextBlock}` : contextBlock);
|
|
|
3889
3902
|
return messages2();
|
|
3890
3903
|
},
|
|
3891
3904
|
children: (msg) => (() => {
|
|
3892
|
-
var _el$
|
|
3893
|
-
insert(_el$
|
|
3905
|
+
var _el$141 = _tmpl$39();
|
|
3906
|
+
insert(_el$141, createComponent(MarkdownMessage, {
|
|
3894
3907
|
get content() {
|
|
3895
3908
|
return msg.content;
|
|
3896
3909
|
}
|
|
3897
3910
|
}));
|
|
3898
|
-
createRenderEffect(() => className(_el$
|
|
3899
|
-
return _el$
|
|
3911
|
+
createRenderEffect(() => className(_el$141, `message message-${msg.role}`));
|
|
3912
|
+
return _el$141;
|
|
3900
3913
|
})()
|
|
3901
3914
|
}), createComponent(Show, {
|
|
3902
3915
|
get when() {
|
|
3903
3916
|
return isStreaming2();
|
|
3904
3917
|
},
|
|
3905
3918
|
get children() {
|
|
3906
|
-
var _el$
|
|
3907
|
-
insert(_el$
|
|
3919
|
+
var _el$64 = _tmpl$11$2(), _el$65 = _el$64.firstChild;
|
|
3920
|
+
insert(_el$65, createComponent(Show, {
|
|
3908
3921
|
get when() {
|
|
3909
3922
|
return hasFirstChunk2();
|
|
3910
3923
|
},
|
|
3911
3924
|
get fallback() {
|
|
3912
|
-
return _tmpl$
|
|
3925
|
+
return _tmpl$40();
|
|
3913
3926
|
},
|
|
3914
3927
|
get children() {
|
|
3915
|
-
var _el$
|
|
3916
|
-
_el$
|
|
3917
|
-
insert(_el$
|
|
3928
|
+
var _el$66 = _tmpl$10$2(), _el$67 = _el$66.firstChild, _el$68 = _el$67.firstChild;
|
|
3929
|
+
_el$68.nextSibling;
|
|
3930
|
+
insert(_el$66, createComponent(MarkdownMessage, {
|
|
3918
3931
|
get content() {
|
|
3919
3932
|
return streamingText2();
|
|
3920
3933
|
}
|
|
3921
|
-
}), _el$
|
|
3922
|
-
insert(_el$
|
|
3934
|
+
}), _el$67);
|
|
3935
|
+
insert(_el$67, createComponent(Show, {
|
|
3923
3936
|
get when() {
|
|
3924
3937
|
return elapsedSeconds() > 0;
|
|
3925
3938
|
},
|
|
3926
3939
|
get children() {
|
|
3927
|
-
var _el$
|
|
3928
|
-
insert(_el$
|
|
3929
|
-
return _el$
|
|
3940
|
+
var _el$70 = _tmpl$1$2();
|
|
3941
|
+
insert(_el$70, () => ` • ${elapsedSeconds()}s`);
|
|
3942
|
+
return _el$70;
|
|
3930
3943
|
}
|
|
3931
3944
|
}), null);
|
|
3932
|
-
return _el$
|
|
3945
|
+
return _el$66;
|
|
3933
3946
|
}
|
|
3934
3947
|
}));
|
|
3935
|
-
return _el$
|
|
3948
|
+
return _el$64;
|
|
3936
3949
|
}
|
|
3937
3950
|
}), createComponent(Show, {
|
|
3938
3951
|
get when() {
|
|
@@ -3944,22 +3957,22 @@ ${contextBlock}` : contextBlock);
|
|
|
3944
3957
|
return runtimeState2().supervisor.pendingApprovals;
|
|
3945
3958
|
},
|
|
3946
3959
|
children: (approval) => (() => {
|
|
3947
|
-
var _el$
|
|
3948
|
-
insert(_el$
|
|
3949
|
-
insert(_el$
|
|
3960
|
+
var _el$143 = _tmpl$42(), _el$144 = _el$143.firstChild, _el$145 = _el$144.nextSibling, _el$146 = _el$145.firstChild, _el$147 = _el$146.firstChild, _el$148 = _el$147.nextSibling, _el$150 = _el$146.nextSibling, _el$151 = _el$150.nextSibling, _el$152 = _el$151.firstChild, _el$153 = _el$152.nextSibling;
|
|
3961
|
+
insert(_el$148, () => approval.name);
|
|
3962
|
+
insert(_el$145, createComponent(Show, {
|
|
3950
3963
|
get when() {
|
|
3951
3964
|
return approval.argsSummary;
|
|
3952
3965
|
},
|
|
3953
3966
|
get children() {
|
|
3954
|
-
var _el$
|
|
3955
|
-
insert(_el$
|
|
3956
|
-
return _el$
|
|
3967
|
+
var _el$149 = _tmpl$41();
|
|
3968
|
+
insert(_el$149, () => approval.argsSummary);
|
|
3969
|
+
return _el$149;
|
|
3957
3970
|
}
|
|
3958
|
-
}), _el$
|
|
3959
|
-
insert(_el$
|
|
3960
|
-
_el$
|
|
3961
|
-
_el$
|
|
3962
|
-
return _el$
|
|
3971
|
+
}), _el$150);
|
|
3972
|
+
insert(_el$150, () => approval.reason);
|
|
3973
|
+
_el$152.$$click = () => void resolveApproval(approval.id, true);
|
|
3974
|
+
_el$153.$$click = () => void resolveApproval(approval.id, false);
|
|
3975
|
+
return _el$143;
|
|
3963
3976
|
})()
|
|
3964
3977
|
});
|
|
3965
3978
|
}
|
|
@@ -3968,14 +3981,14 @@ ${contextBlock}` : contextBlock);
|
|
|
3968
3981
|
return memo(() => messages2().length === 0)() && !isStreaming2();
|
|
3969
3982
|
},
|
|
3970
3983
|
get children() {
|
|
3971
|
-
return _tmpl$
|
|
3984
|
+
return _tmpl$12$2();
|
|
3972
3985
|
}
|
|
3973
3986
|
})];
|
|
3974
3987
|
}
|
|
3975
|
-
}), _el$
|
|
3976
|
-
var _ref$
|
|
3977
|
-
typeof _ref$
|
|
3978
|
-
insert(_el$
|
|
3988
|
+
}), _el$72);
|
|
3989
|
+
var _ref$ = messagesEndRef;
|
|
3990
|
+
typeof _ref$ === "function" ? use(_ref$, _el$72) : messagesEndRef = _el$72;
|
|
3991
|
+
insert(_el$2, createComponent(Show, {
|
|
3979
3992
|
get when() {
|
|
3980
3993
|
return sidebarTab() === "chat";
|
|
3981
3994
|
},
|
|
@@ -3985,85 +3998,85 @@ ${contextBlock}` : contextBlock);
|
|
|
3985
3998
|
return isStreaming2() || messages2().length > 0;
|
|
3986
3999
|
},
|
|
3987
4000
|
get children() {
|
|
3988
|
-
var _el$
|
|
3989
|
-
insert(_el$
|
|
4001
|
+
var _el$73 = _tmpl$15();
|
|
4002
|
+
insert(_el$73, createComponent(Show, {
|
|
3990
4003
|
get when() {
|
|
3991
4004
|
return isStreaming2();
|
|
3992
4005
|
},
|
|
3993
4006
|
get children() {
|
|
3994
|
-
var _el$
|
|
3995
|
-
_el$
|
|
3996
|
-
return _el$
|
|
4007
|
+
var _el$74 = _tmpl$13$1();
|
|
4008
|
+
_el$74.$$click = () => cancel();
|
|
4009
|
+
return _el$74;
|
|
3997
4010
|
}
|
|
3998
4011
|
}), null);
|
|
3999
|
-
insert(_el$
|
|
4012
|
+
insert(_el$73, createComponent(Show, {
|
|
4000
4013
|
get when() {
|
|
4001
4014
|
return memo(() => !!!isStreaming2())() && messages2().length > 0;
|
|
4002
4015
|
},
|
|
4003
4016
|
get children() {
|
|
4004
|
-
var _el$
|
|
4005
|
-
_el$
|
|
4006
|
-
return _el$
|
|
4017
|
+
var _el$75 = _tmpl$14$1();
|
|
4018
|
+
_el$75.$$click = handleRetry;
|
|
4019
|
+
return _el$75;
|
|
4007
4020
|
}
|
|
4008
4021
|
}), null);
|
|
4009
|
-
return _el$
|
|
4022
|
+
return _el$73;
|
|
4010
4023
|
}
|
|
4011
4024
|
}), createComponent(Show, {
|
|
4012
4025
|
get when() {
|
|
4013
4026
|
return highlightCount() > 0;
|
|
4014
4027
|
},
|
|
4015
4028
|
get children() {
|
|
4016
|
-
var _el$
|
|
4017
|
-
_el$
|
|
4018
|
-
var _el$
|
|
4019
|
-
_el$
|
|
4020
|
-
_el$
|
|
4021
|
-
insert(_el$
|
|
4029
|
+
var _el$76 = _tmpl$16(), _el$77 = _el$76.firstChild, _el$78 = _el$77.nextSibling;
|
|
4030
|
+
_el$78.firstChild;
|
|
4031
|
+
var _el$80 = _el$78.nextSibling;
|
|
4032
|
+
_el$77.$$click = () => void scrollToHighlight(highlightIndex() - 1);
|
|
4033
|
+
_el$78.$$click = () => void scrollToHighlight(highlightIndex() < 0 ? 0 : highlightIndex());
|
|
4034
|
+
insert(_el$78, (() => {
|
|
4022
4035
|
var _c$4 = memo(() => highlightIndex() >= 0);
|
|
4023
4036
|
return () => _c$4() ? `${highlightIndex() + 1} / ${highlightCount()}` : `${highlightCount()} highlight${highlightCount() > 1 ? "s" : ""}`;
|
|
4024
4037
|
})(), null);
|
|
4025
|
-
_el$
|
|
4038
|
+
_el$80.$$click = () => void scrollToHighlight(highlightIndex() < 0 ? 0 : highlightIndex() + 1);
|
|
4026
4039
|
createRenderEffect((_p$) => {
|
|
4027
|
-
var _v$
|
|
4028
|
-
_v$
|
|
4029
|
-
_v$
|
|
4040
|
+
var _v$3 = highlightIndex() <= 0, _v$4 = highlightIndex() >= highlightCount() - 1;
|
|
4041
|
+
_v$3 !== _p$.e && (_el$77.disabled = _p$.e = _v$3);
|
|
4042
|
+
_v$4 !== _p$.t && (_el$80.disabled = _p$.t = _v$4);
|
|
4030
4043
|
return _p$;
|
|
4031
4044
|
}, {
|
|
4032
4045
|
e: void 0,
|
|
4033
4046
|
t: void 0
|
|
4034
4047
|
});
|
|
4035
|
-
return _el$
|
|
4048
|
+
return _el$76;
|
|
4036
4049
|
}
|
|
4037
4050
|
}), (() => {
|
|
4038
|
-
var _el$
|
|
4039
|
-
_el$
|
|
4051
|
+
var _el$81 = _tmpl$17(), _el$82 = _el$81.firstChild, _el$83 = _el$82.nextSibling;
|
|
4052
|
+
_el$82.$$keydown = (e) => {
|
|
4040
4053
|
if (e.key === "Enter" && !e.shiftKey) {
|
|
4041
4054
|
e.preventDefault();
|
|
4042
4055
|
void handleChatSend();
|
|
4043
4056
|
}
|
|
4044
4057
|
};
|
|
4045
|
-
_el$
|
|
4046
|
-
var _ref$
|
|
4047
|
-
typeof _ref$
|
|
4048
|
-
_el$
|
|
4049
|
-
createRenderEffect(() => _el$
|
|
4050
|
-
createRenderEffect(() => _el$
|
|
4051
|
-
return _el$
|
|
4058
|
+
_el$82.$$input = (e) => setChatInput(e.currentTarget.value);
|
|
4059
|
+
var _ref$2 = chatInputRef;
|
|
4060
|
+
typeof _ref$2 === "function" ? use(_ref$2, _el$82) : chatInputRef = _el$82;
|
|
4061
|
+
_el$83.$$click = () => void handleChatSend();
|
|
4062
|
+
createRenderEffect(() => _el$83.disabled = !chatInput().trim() || isStreaming2());
|
|
4063
|
+
createRenderEffect(() => _el$82.value = chatInput());
|
|
4064
|
+
return _el$81;
|
|
4052
4065
|
})()];
|
|
4053
4066
|
}
|
|
4054
4067
|
}), null);
|
|
4055
4068
|
createRenderEffect((_p$) => {
|
|
4056
|
-
var _v$
|
|
4057
|
-
_v$
|
|
4058
|
-
_v$
|
|
4059
|
-
_v$
|
|
4060
|
-
_v$
|
|
4061
|
-
_v$
|
|
4062
|
-
_v$
|
|
4063
|
-
_v$
|
|
4064
|
-
_v$
|
|
4065
|
-
_v$
|
|
4066
|
-
_v$
|
|
4069
|
+
var _v$5 = `${sidebarWidth2()}px`, _v$6 = !!isDragging(), _v$7 = !!(sidebarTab() === "supervisor"), _v$8 = sidebarTab() === "supervisor", _v$9 = !!(sidebarTab() === "bookmarks"), _v$0 = sidebarTab() === "bookmarks", _v$1 = !!(sidebarTab() === "checkpoints"), _v$10 = sidebarTab() === "checkpoints", _v$11 = !!(sidebarTab() === "chat"), _v$12 = sidebarTab() === "chat";
|
|
4070
|
+
_v$5 !== _p$.e && setStyleProperty(_el$2, "width", _p$.e = _v$5);
|
|
4071
|
+
_v$6 !== _p$.t && _el$3.classList.toggle("dragging", _p$.t = _v$6);
|
|
4072
|
+
_v$7 !== _p$.a && _el$1.classList.toggle("active", _p$.a = _v$7);
|
|
4073
|
+
_v$8 !== _p$.o && setAttribute(_el$1, "aria-selected", _p$.o = _v$8);
|
|
4074
|
+
_v$9 !== _p$.i && _el$12.classList.toggle("active", _p$.i = _v$9);
|
|
4075
|
+
_v$0 !== _p$.n && setAttribute(_el$12, "aria-selected", _p$.n = _v$0);
|
|
4076
|
+
_v$1 !== _p$.s && _el$13.classList.toggle("active", _p$.s = _v$1);
|
|
4077
|
+
_v$10 !== _p$.h && setAttribute(_el$13, "aria-selected", _p$.h = _v$10);
|
|
4078
|
+
_v$11 !== _p$.r && _el$14.classList.toggle("active", _p$.r = _v$11);
|
|
4079
|
+
_v$12 !== _p$.d && setAttribute(_el$14, "aria-selected", _p$.d = _v$12);
|
|
4067
4080
|
return _p$;
|
|
4068
4081
|
}, {
|
|
4069
4082
|
e: void 0,
|
|
@@ -4077,11 +4090,11 @@ ${contextBlock}` : contextBlock);
|
|
|
4077
4090
|
r: void 0,
|
|
4078
4091
|
d: void 0
|
|
4079
4092
|
});
|
|
4080
|
-
return _el$
|
|
4093
|
+
return _el$2;
|
|
4081
4094
|
}
|
|
4082
4095
|
});
|
|
4083
4096
|
};
|
|
4084
|
-
delegateEvents(["
|
|
4097
|
+
delegateEvents(["pointerdown", "click", "input", "keydown"]);
|
|
4085
4098
|
var _tmpl$$2 = /* @__PURE__ */ template(`<div class=devtools-console>`), _tmpl$2$2 = /* @__PURE__ */ template(`<div class=devtools-empty>Waiting for console output... Console monitoring activates when an agent uses devtools.`), _tmpl$3$1 = /* @__PURE__ */ template(`<div><span></span><span class=console-time></span><span class=console-text></span><span class=console-source>`), _tmpl$4$1 = /* @__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$1 = /* @__PURE__ */ template(`<div class=devtools-empty>Waiting for network requests... Network monitoring activates when an agent uses devtools.`), _tmpl$6$1 = /* @__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$1 = /* @__PURE__ */ template(`<div class=devtools-activity>`), _tmpl$8$1 = /* @__PURE__ */ template(`<div class=devtools-empty>Waiting for agent devtools activity...`), _tmpl$9$1 = /* @__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$1 = /* @__PURE__ */ template(`<span class="devtools-tab-badge error">`), _tmpl$1$1 = /* @__PURE__ */ template(`<span class="devtools-tab-badge count">`), _tmpl$10$1 = /* @__PURE__ */ template(`<div class=export-date-inputs><div class=export-date-row><span class=export-date-label>From</span><input class=export-date-input type=date></div><div class=export-date-row><span class=export-date-label>To</span><input class=export-date-input type=date>`), _tmpl$11$1 = /* @__PURE__ */ template(`<div class=devtools-export-dropdown><div class=export-section><div class=export-section-label>Log Types</div><label class=export-checkbox><input type=checkbox>Console</label><label class=export-checkbox><input type=checkbox>Network</label><label class=export-checkbox><input type=checkbox>Activity</label></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$1 = /* @__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>`);
|
|
4086
4099
|
function formatTime(iso) {
|
|
4087
4100
|
try {
|
|
@@ -4529,7 +4542,7 @@ const DevToolsPanel = () => {
|
|
|
4529
4542
|
})();
|
|
4530
4543
|
};
|
|
4531
4544
|
delegateEvents(["click", "input"]);
|
|
4532
|
-
var _tmpl$$1 = /* @__PURE__ */ template(`<div class=settings-field><label class=settings-label for=chat-provider>Provider</label><select id=chat-provider class="settings-input settings-select">`), _tmpl$2$1 = /* @__PURE__ */ template(`<div class=settings-field><label class=settings-label for=chat-api-key>API Key</label><input id=chat-api-key class=settings-input type=password>`), _tmpl$3 = /* @__PURE__ */ template(`<select id=chat-model class="settings-input settings-select"style=flex:1>`), _tmpl$4 = /* @__PURE__ */ template(`<p class=settings-hint style=color:var(--error)>Could not fetch models — check your API key and connection.`), _tmpl$5 = /* @__PURE__ */ template(`<div class=settings-field><label class=settings-label for=chat-model>Model</label><div style=display:flex;gap:6px;align-items:center><button type=button class=settings-refresh-btn title="Refresh model list">↺`), _tmpl$6 = /* @__PURE__ */ template(`<div class=settings-field><label class=settings-label for=chat-base-url>Base URL</label><input id=chat-base-url class=settings-input>`), _tmpl$7 = /* @__PURE__ */ template(`<div class=command-bar-overlay><div class=settings-panel><h2 class=settings-title>Runtime Settings</h2><div class=settings-callout><div class=settings-callout-title>External Agent Control</div><p class=settings-callout-copy>Vessel is configured to run under an external harness such as Hermes Agent or OpenClaw. Provider and model selection are not configured inside Vessel.</p></div><div class=settings-field><label class=settings-label for=mcp-port>MCP Port</label><input id=mcp-port class=settings-input placeholder=3100><p class=settings-hint>External harnesses connect to Vessel at <code>http://127.0.0.1:<port>/mcp</code>. Changing this value restarts the MCP server immediately.</p></div><div class=settings-field><label class=settings-label for=max-tool-iterations>Max Tool Iterations</label><input id=max-tool-iterations class=settings-input type=number min=10 max=1000 placeholder=200><p class=settings-hint>Maximum number of tool calls the AI agent can make per conversation turn before pausing. Higher values let the agent complete longer multi-step workflows without stopping. Range: 10–1000.</p></div><div class=settings-field><label class=settings-label for=obsidian-vault-path>Obsidian Vault Path</label><input id=obsidian-vault-path class=settings-input placeholder=/home/you/Documents/MyVault><p class=settings-hint>Optional. When set, Vessel memory tools can write markdown notes into this vault for research breadcrumbs and summaries.</p></div><div class=settings-field><label class=settings-label for=agent-transcript-mode>Agent Transcript Monitor</label><select id=agent-transcript-mode class="settings-input settings-select"><option value=off>Off</option><option value=summary>Summary HUD</option><option value=full>Full transcript</option></select><p class=settings-hint>Controls the in-browser transcript monitor when an external harness publishes reasoning or status updates into Vessel via the<code>vessel_publish_transcript</code> MCP tool. Summary HUD shows a compact 2-line status surface; Full transcript shows the recent entry list.</p></div><div class=settings-field><label class=settings-toggle><button type=button class=toggle-switch role=switch><span class=toggle-switch-thumb></span></button><span>Restore last browser session on launch</span></label></div><div class=settings-field><label class=settings-toggle><button type=button class=toggle-switch role=switch><span class=toggle-switch-thumb></span></button><span>Start bookmarks fresh on launch</span></label><p class=settings-hint>Off by default. When enabled, bookmark folders and saved pages are cleared each time Vessel starts.</p></div><div class=settings-section-divider></div><div class=settings-field><label class=settings-toggle><button type=button class=toggle-switch role=switch><span class=toggle-switch-thumb></span></button><span>Enable Chat Assistant</span></label><p class=settings-hint>Adds a Chat tab to the sidebar for conversing with an AI provider of your choice.</p></div><div class=settings-actions><button class=settings-save>Save</button><button class=settings-close>Close`), _tmpl$8 = /* @__PURE__ */ template(`<style>
|
|
4545
|
+
var _tmpl$$1 = /* @__PURE__ */ template(`<div class=settings-field><label class=settings-label for=chat-provider>Provider</label><select id=chat-provider class="settings-input settings-select">`), _tmpl$2$1 = /* @__PURE__ */ template(`<div class=settings-field><label class=settings-label for=chat-api-key>API Key</label><input id=chat-api-key class=settings-input type=password>`), _tmpl$3 = /* @__PURE__ */ template(`<select id=chat-model class="settings-input settings-select"style=flex:1>`), _tmpl$4 = /* @__PURE__ */ template(`<p class=settings-hint style=color:var(--error)>Could not fetch models — check your API key and connection.`), _tmpl$5 = /* @__PURE__ */ template(`<div class=settings-field><label class=settings-label for=chat-model>Model</label><div style=display:flex;gap:6px;align-items:center><button type=button class=settings-refresh-btn title="Refresh model list">↺`), _tmpl$6 = /* @__PURE__ */ template(`<div class=settings-field><label class=settings-label for=chat-base-url>Base URL</label><input id=chat-base-url class=settings-input>`), _tmpl$7 = /* @__PURE__ */ template(`<div class=command-bar-overlay><div class=settings-panel><h2 class=settings-title>Runtime Settings</h2><div class=settings-callout><div class=settings-callout-title>External Agent Control</div><p class=settings-callout-copy>Vessel is configured to run under an external harness such as Hermes Agent or OpenClaw. Provider and model selection are not configured inside Vessel.</p></div><div class=settings-field><label class=settings-label for=default-homepage>Homepage</label><input id=default-homepage class=settings-input placeholder=https://start.duckduckgo.com><p class=settings-hint>The page that opens when you create a new tab or launch Vessel without restoring a previous session.</p></div><div class=settings-field><label class=settings-label for=mcp-port>MCP Port</label><input id=mcp-port class=settings-input placeholder=3100><p class=settings-hint>External harnesses connect to Vessel at <code>http://127.0.0.1:<port>/mcp</code>. Changing this value restarts the MCP server immediately.</p></div><div class=settings-field><label class=settings-label for=max-tool-iterations>Max Tool Iterations</label><input id=max-tool-iterations class=settings-input type=number min=10 max=1000 placeholder=200><p class=settings-hint>Maximum number of tool calls the AI agent can make per conversation turn before pausing. Higher values let the agent complete longer multi-step workflows without stopping. Range: 10–1000.</p></div><div class=settings-field><label class=settings-label for=obsidian-vault-path>Obsidian Vault Path</label><input id=obsidian-vault-path class=settings-input placeholder=/home/you/Documents/MyVault><p class=settings-hint>Optional. When set, Vessel memory tools can write markdown notes into this vault for research breadcrumbs and summaries.</p></div><div class=settings-field><label class=settings-label for=agent-transcript-mode>Agent Transcript Monitor</label><select id=agent-transcript-mode class="settings-input settings-select"><option value=off>Off</option><option value=summary>Summary HUD</option><option value=full>Full transcript</option></select><p class=settings-hint>Controls the in-browser transcript monitor when an external harness publishes reasoning or status updates into Vessel via the<code>vessel_publish_transcript</code> MCP tool. Summary HUD shows a compact 2-line status surface; Full transcript shows the recent entry list.</p></div><div class=settings-field><label class=settings-toggle><button type=button class=toggle-switch role=switch><span class=toggle-switch-thumb></span></button><span>Restore last browser session on launch</span></label></div><div class=settings-field><label class=settings-toggle><button type=button class=toggle-switch role=switch><span class=toggle-switch-thumb></span></button><span>Start bookmarks fresh on launch</span></label><p class=settings-hint>Off by default. When enabled, bookmark folders and saved pages are cleared each time Vessel starts.</p></div><div class=settings-section-divider></div><div class=settings-field><label class=settings-toggle><button type=button class=toggle-switch role=switch><span class=toggle-switch-thumb></span></button><span>Enable Chat Assistant</span></label><p class=settings-hint>Adds a Chat tab to the sidebar for conversing with an AI provider of your choice.</p></div><div class=settings-actions><button class=settings-save>Save</button><button class=settings-close>Close`), _tmpl$8 = /* @__PURE__ */ template(`<style>
|
|
4533
4546
|
.settings-panel {
|
|
4534
4547
|
width: min(440px, calc(100vw - 32px));
|
|
4535
4548
|
max-height: calc(100vh - 48px);
|
|
@@ -4833,6 +4846,7 @@ const Settings = () => {
|
|
|
4833
4846
|
const [maxToolIterations, setMaxToolIterations] = createSignal("200");
|
|
4834
4847
|
const [agentTranscriptMode, setAgentTranscriptMode] = createSignal("summary");
|
|
4835
4848
|
const [health, setHealth] = createSignal(null);
|
|
4849
|
+
const [defaultUrl, setDefaultUrl] = createSignal("https://start.duckduckgo.com");
|
|
4836
4850
|
const [status, setStatus] = createSignal(null);
|
|
4837
4851
|
const [chatEnabled, setChatEnabled] = createSignal(false);
|
|
4838
4852
|
const [chatProviderId, setChatProviderId] = createSignal("anthropic");
|
|
@@ -4890,6 +4904,7 @@ const Settings = () => {
|
|
|
4890
4904
|
const loadState = async () => {
|
|
4891
4905
|
const settings = await window.vessel.settings.get();
|
|
4892
4906
|
const runtimeHealth = await window.vessel.settings.getHealth();
|
|
4907
|
+
setDefaultUrl(settings.defaultUrl ?? "https://start.duckduckgo.com");
|
|
4893
4908
|
setAutoRestoreSession(settings.autoRestoreSession ?? true);
|
|
4894
4909
|
setClearBookmarksOnLaunch(settings.clearBookmarksOnLaunch ?? false);
|
|
4895
4910
|
setObsidianVaultPath(settings.obsidianVaultPath ?? "");
|
|
@@ -4924,6 +4939,7 @@ const Settings = () => {
|
|
|
4924
4939
|
});
|
|
4925
4940
|
return;
|
|
4926
4941
|
}
|
|
4942
|
+
await window.vessel.settings.set("defaultUrl", defaultUrl().trim() || "https://start.duckduckgo.com");
|
|
4927
4943
|
await window.vessel.settings.set("autoRestoreSession", autoRestoreSession());
|
|
4928
4944
|
await window.vessel.settings.set("clearBookmarksOnLaunch", clearBookmarksOnLaunch());
|
|
4929
4945
|
await window.vessel.settings.set("obsidianVaultPath", obsidianVaultPath());
|
|
@@ -4959,83 +4975,85 @@ const Settings = () => {
|
|
|
4959
4975
|
},
|
|
4960
4976
|
get children() {
|
|
4961
4977
|
return [(() => {
|
|
4962
|
-
var _el$ = _tmpl$7(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.nextSibling, _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling, _el$8 = _el$5.nextSibling, _el$9 = _el$8.firstChild, _el$0 = _el$9.nextSibling, _el$1 = _el$8.nextSibling, _el$10 = _el$1.firstChild, _el$11 = _el$10.nextSibling, _el$12 = _el$1.nextSibling, _el$13 = _el$12.firstChild, _el$14 = _el$13.nextSibling, _el$15 = _el$12.nextSibling, _el$16 = _el$15.firstChild, _el$17 = _el$16.
|
|
4978
|
+
var _el$ = _tmpl$7(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.nextSibling, _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling, _el$8 = _el$5.nextSibling, _el$9 = _el$8.firstChild, _el$0 = _el$9.nextSibling, _el$1 = _el$8.nextSibling, _el$10 = _el$1.firstChild, _el$11 = _el$10.nextSibling, _el$12 = _el$1.nextSibling, _el$13 = _el$12.firstChild, _el$14 = _el$13.nextSibling, _el$15 = _el$12.nextSibling, _el$16 = _el$15.firstChild, _el$17 = _el$16.nextSibling, _el$18 = _el$15.nextSibling, _el$19 = _el$18.firstChild, _el$20 = _el$19.firstChild, _el$21 = _el$18.nextSibling, _el$22 = _el$21.firstChild, _el$23 = _el$22.firstChild, _el$24 = _el$21.nextSibling, _el$25 = _el$24.nextSibling, _el$26 = _el$25.firstChild, _el$27 = _el$26.firstChild, _el$43 = _el$25.nextSibling, _el$44 = _el$43.firstChild, _el$45 = _el$44.nextSibling;
|
|
4963
4979
|
addEventListener(_el$, "click", closeSettings);
|
|
4964
4980
|
_el$2.$$keydown = handleKeyDown;
|
|
4965
4981
|
_el$2.$$click = (e) => e.stopPropagation();
|
|
4966
|
-
_el$7.$$input = (e) =>
|
|
4982
|
+
_el$7.$$input = (e) => setDefaultUrl(e.currentTarget.value);
|
|
4967
4983
|
setAttribute(_el$7, "spellcheck", false);
|
|
4968
|
-
_el$0.$$input = (e) =>
|
|
4984
|
+
_el$0.$$input = (e) => setMcpPort(e.currentTarget.value);
|
|
4985
|
+
setAttribute(_el$0, "spellcheck", false);
|
|
4986
|
+
_el$11.$$input = (e) => setMaxToolIterations(e.currentTarget.value);
|
|
4969
4987
|
insert(_el$2, createComponent(Show, {
|
|
4970
4988
|
get when() {
|
|
4971
4989
|
return health();
|
|
4972
4990
|
},
|
|
4973
4991
|
children: (currentHealth) => (() => {
|
|
4974
|
-
var _el$
|
|
4975
|
-
_el$
|
|
4976
|
-
insert(_el$
|
|
4977
|
-
insert(_el$
|
|
4978
|
-
insert(_el$
|
|
4992
|
+
var _el$47 = _tmpl$0(), _el$48 = _el$47.firstChild, _el$49 = _el$48.nextSibling, _el$50 = _el$49.firstChild, _el$52 = _el$50.nextSibling;
|
|
4993
|
+
_el$52.nextSibling;
|
|
4994
|
+
insert(_el$52, () => currentHealth().mcp.status);
|
|
4995
|
+
insert(_el$49, () => currentHealth().mcp.message, null);
|
|
4996
|
+
insert(_el$47, createComponent(Show, {
|
|
4979
4997
|
get when() {
|
|
4980
4998
|
return currentHealth().mcp.endpoint;
|
|
4981
4999
|
},
|
|
4982
5000
|
children: (endpoint) => (() => {
|
|
4983
|
-
var _el$
|
|
4984
|
-
insert(_el$
|
|
4985
|
-
return _el$
|
|
5001
|
+
var _el$55 = _tmpl$1(), _el$56 = _el$55.firstChild, _el$57 = _el$56.nextSibling;
|
|
5002
|
+
insert(_el$57, endpoint);
|
|
5003
|
+
return _el$55;
|
|
4986
5004
|
})()
|
|
4987
5005
|
}), null);
|
|
4988
|
-
insert(_el$
|
|
5006
|
+
insert(_el$47, createComponent(Show, {
|
|
4989
5007
|
get when() {
|
|
4990
5008
|
return currentHealth().startupIssues.length > 0;
|
|
4991
5009
|
},
|
|
4992
5010
|
get children() {
|
|
4993
|
-
var _el$
|
|
4994
|
-
insert(_el$
|
|
4995
|
-
var _el$
|
|
4996
|
-
insert(_el$
|
|
4997
|
-
insert(_el$
|
|
4998
|
-
insert(_el$
|
|
5011
|
+
var _el$54 = _tmpl$9();
|
|
5012
|
+
insert(_el$54, () => currentHealth().startupIssues.map((issue) => (() => {
|
|
5013
|
+
var _el$58 = _tmpl$10(), _el$59 = _el$58.firstChild, _el$60 = _el$59.nextSibling;
|
|
5014
|
+
insert(_el$59, () => issue.title);
|
|
5015
|
+
insert(_el$60, () => issue.detail);
|
|
5016
|
+
insert(_el$58, createComponent(Show, {
|
|
4999
5017
|
get when() {
|
|
5000
5018
|
return issue.action;
|
|
5001
5019
|
},
|
|
5002
5020
|
children: (action) => (() => {
|
|
5003
|
-
var _el$
|
|
5004
|
-
insert(_el$
|
|
5005
|
-
return _el$
|
|
5021
|
+
var _el$61 = _tmpl$11();
|
|
5022
|
+
insert(_el$61, action);
|
|
5023
|
+
return _el$61;
|
|
5006
5024
|
})()
|
|
5007
5025
|
}), null);
|
|
5008
5026
|
createRenderEffect((_p$) => {
|
|
5009
5027
|
var _v$7 = !!(issue.severity === "warning"), _v$8 = !!(issue.severity === "error");
|
|
5010
|
-
_v$7 !== _p$.e && _el$
|
|
5011
|
-
_v$8 !== _p$.t && _el$
|
|
5028
|
+
_v$7 !== _p$.e && _el$58.classList.toggle("warning", _p$.e = _v$7);
|
|
5029
|
+
_v$8 !== _p$.t && _el$58.classList.toggle("error", _p$.t = _v$8);
|
|
5012
5030
|
return _p$;
|
|
5013
5031
|
}, {
|
|
5014
5032
|
e: void 0,
|
|
5015
5033
|
t: void 0
|
|
5016
5034
|
});
|
|
5017
|
-
return _el$
|
|
5035
|
+
return _el$58;
|
|
5018
5036
|
})()));
|
|
5019
|
-
return _el$
|
|
5037
|
+
return _el$54;
|
|
5020
5038
|
}
|
|
5021
5039
|
}), null);
|
|
5022
|
-
return _el$
|
|
5040
|
+
return _el$47;
|
|
5023
5041
|
})()
|
|
5024
|
-
}), _el$
|
|
5025
|
-
_el$
|
|
5026
|
-
setAttribute(_el$
|
|
5027
|
-
_el$
|
|
5028
|
-
_el$
|
|
5029
|
-
_el$
|
|
5030
|
-
_el$
|
|
5042
|
+
}), _el$12);
|
|
5043
|
+
_el$14.$$input = (e) => setObsidianVaultPath(e.currentTarget.value);
|
|
5044
|
+
setAttribute(_el$14, "spellcheck", false);
|
|
5045
|
+
_el$17.addEventListener("change", (e) => setAgentTranscriptMode(e.currentTarget.value));
|
|
5046
|
+
_el$20.$$click = () => setAutoRestoreSession(!autoRestoreSession());
|
|
5047
|
+
_el$23.$$click = () => setClearBookmarksOnLaunch(!clearBookmarksOnLaunch());
|
|
5048
|
+
_el$27.$$click = () => setChatEnabled(!chatEnabled());
|
|
5031
5049
|
insert(_el$2, createComponent(Show, {
|
|
5032
5050
|
get when() {
|
|
5033
5051
|
return chatEnabled();
|
|
5034
5052
|
},
|
|
5035
5053
|
get children() {
|
|
5036
5054
|
return [(() => {
|
|
5037
|
-
var _el$
|
|
5038
|
-
_el$
|
|
5055
|
+
var _el$28 = _tmpl$$1(), _el$29 = _el$28.firstChild, _el$30 = _el$29.nextSibling;
|
|
5056
|
+
_el$30.addEventListener("change", (e) => {
|
|
5039
5057
|
const id = e.currentTarget.value;
|
|
5040
5058
|
setChatProviderId(id);
|
|
5041
5059
|
setChatModel("");
|
|
@@ -5044,65 +5062,65 @@ const Settings = () => {
|
|
|
5044
5062
|
setProviderModels([]);
|
|
5045
5063
|
setModelFetchState("idle");
|
|
5046
5064
|
});
|
|
5047
|
-
insert(_el$
|
|
5065
|
+
insert(_el$30, createComponent(For, {
|
|
5048
5066
|
each: CHAT_PROVIDERS,
|
|
5049
5067
|
children: (p) => (() => {
|
|
5050
|
-
var _el$
|
|
5051
|
-
insert(_el$
|
|
5052
|
-
createRenderEffect(() => _el$
|
|
5053
|
-
return _el$
|
|
5068
|
+
var _el$62 = _tmpl$12();
|
|
5069
|
+
insert(_el$62, () => p.name);
|
|
5070
|
+
createRenderEffect(() => _el$62.value = p.id);
|
|
5071
|
+
return _el$62;
|
|
5054
5072
|
})()
|
|
5055
5073
|
}));
|
|
5056
|
-
createRenderEffect(() => _el$
|
|
5057
|
-
return _el$
|
|
5074
|
+
createRenderEffect(() => _el$30.value = chatProviderId());
|
|
5075
|
+
return _el$28;
|
|
5058
5076
|
})(), createComponent(Show, {
|
|
5059
5077
|
get when() {
|
|
5060
5078
|
return chatProviderMeta().requiresKey;
|
|
5061
5079
|
},
|
|
5062
5080
|
get children() {
|
|
5063
|
-
var _el$
|
|
5064
|
-
_el$
|
|
5065
|
-
setAttribute(_el$
|
|
5066
|
-
createRenderEffect(() => setAttribute(_el$
|
|
5067
|
-
createRenderEffect(() => _el$
|
|
5068
|
-
return _el$
|
|
5081
|
+
var _el$31 = _tmpl$2$1(), _el$32 = _el$31.firstChild, _el$33 = _el$32.nextSibling;
|
|
5082
|
+
_el$33.$$input = (e) => setChatApiKey(e.currentTarget.value);
|
|
5083
|
+
setAttribute(_el$33, "spellcheck", false);
|
|
5084
|
+
createRenderEffect(() => setAttribute(_el$33, "placeholder", chatProviderMeta().keyPlaceholder));
|
|
5085
|
+
createRenderEffect(() => _el$33.value = chatApiKey());
|
|
5086
|
+
return _el$31;
|
|
5069
5087
|
}
|
|
5070
5088
|
}), (() => {
|
|
5071
|
-
var _el$
|
|
5072
|
-
insert(_el$
|
|
5089
|
+
var _el$34 = _tmpl$5(), _el$35 = _el$34.firstChild, _el$36 = _el$35.nextSibling, _el$38 = _el$36.firstChild;
|
|
5090
|
+
insert(_el$36, createComponent(Show, {
|
|
5073
5091
|
get when() {
|
|
5074
5092
|
return providerModels().length > 0;
|
|
5075
5093
|
},
|
|
5076
5094
|
get fallback() {
|
|
5077
5095
|
return (() => {
|
|
5078
|
-
var _el$
|
|
5079
|
-
_el$
|
|
5080
|
-
setAttribute(_el$
|
|
5081
|
-
createRenderEffect(() => setAttribute(_el$
|
|
5082
|
-
createRenderEffect(() => _el$
|
|
5083
|
-
return _el$
|
|
5096
|
+
var _el$63 = _tmpl$13();
|
|
5097
|
+
_el$63.$$input = (e) => setChatModel(e.currentTarget.value);
|
|
5098
|
+
setAttribute(_el$63, "spellcheck", false);
|
|
5099
|
+
createRenderEffect(() => setAttribute(_el$63, "placeholder", modelFetchState() === "loading" ? "Fetching models…" : chatProviderMeta().requiresKey && !chatApiKey().trim() ? "Enter API key to load models" : chatProviderMeta().defaultModel || "model name"));
|
|
5100
|
+
createRenderEffect(() => _el$63.value = chatModel());
|
|
5101
|
+
return _el$63;
|
|
5084
5102
|
})();
|
|
5085
5103
|
},
|
|
5086
5104
|
get children() {
|
|
5087
|
-
var _el$
|
|
5088
|
-
_el$
|
|
5089
|
-
insert(_el$
|
|
5105
|
+
var _el$37 = _tmpl$3();
|
|
5106
|
+
_el$37.addEventListener("change", (e) => setChatModel(e.currentTarget.value));
|
|
5107
|
+
insert(_el$37, createComponent(For, {
|
|
5090
5108
|
get each() {
|
|
5091
5109
|
return providerModels();
|
|
5092
5110
|
},
|
|
5093
5111
|
children: (m) => (() => {
|
|
5094
|
-
var _el$
|
|
5095
|
-
_el$
|
|
5096
|
-
insert(_el$
|
|
5097
|
-
return _el$
|
|
5112
|
+
var _el$64 = _tmpl$12();
|
|
5113
|
+
_el$64.value = m;
|
|
5114
|
+
insert(_el$64, m);
|
|
5115
|
+
return _el$64;
|
|
5098
5116
|
})()
|
|
5099
5117
|
}));
|
|
5100
|
-
createRenderEffect(() => _el$
|
|
5101
|
-
return _el$
|
|
5118
|
+
createRenderEffect(() => _el$37.value = chatModel());
|
|
5119
|
+
return _el$37;
|
|
5102
5120
|
}
|
|
5103
|
-
}), _el$
|
|
5104
|
-
_el$
|
|
5105
|
-
insert(_el$
|
|
5121
|
+
}), _el$38);
|
|
5122
|
+
_el$38.$$click = doFetchModels;
|
|
5123
|
+
insert(_el$34, createComponent(Show, {
|
|
5106
5124
|
get when() {
|
|
5107
5125
|
return modelFetchState() === "error";
|
|
5108
5126
|
},
|
|
@@ -5110,52 +5128,52 @@ const Settings = () => {
|
|
|
5110
5128
|
return _tmpl$4();
|
|
5111
5129
|
}
|
|
5112
5130
|
}), null);
|
|
5113
|
-
createRenderEffect(() => _el$
|
|
5114
|
-
return _el$
|
|
5131
|
+
createRenderEffect(() => _el$38.disabled = modelFetchState() === "loading");
|
|
5132
|
+
return _el$34;
|
|
5115
5133
|
})(), createComponent(Show, {
|
|
5116
5134
|
get when() {
|
|
5117
5135
|
return chatProviderMeta().needsBaseUrl || chatProviderId() === "custom";
|
|
5118
5136
|
},
|
|
5119
5137
|
get children() {
|
|
5120
|
-
var _el$
|
|
5121
|
-
_el$
|
|
5122
|
-
setAttribute(_el$
|
|
5123
|
-
createRenderEffect(() => setAttribute(_el$
|
|
5124
|
-
createRenderEffect(() => _el$
|
|
5125
|
-
return _el$
|
|
5138
|
+
var _el$40 = _tmpl$6(), _el$41 = _el$40.firstChild, _el$42 = _el$41.nextSibling;
|
|
5139
|
+
_el$42.$$input = (e) => setChatBaseUrl(e.currentTarget.value);
|
|
5140
|
+
setAttribute(_el$42, "spellcheck", false);
|
|
5141
|
+
createRenderEffect(() => setAttribute(_el$42, "placeholder", chatProviderMeta().defaultBaseUrl ?? "https://..."));
|
|
5142
|
+
createRenderEffect(() => _el$42.value = chatBaseUrl());
|
|
5143
|
+
return _el$40;
|
|
5126
5144
|
}
|
|
5127
5145
|
})];
|
|
5128
5146
|
}
|
|
5129
|
-
}), _el$
|
|
5130
|
-
_el$
|
|
5131
|
-
addEventListener(_el$
|
|
5147
|
+
}), _el$43);
|
|
5148
|
+
_el$44.$$click = handleSave;
|
|
5149
|
+
addEventListener(_el$45, "click", closeSettings);
|
|
5132
5150
|
insert(_el$2, createComponent(Show, {
|
|
5133
5151
|
get when() {
|
|
5134
5152
|
return status();
|
|
5135
5153
|
},
|
|
5136
5154
|
children: (currentStatus) => (() => {
|
|
5137
|
-
var _el$
|
|
5138
|
-
insert(_el$
|
|
5155
|
+
var _el$65 = _tmpl$14();
|
|
5156
|
+
insert(_el$65, () => currentStatus().text);
|
|
5139
5157
|
createRenderEffect((_p$) => {
|
|
5140
5158
|
var _v$9 = !!(currentStatus().kind === "success"), _v$0 = !!(currentStatus().kind === "error");
|
|
5141
|
-
_v$9 !== _p$.e && _el$
|
|
5142
|
-
_v$0 !== _p$.t && _el$
|
|
5159
|
+
_v$9 !== _p$.e && _el$65.classList.toggle("success", _p$.e = _v$9);
|
|
5160
|
+
_v$0 !== _p$.t && _el$65.classList.toggle("error", _p$.t = _v$0);
|
|
5143
5161
|
return _p$;
|
|
5144
5162
|
}, {
|
|
5145
5163
|
e: void 0,
|
|
5146
5164
|
t: void 0
|
|
5147
5165
|
});
|
|
5148
|
-
return _el$
|
|
5166
|
+
return _el$65;
|
|
5149
5167
|
})()
|
|
5150
5168
|
}), null);
|
|
5151
5169
|
createRenderEffect((_p$) => {
|
|
5152
5170
|
var _v$ = !!autoRestoreSession(), _v$2 = autoRestoreSession(), _v$3 = !!clearBookmarksOnLaunch(), _v$4 = clearBookmarksOnLaunch(), _v$5 = !!chatEnabled(), _v$6 = chatEnabled();
|
|
5153
|
-
_v$ !== _p$.e && _el$
|
|
5154
|
-
_v$2 !== _p$.t && setAttribute(_el$
|
|
5155
|
-
_v$3 !== _p$.a && _el$
|
|
5156
|
-
_v$4 !== _p$.o && setAttribute(_el$
|
|
5157
|
-
_v$5 !== _p$.i && _el$
|
|
5158
|
-
_v$6 !== _p$.n && setAttribute(_el$
|
|
5171
|
+
_v$ !== _p$.e && _el$20.classList.toggle("on", _p$.e = _v$);
|
|
5172
|
+
_v$2 !== _p$.t && setAttribute(_el$20, "aria-checked", _p$.t = _v$2);
|
|
5173
|
+
_v$3 !== _p$.a && _el$23.classList.toggle("on", _p$.a = _v$3);
|
|
5174
|
+
_v$4 !== _p$.o && setAttribute(_el$23, "aria-checked", _p$.o = _v$4);
|
|
5175
|
+
_v$5 !== _p$.i && _el$27.classList.toggle("on", _p$.i = _v$5);
|
|
5176
|
+
_v$6 !== _p$.n && setAttribute(_el$27, "aria-checked", _p$.n = _v$6);
|
|
5159
5177
|
return _p$;
|
|
5160
5178
|
}, {
|
|
5161
5179
|
e: void 0,
|
|
@@ -5165,10 +5183,11 @@ const Settings = () => {
|
|
|
5165
5183
|
i: void 0,
|
|
5166
5184
|
n: void 0
|
|
5167
5185
|
});
|
|
5168
|
-
createRenderEffect(() => _el$7.value =
|
|
5169
|
-
createRenderEffect(() => _el$0.value =
|
|
5170
|
-
createRenderEffect(() => _el$11.value =
|
|
5171
|
-
createRenderEffect(() => _el$14.value =
|
|
5186
|
+
createRenderEffect(() => _el$7.value = defaultUrl());
|
|
5187
|
+
createRenderEffect(() => _el$0.value = mcpPort());
|
|
5188
|
+
createRenderEffect(() => _el$11.value = maxToolIterations());
|
|
5189
|
+
createRenderEffect(() => _el$14.value = obsidianVaultPath());
|
|
5190
|
+
createRenderEffect(() => _el$17.value = agentTranscriptMode());
|
|
5172
5191
|
return _el$;
|
|
5173
5192
|
})(), _tmpl$8()];
|
|
5174
5193
|
}
|