@quanta-intellect/vessel-browser 0.1.35 → 0.1.44

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 &amp; 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$1 = /* @__PURE__ */ template(`<div class=kit-activity-card><div class=kit-activity-header><div class=kit-activity-title><span class="kit-card-icon kit-sched-icon"aria-hidden=true></span><div class=kit-activity-title-copy><div class=kit-sched-name></div><div class=kit-activity-time></div></div></div><span class=kit-activity-badge>`), _tmpl$33$1 = /* @__PURE__ */ template(`<div class="kit-activity-output kit-activity-placeholder">`), _tmpl$34$1 = /* @__PURE__ */ template(`<span class=kit-form-required aria-hidden=true>*`), _tmpl$35$1 = /* @__PURE__ */ template(`<textarea class=kit-form-textarea rows=3>`), _tmpl$36$1 = /* @__PURE__ */ template(`<p class=kit-form-hint>`), _tmpl$37$1 = /* @__PURE__ */ template(`<div class=kit-form-field><label class=kit-form-label>`), _tmpl$38$1 = /* @__PURE__ */ template(`<input class=kit-form-input>`), _tmpl$39$1 = /* @__PURE__ */ template(`<span class=kit-run-spinner aria-hidden=true>`), _tmpl$40$1 = /* @__PURE__ */ template(`<label class=kit-schedule-type-option><input type=radio name=sched-type>`), _tmpl$41$1 = /* @__PURE__ */ template(`<option>`), _tmpl$42$1 = /* @__PURE__ */ template(`<label class=kit-schedule-type-option><input type=radio name=edit-sched-type>`);
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 &amp; 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$1 = /* @__PURE__ */ template(`<span class=kit-form-required aria-hidden=true>*`), _tmpl$35$1 = /* @__PURE__ */ template(`<textarea class=kit-form-textarea rows=3>`), _tmpl$36$1 = /* @__PURE__ */ template(`<p class=kit-form-hint>`), _tmpl$37$1 = /* @__PURE__ */ template(`<div class=kit-form-field><label class=kit-form-label>`), _tmpl$38$1 = /* @__PURE__ */ template(`<input class=kit-form-input>`), _tmpl$39$1 = /* @__PURE__ */ template(`<span class=kit-run-spinner aria-hidden=true>`), _tmpl$40$1 = /* @__PURE__ */ template(`<label class=kit-schedule-type-option><input type=radio name=sched-type>`), _tmpl$41$1 = /* @__PURE__ */ template(`<option>`), _tmpl$42$1 = /* @__PURE__ */ template(`<label class=kit-schedule-type-option><input type=radio name=edit-sched-type>`);
4654
4654
  const ICON_MAP = {
4655
4655
  BookOpen: book_open_default,
4656
4656
  Tag: tag_default,
@@ -5162,7 +5162,7 @@ const AutomationTab = (props) => {
5162
5162
  return automationActivities2();
5163
5163
  },
5164
5164
  children: (activity) => (() => {
5165
- var _el$100 = _tmpl$32$1(), _el$101 = _el$100.firstChild, _el$102 = _el$101.firstChild, _el$103 = _el$102.firstChild, _el$104 = _el$103.nextSibling, _el$105 = _el$104.firstChild, _el$106 = _el$105.nextSibling, _el$107 = _el$102.nextSibling;
5165
+ var _el$100 = _tmpl$32$2(), _el$101 = _el$100.firstChild, _el$102 = _el$101.firstChild, _el$103 = _el$102.firstChild, _el$104 = _el$103.nextSibling, _el$105 = _el$104.firstChild, _el$106 = _el$105.nextSibling, _el$107 = _el$102.nextSibling;
5166
5166
  insert(_el$103, createComponent(KitIcon, {
5167
5167
  get name() {
5168
5168
  return activity.icon ?? "Zap";
@@ -5178,7 +5178,7 @@ const AutomationTab = (props) => {
5178
5178
  },
5179
5179
  get fallback() {
5180
5180
  return (() => {
5181
- var _el$109 = _tmpl$33$1();
5181
+ var _el$109 = _tmpl$33$2();
5182
5182
  insert(_el$109, () => activity.status === "running" ? "Waiting for output..." : "No output captured.");
5183
5183
  return _el$109;
5184
5184
  })();
@@ -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 = /* @__PURE__ */ template(`<div class=bookmark-folder-summary>`), _tmpl$33 = /* @__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 = /* @__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>×`);
5494
5494
  const UNSORTED_FOLDER = {
5495
5495
  id: "unsorted",
5496
5496
  name: "Unsorted",
@@ -6176,7 +6176,7 @@ ${contextBlock}` : contextBlock);
6176
6176
  return folder.summary;
6177
6177
  },
6178
6178
  get children() {
6179
- var _el$130 = _tmpl$32();
6179
+ var _el$130 = _tmpl$32$1();
6180
6180
  insert(_el$130, () => folder.summary);
6181
6181
  return _el$130;
6182
6182
  }
@@ -6186,7 +6186,7 @@ ${contextBlock}` : contextBlock);
6186
6186
  return folder.id !== UNSORTED_FOLDER.id;
6187
6187
  },
6188
6188
  get children() {
6189
- var _el$131 = _tmpl$33(), _el$132 = _el$131.firstChild, _el$133 = _el$132.nextSibling;
6189
+ var _el$131 = _tmpl$33$1(), _el$132 = _el$131.firstChild, _el$133 = _el$132.nextSibling;
6190
6190
  _el$132.$$click = (e) => {
6191
6191
  e.stopPropagation();
6192
6192
  setEditingFolderId(folder.id);
@@ -7095,7 +7095,7 @@ const DevToolsPanel = () => {
7095
7095
  })();
7096
7096
  };
7097
7097
  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>&times;</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$8 = /* @__PURE__ */ template(`<div class=settings-field><label class=settings-label for=chat-api-key>API Key</label><input id=chat-api-key class=settings-input type=password>`), _tmpl$9 = /* @__PURE__ */ template(`<select id=chat-model class="settings-input settings-select"style=flex:1>`), _tmpl$0 = /* @__PURE__ */ template(`<p class=settings-hint style=color:var(--error)>Could not fetch models — check your API key and connection.`), _tmpl$1 = /* @__PURE__ */ template(`<div class=settings-field><label class=settings-label for=chat-model>Model</label><div style=display:flex;gap:6px;align-items:center><button type=button class=settings-refresh-btn title="Refresh model list">↺`), _tmpl$10 = /* @__PURE__ */ template(`<div class=settings-field><label class=settings-label for=chat-base-url>Base URL</label><input id=chat-base-url class=settings-input>`), _tmpl$11 = /* @__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$12 = /* @__PURE__ */ template(`<span class=vault-premium-badge>Premium`), _tmpl$13 = /* @__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$14 = /* @__PURE__ */ template(`<div class=vault-entries>`), _tmpl$15 = /* @__PURE__ */ template(`<button class=vault-add-btn>+ Add Credential`), _tmpl$16 = /* @__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$17 = /* @__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:&lt;port&gt;/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$18 = /* @__PURE__ */ template(`<style>
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>&times;</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$8 = /* @__PURE__ */ template(`<div class=settings-field><label class=settings-label for=chat-api-key>API Key</label><input id=chat-api-key class=settings-input type=password>`), _tmpl$9 = /* @__PURE__ */ template(`<select id=chat-model class="settings-input settings-select"style=flex:1>`), _tmpl$0 = /* @__PURE__ */ template(`<p class=settings-hint style=color:var(--error)>Could not fetch models — check your API key and connection.`), _tmpl$1 = /* @__PURE__ */ template(`<div class=settings-field><label class=settings-label for=chat-model>Model</label><div style=display:flex;gap:6px;align-items:center><button type=button class=settings-refresh-btn title="Refresh model list">↺`), _tmpl$10 = /* @__PURE__ */ template(`<div class=settings-field><label class=settings-label for=chat-base-url>Base URL</label><input id=chat-base-url class=settings-input>`), _tmpl$11 = /* @__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$12 = /* @__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$13 = /* @__PURE__ */ template(`<span class=vault-premium-badge>Premium`), _tmpl$14 = /* @__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$15 = /* @__PURE__ */ template(`<div class=vault-entries>`), _tmpl$16 = /* @__PURE__ */ template(`<button class=vault-add-btn>+ Add Credential`), _tmpl$17 = /* @__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$18 = /* @__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:&lt;port&gt;/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$19 = /* @__PURE__ */ template(`<style>
7099
7099
  .settings-panel {
7100
7100
  width: min(440px, calc(100vw - 32px));
7101
7101
  max-height: calc(100vh - 48px);
@@ -7629,7 +7629,7 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><butt
7629
7629
  justify-content: flex-end;
7630
7630
  margin-top: 4px;
7631
7631
  }
7632
- `), _tmpl$19 = /* @__PURE__ */ template(`<div class="settings-input settings-input-disabled"title="Upgrade to Vessel Premium for unlimited tool iterations">50`), _tmpl$20 = /* @__PURE__ */ template(`<div class=settings-health-issues>`), _tmpl$21 = /* @__PURE__ */ template(`<div class=settings-health><div class=settings-callout-title>Runtime Health</div><p class=settings-hint>MCP status: <strong></strong> `), _tmpl$22 = /* @__PURE__ */ template(`<p class=settings-hint>Active endpoint: <code>`), _tmpl$23 = /* @__PURE__ */ template(`<div class=settings-health-issue><strong></strong><div>`), _tmpl$24 = /* @__PURE__ */ template(`<div>`), _tmpl$25 = /* @__PURE__ */ template(`<option>`), _tmpl$26 = /* @__PURE__ */ template(`<input id=chat-model class=settings-input style=flex:1>`), _tmpl$27 = /* @__PURE__ */ template(`<button class="premium-btn premium-btn-reset">Clear Saved Email`), _tmpl$28 = /* @__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$29 = /* @__PURE__ */ template(`<p class=settings-status>`), _tmpl$30 = /* @__PURE__ */ template(`<p class=settings-hint>Securely store credentials for agent-driven logins. Upgrade to Premium to unlock the Agent Credential Vault.`), _tmpl$31 = /* @__PURE__ */ template(`<div class=vault-entry><div class=vault-entry-info><span class=vault-entry-label></span><span class=vault-entry-detail> &middot; </span></div><button class=vault-entry-remove title="Remove credential">&times;`);
7632
+ `), _tmpl$20 = /* @__PURE__ */ template(`<div class="settings-input settings-input-disabled"title="Upgrade to Vessel Premium for unlimited tool iterations">50`), _tmpl$21 = /* @__PURE__ */ template(`<div class=settings-health-issues>`), _tmpl$22 = /* @__PURE__ */ template(`<div class=settings-health><div class=settings-callout-title>Runtime Health</div><p class=settings-hint>MCP status: <strong></strong> `), _tmpl$23 = /* @__PURE__ */ template(`<p class=settings-hint>Active endpoint: <code>`), _tmpl$24 = /* @__PURE__ */ template(`<div class=settings-health-issue><strong></strong><div>`), _tmpl$25 = /* @__PURE__ */ template(`<div>`), _tmpl$26 = /* @__PURE__ */ template(`<option>`), _tmpl$27 = /* @__PURE__ */ template(`<input id=chat-model class=settings-input style=flex:1>`), _tmpl$28 = /* @__PURE__ */ template(`<p class=settings-hint style=color:var(--accent-primary)>`), _tmpl$29 = /* @__PURE__ */ template(`<button class="premium-btn premium-btn-reset">Clear Saved Email`), _tmpl$30 = /* @__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$31 = /* @__PURE__ */ template(`<p class=settings-status>`), _tmpl$32 = /* @__PURE__ */ template(`<p class=settings-hint>Securely store credentials for agent-driven logins. Upgrade to Premium to unlock the Agent Credential Vault.`), _tmpl$33 = /* @__PURE__ */ template(`<div class=vault-entry><div class=vault-entry-info><span class=vault-entry-label></span><span class=vault-entry-detail> &middot; </span></div><button class=vault-entry-remove title="Remove credential">&times;`);
7633
7633
  const CHAT_PROVIDERS = [{
7634
7634
  id: "anthropic",
7635
7635
  name: "Anthropic",
@@ -7662,6 +7662,15 @@ const CHAT_PROVIDERS = [{
7662
7662
  keyPlaceholder: "",
7663
7663
  defaultModel: "",
7664
7664
  models: []
7665
+ }, {
7666
+ id: "llama_cpp",
7667
+ name: "llama.cpp (Local)",
7668
+ requiresKey: false,
7669
+ needsBaseUrl: true,
7670
+ defaultBaseUrl: "http://localhost:8080/v1",
7671
+ keyPlaceholder: "",
7672
+ defaultModel: "",
7673
+ models: []
7665
7674
  }, {
7666
7675
  id: "mistral",
7667
7676
  name: "Mistral AI",
@@ -7817,14 +7826,17 @@ const Settings = () => {
7817
7826
  const chatProviderMeta = () => CHAT_PROVIDERS.find((p) => p.id === chatProviderId()) ?? CHAT_PROVIDERS[0];
7818
7827
  const [providerModels, setProviderModels] = createSignal([]);
7819
7828
  const [modelFetchState, setModelFetchState] = createSignal("idle");
7829
+ const [modelFetchWarning, setModelFetchWarning] = createSignal(null);
7820
7830
  const doFetchModels = () => {
7821
7831
  const meta = chatProviderMeta();
7822
7832
  if (meta.requiresKey && !chatApiKey().trim()) {
7823
7833
  setProviderModels([]);
7824
7834
  setModelFetchState("idle");
7835
+ setModelFetchWarning(null);
7825
7836
  return;
7826
7837
  }
7827
7838
  setModelFetchState("loading");
7839
+ setModelFetchWarning(null);
7828
7840
  window.vessel.ai.fetchModels({
7829
7841
  id: chatProviderId(),
7830
7842
  apiKey: chatApiKey().trim(),
@@ -7832,18 +7844,24 @@ const Settings = () => {
7832
7844
  baseUrl: chatBaseUrl().trim() || meta.defaultBaseUrl || void 0
7833
7845
  }).then(({
7834
7846
  ok,
7835
- models
7847
+ models,
7848
+ warning
7836
7849
  }) => {
7837
7850
  if (ok) {
7838
7851
  setProviderModels(models.sort());
7839
- if (models.length > 0 && !chatModel()) setChatModel(models[0]);
7852
+ if (models.length > 0 && (!chatModel() || !models.includes(chatModel()))) {
7853
+ setChatModel(models[0]);
7854
+ }
7855
+ setModelFetchWarning(warning ?? null);
7840
7856
  setModelFetchState("idle");
7841
7857
  } else {
7842
7858
  setProviderModels([]);
7859
+ setModelFetchWarning(null);
7843
7860
  setModelFetchState("error");
7844
7861
  }
7845
7862
  }).catch(() => {
7846
7863
  setProviderModels([]);
7864
+ setModelFetchWarning(null);
7847
7865
  setModelFetchState("error");
7848
7866
  });
7849
7867
  };
@@ -7970,11 +7988,11 @@ const Settings = () => {
7970
7988
  },
7971
7989
  get children() {
7972
7990
  return [(() => {
7973
- var _el$ = _tmpl$17(), _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$62 = _el$41.nextSibling, _el$63 = _el$62.nextSibling;
7974
- _el$63.firstChild;
7975
- var _el$72 = _el$63.nextSibling, _el$73 = _el$72.nextSibling, _el$74 = _el$73.firstChild;
7976
- _el$74.firstChild;
7977
- var _el$90 = _el$73.nextSibling, _el$91 = _el$90.nextSibling, _el$92 = _el$91.firstChild, _el$93 = _el$92.firstChild, _el$94 = _el$91.nextSibling, _el$95 = _el$94.firstChild, _el$96 = _el$95.nextSibling;
7991
+ var _el$ = _tmpl$18(), _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$63 = _el$41.nextSibling, _el$64 = _el$63.nextSibling;
7992
+ _el$64.firstChild;
7993
+ var _el$73 = _el$64.nextSibling, _el$74 = _el$73.nextSibling, _el$75 = _el$74.firstChild;
7994
+ _el$75.firstChild;
7995
+ var _el$91 = _el$74.nextSibling, _el$92 = _el$91.nextSibling, _el$93 = _el$92.firstChild, _el$94 = _el$93.firstChild, _el$95 = _el$92.nextSibling, _el$96 = _el$95.firstChild, _el$97 = _el$96.nextSibling;
7978
7996
  addEventListener(_el$, "click", closeSettings, true);
7979
7997
  _el$2.$$keydown = handleKeyDown;
7980
7998
  _el$2.$$click = (e) => e.stopPropagation();
@@ -8031,7 +8049,7 @@ const Settings = () => {
8031
8049
  return premiumActive();
8032
8050
  },
8033
8051
  get fallback() {
8034
- return _tmpl$19();
8052
+ return _tmpl$20();
8035
8053
  },
8036
8054
  get children() {
8037
8055
  var _el$26 = _tmpl$4$1();
@@ -8052,55 +8070,55 @@ const Settings = () => {
8052
8070
  return health();
8053
8071
  },
8054
8072
  children: (currentHealth) => (() => {
8055
- var _el$99 = _tmpl$21(), _el$100 = _el$99.firstChild, _el$101 = _el$100.nextSibling, _el$102 = _el$101.firstChild, _el$104 = _el$102.nextSibling;
8056
- _el$104.nextSibling;
8057
- insert(_el$104, () => currentHealth().mcp.status);
8058
- insert(_el$101, () => currentHealth().mcp.message, null);
8059
- insert(_el$99, createComponent(Show, {
8073
+ var _el$100 = _tmpl$22(), _el$101 = _el$100.firstChild, _el$102 = _el$101.nextSibling, _el$103 = _el$102.firstChild, _el$105 = _el$103.nextSibling;
8074
+ _el$105.nextSibling;
8075
+ insert(_el$105, () => currentHealth().mcp.status);
8076
+ insert(_el$102, () => currentHealth().mcp.message, null);
8077
+ insert(_el$100, createComponent(Show, {
8060
8078
  get when() {
8061
8079
  return currentHealth().mcp.endpoint;
8062
8080
  },
8063
8081
  children: (endpoint) => (() => {
8064
- var _el$107 = _tmpl$22(), _el$108 = _el$107.firstChild, _el$109 = _el$108.nextSibling;
8065
- insert(_el$109, endpoint);
8066
- return _el$107;
8082
+ var _el$108 = _tmpl$23(), _el$109 = _el$108.firstChild, _el$110 = _el$109.nextSibling;
8083
+ insert(_el$110, endpoint);
8084
+ return _el$108;
8067
8085
  })()
8068
8086
  }), null);
8069
- insert(_el$99, createComponent(Show, {
8087
+ insert(_el$100, createComponent(Show, {
8070
8088
  get when() {
8071
8089
  return currentHealth().startupIssues.length > 0;
8072
8090
  },
8073
8091
  get children() {
8074
- var _el$106 = _tmpl$20();
8075
- insert(_el$106, () => currentHealth().startupIssues.map((issue) => (() => {
8076
- var _el$110 = _tmpl$23(), _el$111 = _el$110.firstChild, _el$112 = _el$111.nextSibling;
8077
- insert(_el$111, () => issue.title);
8078
- insert(_el$112, () => issue.detail);
8079
- insert(_el$110, createComponent(Show, {
8092
+ var _el$107 = _tmpl$21();
8093
+ insert(_el$107, () => currentHealth().startupIssues.map((issue) => (() => {
8094
+ var _el$111 = _tmpl$24(), _el$112 = _el$111.firstChild, _el$113 = _el$112.nextSibling;
8095
+ insert(_el$112, () => issue.title);
8096
+ insert(_el$113, () => issue.detail);
8097
+ insert(_el$111, createComponent(Show, {
8080
8098
  get when() {
8081
8099
  return issue.action;
8082
8100
  },
8083
8101
  children: (action) => (() => {
8084
- var _el$113 = _tmpl$24();
8085
- insert(_el$113, action);
8086
- return _el$113;
8102
+ var _el$114 = _tmpl$25();
8103
+ insert(_el$114, action);
8104
+ return _el$114;
8087
8105
  })()
8088
8106
  }), null);
8089
8107
  createRenderEffect((_p$) => {
8090
8108
  var _v$0 = !!(issue.severity === "warning"), _v$1 = !!(issue.severity === "error");
8091
- _v$0 !== _p$.e && _el$110.classList.toggle("warning", _p$.e = _v$0);
8092
- _v$1 !== _p$.t && _el$110.classList.toggle("error", _p$.t = _v$1);
8109
+ _v$0 !== _p$.e && _el$111.classList.toggle("warning", _p$.e = _v$0);
8110
+ _v$1 !== _p$.t && _el$111.classList.toggle("error", _p$.t = _v$1);
8093
8111
  return _p$;
8094
8112
  }, {
8095
8113
  e: void 0,
8096
8114
  t: void 0
8097
8115
  });
8098
- return _el$110;
8116
+ return _el$111;
8099
8117
  })()));
8100
- return _el$106;
8118
+ return _el$107;
8101
8119
  }
8102
8120
  }), null);
8103
- return _el$99;
8121
+ return _el$100;
8104
8122
  })()
8105
8123
  }), _el$28);
8106
8124
  _el$30.$$input = (e) => setObsidianVaultPath(e.currentTarget.value);
@@ -8128,10 +8146,10 @@ const Settings = () => {
8128
8146
  insert(_el$46, createComponent(For, {
8129
8147
  each: CHAT_PROVIDERS,
8130
8148
  children: (p) => (() => {
8131
- var _el$114 = _tmpl$25();
8132
- insert(_el$114, () => p.name);
8133
- createRenderEffect(() => _el$114.value = p.id);
8134
- return _el$114;
8149
+ var _el$115 = _tmpl$26();
8150
+ insert(_el$115, () => p.name);
8151
+ createRenderEffect(() => _el$115.value = p.id);
8152
+ return _el$115;
8135
8153
  })()
8136
8154
  }));
8137
8155
  createRenderEffect(() => _el$46.value = chatProviderId());
@@ -8174,12 +8192,12 @@ const Settings = () => {
8174
8192
  },
8175
8193
  get fallback() {
8176
8194
  return (() => {
8177
- var _el$115 = _tmpl$26();
8178
- _el$115.$$input = (e) => setChatModel(e.currentTarget.value);
8179
- setAttribute(_el$115, "spellcheck", false);
8180
- createRenderEffect(() => setAttribute(_el$115, "placeholder", modelFetchState() === "loading" ? "Fetching models…" : chatProviderMeta().requiresKey && !chatApiKey().trim() ? "Enter API key to load models" : chatProviderMeta().defaultModel || "model name"));
8181
- createRenderEffect(() => _el$115.value = chatModel());
8182
- return _el$115;
8195
+ var _el$116 = _tmpl$27();
8196
+ _el$116.$$input = (e) => setChatModel(e.currentTarget.value);
8197
+ setAttribute(_el$116, "spellcheck", false);
8198
+ createRenderEffect(() => setAttribute(_el$116, "placeholder", modelFetchState() === "loading" ? "Fetching models…" : chatProviderMeta().requiresKey && !chatApiKey().trim() ? "Enter API key to load models" : chatProviderMeta().defaultModel || "model name"));
8199
+ createRenderEffect(() => _el$116.value = chatModel());
8200
+ return _el$116;
8183
8201
  })();
8184
8202
  },
8185
8203
  get children() {
@@ -8190,10 +8208,10 @@ const Settings = () => {
8190
8208
  return providerModels();
8191
8209
  },
8192
8210
  children: (m) => (() => {
8193
- var _el$116 = _tmpl$25();
8194
- _el$116.value = m;
8195
- insert(_el$116, m);
8196
- return _el$116;
8211
+ var _el$117 = _tmpl$26();
8212
+ _el$117.value = m;
8213
+ insert(_el$117, m);
8214
+ return _el$117;
8197
8215
  })()
8198
8216
  }));
8199
8217
  createRenderEffect(() => _el$56.value = chatModel());
@@ -8209,6 +8227,16 @@ const Settings = () => {
8209
8227
  return _tmpl$0();
8210
8228
  }
8211
8229
  }), null);
8230
+ insert(_el$53, createComponent(Show, {
8231
+ get when() {
8232
+ return modelFetchWarning();
8233
+ },
8234
+ children: (warning) => (() => {
8235
+ var _el$118 = _tmpl$28();
8236
+ insert(_el$118, warning);
8237
+ return _el$118;
8238
+ })()
8239
+ }), null);
8212
8240
  createRenderEffect(() => _el$57.disabled = modelFetchState() === "loading");
8213
8241
  return _el$53;
8214
8242
  })(), createComponent(Show, {
@@ -8223,19 +8251,26 @@ const Settings = () => {
8223
8251
  createRenderEffect(() => _el$61.value = chatBaseUrl());
8224
8252
  return _el$59;
8225
8253
  }
8254
+ }), createComponent(Show, {
8255
+ get when() {
8256
+ return chatProviderId() === "llama_cpp";
8257
+ },
8258
+ get children() {
8259
+ return _tmpl$11();
8260
+ }
8226
8261
  })];
8227
8262
  }
8228
- }), _el$62);
8229
- insert(_el$63, createComponent(Show, {
8263
+ }), _el$63);
8264
+ insert(_el$64, createComponent(Show, {
8230
8265
  get when() {
8231
8266
  return premiumActive();
8232
8267
  },
8233
8268
  get fallback() {
8234
8269
  return (() => {
8235
- var _el$117 = _tmpl$28(), _el$118 = _el$117.firstChild, _el$119 = _el$118.nextSibling, _el$120 = _el$119.firstChild, _el$121 = _el$120.nextSibling, _el$122 = _el$119.nextSibling;
8236
- _el$120.$$input = (e) => setPremiumEmail(e.currentTarget.value);
8237
- setAttribute(_el$120, "spellcheck", false);
8238
- _el$121.$$click = async () => {
8270
+ var _el$119 = _tmpl$30(), _el$120 = _el$119.firstChild, _el$121 = _el$120.nextSibling, _el$122 = _el$121.firstChild, _el$123 = _el$122.nextSibling, _el$124 = _el$121.nextSibling;
8271
+ _el$122.$$input = (e) => setPremiumEmail(e.currentTarget.value);
8272
+ setAttribute(_el$122, "spellcheck", false);
8273
+ _el$123.$$click = async () => {
8239
8274
  setPremiumLoading(true);
8240
8275
  setPremiumMessage(null);
8241
8276
  try {
@@ -8261,54 +8296,54 @@ const Settings = () => {
8261
8296
  setPremiumLoading(false);
8262
8297
  }
8263
8298
  };
8264
- insert(_el$121, () => premiumLoading() ? "Checking..." : "Activate");
8265
- _el$122.$$click = () => {
8299
+ insert(_el$123, () => premiumLoading() ? "Checking..." : "Activate");
8300
+ _el$124.$$click = () => {
8266
8301
  startPremiumCheckout();
8267
8302
  };
8268
- insert(_el$117, createComponent(Show, {
8303
+ insert(_el$119, createComponent(Show, {
8269
8304
  get when() {
8270
8305
  return premiumMessage();
8271
8306
  },
8272
8307
  children: (msg) => (() => {
8273
- var _el$124 = _tmpl$29();
8274
- insert(_el$124, () => msg().text);
8308
+ var _el$126 = _tmpl$31();
8309
+ insert(_el$126, () => msg().text);
8275
8310
  createRenderEffect((_p$) => {
8276
8311
  var _v$10 = !!(msg().kind === "success"), _v$11 = !!(msg().kind === "error");
8277
- _v$10 !== _p$.e && _el$124.classList.toggle("success", _p$.e = _v$10);
8278
- _v$11 !== _p$.t && _el$124.classList.toggle("error", _p$.t = _v$11);
8312
+ _v$10 !== _p$.e && _el$126.classList.toggle("success", _p$.e = _v$10);
8313
+ _v$11 !== _p$.t && _el$126.classList.toggle("error", _p$.t = _v$11);
8279
8314
  return _p$;
8280
8315
  }, {
8281
8316
  e: void 0,
8282
8317
  t: void 0
8283
8318
  });
8284
- return _el$124;
8319
+ return _el$126;
8285
8320
  })()
8286
8321
  }), null);
8287
- insert(_el$117, createComponent(Show, {
8322
+ insert(_el$119, createComponent(Show, {
8288
8323
  get when() {
8289
8324
  return premiumState().email || premiumEmail();
8290
8325
  },
8291
8326
  get children() {
8292
- var _el$123 = _tmpl$27();
8293
- _el$123.$$click = async () => {
8327
+ var _el$125 = _tmpl$29();
8328
+ _el$125.$$click = async () => {
8294
8329
  const state = await window.vessel.premium.reset();
8295
8330
  setPremiumState(state);
8296
8331
  setPremiumEmail("");
8297
8332
  setPremiumMessage(null);
8298
8333
  };
8299
- return _el$123;
8334
+ return _el$125;
8300
8335
  }
8301
8336
  }), null);
8302
- createRenderEffect(() => _el$121.disabled = premiumLoading() || !premiumEmail().trim());
8303
- createRenderEffect(() => _el$120.value = premiumEmail());
8304
- return _el$117;
8337
+ createRenderEffect(() => _el$123.disabled = premiumLoading() || !premiumEmail().trim());
8338
+ createRenderEffect(() => _el$122.value = premiumEmail());
8339
+ return _el$119;
8305
8340
  })();
8306
8341
  },
8307
8342
  get children() {
8308
- var _el$65 = _tmpl$11(), _el$66 = _el$65.firstChild;
8309
- _el$66.firstChild;
8310
- var _el$68 = _el$66.nextSibling, _el$69 = _el$68.nextSibling, _el$70 = _el$69.firstChild, _el$71 = _el$70.nextSibling;
8311
- insert(_el$66, createComponent(Show, {
8343
+ var _el$66 = _tmpl$12(), _el$67 = _el$66.firstChild;
8344
+ _el$67.firstChild;
8345
+ var _el$69 = _el$67.nextSibling, _el$70 = _el$69.nextSibling, _el$71 = _el$70.firstChild, _el$72 = _el$71.nextSibling;
8346
+ insert(_el$67, createComponent(Show, {
8312
8347
  get when() {
8313
8348
  return premiumState().status === "trialing";
8314
8349
  },
@@ -8316,8 +8351,8 @@ const Settings = () => {
8316
8351
  return [" ", "(Trial)"];
8317
8352
  }
8318
8353
  }), null);
8319
- insert(_el$68, () => premiumState().email, null);
8320
- insert(_el$68, createComponent(Show, {
8354
+ insert(_el$69, () => premiumState().email, null);
8355
+ insert(_el$69, createComponent(Show, {
8321
8356
  get when() {
8322
8357
  return premiumState().expiresAt;
8323
8358
  },
@@ -8325,50 +8360,50 @@ const Settings = () => {
8325
8360
  return [" ", "· Renews", " ", memo(() => new Date(premiumState().expiresAt).toLocaleDateString())];
8326
8361
  }
8327
8362
  }), null);
8328
- _el$70.$$click = () => {
8363
+ _el$71.$$click = () => {
8329
8364
  void window.vessel.premium.portal();
8330
8365
  };
8331
- _el$71.$$click = async () => {
8366
+ _el$72.$$click = async () => {
8332
8367
  const state = await window.vessel.premium.reset();
8333
8368
  setPremiumState(state);
8334
8369
  setPremiumEmail("");
8335
8370
  setPremiumMessage(null);
8336
8371
  };
8337
- return _el$65;
8372
+ return _el$66;
8338
8373
  }
8339
8374
  }), null);
8340
- insert(_el$74, createComponent(Show, {
8375
+ insert(_el$75, createComponent(Show, {
8341
8376
  get when() {
8342
8377
  return !premiumActive();
8343
8378
  },
8344
8379
  get children() {
8345
- return _tmpl$12();
8380
+ return _tmpl$13();
8346
8381
  }
8347
8382
  }), null);
8348
- insert(_el$73, createComponent(Show, {
8383
+ insert(_el$74, createComponent(Show, {
8349
8384
  get when() {
8350
8385
  return premiumActive();
8351
8386
  },
8352
8387
  get fallback() {
8353
- return _tmpl$30();
8388
+ return _tmpl$32();
8354
8389
  },
8355
8390
  get children() {
8356
- return [_tmpl$13(), createComponent(Show, {
8391
+ return [_tmpl$14(), createComponent(Show, {
8357
8392
  get when() {
8358
8393
  return vaultEntries().length > 0;
8359
8394
  },
8360
8395
  get children() {
8361
- var _el$78 = _tmpl$14();
8362
- insert(_el$78, createComponent(For, {
8396
+ var _el$79 = _tmpl$15();
8397
+ insert(_el$79, createComponent(For, {
8363
8398
  get each() {
8364
8399
  return vaultEntries();
8365
8400
  },
8366
8401
  children: (entry) => (() => {
8367
- var _el$126 = _tmpl$31(), _el$127 = _el$126.firstChild, _el$128 = _el$127.firstChild, _el$129 = _el$128.nextSibling, _el$130 = _el$129.firstChild, _el$131 = _el$127.nextSibling;
8368
- insert(_el$128, () => entry.label);
8369
- insert(_el$129, () => entry.username, _el$130);
8370
- insert(_el$129, () => entry.domainPattern, null);
8371
- insert(_el$129, createComponent(Show, {
8402
+ var _el$128 = _tmpl$33(), _el$129 = _el$128.firstChild, _el$130 = _el$129.firstChild, _el$131 = _el$130.nextSibling, _el$132 = _el$131.firstChild, _el$133 = _el$129.nextSibling;
8403
+ insert(_el$130, () => entry.label);
8404
+ insert(_el$131, () => entry.username, _el$132);
8405
+ insert(_el$131, () => entry.domainPattern, null);
8406
+ insert(_el$131, createComponent(Show, {
8372
8407
  get when() {
8373
8408
  return entry.useCount > 0;
8374
8409
  },
@@ -8376,43 +8411,43 @@ const Settings = () => {
8376
8411
  return [" ", "· Used ", memo(() => entry.useCount), "x"];
8377
8412
  }
8378
8413
  }), null);
8379
- _el$131.$$click = () => handleVaultRemove(entry.id);
8380
- return _el$126;
8414
+ _el$133.$$click = () => handleVaultRemove(entry.id);
8415
+ return _el$128;
8381
8416
  })()
8382
8417
  }));
8383
- return _el$78;
8418
+ return _el$79;
8384
8419
  }
8385
8420
  }), createComponent(Show, {
8386
8421
  get when() {
8387
8422
  return !vaultAdding();
8388
8423
  },
8389
8424
  get children() {
8390
- var _el$79 = _tmpl$15();
8391
- _el$79.$$click = () => {
8425
+ var _el$80 = _tmpl$16();
8426
+ _el$80.$$click = () => {
8392
8427
  setVaultAdding(true);
8393
8428
  setVaultMessage(null);
8394
8429
  };
8395
- return _el$79;
8430
+ return _el$80;
8396
8431
  }
8397
8432
  }), createComponent(Show, {
8398
8433
  get when() {
8399
8434
  return vaultAdding();
8400
8435
  },
8401
8436
  get children() {
8402
- var _el$80 = _tmpl$16(), _el$81 = _el$80.firstChild, _el$82 = _el$81.nextSibling, _el$83 = _el$82.nextSibling, _el$84 = _el$83.nextSibling, _el$85 = _el$84.nextSibling, _el$86 = _el$85.nextSibling, _el$87 = _el$86.nextSibling, _el$88 = _el$87.firstChild, _el$89 = _el$88.nextSibling;
8403
- _el$81.$$input = (e) => setVaultNewLabel(e.currentTarget.value);
8404
- setAttribute(_el$81, "spellcheck", false);
8405
- _el$82.$$input = (e) => setVaultNewDomain(e.currentTarget.value);
8437
+ var _el$81 = _tmpl$17(), _el$82 = _el$81.firstChild, _el$83 = _el$82.nextSibling, _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.firstChild, _el$90 = _el$89.nextSibling;
8438
+ _el$82.$$input = (e) => setVaultNewLabel(e.currentTarget.value);
8406
8439
  setAttribute(_el$82, "spellcheck", false);
8407
- _el$83.$$input = (e) => setVaultNewUsername(e.currentTarget.value);
8440
+ _el$83.$$input = (e) => setVaultNewDomain(e.currentTarget.value);
8408
8441
  setAttribute(_el$83, "spellcheck", false);
8409
- _el$84.$$input = (e) => setVaultNewPassword(e.currentTarget.value);
8410
- _el$85.$$input = (e) => setVaultNewTotp(e.currentTarget.value);
8411
- setAttribute(_el$85, "spellcheck", false);
8412
- _el$86.$$input = (e) => setVaultNewNotes(e.currentTarget.value);
8442
+ _el$84.$$input = (e) => setVaultNewUsername(e.currentTarget.value);
8443
+ setAttribute(_el$84, "spellcheck", false);
8444
+ _el$85.$$input = (e) => setVaultNewPassword(e.currentTarget.value);
8445
+ _el$86.$$input = (e) => setVaultNewTotp(e.currentTarget.value);
8413
8446
  setAttribute(_el$86, "spellcheck", false);
8414
- _el$88.$$click = handleVaultAdd;
8415
- _el$89.$$click = () => {
8447
+ _el$87.$$input = (e) => setVaultNewNotes(e.currentTarget.value);
8448
+ setAttribute(_el$87, "spellcheck", false);
8449
+ _el$89.$$click = handleVaultAdd;
8450
+ _el$90.$$click = () => {
8416
8451
  setVaultAdding(false);
8417
8452
  setVaultNewLabel("");
8418
8453
  setVaultNewDomain("");
@@ -8421,55 +8456,55 @@ const Settings = () => {
8421
8456
  setVaultNewTotp("");
8422
8457
  setVaultNewNotes("");
8423
8458
  };
8424
- createRenderEffect(() => _el$81.value = vaultNewLabel());
8425
- createRenderEffect(() => _el$82.value = vaultNewDomain());
8426
- createRenderEffect(() => _el$83.value = vaultNewUsername());
8427
- createRenderEffect(() => _el$84.value = vaultNewPassword());
8428
- createRenderEffect(() => _el$85.value = vaultNewTotp());
8429
- createRenderEffect(() => _el$86.value = vaultNewNotes());
8430
- return _el$80;
8459
+ createRenderEffect(() => _el$82.value = vaultNewLabel());
8460
+ createRenderEffect(() => _el$83.value = vaultNewDomain());
8461
+ createRenderEffect(() => _el$84.value = vaultNewUsername());
8462
+ createRenderEffect(() => _el$85.value = vaultNewPassword());
8463
+ createRenderEffect(() => _el$86.value = vaultNewTotp());
8464
+ createRenderEffect(() => _el$87.value = vaultNewNotes());
8465
+ return _el$81;
8431
8466
  }
8432
8467
  }), createComponent(Show, {
8433
8468
  get when() {
8434
8469
  return vaultMessage();
8435
8470
  },
8436
8471
  children: (msg) => (() => {
8437
- var _el$132 = _tmpl$29();
8438
- insert(_el$132, () => msg().text);
8472
+ var _el$134 = _tmpl$31();
8473
+ insert(_el$134, () => msg().text);
8439
8474
  createRenderEffect((_p$) => {
8440
8475
  var _v$12 = !!(msg().kind === "success"), _v$13 = !!(msg().kind === "error");
8441
- _v$12 !== _p$.e && _el$132.classList.toggle("success", _p$.e = _v$12);
8442
- _v$13 !== _p$.t && _el$132.classList.toggle("error", _p$.t = _v$13);
8476
+ _v$12 !== _p$.e && _el$134.classList.toggle("success", _p$.e = _v$12);
8477
+ _v$13 !== _p$.t && _el$134.classList.toggle("error", _p$.t = _v$13);
8443
8478
  return _p$;
8444
8479
  }, {
8445
8480
  e: void 0,
8446
8481
  t: void 0
8447
8482
  });
8448
- return _el$132;
8483
+ return _el$134;
8449
8484
  })()
8450
8485
  })];
8451
8486
  }
8452
8487
  }), null);
8453
- _el$93.$$click = () => setTelemetryEnabled(!telemetryEnabled());
8454
- _el$95.$$click = handleSave;
8455
- addEventListener(_el$96, "click", closeSettings, true);
8488
+ _el$94.$$click = () => setTelemetryEnabled(!telemetryEnabled());
8489
+ _el$96.$$click = handleSave;
8490
+ addEventListener(_el$97, "click", closeSettings, true);
8456
8491
  insert(_el$2, createComponent(Show, {
8457
8492
  get when() {
8458
8493
  return status();
8459
8494
  },
8460
8495
  children: (currentStatus) => (() => {
8461
- var _el$133 = _tmpl$29();
8462
- insert(_el$133, () => currentStatus().text);
8496
+ var _el$135 = _tmpl$31();
8497
+ insert(_el$135, () => currentStatus().text);
8463
8498
  createRenderEffect((_p$) => {
8464
8499
  var _v$14 = !!(currentStatus().kind === "success"), _v$15 = !!(currentStatus().kind === "error");
8465
- _v$14 !== _p$.e && _el$133.classList.toggle("success", _p$.e = _v$14);
8466
- _v$15 !== _p$.t && _el$133.classList.toggle("error", _p$.t = _v$15);
8500
+ _v$14 !== _p$.e && _el$135.classList.toggle("success", _p$.e = _v$14);
8501
+ _v$15 !== _p$.t && _el$135.classList.toggle("error", _p$.t = _v$15);
8467
8502
  return _p$;
8468
8503
  }, {
8469
8504
  e: void 0,
8470
8505
  t: void 0
8471
8506
  });
8472
- return _el$133;
8507
+ return _el$135;
8473
8508
  })()
8474
8509
  }), null);
8475
8510
  createRenderEffect((_p$) => {
@@ -8481,8 +8516,8 @@ const Settings = () => {
8481
8516
  _v$5 !== _p$.i && setAttribute(_el$39, "aria-checked", _p$.i = _v$5);
8482
8517
  _v$6 !== _p$.n && _el$43.classList.toggle("on", _p$.n = _v$6);
8483
8518
  _v$7 !== _p$.s && setAttribute(_el$43, "aria-checked", _p$.s = _v$7);
8484
- _v$8 !== _p$.h && _el$93.classList.toggle("on", _p$.h = _v$8);
8485
- _v$9 !== _p$.r && setAttribute(_el$93, "aria-checked", _p$.r = _v$9);
8519
+ _v$8 !== _p$.h && _el$94.classList.toggle("on", _p$.h = _v$8);
8520
+ _v$9 !== _p$.r && setAttribute(_el$94, "aria-checked", _p$.r = _v$9);
8486
8521
  return _p$;
8487
8522
  }, {
8488
8523
  e: void 0,
@@ -8500,7 +8535,7 @@ const Settings = () => {
8500
8535
  createRenderEffect(() => _el$30.value = obsidianVaultPath());
8501
8536
  createRenderEffect(() => _el$33.value = agentTranscriptMode());
8502
8537
  return _el$;
8503
- })(), _tmpl$18()];
8538
+ })(), _tmpl$19()];
8504
8539
  }
8505
8540
  });
8506
8541
  };