@quanta-intellect/vessel-browser 0.1.25 → 0.1.26

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.
@@ -4517,7 +4517,7 @@ function renderKitPrompt(kit, values) {
4517
4517
  (_, key) => values[key] ?? ""
4518
4518
  );
4519
4519
  }
4520
- 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>Upgrade to Premium`), _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$1 = /* @__PURE__ */ template(`<div class=kit-sched-next>Next: `), _tmpl$29$1 = /* @__PURE__ */ template(`<div class=sched-context-menu><button class=sched-ctx-item type=button>Edit task</button><button class=sched-ctx-item type=button>Edit schedule</button><div class=sched-ctx-divider></div><button class=sched-ctx-item type=button></button><button class="sched-ctx-item sched-ctx-danger"type=button>Delete`), _tmpl$30$1 = /* @__PURE__ */ template(`<div class=kit-sched-card><span class="kit-card-icon kit-sched-icon"aria-hidden=true></span><div class=kit-sched-body><div class=kit-sched-name></div><div class=kit-sched-meta></div></div><div class=kit-sched-actions><button class=kit-sched-toggle type=button></button><button class=kit-remove-btn type=button title="Delete schedule"aria-label="Delete schedule">×`), _tmpl$31$1 = /* @__PURE__ */ template(`<div class=kit-activity-output>`), _tmpl$32$1 = /* @__PURE__ */ template(`<div class=kit-activity-card><div class=kit-activity-header><div class=kit-activity-title><span class="kit-card-icon kit-sched-icon"aria-hidden=true></span><div class=kit-activity-title-copy><div class=kit-sched-name></div><div class=kit-activity-time></div></div></div><span class=kit-activity-badge>`), _tmpl$33$1 = /* @__PURE__ */ template(`<div class="kit-activity-output kit-activity-placeholder">`), _tmpl$34$1 = /* @__PURE__ */ template(`<span class=kit-form-required aria-hidden=true>*`), _tmpl$35$1 = /* @__PURE__ */ template(`<textarea class=kit-form-textarea rows=3>`), _tmpl$36$1 = /* @__PURE__ */ template(`<p class=kit-form-hint>`), _tmpl$37$1 = /* @__PURE__ */ template(`<div class=kit-form-field><label class=kit-form-label>`), _tmpl$38$1 = /* @__PURE__ */ template(`<input class=kit-form-input>`), _tmpl$39$1 = /* @__PURE__ */ template(`<span class=kit-run-spinner aria-hidden=true>`), _tmpl$40$1 = /* @__PURE__ */ template(`<label class=kit-schedule-type-option><input type=radio name=sched-type>`), _tmpl$41$1 = /* @__PURE__ */ template(`<option>`), _tmpl$42$1 = /* @__PURE__ */ template(`<label class=kit-schedule-type-option><input type=radio name=edit-sched-type>`);
4520
+ 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>Upgrade to Premium`), _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$1 = /* @__PURE__ */ template(`<div class=kit-sched-card><span class="kit-card-icon kit-sched-icon"aria-hidden=true></span><div class=kit-sched-body><div class=kit-sched-name></div><div class=kit-sched-meta></div></div><div class=kit-sched-actions><button class=kit-sched-toggle type=button></button><button class=kit-remove-btn type=button title="Delete schedule"aria-label="Delete schedule">×`), _tmpl$31$1 = /* @__PURE__ */ template(`<div class=kit-activity-output>`), _tmpl$32$1 = /* @__PURE__ */ template(`<div class=kit-activity-card><div class=kit-activity-header><div class=kit-activity-title><span class="kit-card-icon kit-sched-icon"aria-hidden=true></span><div class=kit-activity-title-copy><div class=kit-sched-name></div><div class=kit-activity-time></div></div></div><span class=kit-activity-badge>`), _tmpl$33$1 = /* @__PURE__ */ template(`<div class="kit-activity-output kit-activity-placeholder">`), _tmpl$34$1 = /* @__PURE__ */ template(`<span class=kit-form-required aria-hidden=true>*`), _tmpl$35$1 = /* @__PURE__ */ template(`<textarea class=kit-form-textarea rows=3>`), _tmpl$36$1 = /* @__PURE__ */ template(`<p class=kit-form-hint>`), _tmpl$37$1 = /* @__PURE__ */ template(`<div class=kit-form-field><label class=kit-form-label>`), _tmpl$38$1 = /* @__PURE__ */ template(`<input class=kit-form-input>`), _tmpl$39$1 = /* @__PURE__ */ template(`<span class=kit-run-spinner aria-hidden=true>`), _tmpl$40$1 = /* @__PURE__ */ template(`<label class=kit-schedule-type-option><input type=radio name=sched-type>`), _tmpl$41$1 = /* @__PURE__ */ template(`<option>`), _tmpl$42$1 = /* @__PURE__ */ template(`<label class=kit-schedule-type-option><input type=radio name=edit-sched-type>`);
4521
4521
  const ICON_MAP = {
4522
4522
  BookOpen: book_open_default,
4523
4523
  Tag: tag_default,
@@ -4961,7 +4961,7 @@ const AutomationTab = (props) => {
4961
4961
  return job.enabled;
4962
4962
  },
4963
4963
  get children() {
4964
- var _el$89 = _tmpl$28$1();
4964
+ var _el$89 = _tmpl$28$2();
4965
4965
  _el$89.firstChild;
4966
4966
  insert(_el$89, () => formatNextRun(job.nextRunAt), null);
4967
4967
  return _el$89;
@@ -4975,7 +4975,7 @@ const AutomationTab = (props) => {
4975
4975
  return openMenuJobId() === job.id;
4976
4976
  },
4977
4977
  get children() {
4978
- var _el$94 = _tmpl$29$1(), _el$95 = _el$94.firstChild, _el$96 = _el$95.nextSibling, _el$97 = _el$96.nextSibling, _el$98 = _el$97.nextSibling, _el$99 = _el$98.nextSibling;
4978
+ var _el$94 = _tmpl$29$2(), _el$95 = _el$94.firstChild, _el$96 = _el$95.nextSibling, _el$97 = _el$96.nextSibling, _el$98 = _el$97.nextSibling, _el$99 = _el$98.nextSibling;
4979
4979
  _el$94.$$click = (e) => e.stopPropagation();
4980
4980
  _el$95.$$click = () => handleOpenEditTask(job);
4981
4981
  _el$96.$$click = () => handleOpenEditSchedule(job);
@@ -5355,7 +5355,7 @@ const AutomationTab = (props) => {
5355
5355
  };
5356
5356
  delegateEvents(["click", "input", "keydown", "contextmenu"]);
5357
5357
  const vesselLogo = "" + new URL("vessel-logo-transparent-IT25qr-Z.png", import.meta.url).href;
5358
- var _tmpl$$4 = /* @__PURE__ */ template(`<div class="message-content markdown-content">`), _tmpl$2$4 = /* @__PURE__ */ template(`<span class=sidebar-tab-badge>`), _tmpl$3$3 = /* @__PURE__ */ template(`<div class=agent-section-title>Pending approvals`), _tmpl$4$3 = /* @__PURE__ */ template(`<button class=agent-section-toggle type=button>`), _tmpl$5$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$6$3 = /* @__PURE__ */ template(`<span class=bookmark-status-pill>Saved`), _tmpl$7$2 = /* @__PURE__ */ template(`<div class=bookmark-save-card><div class=bookmark-current-title></div><div class=bookmark-current-url></div><div class=bookmark-save-controls><button class=bookmark-primary-button type=button>Save page</button></div><textarea class=bookmark-note-input placeholder="Optional note about why this matters"rows=2>`), _tmpl$8$2 = /* @__PURE__ */ template(`<section class=bookmark-panel><div class=bookmark-panel-header><div><div class=bookmark-panel-title>Bookmarks</div><div class=bookmark-panel-subtitle></div></div></div><input class="bookmark-input bookmark-search-input"placeholder="Search titles, URLs, notes, and folders"><div class=bookmark-save-shell><button class=bookmark-save-toggle type=button><span class=bookmark-save-toggle-copy><span class=bookmark-save-toggle-title>Save Current Page</span><span class=bookmark-save-toggle-subtitle>Manual bookmark save options</span></span><span class=bookmark-save-toggle-caret aria-hidden=true>▾</span></button></div><form class=bookmark-folder-create><div class=bookmark-folder-form-fields><input class=bookmark-input placeholder="Create a folder"><input class=bookmark-input placeholder="Optional one-line summary"></div><button class=bookmark-secondary-button type=submit>New folder</button></form><div class=bookmark-folder-list>`), _tmpl$9$2 = /* @__PURE__ */ template(`<div class=checkpoint-timeline>`), _tmpl$0$2 = /* @__PURE__ */ template(`<section class="agent-panel checkpoint-panel"><div class=agent-panel-header><div><div class=agent-panel-title>Checkpoints</div><div class=agent-panel-subtitle></div></div></div><div class=agent-panel-body><div class=agent-checkpoint-row><input class=agent-input placeholder="Checkpoint name"><button class=agent-primary-button type=button>Save checkpoint</button></div><div class=agent-section-title>Recent checkpoints`), _tmpl$1$2 = /* @__PURE__ */ template(`<span>`), _tmpl$10$2 = /* @__PURE__ */ template(`<div><div class=streaming-status><span class=streaming-pulse aria-hidden=true></span><span>Generating`), _tmpl$11$2 = /* @__PURE__ */ template(`<div class="message message-assistant"><div class=message-content>`), _tmpl$12$2 = /* @__PURE__ */ template(`<div class=sidebar-empty><svg class=sidebar-empty-icon width=48 height=48 viewBox="0 0 48 48"aria-hidden=true><line x1=8 y1=8 x2=24 y2=5 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=24 y1=5 x2=40 y2=10 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=8 y1=8 x2=6 y2=24 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=40 y1=10 x2=44 y2=26 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=6 y1=24 x2=10 y2=38 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=44 y1=26 x2=38 y2=40 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=10 y1=38 x2=24 y2=44 stroke=var(--border-visible) stroke-width=1 opacity=0.35></line><line x1=38 y1=40 x2=24 y2=44 stroke=var(--border-visible) stroke-width=1 opacity=0.35></line><line x1=8 y1=8 x2=20 y2=18 stroke=var(--border-visible) stroke-width=1 opacity=0.5></line><line x1=24 y1=5 x2=20 y2=18 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=40 y1=10 x2=32 y2=20 stroke=var(--border-visible) stroke-width=1 opacity=0.5></line><line x1=20 y1=18 x2=32 y2=20 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.3></line><line x1=6 y1=24 x2=18 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=20 y1=18 x2=18 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=32 y1=20 x2=36 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=44 y1=26 x2=36 y2=30 stroke=var(--border-visible) stroke-width=1 opacity=0.45></line><line x1=18 y1=30 x2=36 y2=30 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.25></line><line x1=18 y1=30 x2=10 y2=38 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=36 y1=30 x2=38 y2=40 stroke=var(--border-visible) stroke-width=1 opacity=0.4></line><line x1=18 y1=30 x2=24 y2=44 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.2></line><line x1=36 y1=30 x2=24 y2=44 stroke=var(--accent-primary) stroke-width=0.75 opacity=0.2></line><circle cx=8 cy=8 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.55></circle><circle cx=24 cy=5 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.45></circle><circle cx=40 cy=10 r=3 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.7></circle><circle cx=6 cy=24 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=44 cy=26 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.55></circle><circle cx=10 cy=38 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=38 cy=40 r=2 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.45></circle><circle cx=24 cy=44 r=2.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.5></circle><circle cx=20 cy=18 r=3.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.85></circle><circle cx=32 cy=20 r=4 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.9></circle><circle cx=18 cy=30 r=3 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.75></circle><circle cx=36 cy=30 r=3.5 fill=var(--bg-secondary) stroke=var(--accent-primary) stroke-width=1.5 opacity=0.8></circle></svg><p class=sidebar-empty-title>Your move.</p><p class=sidebar-empty-hint>Configure a provider in Settings (Ctrl+,) then ask anything about the current page or beyond.`), _tmpl$13$1 = /* @__PURE__ */ template(`<button class=chat-action-btn title="Stop generating"><svg width=14 height=14 viewBox="0 0 14 14"fill=none aria-hidden=true><rect x=2 y=2 width=10 height=10 rx=1.5 fill=currentColor></rect></svg>Stop`), _tmpl$14$1 = /* @__PURE__ */ template(`<button class=chat-action-btn title="Retry last prompt"><svg width=14 height=14 viewBox="0 0 14 14"fill=none aria-hidden=true><path d="M11.5 7a4.5 4.5 0 1 1-1.3-3.2"stroke=currentColor stroke-width=1.5 stroke-linecap=round></path><path d="M10.5 1v3h-3"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round></path></svg>Retry`), _tmpl$15$1 = /* @__PURE__ */ template(`<div class=chat-actions>`), _tmpl$16$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$17$1 = /* @__PURE__ */ template(`<button class=chat-queue-clear type=button>Clear queue`), _tmpl$18$1 = /* @__PURE__ */ template(`<div class=chat-queue-list>`), _tmpl$19$1 = /* @__PURE__ */ template(`<div class=chat-queue-status><div class=chat-queue-status-row><span>`), _tmpl$20$1 = /* @__PURE__ */ template(`<div class=sidebar-input-area><textarea class=sidebar-input rows=2></textarea><button class=sidebar-send>`), _tmpl$21$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$22$1 = /* @__PURE__ */ template(`<div class=agent-muted>No pending approvals.`), _tmpl$23$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$24$1 = /* @__PURE__ */ template(`<div class=agent-muted>No actions yet.`), _tmpl$25$1 = /* @__PURE__ */ template(`<div class=agent-muted>Recent actions are collapsed to reduce noise.`), _tmpl$26$1 = /* @__PURE__ */ template(`<div class="agent-card-copy success">`), _tmpl$27$1 = /* @__PURE__ */ template(`<div class="agent-card-copy error">`), _tmpl$28 = /* @__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$29 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>`), _tmpl$30 = /* @__PURE__ */ template(`<div class=bookmark-folder-summary>`), _tmpl$31 = /* @__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$32 = /* @__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$33 = /* @__PURE__ */ template(`<div class=bookmark-items>`), _tmpl$34 = /* @__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$35 = /* @__PURE__ */ template(`<div class=bookmark-folder-collapsed-hint>Click to view saved links.`), _tmpl$36 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>No bookmarks in this folder yet.`), _tmpl$37 = /* @__PURE__ */ template(`<div class=bookmark-item-note>`), _tmpl$38 = /* @__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$39 = /* @__PURE__ */ template(`<div class=agent-muted>No checkpoints yet.`), _tmpl$40 = /* @__PURE__ */ template(`<span class=checkpoint-timeline-line>`), _tmpl$41 = /* @__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$42 = /* @__PURE__ */ template(`<div>`), _tmpl$43 = /* @__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$44 = /* @__PURE__ */ template(`<div class=chat-approval-detail>`), _tmpl$45 = /* @__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$46 = /* @__PURE__ */ template(`<div class=chat-queue-item><span class=chat-queue-text></span><button class=chat-queue-remove type=button>×`);
5358
+ 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 free trial</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 free trial</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 = /* @__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 = /* @__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(`<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$35 = /* @__PURE__ */ template(`<div class=bookmark-items>`), _tmpl$36 = /* @__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$37 = /* @__PURE__ */ template(`<div class=bookmark-folder-collapsed-hint>Click to view saved links.`), _tmpl$38 = /* @__PURE__ */ template(`<div class=bookmark-empty-folder>No bookmarks in this folder yet.`), _tmpl$39 = /* @__PURE__ */ template(`<div class=bookmark-item-note>`), _tmpl$40 = /* @__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$41 = /* @__PURE__ */ template(`<div class=agent-muted>No checkpoints yet.`), _tmpl$42 = /* @__PURE__ */ template(`<span class=checkpoint-timeline-line>`), _tmpl$43 = /* @__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$44 = /* @__PURE__ */ template(`<div>`), _tmpl$45 = /* @__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$46 = /* @__PURE__ */ template(`<div class=chat-approval-detail>`), _tmpl$47 = /* @__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$48 = /* @__PURE__ */ template(`<div class=chat-queue-item><span class=chat-queue-text></span><button class=chat-queue-remove type=button>×`);
5359
5359
  const UNSORTED_FOLDER = {
5360
5360
  id: "unsorted",
5361
5361
  name: "Unsorted",
@@ -5369,6 +5369,28 @@ const MarkdownMessage = (props) => {
5369
5369
  return _el$;
5370
5370
  })();
5371
5371
  };
5372
+ function getPremiumPromptKind(content) {
5373
+ if (content.includes("requires Vessel Premium")) {
5374
+ return "premium_gate";
5375
+ }
5376
+ if (content.includes("Reached maximum tool call limit")) {
5377
+ return "iteration_limit";
5378
+ }
5379
+ return null;
5380
+ }
5381
+ const PremiumPromptCard = (props) => {
5382
+ const title = props.kind === "premium_gate" ? "This workflow needs Premium" : "Need a longer autonomous run?";
5383
+ const body = props.kind === "premium_gate" ? "Unlock screenshots, saved sessions, workflow tracking, table extraction, and the credential vault with a 5-day free trial." : "Free chats pause after 50 tool calls in a turn. Vessel Premium raises the ceiling so the agent can finish longer workflows without stopping.";
5384
+ return (() => {
5385
+ var _el$2 = _tmpl$2$4(), _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.nextSibling, _el$6 = _el$5.nextSibling, _el$7 = _el$6.firstChild, _el$8 = _el$7.nextSibling;
5386
+ insert(_el$4, title);
5387
+ insert(_el$5, body);
5388
+ addEventListener(_el$7, "click", props.onStartTrial, true);
5389
+ addEventListener(_el$8, "click", props.onOpenSettings, true);
5390
+ createRenderEffect(() => _el$2.classList.toggle("compact", !!(props.compact === true)));
5391
+ return _el$2;
5392
+ })();
5393
+ };
5372
5394
  const Sidebar = (props) => {
5373
5395
  const {
5374
5396
  messages: messages2,
@@ -5401,7 +5423,8 @@ const Sidebar = (props) => {
5401
5423
  sidebarWidth: sidebarWidth2,
5402
5424
  resizeSidebar,
5403
5425
  commitResize,
5404
- toggleSidebar
5426
+ toggleSidebar,
5427
+ openSettings
5405
5428
  } = useUI();
5406
5429
  const {
5407
5430
  activeTab,
@@ -5419,6 +5442,38 @@ const Sidebar = (props) => {
5419
5442
  const [chatInput, setChatInput] = createSignal("");
5420
5443
  const [highlightCount, setHighlightCount] = createSignal(0);
5421
5444
  const [highlightIndex, setHighlightIndex] = createSignal(-1);
5445
+ const [premiumState, setPremiumState] = createSignal({
5446
+ status: "free",
5447
+ customerId: "",
5448
+ email: "",
5449
+ validatedAt: "",
5450
+ expiresAt: ""
5451
+ });
5452
+ const trackedPremiumContexts = /* @__PURE__ */ new Set();
5453
+ const isPremium = () => {
5454
+ const status = premiumState().status;
5455
+ return status === "active" || status === "trialing";
5456
+ };
5457
+ const trackPremiumContext = (step) => {
5458
+ if (trackedPremiumContexts.has(step)) return;
5459
+ trackedPremiumContexts.add(step);
5460
+ void window.vessel.premium.trackContext(step).catch(() => {
5461
+ trackedPremiumContexts.delete(step);
5462
+ });
5463
+ };
5464
+ const openPremiumCheckout = (step) => {
5465
+ trackPremiumContext(step);
5466
+ void window.vessel.premium.checkout(premiumState().email || void 0);
5467
+ };
5468
+ const openPremiumDetails = () => {
5469
+ void openSettings();
5470
+ };
5471
+ onMount(() => {
5472
+ void window.vessel.premium.getState().then(setPremiumState).catch(() => {
5473
+ });
5474
+ const cleanup = window.vessel.premium.onUpdate(setPremiumState);
5475
+ onCleanup(cleanup);
5476
+ });
5422
5477
  const syncHighlightCount = async () => {
5423
5478
  try {
5424
5479
  const count = await window.vessel.highlights.getCount() ?? 0;
@@ -5438,6 +5493,28 @@ const Sidebar = (props) => {
5438
5493
  void syncHighlightCount();
5439
5494
  }
5440
5495
  });
5496
+ createEffect(() => {
5497
+ if (sidebarTab() === "chat" && !isPremium()) {
5498
+ trackPremiumContext("chat_banner_viewed");
5499
+ }
5500
+ });
5501
+ createEffect(() => {
5502
+ if (isPremium()) return;
5503
+ for (const message of messages2()) {
5504
+ const kind = getPremiumPromptKind(message.content);
5505
+ if (kind === "premium_gate") {
5506
+ trackPremiumContext("premium_gate_seen");
5507
+ } else if (kind === "iteration_limit") {
5508
+ trackPremiumContext("iteration_limit_seen");
5509
+ }
5510
+ }
5511
+ const streamingKind = getPremiumPromptKind(streamingText2());
5512
+ if (streamingKind === "premium_gate") {
5513
+ trackPremiumContext("premium_gate_seen");
5514
+ } else if (streamingKind === "iteration_limit") {
5515
+ trackPremiumContext("iteration_limit_seen");
5516
+ }
5517
+ });
5441
5518
  createEffect(() => {
5442
5519
  const unsubscribe = window.vessel.highlights.onCountUpdate((count) => {
5443
5520
  setHighlightCount(count);
@@ -5710,42 +5787,42 @@ ${contextBlock}` : contextBlock);
5710
5787
  return props.forceOpen || sidebarOpen2();
5711
5788
  },
5712
5789
  get children() {
5713
- var _el$2 = _tmpl$21$1(), _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild, _el$7 = _el$5.nextSibling, _el$8 = _el$7.firstChild, _el$9 = _el$8.nextSibling, _el$0 = _el$4.nextSibling, _el$1 = _el$0.firstChild;
5714
- _el$1.firstChild;
5715
- var _el$12 = _el$1.nextSibling, _el$13 = _el$12.nextSibling, _el$14 = _el$13.nextSibling, _el$15 = _el$14.nextSibling, _el$16 = _el$0.nextSibling, _el$73 = _el$16.firstChild;
5716
- _el$3.$$pointerdown = startResize;
5717
- setAttribute(_el$6, "src", vesselLogo);
5718
- addEventListener(_el$8, "click", clearHistory, true);
5719
- _el$9.$$click = () => void toggleSidebar();
5720
- _el$1.$$click = () => setSidebarTab("supervisor");
5721
- insert(_el$1, createComponent(Show, {
5790
+ var _el$9 = _tmpl$23$1(), _el$0 = _el$9.firstChild, _el$1 = _el$0.nextSibling, _el$10 = _el$1.firstChild, _el$11 = _el$10.firstChild, _el$12 = _el$10.nextSibling, _el$13 = _el$12.firstChild, _el$14 = _el$13.nextSibling, _el$15 = _el$1.nextSibling, _el$16 = _el$15.firstChild;
5791
+ _el$16.firstChild;
5792
+ var _el$19 = _el$16.nextSibling, _el$20 = _el$19.nextSibling, _el$21 = _el$20.nextSibling, _el$22 = _el$21.nextSibling, _el$23 = _el$15.nextSibling, _el$86 = _el$23.firstChild;
5793
+ _el$0.$$pointerdown = startResize;
5794
+ setAttribute(_el$11, "src", vesselLogo);
5795
+ addEventListener(_el$13, "click", clearHistory, true);
5796
+ _el$14.$$click = () => void toggleSidebar();
5797
+ _el$16.$$click = () => setSidebarTab("supervisor");
5798
+ insert(_el$16, createComponent(Show, {
5722
5799
  get when() {
5723
5800
  return runtimeState2().supervisor.pendingApprovals.length > 0;
5724
5801
  },
5725
5802
  get children() {
5726
- var _el$11 = _tmpl$2$4();
5727
- insert(_el$11, () => runtimeState2().supervisor.pendingApprovals.length);
5728
- return _el$11;
5803
+ var _el$18 = _tmpl$3$3();
5804
+ insert(_el$18, () => runtimeState2().supervisor.pendingApprovals.length);
5805
+ return _el$18;
5729
5806
  }
5730
5807
  }), null);
5731
- _el$12.$$click = () => setSidebarTab("bookmarks");
5732
- _el$13.$$click = () => setSidebarTab("checkpoints");
5733
- _el$14.$$click = () => setSidebarTab("chat");
5734
- _el$15.$$click = () => setSidebarTab("automation");
5808
+ _el$19.$$click = () => setSidebarTab("bookmarks");
5809
+ _el$20.$$click = () => setSidebarTab("checkpoints");
5810
+ _el$21.$$click = () => setSidebarTab("chat");
5811
+ _el$22.$$click = () => setSidebarTab("automation");
5735
5812
  use((el) => {
5736
5813
  messagesContainerRef = el;
5737
5814
  useScrollFade(el);
5738
- }, _el$16);
5739
- insert(_el$16, createComponent(Show, {
5815
+ }, _el$23);
5816
+ insert(_el$23, createComponent(Show, {
5740
5817
  get when() {
5741
5818
  return sidebarTab() === "supervisor";
5742
5819
  },
5743
5820
  get children() {
5744
- var _el$17 = _tmpl$5$3(), _el$18 = _el$17.firstChild, _el$19 = _el$18.firstChild, _el$20 = _el$19.firstChild, _el$21 = _el$20.nextSibling, _el$22 = _el$19.nextSibling, _el$23 = _el$18.nextSibling, _el$24 = _el$23.firstChild, _el$25 = _el$24.nextSibling, _el$26 = _el$23.nextSibling, _el$28 = _el$26.nextSibling;
5745
- _el$28.firstChild;
5746
- insert(_el$21, () => runtimeState2().supervisor.paused ? "Agent is paused" : "Agent is live");
5747
- insert(_el$22, () => runtimeState2().supervisor.paused ? "Paused" : "Running");
5748
- insert(_el$23, createComponent(DropdownSelect, {
5821
+ var _el$24 = _tmpl$6$3(), _el$25 = _el$24.firstChild, _el$26 = _el$25.firstChild, _el$27 = _el$26.firstChild, _el$28 = _el$27.nextSibling, _el$29 = _el$26.nextSibling, _el$30 = _el$25.nextSibling, _el$31 = _el$30.firstChild, _el$32 = _el$31.nextSibling, _el$33 = _el$30.nextSibling, _el$35 = _el$33.nextSibling;
5822
+ _el$35.firstChild;
5823
+ insert(_el$28, () => runtimeState2().supervisor.paused ? "Agent is paused" : "Agent is live");
5824
+ insert(_el$29, () => runtimeState2().supervisor.paused ? "Paused" : "Running");
5825
+ insert(_el$30, createComponent(DropdownSelect, {
5749
5826
  "class": "agent-select",
5750
5827
  get value() {
5751
5828
  return runtimeState2().supervisor.approvalMode;
@@ -5755,55 +5832,55 @@ ${contextBlock}` : contextBlock);
5755
5832
  },
5756
5833
  ariaLabel: "Approval mode",
5757
5834
  onChange: (value) => void setApprovalMode(value)
5758
- }), _el$24);
5759
- _el$24.$$click = () => void (runtimeState2().supervisor.paused ? resume() : pause());
5760
- insert(_el$24, () => runtimeState2().supervisor.paused ? "Resume" : "Pause");
5761
- _el$25.$$click = () => void restoreSession();
5762
- insert(_el$26, approvalModeDescription);
5763
- insert(_el$17, createComponent(Show, {
5835
+ }), _el$31);
5836
+ _el$31.$$click = () => void (runtimeState2().supervisor.paused ? resume() : pause());
5837
+ insert(_el$31, () => runtimeState2().supervisor.paused ? "Resume" : "Pause");
5838
+ _el$32.$$click = () => void restoreSession();
5839
+ insert(_el$33, approvalModeDescription);
5840
+ insert(_el$24, createComponent(Show, {
5764
5841
  get when() {
5765
5842
  return runtimeState2().supervisor.pendingApprovals.length > 0;
5766
5843
  },
5767
5844
  get fallback() {
5768
- return _tmpl$22$1();
5845
+ return _tmpl$24$1();
5769
5846
  },
5770
5847
  get children() {
5771
- return [_tmpl$3$3(), createComponent(For, {
5848
+ return [_tmpl$4$3(), createComponent(For, {
5772
5849
  get each() {
5773
5850
  return runtimeState2().supervisor.pendingApprovals;
5774
5851
  },
5775
5852
  children: (approval) => (() => {
5776
- var _el$91 = _tmpl$23$1(), _el$92 = _el$91.firstChild, _el$93 = _el$92.nextSibling, _el$94 = _el$93.nextSibling, _el$95 = _el$94.nextSibling, _el$96 = _el$95.nextSibling, _el$97 = _el$96.firstChild, _el$98 = _el$97.nextSibling;
5777
- insert(_el$93, () => approval.name);
5778
- insert(_el$94, () => approval.argsSummary);
5779
- insert(_el$95, () => approval.reason);
5780
- _el$97.$$click = () => void resolveApproval(approval.id, true);
5781
- _el$98.$$click = () => void resolveApproval(approval.id, false);
5782
- return _el$91;
5853
+ var _el$104 = _tmpl$25$1(), _el$105 = _el$104.firstChild, _el$106 = _el$105.nextSibling, _el$107 = _el$106.nextSibling, _el$108 = _el$107.nextSibling, _el$109 = _el$108.nextSibling, _el$110 = _el$109.firstChild, _el$111 = _el$110.nextSibling;
5854
+ insert(_el$106, () => approval.name);
5855
+ insert(_el$107, () => approval.argsSummary);
5856
+ insert(_el$108, () => approval.reason);
5857
+ _el$110.$$click = () => void resolveApproval(approval.id, true);
5858
+ _el$111.$$click = () => void resolveApproval(approval.id, false);
5859
+ return _el$104;
5783
5860
  })()
5784
5861
  })];
5785
5862
  }
5786
- }), _el$28);
5787
- insert(_el$28, createComponent(Show, {
5863
+ }), _el$35);
5864
+ insert(_el$35, createComponent(Show, {
5788
5865
  get when() {
5789
5866
  return recentActions().length > 0;
5790
5867
  },
5791
5868
  get children() {
5792
- var _el$30 = _tmpl$4$3();
5793
- _el$30.$$click = () => setActionsExpanded((current) => !current);
5794
- insert(_el$30, (() => {
5869
+ var _el$37 = _tmpl$5$3();
5870
+ _el$37.$$click = () => setActionsExpanded((current) => !current);
5871
+ insert(_el$37, (() => {
5795
5872
  var _c$ = memo(() => !!actionsExpanded());
5796
5873
  return () => _c$() ? "Hide history" : `Show history (${recentActions().length})`;
5797
5874
  })());
5798
- return _el$30;
5875
+ return _el$37;
5799
5876
  }
5800
5877
  }), null);
5801
- insert(_el$17, createComponent(Show, {
5878
+ insert(_el$24, createComponent(Show, {
5802
5879
  get when() {
5803
5880
  return recentActions().length > 0;
5804
5881
  },
5805
5882
  get fallback() {
5806
- return _tmpl$24$1();
5883
+ return _tmpl$26$1();
5807
5884
  },
5808
5885
  get children() {
5809
5886
  return createComponent(Show, {
@@ -5811,7 +5888,7 @@ ${contextBlock}` : contextBlock);
5811
5888
  return actionsExpanded();
5812
5889
  },
5813
5890
  get fallback() {
5814
- return _tmpl$25$1();
5891
+ return _tmpl$27$1();
5815
5892
  },
5816
5893
  get children() {
5817
5894
  return createComponent(For, {
@@ -5819,71 +5896,71 @@ ${contextBlock}` : contextBlock);
5819
5896
  return recentActions();
5820
5897
  },
5821
5898
  children: (action) => (() => {
5822
- var _el$101 = _tmpl$28(), _el$102 = _el$101.firstChild, _el$103 = _el$102.firstChild, _el$104 = _el$103.nextSibling, _el$105 = _el$102.nextSibling;
5823
- insert(_el$103, () => action.name);
5824
- insert(_el$104, () => action.status);
5825
- insert(_el$105, () => action.argsSummary);
5826
- insert(_el$101, createComponent(Show, {
5899
+ var _el$114 = _tmpl$30(), _el$115 = _el$114.firstChild, _el$116 = _el$115.firstChild, _el$117 = _el$116.nextSibling, _el$118 = _el$115.nextSibling;
5900
+ insert(_el$116, () => action.name);
5901
+ insert(_el$117, () => action.status);
5902
+ insert(_el$118, () => action.argsSummary);
5903
+ insert(_el$114, createComponent(Show, {
5827
5904
  get when() {
5828
5905
  return action.resultSummary;
5829
5906
  },
5830
5907
  get children() {
5831
- var _el$106 = _tmpl$26$1();
5832
- insert(_el$106, () => action.resultSummary);
5833
- return _el$106;
5908
+ var _el$119 = _tmpl$28$1();
5909
+ insert(_el$119, () => action.resultSummary);
5910
+ return _el$119;
5834
5911
  }
5835
5912
  }), null);
5836
- insert(_el$101, createComponent(Show, {
5913
+ insert(_el$114, createComponent(Show, {
5837
5914
  get when() {
5838
5915
  return action.error;
5839
5916
  },
5840
5917
  get children() {
5841
- var _el$107 = _tmpl$27$1();
5842
- insert(_el$107, () => action.error);
5843
- return _el$107;
5918
+ var _el$120 = _tmpl$29$1();
5919
+ insert(_el$120, () => action.error);
5920
+ return _el$120;
5844
5921
  }
5845
5922
  }), null);
5846
- createRenderEffect(() => className(_el$104, `agent-action-status ${action.status}`));
5847
- return _el$101;
5923
+ createRenderEffect(() => className(_el$117, `agent-action-status ${action.status}`));
5924
+ return _el$114;
5848
5925
  })()
5849
5926
  });
5850
5927
  }
5851
5928
  });
5852
5929
  }
5853
5930
  }), null);
5854
- createRenderEffect(() => _el$22.classList.toggle("paused", !!runtimeState2().supervisor.paused));
5855
- return _el$17;
5931
+ createRenderEffect(() => _el$29.classList.toggle("paused", !!runtimeState2().supervisor.paused));
5932
+ return _el$24;
5856
5933
  }
5857
- }), _el$73);
5858
- insert(_el$16, createComponent(Show, {
5934
+ }), _el$86);
5935
+ insert(_el$23, createComponent(Show, {
5859
5936
  get when() {
5860
5937
  return sidebarTab() === "bookmarks";
5861
5938
  },
5862
5939
  get children() {
5863
- var _el$31 = _tmpl$8$2(), _el$32 = _el$31.firstChild, _el$33 = _el$32.firstChild, _el$34 = _el$33.firstChild, _el$35 = _el$34.nextSibling, _el$37 = _el$32.nextSibling, _el$38 = _el$37.nextSibling, _el$39 = _el$38.firstChild, _el$40 = _el$39.firstChild, _el$41 = _el$40.nextSibling, _el$48 = _el$38.nextSibling, _el$49 = _el$48.firstChild, _el$50 = _el$49.firstChild, _el$51 = _el$50.nextSibling, _el$52 = _el$49.nextSibling, _el$53 = _el$48.nextSibling;
5864
- insert(_el$35, (() => {
5940
+ var _el$38 = _tmpl$9$2(), _el$39 = _el$38.firstChild, _el$40 = _el$39.firstChild, _el$41 = _el$40.firstChild, _el$42 = _el$41.nextSibling, _el$44 = _el$39.nextSibling, _el$45 = _el$44.nextSibling, _el$46 = _el$45.firstChild, _el$47 = _el$46.firstChild, _el$48 = _el$47.nextSibling, _el$55 = _el$45.nextSibling, _el$56 = _el$55.firstChild, _el$57 = _el$56.firstChild, _el$58 = _el$57.nextSibling, _el$59 = _el$56.nextSibling, _el$60 = _el$55.nextSibling;
5941
+ insert(_el$42, (() => {
5865
5942
  var _c$2 = memo(() => !!normalizedBookmarkSearch());
5866
5943
  return () => _c$2() ? `${bookmarkMatchCount()} matches for "${bookmarkSearchQuery().trim()}"` : `${bookmarksState2().bookmarks.length} saved across ${bookmarkFolders().length} folders`;
5867
5944
  })());
5868
- insert(_el$32, createComponent(Show, {
5945
+ insert(_el$39, createComponent(Show, {
5869
5946
  get when() {
5870
5947
  return currentTabSaved();
5871
5948
  },
5872
5949
  get children() {
5873
- return _tmpl$6$3();
5950
+ return _tmpl$7$2();
5874
5951
  }
5875
5952
  }), null);
5876
- _el$37.$$input = (e) => setBookmarkSearchQuery(e.currentTarget.value);
5877
- _el$39.$$click = () => setBookmarkSaveExpanded((current) => !current);
5878
- insert(_el$38, createComponent(Show, {
5953
+ _el$44.$$input = (e) => setBookmarkSearchQuery(e.currentTarget.value);
5954
+ _el$46.$$click = () => setBookmarkSaveExpanded((current) => !current);
5955
+ insert(_el$45, createComponent(Show, {
5879
5956
  get when() {
5880
5957
  return bookmarkSaveExpanded();
5881
5958
  },
5882
5959
  get children() {
5883
- var _el$42 = _tmpl$7$2(), _el$43 = _el$42.firstChild, _el$44 = _el$43.nextSibling, _el$45 = _el$44.nextSibling, _el$46 = _el$45.firstChild, _el$47 = _el$45.nextSibling;
5884
- insert(_el$43, () => currentTab()?.title || "No active page");
5885
- insert(_el$44, () => currentTab()?.url || "Open a page to save it here.");
5886
- insert(_el$45, createComponent(DropdownSelect, {
5960
+ var _el$49 = _tmpl$8$2(), _el$50 = _el$49.firstChild, _el$51 = _el$50.nextSibling, _el$52 = _el$51.nextSibling, _el$53 = _el$52.firstChild, _el$54 = _el$52.nextSibling;
5961
+ insert(_el$50, () => currentTab()?.title || "No active page");
5962
+ insert(_el$51, () => currentTab()?.url || "Open a page to save it here.");
5963
+ insert(_el$52, createComponent(DropdownSelect, {
5887
5964
  "class": "bookmark-select",
5888
5965
  get value() {
5889
5966
  return selectedFolderId();
@@ -5893,29 +5970,29 @@ ${contextBlock}` : contextBlock);
5893
5970
  },
5894
5971
  ariaLabel: "Bookmark folder",
5895
5972
  onChange: (value) => setSelectedFolderId(value)
5896
- }), _el$46);
5897
- _el$46.$$click = () => void handleSaveBookmark();
5898
- _el$47.$$input = (e) => setBookmarkNote(e.currentTarget.value);
5899
- createRenderEffect(() => _el$46.disabled = !currentTab()?.url);
5900
- createRenderEffect(() => _el$47.value = bookmarkNote());
5901
- return _el$42;
5973
+ }), _el$53);
5974
+ _el$53.$$click = () => void handleSaveBookmark();
5975
+ _el$54.$$input = (e) => setBookmarkNote(e.currentTarget.value);
5976
+ createRenderEffect(() => _el$53.disabled = !currentTab()?.url);
5977
+ createRenderEffect(() => _el$54.value = bookmarkNote());
5978
+ return _el$49;
5902
5979
  }
5903
5980
  }), null);
5904
- _el$48.addEventListener("submit", handleCreateFolder);
5905
- _el$50.$$input = (e) => setNewFolderName(e.currentTarget.value);
5906
- _el$51.$$input = (e) => setNewFolderSummary(e.currentTarget.value);
5907
- insert(_el$53, createComponent(Show, {
5981
+ _el$55.addEventListener("submit", handleCreateFolder);
5982
+ _el$57.$$input = (e) => setNewFolderName(e.currentTarget.value);
5983
+ _el$58.$$input = (e) => setNewFolderSummary(e.currentTarget.value);
5984
+ insert(_el$60, createComponent(Show, {
5908
5985
  get when() {
5909
5986
  return filteredGroupedBookmarks().length > 0;
5910
5987
  },
5911
5988
  get fallback() {
5912
5989
  return (() => {
5913
- var _el$108 = _tmpl$29();
5914
- insert(_el$108, (() => {
5990
+ var _el$121 = _tmpl$31();
5991
+ insert(_el$121, (() => {
5915
5992
  var _c$5 = memo(() => !!normalizedBookmarkSearch());
5916
5993
  return () => _c$5() ? `No bookmarks matched "${bookmarkSearchQuery().trim()}".` : "No bookmarks saved yet.";
5917
5994
  })());
5918
- return _el$108;
5995
+ return _el$121;
5919
5996
  })();
5920
5997
  },
5921
5998
  get children() {
@@ -5924,71 +6001,71 @@ ${contextBlock}` : contextBlock);
5924
6001
  return filteredGroupedBookmarks();
5925
6002
  },
5926
6003
  children: (folder) => (() => {
5927
- var _el$109 = _tmpl$34(), _el$110 = _el$109.firstChild, _el$111 = _el$110.firstChild, _el$112 = _el$111.firstChild, _el$113 = _el$112.nextSibling, _el$114 = _el$113.firstChild, _el$115 = _el$114.nextSibling, _el$116 = _el$115.firstChild;
5928
- _el$110.$$keydown = (e) => {
6004
+ var _el$122 = _tmpl$36(), _el$123 = _el$122.firstChild, _el$124 = _el$123.firstChild, _el$125 = _el$124.firstChild, _el$126 = _el$125.nextSibling, _el$127 = _el$126.firstChild, _el$128 = _el$127.nextSibling, _el$129 = _el$128.firstChild;
6005
+ _el$123.$$keydown = (e) => {
5929
6006
  if (e.key === "Enter" || e.key === " ") {
5930
6007
  e.preventDefault();
5931
6008
  toggleFolderExpanded(folder.id);
5932
6009
  }
5933
6010
  };
5934
- _el$110.$$click = () => toggleFolderExpanded(folder.id);
5935
- insert(_el$114, () => folder.name);
5936
- insert(_el$115, () => folder.items.length, _el$116);
5937
- insert(_el$113, createComponent(Show, {
6011
+ _el$123.$$click = () => toggleFolderExpanded(folder.id);
6012
+ insert(_el$127, () => folder.name);
6013
+ insert(_el$128, () => folder.items.length, _el$129);
6014
+ insert(_el$126, createComponent(Show, {
5938
6015
  get when() {
5939
6016
  return folder.summary;
5940
6017
  },
5941
6018
  get children() {
5942
- var _el$117 = _tmpl$30();
5943
- insert(_el$117, () => folder.summary);
5944
- return _el$117;
6019
+ var _el$130 = _tmpl$32();
6020
+ insert(_el$130, () => folder.summary);
6021
+ return _el$130;
5945
6022
  }
5946
6023
  }), null);
5947
- insert(_el$110, createComponent(Show, {
6024
+ insert(_el$123, createComponent(Show, {
5948
6025
  get when() {
5949
6026
  return folder.id !== UNSORTED_FOLDER.id;
5950
6027
  },
5951
6028
  get children() {
5952
- var _el$118 = _tmpl$31(), _el$119 = _el$118.firstChild, _el$120 = _el$119.nextSibling;
5953
- _el$119.$$click = (e) => {
6029
+ var _el$131 = _tmpl$33(), _el$132 = _el$131.firstChild, _el$133 = _el$132.nextSibling;
6030
+ _el$132.$$click = (e) => {
5954
6031
  e.stopPropagation();
5955
6032
  setEditingFolderId(folder.id);
5956
6033
  setEditingFolderName(folder.name);
5957
6034
  setEditingFolderSummary(folder.summary || "");
5958
6035
  };
5959
- _el$120.$$click = (e) => {
6036
+ _el$133.$$click = (e) => {
5960
6037
  e.stopPropagation();
5961
6038
  void handleRemoveFolder(folder.id);
5962
6039
  };
5963
- return _el$118;
6040
+ return _el$131;
5964
6041
  }
5965
6042
  }), null);
5966
- insert(_el$109, createComponent(Show, {
6043
+ insert(_el$122, createComponent(Show, {
5967
6044
  get when() {
5968
6045
  return editingFolderId() === folder.id;
5969
6046
  },
5970
6047
  get children() {
5971
- var _el$121 = _tmpl$32(), _el$122 = _el$121.firstChild, _el$123 = _el$122.firstChild, _el$124 = _el$123.nextSibling, _el$125 = _el$122.nextSibling, _el$126 = _el$125.nextSibling;
5972
- _el$123.$$input = (e) => setEditingFolderName(e.currentTarget.value);
5973
- _el$124.$$input = (e) => setEditingFolderSummary(e.currentTarget.value);
5974
- _el$125.$$click = () => void handleRenameFolder(folder.id);
5975
- _el$126.$$click = () => {
6048
+ var _el$134 = _tmpl$34(), _el$135 = _el$134.firstChild, _el$136 = _el$135.firstChild, _el$137 = _el$136.nextSibling, _el$138 = _el$135.nextSibling, _el$139 = _el$138.nextSibling;
6049
+ _el$136.$$input = (e) => setEditingFolderName(e.currentTarget.value);
6050
+ _el$137.$$input = (e) => setEditingFolderSummary(e.currentTarget.value);
6051
+ _el$138.$$click = () => void handleRenameFolder(folder.id);
6052
+ _el$139.$$click = () => {
5976
6053
  setEditingFolderId(null);
5977
6054
  setEditingFolderName("");
5978
6055
  setEditingFolderSummary("");
5979
6056
  };
5980
- createRenderEffect(() => _el$125.disabled = !editingFolderName().trim());
5981
- createRenderEffect(() => _el$123.value = editingFolderName());
5982
- createRenderEffect(() => _el$124.value = editingFolderSummary());
5983
- return _el$121;
6057
+ createRenderEffect(() => _el$138.disabled = !editingFolderName().trim());
6058
+ createRenderEffect(() => _el$136.value = editingFolderName());
6059
+ createRenderEffect(() => _el$137.value = editingFolderSummary());
6060
+ return _el$134;
5984
6061
  }
5985
6062
  }), null);
5986
- insert(_el$109, createComponent(Show, {
6063
+ insert(_el$122, createComponent(Show, {
5987
6064
  get when() {
5988
6065
  return isFolderExpanded(folder.id);
5989
6066
  },
5990
6067
  get fallback() {
5991
- return _tmpl$35();
6068
+ return _tmpl$37();
5992
6069
  },
5993
6070
  get children() {
5994
6071
  return createComponent(Show, {
@@ -5996,116 +6073,116 @@ ${contextBlock}` : contextBlock);
5996
6073
  return folder.items.length > 0;
5997
6074
  },
5998
6075
  get fallback() {
5999
- return _tmpl$36();
6076
+ return _tmpl$38();
6000
6077
  },
6001
6078
  get children() {
6002
- var _el$127 = _tmpl$33();
6003
- insert(_el$127, createComponent(For, {
6079
+ var _el$140 = _tmpl$35();
6080
+ insert(_el$140, createComponent(For, {
6004
6081
  get each() {
6005
6082
  return folder.items;
6006
6083
  },
6007
6084
  children: (bookmark) => (() => {
6008
- var _el$130 = _tmpl$38(), _el$131 = _el$130.firstChild, _el$132 = _el$131.firstChild, _el$133 = _el$132.nextSibling, _el$135 = _el$131.nextSibling, _el$136 = _el$135.firstChild, _el$137 = _el$136.nextSibling;
6009
- _el$131.$$click = () => void createTab(bookmark.url);
6010
- insert(_el$132, () => bookmark.title || bookmark.url);
6011
- insert(_el$133, () => bookmark.url);
6012
- insert(_el$130, createComponent(Show, {
6085
+ var _el$143 = _tmpl$40(), _el$144 = _el$143.firstChild, _el$145 = _el$144.firstChild, _el$146 = _el$145.nextSibling, _el$148 = _el$144.nextSibling, _el$149 = _el$148.firstChild, _el$150 = _el$149.nextSibling;
6086
+ _el$144.$$click = () => void createTab(bookmark.url);
6087
+ insert(_el$145, () => bookmark.title || bookmark.url);
6088
+ insert(_el$146, () => bookmark.url);
6089
+ insert(_el$143, createComponent(Show, {
6013
6090
  get when() {
6014
6091
  return bookmark.note;
6015
6092
  },
6016
6093
  get children() {
6017
- var _el$134 = _tmpl$37();
6018
- insert(_el$134, () => bookmark.note);
6019
- return _el$134;
6094
+ var _el$147 = _tmpl$39();
6095
+ insert(_el$147, () => bookmark.note);
6096
+ return _el$147;
6020
6097
  }
6021
- }), _el$135);
6022
- insert(_el$136, () => formatBookmarkDate(bookmark.savedAt));
6023
- _el$137.$$click = () => void removeBookmark(bookmark.id);
6024
- createRenderEffect(() => setAttribute(_el$130, "data-bookmark-id", bookmark.id));
6025
- return _el$130;
6098
+ }), _el$148);
6099
+ insert(_el$149, () => formatBookmarkDate(bookmark.savedAt));
6100
+ _el$150.$$click = () => void removeBookmark(bookmark.id);
6101
+ createRenderEffect(() => setAttribute(_el$143, "data-bookmark-id", bookmark.id));
6102
+ return _el$143;
6026
6103
  })()
6027
6104
  }));
6028
- return _el$127;
6105
+ return _el$140;
6029
6106
  }
6030
6107
  });
6031
6108
  }
6032
6109
  }), null);
6033
- createRenderEffect(() => _el$112.classList.toggle("expanded", !!isFolderExpanded(folder.id)));
6034
- return _el$109;
6110
+ createRenderEffect(() => _el$125.classList.toggle("expanded", !!isFolderExpanded(folder.id)));
6111
+ return _el$122;
6035
6112
  })()
6036
6113
  });
6037
6114
  }
6038
6115
  }));
6039
6116
  createRenderEffect((_p$) => {
6040
6117
  var _v$ = !!bookmarkSaveExpanded(), _v$2 = !newFolderName().trim();
6041
- _v$ !== _p$.e && _el$41.classList.toggle("expanded", _p$.e = _v$);
6042
- _v$2 !== _p$.t && (_el$52.disabled = _p$.t = _v$2);
6118
+ _v$ !== _p$.e && _el$48.classList.toggle("expanded", _p$.e = _v$);
6119
+ _v$2 !== _p$.t && (_el$59.disabled = _p$.t = _v$2);
6043
6120
  return _p$;
6044
6121
  }, {
6045
6122
  e: void 0,
6046
6123
  t: void 0
6047
6124
  });
6048
- createRenderEffect(() => _el$37.value = bookmarkSearchQuery());
6049
- createRenderEffect(() => _el$50.value = newFolderName());
6050
- createRenderEffect(() => _el$51.value = newFolderSummary());
6051
- return _el$31;
6125
+ createRenderEffect(() => _el$44.value = bookmarkSearchQuery());
6126
+ createRenderEffect(() => _el$57.value = newFolderName());
6127
+ createRenderEffect(() => _el$58.value = newFolderSummary());
6128
+ return _el$38;
6052
6129
  }
6053
- }), _el$73);
6054
- insert(_el$16, createComponent(Show, {
6130
+ }), _el$86);
6131
+ insert(_el$23, createComponent(Show, {
6055
6132
  get when() {
6056
6133
  return sidebarTab() === "checkpoints";
6057
6134
  },
6058
6135
  get children() {
6059
- var _el$54 = _tmpl$0$2(), _el$55 = _el$54.firstChild, _el$56 = _el$55.firstChild, _el$57 = _el$56.firstChild, _el$58 = _el$57.nextSibling, _el$59 = _el$55.nextSibling, _el$60 = _el$59.firstChild, _el$61 = _el$60.firstChild, _el$62 = _el$61.nextSibling;
6060
- _el$60.nextSibling;
6061
- insert(_el$58, (() => {
6136
+ var _el$61 = _tmpl$1$2(), _el$62 = _el$61.firstChild, _el$63 = _el$62.firstChild, _el$64 = _el$63.firstChild, _el$65 = _el$64.nextSibling, _el$66 = _el$62.nextSibling, _el$67 = _el$66.firstChild, _el$68 = _el$67.firstChild, _el$69 = _el$68.nextSibling;
6137
+ _el$67.nextSibling;
6138
+ insert(_el$65, (() => {
6062
6139
  var _c$3 = memo(() => recentCheckpoints().length > 0);
6063
6140
  return () => _c$3() ? `${recentCheckpoints().length} saved snapshots` : "Save and restore session snapshots";
6064
6141
  })());
6065
- _el$61.$$input = (e) => setCheckpointName(e.currentTarget.value);
6066
- _el$62.$$click = async () => {
6142
+ _el$68.$$input = (e) => setCheckpointName(e.currentTarget.value);
6143
+ _el$69.$$click = async () => {
6067
6144
  const name = checkpointName().trim();
6068
6145
  await createCheckpoint(name || void 0);
6069
6146
  setCheckpointName("");
6070
6147
  };
6071
- insert(_el$59, createComponent(Show, {
6148
+ insert(_el$66, createComponent(Show, {
6072
6149
  get when() {
6073
6150
  return recentCheckpoints().length > 0;
6074
6151
  },
6075
6152
  get fallback() {
6076
- return _tmpl$39();
6153
+ return _tmpl$41();
6077
6154
  },
6078
6155
  get children() {
6079
- var _el$64 = _tmpl$9$2();
6080
- insert(_el$64, createComponent(For, {
6156
+ var _el$71 = _tmpl$0$2();
6157
+ insert(_el$71, createComponent(For, {
6081
6158
  get each() {
6082
6159
  return recentCheckpoints();
6083
6160
  },
6084
6161
  children: (checkpoint, i) => (() => {
6085
- var _el$139 = _tmpl$41(), _el$140 = _el$139.firstChild, _el$141 = _el$140.firstChild, _el$143 = _el$140.nextSibling, _el$144 = _el$143.firstChild, _el$145 = _el$144.nextSibling, _el$146 = _el$145.nextSibling;
6086
- insert(_el$140, createComponent(Show, {
6162
+ var _el$152 = _tmpl$43(), _el$153 = _el$152.firstChild, _el$154 = _el$153.firstChild, _el$156 = _el$153.nextSibling, _el$157 = _el$156.firstChild, _el$158 = _el$157.nextSibling, _el$159 = _el$158.nextSibling;
6163
+ insert(_el$153, createComponent(Show, {
6087
6164
  get when() {
6088
6165
  return i() < recentCheckpoints().length - 1;
6089
6166
  },
6090
6167
  get children() {
6091
- return _tmpl$40();
6168
+ return _tmpl$42();
6092
6169
  }
6093
6170
  }), null);
6094
- insert(_el$144, () => checkpoint.name);
6095
- insert(_el$145, () => new Date(checkpoint.createdAt).toLocaleString());
6096
- _el$146.$$click = () => void restoreCheckpoint(checkpoint.id);
6097
- createRenderEffect(() => _el$141.classList.toggle("latest", !!(i() === 0)));
6098
- return _el$139;
6171
+ insert(_el$157, () => checkpoint.name);
6172
+ insert(_el$158, () => new Date(checkpoint.createdAt).toLocaleString());
6173
+ _el$159.$$click = () => void restoreCheckpoint(checkpoint.id);
6174
+ createRenderEffect(() => _el$154.classList.toggle("latest", !!(i() === 0)));
6175
+ return _el$152;
6099
6176
  })()
6100
6177
  }));
6101
- return _el$64;
6178
+ return _el$71;
6102
6179
  }
6103
6180
  }), null);
6104
- createRenderEffect(() => _el$61.value = checkpointName());
6105
- return _el$54;
6181
+ createRenderEffect(() => _el$68.value = checkpointName());
6182
+ return _el$61;
6106
6183
  }
6107
- }), _el$73);
6108
- insert(_el$16, createComponent(Show, {
6184
+ }), _el$86);
6185
+ insert(_el$23, createComponent(Show, {
6109
6186
  get when() {
6110
6187
  return sidebarTab() === "automation";
6111
6188
  },
@@ -6114,61 +6191,97 @@ ${contextBlock}` : contextBlock);
6114
6191
  onRun: () => setSidebarTab("supervisor")
6115
6192
  });
6116
6193
  }
6117
- }), _el$73);
6118
- insert(_el$16, createComponent(Show, {
6194
+ }), _el$86);
6195
+ insert(_el$23, createComponent(Show, {
6119
6196
  get when() {
6120
6197
  return sidebarTab() === "chat";
6121
6198
  },
6122
6199
  get children() {
6123
- return [createComponent(For, {
6200
+ return [createComponent(Show, {
6201
+ get when() {
6202
+ return !isPremium();
6203
+ },
6204
+ get children() {
6205
+ var _el$72 = _tmpl$10$2(), _el$73 = _el$72.firstChild, _el$74 = _el$73.nextSibling, _el$75 = _el$74.nextSibling, _el$76 = _el$75.firstChild, _el$77 = _el$76.nextSibling;
6206
+ _el$76.$$click = () => openPremiumCheckout("chat_banner_clicked");
6207
+ _el$77.$$click = openPremiumDetails;
6208
+ return _el$72;
6209
+ }
6210
+ }), createComponent(For, {
6124
6211
  get each() {
6125
6212
  return messages2();
6126
6213
  },
6127
6214
  children: (msg) => (() => {
6128
- var _el$147 = _tmpl$42();
6129
- insert(_el$147, createComponent(MarkdownMessage, {
6215
+ var _el$160 = _tmpl$44();
6216
+ insert(_el$160, createComponent(MarkdownMessage, {
6130
6217
  get content() {
6131
6218
  return msg.content;
6132
6219
  }
6133
- }));
6134
- createRenderEffect(() => className(_el$147, `message message-${msg.role}`));
6135
- return _el$147;
6220
+ }), null);
6221
+ insert(_el$160, createComponent(Show, {
6222
+ get when() {
6223
+ return memo(() => msg.role === "assistant")() ? getPremiumPromptKind(msg.content) : null;
6224
+ },
6225
+ children: (kind) => createComponent(PremiumPromptCard, {
6226
+ get kind() {
6227
+ return kind();
6228
+ },
6229
+ compact: true,
6230
+ onStartTrial: () => openPremiumCheckout(kind() === "premium_gate" ? "premium_gate_clicked" : "iteration_limit_clicked"),
6231
+ onOpenSettings: openPremiumDetails
6232
+ })
6233
+ }), null);
6234
+ createRenderEffect(() => className(_el$160, `message message-${msg.role}`));
6235
+ return _el$160;
6136
6236
  })()
6137
6237
  }), createComponent(Show, {
6138
6238
  get when() {
6139
6239
  return isStreaming2();
6140
6240
  },
6141
6241
  get children() {
6142
- var _el$65 = _tmpl$11$2(), _el$66 = _el$65.firstChild;
6143
- insert(_el$66, createComponent(Show, {
6242
+ var _el$78 = _tmpl$13$1(), _el$79 = _el$78.firstChild;
6243
+ insert(_el$79, createComponent(Show, {
6144
6244
  get when() {
6145
6245
  return hasFirstChunk2();
6146
6246
  },
6147
6247
  get fallback() {
6148
- return _tmpl$43();
6248
+ return _tmpl$45();
6149
6249
  },
6150
6250
  get children() {
6151
- var _el$67 = _tmpl$10$2(), _el$68 = _el$67.firstChild, _el$69 = _el$68.firstChild;
6152
- _el$69.nextSibling;
6153
- insert(_el$67, createComponent(MarkdownMessage, {
6251
+ var _el$80 = _tmpl$12$2(), _el$81 = _el$80.firstChild, _el$82 = _el$81.firstChild;
6252
+ _el$82.nextSibling;
6253
+ insert(_el$80, createComponent(MarkdownMessage, {
6154
6254
  get content() {
6155
6255
  return streamingText2();
6156
6256
  }
6157
- }), _el$68);
6158
- insert(_el$68, createComponent(Show, {
6257
+ }), _el$81);
6258
+ insert(_el$80, createComponent(Show, {
6259
+ get when() {
6260
+ return getPremiumPromptKind(streamingText2());
6261
+ },
6262
+ children: (kind) => createComponent(PremiumPromptCard, {
6263
+ get kind() {
6264
+ return kind();
6265
+ },
6266
+ compact: true,
6267
+ onStartTrial: () => openPremiumCheckout(kind() === "premium_gate" ? "premium_gate_clicked" : "iteration_limit_clicked"),
6268
+ onOpenSettings: openPremiumDetails
6269
+ })
6270
+ }), _el$81);
6271
+ insert(_el$81, createComponent(Show, {
6159
6272
  get when() {
6160
6273
  return elapsedSeconds() > 0;
6161
6274
  },
6162
6275
  get children() {
6163
- var _el$71 = _tmpl$1$2();
6164
- insert(_el$71, () => ` • ${elapsedSeconds()}s`);
6165
- return _el$71;
6276
+ var _el$84 = _tmpl$11$2();
6277
+ insert(_el$84, () => ` • ${elapsedSeconds()}s`);
6278
+ return _el$84;
6166
6279
  }
6167
6280
  }), null);
6168
- return _el$67;
6281
+ return _el$80;
6169
6282
  }
6170
6283
  }));
6171
- return _el$65;
6284
+ return _el$78;
6172
6285
  }
6173
6286
  }), createComponent(Show, {
6174
6287
  get when() {
@@ -6180,22 +6293,22 @@ ${contextBlock}` : contextBlock);
6180
6293
  return runtimeState2().supervisor.pendingApprovals;
6181
6294
  },
6182
6295
  children: (approval) => (() => {
6183
- var _el$149 = _tmpl$45(), _el$150 = _el$149.firstChild, _el$151 = _el$150.nextSibling, _el$152 = _el$151.firstChild, _el$153 = _el$152.firstChild, _el$154 = _el$153.nextSibling, _el$156 = _el$152.nextSibling, _el$157 = _el$156.nextSibling, _el$158 = _el$157.firstChild, _el$159 = _el$158.nextSibling;
6184
- insert(_el$154, () => approval.name);
6185
- insert(_el$151, createComponent(Show, {
6296
+ var _el$162 = _tmpl$47(), _el$163 = _el$162.firstChild, _el$164 = _el$163.nextSibling, _el$165 = _el$164.firstChild, _el$166 = _el$165.firstChild, _el$167 = _el$166.nextSibling, _el$169 = _el$165.nextSibling, _el$170 = _el$169.nextSibling, _el$171 = _el$170.firstChild, _el$172 = _el$171.nextSibling;
6297
+ insert(_el$167, () => approval.name);
6298
+ insert(_el$164, createComponent(Show, {
6186
6299
  get when() {
6187
6300
  return approval.argsSummary;
6188
6301
  },
6189
6302
  get children() {
6190
- var _el$155 = _tmpl$44();
6191
- insert(_el$155, () => approval.argsSummary);
6192
- return _el$155;
6303
+ var _el$168 = _tmpl$46();
6304
+ insert(_el$168, () => approval.argsSummary);
6305
+ return _el$168;
6193
6306
  }
6194
- }), _el$156);
6195
- insert(_el$156, () => approval.reason);
6196
- _el$158.$$click = () => void resolveApproval(approval.id, true);
6197
- _el$159.$$click = () => void resolveApproval(approval.id, false);
6198
- return _el$149;
6307
+ }), _el$169);
6308
+ insert(_el$169, () => approval.reason);
6309
+ _el$171.$$click = () => void resolveApproval(approval.id, true);
6310
+ _el$172.$$click = () => void resolveApproval(approval.id, false);
6311
+ return _el$162;
6199
6312
  })()
6200
6313
  });
6201
6314
  }
@@ -6204,14 +6317,14 @@ ${contextBlock}` : contextBlock);
6204
6317
  return memo(() => messages2().length === 0)() && !isStreaming2();
6205
6318
  },
6206
6319
  get children() {
6207
- return _tmpl$12$2();
6320
+ return _tmpl$14$1();
6208
6321
  }
6209
6322
  })];
6210
6323
  }
6211
- }), _el$73);
6324
+ }), _el$86);
6212
6325
  var _ref$ = messagesEndRef;
6213
- typeof _ref$ === "function" ? use(_ref$, _el$73) : messagesEndRef = _el$73;
6214
- insert(_el$2, createComponent(Show, {
6326
+ typeof _ref$ === "function" ? use(_ref$, _el$86) : messagesEndRef = _el$86;
6327
+ insert(_el$9, createComponent(Show, {
6215
6328
  get when() {
6216
6329
  return sidebarTab() === "chat";
6217
6330
  },
@@ -6221,137 +6334,137 @@ ${contextBlock}` : contextBlock);
6221
6334
  return isStreaming2() || messages2().length > 0;
6222
6335
  },
6223
6336
  get children() {
6224
- var _el$74 = _tmpl$15$1();
6225
- insert(_el$74, createComponent(Show, {
6337
+ var _el$87 = _tmpl$17$1();
6338
+ insert(_el$87, createComponent(Show, {
6226
6339
  get when() {
6227
6340
  return isStreaming2();
6228
6341
  },
6229
6342
  get children() {
6230
- var _el$75 = _tmpl$13$1();
6231
- _el$75.$$click = () => cancel();
6232
- return _el$75;
6343
+ var _el$88 = _tmpl$15$1();
6344
+ _el$88.$$click = () => cancel();
6345
+ return _el$88;
6233
6346
  }
6234
6347
  }), null);
6235
- insert(_el$74, createComponent(Show, {
6348
+ insert(_el$87, createComponent(Show, {
6236
6349
  get when() {
6237
6350
  return memo(() => !!!isStreaming2())() && messages2().length > 0;
6238
6351
  },
6239
6352
  get children() {
6240
- var _el$76 = _tmpl$14$1();
6241
- _el$76.$$click = handleRetry;
6242
- return _el$76;
6353
+ var _el$89 = _tmpl$16$1();
6354
+ _el$89.$$click = handleRetry;
6355
+ return _el$89;
6243
6356
  }
6244
6357
  }), null);
6245
- return _el$74;
6358
+ return _el$87;
6246
6359
  }
6247
6360
  }), createComponent(Show, {
6248
6361
  get when() {
6249
6362
  return highlightCount() > 0;
6250
6363
  },
6251
6364
  get children() {
6252
- var _el$77 = _tmpl$16$1(), _el$78 = _el$77.firstChild, _el$79 = _el$78.nextSibling;
6253
- _el$79.firstChild;
6254
- var _el$81 = _el$79.nextSibling;
6255
- _el$78.$$click = () => void scrollToHighlight(highlightIndex() - 1);
6256
- _el$79.$$click = () => void scrollToHighlight(highlightIndex() < 0 ? 0 : highlightIndex());
6257
- insert(_el$79, (() => {
6365
+ var _el$90 = _tmpl$18$1(), _el$91 = _el$90.firstChild, _el$92 = _el$91.nextSibling;
6366
+ _el$92.firstChild;
6367
+ var _el$94 = _el$92.nextSibling;
6368
+ _el$91.$$click = () => void scrollToHighlight(highlightIndex() - 1);
6369
+ _el$92.$$click = () => void scrollToHighlight(highlightIndex() < 0 ? 0 : highlightIndex());
6370
+ insert(_el$92, (() => {
6258
6371
  var _c$4 = memo(() => highlightIndex() >= 0);
6259
6372
  return () => _c$4() ? `${highlightIndex() + 1} / ${highlightCount()}` : `${highlightCount()} highlight${highlightCount() > 1 ? "s" : ""}`;
6260
6373
  })(), null);
6261
- _el$81.$$click = () => void scrollToHighlight(highlightIndex() < 0 ? 0 : highlightIndex() + 1);
6374
+ _el$94.$$click = () => void scrollToHighlight(highlightIndex() < 0 ? 0 : highlightIndex() + 1);
6262
6375
  createRenderEffect((_p$) => {
6263
6376
  var _v$3 = highlightIndex() <= 0, _v$4 = highlightIndex() >= highlightCount() - 1;
6264
- _v$3 !== _p$.e && (_el$78.disabled = _p$.e = _v$3);
6265
- _v$4 !== _p$.t && (_el$81.disabled = _p$.t = _v$4);
6377
+ _v$3 !== _p$.e && (_el$91.disabled = _p$.e = _v$3);
6378
+ _v$4 !== _p$.t && (_el$94.disabled = _p$.t = _v$4);
6266
6379
  return _p$;
6267
6380
  }, {
6268
6381
  e: void 0,
6269
6382
  t: void 0
6270
6383
  });
6271
- return _el$77;
6384
+ return _el$90;
6272
6385
  }
6273
6386
  }), createComponent(Show, {
6274
6387
  get when() {
6275
6388
  return queueNotice2() !== null || pendingQueryCount() > 0;
6276
6389
  },
6277
6390
  get children() {
6278
- var _el$82 = _tmpl$19$1(), _el$83 = _el$82.firstChild, _el$84 = _el$83.firstChild;
6279
- insert(_el$84, () => queueNotice2() ?? `Queued ${pendingQueryCount()}/${pendingQueryLimit}.`);
6280
- insert(_el$83, createComponent(Show, {
6391
+ var _el$95 = _tmpl$21$1(), _el$96 = _el$95.firstChild, _el$97 = _el$96.firstChild;
6392
+ insert(_el$97, () => queueNotice2() ?? `Queued ${pendingQueryCount()}/${pendingQueryLimit}.`);
6393
+ insert(_el$96, createComponent(Show, {
6281
6394
  get when() {
6282
6395
  return pendingQueryCount() > 0;
6283
6396
  },
6284
6397
  get children() {
6285
- var _el$85 = _tmpl$17$1();
6286
- _el$85.$$click = () => clearPendingQueries();
6287
- return _el$85;
6398
+ var _el$98 = _tmpl$19$1();
6399
+ _el$98.$$click = () => clearPendingQueries();
6400
+ return _el$98;
6288
6401
  }
6289
6402
  }), null);
6290
- insert(_el$82, createComponent(Show, {
6403
+ insert(_el$95, createComponent(Show, {
6291
6404
  get when() {
6292
6405
  return pendingQueries2().length > 0;
6293
6406
  },
6294
6407
  get children() {
6295
- var _el$86 = _tmpl$18$1();
6296
- insert(_el$86, createComponent(For, {
6408
+ var _el$99 = _tmpl$20$1();
6409
+ insert(_el$99, createComponent(For, {
6297
6410
  get each() {
6298
6411
  return pendingQueries2();
6299
6412
  },
6300
6413
  children: (pendingPrompt, index) => (() => {
6301
- var _el$160 = _tmpl$46(), _el$161 = _el$160.firstChild, _el$162 = _el$161.nextSibling;
6302
- setAttribute(_el$161, "title", pendingPrompt);
6303
- insert(_el$161, pendingPrompt);
6304
- _el$162.$$click = () => removePendingQuery(index());
6305
- createRenderEffect(() => setAttribute(_el$162, "aria-label", `Remove queued prompt ${index() + 1}`));
6306
- return _el$160;
6414
+ var _el$173 = _tmpl$48(), _el$174 = _el$173.firstChild, _el$175 = _el$174.nextSibling;
6415
+ setAttribute(_el$174, "title", pendingPrompt);
6416
+ insert(_el$174, pendingPrompt);
6417
+ _el$175.$$click = () => removePendingQuery(index());
6418
+ createRenderEffect(() => setAttribute(_el$175, "aria-label", `Remove queued prompt ${index() + 1}`));
6419
+ return _el$173;
6307
6420
  })()
6308
6421
  }));
6309
- return _el$86;
6422
+ return _el$99;
6310
6423
  }
6311
6424
  }), null);
6312
- return _el$82;
6425
+ return _el$95;
6313
6426
  }
6314
6427
  }), (() => {
6315
- var _el$87 = _tmpl$20$1(), _el$88 = _el$87.firstChild, _el$89 = _el$88.nextSibling;
6316
- _el$88.$$keydown = (e) => {
6428
+ var _el$100 = _tmpl$22$1(), _el$101 = _el$100.firstChild, _el$102 = _el$101.nextSibling;
6429
+ _el$101.$$keydown = (e) => {
6317
6430
  if (e.key === "Enter" && !e.shiftKey) {
6318
6431
  e.preventDefault();
6319
6432
  void handleChatSend();
6320
6433
  }
6321
6434
  };
6322
- _el$88.$$input = (e) => setChatInput(e.currentTarget.value);
6435
+ _el$101.$$input = (e) => setChatInput(e.currentTarget.value);
6323
6436
  var _ref$2 = chatInputRef;
6324
- typeof _ref$2 === "function" ? use(_ref$2, _el$88) : chatInputRef = _el$88;
6325
- _el$89.$$click = () => void handleChatSend();
6326
- insert(_el$89, () => isStreaming2() ? "Queue" : "Send");
6437
+ typeof _ref$2 === "function" ? use(_ref$2, _el$101) : chatInputRef = _el$101;
6438
+ _el$102.$$click = () => void handleChatSend();
6439
+ insert(_el$102, () => isStreaming2() ? "Queue" : "Send");
6327
6440
  createRenderEffect((_p$) => {
6328
6441
  var _v$5 = isStreaming2() ? "Send now to queue the next prompt..." : "Ask anything...", _v$6 = !chatInput().trim();
6329
- _v$5 !== _p$.e && setAttribute(_el$88, "placeholder", _p$.e = _v$5);
6330
- _v$6 !== _p$.t && (_el$89.disabled = _p$.t = _v$6);
6442
+ _v$5 !== _p$.e && setAttribute(_el$101, "placeholder", _p$.e = _v$5);
6443
+ _v$6 !== _p$.t && (_el$102.disabled = _p$.t = _v$6);
6331
6444
  return _p$;
6332
6445
  }, {
6333
6446
  e: void 0,
6334
6447
  t: void 0
6335
6448
  });
6336
- createRenderEffect(() => _el$88.value = chatInput());
6337
- return _el$87;
6449
+ createRenderEffect(() => _el$101.value = chatInput());
6450
+ return _el$100;
6338
6451
  })()];
6339
6452
  }
6340
6453
  }), null);
6341
6454
  createRenderEffect((_p$) => {
6342
6455
  var _v$7 = `${sidebarWidth2()}px`, _v$8 = !!isDragging(), _v$9 = !!(sidebarTab() === "supervisor"), _v$0 = sidebarTab() === "supervisor", _v$1 = !!(sidebarTab() === "bookmarks"), _v$10 = sidebarTab() === "bookmarks", _v$11 = !!(sidebarTab() === "checkpoints"), _v$12 = sidebarTab() === "checkpoints", _v$13 = !!(sidebarTab() === "chat"), _v$14 = sidebarTab() === "chat", _v$15 = !!(sidebarTab() === "automation"), _v$16 = sidebarTab() === "automation";
6343
- _v$7 !== _p$.e && setStyleProperty(_el$2, "width", _p$.e = _v$7);
6344
- _v$8 !== _p$.t && _el$3.classList.toggle("dragging", _p$.t = _v$8);
6345
- _v$9 !== _p$.a && _el$1.classList.toggle("active", _p$.a = _v$9);
6346
- _v$0 !== _p$.o && setAttribute(_el$1, "aria-selected", _p$.o = _v$0);
6347
- _v$1 !== _p$.i && _el$12.classList.toggle("active", _p$.i = _v$1);
6348
- _v$10 !== _p$.n && setAttribute(_el$12, "aria-selected", _p$.n = _v$10);
6349
- _v$11 !== _p$.s && _el$13.classList.toggle("active", _p$.s = _v$11);
6350
- _v$12 !== _p$.h && setAttribute(_el$13, "aria-selected", _p$.h = _v$12);
6351
- _v$13 !== _p$.r && _el$14.classList.toggle("active", _p$.r = _v$13);
6352
- _v$14 !== _p$.d && setAttribute(_el$14, "aria-selected", _p$.d = _v$14);
6353
- _v$15 !== _p$.l && _el$15.classList.toggle("active", _p$.l = _v$15);
6354
- _v$16 !== _p$.u && setAttribute(_el$15, "aria-selected", _p$.u = _v$16);
6456
+ _v$7 !== _p$.e && setStyleProperty(_el$9, "width", _p$.e = _v$7);
6457
+ _v$8 !== _p$.t && _el$0.classList.toggle("dragging", _p$.t = _v$8);
6458
+ _v$9 !== _p$.a && _el$16.classList.toggle("active", _p$.a = _v$9);
6459
+ _v$0 !== _p$.o && setAttribute(_el$16, "aria-selected", _p$.o = _v$0);
6460
+ _v$1 !== _p$.i && _el$19.classList.toggle("active", _p$.i = _v$1);
6461
+ _v$10 !== _p$.n && setAttribute(_el$19, "aria-selected", _p$.n = _v$10);
6462
+ _v$11 !== _p$.s && _el$20.classList.toggle("active", _p$.s = _v$11);
6463
+ _v$12 !== _p$.h && setAttribute(_el$20, "aria-selected", _p$.h = _v$12);
6464
+ _v$13 !== _p$.r && _el$21.classList.toggle("active", _p$.r = _v$13);
6465
+ _v$14 !== _p$.d && setAttribute(_el$21, "aria-selected", _p$.d = _v$14);
6466
+ _v$15 !== _p$.l && _el$22.classList.toggle("active", _p$.l = _v$15);
6467
+ _v$16 !== _p$.u && setAttribute(_el$22, "aria-selected", _p$.u = _v$16);
6355
6468
  return _p$;
6356
6469
  }, {
6357
6470
  e: void 0,
@@ -6367,11 +6480,11 @@ ${contextBlock}` : contextBlock);
6367
6480
  l: void 0,
6368
6481
  u: void 0
6369
6482
  });
6370
- return _el$2;
6483
+ return _el$9;
6371
6484
  }
6372
6485
  });
6373
6486
  };
6374
- delegateEvents(["pointerdown", "click", "input", "keydown"]);
6487
+ delegateEvents(["click", "pointerdown", "input", "keydown"]);
6375
6488
  var _tmpl$$3 = /* @__PURE__ */ template(`<div class=devtools-console>`), _tmpl$2$3 = /* @__PURE__ */ template(`<div class=devtools-empty>Waiting for console output... Console monitoring activates when an agent uses devtools.`), _tmpl$3$2 = /* @__PURE__ */ template(`<div><span></span><span class=console-time></span><span class=console-text></span><span class=console-source>`), _tmpl$4$2 = /* @__PURE__ */ template(`<div class=devtools-network><div class=network-header><span>Method</span><span>URL</span><span>Status</span><span>Type</span><span>Time`), _tmpl$5$2 = /* @__PURE__ */ template(`<div class=devtools-empty>Waiting for network requests... Network monitoring activates when an agent uses devtools.`), _tmpl$6$2 = /* @__PURE__ */ template(`<div><span class=network-method></span><span class=network-url></span><span></span><span class=network-type></span><span class=network-duration>`), _tmpl$7$1 = /* @__PURE__ */ template(`<div class=devtools-activity>`), _tmpl$8$1 = /* @__PURE__ */ template(`<div class=devtools-empty>Waiting for agent devtools activity...`), _tmpl$9$1 = /* @__PURE__ */ template(`<div class=activity-entry><span class=activity-time></span><span class=activity-tool></span><span class=activity-args></span><span></span><span class=activity-duration>`), _tmpl$0$1 = /* @__PURE__ */ template(`<span class="devtools-tab-badge error">`), _tmpl$1$1 = /* @__PURE__ */ template(`<span class="devtools-tab-badge count">`), _tmpl$10$1 = /* @__PURE__ */ template(`<div class=export-date-inputs><div class=export-date-row><span class=export-date-label>From</span><input class=export-date-input type=date></div><div class=export-date-row><span class=export-date-label>To</span><input class=export-date-input type=date>`), _tmpl$11$1 = /* @__PURE__ */ template(`<div class=devtools-export-dropdown><div class=export-section><div class=export-section-label>Log Types</div><label class=export-checkbox><input type=checkbox>Console</label><label class=export-checkbox><input type=checkbox>Network</label><label class=export-checkbox><input type=checkbox>Activity</label></div><div class=export-section><div class=export-section-label>Date Range</div><div class=export-date-btns><button>Today</button><button>Custom</button></div></div><button class=export-submit>Export JSON`), _tmpl$12$1 = /* @__PURE__ */ template(`<div class=devtools-panel><div class=devtools-tabs><button>Console</button><button>Network</button><button>Activity</button><div class=devtools-tab-spacer></div><div class=devtools-export-wrap><button title="Export Logs"><svg width=13 height=13 viewBox="0 0 13 13"fill=none style=vertical-align:middle><path d="M6.5 1v7M3.5 5l3 3 3-3"stroke=currentColor stroke-width=1.3 stroke-linecap=round stroke-linejoin=round></path><path d="M1 9.5v1A1.5 1.5 0 0 0 2.5 12h8A1.5 1.5 0 0 0 12 10.5v-1"stroke=currentColor stroke-width=1.3 stroke-linecap=round></path></svg></button></div><button class=devtools-close-btn title="Close DevTools">×</button></div><div class=devtools-content>`);
6376
6489
  function formatTime(iso) {
6377
6490
  try {
@@ -6801,7 +6914,7 @@ const DevToolsPanel = () => {
6801
6914
  })();
6802
6915
  };
6803
6916
  delegateEvents(["click", "input"]);
6804
- var _tmpl$$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$2$2 = /* @__PURE__ */ template(`<input id=max-tool-iterations class=settings-input type=number min=10 max=1000 placeholder=200>`), _tmpl$3$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$4$1 = /* @__PURE__ */ template(`<div class=settings-field><label class=settings-label for=chat-api-key>API Key</label><input id=chat-api-key class=settings-input type=password>`), _tmpl$5$1 = /* @__PURE__ */ template(`<select id=chat-model class="settings-input settings-select"style=flex:1>`), _tmpl$6$1 = /* @__PURE__ */ template(`<p class=settings-hint style=color:var(--error)>Could not fetch models — check your API key and connection.`), _tmpl$7 = /* @__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$8 = /* @__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$9 = /* @__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$0 = /* @__PURE__ */ template(`<span class=vault-premium-badge>Premium`), _tmpl$1 = /* @__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$10 = /* @__PURE__ */ template(`<div class=vault-entries>`), _tmpl$11 = /* @__PURE__ */ template(`<button class=vault-add-btn>+ Add Credential`), _tmpl$12 = /* @__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$13 = /* @__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$14 = /* @__PURE__ */ template(`<style>
6917
+ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner-actions><button class="premium-btn premium-btn-upgrade">Try Premium free for 5 days</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 5-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 free trial</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(`<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$7 = /* @__PURE__ */ template(`<select id=chat-model class="settings-input settings-select"style=flex:1>`), _tmpl$8 = /* @__PURE__ */ template(`<p class=settings-hint style=color:var(--error)>Could not fetch models — check your API key and connection.`), _tmpl$9 = /* @__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$0 = /* @__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$1 = /* @__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$10 = /* @__PURE__ */ template(`<span class=vault-premium-badge>Premium`), _tmpl$11 = /* @__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$12 = /* @__PURE__ */ template(`<div class=vault-entries>`), _tmpl$13 = /* @__PURE__ */ template(`<button class=vault-add-btn>+ Add Credential`), _tmpl$14 = /* @__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$15 = /* @__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$16 = /* @__PURE__ */ template(`<style>
6805
6918
  .settings-panel {
6806
6919
  width: min(440px, calc(100vw - 32px));
6807
6920
  max-height: calc(100vh - 48px);
@@ -6845,6 +6958,18 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner><div class=we
6845
6958
  color: var(--text-secondary);
6846
6959
  margin: 0;
6847
6960
  }
6961
+ .settings-premium-callout {
6962
+ background:
6963
+ radial-gradient(circle at top right, rgba(196, 160, 90, 0.16), transparent 40%),
6964
+ rgba(224, 200, 120, 0.06);
6965
+ border-color: rgba(196, 160, 90, 0.22);
6966
+ }
6967
+ .settings-premium-callout-actions {
6968
+ display: flex;
6969
+ flex-wrap: wrap;
6970
+ gap: 10px;
6971
+ margin-top: 12px;
6972
+ }
6848
6973
  .settings-field {
6849
6974
  margin-bottom: 18px;
6850
6975
  }
@@ -7203,6 +7328,19 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner><div class=we
7203
7328
  border-radius: 3px;
7204
7329
  color: var(--text-primary);
7205
7330
  }
7331
+ .welcome-banner-actions {
7332
+ margin-top: 14px;
7333
+ display: flex;
7334
+ flex-wrap: wrap;
7335
+ gap: 10px;
7336
+ align-items: center;
7337
+ }
7338
+ .welcome-banner-note {
7339
+ font-size: 11px;
7340
+ line-height: 1.5;
7341
+ color: var(--text-muted);
7342
+ max-width: 360px;
7343
+ }
7206
7344
 
7207
7345
  /* Agent Credential Vault */
7208
7346
  .vault-premium-badge {
@@ -7303,7 +7441,7 @@ var _tmpl$$2 = /* @__PURE__ */ template(`<div class=welcome-banner><div class=we
7303
7441
  justify-content: flex-end;
7304
7442
  margin-top: 4px;
7305
7443
  }
7306
- `), _tmpl$15 = /* @__PURE__ */ template(`<div class="settings-input settings-input-disabled"title="Upgrade to Vessel Premium for unlimited tool iterations">50`), _tmpl$16 = /* @__PURE__ */ template(`<div class=settings-health-issues>`), _tmpl$17 = /* @__PURE__ */ template(`<div class=settings-health><div class=settings-callout-title>Runtime Health</div><p class=settings-hint>MCP status: <strong></strong> `), _tmpl$18 = /* @__PURE__ */ template(`<p class=settings-hint>Active endpoint: <code>`), _tmpl$19 = /* @__PURE__ */ template(`<div class=settings-health-issue><strong></strong><div>`), _tmpl$20 = /* @__PURE__ */ template(`<div>`), _tmpl$21 = /* @__PURE__ */ template(`<option>`), _tmpl$22 = /* @__PURE__ */ template(`<input id=chat-model class=settings-input style=flex:1>`), _tmpl$23 = /* @__PURE__ */ template(`<button class="premium-btn premium-btn-reset">Clear Saved Email`), _tmpl$24 = /* @__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-day free trial`), _tmpl$25 = /* @__PURE__ */ template(`<p class=settings-status>`), _tmpl$26 = /* @__PURE__ */ template(`<p class=settings-hint>Securely store credentials for agent-driven logins. Upgrade to Premium to unlock the Agent Credential Vault.`), _tmpl$27 = /* @__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;`);
7444
+ `), _tmpl$17 = /* @__PURE__ */ template(`<div class="settings-input settings-input-disabled"title="Upgrade to Vessel Premium for unlimited tool iterations">50`), _tmpl$18 = /* @__PURE__ */ template(`<div class=settings-health-issues>`), _tmpl$19 = /* @__PURE__ */ template(`<div class=settings-health><div class=settings-callout-title>Runtime Health</div><p class=settings-hint>MCP status: <strong></strong> `), _tmpl$20 = /* @__PURE__ */ template(`<p class=settings-hint>Active endpoint: <code>`), _tmpl$21 = /* @__PURE__ */ template(`<div class=settings-health-issue><strong></strong><div>`), _tmpl$22 = /* @__PURE__ */ template(`<div>`), _tmpl$23 = /* @__PURE__ */ template(`<option>`), _tmpl$24 = /* @__PURE__ */ template(`<input id=chat-model class=settings-input style=flex:1>`), _tmpl$25 = /* @__PURE__ */ template(`<button class="premium-btn premium-btn-reset">Clear Saved Email`), _tmpl$26 = /* @__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-day free trial`), _tmpl$27 = /* @__PURE__ */ template(`<p class=settings-status>`), _tmpl$28 = /* @__PURE__ */ template(`<p class=settings-hint>Securely store credentials for agent-driven logins. Upgrade to Premium to unlock the Agent Credential Vault.`), _tmpl$29 = /* @__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;`);
7307
7445
  const CHAT_PROVIDERS = [{
7308
7446
  id: "anthropic",
7309
7447
  name: "Anthropic",
@@ -7469,10 +7607,16 @@ const Settings = () => {
7469
7607
  const [premiumEmail, setPremiumEmail] = createSignal("");
7470
7608
  const [premiumLoading, setPremiumLoading] = createSignal(false);
7471
7609
  const [premiumMessage, setPremiumMessage] = createSignal(null);
7610
+ let trackedSettingsPremiumBanner = false;
7472
7611
  const premiumActive = () => {
7473
7612
  const s = premiumState().status;
7474
7613
  return s === "active" || s === "trialing";
7475
7614
  };
7615
+ const trackPremiumContext = (step) => window.vessel.premium.trackContext(step).catch(() => {
7616
+ });
7617
+ const startPremiumCheckout = () => {
7618
+ void window.vessel.premium.checkout(premiumEmail().trim() || void 0);
7619
+ };
7476
7620
  const [chatEnabled, setChatEnabled] = createSignal(false);
7477
7621
  const [chatProviderId, setChatProviderId] = createSignal("anthropic");
7478
7622
  const [chatApiKey, setChatApiKey] = createSignal("");
@@ -7559,13 +7703,34 @@ const Settings = () => {
7559
7703
  const unsubscribe = window.vessel.settings.onHealthUpdate((nextHealth) => {
7560
7704
  setHealth(nextHealth);
7561
7705
  });
7562
- onCleanup(unsubscribe);
7706
+ const unsubscribePremium = window.vessel.premium.onUpdate((nextState) => {
7707
+ setPremiumState(nextState);
7708
+ if (nextState.email) {
7709
+ setPremiumEmail(nextState.email);
7710
+ }
7711
+ if (nextState.status === "active" || nextState.status === "trialing") {
7712
+ setPremiumMessage({
7713
+ kind: "success",
7714
+ text: nextState.status === "trialing" ? "Premium trial active. Enjoy the unlocked toolkit." : "Premium activated. Your premium tools are ready."
7715
+ });
7716
+ }
7717
+ });
7718
+ onCleanup(() => {
7719
+ unsubscribe();
7720
+ unsubscribePremium();
7721
+ });
7563
7722
  });
7564
7723
  createEffect(() => {
7565
7724
  if (settingsOpen2()) {
7566
7725
  void loadState();
7567
7726
  }
7568
7727
  });
7728
+ createEffect(() => {
7729
+ if (settingsOpen2() && !premiumActive() && !trackedSettingsPremiumBanner) {
7730
+ trackedSettingsPremiumBanner = true;
7731
+ void window.vessel.premium.trackContext("settings_banner_viewed");
7732
+ }
7733
+ });
7569
7734
  const handleSave = async () => {
7570
7735
  try {
7571
7736
  const parsedPort = Number(mcpPort().trim());
@@ -7613,11 +7778,11 @@ const Settings = () => {
7613
7778
  },
7614
7779
  get children() {
7615
7780
  return [(() => {
7616
- var _el$ = _tmpl$13(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$1 = _el$3.nextSibling, _el$10 = _el$1.nextSibling, _el$11 = _el$10.firstChild, _el$12 = _el$11.nextSibling, _el$13 = _el$10.nextSibling, _el$14 = _el$13.firstChild, _el$15 = _el$14.nextSibling, _el$16 = _el$13.nextSibling, _el$17 = _el$16.firstChild, _el$19 = _el$17.nextSibling, _el$20 = _el$16.nextSibling, _el$21 = _el$20.firstChild, _el$22 = _el$21.nextSibling, _el$23 = _el$20.nextSibling, _el$24 = _el$23.firstChild, _el$25 = _el$24.nextSibling, _el$26 = _el$23.nextSibling, _el$27 = _el$26.firstChild, _el$28 = _el$27.firstChild, _el$29 = _el$26.nextSibling, _el$30 = _el$29.firstChild, _el$31 = _el$30.firstChild, _el$32 = _el$29.nextSibling, _el$33 = _el$32.nextSibling, _el$34 = _el$33.firstChild, _el$35 = _el$34.firstChild, _el$51 = _el$33.nextSibling, _el$52 = _el$51.nextSibling;
7617
- _el$52.firstChild;
7618
- var _el$61 = _el$52.nextSibling, _el$62 = _el$61.nextSibling, _el$63 = _el$62.firstChild;
7619
- _el$63.firstChild;
7620
- var _el$79 = _el$62.nextSibling, _el$80 = _el$79.nextSibling, _el$81 = _el$80.firstChild, _el$82 = _el$81.firstChild, _el$83 = _el$80.nextSibling, _el$84 = _el$83.firstChild, _el$85 = _el$84.nextSibling;
7781
+ var _el$ = _tmpl$15(), _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$59 = _el$41.nextSibling, _el$60 = _el$59.nextSibling;
7782
+ _el$60.firstChild;
7783
+ var _el$69 = _el$60.nextSibling, _el$70 = _el$69.nextSibling, _el$71 = _el$70.firstChild;
7784
+ _el$71.firstChild;
7785
+ var _el$87 = _el$70.nextSibling, _el$88 = _el$87.nextSibling, _el$89 = _el$88.firstChild, _el$90 = _el$89.firstChild, _el$91 = _el$88.nextSibling, _el$92 = _el$91.firstChild, _el$93 = _el$92.nextSibling;
7621
7786
  addEventListener(_el$, "click", closeSettings, true);
7622
7787
  _el$2.$$keydown = handleKeyDown;
7623
7788
  _el$2.$$click = (e) => e.stopPropagation();
@@ -7626,31 +7791,64 @@ const Settings = () => {
7626
7791
  return showWelcome();
7627
7792
  },
7628
7793
  get children() {
7629
- var _el$4 = _tmpl$$2(), _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling, _el$8 = _el$5.nextSibling, _el$9 = _el$8.nextSibling, _el$0 = _el$9.firstChild;
7794
+ var _el$4 = _tmpl$2$2(), _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling, _el$8 = _el$5.nextSibling, _el$9 = _el$8.nextSibling, _el$0 = _el$9.firstChild;
7630
7795
  _el$7.$$click = dismissWelcome;
7796
+ insert(_el$4, createComponent(Show, {
7797
+ get when() {
7798
+ return !premiumActive();
7799
+ },
7800
+ get children() {
7801
+ var _el$1 = _tmpl$$2(), _el$10 = _el$1.firstChild;
7802
+ _el$10.$$click = () => {
7803
+ void trackPremiumContext("welcome_banner_clicked");
7804
+ startPremiumCheckout();
7805
+ };
7806
+ return _el$1;
7807
+ }
7808
+ }), null);
7631
7809
  createRenderEffect(() => _el$0.classList.toggle("done", !!chatEnabled()));
7632
7810
  return _el$4;
7633
7811
  }
7634
- }), _el$1);
7635
- _el$12.$$input = (e) => setDefaultUrl(e.currentTarget.value);
7636
- setAttribute(_el$12, "spellcheck", false);
7637
- _el$15.$$input = (e) => setMcpPort(e.currentTarget.value);
7638
- setAttribute(_el$15, "spellcheck", false);
7639
- insert(_el$16, createComponent(Show, {
7812
+ }), _el$11);
7813
+ insert(_el$2, createComponent(Show, {
7814
+ get when() {
7815
+ return !premiumActive();
7816
+ },
7817
+ get children() {
7818
+ var _el$12 = _tmpl$3$1(), _el$13 = _el$12.firstChild, _el$14 = _el$13.nextSibling, _el$15 = _el$14.nextSibling, _el$16 = _el$15.firstChild, _el$17 = _el$16.nextSibling;
7819
+ _el$16.$$click = () => {
7820
+ void trackPremiumContext("settings_banner_clicked");
7821
+ startPremiumCheckout();
7822
+ };
7823
+ _el$17.$$click = () => {
7824
+ const premiumSection = document.querySelector(".premium-section");
7825
+ premiumSection?.scrollIntoView({
7826
+ behavior: "smooth",
7827
+ block: "start"
7828
+ });
7829
+ };
7830
+ return _el$12;
7831
+ }
7832
+ }), _el$18);
7833
+ _el$20.$$input = (e) => setDefaultUrl(e.currentTarget.value);
7834
+ setAttribute(_el$20, "spellcheck", false);
7835
+ _el$23.$$input = (e) => setMcpPort(e.currentTarget.value);
7836
+ setAttribute(_el$23, "spellcheck", false);
7837
+ insert(_el$24, createComponent(Show, {
7640
7838
  get when() {
7641
7839
  return premiumActive();
7642
7840
  },
7643
7841
  get fallback() {
7644
- return _tmpl$15();
7842
+ return _tmpl$17();
7645
7843
  },
7646
7844
  get children() {
7647
- var _el$18 = _tmpl$2$2();
7648
- _el$18.$$input = (e) => setMaxToolIterations(e.currentTarget.value);
7649
- createRenderEffect(() => _el$18.value = maxToolIterations());
7650
- return _el$18;
7845
+ var _el$26 = _tmpl$4$1();
7846
+ _el$26.$$input = (e) => setMaxToolIterations(e.currentTarget.value);
7847
+ createRenderEffect(() => _el$26.value = maxToolIterations());
7848
+ return _el$26;
7651
7849
  }
7652
- }), _el$19);
7653
- insert(_el$19, createComponent(Show, {
7850
+ }), _el$27);
7851
+ insert(_el$27, createComponent(Show, {
7654
7852
  get when() {
7655
7853
  return premiumActive();
7656
7854
  },
@@ -7662,71 +7860,71 @@ const Settings = () => {
7662
7860
  return health();
7663
7861
  },
7664
7862
  children: (currentHealth) => (() => {
7665
- var _el$88 = _tmpl$17(), _el$89 = _el$88.firstChild, _el$90 = _el$89.nextSibling, _el$91 = _el$90.firstChild, _el$93 = _el$91.nextSibling;
7666
- _el$93.nextSibling;
7667
- insert(_el$93, () => currentHealth().mcp.status);
7668
- insert(_el$90, () => currentHealth().mcp.message, null);
7669
- insert(_el$88, createComponent(Show, {
7863
+ var _el$96 = _tmpl$19(), _el$97 = _el$96.firstChild, _el$98 = _el$97.nextSibling, _el$99 = _el$98.firstChild, _el$101 = _el$99.nextSibling;
7864
+ _el$101.nextSibling;
7865
+ insert(_el$101, () => currentHealth().mcp.status);
7866
+ insert(_el$98, () => currentHealth().mcp.message, null);
7867
+ insert(_el$96, createComponent(Show, {
7670
7868
  get when() {
7671
7869
  return currentHealth().mcp.endpoint;
7672
7870
  },
7673
7871
  children: (endpoint) => (() => {
7674
- var _el$96 = _tmpl$18(), _el$97 = _el$96.firstChild, _el$98 = _el$97.nextSibling;
7675
- insert(_el$98, endpoint);
7676
- return _el$96;
7872
+ var _el$104 = _tmpl$20(), _el$105 = _el$104.firstChild, _el$106 = _el$105.nextSibling;
7873
+ insert(_el$106, endpoint);
7874
+ return _el$104;
7677
7875
  })()
7678
7876
  }), null);
7679
- insert(_el$88, createComponent(Show, {
7877
+ insert(_el$96, createComponent(Show, {
7680
7878
  get when() {
7681
7879
  return currentHealth().startupIssues.length > 0;
7682
7880
  },
7683
7881
  get children() {
7684
- var _el$95 = _tmpl$16();
7685
- insert(_el$95, () => currentHealth().startupIssues.map((issue) => (() => {
7686
- var _el$99 = _tmpl$19(), _el$100 = _el$99.firstChild, _el$101 = _el$100.nextSibling;
7687
- insert(_el$100, () => issue.title);
7688
- insert(_el$101, () => issue.detail);
7689
- insert(_el$99, createComponent(Show, {
7882
+ var _el$103 = _tmpl$18();
7883
+ insert(_el$103, () => currentHealth().startupIssues.map((issue) => (() => {
7884
+ var _el$107 = _tmpl$21(), _el$108 = _el$107.firstChild, _el$109 = _el$108.nextSibling;
7885
+ insert(_el$108, () => issue.title);
7886
+ insert(_el$109, () => issue.detail);
7887
+ insert(_el$107, createComponent(Show, {
7690
7888
  get when() {
7691
7889
  return issue.action;
7692
7890
  },
7693
7891
  children: (action) => (() => {
7694
- var _el$102 = _tmpl$20();
7695
- insert(_el$102, action);
7696
- return _el$102;
7892
+ var _el$110 = _tmpl$22();
7893
+ insert(_el$110, action);
7894
+ return _el$110;
7697
7895
  })()
7698
7896
  }), null);
7699
7897
  createRenderEffect((_p$) => {
7700
7898
  var _v$9 = !!(issue.severity === "warning"), _v$0 = !!(issue.severity === "error");
7701
- _v$9 !== _p$.e && _el$99.classList.toggle("warning", _p$.e = _v$9);
7702
- _v$0 !== _p$.t && _el$99.classList.toggle("error", _p$.t = _v$0);
7899
+ _v$9 !== _p$.e && _el$107.classList.toggle("warning", _p$.e = _v$9);
7900
+ _v$0 !== _p$.t && _el$107.classList.toggle("error", _p$.t = _v$0);
7703
7901
  return _p$;
7704
7902
  }, {
7705
7903
  e: void 0,
7706
7904
  t: void 0
7707
7905
  });
7708
- return _el$99;
7906
+ return _el$107;
7709
7907
  })()));
7710
- return _el$95;
7908
+ return _el$103;
7711
7909
  }
7712
7910
  }), null);
7713
- return _el$88;
7911
+ return _el$96;
7714
7912
  })()
7715
- }), _el$20);
7716
- _el$22.$$input = (e) => setObsidianVaultPath(e.currentTarget.value);
7717
- setAttribute(_el$22, "spellcheck", false);
7718
- _el$25.addEventListener("change", (e) => setAgentTranscriptMode(e.currentTarget.value));
7719
- _el$28.$$click = () => setAutoRestoreSession(!autoRestoreSession());
7720
- _el$31.$$click = () => setClearBookmarksOnLaunch(!clearBookmarksOnLaunch());
7721
- _el$35.$$click = () => setChatEnabled(!chatEnabled());
7913
+ }), _el$28);
7914
+ _el$30.$$input = (e) => setObsidianVaultPath(e.currentTarget.value);
7915
+ setAttribute(_el$30, "spellcheck", false);
7916
+ _el$33.addEventListener("change", (e) => setAgentTranscriptMode(e.currentTarget.value));
7917
+ _el$36.$$click = () => setAutoRestoreSession(!autoRestoreSession());
7918
+ _el$39.$$click = () => setClearBookmarksOnLaunch(!clearBookmarksOnLaunch());
7919
+ _el$43.$$click = () => setChatEnabled(!chatEnabled());
7722
7920
  insert(_el$2, createComponent(Show, {
7723
7921
  get when() {
7724
7922
  return chatEnabled();
7725
7923
  },
7726
7924
  get children() {
7727
7925
  return [(() => {
7728
- var _el$36 = _tmpl$3$1(), _el$37 = _el$36.firstChild, _el$38 = _el$37.nextSibling;
7729
- _el$38.addEventListener("change", (e) => {
7926
+ var _el$44 = _tmpl$5$1(), _el$45 = _el$44.firstChild, _el$46 = _el$45.nextSibling;
7927
+ _el$46.addEventListener("change", (e) => {
7730
7928
  const id = e.currentTarget.value;
7731
7929
  setChatProviderId(id);
7732
7930
  setChatModel("");
@@ -7735,99 +7933,99 @@ const Settings = () => {
7735
7933
  setProviderModels([]);
7736
7934
  setModelFetchState("idle");
7737
7935
  });
7738
- insert(_el$38, createComponent(For, {
7936
+ insert(_el$46, createComponent(For, {
7739
7937
  each: CHAT_PROVIDERS,
7740
7938
  children: (p) => (() => {
7741
- var _el$103 = _tmpl$21();
7742
- insert(_el$103, () => p.name);
7743
- createRenderEffect(() => _el$103.value = p.id);
7744
- return _el$103;
7939
+ var _el$111 = _tmpl$23();
7940
+ insert(_el$111, () => p.name);
7941
+ createRenderEffect(() => _el$111.value = p.id);
7942
+ return _el$111;
7745
7943
  })()
7746
7944
  }));
7747
- createRenderEffect(() => _el$38.value = chatProviderId());
7748
- return _el$36;
7945
+ createRenderEffect(() => _el$46.value = chatProviderId());
7946
+ return _el$44;
7749
7947
  })(), createComponent(Show, {
7750
7948
  get when() {
7751
7949
  return chatProviderMeta().requiresKey;
7752
7950
  },
7753
7951
  get children() {
7754
- var _el$39 = _tmpl$4$1(), _el$40 = _el$39.firstChild, _el$41 = _el$40.nextSibling;
7755
- _el$41.$$input = (e) => setChatApiKey(e.currentTarget.value);
7756
- setAttribute(_el$41, "spellcheck", false);
7757
- createRenderEffect(() => setAttribute(_el$41, "placeholder", chatProviderMeta().keyPlaceholder));
7758
- createRenderEffect(() => _el$41.value = chatApiKey());
7759
- return _el$39;
7952
+ var _el$47 = _tmpl$6$1(), _el$48 = _el$47.firstChild, _el$49 = _el$48.nextSibling;
7953
+ _el$49.$$input = (e) => setChatApiKey(e.currentTarget.value);
7954
+ setAttribute(_el$49, "spellcheck", false);
7955
+ createRenderEffect(() => setAttribute(_el$49, "placeholder", chatProviderMeta().keyPlaceholder));
7956
+ createRenderEffect(() => _el$49.value = chatApiKey());
7957
+ return _el$47;
7760
7958
  }
7761
7959
  }), (() => {
7762
- var _el$42 = _tmpl$7(), _el$43 = _el$42.firstChild, _el$44 = _el$43.nextSibling, _el$46 = _el$44.firstChild;
7763
- insert(_el$44, createComponent(Show, {
7960
+ var _el$50 = _tmpl$9(), _el$51 = _el$50.firstChild, _el$52 = _el$51.nextSibling, _el$54 = _el$52.firstChild;
7961
+ insert(_el$52, createComponent(Show, {
7764
7962
  get when() {
7765
7963
  return providerModels().length > 0;
7766
7964
  },
7767
7965
  get fallback() {
7768
7966
  return (() => {
7769
- var _el$104 = _tmpl$22();
7770
- _el$104.$$input = (e) => setChatModel(e.currentTarget.value);
7771
- setAttribute(_el$104, "spellcheck", false);
7772
- createRenderEffect(() => setAttribute(_el$104, "placeholder", modelFetchState() === "loading" ? "Fetching models…" : chatProviderMeta().requiresKey && !chatApiKey().trim() ? "Enter API key to load models" : chatProviderMeta().defaultModel || "model name"));
7773
- createRenderEffect(() => _el$104.value = chatModel());
7774
- return _el$104;
7967
+ var _el$112 = _tmpl$24();
7968
+ _el$112.$$input = (e) => setChatModel(e.currentTarget.value);
7969
+ setAttribute(_el$112, "spellcheck", false);
7970
+ createRenderEffect(() => setAttribute(_el$112, "placeholder", modelFetchState() === "loading" ? "Fetching models…" : chatProviderMeta().requiresKey && !chatApiKey().trim() ? "Enter API key to load models" : chatProviderMeta().defaultModel || "model name"));
7971
+ createRenderEffect(() => _el$112.value = chatModel());
7972
+ return _el$112;
7775
7973
  })();
7776
7974
  },
7777
7975
  get children() {
7778
- var _el$45 = _tmpl$5$1();
7779
- _el$45.addEventListener("change", (e) => setChatModel(e.currentTarget.value));
7780
- insert(_el$45, createComponent(For, {
7976
+ var _el$53 = _tmpl$7();
7977
+ _el$53.addEventListener("change", (e) => setChatModel(e.currentTarget.value));
7978
+ insert(_el$53, createComponent(For, {
7781
7979
  get each() {
7782
7980
  return providerModels();
7783
7981
  },
7784
7982
  children: (m) => (() => {
7785
- var _el$105 = _tmpl$21();
7786
- _el$105.value = m;
7787
- insert(_el$105, m);
7788
- return _el$105;
7983
+ var _el$113 = _tmpl$23();
7984
+ _el$113.value = m;
7985
+ insert(_el$113, m);
7986
+ return _el$113;
7789
7987
  })()
7790
7988
  }));
7791
- createRenderEffect(() => _el$45.value = chatModel());
7792
- return _el$45;
7989
+ createRenderEffect(() => _el$53.value = chatModel());
7990
+ return _el$53;
7793
7991
  }
7794
- }), _el$46);
7795
- _el$46.$$click = doFetchModels;
7796
- insert(_el$42, createComponent(Show, {
7992
+ }), _el$54);
7993
+ _el$54.$$click = doFetchModels;
7994
+ insert(_el$50, createComponent(Show, {
7797
7995
  get when() {
7798
7996
  return modelFetchState() === "error";
7799
7997
  },
7800
7998
  get children() {
7801
- return _tmpl$6$1();
7999
+ return _tmpl$8();
7802
8000
  }
7803
8001
  }), null);
7804
- createRenderEffect(() => _el$46.disabled = modelFetchState() === "loading");
7805
- return _el$42;
8002
+ createRenderEffect(() => _el$54.disabled = modelFetchState() === "loading");
8003
+ return _el$50;
7806
8004
  })(), createComponent(Show, {
7807
8005
  get when() {
7808
8006
  return chatProviderMeta().needsBaseUrl || chatProviderId() === "custom";
7809
8007
  },
7810
8008
  get children() {
7811
- var _el$48 = _tmpl$8(), _el$49 = _el$48.firstChild, _el$50 = _el$49.nextSibling;
7812
- _el$50.$$input = (e) => setChatBaseUrl(e.currentTarget.value);
7813
- setAttribute(_el$50, "spellcheck", false);
7814
- createRenderEffect(() => setAttribute(_el$50, "placeholder", chatProviderMeta().defaultBaseUrl ?? "https://..."));
7815
- createRenderEffect(() => _el$50.value = chatBaseUrl());
7816
- return _el$48;
8009
+ var _el$56 = _tmpl$0(), _el$57 = _el$56.firstChild, _el$58 = _el$57.nextSibling;
8010
+ _el$58.$$input = (e) => setChatBaseUrl(e.currentTarget.value);
8011
+ setAttribute(_el$58, "spellcheck", false);
8012
+ createRenderEffect(() => setAttribute(_el$58, "placeholder", chatProviderMeta().defaultBaseUrl ?? "https://..."));
8013
+ createRenderEffect(() => _el$58.value = chatBaseUrl());
8014
+ return _el$56;
7817
8015
  }
7818
8016
  })];
7819
8017
  }
7820
- }), _el$51);
7821
- insert(_el$52, createComponent(Show, {
8018
+ }), _el$59);
8019
+ insert(_el$60, createComponent(Show, {
7822
8020
  get when() {
7823
8021
  return premiumActive();
7824
8022
  },
7825
8023
  get fallback() {
7826
8024
  return (() => {
7827
- var _el$106 = _tmpl$24(), _el$107 = _el$106.firstChild, _el$108 = _el$107.nextSibling, _el$109 = _el$108.firstChild, _el$110 = _el$109.nextSibling, _el$111 = _el$108.nextSibling;
7828
- _el$109.$$input = (e) => setPremiumEmail(e.currentTarget.value);
7829
- setAttribute(_el$109, "spellcheck", false);
7830
- _el$110.$$click = async () => {
8025
+ var _el$114 = _tmpl$26(), _el$115 = _el$114.firstChild, _el$116 = _el$115.nextSibling, _el$117 = _el$116.firstChild, _el$118 = _el$117.nextSibling, _el$119 = _el$116.nextSibling;
8026
+ _el$117.$$input = (e) => setPremiumEmail(e.currentTarget.value);
8027
+ setAttribute(_el$117, "spellcheck", false);
8028
+ _el$118.$$click = async () => {
7831
8029
  setPremiumLoading(true);
7832
8030
  setPremiumMessage(null);
7833
8031
  try {
@@ -7853,54 +8051,54 @@ const Settings = () => {
7853
8051
  setPremiumLoading(false);
7854
8052
  }
7855
8053
  };
7856
- insert(_el$110, () => premiumLoading() ? "Checking..." : "Activate");
7857
- _el$111.$$click = () => {
7858
- void window.vessel.premium.checkout(premiumEmail().trim() || void 0);
8054
+ insert(_el$118, () => premiumLoading() ? "Checking..." : "Activate");
8055
+ _el$119.$$click = () => {
8056
+ startPremiumCheckout();
7859
8057
  };
7860
- insert(_el$106, createComponent(Show, {
8058
+ insert(_el$114, createComponent(Show, {
7861
8059
  get when() {
7862
8060
  return premiumMessage();
7863
8061
  },
7864
8062
  children: (msg) => (() => {
7865
- var _el$113 = _tmpl$25();
7866
- insert(_el$113, () => msg().text);
8063
+ var _el$121 = _tmpl$27();
8064
+ insert(_el$121, () => msg().text);
7867
8065
  createRenderEffect((_p$) => {
7868
8066
  var _v$1 = !!(msg().kind === "success"), _v$10 = !!(msg().kind === "error");
7869
- _v$1 !== _p$.e && _el$113.classList.toggle("success", _p$.e = _v$1);
7870
- _v$10 !== _p$.t && _el$113.classList.toggle("error", _p$.t = _v$10);
8067
+ _v$1 !== _p$.e && _el$121.classList.toggle("success", _p$.e = _v$1);
8068
+ _v$10 !== _p$.t && _el$121.classList.toggle("error", _p$.t = _v$10);
7871
8069
  return _p$;
7872
8070
  }, {
7873
8071
  e: void 0,
7874
8072
  t: void 0
7875
8073
  });
7876
- return _el$113;
8074
+ return _el$121;
7877
8075
  })()
7878
8076
  }), null);
7879
- insert(_el$106, createComponent(Show, {
8077
+ insert(_el$114, createComponent(Show, {
7880
8078
  get when() {
7881
8079
  return premiumState().email || premiumEmail();
7882
8080
  },
7883
8081
  get children() {
7884
- var _el$112 = _tmpl$23();
7885
- _el$112.$$click = async () => {
8082
+ var _el$120 = _tmpl$25();
8083
+ _el$120.$$click = async () => {
7886
8084
  const state = await window.vessel.premium.reset();
7887
8085
  setPremiumState(state);
7888
8086
  setPremiumEmail("");
7889
8087
  setPremiumMessage(null);
7890
8088
  };
7891
- return _el$112;
8089
+ return _el$120;
7892
8090
  }
7893
8091
  }), null);
7894
- createRenderEffect(() => _el$110.disabled = premiumLoading() || !premiumEmail().trim());
7895
- createRenderEffect(() => _el$109.value = premiumEmail());
7896
- return _el$106;
8092
+ createRenderEffect(() => _el$118.disabled = premiumLoading() || !premiumEmail().trim());
8093
+ createRenderEffect(() => _el$117.value = premiumEmail());
8094
+ return _el$114;
7897
8095
  })();
7898
8096
  },
7899
8097
  get children() {
7900
- var _el$54 = _tmpl$9(), _el$55 = _el$54.firstChild;
7901
- _el$55.firstChild;
7902
- var _el$57 = _el$55.nextSibling, _el$58 = _el$57.nextSibling, _el$59 = _el$58.firstChild, _el$60 = _el$59.nextSibling;
7903
- insert(_el$55, createComponent(Show, {
8098
+ var _el$62 = _tmpl$1(), _el$63 = _el$62.firstChild;
8099
+ _el$63.firstChild;
8100
+ var _el$65 = _el$63.nextSibling, _el$66 = _el$65.nextSibling, _el$67 = _el$66.firstChild, _el$68 = _el$67.nextSibling;
8101
+ insert(_el$63, createComponent(Show, {
7904
8102
  get when() {
7905
8103
  return premiumState().status === "trialing";
7906
8104
  },
@@ -7908,8 +8106,8 @@ const Settings = () => {
7908
8106
  return [" ", "(Trial)"];
7909
8107
  }
7910
8108
  }), null);
7911
- insert(_el$57, () => premiumState().email, null);
7912
- insert(_el$57, createComponent(Show, {
8109
+ insert(_el$65, () => premiumState().email, null);
8110
+ insert(_el$65, createComponent(Show, {
7913
8111
  get when() {
7914
8112
  return premiumState().expiresAt;
7915
8113
  },
@@ -7917,50 +8115,50 @@ const Settings = () => {
7917
8115
  return [" ", "· Renews", " ", memo(() => new Date(premiumState().expiresAt).toLocaleDateString())];
7918
8116
  }
7919
8117
  }), null);
7920
- _el$59.$$click = () => {
8118
+ _el$67.$$click = () => {
7921
8119
  void window.vessel.premium.portal();
7922
8120
  };
7923
- _el$60.$$click = async () => {
8121
+ _el$68.$$click = async () => {
7924
8122
  const state = await window.vessel.premium.reset();
7925
8123
  setPremiumState(state);
7926
8124
  setPremiumEmail("");
7927
8125
  setPremiumMessage(null);
7928
8126
  };
7929
- return _el$54;
8127
+ return _el$62;
7930
8128
  }
7931
8129
  }), null);
7932
- insert(_el$63, createComponent(Show, {
8130
+ insert(_el$71, createComponent(Show, {
7933
8131
  get when() {
7934
8132
  return !premiumActive();
7935
8133
  },
7936
8134
  get children() {
7937
- return _tmpl$0();
8135
+ return _tmpl$10();
7938
8136
  }
7939
8137
  }), null);
7940
- insert(_el$62, createComponent(Show, {
8138
+ insert(_el$70, createComponent(Show, {
7941
8139
  get when() {
7942
8140
  return premiumActive();
7943
8141
  },
7944
8142
  get fallback() {
7945
- return _tmpl$26();
8143
+ return _tmpl$28();
7946
8144
  },
7947
8145
  get children() {
7948
- return [_tmpl$1(), createComponent(Show, {
8146
+ return [_tmpl$11(), createComponent(Show, {
7949
8147
  get when() {
7950
8148
  return vaultEntries().length > 0;
7951
8149
  },
7952
8150
  get children() {
7953
- var _el$67 = _tmpl$10();
7954
- insert(_el$67, createComponent(For, {
8151
+ var _el$75 = _tmpl$12();
8152
+ insert(_el$75, createComponent(For, {
7955
8153
  get each() {
7956
8154
  return vaultEntries();
7957
8155
  },
7958
8156
  children: (entry) => (() => {
7959
- var _el$115 = _tmpl$27(), _el$116 = _el$115.firstChild, _el$117 = _el$116.firstChild, _el$118 = _el$117.nextSibling, _el$119 = _el$118.firstChild, _el$120 = _el$116.nextSibling;
7960
- insert(_el$117, () => entry.label);
7961
- insert(_el$118, () => entry.username, _el$119);
7962
- insert(_el$118, () => entry.domainPattern, null);
7963
- insert(_el$118, createComponent(Show, {
8157
+ var _el$123 = _tmpl$29(), _el$124 = _el$123.firstChild, _el$125 = _el$124.firstChild, _el$126 = _el$125.nextSibling, _el$127 = _el$126.firstChild, _el$128 = _el$124.nextSibling;
8158
+ insert(_el$125, () => entry.label);
8159
+ insert(_el$126, () => entry.username, _el$127);
8160
+ insert(_el$126, () => entry.domainPattern, null);
8161
+ insert(_el$126, createComponent(Show, {
7964
8162
  get when() {
7965
8163
  return entry.useCount > 0;
7966
8164
  },
@@ -7968,43 +8166,43 @@ const Settings = () => {
7968
8166
  return [" ", "· Used ", memo(() => entry.useCount), "x"];
7969
8167
  }
7970
8168
  }), null);
7971
- _el$120.$$click = () => handleVaultRemove(entry.id);
7972
- return _el$115;
8169
+ _el$128.$$click = () => handleVaultRemove(entry.id);
8170
+ return _el$123;
7973
8171
  })()
7974
8172
  }));
7975
- return _el$67;
8173
+ return _el$75;
7976
8174
  }
7977
8175
  }), createComponent(Show, {
7978
8176
  get when() {
7979
8177
  return !vaultAdding();
7980
8178
  },
7981
8179
  get children() {
7982
- var _el$68 = _tmpl$11();
7983
- _el$68.$$click = () => {
8180
+ var _el$76 = _tmpl$13();
8181
+ _el$76.$$click = () => {
7984
8182
  setVaultAdding(true);
7985
8183
  setVaultMessage(null);
7986
8184
  };
7987
- return _el$68;
8185
+ return _el$76;
7988
8186
  }
7989
8187
  }), createComponent(Show, {
7990
8188
  get when() {
7991
8189
  return vaultAdding();
7992
8190
  },
7993
8191
  get children() {
7994
- var _el$69 = _tmpl$12(), _el$70 = _el$69.firstChild, _el$71 = _el$70.nextSibling, _el$72 = _el$71.nextSibling, _el$73 = _el$72.nextSibling, _el$74 = _el$73.nextSibling, _el$75 = _el$74.nextSibling, _el$76 = _el$75.nextSibling, _el$77 = _el$76.firstChild, _el$78 = _el$77.nextSibling;
7995
- _el$70.$$input = (e) => setVaultNewLabel(e.currentTarget.value);
7996
- setAttribute(_el$70, "spellcheck", false);
7997
- _el$71.$$input = (e) => setVaultNewDomain(e.currentTarget.value);
7998
- setAttribute(_el$71, "spellcheck", false);
7999
- _el$72.$$input = (e) => setVaultNewUsername(e.currentTarget.value);
8000
- setAttribute(_el$72, "spellcheck", false);
8001
- _el$73.$$input = (e) => setVaultNewPassword(e.currentTarget.value);
8002
- _el$74.$$input = (e) => setVaultNewTotp(e.currentTarget.value);
8003
- setAttribute(_el$74, "spellcheck", false);
8004
- _el$75.$$input = (e) => setVaultNewNotes(e.currentTarget.value);
8005
- setAttribute(_el$75, "spellcheck", false);
8006
- _el$77.$$click = handleVaultAdd;
8007
- _el$78.$$click = () => {
8192
+ var _el$77 = _tmpl$14(), _el$78 = _el$77.firstChild, _el$79 = _el$78.nextSibling, _el$80 = _el$79.nextSibling, _el$81 = _el$80.nextSibling, _el$82 = _el$81.nextSibling, _el$83 = _el$82.nextSibling, _el$84 = _el$83.nextSibling, _el$85 = _el$84.firstChild, _el$86 = _el$85.nextSibling;
8193
+ _el$78.$$input = (e) => setVaultNewLabel(e.currentTarget.value);
8194
+ setAttribute(_el$78, "spellcheck", false);
8195
+ _el$79.$$input = (e) => setVaultNewDomain(e.currentTarget.value);
8196
+ setAttribute(_el$79, "spellcheck", false);
8197
+ _el$80.$$input = (e) => setVaultNewUsername(e.currentTarget.value);
8198
+ setAttribute(_el$80, "spellcheck", false);
8199
+ _el$81.$$input = (e) => setVaultNewPassword(e.currentTarget.value);
8200
+ _el$82.$$input = (e) => setVaultNewTotp(e.currentTarget.value);
8201
+ setAttribute(_el$82, "spellcheck", false);
8202
+ _el$83.$$input = (e) => setVaultNewNotes(e.currentTarget.value);
8203
+ setAttribute(_el$83, "spellcheck", false);
8204
+ _el$85.$$click = handleVaultAdd;
8205
+ _el$86.$$click = () => {
8008
8206
  setVaultAdding(false);
8009
8207
  setVaultNewLabel("");
8010
8208
  setVaultNewDomain("");
@@ -8013,67 +8211,67 @@ const Settings = () => {
8013
8211
  setVaultNewTotp("");
8014
8212
  setVaultNewNotes("");
8015
8213
  };
8016
- createRenderEffect(() => _el$70.value = vaultNewLabel());
8017
- createRenderEffect(() => _el$71.value = vaultNewDomain());
8018
- createRenderEffect(() => _el$72.value = vaultNewUsername());
8019
- createRenderEffect(() => _el$73.value = vaultNewPassword());
8020
- createRenderEffect(() => _el$74.value = vaultNewTotp());
8021
- createRenderEffect(() => _el$75.value = vaultNewNotes());
8022
- return _el$69;
8214
+ createRenderEffect(() => _el$78.value = vaultNewLabel());
8215
+ createRenderEffect(() => _el$79.value = vaultNewDomain());
8216
+ createRenderEffect(() => _el$80.value = vaultNewUsername());
8217
+ createRenderEffect(() => _el$81.value = vaultNewPassword());
8218
+ createRenderEffect(() => _el$82.value = vaultNewTotp());
8219
+ createRenderEffect(() => _el$83.value = vaultNewNotes());
8220
+ return _el$77;
8023
8221
  }
8024
8222
  }), createComponent(Show, {
8025
8223
  get when() {
8026
8224
  return vaultMessage();
8027
8225
  },
8028
8226
  children: (msg) => (() => {
8029
- var _el$121 = _tmpl$25();
8030
- insert(_el$121, () => msg().text);
8227
+ var _el$129 = _tmpl$27();
8228
+ insert(_el$129, () => msg().text);
8031
8229
  createRenderEffect((_p$) => {
8032
8230
  var _v$11 = !!(msg().kind === "success"), _v$12 = !!(msg().kind === "error");
8033
- _v$11 !== _p$.e && _el$121.classList.toggle("success", _p$.e = _v$11);
8034
- _v$12 !== _p$.t && _el$121.classList.toggle("error", _p$.t = _v$12);
8231
+ _v$11 !== _p$.e && _el$129.classList.toggle("success", _p$.e = _v$11);
8232
+ _v$12 !== _p$.t && _el$129.classList.toggle("error", _p$.t = _v$12);
8035
8233
  return _p$;
8036
8234
  }, {
8037
8235
  e: void 0,
8038
8236
  t: void 0
8039
8237
  });
8040
- return _el$121;
8238
+ return _el$129;
8041
8239
  })()
8042
8240
  })];
8043
8241
  }
8044
8242
  }), null);
8045
- _el$82.$$click = () => setTelemetryEnabled(!telemetryEnabled());
8046
- _el$84.$$click = handleSave;
8047
- addEventListener(_el$85, "click", closeSettings, true);
8243
+ _el$90.$$click = () => setTelemetryEnabled(!telemetryEnabled());
8244
+ _el$92.$$click = handleSave;
8245
+ addEventListener(_el$93, "click", closeSettings, true);
8048
8246
  insert(_el$2, createComponent(Show, {
8049
8247
  get when() {
8050
8248
  return status();
8051
8249
  },
8052
8250
  children: (currentStatus) => (() => {
8053
- var _el$122 = _tmpl$25();
8054
- insert(_el$122, () => currentStatus().text);
8251
+ var _el$130 = _tmpl$27();
8252
+ insert(_el$130, () => currentStatus().text);
8055
8253
  createRenderEffect((_p$) => {
8056
8254
  var _v$13 = !!(currentStatus().kind === "success"), _v$14 = !!(currentStatus().kind === "error");
8057
- _v$13 !== _p$.e && _el$122.classList.toggle("success", _p$.e = _v$13);
8058
- _v$14 !== _p$.t && _el$122.classList.toggle("error", _p$.t = _v$14);
8255
+ _v$13 !== _p$.e && _el$130.classList.toggle("success", _p$.e = _v$13);
8256
+ _v$14 !== _p$.t && _el$130.classList.toggle("error", _p$.t = _v$14);
8059
8257
  return _p$;
8060
8258
  }, {
8061
8259
  e: void 0,
8062
8260
  t: void 0
8063
8261
  });
8064
- return _el$122;
8262
+ return _el$130;
8065
8263
  })()
8066
8264
  }), null);
8067
8265
  createRenderEffect((_p$) => {
8068
8266
  var _v$ = !!autoRestoreSession(), _v$2 = autoRestoreSession(), _v$3 = !!clearBookmarksOnLaunch(), _v$4 = clearBookmarksOnLaunch(), _v$5 = !!chatEnabled(), _v$6 = chatEnabled(), _v$7 = !!telemetryEnabled(), _v$8 = telemetryEnabled();
8069
- _v$ !== _p$.e && _el$28.classList.toggle("on", _p$.e = _v$);
8070
- _v$2 !== _p$.t && setAttribute(_el$28, "aria-checked", _p$.t = _v$2);
8071
- _v$3 !== _p$.a && _el$31.classList.toggle("on", _p$.a = _v$3);
8072
- _v$4 !== _p$.o && setAttribute(_el$31, "aria-checked", _p$.o = _v$4);
8073
- _v$5 !== _p$.i && _el$35.classList.toggle("on", _p$.i = _v$5);
8074
- _v$6 !== _p$.n && setAttribute(_el$35, "aria-checked", _p$.n = _v$6);
8075
- _v$7 !== _p$.s && _el$82.classList.toggle("on", _p$.s = _v$7);
8076
- _v$8 !== _p$.h && setAttribute(_el$82, "aria-checked", _p$.h = _v$8);
8267
+ _v$ !== _p$.e && _el$36.classList.toggle("on", _p$.e = _v$);
8268
+ _v$2 !== _p$.t && setAttribute(_el$36, "aria-checked", _p$.t = _v$2);
8269
+ _v$3 !== _p$.a && _el$39.classList.toggle("on", _p$.a = _v$3);
8270
+ _v$4 !== _p$.o && setAttribute(_el$39, "aria-checked", _p$.o = _v$4);
8271
+ _v$5 !== _p$.i && _el$43.classList.toggle("on", _p$.i = _v$5);
8272
+ _v$6 !== _p$.n && setAttribute(_el$43, "aria-checked", _p$.n = _v$6);
8273
+ _v$7 !== _p$.s && _el$90.classList.toggle("on", _p$.s = _v$7);
8274
+ _v$8 !== _p$.h && setAttribute(_el$90, "aria-checked", _p$.h = _v$8);
8077
8275
  return _p$;
8078
8276
  }, {
8079
8277
  e: void 0,
@@ -8085,12 +8283,12 @@ const Settings = () => {
8085
8283
  s: void 0,
8086
8284
  h: void 0
8087
8285
  });
8088
- createRenderEffect(() => _el$12.value = defaultUrl());
8089
- createRenderEffect(() => _el$15.value = mcpPort());
8090
- createRenderEffect(() => _el$22.value = obsidianVaultPath());
8091
- createRenderEffect(() => _el$25.value = agentTranscriptMode());
8286
+ createRenderEffect(() => _el$20.value = defaultUrl());
8287
+ createRenderEffect(() => _el$23.value = mcpPort());
8288
+ createRenderEffect(() => _el$30.value = obsidianVaultPath());
8289
+ createRenderEffect(() => _el$33.value = agentTranscriptMode());
8092
8290
  return _el$;
8093
- })(), _tmpl$14()];
8291
+ })(), _tmpl$16()];
8094
8292
  }
8095
8293
  });
8096
8294
  };