@quanta-intellect/vessel-browser 0.1.45 → 0.1.46
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.
|
@@ -4650,7 +4650,7 @@ function renderKitPrompt(kit, values) {
|
|
|
4650
4650
|
(_, key) => values[key] ?? ""
|
|
4651
4651
|
);
|
|
4652
4652
|
}
|
|
4653
|
-
var _tmpl$$5 = /* @__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$5 = /* @__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$4 = /* @__PURE__ */ template(`<div class=kit-install-error><span></span><button class=kit-install-error-dismiss type=button aria-label=Dismiss>×`), _tmpl$4$4 = /* @__PURE__ */ template(`<div class=kit-list>`), _tmpl$5$4 = /* @__PURE__ */ template(`<div class=kit-sched-section><span>Scheduled</span><span class=kit-list-count>`), _tmpl$6$4 = /* @__PURE__ */ template(`<div class=kit-sched-list>`), _tmpl$7$3 = /* @__PURE__ */ template(`<div class=kit-sched-section><span>Recent Activity</span><span class=kit-list-count>`), _tmpl$8$3 = /* @__PURE__ */ template(`<div class=kit-activity-list>`), _tmpl$9$3 = /* @__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$3 = /* @__PURE__ */ template(`<p class=kit-form-desc>`), _tmpl$1$3 = /* @__PURE__ */ template(`<div class=kit-form-fields>`), _tmpl$10$3 = /* @__PURE__ */ template(`<p class=kit-form-estimate>Estimated run time: ~<!> min`), _tmpl$11$3 = /* @__PURE__ */ template(`<button class="agent-primary-button kit-run-btn"type=button>`), _tmpl$12$3 = /* @__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$2 = /* @__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$2 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label class=kit-form-label>Day</label><select class=kit-form-input>`), _tmpl$15$2 = /* @__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$2 = /* @__PURE__ */ template(`<p class=kit-schedule-error>`), _tmpl$17$2 = /* @__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$2 = /* @__PURE__ */ template(`<div class=kit-schedule-section><label class=kit-schedule-toggle><input type=checkbox>Schedule for later`), _tmpl$19$2 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Run at</label><input type=datetime-local class="kit-form-input kit-schedule-time">`), _tmpl$20$2 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Day</label><select class="kit-form-input kit-schedule-time">`), _tmpl$21$2 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Time</label><input type=time class="kit-form-input kit-schedule-time">`), _tmpl$22$2 = /* @__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$2 = /* @__PURE__ */ template(`<section class=automation-panel>`), _tmpl$24$2 = /* @__PURE__ */ template(`<div class=kit-card-meta>~<!> min`), _tmpl$25$2 = /* @__PURE__ */ template(`<button class=kit-remove-btn type=button>×`), _tmpl$26$2 = /* @__PURE__ */ template(`<div class=kit-card role=button tabindex=0><span class=kit-card-icon aria-hidden=true></span><div class=kit-card-body><div class=kit-card-name></div><div class=kit-card-desc>`), _tmpl$27$2 = /* @__PURE__ */ template(`<svg class=kit-card-caret width=14 height=14 viewBox="0 0 14 14"fill=none aria-hidden=true><path d="M5 3l4 4-4 4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round>`), _tmpl$28$2 = /* @__PURE__ */ template(`<div class=kit-sched-next>Next: `), _tmpl$29$2 = /* @__PURE__ */ template(`<div class=sched-context-menu><button class=sched-ctx-item type=button>Edit task</button><button class=sched-ctx-item type=button>Edit schedule</button><div class=sched-ctx-divider></div><button class=sched-ctx-item type=button></button><button class="sched-ctx-item sched-ctx-danger"type=button>Delete`), _tmpl$30$2 = /* @__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$2 = /* @__PURE__ */ template(`<div class=kit-activity-output>`), _tmpl$32$2 = /* @__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$2 = /* @__PURE__ */ template(`<div class="kit-activity-output kit-activity-placeholder">`), _tmpl$34$
|
|
4653
|
+
var _tmpl$$5 = /* @__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$5 = /* @__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$4 = /* @__PURE__ */ template(`<div class=kit-install-error><span></span><button class=kit-install-error-dismiss type=button aria-label=Dismiss>×`), _tmpl$4$4 = /* @__PURE__ */ template(`<div class=kit-list>`), _tmpl$5$4 = /* @__PURE__ */ template(`<div class=kit-sched-section><span>Scheduled</span><span class=kit-list-count>`), _tmpl$6$4 = /* @__PURE__ */ template(`<div class=kit-sched-list>`), _tmpl$7$3 = /* @__PURE__ */ template(`<div class=kit-sched-section><span>Recent Activity</span><span class=kit-list-count>`), _tmpl$8$3 = /* @__PURE__ */ template(`<div class=kit-activity-list>`), _tmpl$9$3 = /* @__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$3 = /* @__PURE__ */ template(`<p class=kit-form-desc>`), _tmpl$1$3 = /* @__PURE__ */ template(`<div class=kit-form-fields>`), _tmpl$10$3 = /* @__PURE__ */ template(`<p class=kit-form-estimate>Estimated run time: ~<!> min`), _tmpl$11$3 = /* @__PURE__ */ template(`<button class="agent-primary-button kit-run-btn"type=button>`), _tmpl$12$3 = /* @__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$2 = /* @__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$2 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label class=kit-form-label>Day</label><select class=kit-form-input>`), _tmpl$15$2 = /* @__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$2 = /* @__PURE__ */ template(`<p class=kit-schedule-error>`), _tmpl$17$2 = /* @__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$2 = /* @__PURE__ */ template(`<div class=kit-schedule-section><label class=kit-schedule-toggle><input type=checkbox>Schedule for later`), _tmpl$19$2 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Run at</label><input type=datetime-local class="kit-form-input kit-schedule-time">`), _tmpl$20$2 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Day</label><select class="kit-form-input kit-schedule-time">`), _tmpl$21$2 = /* @__PURE__ */ template(`<div class=kit-schedule-row><label>Time</label><input type=time class="kit-form-input kit-schedule-time">`), _tmpl$22$2 = /* @__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$2 = /* @__PURE__ */ template(`<section class=automation-panel>`), _tmpl$24$2 = /* @__PURE__ */ template(`<div class=kit-card-meta>~<!> min`), _tmpl$25$2 = /* @__PURE__ */ template(`<button class=kit-remove-btn type=button>×`), _tmpl$26$2 = /* @__PURE__ */ template(`<div class=kit-card role=button tabindex=0><span class=kit-card-icon aria-hidden=true></span><div class=kit-card-body><div class=kit-card-name></div><div class=kit-card-desc>`), _tmpl$27$2 = /* @__PURE__ */ template(`<svg class=kit-card-caret width=14 height=14 viewBox="0 0 14 14"fill=none aria-hidden=true><path d="M5 3l4 4-4 4"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round>`), _tmpl$28$2 = /* @__PURE__ */ template(`<div class=kit-sched-next>Next: `), _tmpl$29$2 = /* @__PURE__ */ template(`<div class=sched-context-menu><button class=sched-ctx-item type=button>Edit task</button><button class=sched-ctx-item type=button>Edit schedule</button><div class=sched-ctx-divider></div><button class=sched-ctx-item type=button></button><button class="sched-ctx-item sched-ctx-danger"type=button>Delete`), _tmpl$30$2 = /* @__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$2 = /* @__PURE__ */ template(`<div class=kit-activity-output>`), _tmpl$32$2 = /* @__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$2 = /* @__PURE__ */ template(`<div class="kit-activity-output kit-activity-placeholder">`), _tmpl$34$2 = /* @__PURE__ */ template(`<span class=kit-form-required aria-hidden=true>*`), _tmpl$35$2 = /* @__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>`);
|
|
4654
4654
|
const ICON_MAP = {
|
|
4655
4655
|
BookOpen: book_open_default,
|
|
4656
4656
|
Tag: tag_default,
|
|
@@ -5244,7 +5244,7 @@ const AutomationTab = (props) => {
|
|
|
5244
5244
|
return input.required;
|
|
5245
5245
|
},
|
|
5246
5246
|
get children() {
|
|
5247
|
-
return _tmpl$34$
|
|
5247
|
+
return _tmpl$34$2();
|
|
5248
5248
|
}
|
|
5249
5249
|
}), null);
|
|
5250
5250
|
insert(_el$110, createComponent(Show, {
|
|
@@ -5269,7 +5269,7 @@ const AutomationTab = (props) => {
|
|
|
5269
5269
|
})();
|
|
5270
5270
|
},
|
|
5271
5271
|
get children() {
|
|
5272
|
-
var _el$113 = _tmpl$35$
|
|
5272
|
+
var _el$113 = _tmpl$35$2();
|
|
5273
5273
|
_el$113.$$input = (e) => setField(input.key, e.currentTarget.value);
|
|
5274
5274
|
createRenderEffect(() => setAttribute(_el$113, "placeholder", input.placeholder ?? ""));
|
|
5275
5275
|
createRenderEffect(() => _el$113.value = fieldValues()[input.key] ?? "");
|
|
@@ -5490,7 +5490,7 @@ const AutomationTab = (props) => {
|
|
|
5490
5490
|
};
|
|
5491
5491
|
delegateEvents(["click", "input", "keydown", "contextmenu"]);
|
|
5492
5492
|
const vesselLogo = "" + new URL("vessel-logo-transparent-IT25qr-Z.png", import.meta.url).href;
|
|
5493
|
-
var _tmpl$$4 = /* @__PURE__ */ template(`<div class="message-content markdown-content">`), _tmpl$2$4 = /* @__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$3 = /* @__PURE__ */ template(`<span class=sidebar-tab-badge>`), _tmpl$4$3 = /* @__PURE__ */ template(`<div class=agent-section-title>Pending approvals`), _tmpl$5$3 = /* @__PURE__ */ template(`<button class=agent-section-toggle type=button>`), _tmpl$6$3 = /* @__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$7$2 = /* @__PURE__ */ template(`<span class=bookmark-status-pill>Saved`), _tmpl$8$2 = /* @__PURE__ */ template(`<div class=bookmark-save-card><div class=bookmark-current-title></div><div class=bookmark-current-url></div><div class=bookmark-save-controls><button class=bookmark-primary-button type=button>Save page</button></div><textarea class=bookmark-note-input placeholder="Optional note about why this matters"rows=2>`), _tmpl$9$2 = /* @__PURE__ */ template(`<section class=bookmark-panel><div class=bookmark-panel-header><div><div class=bookmark-panel-title>Bookmarks</div><div class=bookmark-panel-subtitle></div></div></div><input class="bookmark-input bookmark-search-input"placeholder="Search titles, URLs, notes, and folders"><div class=bookmark-save-shell><button class=bookmark-save-toggle type=button><span class=bookmark-save-toggle-copy><span class=bookmark-save-toggle-title>Save Current Page</span><span class=bookmark-save-toggle-subtitle>Manual bookmark save options</span></span><span class=bookmark-save-toggle-caret aria-hidden=true>▾</span></button></div><form class=bookmark-folder-create><div class=bookmark-folder-form-fields><input class=bookmark-input placeholder="Create a folder"><input class=bookmark-input placeholder="Optional one-line summary"></div><button class=bookmark-secondary-button type=submit>New folder</button></form><div class=bookmark-folder-list>`), _tmpl$0$2 = /* @__PURE__ */ template(`<div class=checkpoint-timeline>`), _tmpl$1$2 = /* @__PURE__ */ template(`<section class="agent-panel checkpoint-panel"><div class=agent-panel-header><div><div class=agent-panel-title>Checkpoints</div><div class=agent-panel-subtitle></div></div></div><div class=agent-panel-body><div class=agent-checkpoint-row><input class=agent-input placeholder="Checkpoint name"><button class=agent-primary-button type=button>Save checkpoint</button></div><div class=agent-section-title>Recent checkpoints`), _tmpl$10$2 = /* @__PURE__ */ template(`<div class="kit-upsell premium-chat-banner"><p class=kit-upsell-title>Vessel Premium</p><p class="kit-upsell-body premium-chat-banner-body">Give the built-in agent a bigger toolbox and longer runway: screenshots, saved sessions, workflow tracking, table extraction, and up to 1,000 tool calls per turn.</p><div class="premium-inline-actions premium-chat-banner-actions"><button class="agent-primary-button premium-inline-primary"type=button>Start 7-day free trial — $5.99/mo after</button><button class="agent-control-button premium-inline-secondary"type=button>See Premium`), _tmpl$11$2 = /* @__PURE__ */ template(`<span>`), _tmpl$12$2 = /* @__PURE__ */ template(`<div><div class=streaming-status><span class=streaming-pulse aria-hidden=true></span><span>Generating`), _tmpl$13$1 = /* @__PURE__ */ template(`<div class="message message-assistant"><div class=message-content>`), _tmpl$14$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$15$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$16$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$17$1 = /* @__PURE__ */ template(`<div class=chat-actions>`), _tmpl$18$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$19$1 = /* @__PURE__ */ template(`<button class=chat-queue-clear type=button>Clear queue`), _tmpl$20$1 = /* @__PURE__ */ template(`<div class=chat-queue-list>`), _tmpl$21$1 = /* @__PURE__ */ template(`<div class=chat-queue-status><div class=chat-queue-status-row><span>`), _tmpl$22$1 = /* @__PURE__ */ template(`<div class=sidebar-input-area><textarea class=sidebar-input rows=2></textarea><button class=sidebar-send>`), _tmpl$23$1 = /* @__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></div><div class=sidebar-messages><div>`), _tmpl$24$1 = /* @__PURE__ */ template(`<div class=agent-muted>No pending approvals.`), _tmpl$25$1 = /* @__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$26$1 = /* @__PURE__ */ template(`<div class=agent-muted>No actions yet.`), _tmpl$27$1 = /* @__PURE__ */ template(`<div class=agent-muted>Recent actions are collapsed to reduce noise.`), _tmpl$28$1 = /* @__PURE__ */ template(`<div class="agent-card-copy success">`), _tmpl$29$1 = /* @__PURE__ */ template(`<div class="agent-card-copy error">`), _tmpl$30$1 = /* @__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$31$1 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>`), _tmpl$32$1 = /* @__PURE__ */ template(`<div class=bookmark-folder-summary>`), _tmpl$33$1 = /* @__PURE__ */ template(`<div class=bookmark-folder-actions><button class=bookmark-ghost-button type=button>Rename</button><button class="bookmark-ghost-button danger"type=button>Delete`), _tmpl$34 = /* @__PURE__ */ template(`<button class=bookmark-ghost-button type=button>Keep bookmarks`), _tmpl$35 = /* @__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$36 = /* @__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$37 = /* @__PURE__ */ template(`<div class=bookmark-items>`), _tmpl$38 = /* @__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$39 = /* @__PURE__ */ template(`<div class=bookmark-folder-collapsed-hint>Click to view saved links.`), _tmpl$40 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>No bookmarks in this folder yet.`), _tmpl$41 = /* @__PURE__ */ template(`<div class=bookmark-item-note>`), _tmpl$42 = /* @__PURE__ */ template(`<div class=bookmark-item><button class=bookmark-item-link type=button><span class=bookmark-item-title></span><span class=bookmark-item-url></span></button><div class=bookmark-item-footer><span class=bookmark-item-time></span><button class="bookmark-ghost-button danger"type=button>Remove`), _tmpl$43 = /* @__PURE__ */ template(`<div class=agent-muted>No checkpoints yet.`), _tmpl$44 = /* @__PURE__ */ template(`<span class=checkpoint-timeline-line>`), _tmpl$45 = /* @__PURE__ */ template(`<div class=checkpoint-timeline-item><div class=checkpoint-timeline-rail><span class=checkpoint-timeline-dot></span></div><div class=checkpoint-timeline-content><div class=checkpoint-timeline-name></div><div class=checkpoint-timeline-time></div><button class=agent-control-button type=button>Restore`), _tmpl$46 = /* @__PURE__ */ template(`<div>`), _tmpl$47 = /* @__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$48 = /* @__PURE__ */ template(`<div class=chat-approval-detail>`), _tmpl$49 = /* @__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$50 = /* @__PURE__ */ template(`<div class=chat-queue-item><span class=chat-queue-text></span><button class=chat-queue-remove type=button>×`);
|
|
5493
|
+
var _tmpl$$4 = /* @__PURE__ */ template(`<div class="message-content markdown-content">`), _tmpl$2$4 = /* @__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$3 = /* @__PURE__ */ template(`<span class=sidebar-tab-badge>`), _tmpl$4$3 = /* @__PURE__ */ template(`<div class=agent-section-title>Pending approvals`), _tmpl$5$3 = /* @__PURE__ */ template(`<button class=agent-section-toggle type=button>`), _tmpl$6$3 = /* @__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$7$2 = /* @__PURE__ */ template(`<span class=bookmark-status-pill>Saved`), _tmpl$8$2 = /* @__PURE__ */ template(`<div class=bookmark-save-card><div class=bookmark-current-title></div><div class=bookmark-current-url></div><div class=bookmark-save-controls><button class=bookmark-primary-button type=button>Save page</button></div><textarea class=bookmark-note-input placeholder="Optional note about why this matters"rows=2>`), _tmpl$9$2 = /* @__PURE__ */ template(`<section class=bookmark-panel><div class=bookmark-panel-header><div><div class=bookmark-panel-title>Bookmarks</div><div class=bookmark-panel-subtitle></div></div></div><input class="bookmark-input bookmark-search-input"placeholder="Search titles, URLs, notes, and folders"><div class=bookmark-save-shell><button class=bookmark-save-toggle type=button><span class=bookmark-save-toggle-copy><span class=bookmark-save-toggle-title>Save Current Page</span><span class=bookmark-save-toggle-subtitle>Manual bookmark save options</span></span><span class=bookmark-save-toggle-caret aria-hidden=true>▾</span></button></div><form class=bookmark-folder-create><div class=bookmark-folder-form-fields><input class=bookmark-input placeholder="Create a folder"><input class=bookmark-input placeholder="Optional one-line summary"></div><button class=bookmark-secondary-button type=submit>New folder</button></form><div class=bookmark-folder-list>`), _tmpl$0$2 = /* @__PURE__ */ template(`<div class=checkpoint-timeline>`), _tmpl$1$2 = /* @__PURE__ */ template(`<section class="agent-panel checkpoint-panel"><div class=agent-panel-header><div><div class=agent-panel-title>Checkpoints</div><div class=agent-panel-subtitle></div></div></div><div class=agent-panel-body><div class=agent-checkpoint-row><input class=agent-input placeholder="Checkpoint name"><button class=agent-primary-button type=button>Save checkpoint</button></div><div class=agent-section-title>Recent checkpoints`), _tmpl$10$2 = /* @__PURE__ */ template(`<div class="kit-upsell premium-chat-banner"><p class=kit-upsell-title>Vessel Premium</p><p class="kit-upsell-body premium-chat-banner-body">Give the built-in agent a bigger toolbox and longer runway: screenshots, saved sessions, workflow tracking, table extraction, and up to 1,000 tool calls per turn.</p><div class="premium-inline-actions premium-chat-banner-actions"><button class="agent-primary-button premium-inline-primary"type=button>Start 7-day free trial — $5.99/mo after</button><button class="agent-control-button premium-inline-secondary"type=button>See Premium`), _tmpl$11$2 = /* @__PURE__ */ template(`<span>`), _tmpl$12$2 = /* @__PURE__ */ template(`<div><div class=streaming-status><span class=streaming-pulse aria-hidden=true></span><span>Generating`), _tmpl$13$1 = /* @__PURE__ */ template(`<div class="message message-assistant"><div class=message-content>`), _tmpl$14$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$15$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$16$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$17$1 = /* @__PURE__ */ template(`<div class=chat-actions>`), _tmpl$18$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$19$1 = /* @__PURE__ */ template(`<button class=chat-queue-clear type=button>Clear queue`), _tmpl$20$1 = /* @__PURE__ */ template(`<div class=chat-queue-list>`), _tmpl$21$1 = /* @__PURE__ */ template(`<div class=chat-queue-status><div class=chat-queue-status-row><span>`), _tmpl$22$1 = /* @__PURE__ */ template(`<div class=sidebar-input-area><textarea class=sidebar-input rows=2></textarea><button class=sidebar-send>`), _tmpl$23$1 = /* @__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></div><div class=sidebar-messages><div>`), _tmpl$24$1 = /* @__PURE__ */ template(`<div class=agent-muted>No pending approvals.`), _tmpl$25$1 = /* @__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$26$1 = /* @__PURE__ */ template(`<div class=agent-muted>No actions yet.`), _tmpl$27$1 = /* @__PURE__ */ template(`<div class=agent-muted>Recent actions are collapsed to reduce noise.`), _tmpl$28$1 = /* @__PURE__ */ template(`<div class="agent-card-copy success">`), _tmpl$29$1 = /* @__PURE__ */ template(`<div class="agent-card-copy error">`), _tmpl$30$1 = /* @__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$31$1 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>`), _tmpl$32$1 = /* @__PURE__ */ template(`<div class=bookmark-folder-summary>`), _tmpl$33$1 = /* @__PURE__ */ template(`<div class=bookmark-folder-actions><button class=bookmark-ghost-button type=button>Rename</button><button class="bookmark-ghost-button danger"type=button>Delete`), _tmpl$34$1 = /* @__PURE__ */ template(`<button class=bookmark-ghost-button type=button>Keep bookmarks`), _tmpl$35$1 = /* @__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$36 = /* @__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$37 = /* @__PURE__ */ template(`<div class=bookmark-items>`), _tmpl$38 = /* @__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$39 = /* @__PURE__ */ template(`<div class=bookmark-folder-collapsed-hint>Click to view saved links.`), _tmpl$40 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>No bookmarks in this folder yet.`), _tmpl$41 = /* @__PURE__ */ template(`<div class=bookmark-item-note>`), _tmpl$42 = /* @__PURE__ */ template(`<div class=bookmark-item><button class=bookmark-item-link type=button><span class=bookmark-item-title></span><span class=bookmark-item-url></span></button><div class=bookmark-item-footer><span class=bookmark-item-time></span><button class="bookmark-ghost-button danger"type=button>Remove`), _tmpl$43 = /* @__PURE__ */ template(`<div class=agent-muted>No checkpoints yet.`), _tmpl$44 = /* @__PURE__ */ template(`<span class=checkpoint-timeline-line>`), _tmpl$45 = /* @__PURE__ */ template(`<div class=checkpoint-timeline-item><div class=checkpoint-timeline-rail><span class=checkpoint-timeline-dot></span></div><div class=checkpoint-timeline-content><div class=checkpoint-timeline-name></div><div class=checkpoint-timeline-time></div><button class=agent-control-button type=button>Restore`), _tmpl$46 = /* @__PURE__ */ template(`<div>`), _tmpl$47 = /* @__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$48 = /* @__PURE__ */ template(`<div class=chat-approval-detail>`), _tmpl$49 = /* @__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$50 = /* @__PURE__ */ template(`<div class=chat-queue-item><span class=chat-queue-text></span><button class=chat-queue-remove type=button>×`);
|
|
5494
5494
|
const UNSORTED_FOLDER = {
|
|
5495
5495
|
id: "unsorted",
|
|
5496
5496
|
name: "Unsorted",
|
|
@@ -5580,6 +5580,7 @@ const Sidebar = (props) => {
|
|
|
5580
5580
|
const [premiumState, setPremiumState] = createSignal({
|
|
5581
5581
|
status: "free",
|
|
5582
5582
|
customerId: "",
|
|
5583
|
+
verificationToken: "",
|
|
5583
5584
|
email: "",
|
|
5584
5585
|
validatedAt: "",
|
|
5585
5586
|
expiresAt: ""
|
|
@@ -6205,7 +6206,7 @@ ${contextBlock}` : contextBlock);
|
|
|
6205
6206
|
return deletingFolderId() === folder.id;
|
|
6206
6207
|
},
|
|
6207
6208
|
get children() {
|
|
6208
|
-
var _el$134 = _tmpl$35(), _el$135 = _el$134.firstChild, _el$136 = _el$135.firstChild, _el$138 = _el$136.nextSibling;
|
|
6209
|
+
var _el$134 = _tmpl$35$1(), _el$135 = _el$134.firstChild, _el$136 = _el$135.firstChild, _el$138 = _el$136.nextSibling;
|
|
6209
6210
|
_el$138.nextSibling;
|
|
6210
6211
|
var _el$139 = _el$135.nextSibling, _el$141 = _el$139.firstChild, _el$142 = _el$141.nextSibling;
|
|
6211
6212
|
insert(_el$135, () => folder.name, _el$138);
|
|
@@ -6218,7 +6219,7 @@ ${contextBlock}` : contextBlock);
|
|
|
6218
6219
|
return folder.items.length > 0;
|
|
6219
6220
|
},
|
|
6220
6221
|
get children() {
|
|
6221
|
-
var _el$140 = _tmpl$34();
|
|
6222
|
+
var _el$140 = _tmpl$34$1();
|
|
6222
6223
|
_el$140.$$click = () => void handleRemoveFolder(folder.id, false);
|
|
6223
6224
|
return _el$140;
|
|
6224
6225
|
}
|
|
@@ -7095,7 +7096,7 @@ const DevToolsPanel = () => {
|
|
|
7095
7096
|
})();
|
|
7096
7097
|
};
|
|
7097
7098
|
delegateEvents(["click", "input"]);
|
|
7098
|
-
var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><button class="premium-btn premium-btn-upgrade">Try Premium free for 7 days — $5.99/mo after</button><span class=welcome-banner-note>Best for screenshots, saved sessions, credential vault, and longer autonomous runs.`), _tmpl$2$2 = /* @__PURE__ */ template(`<div class=welcome-banner><div class=welcome-banner-header><span class=welcome-banner-title>Welcome to Vessel</span><button class=welcome-banner-dismiss>×</button></div><p class=welcome-banner-text>Get started in three steps:</p><ol class=welcome-banner-steps><li><strong>Configure a chat provider</strong> — scroll to Chat Assistant below and add an API key</li><li><strong>Connect your agent harness</strong> — point it at the MCP endpoint shown below</li><li><strong>Learn the shortcuts</strong> — press <kbd>?</kbd> anytime for a quick reference`), _tmpl$3$1 = /* @__PURE__ */ template(`<div class="settings-callout settings-premium-callout"><div class=settings-callout-title>Start Vessel Premium with a 7-day free trial</div><p class=settings-callout-copy>Unlock screenshots, saved sessions, workflow tracking, table extraction, the credential vault, and longer autonomous runs without leaving the app.</p><div class=settings-premium-callout-actions><button class="premium-btn premium-btn-upgrade">Start 7-day free trial — $5.99/mo after</button><button class="premium-btn premium-btn-activate">See activation steps`), _tmpl$4$1 = /* @__PURE__ */ template(`<input id=max-tool-iterations class=settings-input type=number min=10 max=1000 placeholder=200>`), _tmpl$5$1 = /* @__PURE__ */ template(`<div class=settings-field><label class=settings-label for=chat-provider>Provider</label><select id=chat-provider class="settings-input settings-select">`), _tmpl$6$1 = /* @__PURE__ */ template(`<span class=settings-label-optional> (optional)`), _tmpl$7 = /* @__PURE__ */ template(`<p class=settings-hint>If your endpoint requires authentication, enter the API key or bearer token here.`), _tmpl$
|
|
7099
|
+
var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><button class="premium-btn premium-btn-upgrade">Try Premium free for 7 days — $5.99/mo after</button><span class=welcome-banner-note>Best for screenshots, saved sessions, credential vault, and longer autonomous runs.`), _tmpl$2$2 = /* @__PURE__ */ template(`<div class=welcome-banner><div class=welcome-banner-header><span class=welcome-banner-title>Welcome to Vessel</span><button class=welcome-banner-dismiss>×</button></div><p class=welcome-banner-text>Get started in three steps:</p><ol class=welcome-banner-steps><li><strong>Configure a chat provider</strong> — scroll to Chat Assistant below and add an API key</li><li><strong>Connect your agent harness</strong> — point it at the MCP endpoint shown below</li><li><strong>Learn the shortcuts</strong> — press <kbd>?</kbd> anytime for a quick reference`), _tmpl$3$1 = /* @__PURE__ */ template(`<div class="settings-callout settings-premium-callout"><div class=settings-callout-title>Start Vessel Premium with a 7-day free trial</div><p class=settings-callout-copy>Unlock screenshots, saved sessions, workflow tracking, table extraction, the credential vault, and longer autonomous runs without leaving the app.</p><div class=settings-premium-callout-actions><button class="premium-btn premium-btn-upgrade">Start 7-day free trial — $5.99/mo after</button><button class="premium-btn premium-btn-activate">See activation steps`), _tmpl$4$1 = /* @__PURE__ */ template(`<input id=max-tool-iterations class=settings-input type=number min=10 max=1000 placeholder=200>`), _tmpl$5$1 = /* @__PURE__ */ template(`<div class=settings-field><label class=settings-label for=chat-provider>Provider</label><select id=chat-provider class="settings-input settings-select">`), _tmpl$6$1 = /* @__PURE__ */ template(`<span class=settings-label-optional> (optional)`), _tmpl$7 = /* @__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$8 = /* @__PURE__ */ template(`<p class=settings-hint>If your endpoint requires authentication, enter the API key or bearer token here.`), _tmpl$9 = /* @__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$0 = /* @__PURE__ */ template(`<select id=chat-model class="settings-input settings-select"style=flex:1>`), _tmpl$1 = /* @__PURE__ */ template(`<p class=settings-hint style=color:var(--error)>Could not fetch models — check your API key and connection.`), _tmpl$10 = /* @__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$11 = /* @__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$12 = /* @__PURE__ */ template(`<p class=settings-hint>Vessel auto-detects the active model from your configured \`llama-server\` base URL. For agent loops, run \`llama-server\` with \`--ctx-size 16384\` minimum and \`32768\` recommended.`), _tmpl$13 = /* @__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$14 = /* @__PURE__ */ template(`<span class=vault-premium-badge>Premium`), _tmpl$15 = /* @__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$16 = /* @__PURE__ */ template(`<div class=vault-entries>`), _tmpl$17 = /* @__PURE__ */ template(`<button class=vault-add-btn>+ Add Credential`), _tmpl$18 = /* @__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$19 = /* @__PURE__ */ template(`<div class=command-bar-overlay><div class=settings-panel><h2 class=settings-title>Runtime Settings</h2><div class=settings-callout><div class=settings-callout-title>External Agent Control</div><p class=settings-callout-copy>Vessel is configured to run under an external harness such as Hermes Agent or OpenClaw. Provider and model selection are not configured inside Vessel.</p></div><div class=settings-field><label class=settings-label for=default-homepage>Homepage</label><input id=default-homepage class=settings-input placeholder=https://start.duckduckgo.com><p class=settings-hint>The page that opens when you create a new tab or launch Vessel without restoring a previous session.</p></div><div class=settings-field><label class=settings-label for=mcp-port>MCP Port</label><input id=mcp-port class=settings-input placeholder=3100><p class=settings-hint>External harnesses connect to Vessel at <code>http://127.0.0.1:<port>/mcp</code>. Changing this value restarts the MCP server immediately.</p></div><div class=settings-field><label class=settings-label for=max-tool-iterations>Max Tool Iterations</label><p class=settings-hint></p></div><div class=settings-field><label class=settings-label for=obsidian-vault-path>Obsidian Vault Path</label><input id=obsidian-vault-path class=settings-input placeholder=/home/you/Documents/MyVault><p class=settings-hint>Optional. When set, Vessel memory tools can write markdown notes into this vault for research breadcrumbs and summaries.</p></div><div class=settings-field><label class=settings-label for=agent-transcript-mode>Agent Transcript Monitor</label><select id=agent-transcript-mode class="settings-input settings-select"><option value=off>Off</option><option value=summary>Summary HUD</option><option value=full>Full transcript</option></select><p class=settings-hint>Controls the in-browser transcript monitor when an external harness publishes reasoning or status updates into Vessel via the<code>vessel_publish_transcript</code> MCP tool. Summary HUD shows a compact 2-line status surface; Full transcript shows the recent entry list.</p></div><div class=settings-field><label class=settings-toggle><button type=button class=toggle-switch role=switch><span class=toggle-switch-thumb></span></button><span>Restore last browser session on launch</span></label></div><div class=settings-field><label class=settings-toggle><button type=button class=toggle-switch role=switch><span class=toggle-switch-thumb></span></button><span>Start bookmarks fresh on launch</span></label><p class=settings-hint>Off by default. When enabled, bookmark folders and saved pages are cleared each time Vessel starts.</p></div><div class=settings-section-divider></div><div class=settings-field><label class=settings-toggle><button type=button class=toggle-switch role=switch><span class=toggle-switch-thumb></span></button><span>Enable Chat Assistant</span></label><p class=settings-hint>Adds a Chat tab to the sidebar for conversing with an AI provider of your choice.</p></div><div class=settings-section-divider></div><div class=settings-field><label class=settings-label>Vessel Premium</label></div><div class=settings-section-divider></div><div class=settings-field><label class=settings-label>Agent Credential Vault</label></div><div class=settings-section-divider></div><div class=settings-field><label class=settings-toggle><button type=button class=toggle-switch role=switch><span class=toggle-switch-thumb></span></button><span>Anonymous Usage Analytics</span></label><p class=settings-hint>Help improve Vessel by sending anonymous usage data (tool popularity, session duration, provider type). No URLs, page content, queries, or personal data is ever collected.</p></div><div class=settings-actions><button class=settings-save>Save</button><button class=settings-close>Close`), _tmpl$20 = /* @__PURE__ */ template(`<style>
|
|
7099
7100
|
.settings-panel {
|
|
7100
7101
|
width: min(440px, calc(100vw - 32px));
|
|
7101
7102
|
max-height: calc(100vh - 48px);
|
|
@@ -7629,7 +7630,7 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><butt
|
|
|
7629
7630
|
justify-content: flex-end;
|
|
7630
7631
|
margin-top: 4px;
|
|
7631
7632
|
}
|
|
7632
|
-
`), _tmpl$
|
|
7633
|
+
`), _tmpl$21 = /* @__PURE__ */ template(`<div class="settings-input settings-input-disabled"title="Upgrade to Vessel Premium for unlimited tool iterations">50`), _tmpl$22 = /* @__PURE__ */ template(`<div class=settings-health-issues>`), _tmpl$23 = /* @__PURE__ */ template(`<div class=settings-health><div class=settings-callout-title>Runtime Health</div><p class=settings-hint>MCP status: <strong></strong> `), _tmpl$24 = /* @__PURE__ */ template(`<p class=settings-hint>Active endpoint: <code>`), _tmpl$25 = /* @__PURE__ */ template(`<div class=settings-health-issue><strong></strong><div>`), _tmpl$26 = /* @__PURE__ */ template(`<div>`), _tmpl$27 = /* @__PURE__ */ template(`<option>`), _tmpl$28 = /* @__PURE__ */ template(`<input id=chat-model class=settings-input style=flex:1>`), _tmpl$29 = /* @__PURE__ */ template(`<p class=settings-hint style=color:var(--accent-primary)>`), _tmpl$30 = /* @__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$31 = /* @__PURE__ */ template(`<button class="premium-btn premium-btn-reset">Clear Saved Email`), _tmpl$32 = /* @__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">Subscribe to Premium — $5.99/mo after 7-day free trial`), _tmpl$33 = /* @__PURE__ */ template(`<p class=settings-status>`), _tmpl$34 = /* @__PURE__ */ template(`<p class=settings-hint>Securely store credentials for agent-driven logins. Upgrade to Premium to unlock the Agent Credential Vault.`), _tmpl$35 = /* @__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">×`);
|
|
7633
7634
|
const CHAT_PROVIDERS = [{
|
|
7634
7635
|
id: "anthropic",
|
|
7635
7636
|
name: "Anthropic",
|
|
@@ -7801,11 +7802,15 @@ const Settings = () => {
|
|
|
7801
7802
|
const [premiumState, setPremiumState] = createSignal({
|
|
7802
7803
|
status: "free",
|
|
7803
7804
|
customerId: "",
|
|
7805
|
+
verificationToken: "",
|
|
7804
7806
|
email: "",
|
|
7805
7807
|
validatedAt: "",
|
|
7806
7808
|
expiresAt: ""
|
|
7807
7809
|
});
|
|
7808
7810
|
const [premiumEmail, setPremiumEmail] = createSignal("");
|
|
7811
|
+
const [premiumCode, setPremiumCode] = createSignal("");
|
|
7812
|
+
const [premiumChallengeToken, setPremiumChallengeToken] = createSignal("");
|
|
7813
|
+
const [premiumCodeSent, setPremiumCodeSent] = createSignal(false);
|
|
7809
7814
|
const [premiumLoading, setPremiumLoading] = createSignal(false);
|
|
7810
7815
|
const [premiumMessage, setPremiumMessage] = createSignal(null);
|
|
7811
7816
|
let trackedSettingsPremiumBanner = false;
|
|
@@ -7818,9 +7823,15 @@ const Settings = () => {
|
|
|
7818
7823
|
const startPremiumCheckout = () => {
|
|
7819
7824
|
void window.vessel.premium.checkout(premiumEmail().trim() || void 0);
|
|
7820
7825
|
};
|
|
7826
|
+
const resetPremiumActivationFlow = () => {
|
|
7827
|
+
setPremiumCode("");
|
|
7828
|
+
setPremiumChallengeToken("");
|
|
7829
|
+
setPremiumCodeSent(false);
|
|
7830
|
+
};
|
|
7821
7831
|
const [chatEnabled, setChatEnabled] = createSignal(false);
|
|
7822
7832
|
const [chatProviderId, setChatProviderId] = createSignal("anthropic");
|
|
7823
7833
|
const [chatApiKey, setChatApiKey] = createSignal("");
|
|
7834
|
+
const [chatHasStoredApiKey, setChatHasStoredApiKey] = createSignal(false);
|
|
7824
7835
|
const [chatModel, setChatModel] = createSignal("");
|
|
7825
7836
|
const [chatBaseUrl, setChatBaseUrl] = createSignal("");
|
|
7826
7837
|
const chatProviderMeta = () => CHAT_PROVIDERS.find((p) => p.id === chatProviderId()) ?? CHAT_PROVIDERS[0];
|
|
@@ -7895,9 +7906,13 @@ const Settings = () => {
|
|
|
7895
7906
|
setChatEnabled(cp !== null);
|
|
7896
7907
|
if (cp) {
|
|
7897
7908
|
setChatProviderId(cp.id);
|
|
7898
|
-
setChatApiKey(
|
|
7909
|
+
setChatApiKey("");
|
|
7910
|
+
setChatHasStoredApiKey(cp.hasApiKey === true);
|
|
7899
7911
|
setChatModel(cp.model);
|
|
7900
7912
|
setChatBaseUrl(cp.baseUrl ?? "");
|
|
7913
|
+
} else {
|
|
7914
|
+
setChatApiKey("");
|
|
7915
|
+
setChatHasStoredApiKey(false);
|
|
7901
7916
|
}
|
|
7902
7917
|
setTelemetryEnabled(settings.telemetryEnabled !== false);
|
|
7903
7918
|
try {
|
|
@@ -7919,6 +7934,7 @@ const Settings = () => {
|
|
|
7919
7934
|
setPremiumEmail(nextState.email);
|
|
7920
7935
|
}
|
|
7921
7936
|
if (nextState.status === "active" || nextState.status === "trialing") {
|
|
7937
|
+
resetPremiumActivationFlow();
|
|
7922
7938
|
setPremiumMessage({
|
|
7923
7939
|
kind: "success",
|
|
7924
7940
|
text: nextState.status === "trialing" ? "Premium trial active. Enjoy the unlocked toolkit." : "Premium activated. Your premium tools are ready."
|
|
@@ -7963,6 +7979,7 @@ const Settings = () => {
|
|
|
7963
7979
|
const chatConfig = chatEnabled() ? {
|
|
7964
7980
|
id: chatProviderId(),
|
|
7965
7981
|
apiKey: chatApiKey().trim(),
|
|
7982
|
+
hasApiKey: chatHasStoredApiKey() && !chatApiKey().trim(),
|
|
7966
7983
|
model: chatModel().trim() || chatProviderMeta().defaultModel,
|
|
7967
7984
|
baseUrl: chatBaseUrl().trim() || void 0
|
|
7968
7985
|
} : null;
|
|
@@ -7988,11 +8005,11 @@ const Settings = () => {
|
|
|
7988
8005
|
},
|
|
7989
8006
|
get children() {
|
|
7990
8007
|
return [(() => {
|
|
7991
|
-
var _el$ = _tmpl$
|
|
7992
|
-
_el$
|
|
7993
|
-
var _el$
|
|
7994
|
-
_el$
|
|
7995
|
-
var _el$
|
|
8008
|
+
var _el$ = _tmpl$19(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$11 = _el$3.nextSibling, _el$18 = _el$11.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, _el$24 = _el$21.nextSibling, _el$25 = _el$24.firstChild, _el$27 = _el$25.nextSibling, _el$28 = _el$24.nextSibling, _el$29 = _el$28.firstChild, _el$30 = _el$29.nextSibling, _el$31 = _el$28.nextSibling, _el$32 = _el$31.firstChild, _el$33 = _el$32.nextSibling, _el$34 = _el$31.nextSibling, _el$35 = _el$34.firstChild, _el$36 = _el$35.firstChild, _el$37 = _el$34.nextSibling, _el$38 = _el$37.firstChild, _el$39 = _el$38.firstChild, _el$40 = _el$37.nextSibling, _el$41 = _el$40.nextSibling, _el$42 = _el$41.firstChild, _el$43 = _el$42.firstChild, _el$64 = _el$41.nextSibling, _el$65 = _el$64.nextSibling;
|
|
8009
|
+
_el$65.firstChild;
|
|
8010
|
+
var _el$74 = _el$65.nextSibling, _el$75 = _el$74.nextSibling, _el$76 = _el$75.firstChild;
|
|
8011
|
+
_el$76.firstChild;
|
|
8012
|
+
var _el$92 = _el$75.nextSibling, _el$93 = _el$92.nextSibling, _el$94 = _el$93.firstChild, _el$95 = _el$94.firstChild, _el$96 = _el$93.nextSibling, _el$97 = _el$96.firstChild, _el$98 = _el$97.nextSibling;
|
|
7996
8013
|
addEventListener(_el$, "click", closeSettings, true);
|
|
7997
8014
|
_el$2.$$keydown = handleKeyDown;
|
|
7998
8015
|
_el$2.$$click = (e) => e.stopPropagation();
|
|
@@ -8049,7 +8066,7 @@ const Settings = () => {
|
|
|
8049
8066
|
return premiumActive();
|
|
8050
8067
|
},
|
|
8051
8068
|
get fallback() {
|
|
8052
|
-
return _tmpl$
|
|
8069
|
+
return _tmpl$21();
|
|
8053
8070
|
},
|
|
8054
8071
|
get children() {
|
|
8055
8072
|
var _el$26 = _tmpl$4$1();
|
|
@@ -8070,55 +8087,55 @@ const Settings = () => {
|
|
|
8070
8087
|
return health();
|
|
8071
8088
|
},
|
|
8072
8089
|
children: (currentHealth) => (() => {
|
|
8073
|
-
var _el$
|
|
8074
|
-
_el$
|
|
8075
|
-
insert(_el$
|
|
8076
|
-
insert(_el$
|
|
8077
|
-
insert(_el$
|
|
8090
|
+
var _el$101 = _tmpl$23(), _el$102 = _el$101.firstChild, _el$103 = _el$102.nextSibling, _el$104 = _el$103.firstChild, _el$106 = _el$104.nextSibling;
|
|
8091
|
+
_el$106.nextSibling;
|
|
8092
|
+
insert(_el$106, () => currentHealth().mcp.status);
|
|
8093
|
+
insert(_el$103, () => currentHealth().mcp.message, null);
|
|
8094
|
+
insert(_el$101, createComponent(Show, {
|
|
8078
8095
|
get when() {
|
|
8079
8096
|
return currentHealth().mcp.endpoint;
|
|
8080
8097
|
},
|
|
8081
8098
|
children: (endpoint) => (() => {
|
|
8082
|
-
var _el$
|
|
8083
|
-
insert(_el$
|
|
8084
|
-
return _el$
|
|
8099
|
+
var _el$109 = _tmpl$24(), _el$110 = _el$109.firstChild, _el$111 = _el$110.nextSibling;
|
|
8100
|
+
insert(_el$111, endpoint);
|
|
8101
|
+
return _el$109;
|
|
8085
8102
|
})()
|
|
8086
8103
|
}), null);
|
|
8087
|
-
insert(_el$
|
|
8104
|
+
insert(_el$101, createComponent(Show, {
|
|
8088
8105
|
get when() {
|
|
8089
8106
|
return currentHealth().startupIssues.length > 0;
|
|
8090
8107
|
},
|
|
8091
8108
|
get children() {
|
|
8092
|
-
var _el$
|
|
8093
|
-
insert(_el$
|
|
8094
|
-
var _el$
|
|
8095
|
-
insert(_el$
|
|
8096
|
-
insert(_el$
|
|
8097
|
-
insert(_el$
|
|
8109
|
+
var _el$108 = _tmpl$22();
|
|
8110
|
+
insert(_el$108, () => currentHealth().startupIssues.map((issue) => (() => {
|
|
8111
|
+
var _el$112 = _tmpl$25(), _el$113 = _el$112.firstChild, _el$114 = _el$113.nextSibling;
|
|
8112
|
+
insert(_el$113, () => issue.title);
|
|
8113
|
+
insert(_el$114, () => issue.detail);
|
|
8114
|
+
insert(_el$112, createComponent(Show, {
|
|
8098
8115
|
get when() {
|
|
8099
8116
|
return issue.action;
|
|
8100
8117
|
},
|
|
8101
8118
|
children: (action) => (() => {
|
|
8102
|
-
var _el$
|
|
8103
|
-
insert(_el$
|
|
8104
|
-
return _el$
|
|
8119
|
+
var _el$115 = _tmpl$26();
|
|
8120
|
+
insert(_el$115, action);
|
|
8121
|
+
return _el$115;
|
|
8105
8122
|
})()
|
|
8106
8123
|
}), null);
|
|
8107
8124
|
createRenderEffect((_p$) => {
|
|
8108
8125
|
var _v$0 = !!(issue.severity === "warning"), _v$1 = !!(issue.severity === "error");
|
|
8109
|
-
_v$0 !== _p$.e && _el$
|
|
8110
|
-
_v$1 !== _p$.t && _el$
|
|
8126
|
+
_v$0 !== _p$.e && _el$112.classList.toggle("warning", _p$.e = _v$0);
|
|
8127
|
+
_v$1 !== _p$.t && _el$112.classList.toggle("error", _p$.t = _v$1);
|
|
8111
8128
|
return _p$;
|
|
8112
8129
|
}, {
|
|
8113
8130
|
e: void 0,
|
|
8114
8131
|
t: void 0
|
|
8115
8132
|
});
|
|
8116
|
-
return _el$
|
|
8133
|
+
return _el$112;
|
|
8117
8134
|
})()));
|
|
8118
|
-
return _el$
|
|
8135
|
+
return _el$108;
|
|
8119
8136
|
}
|
|
8120
8137
|
}), null);
|
|
8121
|
-
return _el$
|
|
8138
|
+
return _el$101;
|
|
8122
8139
|
})()
|
|
8123
8140
|
}), _el$28);
|
|
8124
8141
|
_el$30.$$input = (e) => setObsidianVaultPath(e.currentTarget.value);
|
|
@@ -8140,16 +8157,17 @@ const Settings = () => {
|
|
|
8140
8157
|
setChatModel("");
|
|
8141
8158
|
setChatBaseUrl("");
|
|
8142
8159
|
setChatApiKey("");
|
|
8160
|
+
setChatHasStoredApiKey(false);
|
|
8143
8161
|
setProviderModels([]);
|
|
8144
8162
|
setModelFetchState("idle");
|
|
8145
8163
|
});
|
|
8146
8164
|
insert(_el$46, createComponent(For, {
|
|
8147
8165
|
each: CHAT_PROVIDERS,
|
|
8148
8166
|
children: (p) => (() => {
|
|
8149
|
-
var _el$
|
|
8150
|
-
insert(_el$
|
|
8151
|
-
createRenderEffect(() => _el$
|
|
8152
|
-
return _el$
|
|
8167
|
+
var _el$116 = _tmpl$27();
|
|
8168
|
+
insert(_el$116, () => p.name);
|
|
8169
|
+
createRenderEffect(() => _el$116.value = p.id);
|
|
8170
|
+
return _el$116;
|
|
8153
8171
|
})()
|
|
8154
8172
|
}));
|
|
8155
8173
|
createRenderEffect(() => _el$46.value = chatProviderId());
|
|
@@ -8159,7 +8177,7 @@ const Settings = () => {
|
|
|
8159
8177
|
return chatProviderMeta().requiresKey || chatProviderId() === "custom";
|
|
8160
8178
|
},
|
|
8161
8179
|
get children() {
|
|
8162
|
-
var _el$47 = _tmpl$
|
|
8180
|
+
var _el$47 = _tmpl$9(), _el$48 = _el$47.firstChild;
|
|
8163
8181
|
_el$48.firstChild;
|
|
8164
8182
|
var _el$51 = _el$48.nextSibling;
|
|
8165
8183
|
insert(_el$48, createComponent(Show, {
|
|
@@ -8170,180 +8188,252 @@ const Settings = () => {
|
|
|
8170
8188
|
return _tmpl$6$1();
|
|
8171
8189
|
}
|
|
8172
8190
|
}), null);
|
|
8173
|
-
_el$51.$$input = (e) =>
|
|
8191
|
+
_el$51.$$input = (e) => {
|
|
8192
|
+
setChatApiKey(e.currentTarget.value);
|
|
8193
|
+
if (e.currentTarget.value.trim()) {
|
|
8194
|
+
setChatHasStoredApiKey(true);
|
|
8195
|
+
}
|
|
8196
|
+
};
|
|
8174
8197
|
setAttribute(_el$51, "spellcheck", false);
|
|
8175
8198
|
insert(_el$47, createComponent(Show, {
|
|
8176
8199
|
get when() {
|
|
8177
|
-
return
|
|
8200
|
+
return memo(() => !!chatHasStoredApiKey())() && !chatApiKey().trim();
|
|
8178
8201
|
},
|
|
8179
8202
|
get children() {
|
|
8180
8203
|
return _tmpl$7();
|
|
8181
8204
|
}
|
|
8182
8205
|
}), null);
|
|
8183
|
-
|
|
8206
|
+
insert(_el$47, createComponent(Show, {
|
|
8207
|
+
get when() {
|
|
8208
|
+
return chatProviderId() === "custom";
|
|
8209
|
+
},
|
|
8210
|
+
get children() {
|
|
8211
|
+
return _tmpl$8();
|
|
8212
|
+
}
|
|
8213
|
+
}), null);
|
|
8214
|
+
createRenderEffect(() => setAttribute(_el$51, "placeholder", chatHasStoredApiKey() && !chatApiKey().trim() ? "Stored securely. Enter a new key to replace it." : chatProviderMeta().keyPlaceholder || "Bearer token or API key"));
|
|
8184
8215
|
createRenderEffect(() => _el$51.value = chatApiKey());
|
|
8185
8216
|
return _el$47;
|
|
8186
8217
|
}
|
|
8187
8218
|
}), (() => {
|
|
8188
|
-
var _el$
|
|
8189
|
-
insert(_el$
|
|
8219
|
+
var _el$54 = _tmpl$10(), _el$55 = _el$54.firstChild, _el$56 = _el$55.nextSibling, _el$58 = _el$56.firstChild;
|
|
8220
|
+
insert(_el$56, createComponent(Show, {
|
|
8190
8221
|
get when() {
|
|
8191
8222
|
return providerModels().length > 0;
|
|
8192
8223
|
},
|
|
8193
8224
|
get fallback() {
|
|
8194
8225
|
return (() => {
|
|
8195
|
-
var _el$
|
|
8196
|
-
_el$
|
|
8197
|
-
setAttribute(_el$
|
|
8198
|
-
createRenderEffect(() => setAttribute(_el$
|
|
8199
|
-
createRenderEffect(() => _el$
|
|
8200
|
-
return _el$
|
|
8226
|
+
var _el$117 = _tmpl$28();
|
|
8227
|
+
_el$117.$$input = (e) => setChatModel(e.currentTarget.value);
|
|
8228
|
+
setAttribute(_el$117, "spellcheck", false);
|
|
8229
|
+
createRenderEffect(() => setAttribute(_el$117, "placeholder", modelFetchState() === "loading" ? "Fetching models…" : chatProviderMeta().requiresKey && !chatApiKey().trim() && !chatHasStoredApiKey() ? "Enter API key to load models" : chatProviderMeta().defaultModel || "model name"));
|
|
8230
|
+
createRenderEffect(() => _el$117.value = chatModel());
|
|
8231
|
+
return _el$117;
|
|
8201
8232
|
})();
|
|
8202
8233
|
},
|
|
8203
8234
|
get children() {
|
|
8204
|
-
var _el$
|
|
8205
|
-
_el$
|
|
8206
|
-
insert(_el$
|
|
8235
|
+
var _el$57 = _tmpl$0();
|
|
8236
|
+
_el$57.addEventListener("change", (e) => setChatModel(e.currentTarget.value));
|
|
8237
|
+
insert(_el$57, createComponent(For, {
|
|
8207
8238
|
get each() {
|
|
8208
8239
|
return providerModels();
|
|
8209
8240
|
},
|
|
8210
8241
|
children: (m) => (() => {
|
|
8211
|
-
var _el$
|
|
8212
|
-
_el$
|
|
8213
|
-
insert(_el$
|
|
8214
|
-
return _el$
|
|
8242
|
+
var _el$118 = _tmpl$27();
|
|
8243
|
+
_el$118.value = m;
|
|
8244
|
+
insert(_el$118, m);
|
|
8245
|
+
return _el$118;
|
|
8215
8246
|
})()
|
|
8216
8247
|
}));
|
|
8217
|
-
createRenderEffect(() => _el$
|
|
8218
|
-
return _el$
|
|
8248
|
+
createRenderEffect(() => _el$57.value = chatModel());
|
|
8249
|
+
return _el$57;
|
|
8219
8250
|
}
|
|
8220
|
-
}), _el$
|
|
8221
|
-
_el$
|
|
8222
|
-
insert(_el$
|
|
8251
|
+
}), _el$58);
|
|
8252
|
+
_el$58.$$click = doFetchModels;
|
|
8253
|
+
insert(_el$54, createComponent(Show, {
|
|
8223
8254
|
get when() {
|
|
8224
8255
|
return modelFetchState() === "error";
|
|
8225
8256
|
},
|
|
8226
8257
|
get children() {
|
|
8227
|
-
return _tmpl$
|
|
8258
|
+
return _tmpl$1();
|
|
8228
8259
|
}
|
|
8229
8260
|
}), null);
|
|
8230
|
-
insert(_el$
|
|
8261
|
+
insert(_el$54, createComponent(Show, {
|
|
8231
8262
|
get when() {
|
|
8232
8263
|
return modelFetchWarning();
|
|
8233
8264
|
},
|
|
8234
8265
|
children: (warning) => (() => {
|
|
8235
|
-
var _el$
|
|
8236
|
-
insert(_el$
|
|
8237
|
-
return _el$
|
|
8266
|
+
var _el$119 = _tmpl$29();
|
|
8267
|
+
insert(_el$119, warning);
|
|
8268
|
+
return _el$119;
|
|
8238
8269
|
})()
|
|
8239
8270
|
}), null);
|
|
8240
|
-
createRenderEffect(() => _el$
|
|
8241
|
-
return _el$
|
|
8271
|
+
createRenderEffect(() => _el$58.disabled = modelFetchState() === "loading");
|
|
8272
|
+
return _el$54;
|
|
8242
8273
|
})(), createComponent(Show, {
|
|
8243
8274
|
get when() {
|
|
8244
8275
|
return chatProviderMeta().needsBaseUrl || chatProviderId() === "custom";
|
|
8245
8276
|
},
|
|
8246
8277
|
get children() {
|
|
8247
|
-
var _el$
|
|
8248
|
-
_el$
|
|
8249
|
-
setAttribute(_el$
|
|
8250
|
-
createRenderEffect(() => setAttribute(_el$
|
|
8251
|
-
createRenderEffect(() => _el$
|
|
8252
|
-
return _el$
|
|
8278
|
+
var _el$60 = _tmpl$11(), _el$61 = _el$60.firstChild, _el$62 = _el$61.nextSibling;
|
|
8279
|
+
_el$62.$$input = (e) => setChatBaseUrl(e.currentTarget.value);
|
|
8280
|
+
setAttribute(_el$62, "spellcheck", false);
|
|
8281
|
+
createRenderEffect(() => setAttribute(_el$62, "placeholder", chatProviderMeta().defaultBaseUrl ?? "https://..."));
|
|
8282
|
+
createRenderEffect(() => _el$62.value = chatBaseUrl());
|
|
8283
|
+
return _el$60;
|
|
8253
8284
|
}
|
|
8254
8285
|
}), createComponent(Show, {
|
|
8255
8286
|
get when() {
|
|
8256
8287
|
return chatProviderId() === "llama_cpp";
|
|
8257
8288
|
},
|
|
8258
8289
|
get children() {
|
|
8259
|
-
return _tmpl$
|
|
8290
|
+
return _tmpl$12();
|
|
8260
8291
|
}
|
|
8261
8292
|
})];
|
|
8262
8293
|
}
|
|
8263
|
-
}), _el$
|
|
8264
|
-
insert(_el$
|
|
8294
|
+
}), _el$64);
|
|
8295
|
+
insert(_el$65, createComponent(Show, {
|
|
8265
8296
|
get when() {
|
|
8266
8297
|
return premiumActive();
|
|
8267
8298
|
},
|
|
8268
8299
|
get fallback() {
|
|
8269
8300
|
return (() => {
|
|
8270
|
-
var _el$
|
|
8271
|
-
_el$
|
|
8272
|
-
|
|
8273
|
-
|
|
8301
|
+
var _el$120 = _tmpl$32(), _el$121 = _el$120.firstChild, _el$122 = _el$121.nextSibling, _el$123 = _el$122.firstChild, _el$124 = _el$123.nextSibling, _el$128 = _el$122.nextSibling;
|
|
8302
|
+
_el$123.$$input = (e) => {
|
|
8303
|
+
const nextEmail = e.currentTarget.value;
|
|
8304
|
+
if (nextEmail.trim().toLowerCase() !== premiumEmail().trim().toLowerCase()) {
|
|
8305
|
+
resetPremiumActivationFlow();
|
|
8306
|
+
setPremiumMessage(null);
|
|
8307
|
+
}
|
|
8308
|
+
setPremiumEmail(nextEmail);
|
|
8309
|
+
};
|
|
8310
|
+
setAttribute(_el$123, "spellcheck", false);
|
|
8311
|
+
_el$124.$$click = async () => {
|
|
8274
8312
|
setPremiumLoading(true);
|
|
8275
8313
|
setPremiumMessage(null);
|
|
8276
8314
|
try {
|
|
8277
|
-
const result = await window.vessel.premium.
|
|
8278
|
-
setPremiumState(result.state);
|
|
8315
|
+
const result = await window.vessel.premium.requestCode(premiumEmail().trim());
|
|
8279
8316
|
if (result.ok) {
|
|
8317
|
+
setPremiumChallengeToken(result.challengeToken ?? "");
|
|
8318
|
+
setPremiumCodeSent(true);
|
|
8280
8319
|
setPremiumMessage({
|
|
8281
8320
|
kind: "success",
|
|
8282
|
-
text: "
|
|
8321
|
+
text: "If a matching premium subscription exists, we sent a 6-digit code to that email."
|
|
8283
8322
|
});
|
|
8284
8323
|
} else {
|
|
8324
|
+
resetPremiumActivationFlow();
|
|
8285
8325
|
setPremiumMessage({
|
|
8286
8326
|
kind: "error",
|
|
8287
|
-
text: result.error || "
|
|
8327
|
+
text: result.error || "Could not send code"
|
|
8288
8328
|
});
|
|
8289
8329
|
}
|
|
8290
8330
|
} catch (err) {
|
|
8331
|
+
resetPremiumActivationFlow();
|
|
8291
8332
|
setPremiumMessage({
|
|
8292
8333
|
kind: "error",
|
|
8293
|
-
text: err instanceof Error ? err.message : "
|
|
8334
|
+
text: err instanceof Error ? err.message : "Could not send code"
|
|
8294
8335
|
});
|
|
8295
8336
|
} finally {
|
|
8296
8337
|
setPremiumLoading(false);
|
|
8297
8338
|
}
|
|
8298
8339
|
};
|
|
8299
|
-
insert(_el$
|
|
8300
|
-
|
|
8340
|
+
insert(_el$124, (() => {
|
|
8341
|
+
var _c$ = memo(() => !!premiumLoading());
|
|
8342
|
+
return () => _c$() ? "Sending..." : premiumCodeSent() ? "Resend Code" : "Send Code";
|
|
8343
|
+
})());
|
|
8344
|
+
insert(_el$120, createComponent(Show, {
|
|
8345
|
+
get when() {
|
|
8346
|
+
return premiumCodeSent();
|
|
8347
|
+
},
|
|
8348
|
+
get children() {
|
|
8349
|
+
var _el$125 = _tmpl$30(), _el$126 = _el$125.firstChild, _el$127 = _el$126.nextSibling;
|
|
8350
|
+
_el$126.$$input = (e) => {
|
|
8351
|
+
const nextCode = e.currentTarget.value.replace(/\D+/g, "").slice(0, 6);
|
|
8352
|
+
setPremiumCode(nextCode);
|
|
8353
|
+
setPremiumMessage(null);
|
|
8354
|
+
};
|
|
8355
|
+
setAttribute(_el$126, "spellcheck", false);
|
|
8356
|
+
_el$127.$$click = async () => {
|
|
8357
|
+
setPremiumLoading(true);
|
|
8358
|
+
setPremiumMessage(null);
|
|
8359
|
+
try {
|
|
8360
|
+
const result = await window.vessel.premium.verifyCode(premiumEmail().trim(), premiumCode().trim(), premiumChallengeToken());
|
|
8361
|
+
setPremiumState(result.state);
|
|
8362
|
+
if (result.ok) {
|
|
8363
|
+
resetPremiumActivationFlow();
|
|
8364
|
+
setPremiumMessage({
|
|
8365
|
+
kind: "success",
|
|
8366
|
+
text: "Premium activated!"
|
|
8367
|
+
});
|
|
8368
|
+
} else {
|
|
8369
|
+
setPremiumMessage({
|
|
8370
|
+
kind: "error",
|
|
8371
|
+
text: result.error || "Verification failed"
|
|
8372
|
+
});
|
|
8373
|
+
}
|
|
8374
|
+
} catch (err) {
|
|
8375
|
+
setPremiumMessage({
|
|
8376
|
+
kind: "error",
|
|
8377
|
+
text: err instanceof Error ? err.message : "Verification failed"
|
|
8378
|
+
});
|
|
8379
|
+
} finally {
|
|
8380
|
+
setPremiumLoading(false);
|
|
8381
|
+
}
|
|
8382
|
+
};
|
|
8383
|
+
insert(_el$127, () => premiumLoading() ? "Verifying..." : "Verify Code");
|
|
8384
|
+
createRenderEffect(() => _el$127.disabled = premiumLoading() || !premiumEmail().trim() || premiumCode().trim().length !== 6 || !premiumChallengeToken());
|
|
8385
|
+
createRenderEffect(() => _el$126.value = premiumCode());
|
|
8386
|
+
return _el$125;
|
|
8387
|
+
}
|
|
8388
|
+
}), _el$128);
|
|
8389
|
+
_el$128.$$click = () => {
|
|
8301
8390
|
startPremiumCheckout();
|
|
8302
8391
|
};
|
|
8303
|
-
insert(_el$
|
|
8392
|
+
insert(_el$120, createComponent(Show, {
|
|
8304
8393
|
get when() {
|
|
8305
8394
|
return premiumMessage();
|
|
8306
8395
|
},
|
|
8307
8396
|
children: (msg) => (() => {
|
|
8308
|
-
var _el$
|
|
8309
|
-
insert(_el$
|
|
8397
|
+
var _el$130 = _tmpl$33();
|
|
8398
|
+
insert(_el$130, () => msg().text);
|
|
8310
8399
|
createRenderEffect((_p$) => {
|
|
8311
8400
|
var _v$10 = !!(msg().kind === "success"), _v$11 = !!(msg().kind === "error");
|
|
8312
|
-
_v$10 !== _p$.e && _el$
|
|
8313
|
-
_v$11 !== _p$.t && _el$
|
|
8401
|
+
_v$10 !== _p$.e && _el$130.classList.toggle("success", _p$.e = _v$10);
|
|
8402
|
+
_v$11 !== _p$.t && _el$130.classList.toggle("error", _p$.t = _v$11);
|
|
8314
8403
|
return _p$;
|
|
8315
8404
|
}, {
|
|
8316
8405
|
e: void 0,
|
|
8317
8406
|
t: void 0
|
|
8318
8407
|
});
|
|
8319
|
-
return _el$
|
|
8408
|
+
return _el$130;
|
|
8320
8409
|
})()
|
|
8321
8410
|
}), null);
|
|
8322
|
-
insert(_el$
|
|
8411
|
+
insert(_el$120, createComponent(Show, {
|
|
8323
8412
|
get when() {
|
|
8324
8413
|
return premiumState().email || premiumEmail();
|
|
8325
8414
|
},
|
|
8326
8415
|
get children() {
|
|
8327
|
-
var _el$
|
|
8328
|
-
_el$
|
|
8416
|
+
var _el$129 = _tmpl$31();
|
|
8417
|
+
_el$129.$$click = async () => {
|
|
8329
8418
|
const state = await window.vessel.premium.reset();
|
|
8330
8419
|
setPremiumState(state);
|
|
8331
8420
|
setPremiumEmail("");
|
|
8421
|
+
resetPremiumActivationFlow();
|
|
8332
8422
|
setPremiumMessage(null);
|
|
8333
8423
|
};
|
|
8334
|
-
return _el$
|
|
8424
|
+
return _el$129;
|
|
8335
8425
|
}
|
|
8336
8426
|
}), null);
|
|
8337
|
-
createRenderEffect(() => _el$
|
|
8338
|
-
createRenderEffect(() => _el$
|
|
8339
|
-
return _el$
|
|
8427
|
+
createRenderEffect(() => _el$124.disabled = premiumLoading() || !premiumEmail().trim());
|
|
8428
|
+
createRenderEffect(() => _el$123.value = premiumEmail());
|
|
8429
|
+
return _el$120;
|
|
8340
8430
|
})();
|
|
8341
8431
|
},
|
|
8342
8432
|
get children() {
|
|
8343
|
-
var _el$
|
|
8344
|
-
_el$
|
|
8345
|
-
var _el$
|
|
8346
|
-
insert(_el$
|
|
8433
|
+
var _el$67 = _tmpl$13(), _el$68 = _el$67.firstChild;
|
|
8434
|
+
_el$68.firstChild;
|
|
8435
|
+
var _el$70 = _el$68.nextSibling, _el$71 = _el$70.nextSibling, _el$72 = _el$71.firstChild, _el$73 = _el$72.nextSibling;
|
|
8436
|
+
insert(_el$68, createComponent(Show, {
|
|
8347
8437
|
get when() {
|
|
8348
8438
|
return premiumState().status === "trialing";
|
|
8349
8439
|
},
|
|
@@ -8351,8 +8441,8 @@ const Settings = () => {
|
|
|
8351
8441
|
return [" ", "(Trial)"];
|
|
8352
8442
|
}
|
|
8353
8443
|
}), null);
|
|
8354
|
-
insert(_el$
|
|
8355
|
-
insert(_el$
|
|
8444
|
+
insert(_el$70, () => premiumState().email, null);
|
|
8445
|
+
insert(_el$70, createComponent(Show, {
|
|
8356
8446
|
get when() {
|
|
8357
8447
|
return premiumState().expiresAt;
|
|
8358
8448
|
},
|
|
@@ -8360,50 +8450,51 @@ const Settings = () => {
|
|
|
8360
8450
|
return [" ", "· Renews", " ", memo(() => new Date(premiumState().expiresAt).toLocaleDateString())];
|
|
8361
8451
|
}
|
|
8362
8452
|
}), null);
|
|
8363
|
-
_el$
|
|
8453
|
+
_el$72.$$click = () => {
|
|
8364
8454
|
void window.vessel.premium.portal();
|
|
8365
8455
|
};
|
|
8366
|
-
_el$
|
|
8456
|
+
_el$73.$$click = async () => {
|
|
8367
8457
|
const state = await window.vessel.premium.reset();
|
|
8368
8458
|
setPremiumState(state);
|
|
8369
8459
|
setPremiumEmail("");
|
|
8460
|
+
resetPremiumActivationFlow();
|
|
8370
8461
|
setPremiumMessage(null);
|
|
8371
8462
|
};
|
|
8372
|
-
return _el$
|
|
8463
|
+
return _el$67;
|
|
8373
8464
|
}
|
|
8374
8465
|
}), null);
|
|
8375
|
-
insert(_el$
|
|
8466
|
+
insert(_el$76, createComponent(Show, {
|
|
8376
8467
|
get when() {
|
|
8377
8468
|
return !premiumActive();
|
|
8378
8469
|
},
|
|
8379
8470
|
get children() {
|
|
8380
|
-
return _tmpl$
|
|
8471
|
+
return _tmpl$14();
|
|
8381
8472
|
}
|
|
8382
8473
|
}), null);
|
|
8383
|
-
insert(_el$
|
|
8474
|
+
insert(_el$75, createComponent(Show, {
|
|
8384
8475
|
get when() {
|
|
8385
8476
|
return premiumActive();
|
|
8386
8477
|
},
|
|
8387
8478
|
get fallback() {
|
|
8388
|
-
return _tmpl$
|
|
8479
|
+
return _tmpl$34();
|
|
8389
8480
|
},
|
|
8390
8481
|
get children() {
|
|
8391
|
-
return [_tmpl$
|
|
8482
|
+
return [_tmpl$15(), createComponent(Show, {
|
|
8392
8483
|
get when() {
|
|
8393
8484
|
return vaultEntries().length > 0;
|
|
8394
8485
|
},
|
|
8395
8486
|
get children() {
|
|
8396
|
-
var _el$
|
|
8397
|
-
insert(_el$
|
|
8487
|
+
var _el$80 = _tmpl$16();
|
|
8488
|
+
insert(_el$80, createComponent(For, {
|
|
8398
8489
|
get each() {
|
|
8399
8490
|
return vaultEntries();
|
|
8400
8491
|
},
|
|
8401
8492
|
children: (entry) => (() => {
|
|
8402
|
-
var _el$
|
|
8403
|
-
insert(_el$
|
|
8404
|
-
insert(_el$
|
|
8405
|
-
insert(_el$
|
|
8406
|
-
insert(_el$
|
|
8493
|
+
var _el$132 = _tmpl$35(), _el$133 = _el$132.firstChild, _el$134 = _el$133.firstChild, _el$135 = _el$134.nextSibling, _el$136 = _el$135.firstChild, _el$137 = _el$133.nextSibling;
|
|
8494
|
+
insert(_el$134, () => entry.label);
|
|
8495
|
+
insert(_el$135, () => entry.username, _el$136);
|
|
8496
|
+
insert(_el$135, () => entry.domainPattern, null);
|
|
8497
|
+
insert(_el$135, createComponent(Show, {
|
|
8407
8498
|
get when() {
|
|
8408
8499
|
return entry.useCount > 0;
|
|
8409
8500
|
},
|
|
@@ -8411,43 +8502,43 @@ const Settings = () => {
|
|
|
8411
8502
|
return [" ", "· Used ", memo(() => entry.useCount), "x"];
|
|
8412
8503
|
}
|
|
8413
8504
|
}), null);
|
|
8414
|
-
_el$
|
|
8415
|
-
return _el$
|
|
8505
|
+
_el$137.$$click = () => handleVaultRemove(entry.id);
|
|
8506
|
+
return _el$132;
|
|
8416
8507
|
})()
|
|
8417
8508
|
}));
|
|
8418
|
-
return _el$
|
|
8509
|
+
return _el$80;
|
|
8419
8510
|
}
|
|
8420
8511
|
}), createComponent(Show, {
|
|
8421
8512
|
get when() {
|
|
8422
8513
|
return !vaultAdding();
|
|
8423
8514
|
},
|
|
8424
8515
|
get children() {
|
|
8425
|
-
var _el$
|
|
8426
|
-
_el$
|
|
8516
|
+
var _el$81 = _tmpl$17();
|
|
8517
|
+
_el$81.$$click = () => {
|
|
8427
8518
|
setVaultAdding(true);
|
|
8428
8519
|
setVaultMessage(null);
|
|
8429
8520
|
};
|
|
8430
|
-
return _el$
|
|
8521
|
+
return _el$81;
|
|
8431
8522
|
}
|
|
8432
8523
|
}), createComponent(Show, {
|
|
8433
8524
|
get when() {
|
|
8434
8525
|
return vaultAdding();
|
|
8435
8526
|
},
|
|
8436
8527
|
get children() {
|
|
8437
|
-
var _el$
|
|
8438
|
-
_el$
|
|
8439
|
-
setAttribute(_el$82, "spellcheck", false);
|
|
8440
|
-
_el$83.$$input = (e) => setVaultNewDomain(e.currentTarget.value);
|
|
8528
|
+
var _el$82 = _tmpl$18(), _el$83 = _el$82.firstChild, _el$84 = _el$83.nextSibling, _el$85 = _el$84.nextSibling, _el$86 = _el$85.nextSibling, _el$87 = _el$86.nextSibling, _el$88 = _el$87.nextSibling, _el$89 = _el$88.nextSibling, _el$90 = _el$89.firstChild, _el$91 = _el$90.nextSibling;
|
|
8529
|
+
_el$83.$$input = (e) => setVaultNewLabel(e.currentTarget.value);
|
|
8441
8530
|
setAttribute(_el$83, "spellcheck", false);
|
|
8442
|
-
_el$84.$$input = (e) =>
|
|
8531
|
+
_el$84.$$input = (e) => setVaultNewDomain(e.currentTarget.value);
|
|
8443
8532
|
setAttribute(_el$84, "spellcheck", false);
|
|
8444
|
-
_el$85.$$input = (e) =>
|
|
8445
|
-
_el$
|
|
8446
|
-
|
|
8447
|
-
_el$87.$$input = (e) =>
|
|
8533
|
+
_el$85.$$input = (e) => setVaultNewUsername(e.currentTarget.value);
|
|
8534
|
+
setAttribute(_el$85, "spellcheck", false);
|
|
8535
|
+
_el$86.$$input = (e) => setVaultNewPassword(e.currentTarget.value);
|
|
8536
|
+
_el$87.$$input = (e) => setVaultNewTotp(e.currentTarget.value);
|
|
8448
8537
|
setAttribute(_el$87, "spellcheck", false);
|
|
8449
|
-
_el$
|
|
8450
|
-
_el$
|
|
8538
|
+
_el$88.$$input = (e) => setVaultNewNotes(e.currentTarget.value);
|
|
8539
|
+
setAttribute(_el$88, "spellcheck", false);
|
|
8540
|
+
_el$90.$$click = handleVaultAdd;
|
|
8541
|
+
_el$91.$$click = () => {
|
|
8451
8542
|
setVaultAdding(false);
|
|
8452
8543
|
setVaultNewLabel("");
|
|
8453
8544
|
setVaultNewDomain("");
|
|
@@ -8456,55 +8547,55 @@ const Settings = () => {
|
|
|
8456
8547
|
setVaultNewTotp("");
|
|
8457
8548
|
setVaultNewNotes("");
|
|
8458
8549
|
};
|
|
8459
|
-
createRenderEffect(() => _el$
|
|
8460
|
-
createRenderEffect(() => _el$
|
|
8461
|
-
createRenderEffect(() => _el$
|
|
8462
|
-
createRenderEffect(() => _el$
|
|
8463
|
-
createRenderEffect(() => _el$
|
|
8464
|
-
createRenderEffect(() => _el$
|
|
8465
|
-
return _el$
|
|
8550
|
+
createRenderEffect(() => _el$83.value = vaultNewLabel());
|
|
8551
|
+
createRenderEffect(() => _el$84.value = vaultNewDomain());
|
|
8552
|
+
createRenderEffect(() => _el$85.value = vaultNewUsername());
|
|
8553
|
+
createRenderEffect(() => _el$86.value = vaultNewPassword());
|
|
8554
|
+
createRenderEffect(() => _el$87.value = vaultNewTotp());
|
|
8555
|
+
createRenderEffect(() => _el$88.value = vaultNewNotes());
|
|
8556
|
+
return _el$82;
|
|
8466
8557
|
}
|
|
8467
8558
|
}), createComponent(Show, {
|
|
8468
8559
|
get when() {
|
|
8469
8560
|
return vaultMessage();
|
|
8470
8561
|
},
|
|
8471
8562
|
children: (msg) => (() => {
|
|
8472
|
-
var _el$
|
|
8473
|
-
insert(_el$
|
|
8563
|
+
var _el$138 = _tmpl$33();
|
|
8564
|
+
insert(_el$138, () => msg().text);
|
|
8474
8565
|
createRenderEffect((_p$) => {
|
|
8475
8566
|
var _v$12 = !!(msg().kind === "success"), _v$13 = !!(msg().kind === "error");
|
|
8476
|
-
_v$12 !== _p$.e && _el$
|
|
8477
|
-
_v$13 !== _p$.t && _el$
|
|
8567
|
+
_v$12 !== _p$.e && _el$138.classList.toggle("success", _p$.e = _v$12);
|
|
8568
|
+
_v$13 !== _p$.t && _el$138.classList.toggle("error", _p$.t = _v$13);
|
|
8478
8569
|
return _p$;
|
|
8479
8570
|
}, {
|
|
8480
8571
|
e: void 0,
|
|
8481
8572
|
t: void 0
|
|
8482
8573
|
});
|
|
8483
|
-
return _el$
|
|
8574
|
+
return _el$138;
|
|
8484
8575
|
})()
|
|
8485
8576
|
})];
|
|
8486
8577
|
}
|
|
8487
8578
|
}), null);
|
|
8488
|
-
_el$
|
|
8489
|
-
_el$
|
|
8490
|
-
addEventListener(_el$
|
|
8579
|
+
_el$95.$$click = () => setTelemetryEnabled(!telemetryEnabled());
|
|
8580
|
+
_el$97.$$click = handleSave;
|
|
8581
|
+
addEventListener(_el$98, "click", closeSettings, true);
|
|
8491
8582
|
insert(_el$2, createComponent(Show, {
|
|
8492
8583
|
get when() {
|
|
8493
8584
|
return status();
|
|
8494
8585
|
},
|
|
8495
8586
|
children: (currentStatus) => (() => {
|
|
8496
|
-
var _el$
|
|
8497
|
-
insert(_el$
|
|
8587
|
+
var _el$139 = _tmpl$33();
|
|
8588
|
+
insert(_el$139, () => currentStatus().text);
|
|
8498
8589
|
createRenderEffect((_p$) => {
|
|
8499
8590
|
var _v$14 = !!(currentStatus().kind === "success"), _v$15 = !!(currentStatus().kind === "error");
|
|
8500
|
-
_v$14 !== _p$.e && _el$
|
|
8501
|
-
_v$15 !== _p$.t && _el$
|
|
8591
|
+
_v$14 !== _p$.e && _el$139.classList.toggle("success", _p$.e = _v$14);
|
|
8592
|
+
_v$15 !== _p$.t && _el$139.classList.toggle("error", _p$.t = _v$15);
|
|
8502
8593
|
return _p$;
|
|
8503
8594
|
}, {
|
|
8504
8595
|
e: void 0,
|
|
8505
8596
|
t: void 0
|
|
8506
8597
|
});
|
|
8507
|
-
return _el$
|
|
8598
|
+
return _el$139;
|
|
8508
8599
|
})()
|
|
8509
8600
|
}), null);
|
|
8510
8601
|
createRenderEffect((_p$) => {
|
|
@@ -8516,8 +8607,8 @@ const Settings = () => {
|
|
|
8516
8607
|
_v$5 !== _p$.i && setAttribute(_el$39, "aria-checked", _p$.i = _v$5);
|
|
8517
8608
|
_v$6 !== _p$.n && _el$43.classList.toggle("on", _p$.n = _v$6);
|
|
8518
8609
|
_v$7 !== _p$.s && setAttribute(_el$43, "aria-checked", _p$.s = _v$7);
|
|
8519
|
-
_v$8 !== _p$.h && _el$
|
|
8520
|
-
_v$9 !== _p$.r && setAttribute(_el$
|
|
8610
|
+
_v$8 !== _p$.h && _el$95.classList.toggle("on", _p$.h = _v$8);
|
|
8611
|
+
_v$9 !== _p$.r && setAttribute(_el$95, "aria-checked", _p$.r = _v$9);
|
|
8521
8612
|
return _p$;
|
|
8522
8613
|
}, {
|
|
8523
8614
|
e: void 0,
|
|
@@ -8535,7 +8626,7 @@ const Settings = () => {
|
|
|
8535
8626
|
createRenderEffect(() => _el$30.value = obsidianVaultPath());
|
|
8536
8627
|
createRenderEffect(() => _el$33.value = agentTranscriptMode());
|
|
8537
8628
|
return _el$;
|
|
8538
|
-
})(), _tmpl$
|
|
8629
|
+
})(), _tmpl$20()];
|
|
8539
8630
|
}
|
|
8540
8631
|
});
|
|
8541
8632
|
};
|