@quanta-intellect/vessel-browser 0.1.104 → 0.1.114
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 +5 -5
- package/out/main/index.js +867 -557
- package/out/preload/content-script.js +20 -3
- package/out/preload/index.js +7 -0
- package/out/renderer/assets/{index-D3ABnKy4.js → index-CT4KWUML.js} +527 -357
- package/out/renderer/index.html +1 -1
- package/package.json +1 -1
|
@@ -2301,7 +2301,7 @@ function getAgentPresence(state, currentTime = Date.now()) {
|
|
|
2301
2301
|
}
|
|
2302
2302
|
return "idle";
|
|
2303
2303
|
}
|
|
2304
|
-
var _tmpl$$p = /* @__PURE__ */ template(`<img class=tab-favicon alt>`), _tmpl$2$o = /* @__PURE__ */ template(`<span class=tab-favicon-fallback>`), _tmpl$3$l = /* @__PURE__ */ template(`<div class=tab-bar><div class=tab-list></div><div class=tab-actions><button class=tab-new data-tooltip="New window"data-tooltip-pos=left></button><button class=tab-new data-tooltip="Add active tab to group"data-tooltip-pos=left></button><button class=tab-new data-tooltip="New tab"data-tooltip-pos=left></button><button class="tab-new tab-new-private"data-tooltip="Private window"data-tooltip-pos=left><svg width=12 height=12 viewBox="0 0 16 16"fill=currentColor><path d="M8 1a7 7 0 100 14A7 7 0 008 1zm0 1.5a5.5 5.5 0 110 11 5.5 5.5 0 010-11z">`), _tmpl$4$l = /* @__PURE__ */ template(`<button><span class=tab-group-dot></span><span class=tab-group-name></span><span class=tab-group-count>`), _tmpl$5$i = /* @__PURE__ */ template(`<button class="tab-audio tab-audio-pinned">`), _tmpl$6$g = /* @__PURE__ */ template(`<div role=tab>`), _tmpl$7$d = /* @__PURE__ */ template(`<span class=tab-title>`), _tmpl$8$a = /* @__PURE__ */ template(`<button class=tab-audio>`), _tmpl$9$
|
|
2304
|
+
var _tmpl$$p = /* @__PURE__ */ template(`<img class=tab-favicon alt>`), _tmpl$2$o = /* @__PURE__ */ template(`<span class=tab-favicon-fallback>`), _tmpl$3$l = /* @__PURE__ */ template(`<div class=tab-bar><div class=tab-list></div><div class=tab-actions><button class=tab-new data-tooltip="New window"data-tooltip-pos=left></button><button class=tab-new data-tooltip="Add active tab to group"data-tooltip-pos=left></button><button class=tab-new data-tooltip="New tab"data-tooltip-pos=left></button><button class="tab-new tab-new-private"data-tooltip="Private window"data-tooltip-pos=left><svg width=12 height=12 viewBox="0 0 16 16"fill=currentColor><path d="M8 1a7 7 0 100 14A7 7 0 008 1zm0 1.5a5.5 5.5 0 110 11 5.5 5.5 0 010-11z">`), _tmpl$4$l = /* @__PURE__ */ template(`<button><span class=tab-group-dot></span><span class=tab-group-name></span><span class=tab-group-count>`), _tmpl$5$i = /* @__PURE__ */ template(`<button class="tab-audio tab-audio-pinned">`), _tmpl$6$g = /* @__PURE__ */ template(`<div role=tab>`), _tmpl$7$d = /* @__PURE__ */ template(`<span class=tab-title>`), _tmpl$8$a = /* @__PURE__ */ template(`<button class=tab-audio>`), _tmpl$9$9 = /* @__PURE__ */ template(`<button class=tab-close>×`), _tmpl$0$7 = /* @__PURE__ */ template(`<span class=tab-agent-indicator aria-hidden=true title="Agent active on this tab">`), _tmpl$1$7 = /* @__PURE__ */ template(`<span class=tab-loading>`);
|
|
2305
2305
|
const TAB_CLOSE_MS = 200;
|
|
2306
2306
|
function stringToHue(str) {
|
|
2307
2307
|
let hash = 0;
|
|
@@ -2360,6 +2360,12 @@ const TabBar = () => {
|
|
|
2360
2360
|
const [closingTabIds, setClosingTabIds] = createSignal(/* @__PURE__ */ new Set());
|
|
2361
2361
|
const modelActiveTabIds = createMemo(() => getAgentActiveTabIds(runtimeState2(), now2()));
|
|
2362
2362
|
const tabEntries = createMemo(() => {
|
|
2363
|
+
const groupCounts = /* @__PURE__ */ new Map();
|
|
2364
|
+
for (const tab of tabs2()) {
|
|
2365
|
+
if (tab.groupId) {
|
|
2366
|
+
groupCounts.set(tab.groupId, (groupCounts.get(tab.groupId) ?? 0) + 1);
|
|
2367
|
+
}
|
|
2368
|
+
}
|
|
2363
2369
|
const seenGroups = /* @__PURE__ */ new Set();
|
|
2364
2370
|
return tabs2().flatMap((tab) => {
|
|
2365
2371
|
const entries2 = [];
|
|
@@ -2371,7 +2377,7 @@ const TabBar = () => {
|
|
|
2371
2377
|
name: tab.groupName || "Group",
|
|
2372
2378
|
color: tab.groupColor || "blue",
|
|
2373
2379
|
collapsed: !!tab.groupCollapsed,
|
|
2374
|
-
count:
|
|
2380
|
+
count: groupCounts.get(tab.groupId) ?? 0
|
|
2375
2381
|
});
|
|
2376
2382
|
}
|
|
2377
2383
|
if (!tab.groupCollapsed || tab.id === activeTabId2()) {
|
|
@@ -2516,7 +2522,7 @@ const TabBar = () => {
|
|
|
2516
2522
|
return _el$15;
|
|
2517
2523
|
}
|
|
2518
2524
|
}), memo(() => memo(() => !!tab.isLoading)() && _tmpl$1$7()), (() => {
|
|
2519
|
-
var _el$16 = _tmpl$9$
|
|
2525
|
+
var _el$16 = _tmpl$9$9();
|
|
2520
2526
|
_el$16.$$click = (e) => {
|
|
2521
2527
|
e.stopPropagation();
|
|
2522
2528
|
handleClose(tab.id);
|
|
@@ -2733,8 +2739,10 @@ function useUI() {
|
|
|
2733
2739
|
};
|
|
2734
2740
|
}
|
|
2735
2741
|
const logger$3 = createLogger("HistoryStore");
|
|
2742
|
+
const HISTORY_PAGE_SIZE = 200;
|
|
2736
2743
|
const INITIAL$1 = { entries: [] };
|
|
2737
2744
|
const [historyState, setHistoryState] = createSignal(INITIAL$1);
|
|
2745
|
+
const [historyTotal, setHistoryTotal] = createSignal(0);
|
|
2738
2746
|
let initialized$3 = false;
|
|
2739
2747
|
let initPromise$1 = null;
|
|
2740
2748
|
async function init$3() {
|
|
@@ -2743,9 +2751,13 @@ async function init$3() {
|
|
|
2743
2751
|
initialized$3 = true;
|
|
2744
2752
|
initPromise$1 = (async () => {
|
|
2745
2753
|
try {
|
|
2746
|
-
const
|
|
2747
|
-
setHistoryState(
|
|
2748
|
-
|
|
2754
|
+
const page = await window.vessel.history.list(0, HISTORY_PAGE_SIZE);
|
|
2755
|
+
setHistoryState({ entries: page.entries });
|
|
2756
|
+
setHistoryTotal(page.total);
|
|
2757
|
+
window.vessel.history.onUpdate((page2) => {
|
|
2758
|
+
setHistoryState({ entries: page2.entries });
|
|
2759
|
+
setHistoryTotal(page2.total);
|
|
2760
|
+
});
|
|
2749
2761
|
} catch (error) {
|
|
2750
2762
|
initialized$3 = false;
|
|
2751
2763
|
logger$3.error("Failed to initialize history store:", error);
|
|
@@ -2757,8 +2769,19 @@ async function init$3() {
|
|
|
2757
2769
|
}
|
|
2758
2770
|
function useHistory() {
|
|
2759
2771
|
void init$3();
|
|
2772
|
+
const loadMore = async (limit = HISTORY_PAGE_SIZE) => {
|
|
2773
|
+
const current = historyState().entries;
|
|
2774
|
+
const page = await window.vessel.history.list(current.length, limit);
|
|
2775
|
+
setHistoryState({ entries: [...current, ...page.entries] });
|
|
2776
|
+
setHistoryTotal(page.total);
|
|
2777
|
+
return page;
|
|
2778
|
+
};
|
|
2760
2779
|
return {
|
|
2761
2780
|
historyState,
|
|
2781
|
+
historyTotal,
|
|
2782
|
+
hasMore: () => historyState().entries.length < historyTotal(),
|
|
2783
|
+
loadMore,
|
|
2784
|
+
list: (offset, limit) => window.vessel.history.list(offset, limit),
|
|
2762
2785
|
search: (query) => window.vessel.history.search(query),
|
|
2763
2786
|
clear: () => window.vessel.history.clear()
|
|
2764
2787
|
};
|
|
@@ -3003,7 +3026,7 @@ const SEARCH_ENGINE_PRESETS = {
|
|
|
3003
3026
|
ecosia: { label: "Ecosia", url: "https://www.ecosia.org/search?q=" },
|
|
3004
3027
|
kagi: { label: "Kagi", url: "https://kagi.com/search?q=" }
|
|
3005
3028
|
};
|
|
3006
|
-
var _tmpl$$n = /* @__PURE__ */ template(`<div class=private-badge title="Private Browsing - history and cookies are not saved"><svg width=12 height=12 viewBox="0 0 16 16"fill=currentColor><path d="M8 1a7 7 0 100 14A7 7 0 008 1zm0 1.5a5.5 5.5 0 110 11 5.5 5.5 0 010-11zM5.5 7a1.5 1.5 0 103 0 1.5 1.5 0 00-3 0zm3.5 3.5c0-1-1.5-2-2.5-2s-2.5 1-2.5 2"></path></svg><span>Private`), _tmpl$2$m = /* @__PURE__ */ template(`<svg width=14 height=14 viewBox="0 0 14 14"fill=currentColor><path d="M7 1a4 4 0 00-4 4v2H1.5a.5.5 0 00-.5.5v5a.5.5 0 00.5.5h11a.5.5 0 00.5-.5v-5a.5.5 0 00-.5-.5H11V5a4 4 0 00-4-4zm0 1a3 3 0 013 3v2H4V5a3 3 0 013-3z">`), _tmpl$3$j = /* @__PURE__ */ template(`<svg width=14 height=14 viewBox="0 0 14 14"fill=currentColor><path d="M7 1a4 4 0 00-4 4v2H1.5a.5.5 0 00-.5.5v5a.5.5 0 00.5.5h11a.5.5 0 00.5-.5v-5a.5.5 0 00-.5-.5H11V5a4 4 0 00-4-4zm0 1a3 3 0 013 3v2H4V5a3 3 0 013-3z"></path><line x1=2 y1=12 x2=12 y2=2 stroke=currentColor stroke-width=1.5>`), _tmpl$4$j = /* @__PURE__ */ template(`<div class=security-indicator-wrapper><button>`), _tmpl$5$g = /* @__PURE__ */ template(`<div id=address-autocomplete class=autocomplete-dropdown role=listbox>`), _tmpl$6$f = /* @__PURE__ */ template(`<div><span class=agent-status-dot aria-hidden=true></span><span class=agent-status-text>`), _tmpl$7$c = /* @__PURE__ */ template(`<button class="agent-status-badge recent"title="Open the What Changed timeline"style=cursor:pointer;font-size:11px><span class=agent-status-dot aria-hidden=true style=background:#f59e0b></span><span class=agent-status-text>What Changed?`), _tmpl$8$9 = /* @__PURE__ */ template(`<span class=page-diff-burst-meta>Updated <!> times over `), _tmpl$9$
|
|
3029
|
+
var _tmpl$$n = /* @__PURE__ */ template(`<div class=private-badge title="Private Browsing - history and cookies are not saved"><svg width=12 height=12 viewBox="0 0 16 16"fill=currentColor><path d="M8 1a7 7 0 100 14A7 7 0 008 1zm0 1.5a5.5 5.5 0 110 11 5.5 5.5 0 010-11zM5.5 7a1.5 1.5 0 103 0 1.5 1.5 0 00-3 0zm3.5 3.5c0-1-1.5-2-2.5-2s-2.5 1-2.5 2"></path></svg><span>Private`), _tmpl$2$m = /* @__PURE__ */ template(`<svg width=14 height=14 viewBox="0 0 14 14"fill=currentColor><path d="M7 1a4 4 0 00-4 4v2H1.5a.5.5 0 00-.5.5v5a.5.5 0 00.5.5h11a.5.5 0 00.5-.5v-5a.5.5 0 00-.5-.5H11V5a4 4 0 00-4-4zm0 1a3 3 0 013 3v2H4V5a3 3 0 013-3z">`), _tmpl$3$j = /* @__PURE__ */ template(`<svg width=14 height=14 viewBox="0 0 14 14"fill=currentColor><path d="M7 1a4 4 0 00-4 4v2H1.5a.5.5 0 00-.5.5v5a.5.5 0 00.5.5h11a.5.5 0 00.5-.5v-5a.5.5 0 00-.5-.5H11V5a4 4 0 00-4-4zm0 1a3 3 0 013 3v2H4V5a3 3 0 013-3z"></path><line x1=2 y1=12 x2=12 y2=2 stroke=currentColor stroke-width=1.5>`), _tmpl$4$j = /* @__PURE__ */ template(`<div class=security-indicator-wrapper><button>`), _tmpl$5$g = /* @__PURE__ */ template(`<div id=address-autocomplete class=autocomplete-dropdown role=listbox>`), _tmpl$6$f = /* @__PURE__ */ template(`<div><span class=agent-status-dot aria-hidden=true></span><span class=agent-status-text>`), _tmpl$7$c = /* @__PURE__ */ template(`<button class="agent-status-badge recent"title="Open the What Changed timeline"style=cursor:pointer;font-size:11px><span class=agent-status-dot aria-hidden=true style=background:#f59e0b></span><span class=agent-status-text>What Changed?`), _tmpl$8$9 = /* @__PURE__ */ template(`<span class=page-diff-burst-meta>Updated <!> times over `), _tmpl$9$8 = /* @__PURE__ */ template(`<div class=page-diff-burst-history><div class=page-diff-burst-history-label>Recent detections`), _tmpl$0$6 = /* @__PURE__ */ template(`<div class=page-diff-popup><div class=page-diff-popup-header><div class=page-diff-popup-header-copy><span>Compared with your last visit</span><span class=page-diff-burst-meta>Previous snapshot from </span></div><div style=display:flex;gap:8px;align-items:center><button class=nav-btn title="Open the full What Changed timeline"style="height:24px;min-width:auto;padding:0 8px">Timeline</button><button class=page-diff-popup-close>×`), _tmpl$1$6 = /* @__PURE__ */ template(`<svg><path d="M3 3 L11 3 L11 9 Q7 13 3 9 Z"fill=none stroke=currentColor stroke-width=1.2 stroke-linejoin=round></svg>`, false, true, false), _tmpl$10$6 = /* @__PURE__ */ template(`<svg><line x1=2 y1=12 x2=12 y2=2 stroke=currentColor stroke-width=1.4 stroke-linecap=round></svg>`, false, true, false), _tmpl$11$6 = /* @__PURE__ */ template(`<button class=nav-btn data-tooltip="Reader Mode"><svg width=14 height=14 viewBox="0 0 14 14"><rect x=2 y=1 width=10 height=12 rx=1 fill=none stroke=currentColor stroke-width=1.2></rect><line x1=4 y1=4 x2=10 y2=4 stroke=currentColor stroke-width=1></line><line x1=4 y1=6.5 x2=10 y2=6.5 stroke=currentColor stroke-width=1></line><line x1=4 y1=9 x2=8 y2=9 stroke=currentColor stroke-width=1>`), _tmpl$12$6 = /* @__PURE__ */ template(`<button class=nav-btn data-tooltip="Dev Tools"><svg width=14 height=14 viewBox="0 0 14 14"><polyline points="3,5 1,7 3,9"fill=none stroke=currentColor stroke-width=1.2 stroke-linecap=round stroke-linejoin=round></polyline><polyline points="11,5 13,7 11,9"fill=none stroke=currentColor stroke-width=1.2 stroke-linecap=round stroke-linejoin=round></polyline><line x1=8.5 y1=2 x2=5.5 y2=12 stroke=currentColor stroke-width=1.2 stroke-linecap=round>`), _tmpl$13$5 = /* @__PURE__ */ template(`<span class=nav-btn-badge>`), _tmpl$14$5 = /* @__PURE__ */ template(`<button class="nav-btn nav-btn-sidebar"><svg width=14 height=14 viewBox="0 0 14 14"><rect x=1 y=1 width=12 height=12 rx=1.5 fill=none stroke=currentColor stroke-width=1.2></rect><line x1=9 y1=1 x2=9 y2=13 stroke=currentColor stroke-width=1.2>`), _tmpl$15$5 = /* @__PURE__ */ template(`<button class=nav-btn data-tooltip="Clear Data">`), _tmpl$16$4 = /* @__PURE__ */ template(`<button class=nav-btn data-tooltip=Settings><svg width=14 height=14 viewBox="0 0 14 14"><circle cx=7 cy=7 r=2 fill=none stroke=currentColor stroke-width=1.2></circle><path d="M7 1v2M7 11v2M1 7h2M11 7h2M2.8 2.8l1.4 1.4M9.8 9.8l1.4 1.4M11.2 2.8l-1.4 1.4M4.2 9.8l-1.4 1.4"stroke=currentColor stroke-width=1 stroke-linecap=round>`), _tmpl$17$4 = /* @__PURE__ */ template(`<div class=address-bar><div class=nav-controls><button class=nav-btn data-tooltip=Back><svg width=14 height=14 viewBox="0 0 14 14"><path d="M9 2L4 7l5 5"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg></button><button class=nav-btn data-tooltip=Forward><svg width=14 height=14 viewBox="0 0 14 14"><path d="M5 2l5 5-5 5"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg></button><button class=nav-btn data-tooltip=Reload><svg width=14 height=14 viewBox="0 0 14 14"><path d="M2.5 7a4.5 4.5 0 1 1 1 3"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round></path><path d="M2 4v3.5h3.5"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg></button></div><div class=url-shell><form class=url-form><input class=url-input type=text placeholder="Search or enter URL"autocomplete=off aria-autocomplete=list aria-controls=address-autocomplete></form></div><div class=toolbar-actions><button class=nav-btn><svg width=14 height=14 viewBox="0 0 14 14">`), _tmpl$18$4 = /* @__PURE__ */ template(`<svg width=14 height=14 viewBox="0 0 14 14"fill=currentColor><path d="M7 1a4 4 0 00-4 4v2H1.5a.5.5 0 00-.5.5v5a.5.5 0 00.5.5h11a.5.5 0 00.5-.5v-5a.5.5 0 00-.5-.5H11V5a4 4 0 00-4-4zm0 1a3 3 0 013 3v2H4V5a3 3 0 013-3z"></path><circle cx=7 cy=8 r=0.8 fill=white>`), _tmpl$19$4 = /* @__PURE__ */ template(`<div role=option><span class=autocomplete-icon></span><span class=autocomplete-text><span class=autocomplete-title></span><span class=autocomplete-url>`), _tmpl$20$4 = /* @__PURE__ */ template(`<div class=page-diff-burst-row><span class=page-diff-burst-time></span><span class=page-diff-burst-summary>`), _tmpl$21$4 = /* @__PURE__ */ template(`<span class=page-diff-burst-summary-section>`), _tmpl$22$4 = /* @__PURE__ */ template(`<span class=page-diff-burst-summary-part><span>`), _tmpl$23$4 = /* @__PURE__ */ template(`<div class=page-diff-snippet><span class=page-diff-snippet-label>Before</span><span class=page-diff-snippet-text>`), _tmpl$24$4 = /* @__PURE__ */ template(`<div class=page-diff-snippet><span class=page-diff-snippet-label>After</span><span class=page-diff-snippet-text>`), _tmpl$25$3 = /* @__PURE__ */ template(`<div class=page-diff-snippets>`), _tmpl$26$3 = /* @__PURE__ */ template(`<div class=page-diff-list-group><span class=page-diff-list-label>Added</span><ul class=page-diff-list>`), _tmpl$27$3 = /* @__PURE__ */ template(`<div class=page-diff-list-group><span class=page-diff-list-label>Removed</span><ul class=page-diff-list>`), _tmpl$28$3 = /* @__PURE__ */ template(`<div><div class=page-diff-item-header><div class=page-diff-badges><span class=page-diff-kind></span><span class=page-diff-section></span></div><span class=page-diff-summary>`), _tmpl$29$2 = /* @__PURE__ */ template(`<li>`);
|
|
3007
3030
|
const AddressBar = (props) => {
|
|
3008
3031
|
const {
|
|
3009
3032
|
activeTab,
|
|
@@ -3489,7 +3512,7 @@ const AddressBar = (props) => {
|
|
|
3489
3512
|
return memo(() => !!pageDiff().recentBursts?.length)() && (pageDiff().recentBursts?.length || 0) > 1;
|
|
3490
3513
|
},
|
|
3491
3514
|
get children() {
|
|
3492
|
-
var _el$33 = _tmpl$9$
|
|
3515
|
+
var _el$33 = _tmpl$9$8();
|
|
3493
3516
|
_el$33.firstChild;
|
|
3494
3517
|
insert(_el$33, createComponent(For, {
|
|
3495
3518
|
get each() {
|
|
@@ -4438,6 +4461,57 @@ const AgentTranscriptDock = () => {
|
|
|
4438
4461
|
});
|
|
4439
4462
|
};
|
|
4440
4463
|
delegateEvents(["click"]);
|
|
4464
|
+
const MAX_PROVIDER_HISTORY_MESSAGES = 24;
|
|
4465
|
+
const MAX_PROVIDER_HISTORY_CHARS = 24e3;
|
|
4466
|
+
const MAX_PROVIDER_HISTORY_MESSAGE_CHARS = 3e3;
|
|
4467
|
+
const MAX_PROVIDER_HISTORY_SUMMARY_CHARS = 2e3;
|
|
4468
|
+
function truncateText(value, maxLength) {
|
|
4469
|
+
if (value.length <= maxLength) return value;
|
|
4470
|
+
return `${value.slice(0, maxLength - 3).trimEnd()}...`;
|
|
4471
|
+
}
|
|
4472
|
+
function normalizeHistoryMessage(message) {
|
|
4473
|
+
return {
|
|
4474
|
+
role: message.role,
|
|
4475
|
+
content: truncateText(message.content, MAX_PROVIDER_HISTORY_MESSAGE_CHARS)
|
|
4476
|
+
};
|
|
4477
|
+
}
|
|
4478
|
+
function totalHistoryChars(history) {
|
|
4479
|
+
return history.reduce((total, message) => total + message.content.length, 0);
|
|
4480
|
+
}
|
|
4481
|
+
function summarizeOmittedHistory(history) {
|
|
4482
|
+
const snippets = history.slice(-12).map((message) => `${message.role}: ${truncateText(message.content.replace(/\s+/g, " ").trim(), 220)}`).filter((line) => line.length > "assistant: ".length);
|
|
4483
|
+
const content = truncateText(
|
|
4484
|
+
[
|
|
4485
|
+
`[Earlier conversation compacted: ${history.length} message${history.length === 1 ? "" : "s"} omitted.]`,
|
|
4486
|
+
...snippets
|
|
4487
|
+
].join("\n"),
|
|
4488
|
+
MAX_PROVIDER_HISTORY_SUMMARY_CHARS
|
|
4489
|
+
);
|
|
4490
|
+
return { role: "user", content };
|
|
4491
|
+
}
|
|
4492
|
+
function compactProviderHistory(history = []) {
|
|
4493
|
+
const normalized = history.map(normalizeHistoryMessage);
|
|
4494
|
+
if (normalized.length <= MAX_PROVIDER_HISTORY_MESSAGES && totalHistoryChars(normalized) <= MAX_PROVIDER_HISTORY_CHARS) {
|
|
4495
|
+
return normalized;
|
|
4496
|
+
}
|
|
4497
|
+
const recent = [];
|
|
4498
|
+
const recentBudget = MAX_PROVIDER_HISTORY_CHARS - MAX_PROVIDER_HISTORY_SUMMARY_CHARS;
|
|
4499
|
+
let usedChars = 0;
|
|
4500
|
+
for (let index = normalized.length - 1; index >= 0; index--) {
|
|
4501
|
+
const message = normalized[index];
|
|
4502
|
+
const nextChars = usedChars + message.content.length;
|
|
4503
|
+
if (recent.length >= MAX_PROVIDER_HISTORY_MESSAGES || nextChars > recentBudget) {
|
|
4504
|
+
break;
|
|
4505
|
+
}
|
|
4506
|
+
recent.unshift(message);
|
|
4507
|
+
usedChars = nextChars;
|
|
4508
|
+
}
|
|
4509
|
+
if (recent.length === 0 && normalized.length > 0) {
|
|
4510
|
+
recent.unshift(normalized[normalized.length - 1]);
|
|
4511
|
+
}
|
|
4512
|
+
const omitted = normalized.slice(0, normalized.length - recent.length);
|
|
4513
|
+
return omitted.length > 0 ? [summarizeOmittedHistory(omitted), ...recent] : recent;
|
|
4514
|
+
}
|
|
4441
4515
|
const MAX_AUTOMATION_ACTIVITY_ENTRIES = 8;
|
|
4442
4516
|
function trimActivities(entries2, limit = MAX_AUTOMATION_ACTIVITY_ENTRIES) {
|
|
4443
4517
|
return entries2.length > limit ? entries2.slice(0, limit) : entries2;
|
|
@@ -4549,10 +4623,7 @@ function recordRecentQuery(prompt) {
|
|
|
4549
4623
|
});
|
|
4550
4624
|
}
|
|
4551
4625
|
function buildHistory() {
|
|
4552
|
-
return messages()
|
|
4553
|
-
role: message.role,
|
|
4554
|
-
content: message.content
|
|
4555
|
-
}));
|
|
4626
|
+
return compactProviderHistory(messages());
|
|
4556
4627
|
}
|
|
4557
4628
|
async function dispatchQuery(prompt) {
|
|
4558
4629
|
const result = await window.vessel.ai.query(prompt, buildHistory());
|
|
@@ -6746,7 +6817,7 @@ function renderKitPrompt(kit, values) {
|
|
|
6746
6817
|
(_, key) => values[key] ?? ""
|
|
6747
6818
|
);
|
|
6748
6819
|
}
|
|
6749
|
-
var _tmpl$$d = /* @__PURE__ */ template(`<div class=kit-upsell><div class=kit-upsell-icon aria-hidden=true></div><p class=kit-upsell-title>Vessel Premium</p><p class=kit-upsell-body>Automation Kits are a premium feature. Upgrade to unlock pre-built workflows you can launch with one click.</p><button class="agent-primary-button kit-upsell-btn"type=button>Start 7-day free trial — $5.99/mo after`), _tmpl$2$d = /* @__PURE__ */ template(`<div class=kit-list-header><span class=agent-panel-title>Automation Kits <span class=kit-beta-tag>Beta</span></span><div class=kit-list-header-actions><span class=kit-list-count> kits</span><button class=kit-install-btn type=button title="Install a kit from a .kit.json file">+ Install`), _tmpl$3$c = /* @__PURE__ */ template(`<div class=kit-install-error><span></span><button class=kit-install-error-dismiss type=button aria-label=Dismiss>×`), _tmpl$4$c = /* @__PURE__ */ template(`<div class=kit-list>`), _tmpl$5$b = /* @__PURE__ */ template(`<div class=kit-sched-section><span>Scheduled</span><span class=kit-list-count>`), _tmpl$6$b = /* @__PURE__ */ template(`<div class=kit-sched-list>`), _tmpl$7$9 = /* @__PURE__ */ template(`<div class=kit-sched-section><span>Recent Activity</span><span class=kit-list-count>`), _tmpl$8$8 = /* @__PURE__ */ template(`<div class=kit-activity-list>`), _tmpl$9$
|
|
6820
|
+
var _tmpl$$d = /* @__PURE__ */ template(`<div class=kit-upsell><div class=kit-upsell-icon aria-hidden=true></div><p class=kit-upsell-title>Vessel Premium</p><p class=kit-upsell-body>Automation Kits are a premium feature. Upgrade to unlock pre-built workflows you can launch with one click.</p><button class="agent-primary-button kit-upsell-btn"type=button>Start 7-day free trial — $5.99/mo after`), _tmpl$2$d = /* @__PURE__ */ template(`<div class=kit-list-header><span class=agent-panel-title>Automation Kits <span class=kit-beta-tag>Beta</span></span><div class=kit-list-header-actions><span class=kit-list-count> kits</span><button class=kit-install-btn type=button title="Install a kit from a .kit.json file">+ Install`), _tmpl$3$c = /* @__PURE__ */ template(`<div class=kit-install-error><span></span><button class=kit-install-error-dismiss type=button aria-label=Dismiss>×`), _tmpl$4$c = /* @__PURE__ */ template(`<div class=kit-list>`), _tmpl$5$b = /* @__PURE__ */ template(`<div class=kit-sched-section><span>Scheduled</span><span class=kit-list-count>`), _tmpl$6$b = /* @__PURE__ */ template(`<div class=kit-sched-list>`), _tmpl$7$9 = /* @__PURE__ */ template(`<div class=kit-sched-section><span>Recent Activity</span><span class=kit-list-count>`), _tmpl$8$8 = /* @__PURE__ */ template(`<div class=kit-activity-list>`), _tmpl$9$7 = /* @__PURE__ */ template(`<div class=kit-form-header><button class=kit-back-btn type=button title="Back to kits"><svg width=14 height=14 viewBox="0 0 14 14"fill=none aria-hidden=true><path d="M9 11L5 7l4-4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg>Back</button><div class=kit-form-title>`), _tmpl$0$5 = /* @__PURE__ */ template(`<p class=kit-form-desc>`), _tmpl$1$5 = /* @__PURE__ */ template(`<div class=kit-form-fields>`), _tmpl$10$5 = /* @__PURE__ */ template(`<p class=kit-form-estimate>Estimated run time: ~<!> min`), _tmpl$11$5 = /* @__PURE__ */ template(`<button class="agent-primary-button kit-run-btn"type=button>`), _tmpl$12$5 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label class=kit-form-label>Date & time</label><input class=kit-form-input type=datetime-local>`), _tmpl$13$4 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label class=kit-form-label>Time of day</label><input class="kit-form-input kit-schedule-time"type=time>`), _tmpl$14$4 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label class=kit-form-label>Day</label><select class=kit-form-input>`), _tmpl$15$4 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label class=kit-form-label>Time</label><input class="kit-form-input kit-schedule-time"type=time>`), _tmpl$16$3 = /* @__PURE__ */ template(`<p class=kit-schedule-error>`), _tmpl$17$3 = /* @__PURE__ */ template(`<div class=kit-schedule-form><div class=kit-schedule-types></div><p class=kit-schedule-note>Schedules run only while Vessel is open. Missed runs are skipped.</p><button class="agent-primary-button kit-schedule-btn"type=button>`), _tmpl$18$3 = /* @__PURE__ */ template(`<div class=kit-schedule-section><label class=kit-schedule-toggle><input type=checkbox>Schedule for later`), _tmpl$19$3 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Run at</label><input type=datetime-local class="kit-form-input kit-schedule-time">`), _tmpl$20$3 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Day</label><select class="kit-form-input kit-schedule-time">`), _tmpl$21$3 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Time</label><input type=time class="kit-form-input kit-schedule-time">`), _tmpl$22$3 = /* @__PURE__ */ template(`<div class=sched-edit-backdrop><div class=sched-edit-panel><div class=sched-edit-header><span class=sched-edit-title>Edit schedule</span><span class=sched-edit-job-name></span></div><div class=kit-schedule-types></div><div class=sched-edit-actions><button class=kit-back-btn type=button>Cancel</button><button class=agent-primary-button type=button>Save`), _tmpl$23$3 = /* @__PURE__ */ template(`<section class=automation-panel>`), _tmpl$24$3 = /* @__PURE__ */ template(`<div class=kit-card-meta>~<!> min`), _tmpl$25$2 = /* @__PURE__ */ template(`<button class=kit-remove-btn type=button>×`), _tmpl$26$2 = /* @__PURE__ */ template(`<div class=kit-card role=button tabindex=0><span class=kit-card-icon aria-hidden=true></span><div class=kit-card-body><div class=kit-card-name></div><div class=kit-card-desc>`), _tmpl$27$2 = /* @__PURE__ */ template(`<svg class=kit-card-caret width=14 height=14 viewBox="0 0 14 14"fill=none aria-hidden=true><path d="M5 3l4 4-4 4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round>`), _tmpl$28$2 = /* @__PURE__ */ template(`<div class=kit-sched-next>Next: `), _tmpl$29$1 = /* @__PURE__ */ template(`<div class=sched-context-menu><button class=sched-ctx-item type=button>Edit task</button><button class=sched-ctx-item type=button>Edit schedule</button><div class=sched-ctx-divider></div><button class=sched-ctx-item type=button></button><button class="sched-ctx-item sched-ctx-danger"type=button>Delete`), _tmpl$30$1 = /* @__PURE__ */ template(`<div class=kit-sched-card><span class="kit-card-icon kit-sched-icon"aria-hidden=true></span><div class=kit-sched-body><div class=kit-sched-name></div><div class=kit-sched-meta></div></div><div class=kit-sched-actions><button class=kit-sched-toggle type=button></button><button class=kit-remove-btn type=button title="Delete schedule"aria-label="Delete schedule">×`), _tmpl$31$1 = /* @__PURE__ */ template(`<div class=kit-activity-output>`), _tmpl$32$1 = /* @__PURE__ */ template(`<div class=kit-activity-card><div class=kit-activity-header><div class=kit-activity-title><span class="kit-card-icon kit-sched-icon"aria-hidden=true></span><div class=kit-activity-title-copy><div class=kit-sched-name></div><div class=kit-activity-time></div></div></div><span class=kit-activity-badge>`), _tmpl$33$1 = /* @__PURE__ */ template(`<div class="kit-activity-output kit-activity-placeholder">`), _tmpl$34$1 = /* @__PURE__ */ template(`<span class=kit-form-required aria-hidden=true>*`), _tmpl$35$1 = /* @__PURE__ */ template(`<textarea class=kit-form-textarea rows=3>`), _tmpl$36$1 = /* @__PURE__ */ template(`<p class=kit-form-hint>`), _tmpl$37$1 = /* @__PURE__ */ template(`<div class=kit-form-field><label class=kit-form-label>`), _tmpl$38$1 = /* @__PURE__ */ template(`<input class=kit-form-input>`), _tmpl$39$1 = /* @__PURE__ */ template(`<span class=kit-run-spinner aria-hidden=true>`), _tmpl$40$1 = /* @__PURE__ */ template(`<label class=kit-schedule-type-option><input type=radio name=sched-type>`), _tmpl$41$1 = /* @__PURE__ */ template(`<option>`), _tmpl$42$1 = /* @__PURE__ */ template(`<label class=kit-schedule-type-option><input type=radio name=edit-sched-type>`);
|
|
6750
6821
|
const ICON_MAP = {
|
|
6751
6822
|
BookOpen: book_open_default,
|
|
6752
6823
|
Tag: tag_default,
|
|
@@ -7309,7 +7380,7 @@ const AutomationTab = (props) => {
|
|
|
7309
7380
|
},
|
|
7310
7381
|
get children() {
|
|
7311
7382
|
return [(() => {
|
|
7312
|
-
var _el$23 = _tmpl$9$
|
|
7383
|
+
var _el$23 = _tmpl$9$7(), _el$24 = _el$23.firstChild, _el$25 = _el$24.nextSibling;
|
|
7313
7384
|
_el$24.$$click = () => {
|
|
7314
7385
|
setSelectedKit(null);
|
|
7315
7386
|
setEditingTaskJobId(null);
|
|
@@ -7662,7 +7733,7 @@ function useResearch() {
|
|
|
7662
7733
|
}
|
|
7663
7734
|
};
|
|
7664
7735
|
}
|
|
7665
|
-
var _tmpl$$c = /* @__PURE__ */ template(`<div class=markdown-content>`), _tmpl$2$c = /* @__PURE__ */ template(`<div>`), _tmpl$3$b = /* @__PURE__ */ template(`<div class=research-premium-notice><span class=premium-badge>Premium</span> Brief is free; full research and export require Vessel Premium.`), _tmpl$4$b = /* @__PURE__ */ template(`<div class=research-brief-status>`), _tmpl$5$a = /* @__PURE__ */ template(`<div class=research-idle><h3>Research Desk</h3><p>Start with a topic. Vessel will shape it into a focused brief, draft a research plan, and then send sub-agents after the strongest sources.</p><form class=research-topic-form><textarea class=research-topic-input rows=3 placeholder="What should we research?"></textarea><button class=research-start-btn type=submit>Start Briefing`), _tmpl$6$a = /* @__PURE__ */ template(`<div class=research-brief-loading role=status aria-live=polite><span class=research-spinner aria-hidden=true></span><div><div class=research-loading-title>Brief started</div><div class=research-loading-copy>Preparing the first briefing question...`), _tmpl$7$8 = /* @__PURE__ */ template(`<div class="research-brief-status thinking"role=status aria-live=polite><span class=research-spinner aria-hidden=true></span><span>Thinking...`), _tmpl$8$7 = /* @__PURE__ */ template(`<div class=research-brief-status> queued`), _tmpl$9$
|
|
7736
|
+
var _tmpl$$c = /* @__PURE__ */ template(`<div class=markdown-content>`), _tmpl$2$c = /* @__PURE__ */ template(`<div>`), _tmpl$3$b = /* @__PURE__ */ template(`<div class=research-premium-notice><span class=premium-badge>Premium</span> Brief is free; full research and export require Vessel Premium.`), _tmpl$4$b = /* @__PURE__ */ template(`<div class=research-brief-status>`), _tmpl$5$a = /* @__PURE__ */ template(`<div class=research-idle><h3>Research Desk</h3><p>Start with a topic. Vessel will shape it into a focused brief, draft a research plan, and then send sub-agents after the strongest sources.</p><form class=research-topic-form><textarea class=research-topic-input rows=3 placeholder="What should we research?"></textarea><button class=research-start-btn type=submit>Start Briefing`), _tmpl$6$a = /* @__PURE__ */ template(`<div class=research-brief-loading role=status aria-live=polite><span class=research-spinner aria-hidden=true></span><div><div class=research-loading-title>Brief started</div><div class=research-loading-copy>Preparing the first briefing question...`), _tmpl$7$8 = /* @__PURE__ */ template(`<div class="research-brief-status thinking"role=status aria-live=polite><span class=research-spinner aria-hidden=true></span><span>Thinking...`), _tmpl$8$7 = /* @__PURE__ */ template(`<div class=research-brief-status> queued`), _tmpl$9$6 = /* @__PURE__ */ template(`<div class=research-phase><h3>Briefing</h3><p>Work through the brief here. Once the assistant has enough context, turn it into a research plan.</p><div class=research-brief-thread></div><form class=research-brief-form><textarea class=research-brief-input rows=2></textarea><button type=submit></button></form><div class=phase-controls><button>Build Research Plan</button><button class=secondary>Cancel`), _tmpl$0$4 = /* @__PURE__ */ template(`<div class=research-phase><h3>Planning Research</h3><p>Creating Research Objectives based on your brief...`), _tmpl$1$4 = /* @__PURE__ */ template(`<div class=research-phase><h3>Research Objectives`), _tmpl$10$4 = /* @__PURE__ */ template(`<div class=research-thread-progress-list>`), _tmpl$11$4 = /* @__PURE__ */ template(`<button>Switch to Walk-Away`), _tmpl$12$4 = /* @__PURE__ */ template(`<button>Switch to Interactive`), _tmpl$13$3 = /* @__PURE__ */ template(`<div class=research-phase><h3>Researching</h3><div class=research-active-card role=status aria-live=polite><span class="research-spinner research-active-spinner"aria-hidden=true></span><div class=research-active-copy><div class=research-active-title>Agents are working</div><p> of <!> threads complete</p></div></div><div class=phase-controls><button class=secondary>Stop Research</button><button>Stop Research & Synthesize Current Findings`), _tmpl$14$3 = /* @__PURE__ */ template(`<div class=research-phase><h3>Synthesizing Report</h3><p>Compiling findings into the Research Report...`), _tmpl$15$3 = /* @__PURE__ */ template(`<div class=research-phase><h3>Report Ready`), _tmpl$16$2 = /* @__PURE__ */ template(`<div class=research-desk>`), _tmpl$17$2 = /* @__PURE__ */ template(`<div class="research-quick-replies inline"aria-label="Suggested briefing responses">`), _tmpl$18$2 = /* @__PURE__ */ template(`<button type=button class=research-quick-reply>`), _tmpl$19$2 = /* @__PURE__ */ template(`<div class=objectives-card><section class=objectives-section><p class=objectives-label>Question</p><p class=objectives-question></p></section><section class=objectives-section><div class=objectives-section-header><p class=objectives-label>Research Threads</p><span></span></div><ul class=objectives-thread-list></ul></section><section class="objectives-section objectives-settings"><label class=mode-toggle><input type=checkbox><span>Walk-away mode (notified when done)</span></label><label class=traces-toggle><input type=checkbox><span>Include agent traces with report</span></label></section><div class=phase-controls><button>Start Research</button><button class=secondary>Cancel`), _tmpl$20$2 = /* @__PURE__ */ template(`<li><span></span><small> sources`), _tmpl$21$2 = /* @__PURE__ */ template(`<section class=objectives-section><p class=objectives-label>Excluded Sources</p><div class=objectives-source-list>`), _tmpl$22$2 = /* @__PURE__ */ template(`<span>`), _tmpl$23$2 = /* @__PURE__ */ template(`<div><span></span><small>`), _tmpl$24$2 = /* @__PURE__ */ template(`<div class=report-card><h4></h4><p>...</p><p> sources cited</p><button>Export as Markdown</button><button class=secondary>New Research`);
|
|
7666
7737
|
const ResearchBriefMarkdown = (props) => {
|
|
7667
7738
|
const html2 = createMemo(() => renderMarkdown(props.content));
|
|
7668
7739
|
return (() => {
|
|
@@ -8044,7 +8115,7 @@ const ResearchDesk = () => {
|
|
|
8044
8115
|
return state().phase === "briefing";
|
|
8045
8116
|
},
|
|
8046
8117
|
get children() {
|
|
8047
|
-
var _el$10 = _tmpl$9$
|
|
8118
|
+
var _el$10 = _tmpl$9$6(), _el$11 = _el$10.firstChild, _el$12 = _el$11.nextSibling, _el$13 = _el$12.nextSibling, _el$18 = _el$13.nextSibling, _el$19 = _el$18.firstChild, _el$20 = _el$19.nextSibling, _el$21 = _el$18.nextSibling, _el$22 = _el$21.firstChild, _el$23 = _el$22.nextSibling;
|
|
8048
8119
|
insert(_el$13, createComponent(Show, {
|
|
8049
8120
|
get when() {
|
|
8050
8121
|
return isBriefStarting();
|
|
@@ -8317,7 +8388,7 @@ const ResearchDesk = () => {
|
|
|
8317
8388
|
})();
|
|
8318
8389
|
};
|
|
8319
8390
|
delegateEvents(["input", "keydown", "click"]);
|
|
8320
|
-
var _tmpl$$b = /* @__PURE__ */ template(`<div class=agent-muted>Loading...`), _tmpl$2$b = /* @__PURE__ */ template(`<div class=agent-muted>`), _tmpl$3$a = /* @__PURE__ */ template(`<div class=agent-muted>No changes detected yet.`), _tmpl$4$a = /* @__PURE__ */ template(`<div class=page-diff-timeline-header><div class=agent-section-title>Change history for this page</div><div class=agent-muted>Newest detections are first. Each entry is a saved change burst.`), _tmpl$5$9 = /* @__PURE__ */ template(`<div class=page-diff-history-list>`), _tmpl$6$9 = /* @__PURE__ */ template(`<div class=page-diff-timeline>`), _tmpl$7$7 = /* @__PURE__ */ template(`<div class=page-diff-history-item><div class=page-diff-history-time><span class=page-diff-history-label></span><span></span></div><div class=page-diff-history-card><div class=page-diff-history-summary-list></div><div class=page-diff-history-position>Entry <!> of `), _tmpl$8$6 = /* @__PURE__ */ template(`<span class=page-diff-history-summary-section>`), _tmpl$9$
|
|
8391
|
+
var _tmpl$$b = /* @__PURE__ */ template(`<div class=agent-muted>Loading...`), _tmpl$2$b = /* @__PURE__ */ template(`<div class=agent-muted>`), _tmpl$3$a = /* @__PURE__ */ template(`<div class=agent-muted>No changes detected yet.`), _tmpl$4$a = /* @__PURE__ */ template(`<div class=page-diff-timeline-header><div class=agent-section-title>Change history for this page</div><div class=agent-muted>Newest detections are first. Each entry is a saved change burst.`), _tmpl$5$9 = /* @__PURE__ */ template(`<div class=page-diff-history-list>`), _tmpl$6$9 = /* @__PURE__ */ template(`<div class=page-diff-timeline>`), _tmpl$7$7 = /* @__PURE__ */ template(`<div class=page-diff-history-item><div class=page-diff-history-time><span class=page-diff-history-label></span><span></span></div><div class=page-diff-history-card><div class=page-diff-history-summary-list></div><div class=page-diff-history-position>Entry <!> of `), _tmpl$8$6 = /* @__PURE__ */ template(`<span class=page-diff-history-summary-section>`), _tmpl$9$5 = /* @__PURE__ */ template(`<div class=page-diff-history-summary-row><span class=page-diff-history-summary>`);
|
|
8321
8392
|
const PageDiffTimeline = () => {
|
|
8322
8393
|
const {
|
|
8323
8394
|
activeTab
|
|
@@ -8420,7 +8491,7 @@ const PageDiffTimeline = () => {
|
|
|
8420
8491
|
return parseDiffSummaryParts(burst.summary);
|
|
8421
8492
|
},
|
|
8422
8493
|
children: (part) => (() => {
|
|
8423
|
-
var _el$15 = _tmpl$9$
|
|
8494
|
+
var _el$15 = _tmpl$9$5(), _el$17 = _el$15.firstChild;
|
|
8424
8495
|
insert(_el$15, createComponent(Show, {
|
|
8425
8496
|
get when() {
|
|
8426
8497
|
return part.section;
|
|
@@ -8448,7 +8519,7 @@ const PageDiffTimeline = () => {
|
|
|
8448
8519
|
})();
|
|
8449
8520
|
};
|
|
8450
8521
|
const vesselLogo = "" + new URL("vessel-logo-transparent-IT25qr-Z.png", import.meta.url).href;
|
|
8451
|
-
var _tmpl$$a = /* @__PURE__ */ template(`<div class="message-content markdown-content">`), _tmpl$2$a = /* @__PURE__ */ template(`<div class=premium-inline-offer><div class=premium-inline-kicker>Vessel Premium</div><div class=premium-inline-title></div><p class=premium-inline-copy></p><div class=premium-inline-actions><button class="agent-primary-button premium-inline-primary"type=button>Start 7-day free trial — $5.99/mo after</button><button class="agent-control-button premium-inline-secondary"type=button>View details`), _tmpl$3$9 = /* @__PURE__ */ template(`<span class=sidebar-tab-badge>`), _tmpl$4$9 = /* @__PURE__ */ template(`<button class=agent-primary-button type=button>Undo last action`), _tmpl$5$8 = /* @__PURE__ */ template(`<div class=agent-section-title>Pending approvals`), _tmpl$6$8 = /* @__PURE__ */ template(`<button class=agent-section-toggle type=button>`), _tmpl$7$6 = /* @__PURE__ */ template(`<section class=agent-panel><div class=agent-panel-header><div><div class=agent-panel-title>Supervisor</div><div class=agent-panel-subtitle></div></div><span class=agent-status-pill></span></div><div class=agent-panel-controls><button class=agent-control-button type=button></button><button class=agent-control-button type=button>Restore session</button></div><div class=agent-muted></div><div class=agent-section-header><div class=agent-section-title>Recent actions`), _tmpl$8$5 = /* @__PURE__ */ template(`<span class=bookmark-status-pill>Saved`), _tmpl$9$3 = /* @__PURE__ */ template(`<div class=bookmark-export-message>`), _tmpl$0$3 = /* @__PURE__ */ template(`<div class=bookmark-save-body><div class=bookmark-export-actions><button class=bookmark-secondary-button type=button>Import HTML</button><button class=bookmark-secondary-button type=button>Import JSON`), _tmpl$1$3 = /* @__PURE__ */ template(`<div class=bookmark-save-card><div class=bookmark-current-title></div><div class=bookmark-current-url></div><div class=bookmark-save-controls><button class=bookmark-primary-button type=button>Save page</button></div><textarea class=bookmark-note-input placeholder="Optional note about why this matters"rows=2></textarea><textarea class=bookmark-note-input placeholder="Intent: what is this page for?"rows=1></textarea><textarea class=bookmark-note-input placeholder="Expected content: what should be here?"rows=1></textarea><input class=bookmark-input placeholder="Key fields (comma-separated)"><textarea class=bookmark-note-input placeholder="Agent hints (one key:value per line)"rows=2>`), _tmpl$10$3 = /* @__PURE__ */ template(`<section class=bookmark-panel><div class=bookmark-panel-header><div><div class=bookmark-panel-title>Bookmarks</div><div class=bookmark-panel-subtitle></div></div></div><input class="bookmark-input bookmark-search-input"placeholder="Search titles, URLs, notes, and folders"><div class=bookmark-export-card><div><div class=bookmark-panel-title>Export</div><div class=bookmark-panel-subtitle>Save browser-ready HTML or a full Vessel archive</div></div><div class=bookmark-export-actions><button class=bookmark-secondary-button type=button>Browser HTML</button><button class=bookmark-secondary-button type=button>HTML + notes</button><button class=bookmark-secondary-button type=button>Vessel JSON</button></div></div><div class=bookmark-import-shell><button class=bookmark-save-toggle type=button><span class=bookmark-save-toggle-copy><span class=bookmark-save-toggle-title>Import Bookmarks</span><span class=bookmark-save-toggle-subtitle>Import from HTML or Vessel JSON</span></span><span class=bookmark-save-toggle-caret aria-hidden=true>▾</span></button></div><div class=bookmark-save-shell><button class=bookmark-save-toggle type=button><span class=bookmark-save-toggle-copy><span class=bookmark-save-toggle-title>Save Current Page</span><span class=bookmark-save-toggle-subtitle>Manual bookmark save options</span></span><span class=bookmark-save-toggle-caret aria-hidden=true>▾</span></button></div><form class=bookmark-folder-create><div class=bookmark-folder-form-fields><input class=bookmark-input placeholder="Create a folder"><input class=bookmark-input placeholder="Optional one-line summary"></div><button class=bookmark-secondary-button type=submit>New folder</button></form><div class=bookmark-folder-list>`), _tmpl$11$3 = /* @__PURE__ */ template(`<div class=checkpoint-timeline>`), _tmpl$12$3 = /* @__PURE__ */ template(`<section class="agent-panel checkpoint-panel"><div class=agent-panel-header><div><div class=agent-panel-title>Checkpoints</div><div class=agent-panel-subtitle></div></div></div><div class=agent-panel-body><div class=agent-checkpoint-row><input class=agent-input placeholder="Checkpoint name"><textarea class=agent-textarea rows=2 placeholder="Optional note for this checkpoint"></textarea><button class=agent-primary-button type=button>Save checkpoint</button></div><div class=agent-section-title>Recent checkpoints`), _tmpl$13$2 = /* @__PURE__ */ template(`<p class=history-empty>No browsing history yet.`), _tmpl$14$2 = /* @__PURE__ */ template(`<div class=history-panel><div class=history-panel-header><span class=history-panel-title>Browsing History</span><div class=history-panel-actions><button class=history-clear-btn>Clear</button><button class=history-clear-btn>Export HTML</button><button class=history-clear-btn>Export JSON</button><button class=history-clear-btn>Import</button></div></div><div class=history-list>`), _tmpl$15$2 = /* @__PURE__ */ template(`<section class=agent-panel><div class=agent-panel-header><div class=agent-panel-title>What Changed</div><div class=agent-panel-subtitle>`), _tmpl$16$1 = /* @__PURE__ */ template(`<div class="kit-upsell premium-chat-banner"><p class=kit-upsell-title>Vessel Premium</p><p class="kit-upsell-body premium-chat-banner-body">Give the built-in agent a bigger toolbox and longer runway: screenshots, saved sessions, workflow tracking, table extraction, and up to 1,000 tool calls per turn.</p><div class="premium-inline-actions premium-chat-banner-actions"><button class="agent-primary-button premium-inline-primary"type=button>Start 7-day free trial — $5.99/mo after</button><button class="agent-control-button premium-inline-secondary"type=button>See Premium`), _tmpl$17$1 = /* @__PURE__ */ template(`<span>`), _tmpl$18$1 = /* @__PURE__ */ template(`<div><div class=streaming-status><span class=streaming-pulse aria-hidden=true></span><span>Generating`), _tmpl$19$1 = /* @__PURE__ */ template(`<div class="message message-assistant"><div class=message-content>`), _tmpl$20$1 = /* @__PURE__ */ template(`<div class=sidebar-empty><svg class=sidebar-empty-icon width=48 height=48 viewBox="0 0 48 48"aria-hidden=true><line x1=8 y1=8 x2=24 y2=5 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=24 y1=5 x2=40 y2=10 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=8 y1=8 x2=6 y2=24 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=40 y1=10 x2=44 y2=26 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=6 y1=24 x2=10 y2=38 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=44 y1=26 x2=38 y2=40 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=10 y1=38 x2=24 y2=44 stroke=var(--border-visible) stroke-width=1 opacity=0.35></line><line x1=38 y1=40 x2=24 y2=44 stroke=var(--border-visible) stroke-width=1 opacity=0.35></line><line x1=8 y1=8 x2=20 y2=18 stroke=var(--border-visible) stroke-width=1 opacity=0.5></line><line x1=24 y1=5 x2=20 y2=18 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=40 y1=10 x2=32 y2=20 stroke=var(--border-visible) stroke-width=1 opacity=0.5></line><line x1=20 y1=18 x2=32 y2=20 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.3></line><line x1=6 y1=24 x2=18 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=20 y1=18 x2=18 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=32 y1=20 x2=36 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=44 y1=26 x2=36 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=18 y1=30 x2=36 y2=30 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.25></line><line x1=18 y1=30 x2=10 y2=38 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=36 y1=30 x2=38 y2=40 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=18 y1=30 x2=24 y2=44 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.2></line><line x1=36 y1=30 x2=24 y2=44 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.2></line><circle cx=8 cy=8 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.55></circle><circle cx=24 cy=5 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.45></circle><circle cx=40 cy=10 r=3 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.7></circle><circle cx=6 cy=24 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=44 cy=26 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.55></circle><circle cx=10 cy=38 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=38 cy=40 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.45></circle><circle cx=24 cy=44 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=20 cy=18 r=3.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.85></circle><circle cx=32 cy=20 r=4 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.9></circle><circle cx=18 cy=30 r=3 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.75></circle><circle cx=36 cy=30 r=3.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.8></circle></svg><p class=sidebar-empty-title>Your move.</p><p class=sidebar-empty-hint>Configure a provider in Settings (Ctrl+,) then ask anything about the current page or beyond.`), _tmpl$21$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$22$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$23$1 = /* @__PURE__ */ template(`<div class=chat-actions>`), _tmpl$24$1 = /* @__PURE__ */ template(`<div class=highlight-nav><button class=highlight-nav-btn type=button title="Previous highlight"><svg width=12 height=12 viewBox="0 0 12 12"fill=none aria-hidden=true><path d="M8 10L4 6l4-4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg></button><button class=highlight-nav-label type=button title="Go to current highlight"><svg width=12 height=12 viewBox="0 0 12 12"fill=none aria-hidden=true><circle cx=6 cy=6 r=3 fill="rgba(196, 160, 90, 0.6)"stroke="rgba(196, 160, 90, 0.9)"stroke-width=1></circle></svg></button><button class=highlight-nav-btn type=button title="Next highlight"><svg width=12 height=12 viewBox="0 0 12 12"fill=none aria-hidden=true><path d="M4 2l4 4-4 4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round>`), _tmpl$25$1 = /* @__PURE__ */ template(`<button class=chat-queue-clear type=button>Clear queue`), _tmpl$26$1 = /* @__PURE__ */ template(`<div class=chat-queue-list>`), _tmpl$27$1 = /* @__PURE__ */ template(`<div class=chat-queue-status><div class=chat-queue-status-row><span>`), _tmpl$28$1 = /* @__PURE__ */ template(`<div class=sidebar-input-area><textarea class=sidebar-input rows=2></textarea><button class=sidebar-send>`), _tmpl$29 = /* @__PURE__ */ template(`<div class=sidebar><div class=sidebar-resize-handle></div><div class=sidebar-header><div class=sidebar-brand><img class=sidebar-logo alt=Vessel><span class=sidebar-brand-text>Vessel Browser</span></div><div class=sidebar-header-actions><button class=sidebar-clear title="Clear chat">Clear</button><button class=sidebar-close title="Close AI chat (Esc)"aria-label="Close AI chat"><svg width=14 height=14 viewBox="0 0 14 14"aria-hidden=true><path d="M3.5 3.5l7 7M10.5 3.5l-7 7"fill=none stroke=currentColor stroke-width=1.4 stroke-linecap=round></path></svg></button></div></div><div class=sidebar-tabs role=tablist><button class=sidebar-tab role=tab>Supervisor</button><button class=sidebar-tab role=tab>Bookmarks</button><button class=sidebar-tab role=tab>Checkpoints</button><button class=sidebar-tab role=tab>Chat</button><button class=sidebar-tab role=tab>Automate</button><button class=sidebar-tab role=tab>History</button><button class=sidebar-tab role=tab>Changes</button><button class=sidebar-tab role=tab>Research<span class=sidebar-tab-beta>Beta</span></button></div><div class=sidebar-messages><div>`), _tmpl$30 = /* @__PURE__ */ template(`<div class=agent-muted>No pending approvals.`), _tmpl$31 = /* @__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$32 = /* @__PURE__ */ template(`<div class=agent-muted>No actions yet.`), _tmpl$33 = /* @__PURE__ */ template(`<div class=agent-muted>Recent actions are collapsed to reduce noise.`), _tmpl$34 = /* @__PURE__ */ template(`<div class="agent-card-copy success">`), _tmpl$35 = /* @__PURE__ */ template(`<div class="agent-card-copy error">`), _tmpl$36 = /* @__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$37 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>`), _tmpl$38 = /* @__PURE__ */ template(`<div class=bookmark-folder-summary>`), _tmpl$39 = /* @__PURE__ */ template(`<div class=bookmark-folder-actions><button class=bookmark-ghost-button type=button>Rename</button><button class=bookmark-ghost-button type=button>Export</button><button class="bookmark-ghost-button danger"type=button>Delete`), _tmpl$40 = /* @__PURE__ */ template(`<button class=bookmark-ghost-button type=button>Keep bookmarks`), _tmpl$41 = /* @__PURE__ */ template(`<div class=bookmark-folder-delete-confirm><p class=bookmark-delete-prompt>Delete "<!>"?</p><div class=bookmark-delete-options><button class="bookmark-ghost-button danger"type=button></button><button class=bookmark-ghost-button type=button>Cancel`), _tmpl$42 = /* @__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$43 = /* @__PURE__ */ template(`<div class=bookmark-items>`), _tmpl$44 = /* @__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$45 = /* @__PURE__ */ template(`<div class=bookmark-folder-collapsed-hint>Click to view saved links.`), _tmpl$46 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>No bookmarks in this folder yet.`), _tmpl$47 = /* @__PURE__ */ template(`<div class=bookmark-item-note>`), _tmpl$48 = /* @__PURE__ */ template(`<div><strong>Intent:</strong> `), _tmpl$49 = /* @__PURE__ */ template(`<div><strong>Expected:</strong> `), _tmpl$50 = /* @__PURE__ */ template(`<div><strong>Key fields:</strong> `), _tmpl$51 = /* @__PURE__ */ template(`<div><strong>Hints:</strong> `), _tmpl$52 = /* @__PURE__ */ template(`<div class=bookmark-folder-edit><input class=bookmark-input placeholder="Bookmark title"><textarea class=bookmark-note-input rows=2 placeholder="Why this bookmark matters"></textarea><textarea class=bookmark-note-input rows=1 placeholder=Intent></textarea><textarea class=bookmark-note-input rows=1 placeholder="Expected content"></textarea><input class=bookmark-input placeholder="Key fields (comma-separated)"><textarea class=bookmark-note-input rows=2 placeholder="Agent hints (one key:value per line)"></textarea><div class=bookmark-item-footer><button class=bookmark-secondary-button type=button>Save edits</button><button class=bookmark-ghost-button type=button>Cancel`), _tmpl$53 = /* @__PURE__ */ template(`<div class=bookmark-item><button class=bookmark-item-link type=button><span class=bookmark-item-title></span><span class=bookmark-item-url></span></button><div class=bookmark-item-footer><span class=bookmark-item-time></span><button class=bookmark-ghost-button type=button></button><button class="bookmark-ghost-button danger"type=button>Remove`), _tmpl$54 = /* @__PURE__ */ template(`<div class=agent-muted>No checkpoints yet.`), _tmpl$55 = /* @__PURE__ */ template(`<span class=checkpoint-timeline-line>`), _tmpl$56 = /* @__PURE__ */ template(`<div class=checkpoint-timeline-item><div class=checkpoint-timeline-rail><span class=checkpoint-timeline-dot></span></div><div class=checkpoint-timeline-content><div class=checkpoint-timeline-name></div><div class=checkpoint-timeline-time></div><textarea class=agent-textarea rows=2 placeholder="Add a note..."></textarea><button class=agent-control-button type=button>Restore`), _tmpl$57 = /* @__PURE__ */ template(`<button class=history-entry><span class=history-entry-title></span><span class=history-entry-url></span><span class=history-entry-time>`), _tmpl$58 = /* @__PURE__ */ template(`<div class="kit-upsell premium-chat-banner"><p class=kit-upsell-title>Vessel Premium</p><p class="kit-upsell-body premium-chat-banner-body">The Diff timeline is a premium feature. Upgrade to see a full history of what changed on this page.</p><div class="premium-inline-actions premium-chat-banner-actions"><button class="agent-primary-button premium-inline-primary"type=button>Start 7-day free trial — $5.99/mo after</button><button class="agent-control-button premium-inline-secondary"type=button>See Premium`), _tmpl$59 = /* @__PURE__ */ template(`<div>`), _tmpl$60 = /* @__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$61 = /* @__PURE__ */ template(`<div class=chat-approval-detail>`), _tmpl$62 = /* @__PURE__ */ template(`<div class=chat-approval><div class=chat-approval-icon aria-hidden=true><svg width=16 height=16 viewBox="0 0 16 16"fill=none><path d="M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM7.25 4.75a.75.75 0 011.5 0v3.5a.75.75 0 01-1.5 0v-3.5zM8 11.5a.75.75 0 110-1.5.75.75 0 010 1.5z"fill=currentColor></path></svg></div><div class=chat-approval-body><div class=chat-approval-title>Approval needed: <strong></strong></div><div class=chat-approval-detail></div><div class=chat-approval-actions><button class="chat-approval-btn chat-approval-approve"type=button>Approve</button><button class="chat-approval-btn chat-approval-reject"type=button>Reject`), _tmpl$63 = /* @__PURE__ */ template(`<div class=chat-queue-item><span class=chat-queue-text></span><button class=chat-queue-remove type=button>×`);
|
|
8522
|
+
var _tmpl$$a = /* @__PURE__ */ template(`<div class="message-content markdown-content">`), _tmpl$2$a = /* @__PURE__ */ template(`<div class=premium-inline-offer><div class=premium-inline-kicker>Vessel Premium</div><div class=premium-inline-title></div><p class=premium-inline-copy></p><div class=premium-inline-actions><button class="agent-primary-button premium-inline-primary"type=button>Start 7-day free trial — $5.99/mo after</button><button class="agent-control-button premium-inline-secondary"type=button>View details`), _tmpl$3$9 = /* @__PURE__ */ template(`<span class=sidebar-tab-badge>`), _tmpl$4$9 = /* @__PURE__ */ template(`<button class=agent-primary-button type=button>Undo last action`), _tmpl$5$8 = /* @__PURE__ */ template(`<div class=agent-section-title>Pending approvals`), _tmpl$6$8 = /* @__PURE__ */ template(`<button class=agent-section-toggle type=button>`), _tmpl$7$6 = /* @__PURE__ */ template(`<section class=agent-panel><div class=agent-panel-header><div><div class=agent-panel-title>Supervisor</div><div class=agent-panel-subtitle></div></div><span class=agent-status-pill></span></div><div class=agent-panel-controls><button class=agent-control-button type=button></button><button class=agent-control-button type=button>Restore session</button></div><div class=agent-muted></div><div class=agent-section-header><div class=agent-section-title>Recent actions`), _tmpl$8$5 = /* @__PURE__ */ template(`<span class=bookmark-status-pill>Saved`), _tmpl$9$4 = /* @__PURE__ */ template(`<div class=bookmark-export-message>`), _tmpl$0$3 = /* @__PURE__ */ template(`<div class=bookmark-save-body><div class=bookmark-export-actions><button class=bookmark-secondary-button type=button>Import HTML</button><button class=bookmark-secondary-button type=button>Import JSON`), _tmpl$1$3 = /* @__PURE__ */ template(`<div class=bookmark-save-card><div class=bookmark-current-title></div><div class=bookmark-current-url></div><div class=bookmark-save-controls><button class=bookmark-primary-button type=button>Save page</button></div><textarea class=bookmark-note-input placeholder="Optional note about why this matters"rows=2></textarea><textarea class=bookmark-note-input placeholder="Intent: what is this page for?"rows=1></textarea><textarea class=bookmark-note-input placeholder="Expected content: what should be here?"rows=1></textarea><input class=bookmark-input placeholder="Key fields (comma-separated)"><textarea class=bookmark-note-input placeholder="Agent hints (one key:value per line)"rows=2>`), _tmpl$10$3 = /* @__PURE__ */ template(`<section class=bookmark-panel><div class=bookmark-panel-header><div><div class=bookmark-panel-title>Bookmarks</div><div class=bookmark-panel-subtitle></div></div></div><input class="bookmark-input bookmark-search-input"placeholder="Search titles, URLs, notes, and folders"><div class=bookmark-export-card><div><div class=bookmark-panel-title>Export</div><div class=bookmark-panel-subtitle>Save browser-ready HTML or a full Vessel archive</div></div><div class=bookmark-export-actions><button class=bookmark-secondary-button type=button>Browser HTML</button><button class=bookmark-secondary-button type=button>HTML + notes</button><button class=bookmark-secondary-button type=button>Vessel JSON</button></div></div><div class=bookmark-import-shell><button class=bookmark-save-toggle type=button><span class=bookmark-save-toggle-copy><span class=bookmark-save-toggle-title>Import Bookmarks</span><span class=bookmark-save-toggle-subtitle>Import from HTML or Vessel JSON</span></span><span class=bookmark-save-toggle-caret aria-hidden=true>▾</span></button></div><div class=bookmark-save-shell><button class=bookmark-save-toggle type=button><span class=bookmark-save-toggle-copy><span class=bookmark-save-toggle-title>Save Current Page</span><span class=bookmark-save-toggle-subtitle>Manual bookmark save options</span></span><span class=bookmark-save-toggle-caret aria-hidden=true>▾</span></button></div><form class=bookmark-folder-create><div class=bookmark-folder-form-fields><input class=bookmark-input placeholder="Create a folder"><input class=bookmark-input placeholder="Optional one-line summary"></div><button class=bookmark-secondary-button type=submit>New folder</button></form><div class=bookmark-folder-list>`), _tmpl$11$3 = /* @__PURE__ */ template(`<div class=checkpoint-timeline>`), _tmpl$12$3 = /* @__PURE__ */ template(`<section class="agent-panel checkpoint-panel"><div class=agent-panel-header><div><div class=agent-panel-title>Checkpoints</div><div class=agent-panel-subtitle></div></div></div><div class=agent-panel-body><div class=agent-checkpoint-row><input class=agent-input placeholder="Checkpoint name"><textarea class=agent-textarea rows=2 placeholder="Optional note for this checkpoint"></textarea><button class=agent-primary-button type=button>Save checkpoint</button></div><div class=agent-section-title>Recent checkpoints`), _tmpl$13$2 = /* @__PURE__ */ template(`<button class=history-entry><span class=history-entry-title>Load more history</span><span class=history-entry-url>Showing <!> of `), _tmpl$14$2 = /* @__PURE__ */ template(`<p class=history-empty>No browsing history yet.`), _tmpl$15$2 = /* @__PURE__ */ template(`<div class=history-panel><div class=history-panel-header><span class=history-panel-title>Browsing History</span><div class=history-panel-actions><button class=history-clear-btn>Clear</button><button class=history-clear-btn>Export HTML</button><button class=history-clear-btn>Export JSON</button><button class=history-clear-btn>Import</button></div></div><div class=history-list>`), _tmpl$16$1 = /* @__PURE__ */ template(`<section class=agent-panel><div class=agent-panel-header><div class=agent-panel-title>What Changed</div><div class=agent-panel-subtitle>`), _tmpl$17$1 = /* @__PURE__ */ template(`<div class="kit-upsell premium-chat-banner"><p class=kit-upsell-title>Vessel Premium</p><p class="kit-upsell-body premium-chat-banner-body">Give the built-in agent a bigger toolbox and longer runway: screenshots, saved sessions, workflow tracking, table extraction, and up to 1,000 tool calls per turn.</p><div class="premium-inline-actions premium-chat-banner-actions"><button class="agent-primary-button premium-inline-primary"type=button>Start 7-day free trial — $5.99/mo after</button><button class="agent-control-button premium-inline-secondary"type=button>See Premium`), _tmpl$18$1 = /* @__PURE__ */ template(`<span>`), _tmpl$19$1 = /* @__PURE__ */ template(`<div><div class=streaming-status><span class=streaming-pulse aria-hidden=true></span><span>Generating`), _tmpl$20$1 = /* @__PURE__ */ template(`<div class="message message-assistant"><div class=message-content>`), _tmpl$21$1 = /* @__PURE__ */ template(`<div class=sidebar-empty><svg class=sidebar-empty-icon width=48 height=48 viewBox="0 0 48 48"aria-hidden=true><line x1=8 y1=8 x2=24 y2=5 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=24 y1=5 x2=40 y2=10 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=8 y1=8 x2=6 y2=24 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=40 y1=10 x2=44 y2=26 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=6 y1=24 x2=10 y2=38 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=44 y1=26 x2=38 y2=40 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=10 y1=38 x2=24 y2=44 stroke=var(--border-visible) stroke-width=1 opacity=0.35></line><line x1=38 y1=40 x2=24 y2=44 stroke=var(--border-visible) stroke-width=1 opacity=0.35></line><line x1=8 y1=8 x2=20 y2=18 stroke=var(--border-visible) stroke-width=1 opacity=0.5></line><line x1=24 y1=5 x2=20 y2=18 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=40 y1=10 x2=32 y2=20 stroke=var(--border-visible) stroke-width=1 opacity=0.5></line><line x1=20 y1=18 x2=32 y2=20 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.3></line><line x1=6 y1=24 x2=18 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=20 y1=18 x2=18 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=32 y1=20 x2=36 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=44 y1=26 x2=36 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=18 y1=30 x2=36 y2=30 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.25></line><line x1=18 y1=30 x2=10 y2=38 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=36 y1=30 x2=38 y2=40 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=18 y1=30 x2=24 y2=44 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.2></line><line x1=36 y1=30 x2=24 y2=44 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.2></line><circle cx=8 cy=8 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.55></circle><circle cx=24 cy=5 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.45></circle><circle cx=40 cy=10 r=3 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.7></circle><circle cx=6 cy=24 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=44 cy=26 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.55></circle><circle cx=10 cy=38 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=38 cy=40 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.45></circle><circle cx=24 cy=44 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=20 cy=18 r=3.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.85></circle><circle cx=32 cy=20 r=4 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.9></circle><circle cx=18 cy=30 r=3 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.75></circle><circle cx=36 cy=30 r=3.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.8></circle></svg><p class=sidebar-empty-title>Your move.</p><p class=sidebar-empty-hint>Configure a provider in Settings (Ctrl+,) then ask anything about the current page or beyond.`), _tmpl$22$1 = /* @__PURE__ */ template(`<button class=chat-action-btn title="Stop generating"><svg width=14 height=14 viewBox="0 0 14 14"fill=none aria-hidden=true><rect x=2 y=2 width=10 height=10 rx=1.5 fill=currentColor></rect></svg>Stop`), _tmpl$23$1 = /* @__PURE__ */ template(`<button class=chat-action-btn title="Retry last prompt"><svg width=14 height=14 viewBox="0 0 14 14"fill=none aria-hidden=true><path d="M11.5 7a4.5 4.5 0 1 1-1.3-3.2"stroke=currentColor stroke-width=1.5 stroke-linecap=round></path><path d="M10.5 1v3h-3"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg>Retry`), _tmpl$24$1 = /* @__PURE__ */ template(`<div class=chat-actions>`), _tmpl$25$1 = /* @__PURE__ */ template(`<div class=highlight-nav><button class=highlight-nav-btn type=button title="Previous highlight"><svg width=12 height=12 viewBox="0 0 12 12"fill=none aria-hidden=true><path d="M8 10L4 6l4-4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg></button><button class=highlight-nav-label type=button title="Go to current highlight"><svg width=12 height=12 viewBox="0 0 12 12"fill=none aria-hidden=true><circle cx=6 cy=6 r=3 fill="rgba(196, 160, 90, 0.6)"stroke="rgba(196, 160, 90, 0.9)"stroke-width=1></circle></svg></button><button class=highlight-nav-btn type=button title="Next highlight"><svg width=12 height=12 viewBox="0 0 12 12"fill=none aria-hidden=true><path d="M4 2l4 4-4 4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round>`), _tmpl$26$1 = /* @__PURE__ */ template(`<button class=chat-queue-clear type=button>Clear queue`), _tmpl$27$1 = /* @__PURE__ */ template(`<div class=chat-queue-list>`), _tmpl$28$1 = /* @__PURE__ */ template(`<div class=chat-queue-status><div class=chat-queue-status-row><span>`), _tmpl$29 = /* @__PURE__ */ template(`<div class=sidebar-input-area><textarea class=sidebar-input rows=2></textarea><button class=sidebar-send>`), _tmpl$30 = /* @__PURE__ */ template(`<div class=sidebar><div class=sidebar-resize-handle></div><div class=sidebar-header><div class=sidebar-brand><img class=sidebar-logo alt=Vessel><span class=sidebar-brand-text>Vessel Browser</span></div><div class=sidebar-header-actions><button class=sidebar-clear title="Clear chat">Clear</button><button class=sidebar-close title="Close AI chat (Esc)"aria-label="Close AI chat"><svg width=14 height=14 viewBox="0 0 14 14"aria-hidden=true><path d="M3.5 3.5l7 7M10.5 3.5l-7 7"fill=none stroke=currentColor stroke-width=1.4 stroke-linecap=round></path></svg></button></div></div><div class=sidebar-tabs role=tablist><button class=sidebar-tab role=tab>Supervisor</button><button class=sidebar-tab role=tab>Bookmarks</button><button class=sidebar-tab role=tab>Checkpoints</button><button class=sidebar-tab role=tab>Chat</button><button class=sidebar-tab role=tab>Automate</button><button class=sidebar-tab role=tab>History</button><button class=sidebar-tab role=tab>Changes</button><button class=sidebar-tab role=tab>Research<span class=sidebar-tab-beta>Beta</span></button></div><div class=sidebar-messages><div>`), _tmpl$31 = /* @__PURE__ */ template(`<div class=agent-muted>No pending approvals.`), _tmpl$32 = /* @__PURE__ */ template(`<div class="agent-card agent-card-approval"><div class=agent-card-approval-stripe aria-hidden=true></div><div class=agent-card-title></div><div class=agent-card-copy></div><div class=agent-card-copy></div><div class=agent-card-actions><button class=agent-primary-button type=button>Approve</button><button class=agent-control-button type=button>Reject`), _tmpl$33 = /* @__PURE__ */ template(`<div class=agent-muted>No actions yet.`), _tmpl$34 = /* @__PURE__ */ template(`<div class=agent-muted>Recent actions are collapsed to reduce noise.`), _tmpl$35 = /* @__PURE__ */ template(`<div class="agent-card-copy success">`), _tmpl$36 = /* @__PURE__ */ template(`<div class="agent-card-copy error">`), _tmpl$37 = /* @__PURE__ */ template(`<div class=agent-card><div class=agent-action-row><span class=agent-card-title></span><span></span></div><div class=agent-card-copy>`), _tmpl$38 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>`), _tmpl$39 = /* @__PURE__ */ template(`<div class=bookmark-folder-summary>`), _tmpl$40 = /* @__PURE__ */ template(`<div class=bookmark-folder-actions><button class=bookmark-ghost-button type=button>Rename</button><button class=bookmark-ghost-button type=button>Export</button><button class="bookmark-ghost-button danger"type=button>Delete`), _tmpl$41 = /* @__PURE__ */ template(`<button class=bookmark-ghost-button type=button>Keep bookmarks`), _tmpl$42 = /* @__PURE__ */ template(`<div class=bookmark-folder-delete-confirm><p class=bookmark-delete-prompt>Delete "<!>"?</p><div class=bookmark-delete-options><button class="bookmark-ghost-button danger"type=button></button><button class=bookmark-ghost-button type=button>Cancel`), _tmpl$43 = /* @__PURE__ */ template(`<div class=bookmark-folder-edit><div class=bookmark-folder-form-fields><input class=bookmark-input><input class=bookmark-input placeholder="Optional one-line summary"></div><button class=bookmark-secondary-button type=button>Save</button><button class=bookmark-ghost-button type=button>Cancel`), _tmpl$44 = /* @__PURE__ */ template(`<div class=bookmark-items>`), _tmpl$45 = /* @__PURE__ */ template(`<div class=bookmark-folder-section><div class="bookmark-folder-header clickable"role=button tabindex=0><div class=bookmark-folder-overview><span class=bookmark-folder-chevron aria-hidden=true>▸</span><div><div class=bookmark-folder-name></div><div class=bookmark-folder-meta> saved`), _tmpl$46 = /* @__PURE__ */ template(`<div class=bookmark-folder-collapsed-hint>Click to view saved links.`), _tmpl$47 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>No bookmarks in this folder yet.`), _tmpl$48 = /* @__PURE__ */ template(`<div class=bookmark-item-note>`), _tmpl$49 = /* @__PURE__ */ template(`<div><strong>Intent:</strong> `), _tmpl$50 = /* @__PURE__ */ template(`<div><strong>Expected:</strong> `), _tmpl$51 = /* @__PURE__ */ template(`<div><strong>Key fields:</strong> `), _tmpl$52 = /* @__PURE__ */ template(`<div><strong>Hints:</strong> `), _tmpl$53 = /* @__PURE__ */ template(`<div class=bookmark-folder-edit><input class=bookmark-input placeholder="Bookmark title"><textarea class=bookmark-note-input rows=2 placeholder="Why this bookmark matters"></textarea><textarea class=bookmark-note-input rows=1 placeholder=Intent></textarea><textarea class=bookmark-note-input rows=1 placeholder="Expected content"></textarea><input class=bookmark-input placeholder="Key fields (comma-separated)"><textarea class=bookmark-note-input rows=2 placeholder="Agent hints (one key:value per line)"></textarea><div class=bookmark-item-footer><button class=bookmark-secondary-button type=button>Save edits</button><button class=bookmark-ghost-button type=button>Cancel`), _tmpl$54 = /* @__PURE__ */ template(`<div class=bookmark-item><button class=bookmark-item-link type=button><span class=bookmark-item-title></span><span class=bookmark-item-url></span></button><div class=bookmark-item-footer><span class=bookmark-item-time></span><button class=bookmark-ghost-button type=button></button><button class="bookmark-ghost-button danger"type=button>Remove`), _tmpl$55 = /* @__PURE__ */ template(`<div class=agent-muted>No checkpoints yet.`), _tmpl$56 = /* @__PURE__ */ template(`<span class=checkpoint-timeline-line>`), _tmpl$57 = /* @__PURE__ */ template(`<div class=checkpoint-timeline-item><div class=checkpoint-timeline-rail><span class=checkpoint-timeline-dot></span></div><div class=checkpoint-timeline-content><div class=checkpoint-timeline-name></div><div class=checkpoint-timeline-time></div><textarea class=agent-textarea rows=2 placeholder="Add a note..."></textarea><button class=agent-control-button type=button>Restore`), _tmpl$58 = /* @__PURE__ */ template(`<button class=history-entry><span class=history-entry-title></span><span class=history-entry-url></span><span class=history-entry-time>`), _tmpl$59 = /* @__PURE__ */ template(`<div class="kit-upsell premium-chat-banner"><p class=kit-upsell-title>Vessel Premium</p><p class="kit-upsell-body premium-chat-banner-body">The Diff timeline is a premium feature. Upgrade to see a full history of what changed on this page.</p><div class="premium-inline-actions premium-chat-banner-actions"><button class="agent-primary-button premium-inline-primary"type=button>Start 7-day free trial — $5.99/mo after</button><button class="agent-control-button premium-inline-secondary"type=button>See Premium`), _tmpl$60 = /* @__PURE__ */ template(`<div>`), _tmpl$61 = /* @__PURE__ */ template(`<div class=thinking-state><div class=thinking-orb aria-hidden=true><span></span><span></span><span></span></div><div class=thinking-copy><div class=thinking-title>Thinking`), _tmpl$62 = /* @__PURE__ */ template(`<div class=chat-approval-detail>`), _tmpl$63 = /* @__PURE__ */ template(`<div class=chat-approval><div class=chat-approval-icon aria-hidden=true><svg width=16 height=16 viewBox="0 0 16 16"fill=none><path d="M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM7.25 4.75a.75.75 0 011.5 0v3.5a.75.75 0 01-1.5 0v-3.5zM8 11.5a.75.75 0 110-1.5.75.75 0 010 1.5z"fill=currentColor></path></svg></div><div class=chat-approval-body><div class=chat-approval-title>Approval needed: <strong></strong></div><div class=chat-approval-detail></div><div class=chat-approval-actions><button class="chat-approval-btn chat-approval-approve"type=button>Approve</button><button class="chat-approval-btn chat-approval-reject"type=button>Reject`), _tmpl$64 = /* @__PURE__ */ template(`<div class=chat-queue-item><span class=chat-queue-text></span><button class=chat-queue-remove type=button>×`);
|
|
8452
8523
|
const UNSORTED_FOLDER = {
|
|
8453
8524
|
id: "unsorted",
|
|
8454
8525
|
name: "Unsorted",
|
|
@@ -8762,10 +8833,18 @@ ${contextBlock}` : contextBlock);
|
|
|
8762
8833
|
value: folder.id,
|
|
8763
8834
|
label: folder.name
|
|
8764
8835
|
})));
|
|
8765
|
-
const groupedBookmarks = createMemo(() =>
|
|
8766
|
-
|
|
8767
|
-
|
|
8768
|
-
|
|
8836
|
+
const groupedBookmarks = createMemo(() => {
|
|
8837
|
+
const byFolder = /* @__PURE__ */ new Map();
|
|
8838
|
+
for (const bookmark of bookmarksState2().bookmarks) {
|
|
8839
|
+
const items = byFolder.get(bookmark.folderId) ?? [];
|
|
8840
|
+
items.push(bookmark);
|
|
8841
|
+
byFolder.set(bookmark.folderId, items);
|
|
8842
|
+
}
|
|
8843
|
+
return bookmarkFolders().map((folder) => ({
|
|
8844
|
+
...folder,
|
|
8845
|
+
items: (byFolder.get(folder.id) ?? []).slice().sort((a, b) => b.savedAt.localeCompare(a.savedAt))
|
|
8846
|
+
}));
|
|
8847
|
+
});
|
|
8769
8848
|
const normalizedBookmarkSearch = createMemo(() => normalizeBookmarkSearchText(bookmarkSearchQuery()));
|
|
8770
8849
|
const filteredGroupedBookmarks = createMemo(() => {
|
|
8771
8850
|
const query2 = bookmarkSearchQuery().trim();
|
|
@@ -9063,9 +9142,9 @@ ${contextBlock}` : contextBlock);
|
|
|
9063
9142
|
return props.forceOpen || sidebarOpen2();
|
|
9064
9143
|
},
|
|
9065
9144
|
get children() {
|
|
9066
|
-
var _el$9 = _tmpl$
|
|
9145
|
+
var _el$9 = _tmpl$30(), _el$0 = _el$9.firstChild, _el$1 = _el$0.nextSibling, _el$10 = _el$1.firstChild, _el$11 = _el$10.firstChild, _el$12 = _el$10.nextSibling, _el$13 = _el$12.firstChild, _el$14 = _el$13.nextSibling, _el$15 = _el$1.nextSibling, _el$16 = _el$15.firstChild;
|
|
9067
9146
|
_el$16.firstChild;
|
|
9068
|
-
var _el$19 = _el$16.nextSibling, _el$20 = _el$19.nextSibling, _el$21 = _el$20.nextSibling, _el$22 = _el$21.nextSibling, _el$23 = _el$22.nextSibling, _el$24 = _el$23.nextSibling, _el$25 = _el$24.nextSibling, _el$26 = _el$15.nextSibling, _el$
|
|
9147
|
+
var _el$19 = _el$16.nextSibling, _el$20 = _el$19.nextSibling, _el$21 = _el$20.nextSibling, _el$22 = _el$21.nextSibling, _el$23 = _el$22.nextSibling, _el$24 = _el$23.nextSibling, _el$25 = _el$24.nextSibling, _el$26 = _el$15.nextSibling, _el$132 = _el$26.firstChild;
|
|
9069
9148
|
_el$0.$$pointerdown = startResize;
|
|
9070
9149
|
setAttribute(_el$11, "src", vesselLogo);
|
|
9071
9150
|
addEventListener(_el$13, "click", clearHistory, true);
|
|
@@ -9132,7 +9211,7 @@ ${contextBlock}` : contextBlock);
|
|
|
9132
9211
|
return runtimeState2().supervisor.pendingApprovals.length > 0;
|
|
9133
9212
|
},
|
|
9134
9213
|
get fallback() {
|
|
9135
|
-
return _tmpl$
|
|
9214
|
+
return _tmpl$31();
|
|
9136
9215
|
},
|
|
9137
9216
|
get children() {
|
|
9138
9217
|
return [_tmpl$5$8(), createComponent(For, {
|
|
@@ -9140,13 +9219,13 @@ ${contextBlock}` : contextBlock);
|
|
|
9140
9219
|
return runtimeState2().supervisor.pendingApprovals;
|
|
9141
9220
|
},
|
|
9142
9221
|
children: (approval) => (() => {
|
|
9143
|
-
var _el$
|
|
9144
|
-
insert(_el$
|
|
9145
|
-
insert(_el$
|
|
9146
|
-
insert(_el$
|
|
9147
|
-
_el$
|
|
9148
|
-
_el$
|
|
9149
|
-
return _el$
|
|
9222
|
+
var _el$150 = _tmpl$32(), _el$151 = _el$150.firstChild, _el$152 = _el$151.nextSibling, _el$153 = _el$152.nextSibling, _el$154 = _el$153.nextSibling, _el$155 = _el$154.nextSibling, _el$156 = _el$155.firstChild, _el$157 = _el$156.nextSibling;
|
|
9223
|
+
insert(_el$152, () => approval.name);
|
|
9224
|
+
insert(_el$153, () => approval.argsSummary);
|
|
9225
|
+
insert(_el$154, () => approval.reason);
|
|
9226
|
+
_el$156.$$click = () => void resolveApproval(approval.id, true);
|
|
9227
|
+
_el$157.$$click = () => void resolveApproval(approval.id, false);
|
|
9228
|
+
return _el$150;
|
|
9150
9229
|
})()
|
|
9151
9230
|
})];
|
|
9152
9231
|
}
|
|
@@ -9170,7 +9249,7 @@ ${contextBlock}` : contextBlock);
|
|
|
9170
9249
|
return recentActions().length > 0;
|
|
9171
9250
|
},
|
|
9172
9251
|
get fallback() {
|
|
9173
|
-
return _tmpl$
|
|
9252
|
+
return _tmpl$33();
|
|
9174
9253
|
},
|
|
9175
9254
|
get children() {
|
|
9176
9255
|
return createComponent(Show, {
|
|
@@ -9178,7 +9257,7 @@ ${contextBlock}` : contextBlock);
|
|
|
9178
9257
|
return actionsExpanded();
|
|
9179
9258
|
},
|
|
9180
9259
|
get fallback() {
|
|
9181
|
-
return _tmpl$
|
|
9260
|
+
return _tmpl$34();
|
|
9182
9261
|
},
|
|
9183
9262
|
get children() {
|
|
9184
9263
|
return createComponent(For, {
|
|
@@ -9186,32 +9265,32 @@ ${contextBlock}` : contextBlock);
|
|
|
9186
9265
|
return recentActions();
|
|
9187
9266
|
},
|
|
9188
9267
|
children: (action) => (() => {
|
|
9189
|
-
var _el$
|
|
9190
|
-
insert(_el$
|
|
9191
|
-
insert(_el$
|
|
9192
|
-
insert(_el$
|
|
9193
|
-
insert(_el$
|
|
9268
|
+
var _el$160 = _tmpl$37(), _el$161 = _el$160.firstChild, _el$162 = _el$161.firstChild, _el$163 = _el$162.nextSibling, _el$164 = _el$161.nextSibling;
|
|
9269
|
+
insert(_el$162, () => action.name);
|
|
9270
|
+
insert(_el$163, () => action.status);
|
|
9271
|
+
insert(_el$164, () => action.argsSummary);
|
|
9272
|
+
insert(_el$160, createComponent(Show, {
|
|
9194
9273
|
get when() {
|
|
9195
9274
|
return action.resultSummary;
|
|
9196
9275
|
},
|
|
9197
9276
|
get children() {
|
|
9198
|
-
var _el$
|
|
9199
|
-
insert(_el$
|
|
9200
|
-
return _el$
|
|
9277
|
+
var _el$165 = _tmpl$35();
|
|
9278
|
+
insert(_el$165, () => action.resultSummary);
|
|
9279
|
+
return _el$165;
|
|
9201
9280
|
}
|
|
9202
9281
|
}), null);
|
|
9203
|
-
insert(_el$
|
|
9282
|
+
insert(_el$160, createComponent(Show, {
|
|
9204
9283
|
get when() {
|
|
9205
9284
|
return action.error;
|
|
9206
9285
|
},
|
|
9207
9286
|
get children() {
|
|
9208
|
-
var _el$
|
|
9209
|
-
insert(_el$
|
|
9210
|
-
return _el$
|
|
9287
|
+
var _el$166 = _tmpl$36();
|
|
9288
|
+
insert(_el$166, () => action.error);
|
|
9289
|
+
return _el$166;
|
|
9211
9290
|
}
|
|
9212
9291
|
}), null);
|
|
9213
|
-
createRenderEffect(() => className(_el$
|
|
9214
|
-
return _el$
|
|
9292
|
+
createRenderEffect(() => className(_el$163, `agent-action-status ${action.status}`));
|
|
9293
|
+
return _el$160;
|
|
9215
9294
|
})()
|
|
9216
9295
|
});
|
|
9217
9296
|
}
|
|
@@ -9221,7 +9300,7 @@ ${contextBlock}` : contextBlock);
|
|
|
9221
9300
|
createRenderEffect(() => _el$32.classList.toggle("paused", !!runtimeState2().supervisor.paused));
|
|
9222
9301
|
return _el$27;
|
|
9223
9302
|
}
|
|
9224
|
-
}), _el$
|
|
9303
|
+
}), _el$132);
|
|
9225
9304
|
insert(_el$26, createComponent(Show, {
|
|
9226
9305
|
get when() {
|
|
9227
9306
|
return sidebarTab() === "bookmarks";
|
|
@@ -9249,7 +9328,7 @@ ${contextBlock}` : contextBlock);
|
|
|
9249
9328
|
return bookmarkExportMessage();
|
|
9250
9329
|
},
|
|
9251
9330
|
get children() {
|
|
9252
|
-
var _el$55 = _tmpl$9$
|
|
9331
|
+
var _el$55 = _tmpl$9$4();
|
|
9253
9332
|
insert(_el$55, bookmarkExportMessage);
|
|
9254
9333
|
return _el$55;
|
|
9255
9334
|
}
|
|
@@ -9268,7 +9347,7 @@ ${contextBlock}` : contextBlock);
|
|
|
9268
9347
|
return bookmarkImportMessage();
|
|
9269
9348
|
},
|
|
9270
9349
|
get children() {
|
|
9271
|
-
var _el$64 = _tmpl$9$
|
|
9350
|
+
var _el$64 = _tmpl$9$4();
|
|
9272
9351
|
insert(_el$64, bookmarkImportMessage);
|
|
9273
9352
|
return _el$64;
|
|
9274
9353
|
}
|
|
@@ -9329,12 +9408,12 @@ ${contextBlock}` : contextBlock);
|
|
|
9329
9408
|
},
|
|
9330
9409
|
get fallback() {
|
|
9331
9410
|
return (() => {
|
|
9332
|
-
var _el$
|
|
9333
|
-
insert(_el$
|
|
9411
|
+
var _el$167 = _tmpl$38();
|
|
9412
|
+
insert(_el$167, (() => {
|
|
9334
9413
|
var _c$5 = memo(() => !!normalizedBookmarkSearch());
|
|
9335
9414
|
return () => _c$5() ? `No bookmarks matched "${bookmarkSearchQuery().trim()}".` : "No bookmarks saved yet.";
|
|
9336
9415
|
})());
|
|
9337
|
-
return _el$
|
|
9416
|
+
return _el$167;
|
|
9338
9417
|
})();
|
|
9339
9418
|
},
|
|
9340
9419
|
get children() {
|
|
@@ -9343,105 +9422,105 @@ ${contextBlock}` : contextBlock);
|
|
|
9343
9422
|
return filteredGroupedBookmarks();
|
|
9344
9423
|
},
|
|
9345
9424
|
children: (folder) => (() => {
|
|
9346
|
-
var _el$
|
|
9347
|
-
_el$
|
|
9425
|
+
var _el$168 = _tmpl$45(), _el$169 = _el$168.firstChild, _el$170 = _el$169.firstChild, _el$171 = _el$170.firstChild, _el$172 = _el$171.nextSibling, _el$173 = _el$172.firstChild, _el$174 = _el$173.nextSibling, _el$175 = _el$174.firstChild;
|
|
9426
|
+
_el$169.$$keydown = (e) => {
|
|
9348
9427
|
if (e.key === "Enter" || e.key === " ") {
|
|
9349
9428
|
e.preventDefault();
|
|
9350
9429
|
toggleFolderExpanded(folder.id);
|
|
9351
9430
|
}
|
|
9352
9431
|
};
|
|
9353
|
-
_el$
|
|
9354
|
-
insert(_el$
|
|
9355
|
-
insert(_el$
|
|
9356
|
-
insert(_el$
|
|
9432
|
+
_el$169.$$click = () => toggleFolderExpanded(folder.id);
|
|
9433
|
+
insert(_el$173, () => folder.name);
|
|
9434
|
+
insert(_el$174, () => folder.items.length, _el$175);
|
|
9435
|
+
insert(_el$172, createComponent(Show, {
|
|
9357
9436
|
get when() {
|
|
9358
9437
|
return folder.summary;
|
|
9359
9438
|
},
|
|
9360
9439
|
get children() {
|
|
9361
|
-
var _el$
|
|
9362
|
-
insert(_el$
|
|
9363
|
-
return _el$
|
|
9440
|
+
var _el$176 = _tmpl$39();
|
|
9441
|
+
insert(_el$176, () => folder.summary);
|
|
9442
|
+
return _el$176;
|
|
9364
9443
|
}
|
|
9365
9444
|
}), null);
|
|
9366
|
-
insert(_el$
|
|
9445
|
+
insert(_el$169, createComponent(Show, {
|
|
9367
9446
|
get when() {
|
|
9368
9447
|
return folder.id !== UNSORTED_FOLDER.id;
|
|
9369
9448
|
},
|
|
9370
9449
|
get children() {
|
|
9371
|
-
var _el$
|
|
9372
|
-
_el$
|
|
9450
|
+
var _el$177 = _tmpl$40(), _el$178 = _el$177.firstChild, _el$179 = _el$178.nextSibling, _el$180 = _el$179.nextSibling;
|
|
9451
|
+
_el$178.$$click = (e) => {
|
|
9373
9452
|
e.stopPropagation();
|
|
9374
9453
|
setEditingFolderId(folder.id);
|
|
9375
9454
|
setEditingFolderName(folder.name);
|
|
9376
9455
|
setEditingFolderSummary(folder.summary || "");
|
|
9377
9456
|
};
|
|
9378
|
-
_el$
|
|
9457
|
+
_el$179.$$click = (e) => {
|
|
9379
9458
|
e.stopPropagation();
|
|
9380
9459
|
void handleExportFolder(folder.id, folder.name);
|
|
9381
9460
|
};
|
|
9382
|
-
_el$
|
|
9461
|
+
_el$180.$$click = (e) => {
|
|
9383
9462
|
e.stopPropagation();
|
|
9384
9463
|
setDeletingFolderId(folder.id);
|
|
9385
9464
|
};
|
|
9386
|
-
createRenderEffect(() => _el$
|
|
9387
|
-
return _el$
|
|
9465
|
+
createRenderEffect(() => _el$179.disabled = bookmarkExporting());
|
|
9466
|
+
return _el$177;
|
|
9388
9467
|
}
|
|
9389
9468
|
}), null);
|
|
9390
|
-
insert(_el$
|
|
9469
|
+
insert(_el$168, createComponent(Show, {
|
|
9391
9470
|
get when() {
|
|
9392
9471
|
return deletingFolderId() === folder.id;
|
|
9393
9472
|
},
|
|
9394
9473
|
get children() {
|
|
9395
|
-
var _el$
|
|
9396
|
-
_el$
|
|
9397
|
-
var _el$
|
|
9398
|
-
insert(_el$
|
|
9399
|
-
insert(_el$
|
|
9474
|
+
var _el$181 = _tmpl$42(), _el$182 = _el$181.firstChild, _el$183 = _el$182.firstChild, _el$185 = _el$183.nextSibling;
|
|
9475
|
+
_el$185.nextSibling;
|
|
9476
|
+
var _el$186 = _el$182.nextSibling, _el$188 = _el$186.firstChild, _el$189 = _el$188.nextSibling;
|
|
9477
|
+
insert(_el$182, () => folder.name, _el$185);
|
|
9478
|
+
insert(_el$182, (() => {
|
|
9400
9479
|
var _c$6 = memo(() => folder.items.length > 0);
|
|
9401
9480
|
return () => _c$6() ? ` This folder has ${folder.items.length} bookmark${folder.items.length === 1 ? "" : "s"}.` : "";
|
|
9402
9481
|
})(), null);
|
|
9403
|
-
insert(_el$
|
|
9482
|
+
insert(_el$186, createComponent(Show, {
|
|
9404
9483
|
get when() {
|
|
9405
9484
|
return folder.items.length > 0;
|
|
9406
9485
|
},
|
|
9407
9486
|
get children() {
|
|
9408
|
-
var _el$
|
|
9409
|
-
_el$
|
|
9410
|
-
return _el$
|
|
9487
|
+
var _el$187 = _tmpl$41();
|
|
9488
|
+
_el$187.$$click = () => void handleRemoveFolder(folder.id, false);
|
|
9489
|
+
return _el$187;
|
|
9411
9490
|
}
|
|
9412
|
-
}), _el$
|
|
9413
|
-
_el$
|
|
9414
|
-
insert(_el$
|
|
9415
|
-
_el$
|
|
9416
|
-
return _el$
|
|
9491
|
+
}), _el$188);
|
|
9492
|
+
_el$188.$$click = () => void handleRemoveFolder(folder.id, true);
|
|
9493
|
+
insert(_el$188, () => folder.items.length > 0 ? "Delete all" : "Delete folder");
|
|
9494
|
+
_el$189.$$click = () => setDeletingFolderId(null);
|
|
9495
|
+
return _el$181;
|
|
9417
9496
|
}
|
|
9418
9497
|
}), null);
|
|
9419
|
-
insert(_el$
|
|
9498
|
+
insert(_el$168, createComponent(Show, {
|
|
9420
9499
|
get when() {
|
|
9421
9500
|
return editingFolderId() === folder.id;
|
|
9422
9501
|
},
|
|
9423
9502
|
get children() {
|
|
9424
|
-
var _el$
|
|
9425
|
-
_el$
|
|
9426
|
-
_el$
|
|
9427
|
-
_el$
|
|
9428
|
-
_el$
|
|
9503
|
+
var _el$190 = _tmpl$43(), _el$191 = _el$190.firstChild, _el$192 = _el$191.firstChild, _el$193 = _el$192.nextSibling, _el$194 = _el$191.nextSibling, _el$195 = _el$194.nextSibling;
|
|
9504
|
+
_el$192.$$input = (e) => setEditingFolderName(e.currentTarget.value);
|
|
9505
|
+
_el$193.$$input = (e) => setEditingFolderSummary(e.currentTarget.value);
|
|
9506
|
+
_el$194.$$click = () => void handleRenameFolder(folder.id);
|
|
9507
|
+
_el$195.$$click = () => {
|
|
9429
9508
|
setEditingFolderId(null);
|
|
9430
9509
|
setEditingFolderName("");
|
|
9431
9510
|
setEditingFolderSummary("");
|
|
9432
9511
|
};
|
|
9433
|
-
createRenderEffect(() => _el$
|
|
9434
|
-
createRenderEffect(() => _el$
|
|
9435
|
-
createRenderEffect(() => _el$
|
|
9436
|
-
return _el$
|
|
9512
|
+
createRenderEffect(() => _el$194.disabled = !editingFolderName().trim());
|
|
9513
|
+
createRenderEffect(() => _el$192.value = editingFolderName());
|
|
9514
|
+
createRenderEffect(() => _el$193.value = editingFolderSummary());
|
|
9515
|
+
return _el$190;
|
|
9437
9516
|
}
|
|
9438
9517
|
}), null);
|
|
9439
|
-
insert(_el$
|
|
9518
|
+
insert(_el$168, createComponent(Show, {
|
|
9440
9519
|
get when() {
|
|
9441
9520
|
return isFolderExpanded(folder.id);
|
|
9442
9521
|
},
|
|
9443
9522
|
get fallback() {
|
|
9444
|
-
return _tmpl$
|
|
9523
|
+
return _tmpl$46();
|
|
9445
9524
|
},
|
|
9446
9525
|
get children() {
|
|
9447
9526
|
return createComponent(Show, {
|
|
@@ -9449,125 +9528,125 @@ ${contextBlock}` : contextBlock);
|
|
|
9449
9528
|
return folder.items.length > 0;
|
|
9450
9529
|
},
|
|
9451
9530
|
get fallback() {
|
|
9452
|
-
return _tmpl$
|
|
9531
|
+
return _tmpl$47();
|
|
9453
9532
|
},
|
|
9454
9533
|
get children() {
|
|
9455
|
-
var _el$
|
|
9456
|
-
insert(_el$
|
|
9534
|
+
var _el$196 = _tmpl$44();
|
|
9535
|
+
insert(_el$196, createComponent(For, {
|
|
9457
9536
|
get each() {
|
|
9458
9537
|
return folder.items;
|
|
9459
9538
|
},
|
|
9460
9539
|
children: (bookmark) => (() => {
|
|
9461
|
-
var _el$
|
|
9462
|
-
_el$
|
|
9463
|
-
insert(_el$
|
|
9464
|
-
insert(_el$
|
|
9465
|
-
insert(_el$
|
|
9540
|
+
var _el$199 = _tmpl$54(), _el$200 = _el$199.firstChild, _el$201 = _el$200.firstChild, _el$202 = _el$201.nextSibling, _el$227 = _el$200.nextSibling, _el$228 = _el$227.firstChild, _el$229 = _el$228.nextSibling, _el$230 = _el$229.nextSibling;
|
|
9541
|
+
_el$200.$$click = () => void createTab(bookmark.url);
|
|
9542
|
+
insert(_el$201, () => bookmark.title || bookmark.url);
|
|
9543
|
+
insert(_el$202, () => bookmark.url);
|
|
9544
|
+
insert(_el$199, createComponent(Show, {
|
|
9466
9545
|
get when() {
|
|
9467
9546
|
return bookmark.note;
|
|
9468
9547
|
},
|
|
9469
9548
|
get children() {
|
|
9470
|
-
var _el$
|
|
9471
|
-
insert(_el$
|
|
9472
|
-
return _el$
|
|
9549
|
+
var _el$203 = _tmpl$48();
|
|
9550
|
+
insert(_el$203, () => bookmark.note);
|
|
9551
|
+
return _el$203;
|
|
9473
9552
|
}
|
|
9474
|
-
}), _el$
|
|
9475
|
-
insert(_el$
|
|
9553
|
+
}), _el$227);
|
|
9554
|
+
insert(_el$199, createComponent(Show, {
|
|
9476
9555
|
get when() {
|
|
9477
9556
|
return bookmark.intent || bookmark.expectedContent || (bookmark.keyFields?.length || 0) > 0 || (bookmark.agentHints && Object.keys(bookmark.agentHints).length || 0) > 0;
|
|
9478
9557
|
},
|
|
9479
9558
|
get children() {
|
|
9480
|
-
var _el$
|
|
9481
|
-
insert(_el$
|
|
9559
|
+
var _el$204 = _tmpl$48();
|
|
9560
|
+
insert(_el$204, createComponent(Show, {
|
|
9482
9561
|
get when() {
|
|
9483
9562
|
return bookmark.intent;
|
|
9484
9563
|
},
|
|
9485
9564
|
get children() {
|
|
9486
|
-
var _el$
|
|
9487
|
-
_el$
|
|
9488
|
-
insert(_el$
|
|
9489
|
-
return _el$
|
|
9565
|
+
var _el$205 = _tmpl$49(), _el$206 = _el$205.firstChild;
|
|
9566
|
+
_el$206.nextSibling;
|
|
9567
|
+
insert(_el$205, () => bookmark.intent, null);
|
|
9568
|
+
return _el$205;
|
|
9490
9569
|
}
|
|
9491
9570
|
}), null);
|
|
9492
|
-
insert(_el$
|
|
9571
|
+
insert(_el$204, createComponent(Show, {
|
|
9493
9572
|
get when() {
|
|
9494
9573
|
return bookmark.expectedContent;
|
|
9495
9574
|
},
|
|
9496
9575
|
get children() {
|
|
9497
|
-
var _el$
|
|
9498
|
-
_el$
|
|
9499
|
-
insert(_el$
|
|
9500
|
-
return _el$
|
|
9576
|
+
var _el$208 = _tmpl$50(), _el$209 = _el$208.firstChild;
|
|
9577
|
+
_el$209.nextSibling;
|
|
9578
|
+
insert(_el$208, () => bookmark.expectedContent, null);
|
|
9579
|
+
return _el$208;
|
|
9501
9580
|
}
|
|
9502
9581
|
}), null);
|
|
9503
|
-
insert(_el$
|
|
9582
|
+
insert(_el$204, createComponent(Show, {
|
|
9504
9583
|
get when() {
|
|
9505
9584
|
return (bookmark.keyFields?.length || 0) > 0;
|
|
9506
9585
|
},
|
|
9507
9586
|
get children() {
|
|
9508
|
-
var _el$
|
|
9509
|
-
_el$
|
|
9510
|
-
insert(_el$
|
|
9511
|
-
return _el$
|
|
9587
|
+
var _el$211 = _tmpl$51(), _el$212 = _el$211.firstChild;
|
|
9588
|
+
_el$212.nextSibling;
|
|
9589
|
+
insert(_el$211, () => bookmark.keyFields?.join(", "), null);
|
|
9590
|
+
return _el$211;
|
|
9512
9591
|
}
|
|
9513
9592
|
}), null);
|
|
9514
|
-
insert(_el$
|
|
9593
|
+
insert(_el$204, createComponent(Show, {
|
|
9515
9594
|
get when() {
|
|
9516
9595
|
return memo(() => !!bookmark.agentHints)() && Object.keys(bookmark.agentHints).length > 0;
|
|
9517
9596
|
},
|
|
9518
9597
|
get children() {
|
|
9519
|
-
var _el$
|
|
9520
|
-
_el$
|
|
9521
|
-
insert(_el$
|
|
9522
|
-
return _el$
|
|
9598
|
+
var _el$214 = _tmpl$52(), _el$215 = _el$214.firstChild;
|
|
9599
|
+
_el$215.nextSibling;
|
|
9600
|
+
insert(_el$214, () => Object.entries(bookmark.agentHints || {}).map(([key, hint]) => `${key}: ${hint}`).join(" • "), null);
|
|
9601
|
+
return _el$214;
|
|
9523
9602
|
}
|
|
9524
9603
|
}), null);
|
|
9525
|
-
return _el$
|
|
9604
|
+
return _el$204;
|
|
9526
9605
|
}
|
|
9527
|
-
}), _el$
|
|
9528
|
-
insert(_el$
|
|
9606
|
+
}), _el$227);
|
|
9607
|
+
insert(_el$199, createComponent(Show, {
|
|
9529
9608
|
get when() {
|
|
9530
9609
|
return editingBookmarkId() === bookmark.id;
|
|
9531
9610
|
},
|
|
9532
9611
|
get children() {
|
|
9533
|
-
var _el$
|
|
9534
|
-
_el$
|
|
9535
|
-
_el$
|
|
9536
|
-
_el$
|
|
9537
|
-
_el$
|
|
9538
|
-
_el$
|
|
9539
|
-
_el$
|
|
9540
|
-
_el$
|
|
9541
|
-
_el$
|
|
9542
|
-
createRenderEffect(() => _el$
|
|
9543
|
-
createRenderEffect(() => _el$
|
|
9544
|
-
createRenderEffect(() => _el$
|
|
9545
|
-
createRenderEffect(() => _el$
|
|
9546
|
-
createRenderEffect(() => _el$
|
|
9547
|
-
createRenderEffect(() => _el$
|
|
9548
|
-
return _el$
|
|
9612
|
+
var _el$217 = _tmpl$53(), _el$218 = _el$217.firstChild, _el$219 = _el$218.nextSibling, _el$220 = _el$219.nextSibling, _el$221 = _el$220.nextSibling, _el$222 = _el$221.nextSibling, _el$223 = _el$222.nextSibling, _el$224 = _el$223.nextSibling, _el$225 = _el$224.firstChild, _el$226 = _el$225.nextSibling;
|
|
9613
|
+
_el$218.$$input = (e) => setEditingBookmarkTitle(e.currentTarget.value);
|
|
9614
|
+
_el$219.$$input = (e) => setEditingBookmarkNote(e.currentTarget.value);
|
|
9615
|
+
_el$220.$$input = (e) => setEditingBookmarkIntent(e.currentTarget.value);
|
|
9616
|
+
_el$221.$$input = (e) => setEditingBookmarkExpectedContent(e.currentTarget.value);
|
|
9617
|
+
_el$222.$$input = (e) => setEditingBookmarkKeyFields(e.currentTarget.value);
|
|
9618
|
+
_el$223.$$input = (e) => setEditingBookmarkAgentHints(e.currentTarget.value);
|
|
9619
|
+
_el$225.$$click = () => void handleUpdateBookmark(bookmark.id);
|
|
9620
|
+
_el$226.$$click = resetBookmarkEditor;
|
|
9621
|
+
createRenderEffect(() => _el$218.value = editingBookmarkTitle());
|
|
9622
|
+
createRenderEffect(() => _el$219.value = editingBookmarkNote());
|
|
9623
|
+
createRenderEffect(() => _el$220.value = editingBookmarkIntent());
|
|
9624
|
+
createRenderEffect(() => _el$221.value = editingBookmarkExpectedContent());
|
|
9625
|
+
createRenderEffect(() => _el$222.value = editingBookmarkKeyFields());
|
|
9626
|
+
createRenderEffect(() => _el$223.value = editingBookmarkAgentHints());
|
|
9627
|
+
return _el$217;
|
|
9549
9628
|
}
|
|
9550
|
-
}), _el$
|
|
9551
|
-
insert(_el$
|
|
9552
|
-
_el$
|
|
9553
|
-
insert(_el$
|
|
9554
|
-
_el$
|
|
9629
|
+
}), _el$227);
|
|
9630
|
+
insert(_el$228, () => formatBookmarkDate(bookmark.savedAt));
|
|
9631
|
+
_el$229.$$click = () => editingBookmarkId() === bookmark.id ? resetBookmarkEditor() : startEditingBookmark(bookmark);
|
|
9632
|
+
insert(_el$229, () => editingBookmarkId() === bookmark.id ? "Close" : "Edit");
|
|
9633
|
+
_el$230.$$click = () => {
|
|
9555
9634
|
if (editingBookmarkId() === bookmark.id) {
|
|
9556
9635
|
resetBookmarkEditor();
|
|
9557
9636
|
}
|
|
9558
9637
|
void removeBookmark(bookmark.id);
|
|
9559
9638
|
};
|
|
9560
|
-
createRenderEffect(() => setAttribute(_el$
|
|
9561
|
-
return _el$
|
|
9639
|
+
createRenderEffect(() => setAttribute(_el$199, "data-bookmark-id", bookmark.id));
|
|
9640
|
+
return _el$199;
|
|
9562
9641
|
})()
|
|
9563
9642
|
}));
|
|
9564
|
-
return _el$
|
|
9643
|
+
return _el$196;
|
|
9565
9644
|
}
|
|
9566
9645
|
});
|
|
9567
9646
|
}
|
|
9568
9647
|
}), null);
|
|
9569
|
-
createRenderEffect(() => _el$
|
|
9570
|
-
return _el$
|
|
9648
|
+
createRenderEffect(() => _el$171.classList.toggle("expanded", !!isFolderExpanded(folder.id)));
|
|
9649
|
+
return _el$168;
|
|
9571
9650
|
})()
|
|
9572
9651
|
});
|
|
9573
9652
|
}
|
|
@@ -9594,7 +9673,7 @@ ${contextBlock}` : contextBlock);
|
|
|
9594
9673
|
createRenderEffect(() => _el$82.value = newFolderSummary());
|
|
9595
9674
|
return _el$42;
|
|
9596
9675
|
}
|
|
9597
|
-
}), _el$
|
|
9676
|
+
}), _el$132);
|
|
9598
9677
|
insert(_el$26, createComponent(Show, {
|
|
9599
9678
|
get when() {
|
|
9600
9679
|
return sidebarTab() === "checkpoints";
|
|
@@ -9619,7 +9698,7 @@ ${contextBlock}` : contextBlock);
|
|
|
9619
9698
|
return recentCheckpoints().length > 0;
|
|
9620
9699
|
},
|
|
9621
9700
|
get fallback() {
|
|
9622
|
-
return _tmpl$
|
|
9701
|
+
return _tmpl$55();
|
|
9623
9702
|
},
|
|
9624
9703
|
get children() {
|
|
9625
9704
|
var _el$96 = _tmpl$11$3();
|
|
@@ -9628,22 +9707,22 @@ ${contextBlock}` : contextBlock);
|
|
|
9628
9707
|
return recentCheckpoints();
|
|
9629
9708
|
},
|
|
9630
9709
|
children: (checkpoint, i) => (() => {
|
|
9631
|
-
var _el$
|
|
9632
|
-
insert(_el$
|
|
9710
|
+
var _el$232 = _tmpl$57(), _el$233 = _el$232.firstChild, _el$234 = _el$233.firstChild, _el$236 = _el$233.nextSibling, _el$237 = _el$236.firstChild, _el$238 = _el$237.nextSibling, _el$239 = _el$238.nextSibling, _el$240 = _el$239.nextSibling;
|
|
9711
|
+
insert(_el$233, createComponent(Show, {
|
|
9633
9712
|
get when() {
|
|
9634
9713
|
return i() < recentCheckpoints().length - 1;
|
|
9635
9714
|
},
|
|
9636
9715
|
get children() {
|
|
9637
|
-
return _tmpl$
|
|
9716
|
+
return _tmpl$56();
|
|
9638
9717
|
}
|
|
9639
9718
|
}), null);
|
|
9640
|
-
insert(_el$
|
|
9641
|
-
insert(_el$
|
|
9642
|
-
_el$
|
|
9643
|
-
_el$
|
|
9644
|
-
createRenderEffect(() => _el$
|
|
9645
|
-
createRenderEffect(() => _el$
|
|
9646
|
-
return _el$
|
|
9719
|
+
insert(_el$237, () => checkpoint.name);
|
|
9720
|
+
insert(_el$238, () => new Date(checkpoint.createdAt).toLocaleString());
|
|
9721
|
+
_el$239.addEventListener("blur", (e) => void updateCheckpointNote(checkpoint.id, e.currentTarget.value));
|
|
9722
|
+
_el$240.$$click = () => void restoreCheckpoint(checkpoint.id);
|
|
9723
|
+
createRenderEffect(() => _el$234.classList.toggle("latest", !!(i() === 0)));
|
|
9724
|
+
createRenderEffect(() => _el$239.value = checkpoint.note || "");
|
|
9725
|
+
return _el$232;
|
|
9647
9726
|
})()
|
|
9648
9727
|
}));
|
|
9649
9728
|
return _el$96;
|
|
@@ -9653,7 +9732,7 @@ ${contextBlock}` : contextBlock);
|
|
|
9653
9732
|
createRenderEffect(() => _el$93.value = checkpointNote());
|
|
9654
9733
|
return _el$85;
|
|
9655
9734
|
}
|
|
9656
|
-
}), _el$
|
|
9735
|
+
}), _el$132);
|
|
9657
9736
|
insert(_el$26, createComponent(Show, {
|
|
9658
9737
|
get when() {
|
|
9659
9738
|
return sidebarTab() === "automation";
|
|
@@ -9663,7 +9742,7 @@ ${contextBlock}` : contextBlock);
|
|
|
9663
9742
|
onRun: () => setSidebarTab("supervisor")
|
|
9664
9743
|
});
|
|
9665
9744
|
}
|
|
9666
|
-
}), _el$
|
|
9745
|
+
}), _el$132);
|
|
9667
9746
|
insert(_el$26, createComponent(Show, {
|
|
9668
9747
|
get when() {
|
|
9669
9748
|
return sidebarTab() === "research";
|
|
@@ -9671,13 +9750,13 @@ ${contextBlock}` : contextBlock);
|
|
|
9671
9750
|
get children() {
|
|
9672
9751
|
return createComponent(ResearchDesk, {});
|
|
9673
9752
|
}
|
|
9674
|
-
}), _el$
|
|
9753
|
+
}), _el$132);
|
|
9675
9754
|
insert(_el$26, createComponent(Show, {
|
|
9676
9755
|
get when() {
|
|
9677
9756
|
return sidebarTab() === "history";
|
|
9678
9757
|
},
|
|
9679
9758
|
get children() {
|
|
9680
|
-
var _el$97 = _tmpl$
|
|
9759
|
+
var _el$97 = _tmpl$15$2(), _el$98 = _el$97.firstChild, _el$99 = _el$98.firstChild, _el$100 = _el$99.nextSibling, _el$101 = _el$100.firstChild, _el$102 = _el$101.nextSibling, _el$103 = _el$102.nextSibling, _el$104 = _el$103.nextSibling, _el$105 = _el$98.nextSibling;
|
|
9681
9760
|
_el$101.$$click = async () => {
|
|
9682
9761
|
await history.clear();
|
|
9683
9762
|
};
|
|
@@ -9698,52 +9777,65 @@ ${contextBlock}` : contextBlock);
|
|
|
9698
9777
|
return history.historyState().entries;
|
|
9699
9778
|
},
|
|
9700
9779
|
children: (entry) => (() => {
|
|
9701
|
-
var _el$
|
|
9702
|
-
_el$
|
|
9703
|
-
insert(_el$
|
|
9704
|
-
insert(_el$
|
|
9705
|
-
insert(_el$
|
|
9706
|
-
return _el$
|
|
9780
|
+
var _el$241 = _tmpl$58(), _el$242 = _el$241.firstChild, _el$243 = _el$242.nextSibling, _el$244 = _el$243.nextSibling;
|
|
9781
|
+
_el$241.$$click = () => createTab(entry.url);
|
|
9782
|
+
insert(_el$242, () => entry.title || entry.url);
|
|
9783
|
+
insert(_el$243, () => entry.url);
|
|
9784
|
+
insert(_el$244, () => new Date(entry.visitedAt).toLocaleString());
|
|
9785
|
+
return _el$241;
|
|
9707
9786
|
})()
|
|
9708
9787
|
}), null);
|
|
9788
|
+
insert(_el$105, createComponent(Show, {
|
|
9789
|
+
get when() {
|
|
9790
|
+
return history.hasMore();
|
|
9791
|
+
},
|
|
9792
|
+
get children() {
|
|
9793
|
+
var _el$106 = _tmpl$13$2(), _el$107 = _el$106.firstChild, _el$108 = _el$107.nextSibling, _el$109 = _el$108.firstChild, _el$112 = _el$109.nextSibling;
|
|
9794
|
+
_el$112.nextSibling;
|
|
9795
|
+
_el$106.$$click = () => void history.loadMore();
|
|
9796
|
+
insert(_el$108, () => history.historyState().entries.length, _el$112);
|
|
9797
|
+
insert(_el$108, () => history.historyTotal(), null);
|
|
9798
|
+
return _el$106;
|
|
9799
|
+
}
|
|
9800
|
+
}), null);
|
|
9709
9801
|
insert(_el$105, createComponent(Show, {
|
|
9710
9802
|
get when() {
|
|
9711
9803
|
return history.historyState().entries.length === 0;
|
|
9712
9804
|
},
|
|
9713
9805
|
get children() {
|
|
9714
|
-
return _tmpl$
|
|
9806
|
+
return _tmpl$14$2();
|
|
9715
9807
|
}
|
|
9716
9808
|
}), null);
|
|
9717
9809
|
return _el$97;
|
|
9718
9810
|
}
|
|
9719
|
-
}), _el$
|
|
9811
|
+
}), _el$132);
|
|
9720
9812
|
insert(_el$26, createComponent(Show, {
|
|
9721
9813
|
get when() {
|
|
9722
9814
|
return sidebarTab() === "diff";
|
|
9723
9815
|
},
|
|
9724
9816
|
get children() {
|
|
9725
|
-
var _el$
|
|
9726
|
-
insert(_el$
|
|
9727
|
-
insert(_el$
|
|
9817
|
+
var _el$114 = _tmpl$16$1(), _el$115 = _el$114.firstChild, _el$116 = _el$115.firstChild, _el$117 = _el$116.nextSibling;
|
|
9818
|
+
insert(_el$117, () => isPremium() ? "Page change timeline" : "Premium feature");
|
|
9819
|
+
insert(_el$114, createComponent(Show, {
|
|
9728
9820
|
get when() {
|
|
9729
9821
|
return isPremium();
|
|
9730
9822
|
},
|
|
9731
9823
|
get fallback() {
|
|
9732
9824
|
return (() => {
|
|
9733
|
-
var _el$
|
|
9734
|
-
_el$
|
|
9825
|
+
var _el$245 = _tmpl$59(), _el$246 = _el$245.firstChild, _el$247 = _el$246.nextSibling, _el$248 = _el$247.nextSibling, _el$249 = _el$248.firstChild, _el$250 = _el$249.nextSibling;
|
|
9826
|
+
_el$249.$$click = () => void window.vessel.premium.checkout(premiumState().email || void 0).catch(() => {
|
|
9735
9827
|
});
|
|
9736
|
-
_el$
|
|
9737
|
-
return _el$
|
|
9828
|
+
_el$250.$$click = openPremiumDetails;
|
|
9829
|
+
return _el$245;
|
|
9738
9830
|
})();
|
|
9739
9831
|
},
|
|
9740
9832
|
get children() {
|
|
9741
9833
|
return createComponent(PageDiffTimeline, {});
|
|
9742
9834
|
}
|
|
9743
9835
|
}), null);
|
|
9744
|
-
return _el$
|
|
9836
|
+
return _el$114;
|
|
9745
9837
|
}
|
|
9746
|
-
}), _el$
|
|
9838
|
+
}), _el$132);
|
|
9747
9839
|
insert(_el$26, createComponent(Show, {
|
|
9748
9840
|
get when() {
|
|
9749
9841
|
return sidebarTab() === "chat";
|
|
@@ -9754,23 +9846,23 @@ ${contextBlock}` : contextBlock);
|
|
|
9754
9846
|
return !isPremium();
|
|
9755
9847
|
},
|
|
9756
9848
|
get children() {
|
|
9757
|
-
var _el$
|
|
9758
|
-
_el$
|
|
9759
|
-
_el$
|
|
9760
|
-
return _el$
|
|
9849
|
+
var _el$118 = _tmpl$17$1(), _el$119 = _el$118.firstChild, _el$120 = _el$119.nextSibling, _el$121 = _el$120.nextSibling, _el$122 = _el$121.firstChild, _el$123 = _el$122.nextSibling;
|
|
9850
|
+
_el$122.$$click = () => openPremiumCheckout("chat_banner_clicked");
|
|
9851
|
+
_el$123.$$click = openPremiumDetails;
|
|
9852
|
+
return _el$118;
|
|
9761
9853
|
}
|
|
9762
9854
|
}), createComponent(For, {
|
|
9763
9855
|
get each() {
|
|
9764
9856
|
return messages2();
|
|
9765
9857
|
},
|
|
9766
9858
|
children: (msg) => (() => {
|
|
9767
|
-
var _el$
|
|
9768
|
-
insert(_el$
|
|
9859
|
+
var _el$251 = _tmpl$60();
|
|
9860
|
+
insert(_el$251, createComponent(MarkdownMessage, {
|
|
9769
9861
|
get content() {
|
|
9770
9862
|
return msg.content;
|
|
9771
9863
|
}
|
|
9772
9864
|
}), null);
|
|
9773
|
-
insert(_el$
|
|
9865
|
+
insert(_el$251, createComponent(Show, {
|
|
9774
9866
|
get when() {
|
|
9775
9867
|
return memo(() => msg.role === "assistant")() ? getPremiumPromptKind(msg.content) : null;
|
|
9776
9868
|
},
|
|
@@ -9783,31 +9875,31 @@ ${contextBlock}` : contextBlock);
|
|
|
9783
9875
|
onOpenSettings: openPremiumDetails
|
|
9784
9876
|
})
|
|
9785
9877
|
}), null);
|
|
9786
|
-
createRenderEffect(() => className(_el$
|
|
9787
|
-
return _el$
|
|
9878
|
+
createRenderEffect(() => className(_el$251, `message message-${msg.role}`));
|
|
9879
|
+
return _el$251;
|
|
9788
9880
|
})()
|
|
9789
9881
|
}), createComponent(Show, {
|
|
9790
9882
|
get when() {
|
|
9791
9883
|
return isStreaming2();
|
|
9792
9884
|
},
|
|
9793
9885
|
get children() {
|
|
9794
|
-
var _el$
|
|
9795
|
-
insert(_el$
|
|
9886
|
+
var _el$124 = _tmpl$20$1(), _el$125 = _el$124.firstChild;
|
|
9887
|
+
insert(_el$125, createComponent(Show, {
|
|
9796
9888
|
get when() {
|
|
9797
9889
|
return hasFirstChunk2();
|
|
9798
9890
|
},
|
|
9799
9891
|
get fallback() {
|
|
9800
|
-
return _tmpl$
|
|
9892
|
+
return _tmpl$61();
|
|
9801
9893
|
},
|
|
9802
9894
|
get children() {
|
|
9803
|
-
var _el$
|
|
9804
|
-
_el$
|
|
9805
|
-
insert(_el$
|
|
9895
|
+
var _el$126 = _tmpl$19$1(), _el$127 = _el$126.firstChild, _el$128 = _el$127.firstChild;
|
|
9896
|
+
_el$128.nextSibling;
|
|
9897
|
+
insert(_el$126, createComponent(MarkdownMessage, {
|
|
9806
9898
|
get content() {
|
|
9807
9899
|
return streamingText2();
|
|
9808
9900
|
}
|
|
9809
|
-
}), _el$
|
|
9810
|
-
insert(_el$
|
|
9901
|
+
}), _el$127);
|
|
9902
|
+
insert(_el$126, createComponent(Show, {
|
|
9811
9903
|
get when() {
|
|
9812
9904
|
return getPremiumPromptKind(streamingText2());
|
|
9813
9905
|
},
|
|
@@ -9819,21 +9911,21 @@ ${contextBlock}` : contextBlock);
|
|
|
9819
9911
|
onStartTrial: () => openPremiumCheckout(kind() === "premium_gate" ? "premium_gate_clicked" : "iteration_limit_clicked"),
|
|
9820
9912
|
onOpenSettings: openPremiumDetails
|
|
9821
9913
|
})
|
|
9822
|
-
}), _el$
|
|
9823
|
-
insert(_el$
|
|
9914
|
+
}), _el$127);
|
|
9915
|
+
insert(_el$127, createComponent(Show, {
|
|
9824
9916
|
get when() {
|
|
9825
9917
|
return elapsedSeconds() > 0;
|
|
9826
9918
|
},
|
|
9827
9919
|
get children() {
|
|
9828
|
-
var _el$
|
|
9829
|
-
insert(_el$
|
|
9830
|
-
return _el$
|
|
9920
|
+
var _el$130 = _tmpl$18$1();
|
|
9921
|
+
insert(_el$130, () => ` • ${elapsedSeconds()}s`);
|
|
9922
|
+
return _el$130;
|
|
9831
9923
|
}
|
|
9832
9924
|
}), null);
|
|
9833
|
-
return _el$
|
|
9925
|
+
return _el$126;
|
|
9834
9926
|
}
|
|
9835
9927
|
}));
|
|
9836
|
-
return _el$
|
|
9928
|
+
return _el$124;
|
|
9837
9929
|
}
|
|
9838
9930
|
}), createComponent(Show, {
|
|
9839
9931
|
get when() {
|
|
@@ -9845,22 +9937,22 @@ ${contextBlock}` : contextBlock);
|
|
|
9845
9937
|
return runtimeState2().supervisor.pendingApprovals;
|
|
9846
9938
|
},
|
|
9847
9939
|
children: (approval) => (() => {
|
|
9848
|
-
var _el$
|
|
9849
|
-
insert(_el$
|
|
9850
|
-
insert(_el$
|
|
9940
|
+
var _el$253 = _tmpl$63(), _el$254 = _el$253.firstChild, _el$255 = _el$254.nextSibling, _el$256 = _el$255.firstChild, _el$257 = _el$256.firstChild, _el$258 = _el$257.nextSibling, _el$260 = _el$256.nextSibling, _el$261 = _el$260.nextSibling, _el$262 = _el$261.firstChild, _el$263 = _el$262.nextSibling;
|
|
9941
|
+
insert(_el$258, () => approval.name);
|
|
9942
|
+
insert(_el$255, createComponent(Show, {
|
|
9851
9943
|
get when() {
|
|
9852
9944
|
return approval.argsSummary;
|
|
9853
9945
|
},
|
|
9854
9946
|
get children() {
|
|
9855
|
-
var _el$
|
|
9856
|
-
insert(_el$
|
|
9857
|
-
return _el$
|
|
9947
|
+
var _el$259 = _tmpl$62();
|
|
9948
|
+
insert(_el$259, () => approval.argsSummary);
|
|
9949
|
+
return _el$259;
|
|
9858
9950
|
}
|
|
9859
|
-
}), _el$
|
|
9860
|
-
insert(_el$
|
|
9861
|
-
_el$
|
|
9862
|
-
_el$
|
|
9863
|
-
return _el$
|
|
9951
|
+
}), _el$260);
|
|
9952
|
+
insert(_el$260, () => approval.reason);
|
|
9953
|
+
_el$262.$$click = () => void resolveApproval(approval.id, true);
|
|
9954
|
+
_el$263.$$click = () => void resolveApproval(approval.id, false);
|
|
9955
|
+
return _el$253;
|
|
9864
9956
|
})()
|
|
9865
9957
|
});
|
|
9866
9958
|
}
|
|
@@ -9869,13 +9961,13 @@ ${contextBlock}` : contextBlock);
|
|
|
9869
9961
|
return memo(() => messages2().length === 0)() && !isStreaming2();
|
|
9870
9962
|
},
|
|
9871
9963
|
get children() {
|
|
9872
|
-
return _tmpl$
|
|
9964
|
+
return _tmpl$21$1();
|
|
9873
9965
|
}
|
|
9874
9966
|
})];
|
|
9875
9967
|
}
|
|
9876
|
-
}), _el$
|
|
9968
|
+
}), _el$132);
|
|
9877
9969
|
var _ref$ = messagesEndRef;
|
|
9878
|
-
typeof _ref$ === "function" ? use(_ref$, _el$
|
|
9970
|
+
typeof _ref$ === "function" ? use(_ref$, _el$132) : messagesEndRef = _el$132;
|
|
9879
9971
|
insert(_el$9, createComponent(Show, {
|
|
9880
9972
|
get when() {
|
|
9881
9973
|
return sidebarTab() === "chat";
|
|
@@ -9886,120 +9978,120 @@ ${contextBlock}` : contextBlock);
|
|
|
9886
9978
|
return isStreaming2() || messages2().length > 0;
|
|
9887
9979
|
},
|
|
9888
9980
|
get children() {
|
|
9889
|
-
var _el$
|
|
9890
|
-
insert(_el$
|
|
9981
|
+
var _el$133 = _tmpl$24$1();
|
|
9982
|
+
insert(_el$133, createComponent(Show, {
|
|
9891
9983
|
get when() {
|
|
9892
9984
|
return isStreaming2();
|
|
9893
9985
|
},
|
|
9894
9986
|
get children() {
|
|
9895
|
-
var _el$
|
|
9896
|
-
_el$
|
|
9897
|
-
return _el$
|
|
9987
|
+
var _el$134 = _tmpl$22$1();
|
|
9988
|
+
_el$134.$$click = () => cancel();
|
|
9989
|
+
return _el$134;
|
|
9898
9990
|
}
|
|
9899
9991
|
}), null);
|
|
9900
|
-
insert(_el$
|
|
9992
|
+
insert(_el$133, createComponent(Show, {
|
|
9901
9993
|
get when() {
|
|
9902
9994
|
return memo(() => !!!isStreaming2())() && messages2().length > 0;
|
|
9903
9995
|
},
|
|
9904
9996
|
get children() {
|
|
9905
|
-
var _el$
|
|
9906
|
-
_el$
|
|
9907
|
-
return _el$
|
|
9997
|
+
var _el$135 = _tmpl$23$1();
|
|
9998
|
+
_el$135.$$click = handleRetry;
|
|
9999
|
+
return _el$135;
|
|
9908
10000
|
}
|
|
9909
10001
|
}), null);
|
|
9910
|
-
return _el$
|
|
10002
|
+
return _el$133;
|
|
9911
10003
|
}
|
|
9912
10004
|
}), createComponent(Show, {
|
|
9913
10005
|
get when() {
|
|
9914
10006
|
return highlightCount() > 0;
|
|
9915
10007
|
},
|
|
9916
10008
|
get children() {
|
|
9917
|
-
var _el$
|
|
9918
|
-
_el$
|
|
9919
|
-
var _el$
|
|
9920
|
-
_el$
|
|
9921
|
-
_el$
|
|
9922
|
-
insert(_el$
|
|
10009
|
+
var _el$136 = _tmpl$25$1(), _el$137 = _el$136.firstChild, _el$138 = _el$137.nextSibling;
|
|
10010
|
+
_el$138.firstChild;
|
|
10011
|
+
var _el$140 = _el$138.nextSibling;
|
|
10012
|
+
_el$137.$$click = () => void scrollToHighlight(highlightIndex() - 1);
|
|
10013
|
+
_el$138.$$click = () => void scrollToHighlight(highlightIndex() < 0 ? 0 : highlightIndex());
|
|
10014
|
+
insert(_el$138, (() => {
|
|
9923
10015
|
var _c$4 = memo(() => highlightIndex() >= 0);
|
|
9924
10016
|
return () => _c$4() ? `${highlightIndex() + 1} / ${highlightCount()}` : `${highlightCount()} highlight${highlightCount() > 1 ? "s" : ""}`;
|
|
9925
10017
|
})(), null);
|
|
9926
|
-
_el$
|
|
10018
|
+
_el$140.$$click = () => void scrollToHighlight(highlightIndex() < 0 ? 0 : highlightIndex() + 1);
|
|
9927
10019
|
createRenderEffect((_p$) => {
|
|
9928
10020
|
var _v$9 = highlightIndex() <= 0, _v$0 = highlightIndex() >= highlightCount() - 1;
|
|
9929
|
-
_v$9 !== _p$.e && (_el$
|
|
9930
|
-
_v$0 !== _p$.t && (_el$
|
|
10021
|
+
_v$9 !== _p$.e && (_el$137.disabled = _p$.e = _v$9);
|
|
10022
|
+
_v$0 !== _p$.t && (_el$140.disabled = _p$.t = _v$0);
|
|
9931
10023
|
return _p$;
|
|
9932
10024
|
}, {
|
|
9933
10025
|
e: void 0,
|
|
9934
10026
|
t: void 0
|
|
9935
10027
|
});
|
|
9936
|
-
return _el$
|
|
10028
|
+
return _el$136;
|
|
9937
10029
|
}
|
|
9938
10030
|
}), createComponent(Show, {
|
|
9939
10031
|
get when() {
|
|
9940
10032
|
return queueNotice2() !== null || pendingQueryCount() > 0;
|
|
9941
10033
|
},
|
|
9942
10034
|
get children() {
|
|
9943
|
-
var _el$
|
|
9944
|
-
insert(_el$
|
|
9945
|
-
insert(_el$
|
|
10035
|
+
var _el$141 = _tmpl$28$1(), _el$142 = _el$141.firstChild, _el$143 = _el$142.firstChild;
|
|
10036
|
+
insert(_el$143, () => queueNotice2() ?? `Queued ${pendingQueryCount()}/${pendingQueryLimit}.`);
|
|
10037
|
+
insert(_el$142, createComponent(Show, {
|
|
9946
10038
|
get when() {
|
|
9947
10039
|
return pendingQueryCount() > 0;
|
|
9948
10040
|
},
|
|
9949
10041
|
get children() {
|
|
9950
|
-
var _el$
|
|
9951
|
-
_el$
|
|
9952
|
-
return _el$
|
|
10042
|
+
var _el$144 = _tmpl$26$1();
|
|
10043
|
+
_el$144.$$click = () => clearPendingQueries();
|
|
10044
|
+
return _el$144;
|
|
9953
10045
|
}
|
|
9954
10046
|
}), null);
|
|
9955
|
-
insert(_el$
|
|
10047
|
+
insert(_el$141, createComponent(Show, {
|
|
9956
10048
|
get when() {
|
|
9957
10049
|
return pendingQueries2().length > 0;
|
|
9958
10050
|
},
|
|
9959
10051
|
get children() {
|
|
9960
|
-
var _el$
|
|
9961
|
-
insert(_el$
|
|
10052
|
+
var _el$145 = _tmpl$27$1();
|
|
10053
|
+
insert(_el$145, createComponent(For, {
|
|
9962
10054
|
get each() {
|
|
9963
10055
|
return pendingQueries2();
|
|
9964
10056
|
},
|
|
9965
10057
|
children: (pendingPrompt, index) => (() => {
|
|
9966
|
-
var _el$
|
|
9967
|
-
setAttribute(_el$
|
|
9968
|
-
insert(_el$
|
|
9969
|
-
_el$
|
|
9970
|
-
createRenderEffect(() => setAttribute(_el$
|
|
9971
|
-
return _el$
|
|
10058
|
+
var _el$264 = _tmpl$64(), _el$265 = _el$264.firstChild, _el$266 = _el$265.nextSibling;
|
|
10059
|
+
setAttribute(_el$265, "title", pendingPrompt);
|
|
10060
|
+
insert(_el$265, pendingPrompt);
|
|
10061
|
+
_el$266.$$click = () => removePendingQuery(index());
|
|
10062
|
+
createRenderEffect(() => setAttribute(_el$266, "aria-label", `Remove queued prompt ${index() + 1}`));
|
|
10063
|
+
return _el$264;
|
|
9972
10064
|
})()
|
|
9973
10065
|
}));
|
|
9974
|
-
return _el$
|
|
10066
|
+
return _el$145;
|
|
9975
10067
|
}
|
|
9976
10068
|
}), null);
|
|
9977
|
-
return _el$
|
|
10069
|
+
return _el$141;
|
|
9978
10070
|
}
|
|
9979
10071
|
}), (() => {
|
|
9980
|
-
var _el$
|
|
9981
|
-
_el$
|
|
10072
|
+
var _el$146 = _tmpl$29(), _el$147 = _el$146.firstChild, _el$148 = _el$147.nextSibling;
|
|
10073
|
+
_el$147.$$keydown = (e) => {
|
|
9982
10074
|
if (e.key === "Enter" && !e.shiftKey) {
|
|
9983
10075
|
e.preventDefault();
|
|
9984
10076
|
void handleChatSend();
|
|
9985
10077
|
}
|
|
9986
10078
|
};
|
|
9987
|
-
_el$
|
|
10079
|
+
_el$147.$$input = (e) => setChatInput(e.currentTarget.value);
|
|
9988
10080
|
var _ref$2 = chatInputRef;
|
|
9989
|
-
typeof _ref$2 === "function" ? use(_ref$2, _el$
|
|
9990
|
-
_el$
|
|
9991
|
-
insert(_el$
|
|
10081
|
+
typeof _ref$2 === "function" ? use(_ref$2, _el$147) : chatInputRef = _el$147;
|
|
10082
|
+
_el$148.$$click = () => void handleChatSend();
|
|
10083
|
+
insert(_el$148, () => isStreaming2() ? "Queue" : "Send");
|
|
9992
10084
|
createRenderEffect((_p$) => {
|
|
9993
10085
|
var _v$1 = isStreaming2() ? "Send now to queue the next prompt..." : "Ask anything...", _v$10 = !chatInput().trim();
|
|
9994
|
-
_v$1 !== _p$.e && setAttribute(_el$
|
|
9995
|
-
_v$10 !== _p$.t && (_el$
|
|
10086
|
+
_v$1 !== _p$.e && setAttribute(_el$147, "placeholder", _p$.e = _v$1);
|
|
10087
|
+
_v$10 !== _p$.t && (_el$148.disabled = _p$.t = _v$10);
|
|
9996
10088
|
return _p$;
|
|
9997
10089
|
}, {
|
|
9998
10090
|
e: void 0,
|
|
9999
10091
|
t: void 0
|
|
10000
10092
|
});
|
|
10001
|
-
createRenderEffect(() => _el$
|
|
10002
|
-
return _el$
|
|
10093
|
+
createRenderEffect(() => _el$147.value = chatInput());
|
|
10094
|
+
return _el$146;
|
|
10003
10095
|
})()];
|
|
10004
10096
|
}
|
|
10005
10097
|
}), null);
|
|
@@ -10049,7 +10141,7 @@ ${contextBlock}` : contextBlock);
|
|
|
10049
10141
|
});
|
|
10050
10142
|
};
|
|
10051
10143
|
delegateEvents(["click", "pointerdown", "input", "keydown"]);
|
|
10052
|
-
var _tmpl$$9 = /* @__PURE__ */ template(`<div class=devtools-console>`), _tmpl$2$9 = /* @__PURE__ */ template(`<div class=devtools-empty>Waiting for console output... Console monitoring activates when an agent uses devtools.`), _tmpl$3$8 = /* @__PURE__ */ template(`<div><span></span><span class=console-time></span><span class=console-text></span><span class=console-source>`), _tmpl$4$8 = /* @__PURE__ */ template(`<div class=devtools-network><div class=network-header><span>Method</span><span>URL</span><span>Status</span><span>Type</span><span>Time`), _tmpl$5$7 = /* @__PURE__ */ template(`<div class=devtools-empty>Waiting for network requests... Network monitoring activates when an agent uses devtools.`), _tmpl$6$7 = /* @__PURE__ */ template(`<div><span class=network-method></span><span class=network-url></span><span></span><span class=network-type></span><span class=network-duration>`), _tmpl$7$5 = /* @__PURE__ */ template(`<div class=devtools-activity>`), _tmpl$8$4 = /* @__PURE__ */ template(`<div class=devtools-empty>Waiting for agent devtools activity...`), _tmpl$9$
|
|
10144
|
+
var _tmpl$$9 = /* @__PURE__ */ template(`<div class=devtools-console>`), _tmpl$2$9 = /* @__PURE__ */ template(`<div class=devtools-empty>Waiting for console output... Console monitoring activates when an agent uses devtools.`), _tmpl$3$8 = /* @__PURE__ */ template(`<div><span></span><span class=console-time></span><span class=console-text></span><span class=console-source>`), _tmpl$4$8 = /* @__PURE__ */ template(`<div class=devtools-network><div class=network-header><span>Method</span><span>URL</span><span>Status</span><span>Type</span><span>Time`), _tmpl$5$7 = /* @__PURE__ */ template(`<div class=devtools-empty>Waiting for network requests... Network monitoring activates when an agent uses devtools.`), _tmpl$6$7 = /* @__PURE__ */ template(`<div><span class=network-method></span><span class=network-url></span><span></span><span class=network-type></span><span class=network-duration>`), _tmpl$7$5 = /* @__PURE__ */ template(`<div class=devtools-activity>`), _tmpl$8$4 = /* @__PURE__ */ template(`<div class=devtools-empty>Waiting for agent devtools activity...`), _tmpl$9$3 = /* @__PURE__ */ template(`<div class=activity-entry><span class=activity-time></span><span class=activity-tool></span><span class=activity-args></span><span></span><span class=activity-duration>`), _tmpl$0$2 = /* @__PURE__ */ template(`<span class="devtools-tab-badge error">`), _tmpl$1$2 = /* @__PURE__ */ template(`<span class="devtools-tab-badge count">`), _tmpl$10$2 = /* @__PURE__ */ template(`<div class=export-date-inputs><div class=export-date-row><span class=export-date-label>From</span><input class=export-date-input type=date></div><div class=export-date-row><span class=export-date-label>To</span><input class=export-date-input type=date>`), _tmpl$11$2 = /* @__PURE__ */ template(`<div class=devtools-export-dropdown><div class=export-section><div class=export-section-label>Log Types</div><label class=export-checkbox><input type=checkbox>Console</label><label class=export-checkbox><input type=checkbox>Network</label><label class=export-checkbox><input type=checkbox>Activity</label></div><div class=export-section><div class=export-section-label>Date Range</div><div class=export-date-btns><button>Today</button><button>Custom</button></div></div><button class=export-submit>Export JSON`), _tmpl$12$2 = /* @__PURE__ */ template(`<div class=devtools-panel><div class=devtools-tabs><button>Console</button><button>Network</button><button>Activity</button><div class=devtools-tab-spacer></div><div class=devtools-export-wrap><button title="Export Logs"><svg width=13 height=13 viewBox="0 0 13 13"fill=none style=vertical-align:middle><path d="M6.5 1v7M3.5 5l3 3 3-3"stroke=currentColor stroke-width=1.3 stroke-linecap=round stroke-linejoin=round></path><path d="M1 9.5v1A1.5 1.5 0 0 0 2.5 12h8A1.5 1.5 0 0 0 12 10.5v-1"stroke=currentColor stroke-width=1.3 stroke-linecap=round></path></svg></button></div><button class=devtools-close-btn title="Close DevTools">×</button></div><div class=devtools-content>`);
|
|
10053
10145
|
function statusClass(status) {
|
|
10054
10146
|
if (status == null) return "pending";
|
|
10055
10147
|
if (status >= 200 && status < 300) return "ok";
|
|
@@ -10224,7 +10316,7 @@ const ActivityView = (props) => {
|
|
|
10224
10316
|
return [...props.entries].reverse();
|
|
10225
10317
|
},
|
|
10226
10318
|
children: (entry) => (() => {
|
|
10227
|
-
var _el$17 = _tmpl$9$
|
|
10319
|
+
var _el$17 = _tmpl$9$3(), _el$18 = _el$17.firstChild, _el$19 = _el$18.nextSibling, _el$20 = _el$19.nextSibling, _el$21 = _el$20.nextSibling, _el$22 = _el$21.nextSibling;
|
|
10228
10320
|
insert(_el$18, () => formatTime(entry.timestamp, {
|
|
10229
10321
|
includeSeconds: true
|
|
10230
10322
|
}));
|
|
@@ -10700,7 +10792,7 @@ const SettingsGeneral = (props) => {
|
|
|
10700
10792
|
})();
|
|
10701
10793
|
};
|
|
10702
10794
|
delegateEvents(["click", "input"]);
|
|
10703
|
-
var _tmpl$$7 = /* @__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$7 = /* @__PURE__ */ template(`<div style=display:flex;align-items:center;gap:8px><span style=width:8px;height:8px;border-radius:50%;background:var(--success);display:inline-block></span><span>Connected as `), _tmpl$3$6 = /* @__PURE__ */ template(`<p class=settings-hint><button type=button class=settings-link-btn>Disconnect`), _tmpl$4$6 = /* @__PURE__ */ template(`<div class=settings-field><label class=settings-label>Account`), _tmpl$5$5 = /* @__PURE__ */ template(`<span class=settings-label-optional> (optional)`), _tmpl$6$5 = /* @__PURE__ */ template(`<p class=settings-hint>An API key is already stored securely for this provider. Leave this blank to keep it, or enter a new key to replace it.`), _tmpl$7$4 = /* @__PURE__ */ template(`<p class=settings-hint>If your endpoint requires authentication, enter the API key or bearer token here.`), _tmpl$8$3 = /* @__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$9$
|
|
10795
|
+
var _tmpl$$7 = /* @__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$7 = /* @__PURE__ */ template(`<div style=display:flex;align-items:center;gap:8px><span style=width:8px;height:8px;border-radius:50%;background:var(--success);display:inline-block></span><span>Connected as `), _tmpl$3$6 = /* @__PURE__ */ template(`<p class=settings-hint><button type=button class=settings-link-btn>Disconnect`), _tmpl$4$6 = /* @__PURE__ */ template(`<div class=settings-field><label class=settings-label>Account`), _tmpl$5$5 = /* @__PURE__ */ template(`<span class=settings-label-optional> (optional)`), _tmpl$6$5 = /* @__PURE__ */ template(`<p class=settings-hint>An API key is already stored securely for this provider. Leave this blank to keep it, or enter a new key to replace it.`), _tmpl$7$4 = /* @__PURE__ */ template(`<p class=settings-hint>If your endpoint requires authentication, enter the API key or bearer token here.`), _tmpl$8$3 = /* @__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$9$2 = /* @__PURE__ */ template(`<select id=chat-model class="settings-input settings-select"style=flex:1>`), _tmpl$0$1 = /* @__PURE__ */ template(`<p class=settings-hint style=color:var(--error)>Could not fetch models — check your API key and connection.`), _tmpl$1$1 = /* @__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$10$1 = /* @__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$11$1 = /* @__PURE__ */ template(`<p class=settings-hint>Vessel auto-detects the active model from your configured <code>llama-server</code> base URL. For agent loops, run <code>llama-server</code> with <code>--ctx-size 16384</code> minimum and <code>32768</code> recommended.`), _tmpl$12$1 = /* @__PURE__ */ template(`<div class=settings-field><label class=settings-label for=chat-reasoning-effort>Reasoning Level</label><select id=chat-reasoning-effort class="settings-input settings-select"></select><p class=settings-hint>Applies to providers and models that expose reasoning controls. Off requests no reasoning where supported and otherwise leaves the model at its normal behavior; Max requests the strongest supported reasoning tier.`), _tmpl$13$1 = /* @__PURE__ */ template(`<input id=max-tool-iterations class=settings-input type=number min=10 max=1000 placeholder=200>`), _tmpl$14$1 = /* @__PURE__ */ template(`<div class=settings-category-panel><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-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-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 class=settings-inline-actions><button type=button class=settings-secondary-btn>Regenerate MCP token</button></div></div><div class=settings-field><label class=settings-label for=max-tool-iterations>Max Tool Iterations</label><p class=settings-hint></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-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.`), _tmpl$15$1 = /* @__PURE__ */ template(`<option>`), _tmpl$16 = /* @__PURE__ */ template(`<p class=settings-hint style=color:var(--accent-primary)> <button type=button class=settings-link-btn>Cancel`), _tmpl$17 = /* @__PURE__ */ template(`<div>`), _tmpl$18 = /* @__PURE__ */ template(`<p class=settings-hint style=color:var(--error)>`), _tmpl$19 = /* @__PURE__ */ template(`<button type=button class=settings-btn>Try Again`), _tmpl$20 = /* @__PURE__ */ template(`<div><button type=button class=settings-btn>Connect with ChatGPT</button><p class=settings-hint>Sign in with your ChatGPT Plus or Pro subscription. A browser tab will open where you'll authorize Vessel.`), _tmpl$21 = /* @__PURE__ */ template(`<input id=chat-model class=settings-input style=flex:1>`), _tmpl$22 = /* @__PURE__ */ template(`<p class=settings-hint style=color:var(--accent-primary)>`), _tmpl$23 = /* @__PURE__ */ template(`<p class=settings-hint>`), _tmpl$24 = /* @__PURE__ */ template(`<div class="settings-input settings-input-disabled"title="Upgrade to Vessel Premium for unlimited tool iterations">50`), _tmpl$25 = /* @__PURE__ */ template(`<div class=settings-health-issues>`), _tmpl$26 = /* @__PURE__ */ template(`<div class=settings-health><div class=settings-callout-title>Runtime Health</div><p class=settings-hint>MCP status: <strong></strong> `), _tmpl$27 = /* @__PURE__ */ template(`<p class=settings-hint>Active endpoint: <code>`), _tmpl$28 = /* @__PURE__ */ template(`<div class=settings-health-issue><strong></strong><div>`);
|
|
10704
10796
|
const CHAT_PROVIDERS$1 = Object.values(PROVIDERS).map((p) => ({
|
|
10705
10797
|
id: p.id,
|
|
10706
10798
|
name: p.name,
|
|
@@ -10894,7 +10986,7 @@ const SettingsAgent = (props) => {
|
|
|
10894
10986
|
})();
|
|
10895
10987
|
},
|
|
10896
10988
|
get children() {
|
|
10897
|
-
var _el$25 = _tmpl$9$
|
|
10989
|
+
var _el$25 = _tmpl$9$2();
|
|
10898
10990
|
_el$25.addEventListener("change", (e) => props.chat.setModel(e.currentTarget.value));
|
|
10899
10991
|
insert(_el$25, createComponent(For, {
|
|
10900
10992
|
get each() {
|
|
@@ -11080,7 +11172,7 @@ const SettingsAgent = (props) => {
|
|
|
11080
11172
|
})();
|
|
11081
11173
|
};
|
|
11082
11174
|
delegateEvents(["click", "input"]);
|
|
11083
|
-
var _tmpl$$6 = /* @__PURE__ */ template(`<span class=vault-premium-badge>Premium`), _tmpl$2$6 = /* @__PURE__ */ template(`<p class=settings-hint style=margin-bottom:10px>Store credentials for agent-driven logins. Credentials are encrypted at rest and never sent to AI providers — they are filled directly into login forms with your consent.`), _tmpl$3$5 = /* @__PURE__ */ template(`<div class=vault-entries>`), _tmpl$4$5 = /* @__PURE__ */ template(`<button class=vault-add-btn>+ Add Credential`), _tmpl$5$4 = /* @__PURE__ */ template(`<div class=vault-add-form><input class=settings-input placeholder="Label (e.g. Work GitHub)"><input class=settings-input placeholder="Domain pattern (e.g. github.com, *.aws.amazon.com)"><input class=settings-input placeholder="Username / email"><input class=settings-input type=password placeholder=Password><input class=settings-input placeholder="TOTP secret (optional, base32)"><input class=settings-input placeholder="Notes (optional)"><div class=vault-add-actions><button class="premium-btn premium-btn-activate">Save Credential</button><button class="premium-btn premium-btn-reset">Cancel`), _tmpl$6$4 = /* @__PURE__ */ template(`<p class=settings-hint style=margin-bottom:10px>Save login credentials for any website. Passwords are encrypted locally and filled directly into login forms. The agent can list and fill them with your consent, but passwords are never sent to AI providers.`), _tmpl$7$3 = /* @__PURE__ */ template(`<button class=vault-add-btn>+ Add Password`), _tmpl$8$2 = /* @__PURE__ */ template(`<div class=vault-add-form><input class=settings-input placeholder="Title (e.g. GitHub Personal)"><input class=settings-input placeholder="URL (e.g. https://github.com)"><input class=settings-input placeholder="Username / email"><input class=settings-input type=password placeholder=Password><select class=settings-input><option value=login>Login</option><option value=credit_card>Credit Card</option><option value=identity>Identity</option><option value=secure_note>Secure Note</option></select><input class=settings-input placeholder="Notes (optional)"><div class=vault-add-actions><button class="premium-btn premium-btn-activate">Save Password</button><button class="premium-btn premium-btn-reset">Cancel`), _tmpl$9 = /* @__PURE__ */ template(`<button class=vault-add-btn>+ Add Profile`), _tmpl$0 = /* @__PURE__ */ template(`<div class=vault-add-form><input class=settings-input placeholder="Profile name (e.g. Personal, Work)"><div style="display:grid;grid-template-columns:1fr 1fr;gap:8px"><input class=settings-input placeholder="First name"><input class=settings-input placeholder="Last name"></div><div style="display:grid;grid-template-columns:1fr 1fr;gap:8px"><input class=settings-input placeholder=Email><input class=settings-input placeholder=Phone></div><input class=settings-input placeholder="Organization (optional)"><input class=settings-input placeholder="Address line 1"><input class=settings-input placeholder="Address line 2 (optional)"><div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px"><input class=settings-input placeholder=City><input class=settings-input placeholder=State><input class=settings-input placeholder="ZIP / Postal"></div><input class=settings-input placeholder=Country><div class=vault-add-actions><button class="premium-btn premium-btn-activate">Save Profile</button><button class="premium-btn premium-btn-reset">Cancel`), _tmpl$1 = /* @__PURE__ */ template(`<div class=settings-category-panel><div class=settings-field><label class=settings-label>Agent Credential Vault</label></div><div class=settings-field><label class=settings-label>Passwords</label></div><div class=settings-field><label class=settings-label>Form Autofill</label><p class=settings-hint style=margin-bottom:10px>Store your info once. Vessel matches it to form fields on any site using labels, field names, and autocomplete hints.`), _tmpl$10 = /* @__PURE__ */ template(`<p class=settings-hint>Securely store credentials for agent-driven logins. Upgrade to Premium to unlock the Agent Credential Vault.`), _tmpl$11 = /* @__PURE__ */ template(`<div class=vault-entry><div class=vault-entry-info><span class=vault-entry-label></span><span class=vault-entry-detail> · </span></div><button class=vault-entry-remove title="Remove credential">×`), _tmpl$12 = /* @__PURE__ */ template(`<p class=settings-status>`), _tmpl$13 = /* @__PURE__ */ template(`<p class=settings-hint>Your personal password manager. Save, organize, and autofill login credentials. Upgrade to Premium to unlock Passwords.`), _tmpl$14 = /* @__PURE__ */ template(`<div class=vault-entry><div class=vault-entry-info><span class=vault-entry-label></span><span class=vault-entry-detail> · </span></div><button class=vault-entry-remove title="Remove password">×`), _tmpl$15 = /* @__PURE__ */ template(`<div class=vault-entry><div class=vault-entry-info><span class=vault-entry-label></span><span class=vault-entry-detail></span></div><div style=display:flex;gap:6px;align-items:center><button class="premium-btn premium-btn-activate"title="Fill forms on current page with this profile"style="padding:2px 10px;font-size:12px">Fill</button><button class=vault-entry-remove title="Remove profile">×`);
|
|
11175
|
+
var _tmpl$$6 = /* @__PURE__ */ template(`<span class=vault-premium-badge>Premium`), _tmpl$2$6 = /* @__PURE__ */ template(`<p class=settings-hint style=margin-bottom:10px>Store credentials for agent-driven logins. Credentials are encrypted at rest and never sent to AI providers — they are filled directly into login forms with your consent.`), _tmpl$3$5 = /* @__PURE__ */ template(`<div class=vault-entries>`), _tmpl$4$5 = /* @__PURE__ */ template(`<button class=vault-add-btn>+ Add Credential`), _tmpl$5$4 = /* @__PURE__ */ template(`<div class=vault-add-form><input class=settings-input placeholder="Label (e.g. Work GitHub)"><input class=settings-input placeholder="Domain pattern (e.g. github.com, *.aws.amazon.com)"><input class=settings-input placeholder="Username / email"><input class=settings-input type=password placeholder=Password><input class=settings-input placeholder="TOTP secret (optional, base32)"><input class=settings-input placeholder="Notes (optional)"><div class=vault-add-actions><button class="premium-btn premium-btn-activate">Save Credential</button><button class="premium-btn premium-btn-reset">Cancel`), _tmpl$6$4 = /* @__PURE__ */ template(`<p class=settings-hint style=margin-bottom:10px>Save login credentials for any website. Passwords are encrypted locally and filled directly into login forms. The agent can list and fill them with your consent, but passwords are never sent to AI providers.`), _tmpl$7$3 = /* @__PURE__ */ template(`<button class=vault-add-btn>+ Add Password`), _tmpl$8$2 = /* @__PURE__ */ template(`<div class=vault-add-form><input class=settings-input placeholder="Title (e.g. GitHub Personal)"><input class=settings-input placeholder="URL (e.g. https://github.com)"><input class=settings-input placeholder="Username / email"><input class=settings-input type=password placeholder=Password><select class=settings-input><option value=login>Login</option><option value=credit_card>Credit Card</option><option value=identity>Identity</option><option value=secure_note>Secure Note</option></select><input class=settings-input placeholder="Notes (optional)"><div class=vault-add-actions><button class="premium-btn premium-btn-activate">Save Password</button><button class="premium-btn premium-btn-reset">Cancel`), _tmpl$9$1 = /* @__PURE__ */ template(`<button class=vault-add-btn>+ Add Profile`), _tmpl$0 = /* @__PURE__ */ template(`<div class=vault-add-form><input class=settings-input placeholder="Profile name (e.g. Personal, Work)"><div style="display:grid;grid-template-columns:1fr 1fr;gap:8px"><input class=settings-input placeholder="First name"><input class=settings-input placeholder="Last name"></div><div style="display:grid;grid-template-columns:1fr 1fr;gap:8px"><input class=settings-input placeholder=Email><input class=settings-input placeholder=Phone></div><input class=settings-input placeholder="Organization (optional)"><input class=settings-input placeholder="Address line 1"><input class=settings-input placeholder="Address line 2 (optional)"><div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px"><input class=settings-input placeholder=City><input class=settings-input placeholder=State><input class=settings-input placeholder="ZIP / Postal"></div><input class=settings-input placeholder=Country><div class=vault-add-actions><button class="premium-btn premium-btn-activate">Save Profile</button><button class="premium-btn premium-btn-reset">Cancel`), _tmpl$1 = /* @__PURE__ */ template(`<div class=settings-category-panel><div class=settings-field><label class=settings-label>Agent Credential Vault</label></div><div class=settings-field><label class=settings-label>Passwords</label></div><div class=settings-field><label class=settings-label>Form Autofill</label><p class=settings-hint style=margin-bottom:10px>Store your info once. Vessel matches it to form fields on any site using labels, field names, and autocomplete hints.`), _tmpl$10 = /* @__PURE__ */ template(`<p class=settings-hint>Securely store credentials for agent-driven logins. Upgrade to Premium to unlock the Agent Credential Vault.`), _tmpl$11 = /* @__PURE__ */ template(`<div class=vault-entry><div class=vault-entry-info><span class=vault-entry-label></span><span class=vault-entry-detail> · </span></div><button class=vault-entry-remove title="Remove credential">×`), _tmpl$12 = /* @__PURE__ */ template(`<p class=settings-status>`), _tmpl$13 = /* @__PURE__ */ template(`<p class=settings-hint>Your personal password manager. Save, organize, and autofill login credentials. Upgrade to Premium to unlock Passwords.`), _tmpl$14 = /* @__PURE__ */ template(`<div class=vault-entry><div class=vault-entry-info><span class=vault-entry-label></span><span class=vault-entry-detail> · </span></div><button class=vault-entry-remove title="Remove password">×`), _tmpl$15 = /* @__PURE__ */ template(`<div class=vault-entry><div class=vault-entry-info><span class=vault-entry-label></span><span class=vault-entry-detail></span></div><div style=display:flex;gap:6px;align-items:center><button class="premium-btn premium-btn-activate"title="Fill forms on current page with this profile"style="padding:2px 10px;font-size:12px">Fill</button><button class=vault-entry-remove title="Remove profile">×`);
|
|
11084
11176
|
const SettingsVaults = (props) => {
|
|
11085
11177
|
const v = props.vault;
|
|
11086
11178
|
const h = props.humanVault;
|
|
@@ -11359,7 +11451,7 @@ const SettingsVaults = (props) => {
|
|
|
11359
11451
|
return !a.adding();
|
|
11360
11452
|
},
|
|
11361
11453
|
get children() {
|
|
11362
|
-
var _el$38 = _tmpl$9();
|
|
11454
|
+
var _el$38 = _tmpl$9$1();
|
|
11363
11455
|
_el$38.$$click = () => {
|
|
11364
11456
|
a.setAdding(true);
|
|
11365
11457
|
};
|
|
@@ -11515,22 +11607,96 @@ const SettingsPrivacy = (props) => {
|
|
|
11515
11607
|
})();
|
|
11516
11608
|
};
|
|
11517
11609
|
delegateEvents(["input", "click"]);
|
|
11518
|
-
var _tmpl$$4 = /* @__PURE__ */ template(`<div class=premium-section><div class=premium-active-badge>Premium Active</div><p class=premium-detail></p><div class=premium-actions-row><button class="premium-btn premium-btn-manage">Manage Subscription</button><button class="premium-btn premium-btn-reset">Sign Out`), _tmpl$
|
|
11610
|
+
var _tmpl$$4 = /* @__PURE__ */ template(`<div class=settings-feedback-form><input class=settings-input type=email placeholder="Your reply email"><textarea class="settings-textarea settings-feedback-textarea"placeholder="Tell us what happened, what you expected, or what would make Vessel better."></textarea><div class=settings-inline-actions><button class=settings-secondary-btn>`), _tmpl$2$4 = /* @__PURE__ */ template(`<div class=premium-section><div class=premium-active-badge>Premium Active</div><p class=premium-detail></p><div class=premium-actions-row><button class="premium-btn premium-btn-manage">Manage Subscription</button><button class="premium-btn premium-btn-reset">Sign Out`), _tmpl$3$3 = /* @__PURE__ */ template(`<div class=vault-entries>`), _tmpl$4$3 = /* @__PURE__ */ template(`<div class=settings-category-panel><div class=settings-field><label class=settings-label>Support</label><div class=settings-inline-actions><button class=settings-secondary-btn></button></div></div><div class=settings-field><label class=settings-label>Vessel Premium</label></div><div class=settings-field><label class=settings-label>Saved Sessions</label><p class=settings-hint style=margin-bottom:10px>Save the current browser state (tabs, cookies, storage) as a named session. Restore it later from this panel.</p><div class=premium-activate-row style=margin-bottom:8px><input class="settings-input premium-email-input"placeholder="Session name"><button class="premium-btn premium-btn-activate">Save Current`), _tmpl$5$2 = /* @__PURE__ */ template(`<p class=settings-status>`), _tmpl$6$2 = /* @__PURE__ */ template(`<div class=premium-activate-row><input class="settings-input premium-email-input"inputmode=numeric maxlength=6 placeholder="Enter 6-digit code"><button class="premium-btn premium-btn-activate">`), _tmpl$7$2 = /* @__PURE__ */ template(`<button class="premium-btn premium-btn-reset">Clear Saved Email`), _tmpl$8$1 = /* @__PURE__ */ template(`<div class=premium-section><p class=premium-description>Unlock screenshot/vision analysis, session management, Obsidian integration, workflow tracking, DevTools tools, table extraction, Agent Credential Vault, and unlimited tool iterations.</p><div class=premium-activate-row><input class="settings-input premium-email-input"type=email placeholder="Enter your subscription email"><button class="premium-btn premium-btn-activate"></button></div><button class="premium-btn premium-btn-upgrade">`), _tmpl$9 = /* @__PURE__ */ template(`<div class=vault-entry><div class=vault-entry-info><span class=vault-entry-label></span><span class=vault-entry-detail> · <!> cookies · <!> domains</span></div><div style=display:flex;gap:6px;align-items:center><button class="premium-btn premium-btn-activate"title="Restore this session (replaces current tabs and cookies)"style="padding:2px 10px;font-size:12px">Load</button><button class=vault-entry-remove title="Delete session">×`);
|
|
11519
11611
|
const SettingsAccount = (props) => {
|
|
11520
11612
|
const p = props.premium;
|
|
11521
11613
|
const s = props.sessions;
|
|
11614
|
+
const [feedbackExpanded, setFeedbackExpanded] = createSignal(false);
|
|
11615
|
+
const [feedbackEmail, setFeedbackEmail] = createSignal(p.state().email || "");
|
|
11616
|
+
const [feedbackMessage, setFeedbackMessage] = createSignal("");
|
|
11617
|
+
const [feedbackSending, setFeedbackSending] = createSignal(false);
|
|
11618
|
+
const [feedbackStatus, setFeedbackStatus] = createSignal(null);
|
|
11619
|
+
const handleSubmitFeedback = async () => {
|
|
11620
|
+
setFeedbackSending(true);
|
|
11621
|
+
setFeedbackStatus(null);
|
|
11622
|
+
try {
|
|
11623
|
+
const result = await window.vessel.support.submitFeedback(feedbackEmail(), feedbackMessage());
|
|
11624
|
+
if (result.ok) {
|
|
11625
|
+
setFeedbackMessage("");
|
|
11626
|
+
setFeedbackExpanded(false);
|
|
11627
|
+
setFeedbackStatus({
|
|
11628
|
+
kind: "success",
|
|
11629
|
+
text: "Feedback sent. Thank you."
|
|
11630
|
+
});
|
|
11631
|
+
return;
|
|
11632
|
+
}
|
|
11633
|
+
setFeedbackStatus({
|
|
11634
|
+
kind: "error",
|
|
11635
|
+
text: result.error || "Could not send feedback."
|
|
11636
|
+
});
|
|
11637
|
+
} finally {
|
|
11638
|
+
setFeedbackSending(false);
|
|
11639
|
+
}
|
|
11640
|
+
};
|
|
11522
11641
|
return (() => {
|
|
11523
|
-
var _el$ = _tmpl$
|
|
11524
|
-
_el$
|
|
11525
|
-
var _el$
|
|
11642
|
+
var _el$ = _tmpl$4$3(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.firstChild, _el$1 = _el$2.nextSibling;
|
|
11643
|
+
_el$1.firstChild;
|
|
11644
|
+
var _el$18 = _el$1.nextSibling, _el$19 = _el$18.firstChild, _el$20 = _el$19.nextSibling, _el$21 = _el$20.nextSibling, _el$22 = _el$21.firstChild, _el$23 = _el$22.nextSibling;
|
|
11645
|
+
_el$5.$$click = () => {
|
|
11646
|
+
setFeedbackExpanded(!feedbackExpanded());
|
|
11647
|
+
setFeedbackStatus(null);
|
|
11648
|
+
};
|
|
11649
|
+
insert(_el$5, () => feedbackExpanded() ? "Cancel" : "Submit Feedback");
|
|
11650
|
+
insert(_el$2, createComponent(Show, {
|
|
11651
|
+
get when() {
|
|
11652
|
+
return feedbackExpanded();
|
|
11653
|
+
},
|
|
11654
|
+
get children() {
|
|
11655
|
+
var _el$6 = _tmpl$$4(), _el$7 = _el$6.firstChild, _el$8 = _el$7.nextSibling, _el$9 = _el$8.nextSibling, _el$0 = _el$9.firstChild;
|
|
11656
|
+
_el$7.$$input = (event) => {
|
|
11657
|
+
setFeedbackEmail(event.currentTarget.value);
|
|
11658
|
+
setFeedbackStatus(null);
|
|
11659
|
+
};
|
|
11660
|
+
setAttribute(_el$7, "spellcheck", false);
|
|
11661
|
+
_el$8.$$input = (event) => {
|
|
11662
|
+
setFeedbackMessage(event.currentTarget.value);
|
|
11663
|
+
setFeedbackStatus(null);
|
|
11664
|
+
};
|
|
11665
|
+
_el$0.$$click = handleSubmitFeedback;
|
|
11666
|
+
insert(_el$0, () => feedbackSending() ? "Sending..." : "Send Feedback");
|
|
11667
|
+
createRenderEffect(() => _el$0.disabled = feedbackSending() || !feedbackEmail().trim() || !feedbackMessage().trim());
|
|
11668
|
+
createRenderEffect(() => _el$7.value = feedbackEmail());
|
|
11669
|
+
createRenderEffect(() => _el$8.value = feedbackMessage());
|
|
11670
|
+
return _el$6;
|
|
11671
|
+
}
|
|
11672
|
+
}), null);
|
|
11526
11673
|
insert(_el$2, createComponent(Show, {
|
|
11674
|
+
get when() {
|
|
11675
|
+
return feedbackStatus();
|
|
11676
|
+
},
|
|
11677
|
+
children: (status) => (() => {
|
|
11678
|
+
var _el$25 = _tmpl$5$2();
|
|
11679
|
+
insert(_el$25, () => status().text);
|
|
11680
|
+
createRenderEffect((_p$) => {
|
|
11681
|
+
var _v$ = !!(status().kind === "success"), _v$2 = !!(status().kind === "error");
|
|
11682
|
+
_v$ !== _p$.e && _el$25.classList.toggle("success", _p$.e = _v$);
|
|
11683
|
+
_v$2 !== _p$.t && _el$25.classList.toggle("error", _p$.t = _v$2);
|
|
11684
|
+
return _p$;
|
|
11685
|
+
}, {
|
|
11686
|
+
e: void 0,
|
|
11687
|
+
t: void 0
|
|
11688
|
+
});
|
|
11689
|
+
return _el$25;
|
|
11690
|
+
})()
|
|
11691
|
+
}), null);
|
|
11692
|
+
insert(_el$1, createComponent(Show, {
|
|
11527
11693
|
get when() {
|
|
11528
11694
|
return p.active();
|
|
11529
11695
|
},
|
|
11530
11696
|
get fallback() {
|
|
11531
11697
|
return (() => {
|
|
11532
|
-
var _el$
|
|
11533
|
-
_el$
|
|
11698
|
+
var _el$26 = _tmpl$8$1(), _el$27 = _el$26.firstChild, _el$28 = _el$27.nextSibling, _el$29 = _el$28.firstChild, _el$30 = _el$29.nextSibling, _el$34 = _el$28.nextSibling;
|
|
11699
|
+
_el$29.$$input = (e) => {
|
|
11534
11700
|
const nextEmail = e.currentTarget.value;
|
|
11535
11701
|
if (nextEmail.trim().toLowerCase() !== p.email().trim().toLowerCase()) {
|
|
11536
11702
|
p.resetFlow();
|
|
@@ -11538,8 +11704,8 @@ const SettingsAccount = (props) => {
|
|
|
11538
11704
|
}
|
|
11539
11705
|
p.setEmail(nextEmail);
|
|
11540
11706
|
};
|
|
11541
|
-
setAttribute(_el$
|
|
11542
|
-
_el$
|
|
11707
|
+
setAttribute(_el$29, "spellcheck", false);
|
|
11708
|
+
_el$30.$$click = async () => {
|
|
11543
11709
|
p.setLoading(true);
|
|
11544
11710
|
p.setMessage(null);
|
|
11545
11711
|
try {
|
|
@@ -11568,23 +11734,23 @@ const SettingsAccount = (props) => {
|
|
|
11568
11734
|
p.setLoading(false);
|
|
11569
11735
|
}
|
|
11570
11736
|
};
|
|
11571
|
-
insert(_el$
|
|
11737
|
+
insert(_el$30, (() => {
|
|
11572
11738
|
var _c$ = memo(() => !!p.loading());
|
|
11573
11739
|
return () => _c$() ? "Sending..." : p.codeSent() ? "Resend Code" : "Send Code";
|
|
11574
11740
|
})());
|
|
11575
|
-
insert(_el$
|
|
11741
|
+
insert(_el$26, createComponent(Show, {
|
|
11576
11742
|
get when() {
|
|
11577
11743
|
return p.codeSent();
|
|
11578
11744
|
},
|
|
11579
11745
|
get children() {
|
|
11580
|
-
var _el$
|
|
11581
|
-
_el$
|
|
11746
|
+
var _el$31 = _tmpl$6$2(), _el$32 = _el$31.firstChild, _el$33 = _el$32.nextSibling;
|
|
11747
|
+
_el$32.$$input = (e) => {
|
|
11582
11748
|
const nextCode = e.currentTarget.value.replace(/\D+/g, "").slice(0, 6);
|
|
11583
11749
|
p.setCode(nextCode);
|
|
11584
11750
|
p.setMessage(null);
|
|
11585
11751
|
};
|
|
11586
|
-
setAttribute(_el$
|
|
11587
|
-
_el$
|
|
11752
|
+
setAttribute(_el$32, "spellcheck", false);
|
|
11753
|
+
_el$33.$$click = async () => {
|
|
11588
11754
|
p.setLoading(true);
|
|
11589
11755
|
p.setMessage(null);
|
|
11590
11756
|
try {
|
|
@@ -11611,69 +11777,69 @@ const SettingsAccount = (props) => {
|
|
|
11611
11777
|
p.setLoading(false);
|
|
11612
11778
|
}
|
|
11613
11779
|
};
|
|
11614
|
-
insert(_el$
|
|
11615
|
-
createRenderEffect(() => _el$
|
|
11616
|
-
createRenderEffect(() => _el$
|
|
11617
|
-
return _el$
|
|
11780
|
+
insert(_el$33, () => p.loading() ? "Verifying..." : "Verify Code");
|
|
11781
|
+
createRenderEffect(() => _el$33.disabled = p.loading() || !p.email().trim() || p.code().trim().length !== 6 || !p.challengeToken());
|
|
11782
|
+
createRenderEffect(() => _el$32.value = p.code());
|
|
11783
|
+
return _el$31;
|
|
11618
11784
|
}
|
|
11619
|
-
}), _el$
|
|
11620
|
-
_el$
|
|
11785
|
+
}), _el$34);
|
|
11786
|
+
_el$34.$$click = () => {
|
|
11621
11787
|
p.startCheckout();
|
|
11622
11788
|
};
|
|
11623
|
-
insert(_el$
|
|
11624
|
-
insert(_el$
|
|
11789
|
+
insert(_el$34, () => p.loading() ? "Opening Checkout..." : "Subscribe to Premium — $5.99/mo after 7-day free trial");
|
|
11790
|
+
insert(_el$26, createComponent(Show, {
|
|
11625
11791
|
get when() {
|
|
11626
11792
|
return p.message();
|
|
11627
11793
|
},
|
|
11628
11794
|
children: (msg) => (() => {
|
|
11629
|
-
var _el$
|
|
11630
|
-
insert(_el$
|
|
11795
|
+
var _el$36 = _tmpl$5$2();
|
|
11796
|
+
insert(_el$36, () => msg().text);
|
|
11631
11797
|
createRenderEffect((_p$) => {
|
|
11632
|
-
var _v$
|
|
11633
|
-
_v$
|
|
11634
|
-
_v$
|
|
11798
|
+
var _v$5 = !!(msg().kind === "success"), _v$6 = !!(msg().kind === "error");
|
|
11799
|
+
_v$5 !== _p$.e && _el$36.classList.toggle("success", _p$.e = _v$5);
|
|
11800
|
+
_v$6 !== _p$.t && _el$36.classList.toggle("error", _p$.t = _v$6);
|
|
11635
11801
|
return _p$;
|
|
11636
11802
|
}, {
|
|
11637
11803
|
e: void 0,
|
|
11638
11804
|
t: void 0
|
|
11639
11805
|
});
|
|
11640
|
-
return _el$
|
|
11806
|
+
return _el$36;
|
|
11641
11807
|
})()
|
|
11642
11808
|
}), null);
|
|
11643
|
-
insert(_el$
|
|
11809
|
+
insert(_el$26, createComponent(Show, {
|
|
11644
11810
|
get when() {
|
|
11645
11811
|
return p.state().email || p.email();
|
|
11646
11812
|
},
|
|
11647
11813
|
get children() {
|
|
11648
|
-
var _el$
|
|
11649
|
-
_el$
|
|
11814
|
+
var _el$35 = _tmpl$7$2();
|
|
11815
|
+
_el$35.$$click = async () => {
|
|
11650
11816
|
const nextState = await window.vessel.premium.reset();
|
|
11651
11817
|
p.setState(nextState);
|
|
11652
11818
|
p.setEmail("");
|
|
11653
11819
|
p.resetFlow();
|
|
11654
11820
|
p.setMessage(null);
|
|
11655
11821
|
};
|
|
11656
|
-
return _el$
|
|
11822
|
+
return _el$35;
|
|
11657
11823
|
}
|
|
11658
11824
|
}), null);
|
|
11659
11825
|
createRenderEffect((_p$) => {
|
|
11660
|
-
var _v$ = p.loading() || !p.email().trim(), _v$
|
|
11661
|
-
_v$ !== _p$.e && (_el$
|
|
11662
|
-
_v$
|
|
11826
|
+
var _v$3 = p.loading() || !p.email().trim(), _v$4 = p.loading();
|
|
11827
|
+
_v$3 !== _p$.e && (_el$30.disabled = _p$.e = _v$3);
|
|
11828
|
+
_v$4 !== _p$.t && (_el$34.disabled = _p$.t = _v$4);
|
|
11663
11829
|
return _p$;
|
|
11664
11830
|
}, {
|
|
11665
11831
|
e: void 0,
|
|
11666
11832
|
t: void 0
|
|
11667
11833
|
});
|
|
11668
|
-
createRenderEffect(() => _el$
|
|
11669
|
-
return _el$
|
|
11834
|
+
createRenderEffect(() => _el$29.value = p.email());
|
|
11835
|
+
return _el$26;
|
|
11670
11836
|
})();
|
|
11671
11837
|
},
|
|
11672
11838
|
get children() {
|
|
11673
|
-
var _el$
|
|
11674
|
-
_el$
|
|
11675
|
-
var _el$
|
|
11676
|
-
insert(_el$
|
|
11839
|
+
var _el$11 = _tmpl$2$4(), _el$12 = _el$11.firstChild;
|
|
11840
|
+
_el$12.firstChild;
|
|
11841
|
+
var _el$14 = _el$12.nextSibling, _el$15 = _el$14.nextSibling, _el$16 = _el$15.firstChild, _el$17 = _el$16.nextSibling;
|
|
11842
|
+
insert(_el$12, createComponent(Show, {
|
|
11677
11843
|
get when() {
|
|
11678
11844
|
return p.state().status === "trialing";
|
|
11679
11845
|
},
|
|
@@ -11681,8 +11847,8 @@ const SettingsAccount = (props) => {
|
|
|
11681
11847
|
return [" ", "(Trial)"];
|
|
11682
11848
|
}
|
|
11683
11849
|
}), null);
|
|
11684
|
-
insert(_el$
|
|
11685
|
-
insert(_el$
|
|
11850
|
+
insert(_el$14, () => p.state().email, null);
|
|
11851
|
+
insert(_el$14, createComponent(Show, {
|
|
11686
11852
|
get when() {
|
|
11687
11853
|
return p.state().expiresAt;
|
|
11688
11854
|
},
|
|
@@ -11690,7 +11856,7 @@ const SettingsAccount = (props) => {
|
|
|
11690
11856
|
return [" ", "· Renews", " ", memo(() => new Date(p.state().expiresAt).toLocaleDateString())];
|
|
11691
11857
|
}
|
|
11692
11858
|
}), null);
|
|
11693
|
-
_el$
|
|
11859
|
+
_el$16.$$click = async () => {
|
|
11694
11860
|
const result = await window.vessel.premium.portal();
|
|
11695
11861
|
if (!result.ok) {
|
|
11696
11862
|
p.setMessage({
|
|
@@ -11700,38 +11866,38 @@ const SettingsAccount = (props) => {
|
|
|
11700
11866
|
setTimeout(() => p.setMessage(null), 5e3);
|
|
11701
11867
|
}
|
|
11702
11868
|
};
|
|
11703
|
-
_el$
|
|
11869
|
+
_el$17.$$click = async () => {
|
|
11704
11870
|
const nextState = await window.vessel.premium.reset();
|
|
11705
11871
|
p.setState(nextState);
|
|
11706
11872
|
p.setEmail("");
|
|
11707
11873
|
p.resetFlow();
|
|
11708
11874
|
p.setMessage(null);
|
|
11709
11875
|
};
|
|
11710
|
-
insert(_el$
|
|
11876
|
+
insert(_el$11, createComponent(Show, {
|
|
11711
11877
|
get when() {
|
|
11712
11878
|
return p.message();
|
|
11713
11879
|
},
|
|
11714
11880
|
children: (msg) => (() => {
|
|
11715
|
-
var _el$
|
|
11716
|
-
insert(_el$
|
|
11881
|
+
var _el$37 = _tmpl$5$2();
|
|
11882
|
+
insert(_el$37, () => msg().text);
|
|
11717
11883
|
createRenderEffect((_p$) => {
|
|
11718
|
-
var _v$
|
|
11719
|
-
_v$
|
|
11720
|
-
_v$
|
|
11884
|
+
var _v$7 = !!(msg().kind === "success"), _v$8 = !!(msg().kind === "error");
|
|
11885
|
+
_v$7 !== _p$.e && _el$37.classList.toggle("success", _p$.e = _v$7);
|
|
11886
|
+
_v$8 !== _p$.t && _el$37.classList.toggle("error", _p$.t = _v$8);
|
|
11721
11887
|
return _p$;
|
|
11722
11888
|
}, {
|
|
11723
11889
|
e: void 0,
|
|
11724
11890
|
t: void 0
|
|
11725
11891
|
});
|
|
11726
|
-
return _el$
|
|
11892
|
+
return _el$37;
|
|
11727
11893
|
})()
|
|
11728
11894
|
}), null);
|
|
11729
|
-
return _el$
|
|
11895
|
+
return _el$11;
|
|
11730
11896
|
}
|
|
11731
11897
|
}), null);
|
|
11732
|
-
_el$
|
|
11733
|
-
setAttribute(_el$
|
|
11734
|
-
_el$
|
|
11898
|
+
_el$22.$$input = (e) => s.setSaveName(e.currentTarget.value);
|
|
11899
|
+
setAttribute(_el$22, "spellcheck", false);
|
|
11900
|
+
_el$23.$$click = async () => {
|
|
11735
11901
|
try {
|
|
11736
11902
|
await window.vessel.sessions.save(s.saveName().trim());
|
|
11737
11903
|
s.setSaveName("");
|
|
@@ -11748,25 +11914,25 @@ const SettingsAccount = (props) => {
|
|
|
11748
11914
|
});
|
|
11749
11915
|
}
|
|
11750
11916
|
};
|
|
11751
|
-
insert(_el$
|
|
11917
|
+
insert(_el$18, createComponent(Show, {
|
|
11752
11918
|
get when() {
|
|
11753
11919
|
return s.list().length > 0;
|
|
11754
11920
|
},
|
|
11755
11921
|
get children() {
|
|
11756
|
-
var _el$
|
|
11757
|
-
insert(_el$
|
|
11922
|
+
var _el$24 = _tmpl$3$3();
|
|
11923
|
+
insert(_el$24, createComponent(For, {
|
|
11758
11924
|
get each() {
|
|
11759
11925
|
return s.list();
|
|
11760
11926
|
},
|
|
11761
11927
|
children: (session) => (() => {
|
|
11762
|
-
var _el$
|
|
11763
|
-
_el$
|
|
11764
|
-
var _el$
|
|
11765
|
-
insert(_el$
|
|
11766
|
-
insert(_el$
|
|
11767
|
-
insert(_el$
|
|
11768
|
-
insert(_el$
|
|
11769
|
-
_el$
|
|
11928
|
+
var _el$38 = _tmpl$9(), _el$39 = _el$38.firstChild, _el$40 = _el$39.firstChild, _el$41 = _el$40.nextSibling, _el$42 = _el$41.firstChild, _el$48 = _el$42.nextSibling, _el$44 = _el$48.nextSibling, _el$49 = _el$44.nextSibling;
|
|
11929
|
+
_el$49.nextSibling;
|
|
11930
|
+
var _el$50 = _el$39.nextSibling, _el$51 = _el$50.firstChild, _el$52 = _el$51.nextSibling;
|
|
11931
|
+
insert(_el$40, () => session.name);
|
|
11932
|
+
insert(_el$41, () => new Date(session.updatedAt).toLocaleDateString(), _el$42);
|
|
11933
|
+
insert(_el$41, () => session.cookieCount, _el$48);
|
|
11934
|
+
insert(_el$41, () => session.domains.length, _el$49);
|
|
11935
|
+
_el$51.$$click = async () => {
|
|
11770
11936
|
try {
|
|
11771
11937
|
await window.vessel.sessions.load(session.name);
|
|
11772
11938
|
props.setStatus({
|
|
@@ -11781,18 +11947,18 @@ const SettingsAccount = (props) => {
|
|
|
11781
11947
|
});
|
|
11782
11948
|
}
|
|
11783
11949
|
};
|
|
11784
|
-
_el$
|
|
11950
|
+
_el$52.$$click = async () => {
|
|
11785
11951
|
await window.vessel.sessions.delete(session.name);
|
|
11786
11952
|
await s.loadList();
|
|
11787
11953
|
};
|
|
11788
|
-
return _el$
|
|
11954
|
+
return _el$38;
|
|
11789
11955
|
})()
|
|
11790
11956
|
}));
|
|
11791
|
-
return _el$
|
|
11957
|
+
return _el$24;
|
|
11792
11958
|
}
|
|
11793
11959
|
}), null);
|
|
11794
|
-
createRenderEffect(() => _el$
|
|
11795
|
-
createRenderEffect(() => _el$
|
|
11960
|
+
createRenderEffect(() => _el$23.disabled = !s.saveName().trim());
|
|
11961
|
+
createRenderEffect(() => _el$22.value = s.saveName());
|
|
11796
11962
|
return _el$;
|
|
11797
11963
|
})();
|
|
11798
11964
|
};
|
|
@@ -12084,6 +12250,10 @@ var _tmpl$$3 = /* @__PURE__ */ template(`<div class=settings-compact-upsell><spa
|
|
|
12084
12250
|
box-sizing: border-box;
|
|
12085
12251
|
line-height: 1.5;
|
|
12086
12252
|
}
|
|
12253
|
+
.settings-feedback-textarea {
|
|
12254
|
+
margin-top: 8px;
|
|
12255
|
+
min-height: 96px;
|
|
12256
|
+
}
|
|
12087
12257
|
.settings-input:focus,
|
|
12088
12258
|
.settings-textarea:focus {
|
|
12089
12259
|
outline: none;
|