@pimote/pimote 0.3.0 → 0.3.1

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.
Files changed (26) hide show
  1. package/README.md +1 -1
  2. package/client/build/_app/immutable/assets/{2.D9fiCd8W.css → 2.DwPXxSa-.css} +1 -1
  3. package/client/build/_app/immutable/chunks/-Lc-U-GJ.js +1 -0
  4. package/client/build/_app/immutable/chunks/CO_BwWGt.js +1 -0
  5. package/client/build/_app/immutable/chunks/{D_Fpgknp.js → CklMSqcv.js} +1 -1
  6. package/client/build/_app/immutable/chunks/D1INvMB9.js +1 -0
  7. package/client/build/_app/immutable/chunks/{BNqgidwO.js → D1vhgXpq.js} +1 -1
  8. package/client/build/_app/immutable/entry/{app.DO-zgzyy.js → app.B-HFVtpC.js} +2 -2
  9. package/client/build/_app/immutable/entry/start.DJTQ8-sD.js +1 -0
  10. package/client/build/_app/immutable/nodes/{0.BEh4bPGQ.js → 0.CepAO4xf.js} +3 -3
  11. package/client/build/_app/immutable/nodes/{1.B2l9JGRO.js → 1.CmxFYjRm.js} +1 -1
  12. package/client/build/_app/immutable/nodes/{2.ph9M0S1U.js → 2.DAtqfmki.js} +1 -1
  13. package/client/build/_app/version.json +1 -1
  14. package/client/build/index.html +7 -7
  15. package/package.json +1 -1
  16. package/server/dist/index.js +5 -0
  17. package/server/dist/push-notification.js +11 -0
  18. package/server/dist/session-manager.js +8 -2
  19. package/server/dist/voice/fsm/reducers/lifecycle.js +14 -2
  20. package/server/dist/voice/index.js +18 -1
  21. package/server/dist/voice/state-machine.js +7 -0
  22. package/server/dist/ws-handler.js +4 -2
  23. package/client/build/_app/immutable/chunks/D26i4pYm.js +0 -1
  24. package/client/build/_app/immutable/chunks/DoVhjU85.js +0 -1
  25. package/client/build/_app/immutable/chunks/DzqbY2XU.js +0 -1
  26. package/client/build/_app/immutable/entry/start.BZlrOH0-.js +0 -1
package/README.md CHANGED
@@ -64,7 +64,7 @@ Pimote is published as the app package `@pimote/pimote` at the repo root, backed
64
64
  | **`@pimote/panels`** | `packages/panels/` | Library for extensions to push card data to the UI |
65
65
  | **`@pimote/voice`** | `packages/voice/` | Voice-mode pi extension (dormant unless voice mode is configured) |
66
66
 
67
- A separate **native Android client** lives at `mobile/android/` — a voice-first Kotlin app that integrates with Android Auto via `SelfManagedConnectionService`. Independent Gradle project, Docker-based build (`make android-test` / `make android-build`), not part of the npm workspace; speaks the same WebSocket protocol as the PWA. See `mobile/android/README.md`.
67
+ A separate **native Android client** lives at `mobile/android/` — a voice-first Kotlin app that integrates with Android Auto via `SelfManagedConnectionService`, and exposes your projects as Android system contacts so they're callable from Google Assistant / Gemini, the dialer, and the system contact card. Independent Gradle project, Docker-based build (`make android-test` / `make android-build`), not part of the npm workspace; speaks the same WebSocket protocol as the PWA. See `mobile/android/README.md`.
68
68
 
69
69
  ### Server
70
70
 
@@ -1 +1 @@
1
- .hljs{color:#adbac7;background:oklch(16% .03 258)}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#f47067}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#dcbdfb}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#6cb6ff}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#96d0ff}.hljs-built_in,.hljs-symbol{color:#f69d50}.hljs-code,.hljs-comment,.hljs-formula{color:#768390}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#8ddb8c}.hljs-subst{color:#adbac7}.hljs-section{color:#316dca;font-weight:700}.hljs-bullet{color:#eac55f}.hljs-emphasis{color:#adbac7;font-style:italic}.hljs-strong{color:#adbac7;font-weight:700}.hljs-addition{color:#b4f1b4;background-color:#1b4721}.hljs-deletion{color:#ffd8d3;background-color:#78191b}.text-block.svelte-8p0cc8{word-wrap:break-word;overflow-wrap:break-word;line-height:1.6}.markdown-content.svelte-8p0cc8 p{margin:.5em 0}.markdown-content.svelte-8p0cc8 p:first-child{margin-top:0}.markdown-content.svelte-8p0cc8 p:last-child{margin-bottom:0}.markdown-content.svelte-8p0cc8 ul,.markdown-content.svelte-8p0cc8 ol{margin:.5em 0;padding-left:1.5em}.markdown-content.svelte-8p0cc8 li{margin:.25em 0}.markdown-content.svelte-8p0cc8 h1,.markdown-content.svelte-8p0cc8 h2,.markdown-content.svelte-8p0cc8 h3,.markdown-content.svelte-8p0cc8 h4{margin:1em 0 .5em;font-weight:600}.markdown-content.svelte-8p0cc8 h1{font-size:1.25em}.markdown-content.svelte-8p0cc8 h2{font-size:1.15em}.markdown-content.svelte-8p0cc8 h3{font-size:1.05em}.markdown-content.svelte-8p0cc8 blockquote{border-left:3px solid var(--border);color:var(--muted-foreground);margin:.5em 0;padding-left:1em}.markdown-content.svelte-8p0cc8 hr{border:none;border-top:1px solid var(--border);margin:1em 0}.markdown-content.svelte-8p0cc8 a{color:oklch(70% .15 250);text-underline-offset:2px;text-decoration:underline}.markdown-content.svelte-8p0cc8 a:hover{color:oklch(80% .15 250)}.markdown-content.svelte-8p0cc8 code{font-size:.9em;font-family:var(--font-mono);background:oklch(20% .02 258);border-radius:4px;padding:.15em .4em}.markdown-content.svelte-8p0cc8 pre{border:1px solid var(--border);-webkit-overflow-scrolling:touch;background:oklch(16% .03 258);border-radius:8px;margin:.75em 0;padding:12px;overflow:auto hidden}.markdown-content.svelte-8p0cc8 .code-block-wrapper{position:relative}.markdown-content.svelte-8p0cc8 pre.code-block-with-copy{padding-right:56px}.markdown-content.svelte-8p0cc8 .code-block-wrapper>.code-copy-btn{font-size:.7rem;font-family:var(--font-mono,monospace);color:var(--muted-foreground);border:1px solid var(--border);cursor:pointer;opacity:.55;background:oklch(22% .03 258/.85);border-radius:4px;padding:3px 8px;line-height:1;transition:opacity .15s,color .15s,background-color .15s;position:absolute;top:6px;right:6px}.markdown-content.svelte-8p0cc8 .code-block-wrapper>.code-copy-btn:hover,.markdown-content.svelte-8p0cc8 .code-block-wrapper>.code-copy-btn:focus-visible,.markdown-content.svelte-8p0cc8 .code-block-wrapper>.code-copy-btn.copied{opacity:1;color:var(--foreground);background:oklch(28% .04 260)}.markdown-content.svelte-8p0cc8 pre code{font-size:.875em;font-family:var(--font-mono);background:0 0;border-radius:0;padding:0;line-height:1.5}.markdown-content.svelte-8p0cc8 table{-webkit-overflow-scrolling:touch;border-collapse:collapse;width:100%;margin:.75em 0;font-size:.9em;display:block;overflow-x:auto}.markdown-content.svelte-8p0cc8 th,.markdown-content.svelte-8p0cc8 td{border:1px solid var(--border);text-align:left;padding:6px 12px}.markdown-content.svelte-8p0cc8 th{background:oklch(20% .02 258);font-weight:600}.markdown-content.svelte-8p0cc8 strong{font-weight:600}.markdown-content.svelte-8p0cc8 em{font-style:italic}.thinking-block.svelte-1mu9o59{border:1px solid var(--border);border-radius:6px;margin:.25em 0;overflow:hidden}.thinking-header.svelte-1mu9o59{width:100%;color:var(--muted-foreground);cursor:pointer;text-align:left;background:oklch(18% .025 258);border:none;align-items:center;gap:6px;padding:6px 10px;font-size:.8rem;transition:background-color .15s;display:flex}.thinking-header.svelte-1mu9o59:hover{background:oklch(22% .03 258)}.thinking-label.svelte-1mu9o59{flex-shrink:0;font-style:italic}.thinking-preview.svelte-1mu9o59{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted-foreground);opacity:.6;flex:1;font-size:.75rem;overflow:hidden}.thinking-word-count.svelte-1mu9o59{opacity:.7;flex-shrink:0;margin-left:auto;font-size:.75rem}.streaming-dot.svelte-1mu9o59{background:var(--status-streaming,oklch(62.3% .169 149.2));border-radius:50%;width:6px;height:6px;animation:1s ease-in-out infinite svelte-1mu9o59-blink}@keyframes svelte-1mu9o59-blink{0%,to{opacity:.3}50%{opacity:1}}.thinking-content.svelte-1mu9o59{border-top:1px solid var(--border);background:oklch(15% .02 258);max-height:300px;padding:8px 12px;overflow-y:auto}.thinking-text.svelte-1mu9o59{white-space:pre-wrap;word-wrap:break-word;color:var(--muted-foreground);font-size:.8rem;line-height:1.5;font-family:var(--font-mono);margin:0}.streaming-collapsible.svelte-tetllc{--_accent:var(--muted-foreground)}.streaming-collapsible.accent-purple.svelte-tetllc{--_accent:oklch(55% .1 280)}.collapsible-text.svelte-tetllc{white-space:pre-wrap;word-wrap:break-word;color:var(--foreground);font-size:.8rem;line-height:1.5;font-family:var(--font-mono);margin:0}.collapsible-text.scrollable.svelte-tetllc{max-height:400px;overflow-y:auto}.collapsible-toggle.svelte-tetllc{color:var(--_accent);cursor:pointer;text-underline-offset:2px;opacity:.8;background:0 0;border:none;margin-top:4px;padding:0;font-size:.75rem;text-decoration:underline;display:inline-block}.collapsible-toggle.svelte-tetllc:hover{opacity:1;color:var(--foreground)}.edit-diff.svelte-1i84oek{border:1px solid var(--border);-webkit-overflow-scrolling:touch;background:oklch(16% .03 258);border-radius:8px;margin:0;padding:12px;overflow:auto hidden}.edit-diff.svelte-1i84oek code:where(.svelte-1i84oek){font-size:.875em;font-family:var(--font-mono);white-space:pre;background:0 0;border-radius:0;padding:0;line-height:1.5;display:block}.edit-diff-gap.svelte-1i84oek{height:.75em}.tool-block.svelte-1j1om46{border:1px solid var(--border);border-radius:6px;margin:.25em 0;overflow:hidden}.tool-header.svelte-1j1om46{width:100%;color:var(--muted-foreground);cursor:pointer;text-align:left;background:oklch(18% .025 258);border:none;align-items:center;gap:6px;padding:6px 10px;font-size:.8rem;transition:background-color .15s;display:flex}.tool-header.svelte-1j1om46:hover{background:oklch(22% .03 258)}.tool-name.svelte-1j1om46{font-family:var(--font-mono);color:var(--foreground);flex-shrink:0;font-weight:500}.tool-detail.svelte-1j1om46{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-mono);color:var(--muted-foreground);flex:1;font-size:.75rem;overflow:hidden}.tool-status.svelte-1j1om46{opacity:.7;flex-shrink:0;margin-left:auto;font-size:.75rem;font-style:italic}.tool-content.svelte-1j1om46{border-top:1px solid var(--border);background:oklch(15% .02 258)}.tool-section.svelte-1j1om46{padding:6px 12px}.tool-section.svelte-1j1om46+.tool-section:where(.svelte-1j1om46){border-top:1px solid var(--border)}.tool-section-label.svelte-1j1om46{text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground);margin-bottom:4px;font-size:.7rem;font-weight:500}.in-progress.svelte-1j1om46 .tool-header:where(.svelte-1j1om46){background:oklch(18% .035 258)}.tool-result.svelte-1j1om46:not(.tool-error) .tool-header:where(.svelte-1j1om46) svg,.tool-completed.svelte-1j1om46:not(.tool-error) .tool-header:where(.svelte-1j1om46) svg{color:var(--status-connected,oklch(62.3% .169 149.2))}.tool-result.tool-error.svelte-1j1om46 .tool-header:where(.svelte-1j1om46) svg,.tool-completed.tool-error.svelte-1j1om46 .tool-header:where(.svelte-1j1om46) svg{color:var(--destructive,oklch(57.7% .245 27.325))}.tool-btn.svelte-4obvr9{width:28px;height:28px;color:var(--foreground);cursor:pointer;background:oklch(28% .04 260);border:none;border-radius:50%;justify-content:center;align-items:center;transition:background-color .15s;display:flex}.tool-btn.svelte-4obvr9:active{background:oklch(35% .04 260)}.tool-btn.svelte-1kw4msz{width:28px;height:28px;color:var(--foreground);cursor:pointer;background:oklch(28% .04 260);border:none;border-radius:50%;justify-content:center;align-items:center;transition:background-color .15s;display:flex}.tool-btn.svelte-1kw4msz:active{background:oklch(35% .04 260)}.message.svelte-1uqoiy7{gap:10px;padding:12px 0;display:flex}.message-icon.svelte-1uqoiy7{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.user-icon.svelte-1uqoiy7{color:oklch(85% .05 250);background:oklch(35% .08 250);margin-top:2px}button.user-icon.svelte-1uqoiy7{cursor:pointer;border:none;transition:background-color .15s}button.user-icon.svelte-1uqoiy7:active{background:oklch(42% .08 250)}.user-icon-col.svelte-1uqoiy7{flex-direction:column;flex-shrink:0;align-items:center;gap:6px;margin-top:2px;display:flex}.fork-btn.svelte-1uqoiy7{width:28px;height:28px;color:var(--foreground);cursor:pointer;background:oklch(28% .04 260);border:none;border-radius:50%;justify-content:center;align-items:center;transition:background-color .15s;display:flex}.fork-btn.svelte-1uqoiy7:hover{background:oklch(35% .04 260)}.assistant-icon.svelte-1uqoiy7{color:var(--foreground);background:oklch(28% .04 260)}button.assistant-icon.svelte-1uqoiy7{cursor:pointer;border:none;transition:background-color .15s}button.assistant-icon.svelte-1uqoiy7:active{background:oklch(35% .04 260)}.assistant-icon-col.svelte-1uqoiy7{flex-direction:column;flex-shrink:0;align-items:center;gap:6px;margin-top:2px;display:flex}.tool-menu.svelte-1uqoiy7{flex-direction:column;align-items:center;gap:6px;display:flex}.message-body.svelte-1uqoiy7{flex:1;min-width:0;font-size:.9rem}.user-body.svelte-1uqoiy7{background:oklch(22% .04 260);border-radius:4px 12px 12px;padding:10px 14px}.user-text.svelte-1uqoiy7{white-space:pre-wrap;word-wrap:break-word;line-height:1.5}.system-message.svelte-1uqoiy7{justify-content:center;padding:8px 0}.system-message.svelte-1uqoiy7 .message-body:where(.svelte-1uqoiy7){text-align:center}.system-text.svelte-1uqoiy7{color:var(--muted-foreground);font-size:.8rem;font-style:italic}.skill-body.svelte-1uqoiy7{background:oklch(20% .02 170/.5);border-left:3px solid oklch(55% .12 170);border-radius:4px;overflow:hidden}.skill-header.svelte-1uqoiy7{cursor:pointer;color:oklch(70% .12 170);text-align:left;background:0 0;border:none;align-items:center;gap:6px;width:100%;padding:6px 10px;font-size:.75rem;font-weight:600;display:flex}.skill-header.svelte-1uqoiy7:hover{background:oklch(25% .02 170/.5)}.skill-label.svelte-1uqoiy7{font-family:var(--font-mono,monospace)}.skill-line-count.svelte-1uqoiy7{color:var(--muted-foreground);font-weight:400}.skill-content.svelte-1uqoiy7{padding:0 10px 8px;font-size:.85rem}.skill-text-container.svelte-1uqoiy7{position:relative}.skill-text-collapsed.svelte-1uqoiy7{max-height:65px;overflow:hidden}.skill-text-collapsed.svelte-1uqoiy7:after{content:"";pointer-events:none;background:linear-gradient(oklch(20% .02 170/0),oklch(20% .02 170/.95));height:32px;position:absolute;bottom:0;left:0;right:0}.skill-text-expanded.svelte-1uqoiy7{max-height:500px;overflow-y:auto}.skill-toggle.svelte-1uqoiy7{color:oklch(65% .12 170);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;margin-top:4px;padding:0;font-size:.75rem;text-decoration:underline;display:inline-block}.skill-toggle.svelte-1uqoiy7:hover{color:oklch(75% .12 170)}.skill-after.svelte-1uqoiy7{margin-top:6px}.custom-message.svelte-1uqoiy7{flex-direction:column;gap:0;padding:8px 0}.custom-body.svelte-1uqoiy7{background:oklch(20% .02 270/.5);border-left:3px solid oklch(55% .1 280);border-radius:4px;overflow:hidden}.custom-header.svelte-1uqoiy7{cursor:pointer;color:oklch(70% .1 280);text-align:left;background:0 0;border:none;align-items:center;gap:6px;width:100%;padding:6px 10px;font-size:.75rem;font-weight:600;display:flex}.custom-header.svelte-1uqoiy7:hover{background:oklch(25% .02 270/.5)}.custom-label.svelte-1uqoiy7{font-family:var(--font-mono,monospace)}.custom-line-count.svelte-1uqoiy7{color:var(--muted-foreground);font-weight:400}.custom-content.svelte-1uqoiy7{padding:0 10px 8px;font-size:.85rem}.custom-text-container.svelte-1uqoiy7{position:relative}.custom-text-collapsed.svelte-1uqoiy7{max-height:200px;overflow:hidden}.custom-text-collapsed.svelte-1uqoiy7:after{content:"";pointer-events:none;background:linear-gradient(oklch(20% .02 270/0),oklch(20% .02 270/.95));height:48px;position:absolute;bottom:0;left:0;right:0}.custom-text-expanded.svelte-1uqoiy7{max-height:500px;overflow-y:auto}.custom-toggle.svelte-1uqoiy7{color:oklch(65% .1 280);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;margin-top:4px;padding:0;font-size:.75rem;text-decoration:underline;display:inline-block}.custom-toggle.svelte-1uqoiy7:hover{color:oklch(75% .1 280)}.streaming-indicator.svelte-132ojzb{align-items:center;gap:4px;padding:8px 4px;display:inline-flex}.dot.svelte-132ojzb{background-color:var(--status-streaming,oklch(62.3% .169 149.2));border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite svelte-132ojzb-pulse}.dot.svelte-132ojzb:nth-child(2){animation-delay:.2s}.dot.svelte-132ojzb:nth-child(3){animation-delay:.4s}@keyframes svelte-132ojzb-pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.message-list-wrapper.svelte-qha2j{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.message-list.svelte-qha2j{-webkit-overflow-scrolling:touch;scroll-behavior:auto;flex:1;overflow:hidden auto}.message-list-inner.svelte-qha2j{max-width:768px;margin:0 auto;padding:16px 16px 24px}.empty-state.svelte-qha2j{color:var(--muted-foreground);justify-content:center;align-items:center;padding:48px 16px;font-size:.9rem;display:flex}.streaming-indicator-row.svelte-qha2j{padding:4px 0 4px 38px}.scroll-to-bottom.svelte-qha2j{background:var(--secondary);width:40px;height:40px;color:var(--secondary-foreground);border:1px solid var(--border);cursor:pointer;z-index:10;border-radius:50%;justify-content:center;align-items:center;transition:background-color .15s,transform .15s;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px oklch(0% 0 0/.3)}.scroll-to-bottom.svelte-qha2j:hover{background:var(--accent);transform:translate(-50%)scale(1.05)}.scroll-to-bottom.svelte-qha2j:active{transform:translate(-50%)scale(.95)}.last-activity.svelte-qha2j{text-align:right;color:var(--muted-foreground);opacity:.6;padding:4px 4px 0;font-size:.7rem}.inline-select-panel.svelte-j9tcnn{border-top:1px solid var(--border);background:var(--background);outline:none;padding:12px 16px}.panel-header.svelte-j9tcnn{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.panel-title.svelte-j9tcnn{color:var(--foreground);font-size:.875rem;font-weight:600}.panel-cancel.svelte-j9tcnn{color:var(--muted-foreground);cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:.7rem}.panel-cancel.svelte-j9tcnn:hover{opacity:1;background:var(--accent)}.panel-header-actions.svelte-j9tcnn{align-items:center;gap:4px;display:flex}.panel-collapse.svelte-j9tcnn{color:var(--muted-foreground);cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:4px;padding:2px 8px;font-size:.85rem;line-height:1}.panel-collapse.svelte-j9tcnn:hover{opacity:1;background:var(--accent)}.panel-title-meta.svelte-j9tcnn{color:var(--muted-foreground);margin-left:4px;font-size:.75rem;font-weight:400}.inline-select-panel.collapsed.svelte-j9tcnn .panel-header:where(.svelte-j9tcnn){margin-bottom:0}.panel-description.svelte-j9tcnn{color:var(--muted-foreground);margin-bottom:8px;font-size:.8rem;line-height:1.4}.panel-options.svelte-j9tcnn{flex-direction:column;gap:2px;max-width:768px;margin:0 auto;display:flex}.select-option.svelte-j9tcnn{text-align:left;cursor:pointer;width:100%;color:var(--foreground);background:0 0;border:1px solid #0000;border-radius:8px;align-items:flex-start;gap:10px;padding:8px 10px;font-size:.875rem;transition:background-color .1s,border-color .1s;display:flex}.select-option.svelte-j9tcnn:hover,.select-option.highlighted.svelte-j9tcnn{background:var(--accent);border-color:var(--border)}.option-number.svelte-j9tcnn{background:var(--secondary);width:22px;height:22px;color:var(--muted-foreground);font-variant-numeric:tabular-nums;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;line-height:1;display:flex}.select-option.svelte-j9tcnn:hover .option-number:where(.svelte-j9tcnn),.select-option.highlighted.svelte-j9tcnn .option-number:where(.svelte-j9tcnn){background:var(--chart-3);color:var(--primary-foreground)}.option-body.svelte-j9tcnn{flex-direction:column;gap:1px;min-width:0;padding-top:1px;display:flex}.option-label.svelte-j9tcnn{font-weight:500;line-height:1.35}.option-desc.svelte-j9tcnn{color:var(--muted-foreground);font-size:.8rem;line-height:1.4}.confirm-actions.svelte-j9tcnn{justify-content:flex-end;gap:8px;padding:4px 0;display:flex}.panel-hint.svelte-j9tcnn{color:var(--muted-foreground);opacity:.7;align-items:center;gap:6px;padding-top:8px;font-size:.7rem;display:flex}.panel-hint.svelte-j9tcnn kbd:where(.svelte-j9tcnn){background:var(--secondary);border-radius:3px;padding:1px 4px;font-family:inherit;font-size:.65rem}.hint-sep.svelte-j9tcnn{opacity:.5}@keyframes svelte-1s9sawt-session-pill-swipe-nudge{0%,to{transform:translateY(0)}35%{transform:translateY(-8px)}65%{transform:translateY(-3px)}}.session-pill-swipe-hint.svelte-1s9sawt{animation:.9s ease-in-out svelte-1s9sawt-session-pill-swipe-nudge}.dot.svelte-ttwohx{border-radius:9999px;width:.75rem;height:.75rem;display:inline-block}@keyframes svelte-ttwohx-breathe{0%,to{opacity:.6}50%{opacity:1}}.animate-breathe.svelte-ttwohx{animation:2s ease-in-out infinite svelte-ttwohx-breathe}@keyframes svelte-ttwohx-thinking{0%,to{opacity:.5;transform:scale(.95)}50%{opacity:1;transform:scale(1.1)}}.animate-thinking.svelte-ttwohx{animation:.6s ease-in-out infinite svelte-ttwohx-thinking}
1
+ .hljs{color:#adbac7;background:oklch(16% .03 258)}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#f47067}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#dcbdfb}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#6cb6ff}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#96d0ff}.hljs-built_in,.hljs-symbol{color:#f69d50}.hljs-code,.hljs-comment,.hljs-formula{color:#768390}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#8ddb8c}.hljs-subst{color:#adbac7}.hljs-section{color:#316dca;font-weight:700}.hljs-bullet{color:#eac55f}.hljs-emphasis{color:#adbac7;font-style:italic}.hljs-strong{color:#adbac7;font-weight:700}.hljs-addition{color:#b4f1b4;background-color:#1b4721}.hljs-deletion{color:#ffd8d3;background-color:#78191b}.text-block.svelte-8p0cc8{word-wrap:break-word;overflow-wrap:break-word;line-height:1.6}.markdown-content.svelte-8p0cc8 p{margin:.5em 0}.markdown-content.svelte-8p0cc8 p:first-child{margin-top:0}.markdown-content.svelte-8p0cc8 p:last-child{margin-bottom:0}.markdown-content.svelte-8p0cc8 ul,.markdown-content.svelte-8p0cc8 ol{margin:.5em 0;padding-left:1.5em}.markdown-content.svelte-8p0cc8 li{margin:.25em 0}.markdown-content.svelte-8p0cc8 h1,.markdown-content.svelte-8p0cc8 h2,.markdown-content.svelte-8p0cc8 h3,.markdown-content.svelte-8p0cc8 h4{margin:1em 0 .5em;font-weight:600}.markdown-content.svelte-8p0cc8 h1{font-size:1.25em}.markdown-content.svelte-8p0cc8 h2{font-size:1.15em}.markdown-content.svelte-8p0cc8 h3{font-size:1.05em}.markdown-content.svelte-8p0cc8 blockquote{border-left:3px solid var(--border);color:var(--muted-foreground);margin:.5em 0;padding-left:1em}.markdown-content.svelte-8p0cc8 hr{border:none;border-top:1px solid var(--border);margin:1em 0}.markdown-content.svelte-8p0cc8 a{color:oklch(70% .15 250);text-underline-offset:2px;text-decoration:underline}.markdown-content.svelte-8p0cc8 a:hover{color:oklch(80% .15 250)}.markdown-content.svelte-8p0cc8 code{font-size:.9em;font-family:var(--font-mono);background:oklch(20% .02 258);border-radius:4px;padding:.15em .4em}.markdown-content.svelte-8p0cc8 pre{border:1px solid var(--border);-webkit-overflow-scrolling:touch;background:oklch(16% .03 258);border-radius:8px;margin:.75em 0;padding:12px;overflow:auto hidden}.markdown-content.svelte-8p0cc8 .code-block-wrapper{position:relative}.markdown-content.svelte-8p0cc8 pre.code-block-with-copy{padding-right:56px}.markdown-content.svelte-8p0cc8 .code-block-wrapper>.code-copy-btn{font-size:.7rem;font-family:var(--font-mono,monospace);color:var(--muted-foreground);border:1px solid var(--border);cursor:pointer;opacity:.55;background:oklch(22% .03 258/.85);border-radius:4px;padding:3px 8px;line-height:1;transition:opacity .15s,color .15s,background-color .15s;position:absolute;top:6px;right:6px}.markdown-content.svelte-8p0cc8 .code-block-wrapper>.code-copy-btn:hover,.markdown-content.svelte-8p0cc8 .code-block-wrapper>.code-copy-btn:focus-visible,.markdown-content.svelte-8p0cc8 .code-block-wrapper>.code-copy-btn.copied{opacity:1;color:var(--foreground);background:oklch(28% .04 260)}.markdown-content.svelte-8p0cc8 pre code{font-size:.875em;font-family:var(--font-mono);background:0 0;border-radius:0;padding:0;line-height:1.5}.markdown-content.svelte-8p0cc8 table{-webkit-overflow-scrolling:touch;border-collapse:collapse;width:100%;margin:.75em 0;font-size:.9em;display:block;overflow-x:auto}.markdown-content.svelte-8p0cc8 th,.markdown-content.svelte-8p0cc8 td{border:1px solid var(--border);text-align:left;padding:6px 12px}.markdown-content.svelte-8p0cc8 th{background:oklch(20% .02 258);font-weight:600}.markdown-content.svelte-8p0cc8 strong{font-weight:600}.markdown-content.svelte-8p0cc8 em{font-style:italic}.thinking-block.svelte-1mu9o59{border:1px solid var(--border);border-radius:6px;margin:.25em 0;overflow:hidden}.thinking-header.svelte-1mu9o59{width:100%;color:var(--muted-foreground);cursor:pointer;text-align:left;background:oklch(18% .025 258);border:none;align-items:center;gap:6px;padding:6px 10px;font-size:.8rem;transition:background-color .15s;display:flex}.thinking-header.svelte-1mu9o59:hover{background:oklch(22% .03 258)}.thinking-label.svelte-1mu9o59{flex-shrink:0;font-style:italic}.thinking-preview.svelte-1mu9o59{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted-foreground);opacity:.6;flex:1;font-size:.75rem;overflow:hidden}.thinking-word-count.svelte-1mu9o59{opacity:.7;flex-shrink:0;margin-left:auto;font-size:.75rem}.streaming-dot.svelte-1mu9o59{background:var(--status-streaming,oklch(62.3% .169 149.2));border-radius:50%;width:6px;height:6px;animation:1s ease-in-out infinite svelte-1mu9o59-blink}@keyframes svelte-1mu9o59-blink{0%,to{opacity:.3}50%{opacity:1}}.thinking-content.svelte-1mu9o59{border-top:1px solid var(--border);background:oklch(15% .02 258);max-height:300px;padding:8px 12px;overflow-y:auto}.thinking-text.svelte-1mu9o59{white-space:pre-wrap;word-wrap:break-word;color:var(--muted-foreground);font-size:.8rem;line-height:1.5;font-family:var(--font-mono);margin:0}.streaming-collapsible.svelte-tetllc{--_accent:var(--muted-foreground)}.streaming-collapsible.accent-purple.svelte-tetllc{--_accent:oklch(55% .1 280)}.collapsible-text.svelte-tetllc{white-space:pre-wrap;word-wrap:break-word;color:var(--foreground);font-size:.8rem;line-height:1.5;font-family:var(--font-mono);margin:0}.collapsible-text.scrollable.svelte-tetllc{max-height:400px;overflow-y:auto}.collapsible-toggle.svelte-tetllc{color:var(--_accent);cursor:pointer;text-underline-offset:2px;opacity:.8;background:0 0;border:none;margin-top:4px;padding:0;font-size:.75rem;text-decoration:underline;display:inline-block}.collapsible-toggle.svelte-tetllc:hover{opacity:1;color:var(--foreground)}.edit-diff.svelte-1i84oek{border:1px solid var(--border);-webkit-overflow-scrolling:touch;background:oklch(16% .03 258);border-radius:8px;margin:0;padding:12px;overflow:auto hidden}.edit-diff.svelte-1i84oek code:where(.svelte-1i84oek){font-size:.875em;font-family:var(--font-mono);white-space:pre;background:0 0;border-radius:0;padding:0;line-height:1.5;display:block}.edit-diff-gap.svelte-1i84oek{height:.75em}.tool-block.svelte-1j1om46{border:1px solid var(--border);border-radius:6px;margin:.25em 0;overflow:hidden}.tool-header.svelte-1j1om46{width:100%;color:var(--muted-foreground);cursor:pointer;text-align:left;background:oklch(18% .025 258);border:none;align-items:center;gap:6px;padding:6px 10px;font-size:.8rem;transition:background-color .15s;display:flex}.tool-header.svelte-1j1om46:hover{background:oklch(22% .03 258)}.tool-name.svelte-1j1om46{font-family:var(--font-mono);color:var(--foreground);flex-shrink:0;font-weight:500}.tool-detail.svelte-1j1om46{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-mono);color:var(--muted-foreground);flex:1;font-size:.75rem;overflow:hidden}.tool-status.svelte-1j1om46{opacity:.7;flex-shrink:0;margin-left:auto;font-size:.75rem;font-style:italic}.tool-content.svelte-1j1om46{border-top:1px solid var(--border);background:oklch(15% .02 258)}.tool-section.svelte-1j1om46{padding:6px 12px}.tool-section.svelte-1j1om46+.tool-section:where(.svelte-1j1om46){border-top:1px solid var(--border)}.tool-section-label.svelte-1j1om46{text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground);margin-bottom:4px;font-size:.7rem;font-weight:500}.in-progress.svelte-1j1om46 .tool-header:where(.svelte-1j1om46){background:oklch(18% .035 258)}.tool-result.svelte-1j1om46:not(.tool-error) .tool-header:where(.svelte-1j1om46) svg,.tool-completed.svelte-1j1om46:not(.tool-error) .tool-header:where(.svelte-1j1om46) svg{color:var(--status-connected,oklch(62.3% .169 149.2))}.tool-result.tool-error.svelte-1j1om46 .tool-header:where(.svelte-1j1om46) svg,.tool-completed.tool-error.svelte-1j1om46 .tool-header:where(.svelte-1j1om46) svg{color:var(--destructive,oklch(57.7% .245 27.325))}.tool-btn.svelte-4obvr9{width:28px;height:28px;color:var(--foreground);cursor:pointer;background:oklch(28% .04 260);border:none;border-radius:50%;justify-content:center;align-items:center;transition:background-color .15s;display:flex}.tool-btn.svelte-4obvr9:active{background:oklch(35% .04 260)}.tool-btn.svelte-1kw4msz{width:28px;height:28px;color:var(--foreground);cursor:pointer;background:oklch(28% .04 260);border:none;border-radius:50%;justify-content:center;align-items:center;transition:background-color .15s;display:flex}.tool-btn.svelte-1kw4msz:active{background:oklch(35% .04 260)}.message.svelte-1uqoiy7{gap:10px;padding:12px 0;display:flex}.message-icon.svelte-1uqoiy7{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.user-icon.svelte-1uqoiy7{color:oklch(85% .05 250);background:oklch(35% .08 250);margin-top:2px}button.user-icon.svelte-1uqoiy7{cursor:pointer;border:none;transition:background-color .15s}button.user-icon.svelte-1uqoiy7:active{background:oklch(42% .08 250)}.user-icon-col.svelte-1uqoiy7{flex-direction:column;flex-shrink:0;align-items:center;gap:6px;margin-top:2px;display:flex}.fork-btn.svelte-1uqoiy7{width:28px;height:28px;color:var(--foreground);cursor:pointer;background:oklch(28% .04 260);border:none;border-radius:50%;justify-content:center;align-items:center;transition:background-color .15s;display:flex}.fork-btn.svelte-1uqoiy7:hover{background:oklch(35% .04 260)}.assistant-icon.svelte-1uqoiy7{color:var(--foreground);background:oklch(28% .04 260)}button.assistant-icon.svelte-1uqoiy7{cursor:pointer;border:none;transition:background-color .15s}button.assistant-icon.svelte-1uqoiy7:active{background:oklch(35% .04 260)}.assistant-icon-col.svelte-1uqoiy7{flex-direction:column;flex-shrink:0;align-items:center;gap:6px;margin-top:2px;display:flex}.tool-menu.svelte-1uqoiy7{flex-direction:column;align-items:center;gap:6px;display:flex}.message-body.svelte-1uqoiy7{flex:1;min-width:0;font-size:.9rem}.user-body.svelte-1uqoiy7{background:oklch(22% .04 260);border-radius:4px 12px 12px;padding:10px 14px}.user-text.svelte-1uqoiy7{white-space:pre-wrap;word-wrap:break-word;line-height:1.5}.system-message.svelte-1uqoiy7{justify-content:center;padding:8px 0}.system-message.svelte-1uqoiy7 .message-body:where(.svelte-1uqoiy7){text-align:center}.system-text.svelte-1uqoiy7{color:var(--muted-foreground);font-size:.8rem;font-style:italic}.skill-body.svelte-1uqoiy7{background:oklch(20% .02 170/.5);border-left:3px solid oklch(55% .12 170);border-radius:4px;overflow:hidden}.skill-header.svelte-1uqoiy7{cursor:pointer;color:oklch(70% .12 170);text-align:left;background:0 0;border:none;align-items:center;gap:6px;width:100%;padding:6px 10px;font-size:.75rem;font-weight:600;display:flex}.skill-header.svelte-1uqoiy7:hover{background:oklch(25% .02 170/.5)}.skill-label.svelte-1uqoiy7{font-family:var(--font-mono,monospace)}.skill-line-count.svelte-1uqoiy7{color:var(--muted-foreground);font-weight:400}.skill-content.svelte-1uqoiy7{padding:0 10px 8px;font-size:.85rem}.skill-text-container.svelte-1uqoiy7{position:relative}.skill-text-collapsed.svelte-1uqoiy7{max-height:65px;overflow:hidden}.skill-text-collapsed.svelte-1uqoiy7:after{content:"";pointer-events:none;background:linear-gradient(oklch(20% .02 170/0),oklch(20% .02 170/.95));height:32px;position:absolute;bottom:0;left:0;right:0}.skill-text-expanded.svelte-1uqoiy7{max-height:500px;overflow-y:auto}.skill-toggle.svelte-1uqoiy7{color:oklch(65% .12 170);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;margin-top:4px;padding:0;font-size:.75rem;text-decoration:underline;display:inline-block}.skill-toggle.svelte-1uqoiy7:hover{color:oklch(75% .12 170)}.skill-after.svelte-1uqoiy7{margin-top:6px}.custom-message.svelte-1uqoiy7{flex-direction:column;gap:0;padding:8px 0}.custom-body.svelte-1uqoiy7{background:oklch(20% .02 270/.5);border-left:3px solid oklch(55% .1 280);border-radius:4px;overflow:hidden}.custom-header.svelte-1uqoiy7{cursor:pointer;color:oklch(70% .1 280);text-align:left;background:0 0;border:none;align-items:center;gap:6px;width:100%;padding:6px 10px;font-size:.75rem;font-weight:600;display:flex}.custom-header.svelte-1uqoiy7:hover{background:oklch(25% .02 270/.5)}.custom-label.svelte-1uqoiy7{font-family:var(--font-mono,monospace)}.custom-line-count.svelte-1uqoiy7{color:var(--muted-foreground);font-weight:400}.custom-content.svelte-1uqoiy7{padding:0 10px 8px;font-size:.85rem}.custom-text-container.svelte-1uqoiy7{position:relative}.custom-text-collapsed.svelte-1uqoiy7{max-height:200px;overflow:hidden}.custom-text-collapsed.svelte-1uqoiy7:after{content:"";pointer-events:none;background:linear-gradient(oklch(20% .02 270/0),oklch(20% .02 270/.95));height:48px;position:absolute;bottom:0;left:0;right:0}.custom-text-expanded.svelte-1uqoiy7{max-height:500px;overflow-y:auto}.custom-toggle.svelte-1uqoiy7{color:oklch(65% .1 280);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;margin-top:4px;padding:0;font-size:.75rem;text-decoration:underline;display:inline-block}.custom-toggle.svelte-1uqoiy7:hover{color:oklch(75% .1 280)}@media (width<=640px){.message.svelte-1uqoiy7{flex-direction:column;gap:6px}.user-icon-col.svelte-1uqoiy7,.assistant-icon-col.svelte-1uqoiy7{flex-direction:row;align-items:center;margin-top:0}.tool-menu.svelte-1uqoiy7{flex-direction:row}}.streaming-indicator.svelte-132ojzb{align-items:center;gap:4px;padding:8px 4px;display:inline-flex}.dot.svelte-132ojzb{background-color:var(--status-streaming,oklch(62.3% .169 149.2));border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite svelte-132ojzb-pulse}.dot.svelte-132ojzb:nth-child(2){animation-delay:.2s}.dot.svelte-132ojzb:nth-child(3){animation-delay:.4s}@keyframes svelte-132ojzb-pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.message-list-wrapper.svelte-qha2j{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.message-list.svelte-qha2j{-webkit-overflow-scrolling:touch;scroll-behavior:auto;flex:1;overflow:hidden auto}.message-list-inner.svelte-qha2j{max-width:768px;margin:0 auto;padding:16px 16px 24px}.empty-state.svelte-qha2j{color:var(--muted-foreground);justify-content:center;align-items:center;padding:48px 16px;font-size:.9rem;display:flex}.streaming-indicator-row.svelte-qha2j{padding:4px 0 4px 38px}.scroll-to-bottom.svelte-qha2j{background:var(--secondary);width:40px;height:40px;color:var(--secondary-foreground);border:1px solid var(--border);cursor:pointer;z-index:10;border-radius:50%;justify-content:center;align-items:center;transition:background-color .15s,transform .15s;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px oklch(0% 0 0/.3)}.scroll-to-bottom.svelte-qha2j:hover{background:var(--accent);transform:translate(-50%)scale(1.05)}.scroll-to-bottom.svelte-qha2j:active{transform:translate(-50%)scale(.95)}.last-activity.svelte-qha2j{text-align:right;color:var(--muted-foreground);opacity:.6;padding:4px 4px 0;font-size:.7rem}.inline-select-panel.svelte-j9tcnn{border-top:1px solid var(--border);background:var(--background);outline:none;padding:12px 16px}.panel-header.svelte-j9tcnn{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.panel-title.svelte-j9tcnn{color:var(--foreground);font-size:.875rem;font-weight:600}.panel-cancel.svelte-j9tcnn{color:var(--muted-foreground);cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:.7rem}.panel-cancel.svelte-j9tcnn:hover{opacity:1;background:var(--accent)}.panel-header-actions.svelte-j9tcnn{align-items:center;gap:4px;display:flex}.panel-collapse.svelte-j9tcnn{color:var(--muted-foreground);cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:4px;padding:2px 8px;font-size:.85rem;line-height:1}.panel-collapse.svelte-j9tcnn:hover{opacity:1;background:var(--accent)}.panel-title-meta.svelte-j9tcnn{color:var(--muted-foreground);margin-left:4px;font-size:.75rem;font-weight:400}.inline-select-panel.collapsed.svelte-j9tcnn .panel-header:where(.svelte-j9tcnn){margin-bottom:0}.panel-description.svelte-j9tcnn{color:var(--muted-foreground);margin-bottom:8px;font-size:.8rem;line-height:1.4}.panel-options.svelte-j9tcnn{flex-direction:column;gap:2px;max-width:768px;margin:0 auto;display:flex}.select-option.svelte-j9tcnn{text-align:left;cursor:pointer;width:100%;color:var(--foreground);background:0 0;border:1px solid #0000;border-radius:8px;align-items:flex-start;gap:10px;padding:8px 10px;font-size:.875rem;transition:background-color .1s,border-color .1s;display:flex}.select-option.svelte-j9tcnn:hover,.select-option.highlighted.svelte-j9tcnn{background:var(--accent);border-color:var(--border)}.option-number.svelte-j9tcnn{background:var(--secondary);width:22px;height:22px;color:var(--muted-foreground);font-variant-numeric:tabular-nums;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;line-height:1;display:flex}.select-option.svelte-j9tcnn:hover .option-number:where(.svelte-j9tcnn),.select-option.highlighted.svelte-j9tcnn .option-number:where(.svelte-j9tcnn){background:var(--chart-3);color:var(--primary-foreground)}.option-body.svelte-j9tcnn{flex-direction:column;gap:1px;min-width:0;padding-top:1px;display:flex}.option-label.svelte-j9tcnn{font-weight:500;line-height:1.35}.option-desc.svelte-j9tcnn{color:var(--muted-foreground);font-size:.8rem;line-height:1.4}.confirm-actions.svelte-j9tcnn{justify-content:flex-end;gap:8px;padding:4px 0;display:flex}.panel-hint.svelte-j9tcnn{color:var(--muted-foreground);opacity:.7;align-items:center;gap:6px;padding-top:8px;font-size:.7rem;display:flex}.panel-hint.svelte-j9tcnn kbd:where(.svelte-j9tcnn){background:var(--secondary);border-radius:3px;padding:1px 4px;font-family:inherit;font-size:.65rem}.hint-sep.svelte-j9tcnn{opacity:.5}@keyframes svelte-1s9sawt-session-pill-swipe-nudge{0%,to{transform:translateY(0)}35%{transform:translateY(-8px)}65%{transform:translateY(-3px)}}.session-pill-swipe-hint.svelte-1s9sawt{animation:.9s ease-in-out svelte-1s9sawt-session-pill-swipe-nudge}.dot.svelte-ttwohx{border-radius:9999px;width:.75rem;height:.75rem;display:inline-block}@keyframes svelte-ttwohx-breathe{0%,to{opacity:.6}50%{opacity:1}}.animate-breathe.svelte-ttwohx{animation:2s ease-in-out infinite svelte-ttwohx-breathe}@keyframes svelte-ttwohx-thinking{0%,to{opacity:.5;transform:scale(.95)}50%{opacity:1;transform:scale(1.1)}}.animate-thinking.svelte-ttwohx{animation:.6s ease-in-out infinite svelte-ttwohx-thinking}
@@ -0,0 +1 @@
1
+ var e=`1778095230587`;export{e as t};
@@ -0,0 +1 @@
1
+ import{G as e,U as t,W as n,it as r,lt as i,ot as a,r as o,t as s}from"./B8lQCytv.js";import{t as c}from"./-Lc-U-GJ.js";var l=class{constructor(e,t){this.status=e,typeof t==`string`?this.body={message:t}:t?this.body=t:this.body={message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}},u=class{constructor(e,t){this.status=e,this.location=t}},d=class extends Error{constructor(e,t,n){super(n),this.status=e,this.text=t}};new URL(`sveltekit-internal://`);function f(e,t){return e===`/`||t===`ignore`?e:t===`never`?e.endsWith(`/`)?e.slice(0,-1):e:t===`always`&&!e.endsWith(`/`)?e+`/`:e}function p(e){return e.split(`%25`).map(decodeURI).join(`%25`)}function ee(e){for(let t in e)e[t]=decodeURIComponent(e[t]);return e}function m({href:e}){return e.split(`#`)[0]}function h(...e){let t=5381;for(let n of e)if(typeof n==`string`){let e=n.length;for(;e;)t=t*33^n.charCodeAt(--e)}else if(ArrayBuffer.isView(n)){let e=new Uint8Array(n.buffer,n.byteOffset,n.byteLength),r=e.length;for(;r;)t=t*33^e[--r]}else throw TypeError(`value must be a string or TypedArray`);return(t>>>0).toString(36)}new TextEncoder,new TextDecoder;function g(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}var te=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||`GET`)!==`GET`&&_.delete(b(e)),te(e,t));var _=new Map;function v(e,t){let n=b(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:e,...t}=JSON.parse(r.textContent),i=r.getAttribute(`data-ttl`);return i&&_.set(n,{body:e,init:t,ttl:1e3*Number(i)}),r.getAttribute(`data-b64`)!==null&&(e=g(e)),Promise.resolve(new Response(e,t))}return window.fetch(e,t)}function y(e,t,n){if(_.size>0){let t=b(e,n),r=_.get(t);if(r){if(performance.now()<r.ttl&&[`default`,`force-cache`,`only-if-cached`,void 0].includes(n?.cache))return new Response(r.body,r.init);_.delete(t)}}return window.fetch(t,n)}function b(e,t){let n=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){let e=[];t.headers&&e.push([...new Headers(t.headers)].join(`,`)),t.body&&(typeof t.body==`string`||ArrayBuffer.isView(t.body))&&e.push(t.body),n+=`[data-hash="${h(...e)}"]`}return n}var ne=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function re(e){let t=[];return{pattern:e===`/`?/^\/$/:RegExp(`^${ae(e).map(e=>{let n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(e);if(n)return t.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),`(?:/([^]*))?`;let r=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(e);if(r)return t.push({name:r[1],matcher:r[2],optional:!0,rest:!1,chained:!0}),`(?:/([^/]+))?`;if(!e)return;let i=e.split(/\[(.+?)\](?!\])/);return`/`+i.map((e,n)=>{if(n%2){if(e.startsWith(`x+`))return se(String.fromCharCode(parseInt(e.slice(2),16)));if(e.startsWith(`u+`))return se(String.fromCharCode(...e.slice(2).split(`-`).map(e=>parseInt(e,16))));let[,r,a,o,s]=ne.exec(e);return t.push({name:o,matcher:s,optional:!!r,rest:!!a,chained:a?n===1&&i[0]===``:!1}),a?`([^]*?)`:r?`([^/]*)?`:`([^/]+?)`}return se(e)}).join(``)}).join(``)}/?$`),params:t}}function ie(e){return e!==``&&!/^\([^)]+\)$/.test(e)}function ae(e){return e.slice(1).split(`/`).filter(ie)}function oe(e,t,n){let r={},i=e.slice(1),a=i.filter(e=>e!==void 0),o=0;for(let e=0;e<t.length;e+=1){let s=t[e],c=i[e-o];if(s.chained&&s.rest&&o&&(c=i.slice(e-o,e+1).filter(e=>e).join(`/`),o=0),c===void 0)if(s.rest)c=``;else continue;if(!s.matcher||n[s.matcher](c)){r[s.name]=c;let n=t[e+1],l=i[e+1];n&&!n.rest&&n.optional&&l&&s.chained&&(o=0),!n&&!l&&Object.keys(r).length===a.length&&(o=0);continue}if(s.optional&&s.chained){o++;continue}return}if(!o)return r}function se(e){return e.normalize().replace(/[[\]]/g,`\\$&`).replace(/%/g,`%25`).replace(/\//g,`%2[Ff]`).replace(/\?/g,`%3[Ff]`).replace(/#/g,`%23`).replace(/[.*+?^${}()|\\]/g,`\\$&`)}function ce({nodes:e,server_loads:t,dictionary:n,matchers:r}){let i=new Set(t);return Object.entries(n).map(([t,[n,i,s]])=>{let{pattern:c,params:l}=re(t),u={id:t,exec:e=>{let t=c.exec(e);if(t)return oe(t,l,r)},errors:[1,...s||[]].map(t=>e[t]),layouts:[0,...i||[]].map(o),leaf:a(n)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function a(t){let n=t<0;return n&&(t=~t),[n,e[t]]}function o(t){return t===void 0?t:[i.has(t),e[t]]}}function le(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function ue(e,t,n=JSON.stringify){let r=n(t);try{sessionStorage[e]=r}catch{}}var x=globalThis.__sveltekit_r6du57?.base??``,de=globalThis.__sveltekit_r6du57?.assets??x??``,fe=`sveltekit:snapshot`,pe=`sveltekit:scroll`,me=`sveltekit:states`,S=`sveltekit:history`,C=`sveltekit:navigation`,w={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},he=location.origin;function ge(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){let e=document.getElementsByTagName(`base`);t=e.length?e[0].href:document.URL}return new URL(e,t)}function T(){return{x:pageXOffset,y:pageYOffset}}function E(e,t){return e.getAttribute(`data-sveltekit-${t}`)}var _e={...w,"":w.hover};function ve(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function ye(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()===`A`&&e.hasAttribute(`href`))return e;e=ve(e)}}function be(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){let e=location.hash.split(`#`)[1]||`/`;r.hash=`#${e}${r.hash}`}}catch{}let i=e instanceof SVGAElement?e.target.baseVal:e.target,a=!r||!!i||we(r,t,n)||(e.getAttribute(`rel`)||``).split(/\s+/).includes(`external`),o=r?.origin===he&&e.hasAttribute(`download`);return{url:r,external:a,target:i,download:o}}function D(e){let t=null,n=null,r=null,i=null,a=null,o=null,s=e;for(;s&&s!==document.documentElement;)r===null&&(r=E(s,`preload-code`)),i===null&&(i=E(s,`preload-data`)),t===null&&(t=E(s,`keepfocus`)),n===null&&(n=E(s,`noscroll`)),a===null&&(a=E(s,`reload`)),o===null&&(o=E(s,`replacestate`)),s=ve(s);function c(e){switch(e){case``:case`true`:return!0;case`off`:case`false`:return!1;default:return}}return{preload_code:_e[r??`off`],preload_data:_e[i??`off`],keepfocus:c(t),noscroll:c(n),reload:c(a),replace_state:c(o)}}function xe(e){let t=i(e),n=!0;function r(){n=!0,t.update(e=>e)}function a(e){n=!1,t.set(e)}function o(e){let r;return t.subscribe(t=>{(r===void 0||n&&t!==r)&&e(r=t)})}return{notify:r,set:a,subscribe:o}}var Se={v:()=>{}};function Ce(){let{set:e,subscribe:t}=i(!1);async function n(){clearTimeout(void 0);try{let t=await fetch(`${de}/_app/version.json`,{headers:{pragma:`no-cache`,"cache-control":`no-cache`}});if(!t.ok)return!1;let n=(await t.json()).version!==c;return n&&(e(!0),Se.v(),clearTimeout(void 0)),n}catch{return!1}}return{subscribe:t,check:n}}function we(e,t,n){return e.origin!==he||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function Te(e){}var Ee=new Set([`load`,`prerender`,`csr`,`ssr`,`trailingSlash`,`config`]);new Set([...Ee,`entries`]);var De=new Set([...Ee]);new Set([...De,`actions`,`entries`]);function Oe(e){return e.filter(e=>e!=null)}function ke(e){return e instanceof l||e instanceof d?e.status:500}function Ae(e){return e instanceof d?e.text:`Internal Error`}var O,k,A,je=o.toString().includes(`$$`)||/function \w+\(\) \{\}/.test(o.toString()),Me=`a:`;je?(O={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(Me)},k={current:null},A={current:!1}):(O=new class{#e=a({});get data(){return t(this.#e)}set data(e){r(this.#e,e)}#t=a(null);get form(){return t(this.#t)}set form(e){r(this.#t,e)}#n=a(null);get error(){return t(this.#n)}set error(e){r(this.#n,e)}#r=a({});get params(){return t(this.#r)}set params(e){r(this.#r,e)}#i=a({id:null});get route(){return t(this.#i)}set route(e){r(this.#i,e)}#a=a({});get state(){return t(this.#a)}set state(e){r(this.#a,e)}#o=a(-1);get status(){return t(this.#o)}set status(e){r(this.#o,e)}#s=a(new URL(Me));get url(){return t(this.#s)}set url(e){r(this.#s,e)}},k=new class{#e=a(null);get current(){return t(this.#e)}set current(e){r(this.#e,e)}},A=new class{#e=a(!1);get current(){return t(this.#e)}set current(e){r(this.#e,e)}},Se.v=()=>A.current=!0);function Ne(e){Object.assign(O,e)}var{onMount:Pe,tick:Fe}=s,Ie=new Set([`icon`,`shortcut icon`,`apple-touch-icon`]),j=null,M=le(`sveltekit:scroll`)??{},N=le(`sveltekit:snapshot`)??{},P={url:xe({}),page:xe({}),navigating:i(null),updated:Ce()};function Le(e){M[e]=T()}function Re(e,t){let n=e+1;for(;M[n];)delete M[n],n+=1;for(n=t+1;N[n];)delete N[n],n+=1}function F(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(()=>{})}async function ze(){if(`serviceWorker`in navigator){let e=await navigator.serviceWorker.getRegistration(x||`/`);e&&await e.update()}}function Be(){}var Ve,He,I,L,Ue,R,z=[],B=[],V=null;function H(){V?.fork?.then(e=>e?.discard()),V=null}var U=new Map,We=new Set,Ge=new Set,W=new Set,G={branch:[],error:null,url:null,nav:null},Ke=!1,K=!1,qe=!0,q=!1,J=!1,Je=!1,Ye=!1,Xe,Y,X,Z,Ze=new Set,Qe=new Map;async function $e(e,t,n){globalThis.__sveltekit_r6du57&&(globalThis.__sveltekit_r6du57.query,globalThis.__sveltekit_r6du57.prerender),document.URL!==location.href&&(location.href=location.href),R=e,await e.hooks.init?.(),Ve=ce(e),L=document.documentElement,Ue=t,He=e.nodes[0],I=e.nodes[1],He(),I(),Y=history.state?.[S],X=history.state?.[C],Y||(Y=X=Date.now(),history.replaceState({...history.state,[S]:Y,[C]:X},``));let r=M[Y];function i(){r&&(history.scrollRestoration=`manual`,scrollTo(r.x,r.y))}n?(i(),await Dt(Ue,n)):(await Q({type:`enter`,url:ge(R.hash?Nt(new URL(location.href)):location.href),replace_state:!0}),i()),Et()}function et(){z.length=0,Ye=!1}function tt(e){B.some(e=>e?.snapshot)&&(N[e]=B.map(e=>e?.snapshot?.capture()))}function nt(e){N[e]?.forEach((e,t)=>{B[t]?.snapshot?.restore(e)})}function rt(){Le(Y),ue(pe,M),tt(X),ue(fe,N)}async function it(t,n,r,i){let a;n.invalidateAll&&H(),await Q({type:`goto`,url:ge(t),keepfocus:n.keepFocus,noscroll:n.noScroll,replace_state:n.replaceState,state:n.state,redirect_count:r,nav_token:i,accept:()=>{n.invalidateAll&&(Ye=!0,a=[],Qe.forEach((e,t)=>{for(let n of e.keys())a.push(t+`/`+n)})),n.invalidate&&n.invalidate.forEach(Tt)}}),n.invalidateAll&&e().then(e).then(()=>{Qe.forEach((e,t)=>{e.forEach(({resource:e},n)=>{a?.includes(t+`/`+n)&&e.refresh?.()})})})}async function at(e){if(e.id!==V?.id){H();let t={};Ze.add(t),V={id:e.id,token:t,promise:ht({...e,preload:t}).then(e=>(Ze.delete(t),e.type===`loaded`&&e.state.error&&H(),e)),fork:null}}return V.promise}async function ot(e){let t=(await yt(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(e=>e[1]()))}async function st(e,t,n){let r={params:G.params,route:{id:G.route?.id??null},url:new URL(location.href)};G={...e.state,nav:r};let i=document.querySelector(`style[data-sveltekit]`);if(i&&i.remove(),Object.assign(O,e.props.page),Xe=new R.root({target:t,props:{...e.props,stores:P,components:B},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),nt(X),n){let e={from:null,to:{...r,scroll:M[Y]??T()},willUnload:!1,type:`enter`,complete:Promise.resolve()};W.forEach(t=>t(e))}K=!0}async function ct({url:e,params:t,branch:n,errors:r,status:i,error:a,route:o,form:s}){let c=`never`;if(x&&(e.pathname===x||e.pathname===x+`/`))c=`always`;else for(let e of n)e?.slash!==void 0&&(c=e.slash);e.pathname=f(e.pathname,c),e.search=e.search;let l={type:`loaded`,state:{url:e,params:t,branch:n,error:a,route:o},props:{constructors:Oe(n).map(e=>e.node.component),page:Mt(O)}};s!==void 0&&(l.props.form=s);let u={},d=!O,p=0;for(let e=0;e<Math.max(n.length,G.branch.length);e+=1){let t=n[e],r=G.branch[e];t?.data!==r?.data&&(d=!0),t&&(u={...u,...t.data},d&&(l.props[`data_${p}`]=u),p+=1)}return(!G.url||e.href!==G.url.href||G.error!==a||s!==void 0&&s!==O.form||d)&&(l.props.page={error:a,params:t,route:{id:o?.id??null},state:{},status:i,url:new URL(e),form:s??null,data:d?u:O.data}),l}async function lt({loader:e,parent:t,url:n,params:r,route:i,server_data_node:a}){let o={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},s=await e();return{node:s,loader:e,server:a,universal:s.universal?.load?{type:`data`,data:null,uses:o}:null,data:a?.data??null,slash:s.universal?.trailingSlash??a?.slash}}function ut(e,t,n){let r=e instanceof Request?e.url:e,i=new URL(r,n);return i.origin===n.origin&&(r=i.href.slice(n.origin.length)),{resolved:i,promise:K?y(r,i.href,t):v(r,t)}}function dt(e,t,n,r,i,a){if(Ye)return!0;if(!i)return!1;if(i.parent&&e||i.route&&t||i.url&&n)return!0;for(let e of i.search_params)if(r.has(e))return!0;for(let e of i.params)if(a[e]!==G.params[e])return!0;for(let e of i.dependencies)if(z.some(t=>t(new URL(e))))return!0;return!1}function ft(e,t){return e?.type===`data`?e:e?.type===`skip`?t??null:null}function pt(e,t){if(!e)return new Set(t.searchParams.keys());let n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(let r of n){let i=e.searchParams.getAll(r),a=t.searchParams.getAll(r);i.every(e=>a.includes(e))&&a.every(e=>i.includes(e))&&n.delete(r)}return n}function mt({error:e,url:t,route:n,params:r}){return{type:`loaded`,state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:Mt(O),constructors:[]}}}async function ht({id:e,invalidating:t,url:n,params:r,route:i,preload:a}){if(V?.id===e)return Ze.delete(V.token),V.promise;let{errors:o,layouts:s,leaf:c}=i,d=[...s,c];o.forEach(e=>e?.().catch(()=>{})),d.forEach(e=>e?.[1]().catch(()=>{}));let f=G.url?e!==xt(G.url):!1,p=G.route?i.id!==G.route.id:!1,ee=pt(G.url,n),m=!1,h=d.map(async(e,t)=>{if(!e)return;let a=G.branch[t];return e[1]===a?.loader&&!dt(m,p,f,ee,a.universal?.uses,r)?a:(m=!0,lt({loader:e[1],url:n,params:r,route:i,parent:async()=>{let e={};for(let n=0;n<t;n+=1)Object.assign(e,(await h[n])?.data);return e},server_data_node:ft(e[0]?{type:`skip`}:null,e[0]?a?.server:void 0)}))});for(let e of h)e.catch(()=>{});let g=[];for(let e=0;e<d.length;e+=1)if(d[e])try{g.push(await h[e])}catch(t){if(t instanceof u)return{type:`redirect`,location:t.location};if(Ze.has(a))return mt({error:await $(t,{params:r,url:n,route:{id:i.id}}),url:n,params:r,route:i});let s=ke(t),c;if((void 0)?.includes(t))s=t.status??s,c=t.error;else if(t instanceof l)c=t.body;else{if(await P.updated.check())return await ze(),await F(n);c=await $(t,{params:r,url:n,route:{id:i.id}})}let d=await gt(e,g,o);return d?ct({url:n,params:r,branch:g.slice(0,d.idx).concat(d.node),errors:o,status:s,error:c,route:i}):await Ct(n,{id:i.id},c,s)}else g.push(void 0);return ct({url:n,params:r,branch:g,errors:o,status:200,error:null,route:i,form:t?void 0:null})}async function gt(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)--r;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function _t({status:e,error:t,url:n,route:r}){let i={};try{return ct({url:n,params:i,branch:[await lt({loader:He,url:n,params:i,route:r,parent:()=>Promise.resolve({}),server_data_node:ft(null)}),{node:await I(),loader:I,universal:null,server:null,data:null}],status:e,error:t,errors:[],route:null})}catch(e){if(e instanceof u)return it(new URL(e.location,location.href),{},0);throw e}}async function vt(e){let t=e.href;if(U.has(t))return U.get(t);let n;try{let r=(async()=>{let t=await R.hooks.reroute({url:new URL(e),fetch:async(t,n)=>ut(t,n,e).promise})??e;if(typeof t==`string`){let n=new URL(e);R.hash?n.hash=t:n.pathname=t,t=n}return t})();U.set(t,r),n=await r}catch{U.delete(t);return}return n}async function yt(e,t){if(e&&!we(e,x,R.hash)){let n=await vt(e);if(!n)return;let r=bt(n);for(let n of Ve){let i=n.exec(r);if(i)return{id:xt(e),invalidating:t,route:n,params:ee(i),url:e}}}}function bt(e){return p(R.hash?e.hash.replace(/^#/,``).replace(/[?#].+/,``):e.pathname.slice(x.length))||`/`}function xt(e){return(R.hash?e.hash.replace(/^#/,``):e.pathname)+e.search}function St({url:e,type:t,intent:n,delta:r,event:i,scroll:a}){let o=!1,s=jt(G,n,e,t,a??null);r!==void 0&&(s.navigation.delta=r),i!==void 0&&(s.navigation.event=i);let c={...s.navigation,cancel:()=>{o=!0,s.reject(Error(`navigation cancelled`))}};return q||We.forEach(e=>e(c)),o?null:s}async function Q({type:t,url:r,popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c={},redirect_count:l=0,nav_token:u={},accept:f=Be,block:p=Be,event:ee}){let m=Z;Z=u;let h=await yt(r,!1),g=t===`enter`?jt(G,h,r,t):St({url:r,type:t,delta:i?.delta,intent:h,scroll:i?.scroll,event:ee});if(!g){p(),Z===u&&(Z=m);return}let te=Y,_=X;f(),q=!0,K&&g.navigation.type!==`enter`&&P.navigating.set(k.current=g.navigation);let v=h&&await ht(h);if(!v){if(we(r,x,R.hash))return await F(r,s);v=await Ct(r,{id:null},await $(new d(404,`Not Found`,`Not found: ${r.pathname}`),{url:r,params:{},route:{id:null}}),404,s)}if(r=h?.url||r,Z!==u)return g.reject(Error(`navigation aborted`)),!1;if(v.type===`redirect`){if(l<20){await Q({type:t,url:new URL(v.location,r),popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c,redirect_count:l+1,nav_token:u}),g.fulfil(void 0);return}v=await _t({status:500,error:await $(Error(`Redirect loop`),{url:r,params:{},route:{id:null}}),url:r,route:{id:null}})}else v.props.page.status>=400&&await P.updated.check()&&(await ze(),await F(r,s));if(et(),Le(te),tt(_),v.props.page.url.pathname!==r.pathname&&(r.pathname=v.props.page.url.pathname),c=i?i.state:c,!i){let e=s?0:1,t={[S]:Y+=e,[C]:X+=e,[me]:c};(s?history.replaceState:history.pushState).call(history,t,``,r),s||Re(Y,X)}let y=h&&V?.id===h.id?V.fork:null;V?.fork&&!y&&H(),V=null,v.props.page.state=c;let b;if(K){let e=(await Promise.all(Array.from(Ge,e=>e(g.navigation)))).filter(e=>typeof e==`function`);if(e.length>0){function t(){e.forEach(e=>{W.delete(e)})}e.push(t),e.forEach(e=>{W.add(e)})}let t=g.navigation.to;G={...v.state,nav:{params:t.params,route:t.route,url:t.url}},v.props.page&&(v.props.page.url=r);let i=y&&await y;i?b=i.commit():(j=null,Xe.$set(v.props),j&&Object.assign(v.props.page,j),Ne(v.props.page),b=n?.()),Je=!0}else await st(v,Ue,!1);let{activeElement:ne}=document;await b,await e(),await e();let re=null;if(qe){let e=i?i.scroll:o?T():null;e?scrollTo(e.x,e.y):(re=r.hash&&document.getElementById(Pt(r)))?re.scrollIntoView():scrollTo(0,0)}let ie=document.activeElement!==ne&&document.activeElement!==document.body;!a&&!ie&&At(r,!re),qe=!0,v.props.page&&(j&&Object.assign(v.props.page,j),Object.assign(O,v.props.page)),q=!1,t===`popstate`&&nt(X),g.fulfil(void 0),g.navigation.to&&(g.navigation.to.scroll=T()),W.forEach(e=>e(g.navigation)),P.navigating.set(k.current=null)}async function Ct(e,t,n,r,i){return e.origin===he&&e.pathname===location.pathname&&!Ke?await _t({status:r,error:n,url:e,route:t}):await F(e,i)}function wt(){let e,t={element:void 0,href:void 0},n;L.addEventListener(`mousemove`,t=>{let n=t.target;clearTimeout(e),e=setTimeout(()=>{a(n,w.hover)},20)});function r(e){e.defaultPrevented||a(e.composedPath()[0],w.tap)}L.addEventListener(`mousedown`,r),L.addEventListener(`touchstart`,r,{passive:!0});let i=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(ot(new URL(t.target.href)),i.unobserve(t.target))},{threshold:0});async function a(e,r){let i=ye(e,L),a=i===t.element&&i?.href===t.href&&r>=n;if(!i||a)return;let{url:o,external:s,download:c}=be(i,x,R.hash);if(s||c)return;let l=D(i),u=o&&xt(G.url)===xt(o);if(!(l.reload||u))if(r<=l.preload_data){t={element:i,href:i.href},n=w.tap;let e=await yt(o,!1);if(!e)return;at(e)}else r<=l.preload_code&&(t={element:i,href:i.href},n=r,ot(o))}function o(){i.disconnect();for(let e of L.querySelectorAll(`a`)){let{url:t,external:n,download:r}=be(e,x,R.hash);if(n||r)continue;let a=D(e);a.reload||(a.preload_code===w.viewport&&i.observe(e),a.preload_code===w.eager&&ot(t))}}W.add(o),o()}function $(e,t){if(e instanceof l)return e.body;let n=ke(e),r=Ae(e);return R.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function Tt(e){if(typeof e==`function`)z.push(e);else{let{href:t}=new URL(e,location.href);z.push(e=>e.href===t)}}function Et(){history.scrollRestoration=`manual`,addEventListener(`beforeunload`,e=>{let t=!1;if(rt(),!q){let e=jt(G,void 0,null,`leave`),n={...e.navigation,cancel:()=>{t=!0,e.reject(Error(`navigation cancelled`))}};We.forEach(e=>e(n))}t?(e.preventDefault(),e.returnValue=``):history.scrollRestoration=`auto`}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&rt()}),navigator.connection?.saveData||wt(),L.addEventListener(`click`,async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;let n=ye(t.composedPath()[0],L);if(!n)return;let{url:r,external:i,target:a,download:o}=be(n,x,R.hash);if(!r)return;if(a===`_parent`||a===`_top`){if(window.parent!==window)return}else if(a&&a!==`_self`)return;let s=D(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol===`https:`||r.protocol===`http:`)||o)return;let[c,l]=(R.hash?r.hash.replace(/^#/,``):r.href).split(`#`),u=c===m(location);if(i||s.reload&&(!u||!l)){St({url:r,type:`link`,event:t})?q=!0:t.preventDefault();return}if(l!==void 0&&u){let[,i]=G.url.href.split(`#`);if(i===l){if(t.preventDefault(),l===``||l===`top`&&n.ownerDocument.getElementById(`top`)===null)scrollTo({top:0});else{let e=n.ownerDocument.getElementById(decodeURIComponent(l));e&&(e.scrollIntoView(),e.focus())}return}if(J=!0,Le(Y),e(r),!s.replace_state)return;J=!1}t.preventDefault(),await new Promise(e=>{requestAnimationFrame(()=>{setTimeout(e,0)}),setTimeout(e,100)}),await Q({type:`link`,url:r,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??r.href===location.href,event:t})}),L.addEventListener(`submit`,e=>{if(e.defaultPrevented)return;let t=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if((n?.formTarget||t.target)===`_blank`||(n?.formMethod||t.method)!==`get`)return;let r=new URL(n?.hasAttribute(`formaction`)&&n?.formAction||t.action);if(we(r,x,!1))return;let i=e.target,a=D(i);if(a.reload)return;e.preventDefault(),e.stopPropagation();let o=new FormData(i,n);r.search=new URLSearchParams(o).toString(),Q({type:`form`,url:r,keepfocus:a.keepfocus,noscroll:a.noscroll,replace_state:a.replace_state??r.href===location.href,event:e})}),addEventListener(`popstate`,async t=>{if(!kt)if(t.state?.[`sveltekit:history`]){let n=t.state[S];if(Z={},n===Y)return;let r=M[n],i=t.state[`sveltekit:states`]??{},a=new URL(t.state[`sveltekit:pageurl`]??location.href),o=t.state[C],s=G.url?m(location)===m(G.url):!1;if(o===X&&(Je||s)){i!==O.state&&(O.state=i),e(a),M[Y]=T(),r&&scrollTo(r.x,r.y),Y=n;return}let c=n-Y;await Q({type:`popstate`,url:a,popped:{state:i,scroll:r,delta:c},accept:()=>{Y=n,X=o},block:()=>{history.go(-c)},nav_token:Z,event:t})}else J||(e(new URL(location.href)),R.hash&&location.reload())}),addEventListener(`hashchange`,()=>{J&&(J=!1,history.replaceState({...history.state,[S]:++Y,[C]:X},``,location.href))});for(let e of document.querySelectorAll(`link`))Ie.has(e.rel)&&(e.href=e.href);addEventListener(`pageshow`,e=>{e.persisted&&P.navigating.set(k.current=null)});function e(e){G.url=O.url=e,P.page.set(Mt(O)),P.page.notify()}}async function Dt(e,{status:t=200,error:n,node_ids:r,params:i,route:a,server_route:o,data:s,form:c}){Ke=!0;let l=new URL(location.href),d;({params:i={},route:a={id:null}}=await yt(l,!1)||{}),d=Ve.find(({id:e})=>e===a.id);let f,p=!0;try{let e=r.map(async(t,n)=>{let r=s[n];return r?.uses&&(r.uses=Ot(r.uses)),lt({loader:R.nodes[t],url:l,params:i,route:a,parent:async()=>{let t={};for(let r=0;r<n;r+=1)Object.assign(t,(await e[r]).data);return t},server_data_node:ft(r)})}),o=await Promise.all(e);if(d){let e=d.layouts;for(let t=0;t<e.length;t++)e[t]||o.splice(t,0,void 0)}f=await ct({url:l,params:i,branch:o,status:t,error:n,errors:d?.errors,form:c,route:d??null})}catch(t){if(t instanceof u){await F(new URL(t.location,location.href));return}f=await _t({status:ke(t),error:await $(t,{url:l,params:i,route:a}),url:l,route:a}),e.textContent=``,p=!1}f.props.page&&(f.props.page.state={}),await st(f,e,p)}function Ot(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}var kt=!1;function At(e,t=!0){let n=document.querySelector(`[autofocus]`);if(n)n.focus();else{let n=Pt(e);if(n&&document.getElementById(n)){let{x:r,y:i}=T();setTimeout(()=>{let a=history.state;kt=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(a,``,e),t&&scrollTo(r,i),kt=!1})}else{let e=document.body,t=e.getAttribute(`tabindex`);e.tabIndex=-1,e.focus({preventScroll:!0,focusVisible:!1}),t===null?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,t)}let r=getSelection();if(r&&r.type!==`None`){let e=[];for(let t=0;t<r.rangeCount;t+=1)e.push(r.getRangeAt(t));setTimeout(()=>{if(r.rangeCount===e.length){for(let t=0;t<r.rangeCount;t+=1){let n=e[t],i=r.getRangeAt(t);if(n.commonAncestorContainer!==i.commonAncestorContainer||n.startContainer!==i.startContainer||n.endContainer!==i.endContainer||n.startOffset!==i.startOffset||n.endOffset!==i.endOffset)return}r.removeAllRanges()}})}}}function jt(e,t,n,r,i=null){let a,o,s=new Promise((e,t)=>{a=e,o=t});return s.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:T()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:i},willUnload:!t,type:r,complete:s},fulfil:a,reject:o}}function Mt(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function Nt(e){let t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function Pt(e){let t;if(R.hash){let[,,n]=e.hash.split(`#`,3);t=n??``}else t=e.hash.slice(1);return decodeURIComponent(t)}export{A as a,O as i,P as n,Te as o,k as r,$e as t};
@@ -1 +1 @@
1
- import{U as e,at as t,it as n,nt as r,ot as i,q as a,rt as o}from"./B8lQCytv.js";import{t as s}from"./D26i4pYm.js";var c=[`forEach`,`isDisjointFrom`,`isSubsetOf`,`isSupersetOf`],l=[`difference`,`intersection`,`symmetricDifference`,`union`],u=!1,d=class r extends Set{#e=new Map;#t=i(0);#n=i(0);#r=a||-1;constructor(e){if(super(),e){for(var t of e)super.add(t);this.#n.v=super.size}u||this.#a()}#i(e){return a===this.#r?i(e):t(e)}#a(){u=!0;var t=r.prototype,n=Set.prototype;for(let r of c)t[r]=function(...t){return e(this.#t),n[r].apply(this,t)};for(let i of l)t[i]=function(...t){return e(this.#t),new r(n[i].apply(this,t))}}has(t){var n=super.has(t),r=this.#e,i=r.get(t);if(i===void 0){if(!n)return e(this.#t),!1;i=this.#i(!0),r.set(t,i)}return e(i),n}add(e){return super.has(e)||(super.add(e),n(this.#n,super.size),o(this.#t)),this}delete(e){var t=super.delete(e),r=this.#e,i=r.get(e);return i!==void 0&&(r.delete(e),n(i,!1)),t&&(n(this.#n,super.size),o(this.#t)),t}clear(){if(super.size!==0){super.clear();var e=this.#e;for(var t of e.values())n(t,!1);e.clear(),n(this.#n,0),o(this.#t)}}keys(){return this.values()}values(){return e(this.#t),super.values()}entries(){return e(this.#t),super.entries()}[Symbol.iterator](){return this.keys()}get size(){return e(this.#n)}},f=class extends Map{#e=new Map;#t=i(0);#n=i(0);#r=a||-1;constructor(e){if(super(),e){for(var[t,n]of e)super.set(t,n);this.#n.v=super.size}}#i(e){return a===this.#r?i(e):t(e)}has(t){var n=this.#e,r=n.get(t);if(r===void 0)if(super.has(t))r=this.#i(0),n.set(t,r);else return e(this.#t),!1;return e(r),!0}forEach(e,t){this.#a(),super.forEach(e,t)}get(t){var n=this.#e,r=n.get(t);if(r===void 0)if(super.has(t))r=this.#i(0),n.set(t,r);else{e(this.#t);return}return e(r),super.get(t)}set(e,t){var r=this.#e,i=r.get(e),a=super.get(e),s=super.set(e,t),c=this.#t;if(i===void 0)i=this.#i(0),r.set(e,i),n(this.#n,super.size),o(c);else if(a!==t){o(i);var l=c.reactions===null?null:new Set(c.reactions);(l===null||!i.reactions?.every(e=>l.has(e)))&&o(c)}return s}delete(e){var t=this.#e,r=t.get(e),i=super.delete(e);return r!==void 0&&(t.delete(e),n(r,-1)),i&&(n(this.#n,super.size),o(this.#t)),i}clear(){if(super.size!==0){super.clear();var e=this.#e;n(this.#n,0);for(var t of e.values())n(t,-1);o(this.#t),e.clear()}}#a(){e(this.#t);var t=this.#e;if(this.#n.v!==t.size){for(var n of super.keys())if(!t.has(n)){var r=this.#i(0);t.set(n,r)}}for([,r]of this.#e)e(r)}keys(){return e(this.#t),super.keys()}values(){return this.#a(),super.values()}entries(){return this.#a(),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return e(this.#n),super.size}},p=`pimote:clientId`,m=`pimote:activeSessions`,h=`pimote:viewedSessionId`,g=`pimote:showArchived`,_=`pimote:sessionPillSwipeHintShown`;function v(){try{return localStorage.getItem(p)}catch{return null}}function y(e){try{localStorage.setItem(p,e)}catch{}}function b(){try{let e=localStorage.getItem(m);if(e===null)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`object`&&!!e&&typeof e.sessionId==`string`&&typeof e.folderPath==`string`):[]}catch{return[]}}function x(e){try{localStorage.setItem(m,JSON.stringify(e))}catch{}}function S(){try{return localStorage.getItem(h)}catch{return null}}function C(e){try{e===null?localStorage.removeItem(h):localStorage.setItem(h,e)}catch{}}function w(){try{return localStorage.getItem(g)===`true`}catch{return!1}}function T(e){try{localStorage.setItem(g,String(e))}catch{}}function E(){try{return localStorage.getItem(_)===`true`}catch{return!1}}function D(e){try{localStorage.setItem(_,String(e))}catch{}}var O=null,k=[],A=500;function j(e){O=e;let t=k.splice(0,k.length);for(let n of t)e(n).catch(e=>console.warn(`[voice_trace] flush failed`,e))}function M(e,t,n={}){let r={type:`client_log`,level:n.level??`info`,tag:e,message:t,clientTimestampMs:Date.now(),data:n.data},i=[`[voice_trace][${e}] ${t}`,n.data??``];switch(r.level){case`error`:console.error(...i);break;case`warn`:console.warn(...i);break;default:console.log(...i);break}O?O(r).catch(e=>console.warn(`[voice_trace] send failed`,e)):k.length<A&&k.push(r)}var N=1,P=v()??(()=>{let e=crypto.randomUUID();return y(e),e})(),F=new class{clientId=P;#e=i(`disconnected`);get status(){return e(this.#e)}set status(e){n(this.#e,e,!0)}#t=i(!1);get ready(){return e(this.#t)}set ready(e){n(this.#t,e,!0)}#n=i(`idle`);get phase(){return e(this.#n)}set phase(e){n(this.#n,e,!0)}#r=i(0);get reconnectCountdown(){return e(this.#r)}set reconnectCountdown(e){n(this.#r,e,!0)}#i=i(null);get syncProgress(){return e(this.#i)}set syncProgress(e){n(this.#i,e,!0)}#a=i(null);get syncDetail(){return e(this.#a)}set syncDetail(e){n(this.#a,e,!0)}sessionCursors=new Map;#o=i(r(new f));get subscribedSessions(){return e(this.#o)}set subscribedSessions(e){n(this.#o,e,!0)}ws=null;pending=new Map;listeners=new Set;reconnectTimer=null;countdownInterval=null;reconnectDelay=1e3;intentionalClose=!1;onReconnected=null;onSessionOwned=null;onPendingAdopt=null;pendingAdopt=null;connect(){if(this.ws&&(this.ws.readyState===WebSocket.CONNECTING||this.ws.readyState===WebSocket.OPEN))return;this.installLifecycleListeners(),this.ready=!1,this.clearCountdownInterval(),this.phase=`connecting`,this.status=this.status===`disconnected`?`connecting`:`reconnecting`,this.syncDetail=null;let e=location.protocol===`https:`?`wss:`:`ws:`;this.ws=new WebSocket(`${e}//${location.host}/ws?clientId=${P}&version=${encodeURIComponent(s)}`),this.ws.onopen=()=>{this.status=`connected`,this.reconnectDelay=1e3;let e=this.subscribedSessions.size;e>0&&(this.phase=`syncing`,this.syncProgress={done:0,total:e},this.syncDetail=`Restoring sessions`);let t=[];for(let[n,r]of this.subscribedSessions){let i=this.sessionCursors.get(n),a=this.send({type:`open_session`,folderPath:r,sessionId:n,...i===void 0?{}:{lastCursor:i}}).then(t=>{if(!t.success){t.error===`session_owned`?this.onSessionOwned?.(n):console.warn(`[ConnectionStore] Failed to restore session ${n}: ${t.error??`unknown error`}`);return}let r=t.data;this.phase===`syncing`&&(this.syncDetail=this.labelForRestoreMode(r?.restoreMode,e))}).catch(()=>{}).finally(()=>{this.syncProgress&&={done:this.syncProgress.done+1,total:this.syncProgress.total}});t.push(a)}Promise.all(t).then(()=>{if(this.ready=!0,this.phase=`ready`,this.syncProgress=null,this.syncDetail=null,this.onReconnected?.(),this.pendingAdopt){let{sessionId:e,folderPath:t}=this.pendingAdopt;this.pendingAdopt=null,this.onPendingAdopt?.(e,t)}}),this.reregisterPushSubscription()},this.ws.onmessage=e=>{let t;try{t=JSON.parse(e.data)}catch{return}if(`type`in t&&t.type===`version_mismatch`){console.log(`[ConnectionStore] Version mismatch — reloading (server=${t.serverVersion}, client=${s})`),location.reload();return}if(`id`in t&&`success`in t){let e=t,n=this.pending.get(e.id);n&&(this.pending.delete(e.id),n.resolve(e));return}let n=t;if(n.type===`buffered_events`&&`events`in n&&`sessionId`in n){let e=n,t=this.sessionCursors.get(e.sessionId)??0;for(let n of e.events)typeof n.cursor==`number`&&n.cursor>t&&(t=n.cursor);this.sessionCursors.set(e.sessionId,t)}else `cursor`in n&&typeof n.cursor==`number`&&`sessionId`in n&&typeof n.sessionId==`string`&&this.sessionCursors.set(n.sessionId,n.cursor);for(let e of this.listeners)try{e(n)}catch(e){console.error(`[ConnectionStore] Event listener error:`,e)}},this.ws.onclose=()=>{this.ws=null,this.ready=!1;for(let[,e]of this.pending)e.reject(Error(`WebSocket closed`));this.pending.clear(),this.intentionalClose?(this.status=`disconnected`,this.phase=`idle`,this.syncDetail=null,this.intentionalClose=!1):(this.status=`reconnecting`,this.scheduleReconnect())},this.ws.onerror=()=>{}}disconnect(){this.intentionalClose=!0,this.clearCountdownInterval(),this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.ws?.close()}reconnectNow(){this.phase===`backoff`&&(this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.clearCountdownInterval(),this.reconnectCountdown=0,this.reconnectDelay=1e3,this.connect())}lifecycleListenersInstalled=!1;installLifecycleListeners(){if(this.lifecycleListenersInstalled||typeof window>`u`||typeof document>`u`)return;this.lifecycleListenersInstalled=!0;let e=()=>this.reconnectNow();document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&e()}),window.addEventListener(`focus`,e),window.addEventListener(`online`,e),window.addEventListener(`pageshow`,e)}addSubscribedSession(e,t){this.subscribedSessions.set(e,t)}removeSubscribedSession(e){this.subscribedSessions.delete(e),this.sessionCursors.delete(e)}send(e){let t=e.id??`cmd-${N++}`,n={...e,id:t};return new Promise((e,r)=>{if(!this.ws||this.ws.readyState!==WebSocket.OPEN){r(Error(`WebSocket not connected`));return}this.pending.set(t,{resolve:e,reject:r}),this.ws.send(JSON.stringify(n))})}onEvent(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}async reregisterPushSubscription(){try{if(!(`serviceWorker`in navigator)||!(`PushManager`in window)||Notification.permission!==`granted`)return;let e=await(await navigator.serviceWorker.ready).pushManager.getSubscription();if(!e)return;let t=e.toJSON();if(!t.endpoint||!t.keys?.p256dh||!t.keys?.auth)return;await this.send({type:`register_push`,subscription:{endpoint:t.endpoint,keys:{p256dh:t.keys.p256dh,auth:t.keys.auth}}})}catch{}}clearCountdownInterval(){this.countdownInterval&&=(clearInterval(this.countdownInterval),null)}scheduleReconnect(){this.reconnectTimer||=(this.phase=`backoff`,this.syncDetail=null,this.reconnectCountdown=Math.ceil(this.reconnectDelay/1e3),this.clearCountdownInterval(),this.countdownInterval=setInterval(()=>{this.reconnectCountdown=Math.max(0,this.reconnectCountdown-1)},1e3),setTimeout(async()=>{this.reconnectTimer=null,this.reconnectDelay=Math.min(this.reconnectDelay*2,3e4);try{let e=await fetch(location.href,{method:`HEAD`,redirect:`manual`});if(e.type===`opaqueredirect`||e.status===401||e.status===403){location.reload();return}}catch{}this.connect()},this.reconnectDelay))}get phaseLabel(){return this.phase===`ready`?`Connected`:this.phase===`syncing`?this.syncProgress?`Syncing ${this.syncProgress.done}/${this.syncProgress.total}…`:`Syncing…`:this.phase===`connecting`?this.status===`reconnecting`?`Reconnecting…`:`Connecting…`:this.phase===`backoff`?`Reconnecting in ${this.reconnectCountdown}s`:`Disconnected`}labelForRestoreMode(e,t){if(t>1)switch(e){case`incremental_replay`:return`Replaying sessions from offset`;case`full_resync_cursor_stale`:return`Full resync (offset too old)`;case`disk_full_resync`:return`Reopening sessions from disk`;default:return`Full resync`}switch(e){case`incremental_replay`:return`Replaying from offset`;case`full_resync_cursor_stale`:return`Full resync (offset too old)`;case`disk_full_resync`:return`Reopening from disk`;default:return`Full resync`}}};j(e=>F.send(e));function I(){let e=new f;return{getCommands(t){return e.get(t)??[]},setCommands(t,n){e.set(t,n)},removeSession(t){e.delete(t)},clear(){e.clear()}}}var L=I(),R=new class{#e=i(r([]));get cards(){return e(this.#e)}set cards(e){n(this.#e,e,!0)}get hasCards(){return this.cards.length>0}handlePanelUpdate(e){this.cards=e}reset(){this.cards=[]}},z=class{#e=i(r({}));get sessions(){return e(this.#e)}set sessions(e){n(this.#e,e,!0)}#t=i(null);get viewedSessionId(){return e(this.#t)}set viewedSessionId(e){n(this.#t,e,!0)}#n=i(null);get pendingNewSession(){return e(this.#n)}set pendingNewSession(e){n(this.#n,e,!0)}_nextMessageKey=0;generateMessageKeys(e){return Array.from({length:e},()=>`msg-`+ this._nextMessageKey++)}get viewed(){return this.sessions[this.viewedSessionId]??null}get activeSessions(){return Object.values(this.sessions)}createSessionState(e,t,n){return{sessionId:e,folderPath:t,projectName:n,firstMessage:void 0,messages:[],isStreaming:!1,isCompacting:!1,model:null,thinkingLevel:`off`,availableThinkingLevels:[],streamingMessage:null,streamingKey:null,messageKeys:[],toolExecutions:{},autoCompactionEnabled:!1,messageCount:0,status:`idle`,needsAttention:!1,conflictingProcesses:[],conflictingRemoteSessions:[],pendingTakeover:!1,sessionName:null,extensionTitle:null,restoreMode:null,isRestoring:!1,panelCards:[],widgetCards:{},gitBranch:null,contextUsage:null,draftText:``,pendingSteeringMessages:[],lastBotActivityTimestamp:null,optimisticMessageKey:null}}firstUserMessage(e){for(let t of e){if(t.role!==`user`)continue;let e=t.content.find(e=>e.type===`text`);if(e?.text)return e.text}}persistSessions(){x(Object.values(this.sessions).filter(e=>!e.sessionId.startsWith(`pending-`)).map(e=>({sessionId:e.sessionId,folderPath:e.folderPath})))}persistViewedSession(){this.viewedSessionId?.startsWith(`pending-`)||C(this.viewedSessionId)}addOptimisticUserMessage(e,t){let n=this.sessions[e];if(!n)return;let r=[];t&&r.push({type:`text`,text:t});let i={role:`user`,content:r},a=`msg-`+ this._nextMessageKey++;n.messages=[...n.messages,i],n.messageKeys=[...n.messageKeys,a],n.optimisticMessageKey=a}handleEvent(e){let t=`sessionId`in e?e.sessionId:void 0;if(e.type===`buffered_events`){let t=e;for(let e of t.events)this.handleEvent(e);return}if(!t)return;let n=this.sessions[t];if(n){switch(e.type){case`agent_start`:n.status=`working`,n.isStreaming=!0;break;case`agent_end`:{let r=e;if(n.status=`idle`,n.isStreaming=!1,n.streamingMessage=null,n.streamingKey=null,t!==this.viewedSessionId&&(n.needsAttention=!0),r.messageEntryIds){let e=r.messageEntryIds,t=0;for(let r=0;r<n.messages.length&&t<e.length;r++){let i=n.messages[r];i.role===`assistant`&&i.aborted===!0&&i.content.every(e=>e.type===`text`&&!e.text)||(i.entryId||=e[t],t++)}}F.send({type:`get_session_meta`,sessionId:t}).then(e=>{e.success&&e.data&&this.updateMeta(t,e.data.meta)}).catch(()=>{});break}case`message_start`:{let t=e;if(t.role===`user`&&n.optimisticMessageKey)break;n.streamingKey=`msg-`+ this._nextMessageKey++,n.streamingMessage={role:t.role,content:[]};break}case`message_update`:{let t=e;if(!n.streamingMessage)break;if(t.subtype===`start`){let e={type:t.content.type,text:``,streaming:!0};t.content.type===`tool_call`&&(e.toolCallId=t.toolCallId,e.toolName=t.toolName),n.streamingMessage.content[t.contentIndex]=e}else if(t.subtype===`delta`){let e=n.streamingMessage.content[t.contentIndex];e&&(e.text=(e.text??``)+t.content.text)}else if(t.subtype===`end`){let e=n.streamingMessage.content[t.contentIndex];e&&(e.streaming=!1)}break}case`message_end`:{let r=e,i=r.message;if(i.role===`user`&&n.optimisticMessageKey){let e=n.messageKeys.indexOf(n.optimisticMessageKey);if(e!==-1){let t=[...n.messages];t[e]=i,n.messages=t}n.optimisticMessageKey=null,n.streamingMessage=null,n.streamingKey=null}else{n.messages=[...n.messages,i];let e=n.streamingKey??`msg-`+ this._nextMessageKey++;n.streamingKey||console.error(`[session-desync] message_end without streamingKey`,{sessionId:t,cursor:r.cursor,role:i.role,messagesLen:n.messages.length,keysLen:n.messageKeys.length}),n.messageKeys=[...n.messageKeys,e],n.streamingMessage=null,n.streamingKey=null}if(n.messageCount++,i.role===`user`&&n.firstMessage===void 0){let e=i.content.find(e=>e.type===`text`);e&&e.text&&(n.firstMessage=e.text)}if(i.role===`user`&&n.pendingSteeringMessages.length>0){let e=i.content.find(e=>e.type===`text`);if(e?.text){let t=n.pendingSteeringMessages.indexOf(e.text);t!==-1&&n.pendingSteeringMessages.splice(t,1)}}i.role===`toolResult`&&this.applyToolResults(n,i);break}case`tool_execution_start`:{let t=e;n.toolExecutions[t.toolCallId]={name:t.toolName,args:t.args,partialResult:``,status:`running`};break}case`tool_execution_update`:{let t=e,r=n.toolExecutions[t.toolCallId];r&&(r.partialResult+=t.content);break}case`tool_execution_end`:{let t=e,r=n.toolExecutions[t.toolCallId];r&&(r.status=`completed`,r.result=t.result,r.isError=t.isError);break}case`auto_compaction_start`:n.isCompacting=!0;break;case`auto_compaction_end`:n.isCompacting=!1,F.send({type:`get_session_meta`,sessionId:t}).then(e=>{e.success&&e.data&&this.updateMeta(t,e.data.meta)}).catch(()=>{});break;case`full_resync`:{let r=e,i=r.state,a=r.messages,o=this.createSessionState(n.sessionId,n.folderPath,n.projectName);o.draftText=n.draftText,o.extensionTitle=n.extensionTitle,o.restoreMode=n.restoreMode,o.isRestoring=n.isRestoring,o.widgetCards=n.widgetCards,o.model=i.model,o.thinkingLevel=i.thinkingLevel,o.availableThinkingLevels=i.availableThinkingLevels??[],o.isStreaming=i.isStreaming,o.isCompacting=i.isCompacting,o.autoCompactionEnabled=i.autoCompactionEnabled,o.messageCount=i.messageCount,o.sessionName=i.sessionName??null,o.messages=a,o.firstMessage=this.firstUserMessage(a),o.status=i.isStreaming?`working`:`idle`,o.messageKeys=this.generateMessageKeys(a.length),this.rebuildToolExecutions(o),this.sessions[t]=o;break}case`session_restore`:{let t=e;n.restoreMode=t.status===`started`?t.mode:null,n.isRestoring=t.status===`started`;break}case`session_conflict`:{let t=e;n.conflictingProcesses=t.processes,n.conflictingRemoteSessions=t.remoteSessions??[];break}case`session_state_changed`:{let t=e;if(t.gitBranch!==void 0)for(let e of Object.values(this.sessions))e.folderPath===t.folderPath&&(e.gitBranch=t.gitBranch);break}case`session_renamed`:n.sessionName=e.name;break;case`panel_update`:n.panelCards=e.cards,t===this.viewedSessionId&&this.syncViewedPanelStore();break}`timestamp`in e&&typeof e.timestamp==`string`&&(n.lastBotActivityTimestamp=e.timestamp)}}combinedPanelCards(e){return e?[...e.panelCards,...Object.values(e.widgetCards)]:[]}syncViewedPanelStore(){R.handlePanelUpdate(this.combinedPanelCards(this.viewed))}addSession(e,t,n){this.sessions[e]=this.createSessionState(e,t,n),this.persistSessions()}removeSession(e){let t=this.viewedSessionId===e,{[e]:n,...r}=this.sessions;if(this.sessions=r,t){let e=Object.keys(this.sessions);this.viewedSessionId=e.length>0?e[0]:null,this.syncViewedPanelStore()}this.persistSessions(),this.persistViewedSession()}replaceSession(e,t,n,r){let i=this.sessions[e];if(!i)return;let{[e]:a,...o}=this.sessions,s=this.createSessionState(t,n,r);s.model=i.model,s.thinkingLevel=i.thinkingLevel,s.availableThinkingLevels=i.availableThinkingLevels,s.autoCompactionEnabled=i.autoCompactionEnabled,s.gitBranch=i.gitBranch,o[t]=s,this.sessions=o,this.viewedSessionId===e&&(this.viewedSessionId=t,this.syncViewedPanelStore()),this.persistSessions(),this.persistViewedSession()}switchTo(e){this.viewedSessionId=e;let t=this.sessions[e];t&&(t.needsAttention=!1),this.syncViewedPanelStore(),this.persistViewedSession()}isActiveSession(e){return e in this.sessions}updateMeta(e,t){let n=this.sessions[e];if(n){n.contextUsage=t.contextUsage;for(let e of Object.values(this.sessions))e.folderPath===n.folderPath&&(e.gitBranch=t.gitBranch)}}applyToolResults(e,t){for(let n of t.content)if(n.type===`tool_result`&&n.toolCallId){let t=e.toolExecutions[n.toolCallId];t?(t.status=`completed`,t.result=n.result,t.isError=n.isError):e.toolExecutions[n.toolCallId]={name:n.toolName??`unknown`,args:void 0,partialResult:``,status:`completed`,result:n.result,isError:n.isError}}}rebuildToolExecutions(e){e.toolExecutions={};for(let t of e.messages)t.role===`toolResult`&&this.applyToolResults(e,t)}clearConflict(e){let t=this.sessions[e];t&&(t.conflictingProcesses=[],t.conflictingRemoteSessions=[])}},B=new z;async function V(e){try{let[t,n,r,i]=await Promise.all([F.send({type:`get_state`,sessionId:e}),F.send({type:`get_messages`,sessionId:e}),F.send({type:`get_session_meta`,sessionId:e}),F.send({type:`get_commands`,sessionId:e})]),a=B.sessions[e];if(!a)return;if(t.success&&t.data){let e=t.data.state;a.model=e.model,a.thinkingLevel=e.thinkingLevel,a.availableThinkingLevels=e.availableThinkingLevels??[],a.isStreaming=e.isStreaming,a.isCompacting=e.isCompacting,a.autoCompactionEnabled=e.autoCompactionEnabled,a.messageCount=e.messageCount,a.sessionName=e.sessionName??null,a.status=e.isStreaming?`working`:`idle`}if(n.success&&n.data){let e=n.data.messages;a.messages=e,a.messageKeys=B.generateMessageKeys(e.length),a.messageCount=e.length,a.firstMessage=B.firstUserMessage(e),B.rebuildToolExecutions(a)}if(r.success&&r.data){let t=r.data.meta;B.updateMeta(e,t)}if(i.success&&i.data){let t=i.data.commands;L.setCommands(e,t)}}catch(e){console.error(`[SessionRegistry] Failed to fetch full session data:`,e)}}async function H(e){try{let[t,n]=await Promise.all([F.send({type:`get_session_meta`,sessionId:e}),F.send({type:`get_commands`,sessionId:e})]);if(t.success&&t.data&&B.updateMeta(e,t.data.meta),n.success&&n.data){let t=n.data.commands;L.setCommands(e,t)}}catch(e){console.error(`[SessionRegistry] Failed to refresh session meta/commands:`,e)}}async function U(e,t,n){let r=t.split(`/`).pop()||`Unknown`,i=n?.switchTo!==!1;B.sessions[e]||B.addSession(e,t,r),F.addSubscribedSession(e,t),i&&B.switchTo(e);try{let r=await F.send({type:`open_session`,folderPath:t,sessionId:e,...n?.force?{force:!0}:{}});if(!r.success){if(r.error===`session_owned`){let t=B.sessions[e];return t&&(t.pendingTakeover=!0),!1}return B.removeSession(e),F.removeSubscribedSession(e),L.removeSession(e),!1}return await H(e),i&&F.send({type:`view_session`,sessionId:e}).catch(()=>{}),!0}catch(t){return console.error(`[SessionRegistry] Failed to open existing session:`,t),B.removeSession(e),F.removeSubscribedSession(e),L.removeSession(e),!1}}F.onEvent(e=>{switch(e.type){case`session_opened`:{let t=e.folder,n=t?.name??`Unknown`,r=B.pendingNewSession;r&&B.sessions[r]?(B.pendingNewSession=null,B.replaceSession(r,e.sessionId,t?.path??``,n)):(B.addSession(e.sessionId,t?.path??``,n),B.switchTo(e.sessionId)),F.addSubscribedSession(e.sessionId,t?.path??``),V(e.sessionId);break}case`session_closed`:B.removeSession(e.sessionId),F.removeSubscribedSession(e.sessionId),L.removeSession(e.sessionId);break;case`session_replaced`:{let t=e,n=t.folder,r=n?.name??`Unknown`;B.replaceSession(t.oldSessionId,t.newSessionId,n?.path??``,r),F.removeSubscribedSession(t.oldSessionId),F.addSubscribedSession(t.newSessionId,n?.path??``),L.removeSession(t.oldSessionId),V(t.newSessionId);break}default:`sessionId`in e&&B.handleEvent(e);break}}),F.onSessionOwned=e=>{let t=B.sessions[e];t&&(t.pendingTakeover=!0)},F.onPendingAdopt=(e,t)=>{U(e,t,{force:!0,switchTo:!0})},F.onReconnected=()=>{for(let e of B.activeSessions)e.sessionId.startsWith(`pending-`)||H(e.sessionId);let e=B.viewedSessionId;e&&!e.startsWith(`pending-`)&&F.send({type:`view_session`,sessionId:e}).catch(()=>{})};var W=b(),G=S();for(let{sessionId:e,folderPath:t}of W){let n=t.split(`/`).pop()||`Unknown`;B.addSession(e,t,n),F.addSubscribedSession(e,t)}G&&B.sessions[G]&&(B.viewedSessionId=G);function K(e){let t=B.sessions[e];t&&(t.pendingTakeover=!1,U(e,t.folderPath,{force:!0,switchTo:!0}))}function q(e){B.removeSession(e),F.removeSubscribedSession(e)}function J(e){B.switchTo(e),F.send({type:`view_session`,sessionId:e}).catch(()=>{})}function Y(e){F.send({type:`close_session`,sessionId:e}).catch(()=>{})}function X(e){let t=B.sessions[e];if(!t||B.pendingNewSession)return;let n=`pending-${crypto.randomUUID()}`;B.addSession(n,t.folderPath,t.projectName),B.switchTo(n),B.pendingNewSession=n,F.send({type:`open_session`,folderPath:t.folderPath}).then(e=>{e.success||(B.pendingNewSession===n&&(B.pendingNewSession=null),B.removeSession(n))}).catch(()=>{B.pendingNewSession===n&&(B.pendingNewSession=null),B.removeSession(n)})}export{f as _,X as a,J as c,F as d,M as f,T as g,D as h,q as i,R as l,w as m,Y as n,U as o,E as p,K as r,B as s,z as t,L as u,d as v};
1
+ import{U as e,at as t,it as n,nt as r,ot as i,q as a,rt as o}from"./B8lQCytv.js";import{t as s}from"./-Lc-U-GJ.js";var c=[`forEach`,`isDisjointFrom`,`isSubsetOf`,`isSupersetOf`],l=[`difference`,`intersection`,`symmetricDifference`,`union`],u=!1,d=class r extends Set{#e=new Map;#t=i(0);#n=i(0);#r=a||-1;constructor(e){if(super(),e){for(var t of e)super.add(t);this.#n.v=super.size}u||this.#a()}#i(e){return a===this.#r?i(e):t(e)}#a(){u=!0;var t=r.prototype,n=Set.prototype;for(let r of c)t[r]=function(...t){return e(this.#t),n[r].apply(this,t)};for(let i of l)t[i]=function(...t){return e(this.#t),new r(n[i].apply(this,t))}}has(t){var n=super.has(t),r=this.#e,i=r.get(t);if(i===void 0){if(!n)return e(this.#t),!1;i=this.#i(!0),r.set(t,i)}return e(i),n}add(e){return super.has(e)||(super.add(e),n(this.#n,super.size),o(this.#t)),this}delete(e){var t=super.delete(e),r=this.#e,i=r.get(e);return i!==void 0&&(r.delete(e),n(i,!1)),t&&(n(this.#n,super.size),o(this.#t)),t}clear(){if(super.size!==0){super.clear();var e=this.#e;for(var t of e.values())n(t,!1);e.clear(),n(this.#n,0),o(this.#t)}}keys(){return this.values()}values(){return e(this.#t),super.values()}entries(){return e(this.#t),super.entries()}[Symbol.iterator](){return this.keys()}get size(){return e(this.#n)}},f=class extends Map{#e=new Map;#t=i(0);#n=i(0);#r=a||-1;constructor(e){if(super(),e){for(var[t,n]of e)super.set(t,n);this.#n.v=super.size}}#i(e){return a===this.#r?i(e):t(e)}has(t){var n=this.#e,r=n.get(t);if(r===void 0)if(super.has(t))r=this.#i(0),n.set(t,r);else return e(this.#t),!1;return e(r),!0}forEach(e,t){this.#a(),super.forEach(e,t)}get(t){var n=this.#e,r=n.get(t);if(r===void 0)if(super.has(t))r=this.#i(0),n.set(t,r);else{e(this.#t);return}return e(r),super.get(t)}set(e,t){var r=this.#e,i=r.get(e),a=super.get(e),s=super.set(e,t),c=this.#t;if(i===void 0)i=this.#i(0),r.set(e,i),n(this.#n,super.size),o(c);else if(a!==t){o(i);var l=c.reactions===null?null:new Set(c.reactions);(l===null||!i.reactions?.every(e=>l.has(e)))&&o(c)}return s}delete(e){var t=this.#e,r=t.get(e),i=super.delete(e);return r!==void 0&&(t.delete(e),n(r,-1)),i&&(n(this.#n,super.size),o(this.#t)),i}clear(){if(super.size!==0){super.clear();var e=this.#e;n(this.#n,0);for(var t of e.values())n(t,-1);o(this.#t),e.clear()}}#a(){e(this.#t);var t=this.#e;if(this.#n.v!==t.size){for(var n of super.keys())if(!t.has(n)){var r=this.#i(0);t.set(n,r)}}for([,r]of this.#e)e(r)}keys(){return e(this.#t),super.keys()}values(){return this.#a(),super.values()}entries(){return this.#a(),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return e(this.#n),super.size}},p=`pimote:clientId`,m=`pimote:activeSessions`,h=`pimote:viewedSessionId`,g=`pimote:showArchived`,_=`pimote:sessionPillSwipeHintShown`;function v(){try{return localStorage.getItem(p)}catch{return null}}function y(e){try{localStorage.setItem(p,e)}catch{}}function b(){try{let e=localStorage.getItem(m);if(e===null)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`object`&&!!e&&typeof e.sessionId==`string`&&typeof e.folderPath==`string`):[]}catch{return[]}}function x(e){try{localStorage.setItem(m,JSON.stringify(e))}catch{}}function S(){try{return localStorage.getItem(h)}catch{return null}}function C(e){try{e===null?localStorage.removeItem(h):localStorage.setItem(h,e)}catch{}}function w(){try{return localStorage.getItem(g)===`true`}catch{return!1}}function T(e){try{localStorage.setItem(g,String(e))}catch{}}function E(){try{return localStorage.getItem(_)===`true`}catch{return!1}}function D(e){try{localStorage.setItem(_,String(e))}catch{}}var O=null,k=[],A=500;function j(e){O=e;let t=k.splice(0,k.length);for(let n of t)e(n).catch(e=>console.warn(`[voice_trace] flush failed`,e))}function M(e,t,n={}){let r={type:`client_log`,level:n.level??`info`,tag:e,message:t,clientTimestampMs:Date.now(),data:n.data},i=[`[voice_trace][${e}] ${t}`,n.data??``];switch(r.level){case`error`:console.error(...i);break;case`warn`:console.warn(...i);break;default:console.log(...i);break}O?O(r).catch(e=>console.warn(`[voice_trace] send failed`,e)):k.length<A&&k.push(r)}var N=1,P=v()??(()=>{let e=crypto.randomUUID();return y(e),e})(),F=new class{clientId=P;#e=i(`disconnected`);get status(){return e(this.#e)}set status(e){n(this.#e,e,!0)}#t=i(!1);get ready(){return e(this.#t)}set ready(e){n(this.#t,e,!0)}#n=i(`idle`);get phase(){return e(this.#n)}set phase(e){n(this.#n,e,!0)}#r=i(0);get reconnectCountdown(){return e(this.#r)}set reconnectCountdown(e){n(this.#r,e,!0)}#i=i(null);get syncProgress(){return e(this.#i)}set syncProgress(e){n(this.#i,e,!0)}#a=i(null);get syncDetail(){return e(this.#a)}set syncDetail(e){n(this.#a,e,!0)}sessionCursors=new Map;#o=i(r(new f));get subscribedSessions(){return e(this.#o)}set subscribedSessions(e){n(this.#o,e,!0)}ws=null;pending=new Map;listeners=new Set;reconnectTimer=null;countdownInterval=null;reconnectDelay=1e3;intentionalClose=!1;onReconnected=null;onSessionOwned=null;onPendingAdopt=null;pendingAdopt=null;connect(){if(this.ws&&(this.ws.readyState===WebSocket.CONNECTING||this.ws.readyState===WebSocket.OPEN))return;this.installLifecycleListeners(),this.ready=!1,this.clearCountdownInterval(),this.phase=`connecting`,this.status=this.status===`disconnected`?`connecting`:`reconnecting`,this.syncDetail=null;let e=location.protocol===`https:`?`wss:`:`ws:`;this.ws=new WebSocket(`${e}//${location.host}/ws?clientId=${P}&version=${encodeURIComponent(s)}`),this.ws.onopen=()=>{this.status=`connected`,this.reconnectDelay=1e3;let e=this.subscribedSessions.size;e>0&&(this.phase=`syncing`,this.syncProgress={done:0,total:e},this.syncDetail=`Restoring sessions`);let t=[];for(let[n,r]of this.subscribedSessions){let i=this.sessionCursors.get(n),a=this.send({type:`open_session`,folderPath:r,sessionId:n,...i===void 0?{}:{lastCursor:i}}).then(t=>{if(!t.success){t.error===`session_owned`?this.onSessionOwned?.(n):console.warn(`[ConnectionStore] Failed to restore session ${n}: ${t.error??`unknown error`}`);return}let r=t.data;this.phase===`syncing`&&(this.syncDetail=this.labelForRestoreMode(r?.restoreMode,e))}).catch(()=>{}).finally(()=>{this.syncProgress&&={done:this.syncProgress.done+1,total:this.syncProgress.total}});t.push(a)}Promise.all(t).then(()=>{if(this.ready=!0,this.phase=`ready`,this.syncProgress=null,this.syncDetail=null,this.onReconnected?.(),this.pendingAdopt){let{sessionId:e,folderPath:t}=this.pendingAdopt;this.pendingAdopt=null,this.onPendingAdopt?.(e,t)}}),this.reregisterPushSubscription()},this.ws.onmessage=e=>{let t;try{t=JSON.parse(e.data)}catch{return}if(`type`in t&&t.type===`version_mismatch`){console.log(`[ConnectionStore] Version mismatch — reloading (server=${t.serverVersion}, client=${s})`),location.reload();return}if(`id`in t&&`success`in t){let e=t,n=this.pending.get(e.id);n&&(this.pending.delete(e.id),n.resolve(e));return}let n=t;if(n.type===`buffered_events`&&`events`in n&&`sessionId`in n){let e=n,t=this.sessionCursors.get(e.sessionId)??0;for(let n of e.events)typeof n.cursor==`number`&&n.cursor>t&&(t=n.cursor);this.sessionCursors.set(e.sessionId,t)}else `cursor`in n&&typeof n.cursor==`number`&&`sessionId`in n&&typeof n.sessionId==`string`&&this.sessionCursors.set(n.sessionId,n.cursor);for(let e of this.listeners)try{e(n)}catch(e){console.error(`[ConnectionStore] Event listener error:`,e)}},this.ws.onclose=()=>{this.ws=null,this.ready=!1;for(let[,e]of this.pending)e.reject(Error(`WebSocket closed`));this.pending.clear(),this.intentionalClose?(this.status=`disconnected`,this.phase=`idle`,this.syncDetail=null,this.intentionalClose=!1):(this.status=`reconnecting`,this.scheduleReconnect())},this.ws.onerror=()=>{}}disconnect(){this.intentionalClose=!0,this.clearCountdownInterval(),this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.ws?.close()}reconnectNow(){this.phase===`backoff`&&(this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.clearCountdownInterval(),this.reconnectCountdown=0,this.reconnectDelay=1e3,this.connect())}lifecycleListenersInstalled=!1;installLifecycleListeners(){if(this.lifecycleListenersInstalled||typeof window>`u`||typeof document>`u`)return;this.lifecycleListenersInstalled=!0;let e=()=>this.reconnectNow();document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&e()}),window.addEventListener(`focus`,e),window.addEventListener(`online`,e),window.addEventListener(`pageshow`,e)}addSubscribedSession(e,t){this.subscribedSessions.set(e,t)}removeSubscribedSession(e){this.subscribedSessions.delete(e),this.sessionCursors.delete(e)}send(e){let t=e.id??`cmd-${N++}`,n={...e,id:t};return new Promise((e,r)=>{if(!this.ws||this.ws.readyState!==WebSocket.OPEN){r(Error(`WebSocket not connected`));return}this.pending.set(t,{resolve:e,reject:r}),this.ws.send(JSON.stringify(n))})}onEvent(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}async reregisterPushSubscription(){try{if(!(`serviceWorker`in navigator)||!(`PushManager`in window)||Notification.permission!==`granted`)return;let e=await(await navigator.serviceWorker.ready).pushManager.getSubscription();if(!e)return;let t=e.toJSON();if(!t.endpoint||!t.keys?.p256dh||!t.keys?.auth)return;await this.send({type:`register_push`,subscription:{endpoint:t.endpoint,keys:{p256dh:t.keys.p256dh,auth:t.keys.auth}}})}catch{}}clearCountdownInterval(){this.countdownInterval&&=(clearInterval(this.countdownInterval),null)}scheduleReconnect(){this.reconnectTimer||=(this.phase=`backoff`,this.syncDetail=null,this.reconnectCountdown=Math.ceil(this.reconnectDelay/1e3),this.clearCountdownInterval(),this.countdownInterval=setInterval(()=>{this.reconnectCountdown=Math.max(0,this.reconnectCountdown-1)},1e3),setTimeout(async()=>{this.reconnectTimer=null,this.reconnectDelay=Math.min(this.reconnectDelay*2,3e4);try{let e=await fetch(location.href,{method:`HEAD`,redirect:`manual`});if(e.type===`opaqueredirect`||e.status===401||e.status===403){location.reload();return}}catch{}this.connect()},this.reconnectDelay))}get phaseLabel(){return this.phase===`ready`?`Connected`:this.phase===`syncing`?this.syncProgress?`Syncing ${this.syncProgress.done}/${this.syncProgress.total}…`:`Syncing…`:this.phase===`connecting`?this.status===`reconnecting`?`Reconnecting…`:`Connecting…`:this.phase===`backoff`?`Reconnecting in ${this.reconnectCountdown}s`:`Disconnected`}labelForRestoreMode(e,t){if(t>1)switch(e){case`incremental_replay`:return`Replaying sessions from offset`;case`full_resync_cursor_stale`:return`Full resync (offset too old)`;case`disk_full_resync`:return`Reopening sessions from disk`;default:return`Full resync`}switch(e){case`incremental_replay`:return`Replaying from offset`;case`full_resync_cursor_stale`:return`Full resync (offset too old)`;case`disk_full_resync`:return`Reopening from disk`;default:return`Full resync`}}};j(e=>F.send(e));function I(){let e=new f;return{getCommands(t){return e.get(t)??[]},setCommands(t,n){e.set(t,n)},removeSession(t){e.delete(t)},clear(){e.clear()}}}var L=I(),R=new class{#e=i(r([]));get cards(){return e(this.#e)}set cards(e){n(this.#e,e,!0)}get hasCards(){return this.cards.length>0}handlePanelUpdate(e){this.cards=e}reset(){this.cards=[]}},z=class{#e=i(r({}));get sessions(){return e(this.#e)}set sessions(e){n(this.#e,e,!0)}#t=i(null);get viewedSessionId(){return e(this.#t)}set viewedSessionId(e){n(this.#t,e,!0)}#n=i(null);get pendingNewSession(){return e(this.#n)}set pendingNewSession(e){n(this.#n,e,!0)}_nextMessageKey=0;generateMessageKeys(e){return Array.from({length:e},()=>`msg-`+ this._nextMessageKey++)}get viewed(){return this.sessions[this.viewedSessionId]??null}get activeSessions(){return Object.values(this.sessions)}createSessionState(e,t,n){return{sessionId:e,folderPath:t,projectName:n,firstMessage:void 0,messages:[],isStreaming:!1,isCompacting:!1,model:null,thinkingLevel:`off`,availableThinkingLevels:[],streamingMessage:null,streamingKey:null,messageKeys:[],toolExecutions:{},autoCompactionEnabled:!1,messageCount:0,status:`idle`,needsAttention:!1,conflictingProcesses:[],conflictingRemoteSessions:[],pendingTakeover:!1,sessionName:null,extensionTitle:null,restoreMode:null,isRestoring:!1,panelCards:[],widgetCards:{},gitBranch:null,contextUsage:null,draftText:``,pendingSteeringMessages:[],lastBotActivityTimestamp:null,optimisticMessageKey:null}}firstUserMessage(e){for(let t of e){if(t.role!==`user`)continue;let e=t.content.find(e=>e.type===`text`);if(e?.text)return e.text}}persistSessions(){x(Object.values(this.sessions).filter(e=>!e.sessionId.startsWith(`pending-`)).map(e=>({sessionId:e.sessionId,folderPath:e.folderPath})))}persistViewedSession(){this.viewedSessionId?.startsWith(`pending-`)||C(this.viewedSessionId)}addOptimisticUserMessage(e,t){let n=this.sessions[e];if(!n)return;let r=[];t&&r.push({type:`text`,text:t});let i={role:`user`,content:r},a=`msg-`+ this._nextMessageKey++;n.messages=[...n.messages,i],n.messageKeys=[...n.messageKeys,a],n.optimisticMessageKey=a}handleEvent(e){let t=`sessionId`in e?e.sessionId:void 0;if(e.type===`buffered_events`){let t=e;for(let e of t.events)this.handleEvent(e);return}if(!t)return;let n=this.sessions[t];if(n){switch(e.type){case`agent_start`:n.status=`working`,n.isStreaming=!0;break;case`agent_end`:{let r=e;if(n.status=`idle`,n.isStreaming=!1,n.streamingMessage=null,n.streamingKey=null,t!==this.viewedSessionId&&(n.needsAttention=!0),r.messageEntryIds){let e=r.messageEntryIds,t=0;for(let r=0;r<n.messages.length&&t<e.length;r++){let i=n.messages[r];i.role===`assistant`&&i.aborted===!0&&i.content.every(e=>e.type===`text`&&!e.text)||(i.entryId||=e[t],t++)}}F.send({type:`get_session_meta`,sessionId:t}).then(e=>{e.success&&e.data&&this.updateMeta(t,e.data.meta)}).catch(()=>{});break}case`message_start`:{let t=e;if(t.role===`user`&&n.optimisticMessageKey)break;n.streamingKey=`msg-`+ this._nextMessageKey++,n.streamingMessage={role:t.role,content:[]};break}case`message_update`:{let t=e;if(!n.streamingMessage)break;if(t.subtype===`start`){let e={type:t.content.type,text:``,streaming:!0};t.content.type===`tool_call`&&(e.toolCallId=t.toolCallId,e.toolName=t.toolName),n.streamingMessage.content[t.contentIndex]=e}else if(t.subtype===`delta`){let e=n.streamingMessage.content[t.contentIndex];e&&(e.text=(e.text??``)+t.content.text)}else if(t.subtype===`end`){let e=n.streamingMessage.content[t.contentIndex];e&&(e.streaming=!1)}break}case`message_end`:{let r=e,i=r.message;if(i.role===`user`&&n.optimisticMessageKey){let e=n.messageKeys.indexOf(n.optimisticMessageKey);if(e!==-1){let t=[...n.messages];t[e]=i,n.messages=t}n.optimisticMessageKey=null,n.streamingMessage=null,n.streamingKey=null}else{n.messages=[...n.messages,i];let e=n.streamingKey??`msg-`+ this._nextMessageKey++;n.streamingKey||console.error(`[session-desync] message_end without streamingKey`,{sessionId:t,cursor:r.cursor,role:i.role,messagesLen:n.messages.length,keysLen:n.messageKeys.length}),n.messageKeys=[...n.messageKeys,e],n.streamingMessage=null,n.streamingKey=null}if(n.messageCount++,i.role===`user`&&n.firstMessage===void 0){let e=i.content.find(e=>e.type===`text`);e&&e.text&&(n.firstMessage=e.text)}if(i.role===`user`&&n.pendingSteeringMessages.length>0){let e=i.content.find(e=>e.type===`text`);if(e?.text){let t=n.pendingSteeringMessages.indexOf(e.text);t!==-1&&n.pendingSteeringMessages.splice(t,1)}}i.role===`toolResult`&&this.applyToolResults(n,i);break}case`tool_execution_start`:{let t=e;n.toolExecutions[t.toolCallId]={name:t.toolName,args:t.args,partialResult:``,status:`running`};break}case`tool_execution_update`:{let t=e,r=n.toolExecutions[t.toolCallId];r&&(r.partialResult+=t.content);break}case`tool_execution_end`:{let t=e,r=n.toolExecutions[t.toolCallId];r&&(r.status=`completed`,r.result=t.result,r.isError=t.isError);break}case`auto_compaction_start`:n.isCompacting=!0;break;case`auto_compaction_end`:n.isCompacting=!1,F.send({type:`get_session_meta`,sessionId:t}).then(e=>{e.success&&e.data&&this.updateMeta(t,e.data.meta)}).catch(()=>{});break;case`full_resync`:{let r=e,i=r.state,a=r.messages,o=this.createSessionState(n.sessionId,n.folderPath,n.projectName);o.draftText=n.draftText,o.extensionTitle=n.extensionTitle,o.restoreMode=n.restoreMode,o.isRestoring=n.isRestoring,o.widgetCards=n.widgetCards,o.model=i.model,o.thinkingLevel=i.thinkingLevel,o.availableThinkingLevels=i.availableThinkingLevels??[],o.isStreaming=i.isStreaming,o.isCompacting=i.isCompacting,o.autoCompactionEnabled=i.autoCompactionEnabled,o.messageCount=i.messageCount,o.sessionName=i.sessionName??null,o.messages=a,o.firstMessage=this.firstUserMessage(a),o.status=i.isStreaming?`working`:`idle`,o.messageKeys=this.generateMessageKeys(a.length),this.rebuildToolExecutions(o),this.sessions[t]=o;break}case`session_restore`:{let t=e;n.restoreMode=t.status===`started`?t.mode:null,n.isRestoring=t.status===`started`;break}case`session_conflict`:{let t=e;n.conflictingProcesses=t.processes,n.conflictingRemoteSessions=t.remoteSessions??[];break}case`session_state_changed`:{let t=e;if(t.gitBranch!==void 0)for(let e of Object.values(this.sessions))e.folderPath===t.folderPath&&(e.gitBranch=t.gitBranch);break}case`session_renamed`:n.sessionName=e.name;break;case`panel_update`:n.panelCards=e.cards,t===this.viewedSessionId&&this.syncViewedPanelStore();break}`timestamp`in e&&typeof e.timestamp==`string`&&(n.lastBotActivityTimestamp=e.timestamp)}}combinedPanelCards(e){return e?[...e.panelCards,...Object.values(e.widgetCards)]:[]}syncViewedPanelStore(){R.handlePanelUpdate(this.combinedPanelCards(this.viewed))}addSession(e,t,n){this.sessions[e]=this.createSessionState(e,t,n),this.persistSessions()}removeSession(e){let t=this.viewedSessionId===e,{[e]:n,...r}=this.sessions;if(this.sessions=r,t){let e=Object.keys(this.sessions);this.viewedSessionId=e.length>0?e[0]:null,this.syncViewedPanelStore()}this.persistSessions(),this.persistViewedSession()}replaceSession(e,t,n,r){let i=this.sessions[e];if(!i)return;let{[e]:a,...o}=this.sessions,s=this.createSessionState(t,n,r);s.model=i.model,s.thinkingLevel=i.thinkingLevel,s.availableThinkingLevels=i.availableThinkingLevels,s.autoCompactionEnabled=i.autoCompactionEnabled,s.gitBranch=i.gitBranch,o[t]=s,this.sessions=o,this.viewedSessionId===e&&(this.viewedSessionId=t,this.syncViewedPanelStore()),this.persistSessions(),this.persistViewedSession()}switchTo(e){this.viewedSessionId=e;let t=this.sessions[e];t&&(t.needsAttention=!1),this.syncViewedPanelStore(),this.persistViewedSession()}isActiveSession(e){return e in this.sessions}updateMeta(e,t){let n=this.sessions[e];if(n){n.contextUsage=t.contextUsage;for(let e of Object.values(this.sessions))e.folderPath===n.folderPath&&(e.gitBranch=t.gitBranch)}}applyToolResults(e,t){for(let n of t.content)if(n.type===`tool_result`&&n.toolCallId){let t=e.toolExecutions[n.toolCallId];t?(t.status=`completed`,t.result=n.result,t.isError=n.isError):e.toolExecutions[n.toolCallId]={name:n.toolName??`unknown`,args:void 0,partialResult:``,status:`completed`,result:n.result,isError:n.isError}}}rebuildToolExecutions(e){e.toolExecutions={};for(let t of e.messages)t.role===`toolResult`&&this.applyToolResults(e,t)}clearConflict(e){let t=this.sessions[e];t&&(t.conflictingProcesses=[],t.conflictingRemoteSessions=[])}},B=new z;async function V(e){try{let[t,n,r,i]=await Promise.all([F.send({type:`get_state`,sessionId:e}),F.send({type:`get_messages`,sessionId:e}),F.send({type:`get_session_meta`,sessionId:e}),F.send({type:`get_commands`,sessionId:e})]),a=B.sessions[e];if(!a)return;if(t.success&&t.data){let e=t.data.state;a.model=e.model,a.thinkingLevel=e.thinkingLevel,a.availableThinkingLevels=e.availableThinkingLevels??[],a.isStreaming=e.isStreaming,a.isCompacting=e.isCompacting,a.autoCompactionEnabled=e.autoCompactionEnabled,a.messageCount=e.messageCount,a.sessionName=e.sessionName??null,a.status=e.isStreaming?`working`:`idle`}if(n.success&&n.data){let e=n.data.messages;a.messages=e,a.messageKeys=B.generateMessageKeys(e.length),a.messageCount=e.length,a.firstMessage=B.firstUserMessage(e),B.rebuildToolExecutions(a)}if(r.success&&r.data){let t=r.data.meta;B.updateMeta(e,t)}if(i.success&&i.data){let t=i.data.commands;L.setCommands(e,t)}}catch(e){console.error(`[SessionRegistry] Failed to fetch full session data:`,e)}}async function H(e){try{let[t,n]=await Promise.all([F.send({type:`get_session_meta`,sessionId:e}),F.send({type:`get_commands`,sessionId:e})]);if(t.success&&t.data&&B.updateMeta(e,t.data.meta),n.success&&n.data){let t=n.data.commands;L.setCommands(e,t)}}catch(e){console.error(`[SessionRegistry] Failed to refresh session meta/commands:`,e)}}async function U(e,t,n){let r=t.split(`/`).pop()||`Unknown`,i=n?.switchTo!==!1;B.sessions[e]||B.addSession(e,t,r),F.addSubscribedSession(e,t),i&&B.switchTo(e);try{let r=await F.send({type:`open_session`,folderPath:t,sessionId:e,...n?.force?{force:!0}:{}});if(!r.success){if(r.error===`session_owned`){let t=B.sessions[e];return t&&(t.pendingTakeover=!0),!1}return B.removeSession(e),F.removeSubscribedSession(e),L.removeSession(e),!1}return await H(e),i&&F.send({type:`view_session`,sessionId:e}).catch(()=>{}),!0}catch(t){return console.error(`[SessionRegistry] Failed to open existing session:`,t),B.removeSession(e),F.removeSubscribedSession(e),L.removeSession(e),!1}}F.onEvent(e=>{switch(e.type){case`session_opened`:{let t=e.folder,n=t?.name??`Unknown`,r=B.pendingNewSession;r&&B.sessions[r]?(B.pendingNewSession=null,B.replaceSession(r,e.sessionId,t?.path??``,n)):(B.addSession(e.sessionId,t?.path??``,n),B.switchTo(e.sessionId)),F.addSubscribedSession(e.sessionId,t?.path??``),V(e.sessionId);break}case`session_closed`:B.removeSession(e.sessionId),F.removeSubscribedSession(e.sessionId),L.removeSession(e.sessionId);break;case`session_replaced`:{let t=e,n=t.folder,r=n?.name??`Unknown`;B.replaceSession(t.oldSessionId,t.newSessionId,n?.path??``,r),F.removeSubscribedSession(t.oldSessionId),F.addSubscribedSession(t.newSessionId,n?.path??``),L.removeSession(t.oldSessionId),V(t.newSessionId);break}default:`sessionId`in e&&B.handleEvent(e);break}}),F.onSessionOwned=e=>{let t=B.sessions[e];t&&(t.pendingTakeover=!0)},F.onPendingAdopt=(e,t)=>{U(e,t,{force:!0,switchTo:!0})},F.onReconnected=()=>{for(let e of B.activeSessions)e.sessionId.startsWith(`pending-`)||H(e.sessionId);let e=B.viewedSessionId;e&&!e.startsWith(`pending-`)&&F.send({type:`view_session`,sessionId:e}).catch(()=>{})};var W=b(),G=S();for(let{sessionId:e,folderPath:t}of W){let n=t.split(`/`).pop()||`Unknown`;B.addSession(e,t,n),F.addSubscribedSession(e,t)}G&&B.sessions[G]&&(B.viewedSessionId=G);function K(e){let t=B.sessions[e];t&&(t.pendingTakeover=!1,U(e,t.folderPath,{force:!0,switchTo:!0}))}function q(e){B.removeSession(e),F.removeSubscribedSession(e)}function J(e){B.switchTo(e),F.send({type:`view_session`,sessionId:e}).catch(()=>{})}function Y(e){F.send({type:`close_session`,sessionId:e}).catch(()=>{})}function X(e){let t=B.sessions[e];if(!t||B.pendingNewSession)return;let n=`pending-${crypto.randomUUID()}`;B.addSession(n,t.folderPath,t.projectName),B.switchTo(n),B.pendingNewSession=n,F.send({type:`open_session`,folderPath:t.folderPath}).then(e=>{e.success||(B.pendingNewSession===n&&(B.pendingNewSession=null),B.removeSession(n))}).catch(()=>{B.pendingNewSession===n&&(B.pendingNewSession=null),B.removeSession(n)})}export{f as _,X as a,J as c,F as d,M as f,T as g,D as h,q as i,R as l,w as m,Y as n,U as o,E as p,K as r,B as s,z as t,L as u,d as v};
@@ -0,0 +1 @@
1
+ import{c as e,o as t,s as n}from"./CklMSqcv.js";export{t as openExistingSession,n as sessionRegistry,e as switchToSession};
@@ -1,4 +1,4 @@
1
- import{$ as e,A as t,B as n,C as r,D as i,E as a,F as o,G as s,H as c,I as l,J as u,K as d,L as f,M as p,N as m,O as h,P as g,R as _,S as v,T as y,U as b,V as x,X as S,Y as C,Z as w,a as T,bt as E,c as D,ct as ee,d as O,dt as te,et as k,f as ne,ft as re,ht as ie,it as A,j,k as ae,l as oe,m as se,mt as M,nt as N,o as P,ot as F,p as ce,pt as I,r as le,s as L,st as R,tt as z,u as ue,ut as de,vt as B,w as V,x as fe,xt as pe,y as me,yt as H,z as he}from"./B8lQCytv.js";import"./D1hYfEew.js";import{_ as ge,c as _e,d as U,f as W,g as ve,m as ye,n as be,o as xe,s as G,v as Se}from"./D_Fpgknp.js";function Ce(e){return typeof e==`function`}function we(e){return typeof e==`object`&&!!e}var Te=[`string`,`number`,`bigint`,`boolean`];function Ee(e){return e==null||Te.includes(typeof e)?!0:Array.isArray(e)?e.every(e=>Ee(e)):typeof e==`object`?Object.getPrototypeOf(e)===Object.prototype:!1}var De=Symbol(`box`),Oe=Symbol(`is-writable`);function K(e,t){let n=R(e);return t?{[De]:!0,[Oe]:!0,get current(){return b(n)},set current(e){t(e)}}:{[De]:!0,get current(){return e()}}}function ke(e){return we(e)&&De in e}function Ae(e){return ke(e)&&Oe in e}function je(e){return ke(e)?e:Ce(e)?K(e):Pe(e)}function Me(e){return Object.entries(e).reduce((e,[t,n])=>ke(n)?(Ae(n)?Object.defineProperty(e,t,{get(){return n.current},set(e){n.current=e}}):Object.defineProperty(e,t,{get(){return n.current}}),e):Object.assign(e,{[t]:n}),{})}function Ne(e){return Ae(e)?{[De]:!0,get current(){return e.current}}:e}function Pe(e){let t=F(N(e));return{[De]:!0,[Oe]:!0,get current(){return b(t)},set current(e){A(t,e,!0)}}}function Fe(e){let t=F(N(e));return{[De]:!0,[Oe]:!0,get current(){return b(t)},set current(e){A(t,e,!0)}}}Fe.from=je,Fe.with=K,Fe.flatten=Me,Fe.readonly=Ne,Fe.isBox=ke,Fe.isWritableBox=Ae;function Ie(...e){return function(t){for(let n of e)if(n){if(t.defaultPrevented)return;typeof n==`function`?n.call(this,t):n.current?.call(this,t)}}}var Le=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,Re=/\n/g,ze=/^\s*/,Be=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,Ve=/^:\s*/,He=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,Ue=/^[;\s]*/,We=/^\s+|\s+$/g,Ge=`
1
+ import{$ as e,A as t,B as n,C as r,D as i,E as a,F as o,G as s,H as c,I as l,J as u,K as d,L as f,M as p,N as m,O as h,P as g,R as _,S as v,T as y,U as b,V as x,X as S,Y as C,Z as w,a as T,bt as E,c as D,ct as ee,d as O,dt as te,et as k,f as ne,ft as re,ht as ie,it as A,j,k as ae,l as oe,m as se,mt as M,nt as N,o as P,ot as F,p as ce,pt as I,r as le,s as L,st as R,tt as z,u as ue,ut as de,vt as B,w as V,x as fe,xt as pe,y as me,yt as H,z as he}from"./B8lQCytv.js";import"./D1hYfEew.js";import{_ as ge,c as _e,d as U,f as W,g as ve,m as ye,n as be,o as xe,s as G,v as Se}from"./CklMSqcv.js";function Ce(e){return typeof e==`function`}function we(e){return typeof e==`object`&&!!e}var Te=[`string`,`number`,`bigint`,`boolean`];function Ee(e){return e==null||Te.includes(typeof e)?!0:Array.isArray(e)?e.every(e=>Ee(e)):typeof e==`object`?Object.getPrototypeOf(e)===Object.prototype:!1}var De=Symbol(`box`),Oe=Symbol(`is-writable`);function K(e,t){let n=R(e);return t?{[De]:!0,[Oe]:!0,get current(){return b(n)},set current(e){t(e)}}:{[De]:!0,get current(){return e()}}}function ke(e){return we(e)&&De in e}function Ae(e){return ke(e)&&Oe in e}function je(e){return ke(e)?e:Ce(e)?K(e):Pe(e)}function Me(e){return Object.entries(e).reduce((e,[t,n])=>ke(n)?(Ae(n)?Object.defineProperty(e,t,{get(){return n.current},set(e){n.current=e}}):Object.defineProperty(e,t,{get(){return n.current}}),e):Object.assign(e,{[t]:n}),{})}function Ne(e){return Ae(e)?{[De]:!0,get current(){return e.current}}:e}function Pe(e){let t=F(N(e));return{[De]:!0,[Oe]:!0,get current(){return b(t)},set current(e){A(t,e,!0)}}}function Fe(e){let t=F(N(e));return{[De]:!0,[Oe]:!0,get current(){return b(t)},set current(e){A(t,e,!0)}}}Fe.from=je,Fe.with=K,Fe.flatten=Me,Fe.readonly=Ne,Fe.isBox=ke,Fe.isWritableBox=Ae;function Ie(...e){return function(t){for(let n of e)if(n){if(t.defaultPrevented)return;typeof n==`function`?n.call(this,t):n.current?.call(this,t)}}}var Le=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,Re=/\n/g,ze=/^\s*/,Be=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,Ve=/^:\s*/,He=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,Ue=/^[;\s]*/,We=/^\s+|\s+$/g,Ge=`
2
2
  `,Ke=`/`,qe=`*`,Je=``,Ye=`comment`,Xe=`declaration`;function Ze(e,t){if(typeof e!=`string`)throw TypeError(`First argument must be a string`);if(!e)return[];t||={};var n=1,r=1;function i(e){var t=e.match(Re);t&&(n+=t.length);var i=e.lastIndexOf(Ge);r=~i?e.length-i:r+e.length}function a(){var e={line:n,column:r};return function(t){return t.position=new o(e),l(),t}}function o(e){this.start=e,this.end={line:n,column:r},this.source=t.source}o.prototype.content=e;function s(i){var a=Error(t.source+`:`+n+`:`+r+`: `+i);if(a.reason=i,a.filename=t.source,a.line=n,a.column=r,a.source=e,!t.silent)throw a}function c(t){var n=t.exec(e);if(n){var r=n[0];return i(r),e=e.slice(r.length),n}}function l(){c(ze)}function u(e){var t;for(e||=[];t=d();)t!==!1&&e.push(t);return e}function d(){var t=a();if(!(Ke!=e.charAt(0)||qe!=e.charAt(1))){for(var n=2;Je!=e.charAt(n)&&(qe!=e.charAt(n)||Ke!=e.charAt(n+1));)++n;if(n+=2,Je===e.charAt(n-1))return s(`End of comment missing`);var o=e.slice(2,n-2);return r+=2,i(o),e=e.slice(n),r+=2,t({type:Ye,comment:o})}}function f(){var e=a(),t=c(Be);if(t){if(d(),!c(Ve))return s(`property missing ':'`);var n=c(He),r=e({type:Xe,property:Qe(t[0].replace(Le,Je)),value:n?Qe(n[0].replace(Le,Je)):Je});return c(Ue),r}}function p(){var e=[];u(e);for(var t;t=f();)t!==!1&&(e.push(t),u(e));return e}return l(),p()}function Qe(e){return e?e.replace(We,Je):Je}function $e(e,t){let n=null;if(!e||typeof e!=`string`)return n;let r=Ze(e),i=typeof t==`function`;return r.forEach(e=>{if(e.type!==`declaration`)return;let{property:r,value:a}=e;i?t(r,a,e):a&&(n||={},n[r]=a)}),n}var et=/\d/,tt=[`-`,`_`,`/`,`.`];function nt(e=``){if(!et.test(e))return e!==e.toLowerCase()}function rt(e){let t=[],n=``,r,i;for(let a of e){let e=tt.includes(a);if(e===!0){t.push(n),n=``,r=void 0;continue}let o=nt(a);if(i===!1){if(r===!1&&o===!0){t.push(n),n=a,r=o;continue}if(r===!0&&o===!1&&n.length>1){let e=n.at(-1);t.push(n.slice(0,Math.max(0,n.length-1))),n=e+a,r=o;continue}}n+=a,r=o,i=e}return t.push(n),t}function it(e){return e?rt(e).map(e=>ot(e)).join(``):``}function at(e){return st(it(e||``))}function ot(e){return e?e[0].toUpperCase()+e.slice(1):``}function st(e){return e?e[0].toLowerCase()+e.slice(1):``}function ct(e){if(!e)return{};let t={};function n(e,n){if(e.startsWith(`-moz-`)||e.startsWith(`-webkit-`)||e.startsWith(`-ms-`)||e.startsWith(`-o-`)){t[it(e)]=n;return}if(e.startsWith(`--`)){t[e]=n;return}t[at(e)]=n}return $e(e,n),t}function lt(...e){return(...t)=>{for(let n of e)typeof n==`function`&&n(...t)}}function ut(e,t){let n=RegExp(e,`g`);return e=>{if(typeof e!=`string`)throw TypeError(`expected an argument of type string, but got ${typeof e}`);return e.match(n)?e.replace(n,t):e}}var dt=ut(/[A-Z]/,e=>`-${e.toLowerCase()}`);function ft(e){if(!e||typeof e!=`object`||Array.isArray(e))throw TypeError(`expected an argument of type object, but got ${typeof e}`);return Object.keys(e).map(t=>`${dt(t)}: ${e[t]};`).join(`
3
3
  `)}function pt(e={}){return ft(e).replace(`
4
4
  `,` `)}var mt=new Set(`onabort.onanimationcancel.onanimationend.onanimationiteration.onanimationstart.onauxclick.onbeforeinput.onbeforetoggle.onblur.oncancel.oncanplay.oncanplaythrough.onchange.onclick.onclose.oncompositionend.oncompositionstart.oncompositionupdate.oncontextlost.oncontextmenu.oncontextrestored.oncopy.oncuechange.oncut.ondblclick.ondrag.ondragend.ondragenter.ondragleave.ondragover.ondragstart.ondrop.ondurationchange.onemptied.onended.onerror.onfocus.onfocusin.onfocusout.onformdata.ongotpointercapture.oninput.oninvalid.onkeydown.onkeypress.onkeyup.onload.onloadeddata.onloadedmetadata.onloadstart.onlostpointercapture.onmousedown.onmouseenter.onmouseleave.onmousemove.onmouseout.onmouseover.onmouseup.onpaste.onpause.onplay.onplaying.onpointercancel.onpointerdown.onpointerenter.onpointerleave.onpointermove.onpointerout.onpointerover.onpointerup.onprogress.onratechange.onreset.onresize.onscroll.onscrollend.onsecuritypolicyviolation.onseeked.onseeking.onselect.onselectionchange.onselectstart.onslotchange.onstalled.onsubmit.onsuspend.ontimeupdate.ontoggle.ontouchcancel.ontouchend.ontouchmove.ontouchstart.ontransitioncancel.ontransitionend.ontransitionrun.ontransitionstart.onvolumechange.onwaiting.onwebkitanimationend.onwebkitanimationiteration.onwebkitanimationstart.onwebkittransitionend.onwheel`.split(`.`));function ht(e){return mt.has(e)}function q(...e){let t={...e[0]};for(let n=1;n<e.length;n++){let r=e[n];if(r){for(let e of Object.keys(r)){let n=t[e],i=r[e],a=typeof n==`function`,o=typeof i==`function`;if(a&&typeof o&&ht(e))t[e]=Ie(n,i);else if(a&&o)t[e]=lt(n,i);else if(e===`class`){let r=Ee(n),a=Ee(i);r&&a?t[e]=fe(n,i):r?t[e]=fe(n):a&&(t[e]=fe(i))}else if(e===`style`){let r=typeof n==`object`,a=typeof i==`object`,o=typeof n==`string`,s=typeof i==`string`;if(r&&a)t[e]={...n,...i};else if(r&&s){let r=ct(i);t[e]={...n,...r}}else if(o&&a)t[e]={...ct(n),...i};else if(o&&s){let r=ct(n),a=ct(i);t[e]={...r,...a}}else r?t[e]=n:a?t[e]=i:o?t[e]=n:s&&(t[e]=i)}else t[e]=i===void 0?n:i}for(let e of Object.getOwnPropertySymbols(r)){let n=t[e],i=r[e];t[e]=i===void 0?n:i}}}return typeof t.style==`object`&&(t.style=pt(t.style).replaceAll(`
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.BEh4bPGQ.js","../chunks/5FogVG_p.js","../chunks/CHncfsjL.js","../chunks/BNqgidwO.js","../chunks/D_Fpgknp.js","../chunks/D26i4pYm.js","../chunks/B8lQCytv.js","../chunks/D1hYfEew.js","../assets/0.C7loWTOC.css","../nodes/1.B2l9JGRO.js","../chunks/DzqbY2XU.js","../nodes/2.ph9M0S1U.js","../chunks/BgJ-X-tf.js","../assets/2.D9fiCd8W.css"])))=>i.map(i=>d[i]);
2
- import{$ as e,A as t,C as n,G as r,L as i,M as a,N as o,O as s,P as c,U as l,X as u,Y as d,Z as f,a as p,c as m,et as h,i as g,it as _,mt as v,ot as y,pt as b,r as x,st as S,tt as C,yt as w}from"../chunks/B8lQCytv.js";import{t as T}from"../chunks/CHncfsjL.js";import"../chunks/D1hYfEew.js";var E={},D=c(`<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>`),O=c(`<!> <!>`,1);function k(c,g){v(g,!0);let T=p(g,`components`,23,()=>[]),E=p(g,`data_0`,3,null),k=p(g,`data_1`,3,null);f(()=>g.stores.page.set(g.page)),u(()=>{g.stores,g.page,g.constructors,T(),g.form,E(),k(),g.stores.page.notify()});let A=y(!1),j=y(!1),M=y(null);x(()=>{let e=g.stores.page.subscribe(()=>{l(A)&&(_(j,!0),r().then(()=>{_(M,document.title||`untitled page`,!0)}))});return _(A,!0),e});let N=S(()=>g.constructors[1]);var P=O(),F=h(P),I=e=>{let t=S(()=>g.constructors[0]);var r=o();n(h(r),()=>l(t),(e,t)=>{m(t(e,{get data(){return E()},get form(){return g.form},get params(){return g.page.params},children:(e,t)=>{var r=o();n(h(r),()=>l(N),(e,t)=>{m(t(e,{get data(){return k()},get form(){return g.form},get params(){return g.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),a(e,r)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),a(e,r)},L=e=>{let t=S(()=>g.constructors[0]);var r=o();n(h(r),()=>l(t),(e,t)=>{m(t(e,{get data(){return E()},get form(){return g.form},get params(){return g.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),a(e,r)};s(F,e=>{g.constructors[1]?e(I):e(L,-1)});var R=C(F,2),z=n=>{var r=D(),o=e(r),c=e=>{var n=i();d(()=>t(n,l(M))),a(e,n)};s(o,e=>{l(j)&&e(c)}),w(r),a(n,r)};s(R,e=>{l(A)&&e(z)}),a(c,P),b()}var A=g(k),j=[()=>T(()=>import(`../nodes/0.BEh4bPGQ.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url),()=>T(()=>import(`../nodes/1.B2l9JGRO.js`),__vite__mapDeps([9,10,5,6,1,7]),import.meta.url),()=>T(()=>import(`../nodes/2.ph9M0S1U.js`),__vite__mapDeps([11,12,1,3,4,5,6,7,13]),import.meta.url)],M=[],N={"/":[2]},P={handleError:(({error:e})=>{console.error(e)}),reroute:(()=>{}),transport:{}},F=Object.fromEntries(Object.entries(P.transport).map(([e,t])=>[e,t.decode])),I=Object.fromEntries(Object.entries(P.transport).map(([e,t])=>[e,t.encode])),L=!1,R=(e,t)=>F[e](t);export{R as decode,F as decoders,N as dictionary,I as encoders,L as hash,P as hooks,E as matchers,j as nodes,A as root,M as server_loads};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.CepAO4xf.js","../chunks/5FogVG_p.js","../chunks/CHncfsjL.js","../chunks/D1vhgXpq.js","../chunks/CklMSqcv.js","../chunks/-Lc-U-GJ.js","../chunks/B8lQCytv.js","../chunks/D1hYfEew.js","../assets/0.C7loWTOC.css","../nodes/1.CmxFYjRm.js","../chunks/CO_BwWGt.js","../nodes/2.DAtqfmki.js","../chunks/BgJ-X-tf.js","../assets/2.DwPXxSa-.css"])))=>i.map(i=>d[i]);
2
+ import{$ as e,A as t,C as n,G as r,L as i,M as a,N as o,O as s,P as c,U as l,X as u,Y as d,Z as f,a as p,c as m,et as h,i as g,it as _,mt as v,ot as y,pt as b,r as x,st as S,tt as C,yt as w}from"../chunks/B8lQCytv.js";import{t as T}from"../chunks/CHncfsjL.js";import"../chunks/D1hYfEew.js";var E={},D=c(`<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>`),O=c(`<!> <!>`,1);function k(c,g){v(g,!0);let T=p(g,`components`,23,()=>[]),E=p(g,`data_0`,3,null),k=p(g,`data_1`,3,null);f(()=>g.stores.page.set(g.page)),u(()=>{g.stores,g.page,g.constructors,T(),g.form,E(),k(),g.stores.page.notify()});let A=y(!1),j=y(!1),M=y(null);x(()=>{let e=g.stores.page.subscribe(()=>{l(A)&&(_(j,!0),r().then(()=>{_(M,document.title||`untitled page`,!0)}))});return _(A,!0),e});let N=S(()=>g.constructors[1]);var P=O(),F=h(P),I=e=>{let t=S(()=>g.constructors[0]);var r=o();n(h(r),()=>l(t),(e,t)=>{m(t(e,{get data(){return E()},get form(){return g.form},get params(){return g.page.params},children:(e,t)=>{var r=o();n(h(r),()=>l(N),(e,t)=>{m(t(e,{get data(){return k()},get form(){return g.form},get params(){return g.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),a(e,r)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),a(e,r)},L=e=>{let t=S(()=>g.constructors[0]);var r=o();n(h(r),()=>l(t),(e,t)=>{m(t(e,{get data(){return E()},get form(){return g.form},get params(){return g.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),a(e,r)};s(F,e=>{g.constructors[1]?e(I):e(L,-1)});var R=C(F,2),z=n=>{var r=D(),o=e(r),c=e=>{var n=i();d(()=>t(n,l(M))),a(e,n)};s(o,e=>{l(j)&&e(c)}),w(r),a(n,r)};s(R,e=>{l(A)&&e(z)}),a(c,P),b()}var A=g(k),j=[()=>T(()=>import(`../nodes/0.CepAO4xf.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url),()=>T(()=>import(`../nodes/1.CmxFYjRm.js`),__vite__mapDeps([9,10,5,6,1,7]),import.meta.url),()=>T(()=>import(`../nodes/2.DAtqfmki.js`),__vite__mapDeps([11,12,1,3,4,5,6,7,13]),import.meta.url)],M=[],N={"/":[2]},P={handleError:(({error:e})=>{console.error(e)}),reroute:(()=>{}),transport:{}},F=Object.fromEntries(Object.entries(P.transport).map(([e,t])=>[e,t.decode])),I=Object.fromEntries(Object.entries(P.transport).map(([e,t])=>[e,t.encode])),L=!1,R=(e,t)=>F[e](t);export{R as decode,F as decoders,N as dictionary,I as encoders,L as hash,P as hooks,E as matchers,j as nodes,A as root,M as server_loads};
@@ -0,0 +1 @@
1
+ import{o as e,t}from"../chunks/CO_BwWGt.js";export{e as load_css,t as start};
@@ -1,10 +1,10 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../chunks/uZO1iyJZ.js","../chunks/B8lQCytv.js","../chunks/5FogVG_p.js","../chunks/D1hYfEew.js","../chunks/CnTTbAN2.js","../chunks/BgJ-X-tf.js","../chunks/DoVhjU85.js","../chunks/D_Fpgknp.js","../chunks/D26i4pYm.js"])))=>i.map(i=>d[i]);
2
- import{n as e}from"../chunks/5FogVG_p.js";import{$ as t,A as n,B as r,C as i,E as a,I as o,K as s,L as c,M as l,N as u,O as d,P as f,Q as p,R as m,T as h,U as g,V as _,X as v,Y as y,Z as b,_ as x,a as S,bt as C,c as w,d as T,et as E,f as D,g as ee,h as O,it as k,mt as A,nt as j,o as M,ot as N,p as P,pt as F,r as te,s as I,st as L,tt as R,u as ne,v as re,vt as z,w as B,xt as ie,y as V,yt as H,z as U}from"../chunks/B8lQCytv.js";import{t as W}from"../chunks/CHncfsjL.js";import"../chunks/D1hYfEew.js";import{$ as G,A as K,B as ae,C as oe,D as se,E as ce,G as q,H as le,J as ue,K as de,L as J,M as Y,N as fe,O as pe,P as me,Q as he,R as ge,T as _e,V as ve,W as ye,X as be,Y as xe,Z as Se,_ as Ce,b as we,et as Te,h as Ee,i as De,j as Oe,k as ke,m as Ae,n as je,nt as Me,o as Ne,q as Pe,r as Fe,s as Ie,t as Le,tt as X,u as Z,v as Re,w as ze,y as Be,z as Ve}from"../chunks/BNqgidwO.js";import{_ as He,d as Q,l as Ue,s as $}from"../chunks/D_Fpgknp.js";var We=e({prerender:()=>!1,ssr:()=>!1}),Ge=class{#e;#t;constructor(e,t){this.#e=e,this.#t=t,this.handler=this.handler.bind(this),v(this.handler)}handler(){let e=0,t=this.#e();if(!t)return;let n=new ResizeObserver(()=>{cancelAnimationFrame(e),e=window.requestAnimationFrame(this.#t)});return n.observe(t),()=>{window.cancelAnimationFrame(e),n.unobserve(t)}}},Ke=class{opts;present;#e;#t=N(!1);#n=!1;#r=N(void 0);#i=null;constructor(e){this.opts=e,this.present=this.opts.open,k(this.#t,e.open.current,!0),this.#e=new le({ref:this.opts.ref,afterTick:this.opts.open}),ue(()=>this.#o()),be(()=>this.present.current,e=>{if(!this.#n){this.#n=!0;return}this.#o(),e&&k(this.#t,!0),k(this.#r,e?`starting`:`ending`,!0),e&&(this.#i=window.requestAnimationFrame(()=>{this.#i=null,this.present.current&&k(this.#r,void 0)})),this.#e.run(()=>{e===this.present.current&&(e||k(this.#t,!1),k(this.#r,void 0))})})}#a=L(()=>g(this.#t));get isPresent(){return g(this.#a)}set isPresent(e){k(this.#a,e)}get transitionStatus(){return g(this.#r)}#o(){this.#i!==null&&(window.cancelAnimationFrame(this.#i),this.#i=null)}};function qe(e,t){A(t,!0);let n=new Ke({open:X(()=>t.open),ref:t.ref});var r=u(),i=E(r),a=e=>{var r=u();B(E(r),()=>t.presence??C,()=>({present:n.isPresent,transitionStatus:n.transitionStatus})),l(e,r)};d(i,e=>{(t.forceMount||t.open||n.isPresent)&&e(a)}),l(e,r),F()}function Je(e,t,n){return Math.min(n,Math.max(t,e))}var Ye=class{state;#e;constructor(e,t){this.state=Me(e),this.#e=t,this.dispatch=this.dispatch.bind(this)}#t(e){return this.#e[this.state.current][e]??this.state.current}dispatch(e){this.state.current=this.#t(e)}},Xe=ye({component:`scroll-area`,parts:[`root`,`viewport`,`corner`,`thumb`,`scrollbar`]}),Ze=new he(`ScrollArea.Root`),Qe=new he(`ScrollArea.Scrollbar`),$e=new he(`ScrollArea.ScrollbarVisible`),et=new he(`ScrollArea.ScrollbarAxis`),tt=new he(`ScrollArea.ScrollbarShared`),nt=class e{static create(t){return Ze.set(new e(t))}opts;attachment;#e=N(null);get scrollAreaNode(){return g(this.#e)}set scrollAreaNode(e){k(this.#e,e,!0)}#t=N(null);get viewportNode(){return g(this.#t)}set viewportNode(e){k(this.#t,e,!0)}#n=N(null);get contentNode(){return g(this.#n)}set contentNode(e){k(this.#n,e,!0)}#r=N(null);get scrollbarXNode(){return g(this.#r)}set scrollbarXNode(e){k(this.#r,e,!0)}#i=N(null);get scrollbarYNode(){return g(this.#i)}set scrollbarYNode(e){k(this.#i,e,!0)}#a=N(0);get cornerWidth(){return g(this.#a)}set cornerWidth(e){k(this.#a,e,!0)}#o=N(0);get cornerHeight(){return g(this.#o)}set cornerHeight(e){k(this.#o,e,!0)}#s=N(!1);get scrollbarXEnabled(){return g(this.#s)}set scrollbarXEnabled(e){k(this.#s,e,!0)}#c=N(!1);get scrollbarYEnabled(){return g(this.#c)}set scrollbarYEnabled(e){k(this.#c,e,!0)}domContext;constructor(e){this.opts=e,this.attachment=q(e.ref,e=>this.scrollAreaNode=e),this.domContext=new de(e.ref)}#l=L(()=>({id:this.opts.id.current,dir:this.opts.dir.current,style:{position:`relative`,"--bits-scroll-area-corner-height":`${this.cornerHeight}px`,"--bits-scroll-area-corner-width":`${this.cornerWidth}px`},[Xe.root]:``,...this.attachment}));get props(){return g(this.#l)}set props(e){k(this.#l,e)}},rt=class e{static create(t){return new e(t,Ze.get())}opts;root;attachment;#e=Me(ae());#t=Me(null);contentAttachment=q(this.#t,e=>this.root.contentNode=e);constructor(e,t){this.opts=e,this.root=t,this.attachment=q(e.ref,e=>this.root.viewportNode=e)}#n=L(()=>({id:this.opts.id.current,style:{overflowX:this.root.scrollbarXEnabled?`scroll`:`hidden`,overflowY:this.root.scrollbarYEnabled?`scroll`:`hidden`},[Xe.viewport]:``,...this.attachment}));get props(){return g(this.#n)}set props(e){k(this.#n,e)}#r=L(()=>({id:this.#e.current,"data-scroll-area-content":``,style:{minWidth:this.root.scrollbarXEnabled?`fit-content`:void 0},...this.contentAttachment}));get contentProps(){return g(this.#r)}set contentProps(e){k(this.#r,e)}},it=class e{static create(t){return Qe.set(new e(t,Ze.get()))}opts;root;#e=L(()=>this.opts.orientation.current===`horizontal`);get isHorizontal(){return g(this.#e)}set isHorizontal(e){k(this.#e,e)}#t=N(!1);get hasThumb(){return g(this.#t)}set hasThumb(e){k(this.#t,e,!0)}constructor(e,t){this.opts=e,this.root=t,be(()=>this.isHorizontal,e=>e?(this.root.scrollbarXEnabled=!0,()=>{this.root.scrollbarXEnabled=!1}):(this.root.scrollbarYEnabled=!0,()=>{this.root.scrollbarYEnabled=!1}))}},at=class e{static create(){return new e(Qe.get())}scrollbar;root;#e=N(!1);get isVisible(){return g(this.#e)}set isVisible(e){k(this.#e,e,!0)}constructor(e){this.scrollbar=e,this.root=e.root,v(()=>{let e=this.root.scrollAreaNode,t=this.root.opts.scrollHideDelay.current,n=0;if(!e)return;let r=Te(_(e,`pointerenter`,()=>{this.root.domContext.clearTimeout(n),s(()=>this.isVisible=!0)}),_(e,`pointerleave`,()=>{n&&this.root.domContext.clearTimeout(n),n=this.root.domContext.setTimeout(()=>{s(()=>{this.scrollbar.hasThumb=!1,this.isVisible=!1})},t)}));return()=>{this.root.domContext.getWindow().clearTimeout(n),r()}})}#t=L(()=>({"data-state":this.isVisible?`visible`:`hidden`}));get props(){return g(this.#t)}set props(e){k(this.#t,e)}},ot=class e{static create(){return new e(Qe.get())}scrollbar;root;machine=new Ye(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}});#e=L(()=>this.machine.state.current===`hidden`);get isHidden(){return g(this.#e)}set isHidden(e){k(this.#e,e)}constructor(e){this.scrollbar=e,this.root=e.root;let t=Se(()=>this.machine.dispatch(`SCROLL_END`),100);v(()=>{let e=this.machine.state.current,t=this.root.opts.scrollHideDelay.current;if(e===`idle`){let e=this.root.domContext.setTimeout(()=>this.machine.dispatch(`HIDE`),t);return()=>this.root.domContext.clearTimeout(e)}}),v(()=>{let e=this.root.viewportNode;if(!e)return;let n=this.scrollbar.isHorizontal?`scrollLeft`:`scrollTop`,r=e[n];return _(e,`scroll`,()=>{let i=e[n];r!==i&&(this.machine.dispatch(`SCROLL`),t()),r=i})}),this.onpointerenter=this.onpointerenter.bind(this),this.onpointerleave=this.onpointerleave.bind(this)}onpointerenter(e){this.machine.dispatch(`POINTER_ENTER`)}onpointerleave(e){this.machine.dispatch(`POINTER_LEAVE`)}#t=L(()=>({"data-state":this.machine.state.current===`hidden`?`hidden`:`visible`,onpointerenter:this.onpointerenter,onpointerleave:this.onpointerleave}));get props(){return g(this.#t)}set props(e){k(this.#t,e)}},st=class e{static create(){return new e(Qe.get())}scrollbar;root;#e=N(!1);get isVisible(){return g(this.#e)}set isVisible(e){k(this.#e,e,!0)}constructor(e){this.scrollbar=e,this.root=e.root;let t=Se(()=>{let e=this.root.viewportNode;if(!e)return;let t=e.offsetWidth<e.scrollWidth,n=e.offsetHeight<e.scrollHeight;this.isVisible=this.scrollbar.isHorizontal?t:n},10);new Ge(()=>this.root.viewportNode,t),new Ge(()=>this.root.contentNode,t)}#t=L(()=>({"data-state":this.isVisible?`visible`:`hidden`}));get props(){return g(this.#t)}set props(e){k(this.#t,e)}},ct=class e{static create(){return $e.set(new e(Qe.get()))}scrollbar;root;#e=N(null);get thumbNode(){return g(this.#e)}set thumbNode(e){k(this.#e,e,!0)}#t=N(0);get pointerOffset(){return g(this.#t)}set pointerOffset(e){k(this.#t,e,!0)}#n=N({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}});get sizes(){return g(this.#n)}set sizes(e){k(this.#n,e)}#r=L(()=>ht(this.sizes.viewport,this.sizes.content));get thumbRatio(){return g(this.#r)}set thumbRatio(e){k(this.#r,e)}#i=L(()=>this.thumbRatio>0&&this.thumbRatio<1);get hasThumb(){return g(this.#i)}set hasThumb(e){k(this.#i,e)}#a=N(``);get prevTransformStyle(){return g(this.#a)}set prevTransformStyle(e){k(this.#a,e,!0)}constructor(e){this.scrollbar=e,this.root=e.root,v(()=>{this.scrollbar.hasThumb=this.hasThumb}),v(()=>{!this.scrollbar.hasThumb&&this.thumbNode&&(this.prevTransformStyle=this.thumbNode.style.transform)})}setSizes(e){this.sizes=e}getScrollPosition(e,t){return _t({pointerPos:e,pointerOffset:this.pointerOffset,sizes:this.sizes,dir:t})}onThumbPointerUp(){this.pointerOffset=0}onThumbPointerDown(e){this.pointerOffset=e}xOnThumbPositionChange(){if(!(this.root.viewportNode&&this.thumbNode))return;let e=this.root.viewportNode.scrollLeft,t=`translate3d(${vt({scrollPos:e,sizes:this.sizes,dir:this.root.opts.dir.current})}px, 0, 0)`;this.thumbNode.style.transform=t,this.prevTransformStyle=t}xOnWheelScroll(e){this.root.viewportNode&&(this.root.viewportNode.scrollLeft=e)}xOnDragScroll(e){this.root.viewportNode&&(this.root.viewportNode.scrollLeft=this.getScrollPosition(e,this.root.opts.dir.current))}yOnThumbPositionChange(){if(!(this.root.viewportNode&&this.thumbNode))return;let e=this.root.viewportNode.scrollTop,t=`translate3d(0, ${vt({scrollPos:e,sizes:this.sizes})}px, 0)`;this.thumbNode.style.transform=t,this.prevTransformStyle=t}yOnWheelScroll(e){this.root.viewportNode&&(this.root.viewportNode.scrollTop=e)}yOnDragScroll(e){this.root.viewportNode&&(this.root.viewportNode.scrollTop=this.getScrollPosition(e,this.root.opts.dir.current))}},lt=class e{static create(t){return et.set(new e(t,$e.get()))}opts;scrollbarVis;root;scrollbar;attachment;#e=N();get computedStyle(){return g(this.#e)}set computedStyle(e){k(this.#e,e,!0)}constructor(e,t){this.opts=e,this.scrollbarVis=t,this.root=t.root,this.scrollbar=t.scrollbar,this.attachment=q(this.scrollbar.opts.ref,e=>this.root.scrollbarXNode=e),v(()=>{this.scrollbar.opts.ref.current&&this.opts.mounted.current&&(this.computedStyle=getComputedStyle(this.scrollbar.opts.ref.current))}),v(()=>{this.onResize()})}onThumbPointerDown=e=>{this.scrollbarVis.onThumbPointerDown(e.x)};onDragScroll=e=>{this.scrollbarVis.xOnDragScroll(e.x)};onThumbPointerUp=()=>{this.scrollbarVis.onThumbPointerUp()};onThumbPositionChange=()=>{this.scrollbarVis.xOnThumbPositionChange()};onWheelScroll=(e,t)=>{if(!this.root.viewportNode)return;let n=this.root.viewportNode.scrollLeft+e.deltaX;this.scrollbarVis.xOnWheelScroll(n),bt(n,t)&&e.preventDefault()};onResize=()=>{this.scrollbar.opts.ref.current&&this.root.viewportNode&&this.computedStyle&&this.scrollbarVis.setSizes({content:this.root.viewportNode.scrollWidth,viewport:this.root.viewportNode.offsetWidth,scrollbar:{size:this.scrollbar.opts.ref.current.clientWidth,paddingStart:mt(this.computedStyle.paddingLeft),paddingEnd:mt(this.computedStyle.paddingRight)}})};#t=L(()=>gt(this.scrollbarVis.sizes));get thumbSize(){return g(this.#t)}set thumbSize(e){k(this.#t,e)}#n=L(()=>({id:this.scrollbar.opts.id.current,"data-orientation":`horizontal`,style:{bottom:0,left:this.root.opts.dir.current===`rtl`?`var(--bits-scroll-area-corner-width)`:0,right:this.root.opts.dir.current===`ltr`?`var(--bits-scroll-area-corner-width)`:0,"--bits-scroll-area-thumb-width":`${this.thumbSize}px`},...this.attachment}));get props(){return g(this.#n)}set props(e){k(this.#n,e)}},ut=class e{static create(t){return et.set(new e(t,$e.get()))}opts;scrollbarVis;root;scrollbar;attachment;#e=N();get computedStyle(){return g(this.#e)}set computedStyle(e){k(this.#e,e,!0)}constructor(e,t){this.opts=e,this.scrollbarVis=t,this.root=t.root,this.scrollbar=t.scrollbar,this.attachment=q(this.scrollbar.opts.ref,e=>this.root.scrollbarYNode=e),v(()=>{this.scrollbar.opts.ref.current&&this.opts.mounted.current&&(this.computedStyle=getComputedStyle(this.scrollbar.opts.ref.current))}),v(()=>{this.onResize()}),this.onThumbPointerDown=this.onThumbPointerDown.bind(this),this.onDragScroll=this.onDragScroll.bind(this),this.onThumbPointerUp=this.onThumbPointerUp.bind(this),this.onThumbPositionChange=this.onThumbPositionChange.bind(this),this.onWheelScroll=this.onWheelScroll.bind(this),this.onResize=this.onResize.bind(this)}onThumbPointerDown(e){this.scrollbarVis.onThumbPointerDown(e.y)}onDragScroll(e){this.scrollbarVis.yOnDragScroll(e.y)}onThumbPointerUp(){this.scrollbarVis.onThumbPointerUp()}onThumbPositionChange(){this.scrollbarVis.yOnThumbPositionChange()}onWheelScroll(e,t){if(!this.root.viewportNode)return;let n=this.root.viewportNode.scrollTop+e.deltaY;this.scrollbarVis.yOnWheelScroll(n),bt(n,t)&&e.preventDefault()}onResize(){this.scrollbar.opts.ref.current&&this.root.viewportNode&&this.computedStyle&&this.scrollbarVis.setSizes({content:this.root.viewportNode.scrollHeight,viewport:this.root.viewportNode.offsetHeight,scrollbar:{size:this.scrollbar.opts.ref.current.clientHeight,paddingStart:mt(this.computedStyle.paddingTop),paddingEnd:mt(this.computedStyle.paddingBottom)}})}#t=L(()=>gt(this.scrollbarVis.sizes));get thumbSize(){return g(this.#t)}set thumbSize(e){k(this.#t,e)}#n=L(()=>({id:this.scrollbar.opts.id.current,"data-orientation":`vertical`,style:{top:0,right:this.root.opts.dir.current===`ltr`?0:void 0,left:this.root.opts.dir.current===`rtl`?0:void 0,bottom:`var(--bits-scroll-area-corner-height)`,"--bits-scroll-area-thumb-height":`${this.thumbSize}px`},...this.attachment}));get props(){return g(this.#n)}set props(e){k(this.#n,e)}},dt=class e{static create(){return tt.set(new e(et.get()))}scrollbarState;root;scrollbarVis;scrollbar;#e=N(null);get rect(){return g(this.#e)}set rect(e){k(this.#e,e)}#t=N(``);get prevWebkitUserSelect(){return g(this.#t)}set prevWebkitUserSelect(e){k(this.#t,e,!0)}handleResize;handleThumbPositionChange;handleWheelScroll;handleThumbPointerDown;handleThumbPointerUp;#n=L(()=>this.scrollbarVis.sizes.content-this.scrollbarVis.sizes.viewport);get maxScrollPos(){return g(this.#n)}set maxScrollPos(e){k(this.#n,e)}constructor(e){this.scrollbarState=e,this.root=e.root,this.scrollbarVis=e.scrollbarVis,this.scrollbar=e.scrollbarVis.scrollbar,this.handleResize=Se(()=>this.scrollbarState.onResize(),10),this.handleThumbPositionChange=this.scrollbarState.onThumbPositionChange,this.handleWheelScroll=this.scrollbarState.onWheelScroll,this.handleThumbPointerDown=this.scrollbarState.onThumbPointerDown,this.handleThumbPointerUp=this.scrollbarState.onThumbPointerUp,v(()=>{let e=this.maxScrollPos,t=this.scrollbar.opts.ref.current;return this.root.viewportNode,_(this.root.domContext.getDocument(),`wheel`,n=>{let r=n.target;t?.contains(r)&&this.handleWheelScroll(n,e)},{passive:!1})}),b(()=>{this.scrollbarVis.sizes,s(()=>this.handleThumbPositionChange())}),new Ge(()=>this.scrollbar.opts.ref.current,this.handleResize),new Ge(()=>this.root.contentNode,this.handleResize),this.onpointerdown=this.onpointerdown.bind(this),this.onpointermove=this.onpointermove.bind(this),this.onpointerup=this.onpointerup.bind(this),this.onlostpointercapture=this.onlostpointercapture.bind(this)}handleDragScroll(e){if(!this.rect)return;let t=e.clientX-this.rect.left,n=e.clientY-this.rect.top;this.scrollbarState.onDragScroll({x:t,y:n})}#r(){this.rect!==null&&(this.root.domContext.getDocument().body.style.webkitUserSelect=this.prevWebkitUserSelect,this.root.viewportNode&&(this.root.viewportNode.style.scrollBehavior=``),this.rect=null)}onpointerdown(e){e.button===0&&(e.target.setPointerCapture(e.pointerId),this.rect=this.scrollbar.opts.ref.current?.getBoundingClientRect()??null,this.prevWebkitUserSelect=this.root.domContext.getDocument().body.style.webkitUserSelect,this.root.domContext.getDocument().body.style.webkitUserSelect=`none`,this.root.viewportNode&&(this.root.viewportNode.style.scrollBehavior=`auto`),this.handleDragScroll(e))}onpointermove(e){this.handleDragScroll(e)}onpointerup(e){let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),this.#r()}onlostpointercapture(e){this.#r()}#i=L(()=>G({...this.scrollbarState.props,style:{position:`absolute`,...this.scrollbarState.props.style},[Xe.scrollbar]:``,onpointerdown:this.onpointerdown,onpointermove:this.onpointermove,onpointerup:this.onpointerup,onlostpointercapture:this.onlostpointercapture}));get props(){return g(this.#i)}set props(e){k(this.#i,e)}},ft=class e{static create(t){return new e(t,tt.get())}opts;scrollbarState;attachment;#e;#t=N();#n=Se(()=>{g(this.#t)&&(g(this.#t)(),k(this.#t,void 0))},100);constructor(e,t){this.opts=e,this.scrollbarState=t,this.#e=t.root,this.attachment=q(this.opts.ref,e=>this.scrollbarState.scrollbarVis.thumbNode=e),v(()=>{let e=this.#e.viewportNode;return e?(s(()=>this.scrollbarState.handleThumbPositionChange()),_(e,`scroll`,()=>{if(this.#n(),!g(this.#t)){let t=xt(e,this.scrollbarState.handleThumbPositionChange);k(this.#t,t,!0),this.scrollbarState.handleThumbPositionChange()}})):void 0}),this.onpointerdowncapture=this.onpointerdowncapture.bind(this),this.onpointerup=this.onpointerup.bind(this)}onpointerdowncapture(e){let t=e.target;if(!t)return;let n=t.getBoundingClientRect(),r=e.clientX-n.left,i=e.clientY-n.top;this.scrollbarState.handleThumbPointerDown({x:r,y:i})}onpointerup(e){this.scrollbarState.handleThumbPointerUp()}#r=L(()=>({id:this.opts.id.current,"data-state":this.scrollbarState.scrollbarVis.hasThumb?`visible`:`hidden`,style:{width:`var(--bits-scroll-area-thumb-width)`,height:`var(--bits-scroll-area-thumb-height)`,transform:this.scrollbarState.scrollbarVis.prevTransformStyle},onpointerdowncapture:this.onpointerdowncapture,onpointerup:this.onpointerup,[Xe.thumb]:``,...this.attachment}));get props(){return g(this.#r)}set props(e){k(this.#r,e)}},pt=class e{static create(t){return new e(t,Ze.get())}opts;root;attachment;#e=N(0);#t=N(0);#n=L(()=>!!(g(this.#e)&&g(this.#t)));get hasSize(){return g(this.#n)}set hasSize(e){k(this.#n,e)}constructor(e,t){this.opts=e,this.root=t,this.attachment=q(this.opts.ref),new Ge(()=>this.root.scrollbarXNode,()=>{let e=this.root.scrollbarXNode?.offsetHeight||0;this.root.cornerHeight=e,k(this.#t,e,!0)}),new Ge(()=>this.root.scrollbarYNode,()=>{let e=this.root.scrollbarYNode?.offsetWidth||0;this.root.cornerWidth=e,k(this.#e,e,!0)})}#r=L(()=>({id:this.opts.id.current,style:{width:g(this.#e),height:g(this.#t),position:`absolute`,right:this.root.opts.dir.current===`ltr`?0:void 0,left:this.root.opts.dir.current===`rtl`?0:void 0,bottom:0},[Xe.corner]:``,...this.attachment}));get props(){return g(this.#r)}set props(e){k(this.#r,e)}};function mt(e){return e?Number.parseInt(e,10):0}function ht(e,t){let n=e/t;return Number.isNaN(n)?0:n}function gt(e){let t=ht(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function _t({pointerPos:e,pointerOffset:t,sizes:n,dir:r=`ltr`}){let i=gt(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return yt([c,l],d)(e)}function vt({scrollPos:e,sizes:t,dir:n=`ltr`}){let r=gt(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=n===`ltr`?[0,o]:[o*-1,0],l=Je(e,c[0],c[1]);return yt([0,o],[0,s])(l)}function yt(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function bt(e,t){return e>0&&e<t}function xt(e,t){let n={left:e.scrollLeft,top:e.scrollTop},r=0,i=Pe(e);return(function a(){let o={left:e.scrollLeft,top:e.scrollTop},s=n.left!==o.left,c=n.top!==o.top;(s||c)&&t(),n=o,r=i.requestAnimationFrame(a)})(),()=>i.cancelAnimationFrame(r)}var St=f(`<div><!></div>`);function Ct(e,n){let r=o();A(n,!0);let i=S(n,`ref`,15,null),a=S(n,`id`,19,()=>ve(r)),s=S(n,`type`,3,`hover`),c=S(n,`dir`,3,`ltr`),f=S(n,`scrollHideDelay`,3,600),p=M(n,[`$$slots`,`$$events`,`$$legacy`,`ref`,`id`,`type`,`dir`,`scrollHideDelay`,`children`,`child`]),m=nt.create({type:X(()=>s()),dir:X(()=>c()),scrollHideDelay:X(()=>f()),id:X(()=>a()),ref:X(()=>i(),e=>i(e))}),h=L(()=>G(p,m.props));var _=u(),v=E(_),y=e=>{var t=u();B(E(t),()=>n.child,()=>({props:g(h)})),l(e,t)},b=e=>{var r=St();T(r,()=>({...g(h)})),B(t(r),()=>n.children??C),H(r),l(e,r)};d(v,e=>{n.child?e(y):e(b,-1)}),l(e,_),F()}var wt=f(`<div><div><!></div></div>`);function Tt(e,n){let r=o();A(n,!0);let i=S(n,`ref`,15,null),a=S(n,`id`,19,()=>ve(r)),s=M(n,[`$$slots`,`$$events`,`$$legacy`,`ref`,`id`,`children`]),c=rt.create({id:X(()=>a()),ref:X(()=>i(),e=>i(e))}),u=L(()=>G(s,c.props)),d=L(()=>G({},c.contentProps));var f=wt();T(f,()=>({...g(u)}));var p=t(f);T(p,()=>({...g(d)})),B(t(p),()=>n.children??C),H(p),H(f),l(e,f),F()}var Et=f(`<div><!></div>`);function Dt(e,n){A(n,!0);let r=M(n,[`$$slots`,`$$events`,`$$legacy`,`child`,`children`]),i=dt.create(),a=L(()=>G(r,i.props));var o=u(),s=E(o),c=e=>{var t=u();B(E(t),()=>n.child,()=>({props:g(a)})),l(e,t)},f=e=>{var r=Et();T(r,()=>({...g(a)})),B(t(r),()=>n.children??C),H(r),l(e,r)};d(s,e=>{n.child?e(c):e(f,-1)}),l(e,o),F()}function Ot(e,t){A(t,!0);let n=M(t,[`$$slots`,`$$events`,`$$legacy`]),r=new xe,i=lt.create({mounted:X(()=>r.current)}),a=L(()=>G(n,i.props));Dt(e,I(()=>g(a))),F()}function kt(e,t){A(t,!0);let n=M(t,[`$$slots`,`$$events`,`$$legacy`]),r=new xe,i=ut.create({mounted:X(()=>r.current)}),a=L(()=>G(n,i.props));Dt(e,I(()=>g(a))),F()}function At(e,t){A(t,!0);let n=M(t,[`$$slots`,`$$events`,`$$legacy`]),r=ct.create();var i=u(),a=E(i),o=e=>{Ot(e,I(()=>n))},s=e=>{kt(e,I(()=>n))};d(a,e=>{r.scrollbar.opts.orientation.current===`horizontal`?e(o):e(s,-1)}),l(e,i),F()}function jt(e,t){A(t,!0);let n=S(t,`forceMount`,3,!1),r=M(t,[`$$slots`,`$$events`,`$$legacy`,`forceMount`]),i=st.create(),a=L(()=>G(r,i.props));{let t=e=>{At(e,I(()=>g(a)))},r=L(()=>n()||i.isVisible);qe(e,{get open(){return g(r)},get ref(){return i.scrollbar.opts.ref},presence:t,$$slots:{presence:!0}})}F()}function Mt(e,t){A(t,!0);let n=S(t,`forceMount`,3,!1),r=M(t,[`$$slots`,`$$events`,`$$legacy`,`forceMount`]),i=ot.create(),a=L(()=>G(r,i.props));{let t=e=>{At(e,I(()=>g(a)))},r=L(()=>n()||!i.isHidden);qe(e,I(()=>g(a),{get open(){return g(r)},get ref(){return i.scrollbar.opts.ref},presence:t,$$slots:{presence:!0}}))}F()}function Nt(e,t){A(t,!0);let n=S(t,`forceMount`,3,!1),r=M(t,[`$$slots`,`$$events`,`$$legacy`,`forceMount`]),i=at.create(),a=st.create(),o=L(()=>G(r,i.props,a.props,{"data-state":i.isVisible?`visible`:`hidden`})),s=L(()=>n()||i.isVisible&&a.isVisible);qe(e,{get open(){return g(s)},get ref(){return a.scrollbar.opts.ref},presence:e=>{At(e,I(()=>g(o)))},$$slots:{presence:!0}}),F()}function Pt(e,t){let n=o();A(t,!0);let r=S(t,`ref`,15,null),i=S(t,`id`,19,()=>ve(n)),a=M(t,[`$$slots`,`$$events`,`$$legacy`,`ref`,`id`,`orientation`]),s=it.create({orientation:X(()=>t.orientation),id:X(()=>i()),ref:X(()=>r(),e=>r(e))}),c=L(()=>s.root.opts.type.current);var f=u(),p=E(f),m=e=>{Nt(e,I(()=>a,{get id(){return i()}}))},h=e=>{Mt(e,I(()=>a,{get id(){return i()}}))},_=e=>{jt(e,I(()=>a,{get id(){return i()}}))},v=e=>{At(e,I(()=>a,{get id(){return i()}}))};d(p,e=>{g(c)===`hover`?e(m):g(c)===`scroll`?e(h,1):g(c)===`auto`?e(_,2):g(c)===`always`&&e(v,3)}),l(e,f),F()}var Ft=f(`<div><!></div>`);function It(e,n){A(n,!0);let r=S(n,`ref`,15,null),i=M(n,[`$$slots`,`$$events`,`$$legacy`,`ref`,`id`,`child`,`children`,`present`]),a=new xe,o=ft.create({id:X(()=>n.id),ref:X(()=>r(),e=>r(e)),mounted:X(()=>a.current)}),s=L(()=>G(i,o.props,{style:{hidden:!n.present}}));var c=u(),f=E(c),p=e=>{var t=u();B(E(t),()=>n.child,()=>({props:g(s)})),l(e,t)},m=e=>{var r=Ft();T(r,()=>({...g(s)})),B(t(r),()=>n.children??C),H(r),l(e,r)};d(f,e=>{n.child?e(p):e(m,-1)}),l(e,c),F()}function Lt(e,t){let n=o();A(t,!0);let r=S(t,`id`,19,()=>ve(n)),i=S(t,`ref`,15,null),a=S(t,`forceMount`,3,!1),s=M(t,[`$$slots`,`$$events`,`$$legacy`,`id`,`ref`,`forceMount`]),c=$e.get();{let t=(e,t)=>{let n=()=>t?.().present;It(e,I(()=>s,{get id(){return r()},get present(){return n()},get ref(){return i()},set ref(e){i(e)}}))},n=L(()=>a()||c.hasThumb);qe(e,{get open(){return g(n)},get ref(){return c.scrollbar.opts.ref},presence:t,$$slots:{presence:!0}})}F()}var Rt=f(`<div><!></div>`);function zt(e,n){A(n,!0);let r=S(n,`ref`,15,null),i=M(n,[`$$slots`,`$$events`,`$$legacy`,`ref`,`id`,`children`,`child`]),a=pt.create({id:X(()=>n.id),ref:X(()=>r(),e=>r(e))}),o=L(()=>G(i,a.props));var s=u(),c=E(s),f=e=>{var t=u();B(E(t),()=>n.child,()=>({props:g(o)})),l(e,t)},p=e=>{var r=Rt();T(r,()=>({...g(o)})),B(t(r),()=>n.children??C),H(r),l(e,r)};d(c,e=>{n.child?e(f):e(p,-1)}),l(e,s),F()}function Bt(e,t){let n=o();A(t,!0);let r=S(t,`ref`,15,null),i=S(t,`id`,19,()=>ve(n)),a=M(t,[`$$slots`,`$$events`,`$$legacy`,`ref`,`id`]),s=Ze.get(),c=L(()=>!!(s.scrollbarXNode&&s.scrollbarYNode)),f=L(()=>s.opts.type.current!==`scroll`&&g(c));var p=u(),m=E(p),h=e=>{zt(e,I(()=>a,{get id(){return i()},get ref(){return r()},set ref(e){r(e)}}))};d(m,e=>{g(f)&&e(h)}),l(e,p),F()}var Vt=f(`<!> <!>`,1);function Ht(e,t){A(t,!0);let n=S(t,`ref`,15,null),r=S(t,`orientation`,3,`vertical`),a=M(t,[`$$slots`,`$$events`,`$$legacy`,`ref`,`class`,`orientation`,`children`]);var o=u(),s=E(o);{let e=L(()=>Ve(`flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent`,t.class));i(s,()=>Pt,(o,s)=>{s(o,I({"data-slot":`scroll-area-scrollbar`,get"data-orientation"(){return r()},get orientation(){return r()},get class(){return g(e)}},()=>a,{get ref(){return n()},set ref(e){n(e)},children:(e,n)=>{var r=Vt(),a=E(r);B(a,()=>t.children??C),i(R(a,2),()=>Lt,(e,t)=>{t(e,{"data-slot":`scroll-area-thumb`,class:`bg-border relative flex-1 rounded-full`})}),l(e,r)},$$slots:{default:!0}}))})}l(e,o),F()}var Ut=f(`<!> <!> <!> <!>`,1);function Wt(e,t){A(t,!0);let n=S(t,`ref`,15,null),r=S(t,`viewportRef`,15,null),a=S(t,`orientation`,3,`vertical`),o=S(t,`scrollbarXClasses`,3,``),s=S(t,`scrollbarYClasses`,3,``),c=M(t,[`$$slots`,`$$events`,`$$legacy`,`ref`,`viewportRef`,`class`,`orientation`,`scrollbarXClasses`,`scrollbarYClasses`,`children`]);var f=u(),p=E(f);{let e=L(()=>Ve(`relative overflow-hidden`,t.class));i(p,()=>Ct,(f,p)=>{p(f,I({"data-slot":`scroll-area`,get class(){return g(e)}},()=>c,{get ref(){return n()},set ref(e){n(e)},children:(e,n)=>{var c=Ut(),f=E(c);i(f,()=>Tt,(e,n)=>{n(e,{"data-slot":`scroll-area-viewport`,class:`cn-scroll-area-viewport focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1`,get ref(){return r()},set ref(e){r(e)},children:(e,n)=>{var r=u();B(E(r),()=>t.children??C),l(e,r)},$$slots:{default:!0}})});var p=R(f,2),m=e=>{Ht(e,{orientation:`vertical`,get class(){return s()}})};d(p,e=>{(a()===`vertical`||a()===`both`)&&e(m)});var h=R(p,2),g=e=>{Ht(e,{orientation:`horizontal`,get class(){return o()}})};d(h,e=>{(a()===`horizontal`||a()===`both`)&&e(g)}),i(R(h,2),()=>Bt,(e,t)=>{t(e,{})}),l(e,c)},$$slots:{default:!0}}))})}l(e,f),F()}function Gt(e){return!e||e.method===`input`?``:e.method===`editor`?e.prefill??``:``}var Kt=f(`<!> <!>`,1),qt=f(`<!> <!>`,1),Jt=f(`<!> <form class="flex flex-col gap-4"><!> <!></form>`,1),Yt=f(`<div class="text-muted-foreground mt-1 text-sm"> </div>`),Xt=f(`<div class="flex h-full items-center justify-center"><span class="text-muted-foreground text-sm">Loading editor…</span></div>`),Zt=f(`<form class="flex h-full min-h-0 flex-col"><header class="bg-background/95 sticky top-0 z-10 flex shrink-0 flex-col gap-2 border-b px-4 py-3 backdrop-blur sm:px-5" style="padding-top: max(0.75rem, env(safe-area-inset-top));"><div class="flex flex-col items-start gap-3 sm:flex-row sm:items-start sm:justify-between"><div class="w-full min-w-0 sm:w-auto"><div class="text-base font-semibold break-words"> </div> <!></div> <!></div></header> <div class="min-h-0 flex-1 overflow-hidden"><!></div> <div class="bg-background/95 sticky bottom-0 z-10 flex shrink-0 flex-col gap-2 border-t px-4 py-3 backdrop-blur sm:flex-row sm:items-center sm:justify-end sm:px-5" style="padding-bottom: max(0.75rem, env(safe-area-inset-bottom));"><!> <!></div></form>`);function Qt(e,a){A(a,!0);let o=Be(),s=N(!1),f=N(``),p=L(()=>{let e=$.viewedSessionId;return o.all.find(t=>!Re.has(t.method)&&t.sessionId===e)??null}),m=N(null),h=N(null);v(()=>{if(g(p)?.method===`editor`){let e=g(p).title,t=g(p).prefill;Promise.all([W(()=>import(`../chunks/uZO1iyJZ.js`),__vite__mapDeps([0,1,2,3]),import.meta.url),W(()=>import(`../chunks/CnTTbAN2.js`),__vite__mapDeps([4,5,2]),import.meta.url)]).then(([n,r])=>{k(m,n,!0),k(h,r.resolveEditorLanguage(e,t),!0)})}else k(m,null),k(h,null)}),v(()=>{g(p)?(k(f,Gt(g(p)),!0),k(s,!0)):k(s,!1)});function _(e){g(p)&&o.sendResponse(g(p).requestId,g(p).sessionId,e)}function b(){_({cancelled:!0})}function x(e){!e&&g(p)&&b()}function S(){_({value:g(f)})}function C(){_({value:g(f)})}var w=u();i(E(w),()=>me,(e,a)=>{a(e,{get open(){return g(s)},onOpenChange:x,children:(e,a)=>{var o=u(),s=E(o),_=e=>{var a=u();i(E(a),()=>pe,(e,a)=>{a(e,{class:`sm:max-w-md`,children:(e,a)=>{var o=Jt(),s=E(o);i(s,()=>K,(e,t)=>{t(e,{children:(e,t)=>{var r=Kt(),a=E(r);i(a,()=>fe,(e,t)=>{t(e,{children:(e,t)=>{z();var r=c();y(()=>n(r,g(p).title??`Extension`)),l(e,r)},$$slots:{default:!0}})});var o=R(a,2),s=e=>{var t=u();i(E(t),()=>se,(e,t)=>{t(e,{children:(e,t)=>{z();var r=c();y(()=>n(r,g(p).message)),l(e,r)},$$slots:{default:!0}})}),l(e,t)};d(o,e=>{g(p).message&&e(s)}),l(e,r)},$$slots:{default:!0}})});var m=R(s,2),h=t(m);{let e=L(()=>g(p).placeholder??``);_e(h,{get placeholder(){return g(e)},autofocus:!0,get value(){return g(f)},set value(e){k(f,e,!0)}})}i(R(h,2),()=>Oe,(e,t)=>{t(e,{children:(e,t)=>{var n=qt(),r=E(n);Y(r,{variant:`outline`,type:`button`,onclick:b,children:(e,t)=>{z(),l(e,c(`Cancel`))},$$slots:{default:!0}}),Y(R(r,2),{type:`submit`,children:(e,t)=>{z(),l(e,c(`Submit`))},$$slots:{default:!0}}),l(e,n)},$$slots:{default:!0}})}),H(m),r(`submit`,m,e=>{e.preventDefault(),S()}),l(e,o)},$$slots:{default:!0}})}),l(e,a)},v=e=>{var a=u();i(E(a),()=>pe,(e,a)=>{a(e,{showCloseButton:!1,class:`top-0 left-0 flex h-dvh w-screen max-w-none translate-x-0 translate-y-0 gap-0 rounded-none p-0 sm:top-1/2 sm:left-1/2 sm:h-[min(92dvh,960px)] sm:w-[min(96vw,1280px)] sm:max-w-[min(96vw,1280px)] sm:-translate-x-1/2 sm:-translate-y-1/2 sm:rounded-xl`,children:(e,a)=>{var o=Zt(),s=t(o),_=t(s),v=t(_),x=t(v),S=t(x,!0);H(x);var w=R(x,2),T=e=>{var r=Yt(),i=t(r,!0);H(r),y(()=>n(i,g(p).message)),l(e,r)};d(w,e=>{g(p).message&&e(T)}),H(v);var D=R(v,2),ee=e=>{Ce(e,{variant:`outline`,class:`max-w-full shrink-0 whitespace-nowrap`,children:(e,t)=>{z();var r=c();y(()=>n(r,g(h).label)),l(e,r)},$$slots:{default:!0}})};d(D,e=>{g(h)&&e(ee)}),H(_),H(s);var O=R(s,2),A=t(O),j=e=>{var t=u(),n=E(t);{let e=L(()=>g(h)?.id??null);i(n,()=>g(m).default,(t,n)=>{n(t,{get language(){return g(e)},get value(){return g(f)},set value(e){k(f,e,!0)}})})}l(e,t)},M=e=>{l(e,Xt())};d(A,e=>{g(m)?e(j):e(M,-1)}),H(O);var N=R(O,2),P=t(N);Y(P,{variant:`outline`,type:`button`,class:`w-full sm:w-auto`,onclick:b,children:(e,t)=>{z(),l(e,c(`Cancel`))},$$slots:{default:!0}}),Y(R(P,2),{type:`submit`,class:`w-full sm:w-auto`,children:(e,t)=>{z(),l(e,c(`Save`))},$$slots:{default:!0}}),H(N),H(o),y(()=>n(S,g(p).title??`Editor`)),r(`submit`,o,e=>{e.preventDefault(),C()}),l(e,o)},$$slots:{default:!0}})}),l(e,a)};d(s,e=>{g(p)?.method===`input`?e(_):g(p)?.method===`editor`&&e(v,1)}),l(e,o)},$$slots:{default:!0}})}),l(e,w),F()}function $t(e,t){let n=t.map(e=>e.trimEnd()),r=n.find(e=>e.trim().length>0),i=r&&n.length>1?r.trim():e,a=(r&&n.length>1?n.slice(n.indexOf(r)+1):n).filter(e=>e.trim().length>0).map(e=>({content:e,style:`text`}));return{id:`widget:${e}`,header:{title:i},body:a}}function en(e,t){A(t,!0);let n=M(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`}]];J(e,I({name:`circle-alert`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();B(E(r),()=>t.children??C),l(e,r)},$$slots:{default:!0}})),F()}function tn(e,t){A(t,!0);let n=M(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 16v-4`}],[`path`,{d:`M12 8h.01`}]];J(e,I({name:`info`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();B(E(r),()=>t.children??C),l(e,r)},$$slots:{default:!0}})),F()}function nn(e,t){A(t,!0);let n=M(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`}],[`path`,{d:`M12 9v4`}],[`path`,{d:`M12 17h.01`}]];J(e,I({name:`triangle-alert`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();B(E(r),()=>t.children??C),l(e,r)},$$slots:{default:!0}})),F()}var rn=f(`<span class="truncate"> </span>`),an=f(`<div class="border-border bg-muted/50 text-muted-foreground flex items-center gap-3 border-t px-4 py-1.5 text-xs"></div>`),on=f(`<button><!> <span> </span></button>`),sn=f(`<div class="pointer-events-none fixed top-4 left-1/2 z-50 flex -translate-x-1/2 flex-col items-center gap-2"></div>`),cn=f(`<!> <!>`,1);function ln(e,r){A(r,!0);let i=new He,a=N(j([])),o=0;function s(e,t=`info`){let n=o++;k(a,[...g(a),{id:n,text:e,notificationType:t}],!0),setTimeout(()=>{k(a,g(a).filter(e=>e.id!==n),!0)},5e3)}function c(e){k(a,g(a).filter(t=>t.id!==e),!0)}te(()=>Q.onEvent(e=>{if(e.type!==`extension_ui_request`)return;let t=e;if(t.method===`setStatus`){let e=t.key,n=t.text;n?i.set(e,n):i.delete(e)}else if(t.method===`setWidget`){let e=t.key,n=t.lines,r=t.sessionId;if(r){let t=$.sessions[r];t&&(n&&n.length>0?t.widgetCards[e]=$t(e,n):delete t.widgetCards[e],r===$.viewedSessionId&&$.syncViewedPanelStore())}}else if(t.method===`notify`)s(t.text??t.message??``,t.notifyType??t.notificationType??`info`);else if(t.method===`setEditorText`){let e=t.text??``,n=t.sessionId;if(n){let t=$.sessions[n];t&&(t.draftText=e),Ee(n,e)}}else if(t.method===`setTitle`){let e=t.title??``,n=t.sessionId;if(n){let t=$.sessions[n];t&&(t.extensionTitle=e||null)}}}));let u=L(()=>[...i.entries()]);var f=cn(),p=E(f),m=e=>{var r=an();h(r,21,()=>g(u),([e,t])=>e,(e,r)=>{var i=L(()=>ie(g(r),2));let a=()=>g(i)[1];var o=rn(),s=t(o,!0);H(o),y(()=>n(s,a())),l(e,o)}),H(r),l(e,r)};d(p,e=>{g(u).length>0&&e(m)});var _=R(p,2),v=e=>{var r=sn();h(r,21,()=>g(a),e=>e.id,(e,r)=>{var i=on(),a=t(i),o=e=>{en(e,{class:`size-4 shrink-0`})},s=e=>{nn(e,{class:`size-4 shrink-0`})},u=e=>{tn(e,{class:`size-4 shrink-0`})};d(a,e=>{g(r).notificationType===`error`?e(o):g(r).notificationType===`warning`?e(s,1):e(u,-1)});var f=R(a,2),p=t(f,!0);H(f),H(i),y(()=>{V(i,1,`pointer-events-auto flex items-center gap-2 rounded-lg border px-4 py-2.5 text-sm shadow-lg transition-opacity
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../chunks/uZO1iyJZ.js","../chunks/B8lQCytv.js","../chunks/5FogVG_p.js","../chunks/D1hYfEew.js","../chunks/CnTTbAN2.js","../chunks/BgJ-X-tf.js","../chunks/D1INvMB9.js","../chunks/CklMSqcv.js","../chunks/-Lc-U-GJ.js"])))=>i.map(i=>d[i]);
2
+ import{n as e}from"../chunks/5FogVG_p.js";import{$ as t,A as n,B as r,C as i,E as a,I as o,K as s,L as c,M as l,N as u,O as d,P as f,Q as p,R as m,T as h,U as g,V as _,X as v,Y as y,Z as b,_ as x,a as S,bt as C,c as w,d as T,et as E,f as D,g as ee,h as O,it as k,mt as A,nt as j,o as M,ot as N,p as P,pt as F,r as te,s as I,st as L,tt as R,u as ne,v as re,vt as z,w as B,xt as ie,y as V,yt as H,z as U}from"../chunks/B8lQCytv.js";import{t as W}from"../chunks/CHncfsjL.js";import"../chunks/D1hYfEew.js";import{$ as G,A as K,B as ae,C as oe,D as se,E as ce,G as q,H as le,J as ue,K as de,L as J,M as Y,N as fe,O as pe,P as me,Q as he,R as ge,T as _e,V as ve,W as ye,X as be,Y as xe,Z as Se,_ as Ce,b as we,et as Te,h as Ee,i as De,j as Oe,k as ke,m as Ae,n as je,nt as Me,o as Ne,q as Pe,r as Fe,s as Ie,t as Le,tt as X,u as Z,v as Re,w as ze,y as Be,z as Ve}from"../chunks/D1vhgXpq.js";import{_ as He,d as Q,l as Ue,s as $}from"../chunks/CklMSqcv.js";var We=e({prerender:()=>!1,ssr:()=>!1}),Ge=class{#e;#t;constructor(e,t){this.#e=e,this.#t=t,this.handler=this.handler.bind(this),v(this.handler)}handler(){let e=0,t=this.#e();if(!t)return;let n=new ResizeObserver(()=>{cancelAnimationFrame(e),e=window.requestAnimationFrame(this.#t)});return n.observe(t),()=>{window.cancelAnimationFrame(e),n.unobserve(t)}}},Ke=class{opts;present;#e;#t=N(!1);#n=!1;#r=N(void 0);#i=null;constructor(e){this.opts=e,this.present=this.opts.open,k(this.#t,e.open.current,!0),this.#e=new le({ref:this.opts.ref,afterTick:this.opts.open}),ue(()=>this.#o()),be(()=>this.present.current,e=>{if(!this.#n){this.#n=!0;return}this.#o(),e&&k(this.#t,!0),k(this.#r,e?`starting`:`ending`,!0),e&&(this.#i=window.requestAnimationFrame(()=>{this.#i=null,this.present.current&&k(this.#r,void 0)})),this.#e.run(()=>{e===this.present.current&&(e||k(this.#t,!1),k(this.#r,void 0))})})}#a=L(()=>g(this.#t));get isPresent(){return g(this.#a)}set isPresent(e){k(this.#a,e)}get transitionStatus(){return g(this.#r)}#o(){this.#i!==null&&(window.cancelAnimationFrame(this.#i),this.#i=null)}};function qe(e,t){A(t,!0);let n=new Ke({open:X(()=>t.open),ref:t.ref});var r=u(),i=E(r),a=e=>{var r=u();B(E(r),()=>t.presence??C,()=>({present:n.isPresent,transitionStatus:n.transitionStatus})),l(e,r)};d(i,e=>{(t.forceMount||t.open||n.isPresent)&&e(a)}),l(e,r),F()}function Je(e,t,n){return Math.min(n,Math.max(t,e))}var Ye=class{state;#e;constructor(e,t){this.state=Me(e),this.#e=t,this.dispatch=this.dispatch.bind(this)}#t(e){return this.#e[this.state.current][e]??this.state.current}dispatch(e){this.state.current=this.#t(e)}},Xe=ye({component:`scroll-area`,parts:[`root`,`viewport`,`corner`,`thumb`,`scrollbar`]}),Ze=new he(`ScrollArea.Root`),Qe=new he(`ScrollArea.Scrollbar`),$e=new he(`ScrollArea.ScrollbarVisible`),et=new he(`ScrollArea.ScrollbarAxis`),tt=new he(`ScrollArea.ScrollbarShared`),nt=class e{static create(t){return Ze.set(new e(t))}opts;attachment;#e=N(null);get scrollAreaNode(){return g(this.#e)}set scrollAreaNode(e){k(this.#e,e,!0)}#t=N(null);get viewportNode(){return g(this.#t)}set viewportNode(e){k(this.#t,e,!0)}#n=N(null);get contentNode(){return g(this.#n)}set contentNode(e){k(this.#n,e,!0)}#r=N(null);get scrollbarXNode(){return g(this.#r)}set scrollbarXNode(e){k(this.#r,e,!0)}#i=N(null);get scrollbarYNode(){return g(this.#i)}set scrollbarYNode(e){k(this.#i,e,!0)}#a=N(0);get cornerWidth(){return g(this.#a)}set cornerWidth(e){k(this.#a,e,!0)}#o=N(0);get cornerHeight(){return g(this.#o)}set cornerHeight(e){k(this.#o,e,!0)}#s=N(!1);get scrollbarXEnabled(){return g(this.#s)}set scrollbarXEnabled(e){k(this.#s,e,!0)}#c=N(!1);get scrollbarYEnabled(){return g(this.#c)}set scrollbarYEnabled(e){k(this.#c,e,!0)}domContext;constructor(e){this.opts=e,this.attachment=q(e.ref,e=>this.scrollAreaNode=e),this.domContext=new de(e.ref)}#l=L(()=>({id:this.opts.id.current,dir:this.opts.dir.current,style:{position:`relative`,"--bits-scroll-area-corner-height":`${this.cornerHeight}px`,"--bits-scroll-area-corner-width":`${this.cornerWidth}px`},[Xe.root]:``,...this.attachment}));get props(){return g(this.#l)}set props(e){k(this.#l,e)}},rt=class e{static create(t){return new e(t,Ze.get())}opts;root;attachment;#e=Me(ae());#t=Me(null);contentAttachment=q(this.#t,e=>this.root.contentNode=e);constructor(e,t){this.opts=e,this.root=t,this.attachment=q(e.ref,e=>this.root.viewportNode=e)}#n=L(()=>({id:this.opts.id.current,style:{overflowX:this.root.scrollbarXEnabled?`scroll`:`hidden`,overflowY:this.root.scrollbarYEnabled?`scroll`:`hidden`},[Xe.viewport]:``,...this.attachment}));get props(){return g(this.#n)}set props(e){k(this.#n,e)}#r=L(()=>({id:this.#e.current,"data-scroll-area-content":``,style:{minWidth:this.root.scrollbarXEnabled?`fit-content`:void 0},...this.contentAttachment}));get contentProps(){return g(this.#r)}set contentProps(e){k(this.#r,e)}},it=class e{static create(t){return Qe.set(new e(t,Ze.get()))}opts;root;#e=L(()=>this.opts.orientation.current===`horizontal`);get isHorizontal(){return g(this.#e)}set isHorizontal(e){k(this.#e,e)}#t=N(!1);get hasThumb(){return g(this.#t)}set hasThumb(e){k(this.#t,e,!0)}constructor(e,t){this.opts=e,this.root=t,be(()=>this.isHorizontal,e=>e?(this.root.scrollbarXEnabled=!0,()=>{this.root.scrollbarXEnabled=!1}):(this.root.scrollbarYEnabled=!0,()=>{this.root.scrollbarYEnabled=!1}))}},at=class e{static create(){return new e(Qe.get())}scrollbar;root;#e=N(!1);get isVisible(){return g(this.#e)}set isVisible(e){k(this.#e,e,!0)}constructor(e){this.scrollbar=e,this.root=e.root,v(()=>{let e=this.root.scrollAreaNode,t=this.root.opts.scrollHideDelay.current,n=0;if(!e)return;let r=Te(_(e,`pointerenter`,()=>{this.root.domContext.clearTimeout(n),s(()=>this.isVisible=!0)}),_(e,`pointerleave`,()=>{n&&this.root.domContext.clearTimeout(n),n=this.root.domContext.setTimeout(()=>{s(()=>{this.scrollbar.hasThumb=!1,this.isVisible=!1})},t)}));return()=>{this.root.domContext.getWindow().clearTimeout(n),r()}})}#t=L(()=>({"data-state":this.isVisible?`visible`:`hidden`}));get props(){return g(this.#t)}set props(e){k(this.#t,e)}},ot=class e{static create(){return new e(Qe.get())}scrollbar;root;machine=new Ye(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}});#e=L(()=>this.machine.state.current===`hidden`);get isHidden(){return g(this.#e)}set isHidden(e){k(this.#e,e)}constructor(e){this.scrollbar=e,this.root=e.root;let t=Se(()=>this.machine.dispatch(`SCROLL_END`),100);v(()=>{let e=this.machine.state.current,t=this.root.opts.scrollHideDelay.current;if(e===`idle`){let e=this.root.domContext.setTimeout(()=>this.machine.dispatch(`HIDE`),t);return()=>this.root.domContext.clearTimeout(e)}}),v(()=>{let e=this.root.viewportNode;if(!e)return;let n=this.scrollbar.isHorizontal?`scrollLeft`:`scrollTop`,r=e[n];return _(e,`scroll`,()=>{let i=e[n];r!==i&&(this.machine.dispatch(`SCROLL`),t()),r=i})}),this.onpointerenter=this.onpointerenter.bind(this),this.onpointerleave=this.onpointerleave.bind(this)}onpointerenter(e){this.machine.dispatch(`POINTER_ENTER`)}onpointerleave(e){this.machine.dispatch(`POINTER_LEAVE`)}#t=L(()=>({"data-state":this.machine.state.current===`hidden`?`hidden`:`visible`,onpointerenter:this.onpointerenter,onpointerleave:this.onpointerleave}));get props(){return g(this.#t)}set props(e){k(this.#t,e)}},st=class e{static create(){return new e(Qe.get())}scrollbar;root;#e=N(!1);get isVisible(){return g(this.#e)}set isVisible(e){k(this.#e,e,!0)}constructor(e){this.scrollbar=e,this.root=e.root;let t=Se(()=>{let e=this.root.viewportNode;if(!e)return;let t=e.offsetWidth<e.scrollWidth,n=e.offsetHeight<e.scrollHeight;this.isVisible=this.scrollbar.isHorizontal?t:n},10);new Ge(()=>this.root.viewportNode,t),new Ge(()=>this.root.contentNode,t)}#t=L(()=>({"data-state":this.isVisible?`visible`:`hidden`}));get props(){return g(this.#t)}set props(e){k(this.#t,e)}},ct=class e{static create(){return $e.set(new e(Qe.get()))}scrollbar;root;#e=N(null);get thumbNode(){return g(this.#e)}set thumbNode(e){k(this.#e,e,!0)}#t=N(0);get pointerOffset(){return g(this.#t)}set pointerOffset(e){k(this.#t,e,!0)}#n=N({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}});get sizes(){return g(this.#n)}set sizes(e){k(this.#n,e)}#r=L(()=>ht(this.sizes.viewport,this.sizes.content));get thumbRatio(){return g(this.#r)}set thumbRatio(e){k(this.#r,e)}#i=L(()=>this.thumbRatio>0&&this.thumbRatio<1);get hasThumb(){return g(this.#i)}set hasThumb(e){k(this.#i,e)}#a=N(``);get prevTransformStyle(){return g(this.#a)}set prevTransformStyle(e){k(this.#a,e,!0)}constructor(e){this.scrollbar=e,this.root=e.root,v(()=>{this.scrollbar.hasThumb=this.hasThumb}),v(()=>{!this.scrollbar.hasThumb&&this.thumbNode&&(this.prevTransformStyle=this.thumbNode.style.transform)})}setSizes(e){this.sizes=e}getScrollPosition(e,t){return _t({pointerPos:e,pointerOffset:this.pointerOffset,sizes:this.sizes,dir:t})}onThumbPointerUp(){this.pointerOffset=0}onThumbPointerDown(e){this.pointerOffset=e}xOnThumbPositionChange(){if(!(this.root.viewportNode&&this.thumbNode))return;let e=this.root.viewportNode.scrollLeft,t=`translate3d(${vt({scrollPos:e,sizes:this.sizes,dir:this.root.opts.dir.current})}px, 0, 0)`;this.thumbNode.style.transform=t,this.prevTransformStyle=t}xOnWheelScroll(e){this.root.viewportNode&&(this.root.viewportNode.scrollLeft=e)}xOnDragScroll(e){this.root.viewportNode&&(this.root.viewportNode.scrollLeft=this.getScrollPosition(e,this.root.opts.dir.current))}yOnThumbPositionChange(){if(!(this.root.viewportNode&&this.thumbNode))return;let e=this.root.viewportNode.scrollTop,t=`translate3d(0, ${vt({scrollPos:e,sizes:this.sizes})}px, 0)`;this.thumbNode.style.transform=t,this.prevTransformStyle=t}yOnWheelScroll(e){this.root.viewportNode&&(this.root.viewportNode.scrollTop=e)}yOnDragScroll(e){this.root.viewportNode&&(this.root.viewportNode.scrollTop=this.getScrollPosition(e,this.root.opts.dir.current))}},lt=class e{static create(t){return et.set(new e(t,$e.get()))}opts;scrollbarVis;root;scrollbar;attachment;#e=N();get computedStyle(){return g(this.#e)}set computedStyle(e){k(this.#e,e,!0)}constructor(e,t){this.opts=e,this.scrollbarVis=t,this.root=t.root,this.scrollbar=t.scrollbar,this.attachment=q(this.scrollbar.opts.ref,e=>this.root.scrollbarXNode=e),v(()=>{this.scrollbar.opts.ref.current&&this.opts.mounted.current&&(this.computedStyle=getComputedStyle(this.scrollbar.opts.ref.current))}),v(()=>{this.onResize()})}onThumbPointerDown=e=>{this.scrollbarVis.onThumbPointerDown(e.x)};onDragScroll=e=>{this.scrollbarVis.xOnDragScroll(e.x)};onThumbPointerUp=()=>{this.scrollbarVis.onThumbPointerUp()};onThumbPositionChange=()=>{this.scrollbarVis.xOnThumbPositionChange()};onWheelScroll=(e,t)=>{if(!this.root.viewportNode)return;let n=this.root.viewportNode.scrollLeft+e.deltaX;this.scrollbarVis.xOnWheelScroll(n),bt(n,t)&&e.preventDefault()};onResize=()=>{this.scrollbar.opts.ref.current&&this.root.viewportNode&&this.computedStyle&&this.scrollbarVis.setSizes({content:this.root.viewportNode.scrollWidth,viewport:this.root.viewportNode.offsetWidth,scrollbar:{size:this.scrollbar.opts.ref.current.clientWidth,paddingStart:mt(this.computedStyle.paddingLeft),paddingEnd:mt(this.computedStyle.paddingRight)}})};#t=L(()=>gt(this.scrollbarVis.sizes));get thumbSize(){return g(this.#t)}set thumbSize(e){k(this.#t,e)}#n=L(()=>({id:this.scrollbar.opts.id.current,"data-orientation":`horizontal`,style:{bottom:0,left:this.root.opts.dir.current===`rtl`?`var(--bits-scroll-area-corner-width)`:0,right:this.root.opts.dir.current===`ltr`?`var(--bits-scroll-area-corner-width)`:0,"--bits-scroll-area-thumb-width":`${this.thumbSize}px`},...this.attachment}));get props(){return g(this.#n)}set props(e){k(this.#n,e)}},ut=class e{static create(t){return et.set(new e(t,$e.get()))}opts;scrollbarVis;root;scrollbar;attachment;#e=N();get computedStyle(){return g(this.#e)}set computedStyle(e){k(this.#e,e,!0)}constructor(e,t){this.opts=e,this.scrollbarVis=t,this.root=t.root,this.scrollbar=t.scrollbar,this.attachment=q(this.scrollbar.opts.ref,e=>this.root.scrollbarYNode=e),v(()=>{this.scrollbar.opts.ref.current&&this.opts.mounted.current&&(this.computedStyle=getComputedStyle(this.scrollbar.opts.ref.current))}),v(()=>{this.onResize()}),this.onThumbPointerDown=this.onThumbPointerDown.bind(this),this.onDragScroll=this.onDragScroll.bind(this),this.onThumbPointerUp=this.onThumbPointerUp.bind(this),this.onThumbPositionChange=this.onThumbPositionChange.bind(this),this.onWheelScroll=this.onWheelScroll.bind(this),this.onResize=this.onResize.bind(this)}onThumbPointerDown(e){this.scrollbarVis.onThumbPointerDown(e.y)}onDragScroll(e){this.scrollbarVis.yOnDragScroll(e.y)}onThumbPointerUp(){this.scrollbarVis.onThumbPointerUp()}onThumbPositionChange(){this.scrollbarVis.yOnThumbPositionChange()}onWheelScroll(e,t){if(!this.root.viewportNode)return;let n=this.root.viewportNode.scrollTop+e.deltaY;this.scrollbarVis.yOnWheelScroll(n),bt(n,t)&&e.preventDefault()}onResize(){this.scrollbar.opts.ref.current&&this.root.viewportNode&&this.computedStyle&&this.scrollbarVis.setSizes({content:this.root.viewportNode.scrollHeight,viewport:this.root.viewportNode.offsetHeight,scrollbar:{size:this.scrollbar.opts.ref.current.clientHeight,paddingStart:mt(this.computedStyle.paddingTop),paddingEnd:mt(this.computedStyle.paddingBottom)}})}#t=L(()=>gt(this.scrollbarVis.sizes));get thumbSize(){return g(this.#t)}set thumbSize(e){k(this.#t,e)}#n=L(()=>({id:this.scrollbar.opts.id.current,"data-orientation":`vertical`,style:{top:0,right:this.root.opts.dir.current===`ltr`?0:void 0,left:this.root.opts.dir.current===`rtl`?0:void 0,bottom:`var(--bits-scroll-area-corner-height)`,"--bits-scroll-area-thumb-height":`${this.thumbSize}px`},...this.attachment}));get props(){return g(this.#n)}set props(e){k(this.#n,e)}},dt=class e{static create(){return tt.set(new e(et.get()))}scrollbarState;root;scrollbarVis;scrollbar;#e=N(null);get rect(){return g(this.#e)}set rect(e){k(this.#e,e)}#t=N(``);get prevWebkitUserSelect(){return g(this.#t)}set prevWebkitUserSelect(e){k(this.#t,e,!0)}handleResize;handleThumbPositionChange;handleWheelScroll;handleThumbPointerDown;handleThumbPointerUp;#n=L(()=>this.scrollbarVis.sizes.content-this.scrollbarVis.sizes.viewport);get maxScrollPos(){return g(this.#n)}set maxScrollPos(e){k(this.#n,e)}constructor(e){this.scrollbarState=e,this.root=e.root,this.scrollbarVis=e.scrollbarVis,this.scrollbar=e.scrollbarVis.scrollbar,this.handleResize=Se(()=>this.scrollbarState.onResize(),10),this.handleThumbPositionChange=this.scrollbarState.onThumbPositionChange,this.handleWheelScroll=this.scrollbarState.onWheelScroll,this.handleThumbPointerDown=this.scrollbarState.onThumbPointerDown,this.handleThumbPointerUp=this.scrollbarState.onThumbPointerUp,v(()=>{let e=this.maxScrollPos,t=this.scrollbar.opts.ref.current;return this.root.viewportNode,_(this.root.domContext.getDocument(),`wheel`,n=>{let r=n.target;t?.contains(r)&&this.handleWheelScroll(n,e)},{passive:!1})}),b(()=>{this.scrollbarVis.sizes,s(()=>this.handleThumbPositionChange())}),new Ge(()=>this.scrollbar.opts.ref.current,this.handleResize),new Ge(()=>this.root.contentNode,this.handleResize),this.onpointerdown=this.onpointerdown.bind(this),this.onpointermove=this.onpointermove.bind(this),this.onpointerup=this.onpointerup.bind(this),this.onlostpointercapture=this.onlostpointercapture.bind(this)}handleDragScroll(e){if(!this.rect)return;let t=e.clientX-this.rect.left,n=e.clientY-this.rect.top;this.scrollbarState.onDragScroll({x:t,y:n})}#r(){this.rect!==null&&(this.root.domContext.getDocument().body.style.webkitUserSelect=this.prevWebkitUserSelect,this.root.viewportNode&&(this.root.viewportNode.style.scrollBehavior=``),this.rect=null)}onpointerdown(e){e.button===0&&(e.target.setPointerCapture(e.pointerId),this.rect=this.scrollbar.opts.ref.current?.getBoundingClientRect()??null,this.prevWebkitUserSelect=this.root.domContext.getDocument().body.style.webkitUserSelect,this.root.domContext.getDocument().body.style.webkitUserSelect=`none`,this.root.viewportNode&&(this.root.viewportNode.style.scrollBehavior=`auto`),this.handleDragScroll(e))}onpointermove(e){this.handleDragScroll(e)}onpointerup(e){let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),this.#r()}onlostpointercapture(e){this.#r()}#i=L(()=>G({...this.scrollbarState.props,style:{position:`absolute`,...this.scrollbarState.props.style},[Xe.scrollbar]:``,onpointerdown:this.onpointerdown,onpointermove:this.onpointermove,onpointerup:this.onpointerup,onlostpointercapture:this.onlostpointercapture}));get props(){return g(this.#i)}set props(e){k(this.#i,e)}},ft=class e{static create(t){return new e(t,tt.get())}opts;scrollbarState;attachment;#e;#t=N();#n=Se(()=>{g(this.#t)&&(g(this.#t)(),k(this.#t,void 0))},100);constructor(e,t){this.opts=e,this.scrollbarState=t,this.#e=t.root,this.attachment=q(this.opts.ref,e=>this.scrollbarState.scrollbarVis.thumbNode=e),v(()=>{let e=this.#e.viewportNode;return e?(s(()=>this.scrollbarState.handleThumbPositionChange()),_(e,`scroll`,()=>{if(this.#n(),!g(this.#t)){let t=xt(e,this.scrollbarState.handleThumbPositionChange);k(this.#t,t,!0),this.scrollbarState.handleThumbPositionChange()}})):void 0}),this.onpointerdowncapture=this.onpointerdowncapture.bind(this),this.onpointerup=this.onpointerup.bind(this)}onpointerdowncapture(e){let t=e.target;if(!t)return;let n=t.getBoundingClientRect(),r=e.clientX-n.left,i=e.clientY-n.top;this.scrollbarState.handleThumbPointerDown({x:r,y:i})}onpointerup(e){this.scrollbarState.handleThumbPointerUp()}#r=L(()=>({id:this.opts.id.current,"data-state":this.scrollbarState.scrollbarVis.hasThumb?`visible`:`hidden`,style:{width:`var(--bits-scroll-area-thumb-width)`,height:`var(--bits-scroll-area-thumb-height)`,transform:this.scrollbarState.scrollbarVis.prevTransformStyle},onpointerdowncapture:this.onpointerdowncapture,onpointerup:this.onpointerup,[Xe.thumb]:``,...this.attachment}));get props(){return g(this.#r)}set props(e){k(this.#r,e)}},pt=class e{static create(t){return new e(t,Ze.get())}opts;root;attachment;#e=N(0);#t=N(0);#n=L(()=>!!(g(this.#e)&&g(this.#t)));get hasSize(){return g(this.#n)}set hasSize(e){k(this.#n,e)}constructor(e,t){this.opts=e,this.root=t,this.attachment=q(this.opts.ref),new Ge(()=>this.root.scrollbarXNode,()=>{let e=this.root.scrollbarXNode?.offsetHeight||0;this.root.cornerHeight=e,k(this.#t,e,!0)}),new Ge(()=>this.root.scrollbarYNode,()=>{let e=this.root.scrollbarYNode?.offsetWidth||0;this.root.cornerWidth=e,k(this.#e,e,!0)})}#r=L(()=>({id:this.opts.id.current,style:{width:g(this.#e),height:g(this.#t),position:`absolute`,right:this.root.opts.dir.current===`ltr`?0:void 0,left:this.root.opts.dir.current===`rtl`?0:void 0,bottom:0},[Xe.corner]:``,...this.attachment}));get props(){return g(this.#r)}set props(e){k(this.#r,e)}};function mt(e){return e?Number.parseInt(e,10):0}function ht(e,t){let n=e/t;return Number.isNaN(n)?0:n}function gt(e){let t=ht(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function _t({pointerPos:e,pointerOffset:t,sizes:n,dir:r=`ltr`}){let i=gt(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return yt([c,l],d)(e)}function vt({scrollPos:e,sizes:t,dir:n=`ltr`}){let r=gt(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=n===`ltr`?[0,o]:[o*-1,0],l=Je(e,c[0],c[1]);return yt([0,o],[0,s])(l)}function yt(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function bt(e,t){return e>0&&e<t}function xt(e,t){let n={left:e.scrollLeft,top:e.scrollTop},r=0,i=Pe(e);return(function a(){let o={left:e.scrollLeft,top:e.scrollTop},s=n.left!==o.left,c=n.top!==o.top;(s||c)&&t(),n=o,r=i.requestAnimationFrame(a)})(),()=>i.cancelAnimationFrame(r)}var St=f(`<div><!></div>`);function Ct(e,n){let r=o();A(n,!0);let i=S(n,`ref`,15,null),a=S(n,`id`,19,()=>ve(r)),s=S(n,`type`,3,`hover`),c=S(n,`dir`,3,`ltr`),f=S(n,`scrollHideDelay`,3,600),p=M(n,[`$$slots`,`$$events`,`$$legacy`,`ref`,`id`,`type`,`dir`,`scrollHideDelay`,`children`,`child`]),m=nt.create({type:X(()=>s()),dir:X(()=>c()),scrollHideDelay:X(()=>f()),id:X(()=>a()),ref:X(()=>i(),e=>i(e))}),h=L(()=>G(p,m.props));var _=u(),v=E(_),y=e=>{var t=u();B(E(t),()=>n.child,()=>({props:g(h)})),l(e,t)},b=e=>{var r=St();T(r,()=>({...g(h)})),B(t(r),()=>n.children??C),H(r),l(e,r)};d(v,e=>{n.child?e(y):e(b,-1)}),l(e,_),F()}var wt=f(`<div><div><!></div></div>`);function Tt(e,n){let r=o();A(n,!0);let i=S(n,`ref`,15,null),a=S(n,`id`,19,()=>ve(r)),s=M(n,[`$$slots`,`$$events`,`$$legacy`,`ref`,`id`,`children`]),c=rt.create({id:X(()=>a()),ref:X(()=>i(),e=>i(e))}),u=L(()=>G(s,c.props)),d=L(()=>G({},c.contentProps));var f=wt();T(f,()=>({...g(u)}));var p=t(f);T(p,()=>({...g(d)})),B(t(p),()=>n.children??C),H(p),H(f),l(e,f),F()}var Et=f(`<div><!></div>`);function Dt(e,n){A(n,!0);let r=M(n,[`$$slots`,`$$events`,`$$legacy`,`child`,`children`]),i=dt.create(),a=L(()=>G(r,i.props));var o=u(),s=E(o),c=e=>{var t=u();B(E(t),()=>n.child,()=>({props:g(a)})),l(e,t)},f=e=>{var r=Et();T(r,()=>({...g(a)})),B(t(r),()=>n.children??C),H(r),l(e,r)};d(s,e=>{n.child?e(c):e(f,-1)}),l(e,o),F()}function Ot(e,t){A(t,!0);let n=M(t,[`$$slots`,`$$events`,`$$legacy`]),r=new xe,i=lt.create({mounted:X(()=>r.current)}),a=L(()=>G(n,i.props));Dt(e,I(()=>g(a))),F()}function kt(e,t){A(t,!0);let n=M(t,[`$$slots`,`$$events`,`$$legacy`]),r=new xe,i=ut.create({mounted:X(()=>r.current)}),a=L(()=>G(n,i.props));Dt(e,I(()=>g(a))),F()}function At(e,t){A(t,!0);let n=M(t,[`$$slots`,`$$events`,`$$legacy`]),r=ct.create();var i=u(),a=E(i),o=e=>{Ot(e,I(()=>n))},s=e=>{kt(e,I(()=>n))};d(a,e=>{r.scrollbar.opts.orientation.current===`horizontal`?e(o):e(s,-1)}),l(e,i),F()}function jt(e,t){A(t,!0);let n=S(t,`forceMount`,3,!1),r=M(t,[`$$slots`,`$$events`,`$$legacy`,`forceMount`]),i=st.create(),a=L(()=>G(r,i.props));{let t=e=>{At(e,I(()=>g(a)))},r=L(()=>n()||i.isVisible);qe(e,{get open(){return g(r)},get ref(){return i.scrollbar.opts.ref},presence:t,$$slots:{presence:!0}})}F()}function Mt(e,t){A(t,!0);let n=S(t,`forceMount`,3,!1),r=M(t,[`$$slots`,`$$events`,`$$legacy`,`forceMount`]),i=ot.create(),a=L(()=>G(r,i.props));{let t=e=>{At(e,I(()=>g(a)))},r=L(()=>n()||!i.isHidden);qe(e,I(()=>g(a),{get open(){return g(r)},get ref(){return i.scrollbar.opts.ref},presence:t,$$slots:{presence:!0}}))}F()}function Nt(e,t){A(t,!0);let n=S(t,`forceMount`,3,!1),r=M(t,[`$$slots`,`$$events`,`$$legacy`,`forceMount`]),i=at.create(),a=st.create(),o=L(()=>G(r,i.props,a.props,{"data-state":i.isVisible?`visible`:`hidden`})),s=L(()=>n()||i.isVisible&&a.isVisible);qe(e,{get open(){return g(s)},get ref(){return a.scrollbar.opts.ref},presence:e=>{At(e,I(()=>g(o)))},$$slots:{presence:!0}}),F()}function Pt(e,t){let n=o();A(t,!0);let r=S(t,`ref`,15,null),i=S(t,`id`,19,()=>ve(n)),a=M(t,[`$$slots`,`$$events`,`$$legacy`,`ref`,`id`,`orientation`]),s=it.create({orientation:X(()=>t.orientation),id:X(()=>i()),ref:X(()=>r(),e=>r(e))}),c=L(()=>s.root.opts.type.current);var f=u(),p=E(f),m=e=>{Nt(e,I(()=>a,{get id(){return i()}}))},h=e=>{Mt(e,I(()=>a,{get id(){return i()}}))},_=e=>{jt(e,I(()=>a,{get id(){return i()}}))},v=e=>{At(e,I(()=>a,{get id(){return i()}}))};d(p,e=>{g(c)===`hover`?e(m):g(c)===`scroll`?e(h,1):g(c)===`auto`?e(_,2):g(c)===`always`&&e(v,3)}),l(e,f),F()}var Ft=f(`<div><!></div>`);function It(e,n){A(n,!0);let r=S(n,`ref`,15,null),i=M(n,[`$$slots`,`$$events`,`$$legacy`,`ref`,`id`,`child`,`children`,`present`]),a=new xe,o=ft.create({id:X(()=>n.id),ref:X(()=>r(),e=>r(e)),mounted:X(()=>a.current)}),s=L(()=>G(i,o.props,{style:{hidden:!n.present}}));var c=u(),f=E(c),p=e=>{var t=u();B(E(t),()=>n.child,()=>({props:g(s)})),l(e,t)},m=e=>{var r=Ft();T(r,()=>({...g(s)})),B(t(r),()=>n.children??C),H(r),l(e,r)};d(f,e=>{n.child?e(p):e(m,-1)}),l(e,c),F()}function Lt(e,t){let n=o();A(t,!0);let r=S(t,`id`,19,()=>ve(n)),i=S(t,`ref`,15,null),a=S(t,`forceMount`,3,!1),s=M(t,[`$$slots`,`$$events`,`$$legacy`,`id`,`ref`,`forceMount`]),c=$e.get();{let t=(e,t)=>{let n=()=>t?.().present;It(e,I(()=>s,{get id(){return r()},get present(){return n()},get ref(){return i()},set ref(e){i(e)}}))},n=L(()=>a()||c.hasThumb);qe(e,{get open(){return g(n)},get ref(){return c.scrollbar.opts.ref},presence:t,$$slots:{presence:!0}})}F()}var Rt=f(`<div><!></div>`);function zt(e,n){A(n,!0);let r=S(n,`ref`,15,null),i=M(n,[`$$slots`,`$$events`,`$$legacy`,`ref`,`id`,`children`,`child`]),a=pt.create({id:X(()=>n.id),ref:X(()=>r(),e=>r(e))}),o=L(()=>G(i,a.props));var s=u(),c=E(s),f=e=>{var t=u();B(E(t),()=>n.child,()=>({props:g(o)})),l(e,t)},p=e=>{var r=Rt();T(r,()=>({...g(o)})),B(t(r),()=>n.children??C),H(r),l(e,r)};d(c,e=>{n.child?e(f):e(p,-1)}),l(e,s),F()}function Bt(e,t){let n=o();A(t,!0);let r=S(t,`ref`,15,null),i=S(t,`id`,19,()=>ve(n)),a=M(t,[`$$slots`,`$$events`,`$$legacy`,`ref`,`id`]),s=Ze.get(),c=L(()=>!!(s.scrollbarXNode&&s.scrollbarYNode)),f=L(()=>s.opts.type.current!==`scroll`&&g(c));var p=u(),m=E(p),h=e=>{zt(e,I(()=>a,{get id(){return i()},get ref(){return r()},set ref(e){r(e)}}))};d(m,e=>{g(f)&&e(h)}),l(e,p),F()}var Vt=f(`<!> <!>`,1);function Ht(e,t){A(t,!0);let n=S(t,`ref`,15,null),r=S(t,`orientation`,3,`vertical`),a=M(t,[`$$slots`,`$$events`,`$$legacy`,`ref`,`class`,`orientation`,`children`]);var o=u(),s=E(o);{let e=L(()=>Ve(`flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent`,t.class));i(s,()=>Pt,(o,s)=>{s(o,I({"data-slot":`scroll-area-scrollbar`,get"data-orientation"(){return r()},get orientation(){return r()},get class(){return g(e)}},()=>a,{get ref(){return n()},set ref(e){n(e)},children:(e,n)=>{var r=Vt(),a=E(r);B(a,()=>t.children??C),i(R(a,2),()=>Lt,(e,t)=>{t(e,{"data-slot":`scroll-area-thumb`,class:`bg-border relative flex-1 rounded-full`})}),l(e,r)},$$slots:{default:!0}}))})}l(e,o),F()}var Ut=f(`<!> <!> <!> <!>`,1);function Wt(e,t){A(t,!0);let n=S(t,`ref`,15,null),r=S(t,`viewportRef`,15,null),a=S(t,`orientation`,3,`vertical`),o=S(t,`scrollbarXClasses`,3,``),s=S(t,`scrollbarYClasses`,3,``),c=M(t,[`$$slots`,`$$events`,`$$legacy`,`ref`,`viewportRef`,`class`,`orientation`,`scrollbarXClasses`,`scrollbarYClasses`,`children`]);var f=u(),p=E(f);{let e=L(()=>Ve(`relative overflow-hidden`,t.class));i(p,()=>Ct,(f,p)=>{p(f,I({"data-slot":`scroll-area`,get class(){return g(e)}},()=>c,{get ref(){return n()},set ref(e){n(e)},children:(e,n)=>{var c=Ut(),f=E(c);i(f,()=>Tt,(e,n)=>{n(e,{"data-slot":`scroll-area-viewport`,class:`cn-scroll-area-viewport focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1`,get ref(){return r()},set ref(e){r(e)},children:(e,n)=>{var r=u();B(E(r),()=>t.children??C),l(e,r)},$$slots:{default:!0}})});var p=R(f,2),m=e=>{Ht(e,{orientation:`vertical`,get class(){return s()}})};d(p,e=>{(a()===`vertical`||a()===`both`)&&e(m)});var h=R(p,2),g=e=>{Ht(e,{orientation:`horizontal`,get class(){return o()}})};d(h,e=>{(a()===`horizontal`||a()===`both`)&&e(g)}),i(R(h,2),()=>Bt,(e,t)=>{t(e,{})}),l(e,c)},$$slots:{default:!0}}))})}l(e,f),F()}function Gt(e){return!e||e.method===`input`?``:e.method===`editor`?e.prefill??``:``}var Kt=f(`<!> <!>`,1),qt=f(`<!> <!>`,1),Jt=f(`<!> <form class="flex flex-col gap-4"><!> <!></form>`,1),Yt=f(`<div class="text-muted-foreground mt-1 text-sm"> </div>`),Xt=f(`<div class="flex h-full items-center justify-center"><span class="text-muted-foreground text-sm">Loading editor…</span></div>`),Zt=f(`<form class="flex h-full min-h-0 flex-col"><header class="bg-background/95 sticky top-0 z-10 flex shrink-0 flex-col gap-2 border-b px-4 py-3 backdrop-blur sm:px-5" style="padding-top: max(0.75rem, env(safe-area-inset-top));"><div class="flex flex-col items-start gap-3 sm:flex-row sm:items-start sm:justify-between"><div class="w-full min-w-0 sm:w-auto"><div class="text-base font-semibold break-words"> </div> <!></div> <!></div></header> <div class="min-h-0 flex-1 overflow-hidden"><!></div> <div class="bg-background/95 sticky bottom-0 z-10 flex shrink-0 flex-col gap-2 border-t px-4 py-3 backdrop-blur sm:flex-row sm:items-center sm:justify-end sm:px-5" style="padding-bottom: max(0.75rem, env(safe-area-inset-bottom));"><!> <!></div></form>`);function Qt(e,a){A(a,!0);let o=Be(),s=N(!1),f=N(``),p=L(()=>{let e=$.viewedSessionId;return o.all.find(t=>!Re.has(t.method)&&t.sessionId===e)??null}),m=N(null),h=N(null);v(()=>{if(g(p)?.method===`editor`){let e=g(p).title,t=g(p).prefill;Promise.all([W(()=>import(`../chunks/uZO1iyJZ.js`),__vite__mapDeps([0,1,2,3]),import.meta.url),W(()=>import(`../chunks/CnTTbAN2.js`),__vite__mapDeps([4,5,2]),import.meta.url)]).then(([n,r])=>{k(m,n,!0),k(h,r.resolveEditorLanguage(e,t),!0)})}else k(m,null),k(h,null)}),v(()=>{g(p)?(k(f,Gt(g(p)),!0),k(s,!0)):k(s,!1)});function _(e){g(p)&&o.sendResponse(g(p).requestId,g(p).sessionId,e)}function b(){_({cancelled:!0})}function x(e){!e&&g(p)&&b()}function S(){_({value:g(f)})}function C(){_({value:g(f)})}var w=u();i(E(w),()=>me,(e,a)=>{a(e,{get open(){return g(s)},onOpenChange:x,children:(e,a)=>{var o=u(),s=E(o),_=e=>{var a=u();i(E(a),()=>pe,(e,a)=>{a(e,{class:`sm:max-w-md`,children:(e,a)=>{var o=Jt(),s=E(o);i(s,()=>K,(e,t)=>{t(e,{children:(e,t)=>{var r=Kt(),a=E(r);i(a,()=>fe,(e,t)=>{t(e,{children:(e,t)=>{z();var r=c();y(()=>n(r,g(p).title??`Extension`)),l(e,r)},$$slots:{default:!0}})});var o=R(a,2),s=e=>{var t=u();i(E(t),()=>se,(e,t)=>{t(e,{children:(e,t)=>{z();var r=c();y(()=>n(r,g(p).message)),l(e,r)},$$slots:{default:!0}})}),l(e,t)};d(o,e=>{g(p).message&&e(s)}),l(e,r)},$$slots:{default:!0}})});var m=R(s,2),h=t(m);{let e=L(()=>g(p).placeholder??``);_e(h,{get placeholder(){return g(e)},autofocus:!0,get value(){return g(f)},set value(e){k(f,e,!0)}})}i(R(h,2),()=>Oe,(e,t)=>{t(e,{children:(e,t)=>{var n=qt(),r=E(n);Y(r,{variant:`outline`,type:`button`,onclick:b,children:(e,t)=>{z(),l(e,c(`Cancel`))},$$slots:{default:!0}}),Y(R(r,2),{type:`submit`,children:(e,t)=>{z(),l(e,c(`Submit`))},$$slots:{default:!0}}),l(e,n)},$$slots:{default:!0}})}),H(m),r(`submit`,m,e=>{e.preventDefault(),S()}),l(e,o)},$$slots:{default:!0}})}),l(e,a)},v=e=>{var a=u();i(E(a),()=>pe,(e,a)=>{a(e,{showCloseButton:!1,class:`top-0 left-0 flex h-dvh w-screen max-w-none translate-x-0 translate-y-0 gap-0 rounded-none p-0 sm:top-1/2 sm:left-1/2 sm:h-[min(92dvh,960px)] sm:w-[min(96vw,1280px)] sm:max-w-[min(96vw,1280px)] sm:-translate-x-1/2 sm:-translate-y-1/2 sm:rounded-xl`,children:(e,a)=>{var o=Zt(),s=t(o),_=t(s),v=t(_),x=t(v),S=t(x,!0);H(x);var w=R(x,2),T=e=>{var r=Yt(),i=t(r,!0);H(r),y(()=>n(i,g(p).message)),l(e,r)};d(w,e=>{g(p).message&&e(T)}),H(v);var D=R(v,2),ee=e=>{Ce(e,{variant:`outline`,class:`max-w-full shrink-0 whitespace-nowrap`,children:(e,t)=>{z();var r=c();y(()=>n(r,g(h).label)),l(e,r)},$$slots:{default:!0}})};d(D,e=>{g(h)&&e(ee)}),H(_),H(s);var O=R(s,2),A=t(O),j=e=>{var t=u(),n=E(t);{let e=L(()=>g(h)?.id??null);i(n,()=>g(m).default,(t,n)=>{n(t,{get language(){return g(e)},get value(){return g(f)},set value(e){k(f,e,!0)}})})}l(e,t)},M=e=>{l(e,Xt())};d(A,e=>{g(m)?e(j):e(M,-1)}),H(O);var N=R(O,2),P=t(N);Y(P,{variant:`outline`,type:`button`,class:`w-full sm:w-auto`,onclick:b,children:(e,t)=>{z(),l(e,c(`Cancel`))},$$slots:{default:!0}}),Y(R(P,2),{type:`submit`,class:`w-full sm:w-auto`,children:(e,t)=>{z(),l(e,c(`Save`))},$$slots:{default:!0}}),H(N),H(o),y(()=>n(S,g(p).title??`Editor`)),r(`submit`,o,e=>{e.preventDefault(),C()}),l(e,o)},$$slots:{default:!0}})}),l(e,a)};d(s,e=>{g(p)?.method===`input`?e(_):g(p)?.method===`editor`&&e(v,1)}),l(e,o)},$$slots:{default:!0}})}),l(e,w),F()}function $t(e,t){let n=t.map(e=>e.trimEnd()),r=n.find(e=>e.trim().length>0),i=r&&n.length>1?r.trim():e,a=(r&&n.length>1?n.slice(n.indexOf(r)+1):n).filter(e=>e.trim().length>0).map(e=>({content:e,style:`text`}));return{id:`widget:${e}`,header:{title:i},body:a}}function en(e,t){A(t,!0);let n=M(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`}]];J(e,I({name:`circle-alert`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();B(E(r),()=>t.children??C),l(e,r)},$$slots:{default:!0}})),F()}function tn(e,t){A(t,!0);let n=M(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 16v-4`}],[`path`,{d:`M12 8h.01`}]];J(e,I({name:`info`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();B(E(r),()=>t.children??C),l(e,r)},$$slots:{default:!0}})),F()}function nn(e,t){A(t,!0);let n=M(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`}],[`path`,{d:`M12 9v4`}],[`path`,{d:`M12 17h.01`}]];J(e,I({name:`triangle-alert`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();B(E(r),()=>t.children??C),l(e,r)},$$slots:{default:!0}})),F()}var rn=f(`<span class="truncate"> </span>`),an=f(`<div class="border-border bg-muted/50 text-muted-foreground flex items-center gap-3 border-t px-4 py-1.5 text-xs"></div>`),on=f(`<button><!> <span> </span></button>`),sn=f(`<div class="pointer-events-none fixed top-4 left-1/2 z-50 flex -translate-x-1/2 flex-col items-center gap-2"></div>`),cn=f(`<!> <!>`,1);function ln(e,r){A(r,!0);let i=new He,a=N(j([])),o=0;function s(e,t=`info`){let n=o++;k(a,[...g(a),{id:n,text:e,notificationType:t}],!0),setTimeout(()=>{k(a,g(a).filter(e=>e.id!==n),!0)},5e3)}function c(e){k(a,g(a).filter(t=>t.id!==e),!0)}te(()=>Q.onEvent(e=>{if(e.type!==`extension_ui_request`)return;let t=e;if(t.method===`setStatus`){let e=t.key,n=t.text;n?i.set(e,n):i.delete(e)}else if(t.method===`setWidget`){let e=t.key,n=t.lines,r=t.sessionId;if(r){let t=$.sessions[r];t&&(n&&n.length>0?t.widgetCards[e]=$t(e,n):delete t.widgetCards[e],r===$.viewedSessionId&&$.syncViewedPanelStore())}}else if(t.method===`notify`)s(t.text??t.message??``,t.notifyType??t.notificationType??`info`);else if(t.method===`setEditorText`){let e=t.text??``,n=t.sessionId;if(n){let t=$.sessions[n];t&&(t.draftText=e),Ee(n,e)}}else if(t.method===`setTitle`){let e=t.title??``,n=t.sessionId;if(n){let t=$.sessions[n];t&&(t.extensionTitle=e||null)}}}));let u=L(()=>[...i.entries()]);var f=cn(),p=E(f),m=e=>{var r=an();h(r,21,()=>g(u),([e,t])=>e,(e,r)=>{var i=L(()=>ie(g(r),2));let a=()=>g(i)[1];var o=rn(),s=t(o,!0);H(o),y(()=>n(s,a())),l(e,o)}),H(r),l(e,r)};d(p,e=>{g(u).length>0&&e(m)});var _=R(p,2),v=e=>{var r=sn();h(r,21,()=>g(a),e=>e.id,(e,r)=>{var i=on(),a=t(i),o=e=>{en(e,{class:`size-4 shrink-0`})},s=e=>{nn(e,{class:`size-4 shrink-0`})},u=e=>{tn(e,{class:`size-4 shrink-0`})};d(a,e=>{g(r).notificationType===`error`?e(o):g(r).notificationType===`warning`?e(s,1):e(u,-1)});var f=R(a,2),p=t(f,!0);H(f),H(i),y(()=>{V(i,1,`pointer-events-auto flex items-center gap-2 rounded-lg border px-4 py-2.5 text-sm shadow-lg transition-opacity
3
3
  ${g(r).notificationType===`error`?`border-destructive/30 bg-destructive/10 text-destructive`:g(r).notificationType===`warning`?`border-yellow-500/30 bg-yellow-500/10 text-yellow-600 dark:text-yellow-400`:`border-border bg-background text-foreground`}`),n(p,g(r).text)}),U(`click`,i,()=>c(g(r).id)),l(e,i)}),H(r),l(e,r)};d(_,e=>{g(a).length>0&&e(v)}),l(e,f),F()}m([`click`]);function un(e,t){A(t,!0);let n=M(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`M12 15V3`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}],[`path`,{d:`m7 10 5 5 5-5`}]];J(e,I({name:`download`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();B(E(r),()=>t.children??C),l(e,r)},$$slots:{default:!0}})),F()}function dn(e,t){A(t,!0);let n=M(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`M12 2v13`}],[`path`,{d:`m16 6-4-4-4 4`}],[`path`,{d:`M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8`}]];J(e,I({name:`share`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();B(E(r),()=>t.children??C),l(e,r)},$$slots:{default:!0}})),F()}var fn=f(`<!> <span class="text-foreground flex-1 text-sm">Install Pimote: tap <strong>Share</strong> then <strong>Add to Home Screen</strong></span>`,1),pn=f(`<!> <span class="text-foreground flex-1 text-sm">Install Pimote for quick access</span> <button class="bg-primary text-primary-foreground hover:bg-primary/80 shrink-0 rounded-md px-3 py-1.5 text-xs font-medium">Install</button>`,1),mn=f(`<div class="animate-in slide-in-from-bottom fixed inset-x-0 bottom-0 z-50 duration-300 md:hidden"><div class="border-border bg-card mx-3 mb-3 flex items-center gap-3 rounded-xl border px-4 py-3 shadow-lg"><!> <button class="text-muted-foreground hover:text-foreground shrink-0 rounded-md p-1" title="Dismiss"><!></button></div></div>`);function hn(e,n){A(n,!0);let r=N(!1),i=N(!1),a=null;te(()=>{if(window.matchMedia(`(display-mode: standalone)`).matches||navigator.standalone===!0||localStorage.getItem(`pimote-install-dismissed`))return;let e=navigator.userAgent,t=/iPad|iPhone|iPod/.test(e)||navigator.platform===`MacIntel`&&navigator.maxTouchPoints>1,n=/Safari/.test(e)&&!/CriOS|FxiOS|Chrome/.test(e);if(t&&n){k(i,!0),k(r,!0);return}let o=e=>{e.preventDefault(),a=e,k(r,!0)};return window.addEventListener(`beforeinstallprompt`,o),()=>{window.removeEventListener(`beforeinstallprompt`,o)}});async function o(){a&&=(a.prompt(),(await a.userChoice).outcome===`accepted`&&k(r,!1),null)}function s(){localStorage.setItem(`pimote-install-dismissed`,`true`),k(r,!1)}var c=u(),f=E(c),p=e=>{var n=mn(),r=t(n),a=t(r),c=e=>{var t=fn();dn(E(t),{class:`text-muted-foreground size-5 shrink-0`}),z(2),l(e,t)},u=e=>{var t=pn(),n=E(t);un(n,{class:`text-muted-foreground size-5 shrink-0`}),U(`click`,R(n,4),o),l(e,t)};d(a,e=>{g(i)?e(c):e(u,-1)});var f=R(a,2);ke(t(f),{class:`size-4`}),H(f),H(r),H(n),U(`click`,f,s),l(e,n)};d(f,e=>{g(r)&&e(p)}),l(e,c),F()}m([`click`]);function gn(e,t){A(t,!0);let n=M(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z`}],[`circle`,{cx:`7.5`,cy:`7.5`,r:`.5`,fill:`currentColor`}]];J(e,I({name:`tag`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();B(E(r),()=>t.children??C),l(e,r)},$$slots:{default:!0}})),F()}var _n=f(`<div class="text-muted-foreground px-3 py-6 text-sm">No tree nodes match the current filter.</div>`),vn=f(`<button class="text-muted-foreground hover:text-foreground mt-0.5 rounded p-0.5"><!></button>`),yn=f(`<span class="inline-block size-5"></span>`),bn=f(`<span class="text-muted-foreground shrink-0 text-[11px]"> </span>`),xn=f(`<span class="bg-primary/15 text-primary rounded px-1.5 py-0.5 text-[10px] font-medium">active</span>`),Sn=f(`<span class="bg-secondary text-secondary-foreground inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px]"><!> </span>`),Cn=f(`<div tabindex="0"><!> <div class="min-w-0 flex-1"><div class="flex flex-wrap items-center gap-1.5"><span class="text-muted-foreground shrink-0 text-[11px] uppercase"> </span> <!> <!> <!></div> <div class="text-foreground mt-0.5 line-clamp-2 break-words sm:line-clamp-4"> </div> <div class="text-muted-foreground mt-0.5 hidden text-[11px] sm:block"> </div></div></div>`),wn=f(`<div class="space-y-1"></div>`),Tn=f(`<textarea class="border-border bg-secondary text-foreground placeholder:text-muted-foreground focus:border-ring focus:ring-ring min-h-20 w-full resize-y rounded-md border px-3 py-2 text-sm focus:ring-1 focus:outline-none" placeholder="Custom summarization instructions..."></textarea>`),En=f(`<div class="text-muted-foreground text-xs">Summarizing and navigating…</div>`),Dn=f(`<div class="fixed inset-0 z-[80]" tabindex="0"><form class="bg-background border-border fixed w-80 rounded-lg border p-3 shadow-xl"><label class="text-foreground mb-2 block text-xs font-medium" for="tree-label-input">Label</label> <input id="tree-label-input" class="border-border bg-secondary text-foreground placeholder:text-muted-foreground focus:border-ring focus:ring-ring w-full rounded-md border px-2.5 py-2 text-sm focus:ring-1 focus:outline-none" type="text" placeholder="Set label (leave blank to clear)"/> <div class="mt-3 flex justify-end gap-2"><button type="button" class="border-border hover:bg-accent rounded-md border px-2.5 py-1.5 text-xs">Cancel</button> <button type="submit" class="bg-primary text-primary-foreground hover:bg-primary/85 rounded-md px-2.5 py-1.5 text-xs font-medium disabled:cursor-not-allowed disabled:opacity-50">Save</button></div></form></div>`),On=f(`<div class="fixed inset-0 z-50 bg-black/60"><div class="bg-background fixed top-0 left-0 z-[60] flex h-dvh w-screen max-w-none flex-col rounded-none border shadow-xl sm:top-1/2 sm:left-1/2 sm:h-[min(92dvh,960px)] sm:w-[min(96vw,1080px)] sm:max-w-[min(96vw,1080px)] sm:-translate-x-1/2 sm:-translate-y-1/2 sm:rounded-xl"><header class="border-border bg-background/95 flex shrink-0 flex-col gap-3 border-b px-4 py-3 backdrop-blur sm:px-5" style="padding-top: max(0.75rem, env(safe-area-inset-top));"><div class="flex items-center justify-between gap-3"><h2 class="text-foreground text-base font-semibold">Tree Navigation</h2> <button class="text-muted-foreground hover:text-foreground rounded-md px-2 py-1 text-sm">Close</button></div> <div class="flex flex-col gap-2 sm:flex-row"><input class="border-border bg-secondary text-foreground placeholder:text-muted-foreground focus:border-ring focus:ring-ring w-full rounded-md border px-3 py-2 text-sm focus:ring-1 focus:outline-none" type="text" placeholder="Search previews..."/> <select class="border-border bg-secondary text-foreground focus:border-ring focus:ring-ring rounded-md border px-3 py-2 text-sm focus:ring-1 focus:outline-none"><option>Default</option><option>User only</option><option>All</option><option>Labeled only</option></select></div></header> <div class="min-h-0 flex-1 overflow-auto px-2 py-2 sm:px-3"><!></div> <footer class="border-border bg-background/95 flex shrink-0 flex-col gap-3 border-t px-4 py-3 backdrop-blur sm:px-5" style="padding-bottom: max(0.75rem, env(safe-area-inset-bottom));"><div class="flex flex-wrap gap-2"><button>No summary</button> <button>Summarize</button> <button>Custom summary prompt</button></div> <!> <div class="flex items-center justify-between gap-2"><button class="border-border hover:bg-accent rounded-md border px-3 py-2 text-sm">Cancel</button> <button class="bg-primary text-primary-foreground hover:bg-primary/85 rounded-md px-3 py-2 text-sm font-medium disabled:cursor-not-allowed disabled:opacity-50">Navigate</button></div> <!></footer></div> <!></div>`);function kn(e,i){A(i,!0);let a=new He,o=N(`none`),s=N(``),c=N(!1),f=null,m=null,_=N(null),b=N(!1),S=N(null),C=L(()=>{let e=Z.state.tree??[],t=Z.state.currentLeafId;return t?new Set(M(e,t)):new Set}),T=L(()=>I(Z.getFilteredTree(),Z.expandedNodeIds,g(C))),j=L(()=>Z.state.open&&!!Z.state.sessionId&&!!Z.selectedNodeId&&!Z.state.loading&&!g(c)&&Q.ready);v(()=>{if(!Z.state.open){k(c,!1),k(_,null),k(b,!1);return}k(o,`none`),k(s,``);let e=Z.state.sessionId;if(!e){Z.setLoading(!1);return}let t=a.get(e);Z.setLoading(!!t?.inProgress&&t.summarizing)}),v(()=>{if(!Z.state.open)return;let e=Z.state.sessionId;e&&$.viewedSessionId!==e&&Z.closeDialog()}),te(()=>{let e=Q.onEvent(e=>{ie(e)}),t=e=>{if(Z.state.open&&e.key===`Escape`){if(e.preventDefault(),g(_)){K();return}Z.closeDialog()}};return window.addEventListener(`keydown`,t),()=>{e(),window.removeEventListener(`keydown`,t),W()}});function M(e,t){for(let n of e){if(n.id===t)return[n.id];let e=M(n.children,t);if(e.length>0)return[n.id,...e]}return[]}function I(e,t,n,r=0){let i=[],a=e.length>1;for(let o of e){let e=o.children.length>0,s=e&&(t.has(o.id)||n.has(o.id));if(i.push({node:o,depth:r,expanded:s,hasChildren:e}),s){let e=o.children.length>1||a?r+1:r;i.push(...I(o.children,t,n,e))}}return i}function z(e,t){a.set(e,t)}function B(e){let t=a.get(e);t&&z(e,{...t,inProgress:!1,summarizing:!1,closeOnResync:!1})}function ie(e){if(!(`sessionId`in e)||typeof e.sessionId!=`string`)return;let t=e.sessionId;if(e.type===`tree_navigation_start`){z(t,{inProgress:!0,summarizing:e.summarizing,closeOnResync:!1}),Z.state.open&&Z.state.sessionId===t&&e.summarizing&&Z.setLoading(!0);return}if(e.type===`tree_navigation_end`){z(t,{inProgress:!1,summarizing:!1,closeOnResync:!0}),Z.state.open&&Z.state.sessionId===t&&Z.setLoading(!1);return}if(e.type===`full_resync`){let e=a.get(t);if(!e)return;e.closeOnResync?(a.delete(t),Z.state.open&&Z.state.sessionId===t&&Z.closeDialog()):Z.state.open&&Z.state.sessionId===t&&e.inProgress&&e.summarizing&&Z.setLoading(!0)}}function W(){f&&=(clearTimeout(f),null)}function G(e,t,n){let r=Math.max(8,Math.min(t,window.innerWidth-320-8)),i=Math.max(8,Math.min(n,window.innerHeight-180-8));k(_,{nodeId:e.id,value:e.label??``,x:r,y:i},!0),k(b,!1),queueMicrotask(()=>{g(S)?.focus(),g(S)?.select()})}function K(){k(_,null),k(b,!1)}function ae(e,t){e.preventDefault(),G(t,e.clientX,e.clientY)}function se(e,t){if(e.pointerType!==`touch`)return;let{clientX:n,clientY:r}=e;W(),f=setTimeout(()=>{m=t.id,G(t,n,r),W()},500)}function ce(){W()}function q(){W()}async function le(){let e=Z.state.sessionId,t=g(_);if(!e||!t||g(b))return;k(b,!0);let n=t.value.trim(),r=n.length>0?n:void 0;try{(await Q.send({type:`set_tree_label`,sessionId:e,entryId:t.nodeId,label:r})).success&&(Z.setNodeLabel(t.nodeId,r),K())}catch(e){console.error(`Failed to set tree label:`,e)}finally{k(b,!1)}}function ue(e){if(m===e){m=null;return}if(Z.selectedNodeId===e&&g(j)){Y();return}Z.setSelectedNode(e)}function de(e){Z.toggleExpanded(e)}function J(e){Z.setFilterMode(e)}async function Y(){let e=Z.state.sessionId,t=Z.selectedNodeId;if(!e||!t||Z.state.loading||g(c))return;let n=g(o)!==`none`;try{k(c,!0),Z.setLoading(n);let r=await Q.send({type:`navigate_tree`,sessionId:e,targetId:t,...n?{summarize:!0}:{},...g(o)===`custom`?{customInstructions:g(s)}:{},...g(o)===`custom`?{replaceInstructions:!1}:{}});if(Z.setLoading(!1),!r.success||!r.data){B(e);return}let i=r.data;if(i.cancelled){B(e);return}typeof i.editorText==`string`&&i.editorText.length>0&&Ee(e,i.editorText),Z.closeDialog()}catch(t){B(e),Z.setLoading(!1),console.error(`Failed to navigate tree:`,t)}finally{k(c,!1)}}var fe=u(),pe=E(fe),me=e=>{var i=On(),a=t(i),c=t(a),u=t(c),f=R(t(u),2);H(u);var m=R(u,2),v=t(m);D(v);var E=R(v,2),A=t(E);A.value=A.__value=`default`;var M=R(A);M.value=M.__value=`user-only`;var N=R(M);N.value=N.__value=`all`;var F=R(N);F.value=F.__value=`labeled-only`,H(E);var te;ee(E),H(m),H(c);var I=R(c,2),z=t(I),B=e=>{l(e,_n())},ie=e=>{var i=wn();h(i,21,()=>g(T),e=>e.node.id,(e,i)=>{var a=Cn(),o=t(a),s=e=>{var n=vn(),r=t(n);{let e=L(()=>`size-4 transition-transform ${g(i).expanded?`rotate-90`:``}`);oe(r,{get class(){return g(e)}})}H(n),y(()=>P(n,`title`,g(i).expanded?`Collapse`:`Expand`)),U(`click`,n,e=>{e.stopPropagation(),de(g(i).node.id)}),l(e,n)},c=e=>{l(e,yn())};d(o,e=>{g(i).hasChildren?e(s):e(c,-1)});var u=R(o,2),f=t(u),p=t(f),m=t(p,!0);H(p);var h=R(p,2),_=e=>{var r=bn(),a=t(r,!0);H(r),y(()=>n(a,g(i).node.role)),l(e,r)};d(h,e=>{g(i).node.role&&e(_)});var v=R(h,2),b=e=>{l(e,xn())};d(v,e=>{g(i).node.id===Z.state.currentLeafId&&e(b)});var x=R(v,2),S=e=>{var r=Sn(),a=t(r);gn(a,{class:`size-2.5`});var o=R(a);H(r),y(()=>n(o,` ${g(i).node.label??``}`)),l(e,r)};d(x,e=>{g(i).node.label&&e(S)}),H(f);var w=R(f,2),T=t(w,!0);H(w);var E=R(w,2),D=t(E,!0);H(E),H(u),H(a),y((e,t)=>{V(a,1,`border-border/60 hover:bg-accent/60 flex items-start gap-2 rounded-md border px-2 py-1.5 text-sm transition-colors
4
4
  ${Z.selectedNodeId===g(i).node.id?`ring-ring bg-accent ring-1`:``}
5
5
  ${e??``}`),re(a,`margin-left: ${g(i).depth*14}px`),n(m,g(i).node.type),n(T,g(i).node.preview),P(E,`title`,g(i).node.timestamp),n(D,t)},[()=>g(C).has(g(i).node.id)?`border-primary/40`:``,()=>ge(g(i).node.timestamp)]),U(`click`,a,()=>ue(g(i).node.id)),U(`keydown`,a,e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),ue(g(i).node.id))}),U(`contextmenu`,a,e=>ae(e,g(i).node)),U(`pointerdown`,a,e=>se(e,g(i).node)),U(`pointerup`,a,ce),r(`pointercancel`,a,q),r(`pointerleave`,a,q),l(e,a)}),H(i),l(e,i)};d(z,e=>{g(T).length===0?e(B):e(ie,-1)}),H(I);var W=R(I,2),G=t(W),fe=t(G),pe=R(fe,2),me=R(pe,2);H(G);var he=R(G,2),_e=e=>{var t=Tn();p(t),ne(t,()=>g(s),e=>k(s,e)),l(e,t)};d(he,e=>{g(o)===`custom`&&e(_e)});var ve=R(he,2),ye=t(ve),be=R(ye,2);H(ve);var xe=R(ve,2),Se=e=>{l(e,En())};d(xe,e=>{Z.state.loading&&e(Se)}),H(W),H(a);var Ce=R(a,2),we=e=>{var n=Dn(),i=t(n),a=R(t(i),2);D(a),w(a,e=>k(S,e),()=>g(S));var o=R(a,2),s=t(o),c=R(s,2);H(o),H(i),H(n),y(()=>{re(i,`left: ${g(_).x}px; top: ${g(_).y}px`),O(a,g(_).value),c.disabled=g(b)}),U(`click`,n,e=>{e.stopPropagation(),K()}),U(`keydown`,n,e=>{e.key===`Escape`&&(e.stopPropagation(),K())}),U(`click`,i,e=>e.stopPropagation()),r(`submit`,i,e=>{e.preventDefault(),le()}),U(`input`,a,e=>{g(_)&&k(_,{...g(_),value:e.currentTarget.value},!0)}),U(`click`,s,K),l(e,n)};d(Ce,e=>{g(_)&&e(we)}),H(i),y(()=>{O(v,Z.state.searchQuery),te!==(te=Z.state.filterMode)&&(E.value=(E.__value=Z.state.filterMode)??``,x(E,Z.state.filterMode)),V(fe,1,`rounded-md border px-2.5 py-1.5 text-xs transition-colors
6
6
  ${g(o)===`none`?`bg-primary text-primary-foreground border-primary`:`border-border hover:bg-accent`}`),V(pe,1,`rounded-md border px-2.5 py-1.5 text-xs transition-colors
7
7
  ${g(o)===`summarize`?`bg-primary text-primary-foreground border-primary`:`border-border hover:bg-accent`}`),V(me,1,`rounded-md border px-2.5 py-1.5 text-xs transition-colors
8
- ${g(o)===`custom`?`bg-primary text-primary-foreground border-primary`:`border-border hover:bg-accent`}`),be.disabled=!g(j)}),U(`click`,i,()=>Z.closeDialog()),U(`keydown`,i,e=>e.key===`Escape`&&Z.closeDialog()),U(`click`,a,e=>e.stopPropagation()),U(`keydown`,a,e=>e.stopPropagation()),U(`click`,f,()=>Z.closeDialog()),U(`input`,v,e=>Z.setSearchQuery(e.currentTarget.value)),U(`change`,E,e=>J(e.currentTarget.value)),U(`click`,fe,()=>k(o,`none`)),U(`click`,pe,()=>k(o,`summarize`)),U(`click`,me,()=>k(o,`custom`)),U(`click`,ye,()=>Z.closeDialog()),U(`click`,be,Y),l(e,i)};d(pe,e=>{Z.state.open&&e(me)}),l(e,fe),F()}m([`click`,`keydown`,`input`,`change`,`contextmenu`,`pointerdown`,`pointerup`]);var An=f(`<span class="bg-muted text-muted-foreground ml-auto shrink-0 rounded px-1 text-xs"> </span>`),jn=f(`<span class="bg-muted rounded px-1 font-mono text-xs break-words whitespace-pre-wrap"> </span>`),Mn=f(`<span class="text-muted-foreground text-xs break-words whitespace-pre-wrap"> </span>`),Nn=f(`<span class="text-foreground text-xs break-words whitespace-pre-wrap"> </span>`),Pn=f(`<div class="mt-1.5 flex flex-col gap-0.5"></div>`),Fn=f(`<div class="text-muted-foreground mt-1.5 text-xs"> </div>`),In=f(`<div><div class="flex items-center gap-1.5"><span class="truncate text-sm font-medium"> </span> <!></div> <!> <!></div>`),Ln=f(`<div class="bg-sidebar flex h-full w-70 flex-col overflow-y-auto border-l p-2"><div class="flex flex-col gap-2"></div></div>`);function Rn(e,r){A(r,!0);let i={accent:`border-l-primary`,success:`border-l-green-500`,warning:`border-l-yellow-500`,error:`border-l-red-500`,muted:`border-l-muted-foreground`};var o=Ln(),s=t(o);h(s,21,()=>Ue.cards,e=>e.id,(e,r)=>{var o=In(),s=t(o),c=t(s),f=t(c,!0);H(c);var p=R(c,2),m=e=>{var i=An(),a=t(i,!0);H(i),y(()=>n(a,g(r).header.tag)),l(e,i)};d(p,e=>{g(r).header.tag&&e(m)}),H(s);var _=R(s,2),v=e=>{var i=Pn();h(i,21,()=>g(r).body,a,(e,r)=>{var i=u(),a=E(i),o=e=>{var i=jn(),a=t(i,!0);H(i),y(()=>n(a,g(r).content)),l(e,i)},s=e=>{var i=Mn(),a=t(i,!0);H(i),y(()=>n(a,g(r).content)),l(e,i)},c=e=>{var i=Nn(),a=t(i,!0);H(i),y(()=>n(a,g(r).content)),l(e,i)};d(a,e=>{g(r).style===`code`?e(o):g(r).style===`secondary`?e(s,1):e(c,-1)}),l(e,i)}),H(i),l(e,i)};d(_,e=>{g(r).body&&g(r).body.length>0&&e(v)});var b=R(_,2),x=e=>{var i=Fn(),a=t(i,!0);H(i),y(e=>n(a,e),[()=>g(r).footer.join(` · `)]),l(e,i)};d(b,e=>{g(r).footer&&g(r).footer.length>0&&e(x)}),H(o),y(()=>{V(o,1,`rounded border p-2 ${g(r).color?i[g(r).color]+` border-l-2`:``}`),n(f,g(r).header.title)}),l(e,o)}),H(s),H(o),l(e,o),F()}function zn(e,t){A(t,!0);let n=M(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`M10 5H3`}],[`path`,{d:`M12 19H3`}],[`path`,{d:`M14 3v4`}],[`path`,{d:`M16 17v4`}],[`path`,{d:`M21 12h-9`}],[`path`,{d:`M21 19h-5`}],[`path`,{d:`M21 5h-7`}],[`path`,{d:`M8 10v4`}],[`path`,{d:`M8 12H3`}]];J(e,I({name:`sliders-horizontal`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();B(E(r),()=>t.children??C),l(e,r)},$$slots:{default:!0}})),F()}var Bn=f(`<!> <span class="sr-only">Open session settings</span>`,1),Vn=f(`<!> <span class="sr-only">Close session settings</span>`,1),Hn=f(`<div class="border-border/60 flex items-center justify-between gap-3 border-t px-3 py-3"><span class="text-muted-foreground">Context</span> <span> </span></div>`),Un=f(`<div class="border-border/60 flex items-start justify-between gap-3 border-t px-3 py-3"><span class="text-muted-foreground">Git branch</span> <span class="max-w-[60%] min-w-0 truncate text-right font-medium"> </span></div>`),Wn=f(`<span class="inline-flex items-center rounded-full border border-emerald-500/20 bg-emerald-500/10 px-2 py-0.5 font-medium text-emerald-600 dark:text-emerald-400">Streaming</span>`),Gn=f(`<span class="inline-flex items-center rounded-full border border-amber-500/20 bg-amber-500/10 px-2 py-0.5 font-medium text-amber-600 dark:text-amber-400">Compacting…</span>`),Kn=f(`<div class="border-border/60 flex items-start justify-between gap-3 border-t px-3 py-3"><span class="text-muted-foreground">Runtime</span> <div class="flex flex-wrap justify-end gap-1.5 text-xs"><!> <!></div></div>`),qn=f(`<div class="border-border flex items-center justify-between border-b px-4 py-3 sm:hidden"><div class="text-sm font-semibold">Session settings</div> <!></div> <div class="hidden sm:block"><!></div> <div class="overflow-y-auto px-4 py-4 sm:px-0 sm:py-0"><div class="rounded-xl border text-sm"><div class="flex items-center justify-between gap-3 px-3 py-3"><span class="text-muted-foreground">Model</span> <!></div> <div class="border-border/60 flex items-center justify-between gap-3 border-t px-3 py-3"><span class="text-muted-foreground">Thinking</span> <!></div> <div class="border-border/60 flex items-center justify-between gap-3 border-t px-3 py-3"><span class="text-muted-foreground">Voice call</span> <!></div> <!> <!> <!> <div class="border-border/60 flex items-center justify-between gap-3 border-t px-3 py-3"><span class="text-muted-foreground">Connection</span> <div class="flex items-center gap-2 font-medium"><span></span> <span> </span></div></div></div></div>`,1),Jn=f(`<!> <!>`,1);function Yn(e,r){A(r,!0);let a=N(!1),o=L(()=>$.viewed),s=L(()=>Le(g(o))),f=L(()=>je(g(o)?.contextUsage?.percent)),p=L(()=>Q.phaseLabel),m=L(()=>Q.phase===`ready`?`bg-emerald-500`:Q.phase===`syncing`?`bg-blue-500`:Q.phase===`backoff`||Q.phase===`connecting`?`bg-amber-500`:`bg-red-500`),h=L(()=>g(f)===`critical`?`border-red-500/20 bg-red-500/10 text-red-600 dark:text-red-400`:g(f)===`warning`?`border-amber-500/20 bg-amber-500/10 text-amber-600 dark:text-amber-400`:`border-border bg-muted text-muted-foreground`);var _=u();i(E(_),()=>me,(e,r)=>{r(e,{get open(){return g(a)},set open(e){k(a,e,!0)},children:(e,r)=>{var f=Jn(),_=E(f);{let e=(e,t)=>{Y(e,I(()=>t?.().props,{variant:`ghost`,size:`icon-sm`,class:`text-muted-foreground hover:text-foreground`,title:`Session settings`,children:(e,t)=>{var n=Bn();zn(E(n),{class:`size-4`}),z(2),l(e,n)},$$slots:{default:!0}}))};i(_,()=>ce,(t,n)=>{n(t,{child:e,$$slots:{child:!0}})})}i(R(_,2),()=>pe,(e,r)=>{r(e,{showCloseButton:!1,class:`top-auto right-0 bottom-0 left-0 grid max-h-[85dvh] max-w-none translate-x-0 translate-y-0 gap-0 rounded-t-2xl rounded-b-none p-0 sm:top-1/2 sm:left-1/2 sm:max-h-none sm:max-w-md sm:-translate-x-1/2 sm:-translate-y-1/2 sm:gap-4 sm:rounded-xl sm:p-4`,children:(e,r)=>{var f=qn(),_=E(f);Y(R(t(_),2),{variant:`ghost`,size:`icon-sm`,onclick:()=>k(a,!1),title:`Close session settings`,children:(e,t)=>{var n=Vn();ke(E(n),{class:`size-4`}),z(2),l(e,n)},$$slots:{default:!0}}),H(_);var v=R(_,2);i(t(v),()=>K,(e,t)=>{t(e,{children:(e,t)=>{var n=u();i(E(n),()=>fe,(e,t)=>{t(e,{children:(e,t)=>{z(),l(e,c(`Session settings`))},$$slots:{default:!0}})}),l(e,n)},$$slots:{default:!0}})}),H(v);var b=R(v,2),x=t(b),S=t(x);Ie(R(t(S),2),{}),H(S);var C=R(S,2);Ne(R(t(C),2),{}),H(C);var w=R(C,2),T=R(t(w),2);{let e=L(()=>g(o)?.sessionId);De(T,{get sessionId(){return g(e)},variant:`dialog-row`,onAction:()=>k(a,!1)})}H(w);var D=R(w,2),ee=e=>{var r=Hn(),i=R(t(r),2),a=t(i,!0);H(i),H(r),y(()=>{V(i,1,`inline-flex items-center rounded-full border px-2 py-0.5 text-xs font-medium ${g(h)??``}`),n(a,g(s))}),l(e,r)};d(D,e=>{g(s)&&e(ee)});var O=R(D,2),A=e=>{var r=Un(),i=R(t(r),2),a=t(i,!0);H(i),H(r),y(()=>n(a,g(o).gitBranch)),l(e,r)};d(O,e=>{g(o)?.gitBranch&&e(A)});var j=R(O,2),M=e=>{var n=Kn(),r=R(t(n),2),i=t(r),a=e=>{l(e,Wn())};d(i,e=>{g(o)?.isStreaming&&e(a)});var s=R(i,2),c=e=>{l(e,Gn())};d(s,e=>{g(o)?.isCompacting&&e(c)}),H(r),H(n),l(e,n)};d(j,e=>{(g(o)?.isStreaming||g(o)?.isCompacting)&&e(M)});var N=R(j,2),P=R(t(N),2),F=t(P),te=R(F,2),I=t(te,!0);H(te),H(P),H(N),H(x),H(b),y(()=>{V(F,1,`inline-flex size-2 rounded-full ${g(m)??``}`),n(I,g(p))}),l(e,f)},$$slots:{default:!0}})}),l(e,f)},$$slots:{default:!0}})}),l(e,_),F()}function Xn(e,t){A(t,!0);let n=M(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`M4 5h16`}],[`path`,{d:`M4 12h16`}],[`path`,{d:`M4 19h16`}]];J(e,I({name:`menu`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();B(E(r),()=>t.children??C),l(e,r)},$$slots:{default:!0}})),F()}function Zn(e,t){A(t,!0);let n=M(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`}],[`path`,{d:`M15 3v18`}]];J(e,I({name:`panel-right`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();B(E(r),()=>t.children??C),l(e,r)},$$slots:{default:!0}})),F()}function Qn({innerHeight:e,visualViewport:t}){let n=t?.height;return`${Math.round(typeof n==`number`&&Number.isFinite(n)&&n>0?n:e)}px`}var $n=f(`<div class="fixed inset-0 z-30 bg-black/50 md:hidden"></div>`),er=f(`<button type="button" class="text-foreground hover:text-foreground block w-full truncate text-left text-sm font-semibold select-none"> </button>`),tr=f(`<div class="text-foreground truncate text-sm font-semibold"> </div>`),nr=f(`<span title="Context window usage"> </span>`),rr=f(`<button class="text-muted-foreground hover:text-foreground border-border bg-background relative inline-flex size-8 shrink-0 items-center justify-center rounded-lg border" title="Open panel"><!> <span class="bg-primary text-primary-foreground absolute -top-1 -right-1 min-w-4 rounded-full px-1 text-center text-[10px] leading-4 font-medium"> </span></button>`),ir=f(`<div class="hidden md:flex"><!></div>`),ar=f(`<div class="fixed inset-0 z-30 bg-black/50 md:hidden"></div> <div class="fixed inset-y-0 right-0 z-40 md:hidden"><!></div>`,1),or=f(`<div class="bg-background flex overflow-hidden"><!> <aside><div class="border-sidebar-border flex h-12 shrink-0 items-center justify-between border-b px-4"><div class="flex items-center gap-2"><img src="/pwa/icon-192.png" alt="" class="size-5"/> <span class="text-sidebar-foreground text-sm font-semibold">Pimote</span></div> <div class="flex items-center gap-2"><span></span> <button class="text-muted-foreground hover:text-sidebar-foreground rounded-md p-1 md:hidden"><!></button></div></div> <!></aside> <div class="flex flex-1 flex-col overflow-hidden"><header class="border-border flex h-12 shrink-0 items-center gap-2 border-b px-3 md:hidden"><button class="text-muted-foreground hover:text-foreground rounded-md p-1" title="Open sidebar"><!></button> <div class="min-w-0 flex-1"><!></div> <!> <!> <!></header> <main class="flex flex-1 flex-col overflow-hidden"><!></main> <!></div> <!> <!> <!> <!> <!></div>`);function sr(e,r){A(r,!0);let i=N(!1),a=N(!1),o=N(`100dvh`);function s(){navigator.serviceWorker?.controller?.postMessage({type:`focus_state`,hasFocus:document.hasFocus()})}te(()=>{Q.connect();let e=null,t=()=>{k(o,Qn(window),!0)},n=()=>{t(),requestAnimationFrame(t),e&&clearTimeout(e),e=setTimeout(t,100)};n();let r=window.visualViewport;r?.addEventListener(`resize`,n),r?.addEventListener(`scroll`,n),window.addEventListener(`resize`,n),window.addEventListener(`orientationchange`,n),window.addEventListener(`pageshow`,n),window.addEventListener(`focus`,n),window.addEventListener(`focusin`,n),window.addEventListener(`focusout`,n);let i=new URLSearchParams(window.location.search),a=i.get(`sessionId`),c=i.get(`folderPath`);return a&&c&&(window.history.replaceState({},``,window.location.pathname),Q.pendingAdopt={sessionId:a,folderPath:c}),i.get(`share`)===`pending`&&(window.history.replaceState({},``,window.location.pathname),caches.open(`pimote-share-target`).then(async e=>{let t=await e.match(`/_share/pending`);if(t){let n=await t.json();await e.delete(`/_share/pending`),n.length>0&&Ae(n)}})),`serviceWorker`in navigator&&(navigator.serviceWorker.register(`/sw.js`).then(e=>console.log(`[pimote] Service worker registered:`,e)).catch(e=>console.warn(`[pimote] Service worker registration failed:`,e)),window.addEventListener(`focus`,s),window.addEventListener(`blur`,s),document.addEventListener(`visibilitychange`,s),navigator.serviceWorker.ready.then(()=>s()),navigator.serviceWorker.addEventListener(`message`,async e=>{if(e.data?.type===`push_notification`){let t=e.data.sessionId;if(t){let e=$.sessions[t];e&&(e.needsAttention=!0)}}else if(e.data?.type===`share_images`){let t=e.data.images;t?.length>0&&Ae(t)}else if(e.data?.type===`notification_click`){let t=e.data.sessionId,n=e.data.folderPath;if(t){let{switchToSession:e,sessionRegistry:r,openExistingSession:i}=await W(async()=>{let{switchToSession:e,sessionRegistry:t,openExistingSession:n}=await import(`../chunks/DoVhjU85.js`);return{switchToSession:e,sessionRegistry:t,openExistingSession:n}},__vite__mapDeps([6,7,8,1,2]),import.meta.url);r.sessions[t]?e(t):n&&i(t,n,{force:!0,switchTo:!0})}}})),()=>{Q.disconnect(),r?.removeEventListener(`resize`,n),r?.removeEventListener(`scroll`,n),window.removeEventListener(`resize`,n),window.removeEventListener(`orientationchange`,n),window.removeEventListener(`pageshow`,n),window.removeEventListener(`focus`,n),window.removeEventListener(`focusin`,n),window.removeEventListener(`focusout`,n),e&&clearTimeout(e),window.removeEventListener(`focus`,s),window.removeEventListener(`blur`,s),document.removeEventListener(`visibilitychange`,s)}});function c(){k(i,!1)}let u=L(()=>{let e=$.viewed?.extensionTitle??null;return e?`Pimote — ${e}`:`Pimote`}),f=L(()=>Fe($.viewed)??`Pimote`),p=L(()=>Le($.viewed,{compact:!0})),m=L(()=>je($.viewed?.contextUsage?.percent)),h=L(()=>g(m)===`critical`?`border-red-500/20 bg-red-500/10 text-red-600 dark:text-red-400`:g(m)===`warning`?`border-amber-500/20 bg-amber-500/10 text-amber-600 dark:text-amber-400`:`border-border bg-muted text-muted-foreground`);v(()=>{document.title=g(u)}),v(()=>{!Ue.hasCards&&g(a)&&k(a,!1)});var _=or(),b=t(_),x=e=>{var t=$n();U(`click`,t,c),U(`keydown`,t,e=>e.key===`Escape`&&c()),l(e,t)};d(b,e=>{g(i)&&e(x)});var S=R(b,2),C=t(S),w=R(t(C),2),T=t(w),D=R(T,2);ke(t(D),{class:`size-4`}),H(D),H(w),H(C),Wt(R(C,2),{class:`min-h-0 flex-1`,children:(e,t)=>{we(e,{onSessionSelect:c})},$$slots:{default:!0}}),H(S);var ee=R(S,2),O=t(ee),j=t(O);Xn(t(j),{class:`size-5`}),H(j);var M=R(j,2),I=t(M),ne=e=>{ze(e,{get sessionId(){return $.viewed.sessionId},get folderPath(){return $.viewed.folderPath},get sessionName(){return $.viewed.sessionName},get displayName(){return g(f)},children:(e,r)=>{let i=()=>r?.().openRenameDialog;var a=er(),o=t(a,!0);H(a),y(()=>{P(a,`title`,`Rename session: ${g(f)}`),n(o,g(f))}),U(`click`,a,function(...e){i()?.apply(this,e)}),l(e,a)},$$slots:{default:!0}})},z=e=>{var r=tr(),i=t(r,!0);H(r),y(()=>n(i,g(f))),l(e,r)};d(I,e=>{$.viewedSessionId&&$.viewed?e(ne):e(z,-1)}),H(M);var ie=R(M,2),G=e=>{var r=nr(),i=t(r,!0);H(r),y(()=>{V(r,1,`inline-flex shrink-0 items-center rounded-full border px-2 py-0.5 text-[11px] font-medium ${g(h)??``}`),n(i,g(p))}),l(e,r)};d(ie,e=>{$.viewedSessionId&&g(p)&&e(G)});var K=R(ie,2),ae=e=>{var r=rr(),i=t(r);Zn(i,{class:`size-4`});var o=R(i,2),s=t(o,!0);H(o),H(r),y(()=>n(s,Ue.cards.length)),U(`click`,r,()=>k(a,!0)),l(e,r)};d(K,e=>{Ue.hasCards&&e(ae)});var oe=R(K,2),se=e=>{Yn(e,{})};d(oe,e=>{$.viewedSessionId&&e(se)}),H(O);var ce=R(O,2);B(t(ce),()=>r.children),H(ce),ln(R(ce,2),{}),H(ee);var q=R(ee,2),le=e=>{var n=ir();Rn(t(n),{}),H(n),l(e,n)};d(q,e=>{Ue.hasCards&&e(le)});var ue=R(q,2),de=e=>{var n=ar(),r=E(n),i=R(r,2);Rn(t(i),{}),H(i),U(`click`,r,()=>k(a,!1)),U(`keydown`,r,e=>e.key===`Escape`&&k(a,!1)),l(e,n)};d(ue,e=>{Ue.hasCards&&g(a)&&e(de)});var J=R(ue,2);Qt(J,{});var Y=R(J,2);kn(Y,{}),hn(R(Y,2),{}),H(_),y(()=>{re(_,`height: ${g(o)};`),V(S,1,`border-sidebar-border bg-sidebar fixed inset-y-0 left-0 z-40 flex w-72 flex-col border-r transition-transform duration-200
8
+ ${g(o)===`custom`?`bg-primary text-primary-foreground border-primary`:`border-border hover:bg-accent`}`),be.disabled=!g(j)}),U(`click`,i,()=>Z.closeDialog()),U(`keydown`,i,e=>e.key===`Escape`&&Z.closeDialog()),U(`click`,a,e=>e.stopPropagation()),U(`keydown`,a,e=>e.stopPropagation()),U(`click`,f,()=>Z.closeDialog()),U(`input`,v,e=>Z.setSearchQuery(e.currentTarget.value)),U(`change`,E,e=>J(e.currentTarget.value)),U(`click`,fe,()=>k(o,`none`)),U(`click`,pe,()=>k(o,`summarize`)),U(`click`,me,()=>k(o,`custom`)),U(`click`,ye,()=>Z.closeDialog()),U(`click`,be,Y),l(e,i)};d(pe,e=>{Z.state.open&&e(me)}),l(e,fe),F()}m([`click`,`keydown`,`input`,`change`,`contextmenu`,`pointerdown`,`pointerup`]);var An=f(`<span class="bg-muted text-muted-foreground ml-auto shrink-0 rounded px-1 text-xs"> </span>`),jn=f(`<span class="bg-muted rounded px-1 font-mono text-xs break-words whitespace-pre-wrap"> </span>`),Mn=f(`<span class="text-muted-foreground text-xs break-words whitespace-pre-wrap"> </span>`),Nn=f(`<span class="text-foreground text-xs break-words whitespace-pre-wrap"> </span>`),Pn=f(`<div class="mt-1.5 flex flex-col gap-0.5"></div>`),Fn=f(`<div class="text-muted-foreground mt-1.5 text-xs"> </div>`),In=f(`<div><div class="flex items-center gap-1.5"><span class="truncate text-sm font-medium"> </span> <!></div> <!> <!></div>`),Ln=f(`<div class="bg-sidebar flex h-full w-70 flex-col overflow-y-auto border-l p-2"><div class="flex flex-col gap-2"></div></div>`);function Rn(e,r){A(r,!0);let i={accent:`border-l-primary`,success:`border-l-green-500`,warning:`border-l-yellow-500`,error:`border-l-red-500`,muted:`border-l-muted-foreground`};var o=Ln(),s=t(o);h(s,21,()=>Ue.cards,e=>e.id,(e,r)=>{var o=In(),s=t(o),c=t(s),f=t(c,!0);H(c);var p=R(c,2),m=e=>{var i=An(),a=t(i,!0);H(i),y(()=>n(a,g(r).header.tag)),l(e,i)};d(p,e=>{g(r).header.tag&&e(m)}),H(s);var _=R(s,2),v=e=>{var i=Pn();h(i,21,()=>g(r).body,a,(e,r)=>{var i=u(),a=E(i),o=e=>{var i=jn(),a=t(i,!0);H(i),y(()=>n(a,g(r).content)),l(e,i)},s=e=>{var i=Mn(),a=t(i,!0);H(i),y(()=>n(a,g(r).content)),l(e,i)},c=e=>{var i=Nn(),a=t(i,!0);H(i),y(()=>n(a,g(r).content)),l(e,i)};d(a,e=>{g(r).style===`code`?e(o):g(r).style===`secondary`?e(s,1):e(c,-1)}),l(e,i)}),H(i),l(e,i)};d(_,e=>{g(r).body&&g(r).body.length>0&&e(v)});var b=R(_,2),x=e=>{var i=Fn(),a=t(i,!0);H(i),y(e=>n(a,e),[()=>g(r).footer.join(` · `)]),l(e,i)};d(b,e=>{g(r).footer&&g(r).footer.length>0&&e(x)}),H(o),y(()=>{V(o,1,`rounded border p-2 ${g(r).color?i[g(r).color]+` border-l-2`:``}`),n(f,g(r).header.title)}),l(e,o)}),H(s),H(o),l(e,o),F()}function zn(e,t){A(t,!0);let n=M(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`M10 5H3`}],[`path`,{d:`M12 19H3`}],[`path`,{d:`M14 3v4`}],[`path`,{d:`M16 17v4`}],[`path`,{d:`M21 12h-9`}],[`path`,{d:`M21 19h-5`}],[`path`,{d:`M21 5h-7`}],[`path`,{d:`M8 10v4`}],[`path`,{d:`M8 12H3`}]];J(e,I({name:`sliders-horizontal`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();B(E(r),()=>t.children??C),l(e,r)},$$slots:{default:!0}})),F()}var Bn=f(`<!> <span class="sr-only">Open session settings</span>`,1),Vn=f(`<!> <span class="sr-only">Close session settings</span>`,1),Hn=f(`<div class="border-border/60 flex items-center justify-between gap-3 border-t px-3 py-3"><span class="text-muted-foreground">Context</span> <span> </span></div>`),Un=f(`<div class="border-border/60 flex items-start justify-between gap-3 border-t px-3 py-3"><span class="text-muted-foreground">Git branch</span> <span class="max-w-[60%] min-w-0 truncate text-right font-medium"> </span></div>`),Wn=f(`<span class="inline-flex items-center rounded-full border border-emerald-500/20 bg-emerald-500/10 px-2 py-0.5 font-medium text-emerald-600 dark:text-emerald-400">Streaming</span>`),Gn=f(`<span class="inline-flex items-center rounded-full border border-amber-500/20 bg-amber-500/10 px-2 py-0.5 font-medium text-amber-600 dark:text-amber-400">Compacting…</span>`),Kn=f(`<div class="border-border/60 flex items-start justify-between gap-3 border-t px-3 py-3"><span class="text-muted-foreground">Runtime</span> <div class="flex flex-wrap justify-end gap-1.5 text-xs"><!> <!></div></div>`),qn=f(`<div class="border-border flex items-center justify-between border-b px-4 py-3 sm:hidden"><div class="text-sm font-semibold">Session settings</div> <!></div> <div class="hidden sm:block"><!></div> <div class="overflow-y-auto px-4 py-4 sm:px-0 sm:py-0"><div class="rounded-xl border text-sm"><div class="flex items-center justify-between gap-3 px-3 py-3"><span class="text-muted-foreground">Model</span> <!></div> <div class="border-border/60 flex items-center justify-between gap-3 border-t px-3 py-3"><span class="text-muted-foreground">Thinking</span> <!></div> <div class="border-border/60 flex items-center justify-between gap-3 border-t px-3 py-3"><span class="text-muted-foreground">Voice call</span> <!></div> <!> <!> <!> <div class="border-border/60 flex items-center justify-between gap-3 border-t px-3 py-3"><span class="text-muted-foreground">Connection</span> <div class="flex items-center gap-2 font-medium"><span></span> <span> </span></div></div></div></div>`,1),Jn=f(`<!> <!>`,1);function Yn(e,r){A(r,!0);let a=N(!1),o=L(()=>$.viewed),s=L(()=>Le(g(o))),f=L(()=>je(g(o)?.contextUsage?.percent)),p=L(()=>Q.phaseLabel),m=L(()=>Q.phase===`ready`?`bg-emerald-500`:Q.phase===`syncing`?`bg-blue-500`:Q.phase===`backoff`||Q.phase===`connecting`?`bg-amber-500`:`bg-red-500`),h=L(()=>g(f)===`critical`?`border-red-500/20 bg-red-500/10 text-red-600 dark:text-red-400`:g(f)===`warning`?`border-amber-500/20 bg-amber-500/10 text-amber-600 dark:text-amber-400`:`border-border bg-muted text-muted-foreground`);var _=u();i(E(_),()=>me,(e,r)=>{r(e,{get open(){return g(a)},set open(e){k(a,e,!0)},children:(e,r)=>{var f=Jn(),_=E(f);{let e=(e,t)=>{Y(e,I(()=>t?.().props,{variant:`ghost`,size:`icon-sm`,class:`text-muted-foreground hover:text-foreground`,title:`Session settings`,children:(e,t)=>{var n=Bn();zn(E(n),{class:`size-4`}),z(2),l(e,n)},$$slots:{default:!0}}))};i(_,()=>ce,(t,n)=>{n(t,{child:e,$$slots:{child:!0}})})}i(R(_,2),()=>pe,(e,r)=>{r(e,{showCloseButton:!1,class:`top-auto right-0 bottom-0 left-0 grid max-h-[85dvh] max-w-none translate-x-0 translate-y-0 gap-0 rounded-t-2xl rounded-b-none p-0 sm:top-1/2 sm:left-1/2 sm:max-h-none sm:max-w-md sm:-translate-x-1/2 sm:-translate-y-1/2 sm:gap-4 sm:rounded-xl sm:p-4`,children:(e,r)=>{var f=qn(),_=E(f);Y(R(t(_),2),{variant:`ghost`,size:`icon-sm`,onclick:()=>k(a,!1),title:`Close session settings`,children:(e,t)=>{var n=Vn();ke(E(n),{class:`size-4`}),z(2),l(e,n)},$$slots:{default:!0}}),H(_);var v=R(_,2);i(t(v),()=>K,(e,t)=>{t(e,{children:(e,t)=>{var n=u();i(E(n),()=>fe,(e,t)=>{t(e,{children:(e,t)=>{z(),l(e,c(`Session settings`))},$$slots:{default:!0}})}),l(e,n)},$$slots:{default:!0}})}),H(v);var b=R(v,2),x=t(b),S=t(x);Ie(R(t(S),2),{}),H(S);var C=R(S,2);Ne(R(t(C),2),{}),H(C);var w=R(C,2),T=R(t(w),2);{let e=L(()=>g(o)?.sessionId);De(T,{get sessionId(){return g(e)},variant:`dialog-row`,onAction:()=>k(a,!1)})}H(w);var D=R(w,2),ee=e=>{var r=Hn(),i=R(t(r),2),a=t(i,!0);H(i),H(r),y(()=>{V(i,1,`inline-flex items-center rounded-full border px-2 py-0.5 text-xs font-medium ${g(h)??``}`),n(a,g(s))}),l(e,r)};d(D,e=>{g(s)&&e(ee)});var O=R(D,2),A=e=>{var r=Un(),i=R(t(r),2),a=t(i,!0);H(i),H(r),y(()=>n(a,g(o).gitBranch)),l(e,r)};d(O,e=>{g(o)?.gitBranch&&e(A)});var j=R(O,2),M=e=>{var n=Kn(),r=R(t(n),2),i=t(r),a=e=>{l(e,Wn())};d(i,e=>{g(o)?.isStreaming&&e(a)});var s=R(i,2),c=e=>{l(e,Gn())};d(s,e=>{g(o)?.isCompacting&&e(c)}),H(r),H(n),l(e,n)};d(j,e=>{(g(o)?.isStreaming||g(o)?.isCompacting)&&e(M)});var N=R(j,2),P=R(t(N),2),F=t(P),te=R(F,2),I=t(te,!0);H(te),H(P),H(N),H(x),H(b),y(()=>{V(F,1,`inline-flex size-2 rounded-full ${g(m)??``}`),n(I,g(p))}),l(e,f)},$$slots:{default:!0}})}),l(e,f)},$$slots:{default:!0}})}),l(e,_),F()}function Xn(e,t){A(t,!0);let n=M(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`M4 5h16`}],[`path`,{d:`M4 12h16`}],[`path`,{d:`M4 19h16`}]];J(e,I({name:`menu`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();B(E(r),()=>t.children??C),l(e,r)},$$slots:{default:!0}})),F()}function Zn(e,t){A(t,!0);let n=M(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`}],[`path`,{d:`M15 3v18`}]];J(e,I({name:`panel-right`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();B(E(r),()=>t.children??C),l(e,r)},$$slots:{default:!0}})),F()}function Qn({innerHeight:e,visualViewport:t}){let n=t?.height;return`${Math.round(typeof n==`number`&&Number.isFinite(n)&&n>0?n:e)}px`}var $n=f(`<div class="fixed inset-0 z-30 bg-black/50 md:hidden"></div>`),er=f(`<button type="button" class="text-foreground hover:text-foreground block w-full truncate text-left text-sm font-semibold select-none"> </button>`),tr=f(`<div class="text-foreground truncate text-sm font-semibold"> </div>`),nr=f(`<span title="Context window usage"> </span>`),rr=f(`<button class="text-muted-foreground hover:text-foreground border-border bg-background relative inline-flex size-8 shrink-0 items-center justify-center rounded-lg border" title="Open panel"><!> <span class="bg-primary text-primary-foreground absolute -top-1 -right-1 min-w-4 rounded-full px-1 text-center text-[10px] leading-4 font-medium"> </span></button>`),ir=f(`<div class="hidden md:flex"><!></div>`),ar=f(`<div class="fixed inset-0 z-30 bg-black/50 md:hidden"></div> <div class="fixed inset-y-0 right-0 z-40 md:hidden"><!></div>`,1),or=f(`<div class="bg-background flex overflow-hidden"><!> <aside><div class="border-sidebar-border flex h-12 shrink-0 items-center justify-between border-b px-4"><div class="flex items-center gap-2"><img src="/pwa/icon-192.png" alt="" class="size-5"/> <span class="text-sidebar-foreground text-sm font-semibold">Pimote</span></div> <div class="flex items-center gap-2"><span></span> <button class="text-muted-foreground hover:text-sidebar-foreground rounded-md p-1 md:hidden"><!></button></div></div> <!></aside> <div class="flex flex-1 flex-col overflow-hidden"><header class="border-border flex h-12 shrink-0 items-center gap-2 border-b px-3 md:hidden"><button class="text-muted-foreground hover:text-foreground rounded-md p-1" title="Open sidebar"><!></button> <div class="min-w-0 flex-1"><!></div> <!> <!> <!></header> <main class="flex flex-1 flex-col overflow-hidden"><!></main> <!></div> <!> <!> <!> <!> <!></div>`);function sr(e,r){A(r,!0);let i=N(!1),a=N(!1),o=N(`100dvh`);function s(){navigator.serviceWorker?.controller?.postMessage({type:`focus_state`,hasFocus:document.hasFocus()})}te(()=>{Q.connect();let e=null,t=()=>{k(o,Qn(window),!0)},n=()=>{t(),requestAnimationFrame(t),e&&clearTimeout(e),e=setTimeout(t,100)};n();let r=window.visualViewport;r?.addEventListener(`resize`,n),r?.addEventListener(`scroll`,n),window.addEventListener(`resize`,n),window.addEventListener(`orientationchange`,n),window.addEventListener(`pageshow`,n),window.addEventListener(`focus`,n),window.addEventListener(`focusin`,n),window.addEventListener(`focusout`,n);let i=new URLSearchParams(window.location.search),a=i.get(`sessionId`),c=i.get(`folderPath`);return a&&c&&(window.history.replaceState({},``,window.location.pathname),Q.pendingAdopt={sessionId:a,folderPath:c}),i.get(`share`)===`pending`&&(window.history.replaceState({},``,window.location.pathname),caches.open(`pimote-share-target`).then(async e=>{let t=await e.match(`/_share/pending`);if(t){let n=await t.json();await e.delete(`/_share/pending`),n.length>0&&Ae(n)}})),`serviceWorker`in navigator&&(navigator.serviceWorker.register(`/sw.js`).then(e=>console.log(`[pimote] Service worker registered:`,e)).catch(e=>console.warn(`[pimote] Service worker registration failed:`,e)),window.addEventListener(`focus`,s),window.addEventListener(`blur`,s),document.addEventListener(`visibilitychange`,s),navigator.serviceWorker.ready.then(()=>s()),navigator.serviceWorker.addEventListener(`message`,async e=>{if(e.data?.type===`push_notification`){let t=e.data.sessionId;if(t){let e=$.sessions[t];e&&(e.needsAttention=!0)}}else if(e.data?.type===`share_images`){let t=e.data.images;t?.length>0&&Ae(t)}else if(e.data?.type===`notification_click`){let t=e.data.sessionId,n=e.data.folderPath;if(t){let{switchToSession:e,sessionRegistry:r,openExistingSession:i}=await W(async()=>{let{switchToSession:e,sessionRegistry:t,openExistingSession:n}=await import(`../chunks/D1INvMB9.js`);return{switchToSession:e,sessionRegistry:t,openExistingSession:n}},__vite__mapDeps([6,7,8,1,2]),import.meta.url);r.sessions[t]?e(t):n&&i(t,n,{force:!0,switchTo:!0})}}})),()=>{Q.disconnect(),r?.removeEventListener(`resize`,n),r?.removeEventListener(`scroll`,n),window.removeEventListener(`resize`,n),window.removeEventListener(`orientationchange`,n),window.removeEventListener(`pageshow`,n),window.removeEventListener(`focus`,n),window.removeEventListener(`focusin`,n),window.removeEventListener(`focusout`,n),e&&clearTimeout(e),window.removeEventListener(`focus`,s),window.removeEventListener(`blur`,s),document.removeEventListener(`visibilitychange`,s)}});function c(){k(i,!1)}let u=L(()=>{let e=$.viewed?.extensionTitle??null;return e?`Pimote — ${e}`:`Pimote`}),f=L(()=>Fe($.viewed)??`Pimote`),p=L(()=>Le($.viewed,{compact:!0})),m=L(()=>je($.viewed?.contextUsage?.percent)),h=L(()=>g(m)===`critical`?`border-red-500/20 bg-red-500/10 text-red-600 dark:text-red-400`:g(m)===`warning`?`border-amber-500/20 bg-amber-500/10 text-amber-600 dark:text-amber-400`:`border-border bg-muted text-muted-foreground`);v(()=>{document.title=g(u)}),v(()=>{!Ue.hasCards&&g(a)&&k(a,!1)});var _=or(),b=t(_),x=e=>{var t=$n();U(`click`,t,c),U(`keydown`,t,e=>e.key===`Escape`&&c()),l(e,t)};d(b,e=>{g(i)&&e(x)});var S=R(b,2),C=t(S),w=R(t(C),2),T=t(w),D=R(T,2);ke(t(D),{class:`size-4`}),H(D),H(w),H(C),Wt(R(C,2),{class:`min-h-0 flex-1`,children:(e,t)=>{we(e,{onSessionSelect:c})},$$slots:{default:!0}}),H(S);var ee=R(S,2),O=t(ee),j=t(O);Xn(t(j),{class:`size-5`}),H(j);var M=R(j,2),I=t(M),ne=e=>{ze(e,{get sessionId(){return $.viewed.sessionId},get folderPath(){return $.viewed.folderPath},get sessionName(){return $.viewed.sessionName},get displayName(){return g(f)},children:(e,r)=>{let i=()=>r?.().openRenameDialog;var a=er(),o=t(a,!0);H(a),y(()=>{P(a,`title`,`Rename session: ${g(f)}`),n(o,g(f))}),U(`click`,a,function(...e){i()?.apply(this,e)}),l(e,a)},$$slots:{default:!0}})},z=e=>{var r=tr(),i=t(r,!0);H(r),y(()=>n(i,g(f))),l(e,r)};d(I,e=>{$.viewedSessionId&&$.viewed?e(ne):e(z,-1)}),H(M);var ie=R(M,2),G=e=>{var r=nr(),i=t(r,!0);H(r),y(()=>{V(r,1,`inline-flex shrink-0 items-center rounded-full border px-2 py-0.5 text-[11px] font-medium ${g(h)??``}`),n(i,g(p))}),l(e,r)};d(ie,e=>{$.viewedSessionId&&g(p)&&e(G)});var K=R(ie,2),ae=e=>{var r=rr(),i=t(r);Zn(i,{class:`size-4`});var o=R(i,2),s=t(o,!0);H(o),H(r),y(()=>n(s,Ue.cards.length)),U(`click`,r,()=>k(a,!0)),l(e,r)};d(K,e=>{Ue.hasCards&&e(ae)});var oe=R(K,2),se=e=>{Yn(e,{})};d(oe,e=>{$.viewedSessionId&&e(se)}),H(O);var ce=R(O,2);B(t(ce),()=>r.children),H(ce),ln(R(ce,2),{}),H(ee);var q=R(ee,2),le=e=>{var n=ir();Rn(t(n),{}),H(n),l(e,n)};d(q,e=>{Ue.hasCards&&e(le)});var ue=R(q,2),de=e=>{var n=ar(),r=E(n),i=R(r,2);Rn(t(i),{}),H(i),U(`click`,r,()=>k(a,!1)),U(`keydown`,r,e=>e.key===`Escape`&&k(a,!1)),l(e,n)};d(ue,e=>{Ue.hasCards&&g(a)&&e(de)});var J=R(ue,2);Qt(J,{});var Y=R(J,2);kn(Y,{}),hn(R(Y,2),{}),H(_),y(()=>{re(_,`height: ${g(o)};`),V(S,1,`border-sidebar-border bg-sidebar fixed inset-y-0 left-0 z-40 flex w-72 flex-col border-r transition-transform duration-200
9
9
  ${g(i)?`translate-x-0`:`-translate-x-full`}
10
10
  md:relative md:z-0 md:translate-x-0`),V(T,1,`size-2 rounded-full ${Q.phase===`ready`?`bg-status-connected`:Q.phase===`idle`?`bg-status-error`:`bg-status-reconnecting`}`),P(T,`title`,Q.phase===`ready`?`Connected`:Q.phase===`idle`?`Disconnected`:`Reconnecting`)}),U(`click`,D,c),U(`click`,j,()=>k(i,!0)),l(e,_),F()}m([`click`,`keydown`]);export{sr as component,We as universal};
@@ -1 +1 @@
1
- import{$ as e,A as t,M as n,P as r,Y as i,et as a,mt as o,pt as s,tt as c,yt as l}from"../chunks/B8lQCytv.js";import{i as u,n as d,r as f}from"../chunks/DzqbY2XU.js";import"../chunks/D1hYfEew.js";var p={get data(){return u.data},get error(){return u.error},get form(){return u.form},get params(){return u.params},get route(){return u.route},get state(){return u.state},get status(){return u.status},get url(){return u.url}};Object.defineProperty({get from(){return f.current?f.current.from:null},get to(){return f.current?f.current.to:null},get type(){return f.current?f.current.type:null},get willUnload(){return f.current?f.current.willUnload:null},get delta(){return f.current?f.current.delta:null},get complete(){return f.current?f.current.complete:null}},`current`,{get(){throw Error(`Replace navigating.current.<prop> with navigating.<prop>`)}}),d.updated.check;var m=p,h=r(`<h1> </h1> <p> </p>`,1);function g(r,u){o(u,!0);var d=h(),f=a(d),p=e(f,!0);l(f);var g=c(f,2),_=e(g,!0);l(g),i(()=>{t(p,m.status),t(_,m.error?.message)}),n(r,d),s()}export{g as component};
1
+ import{$ as e,A as t,M as n,P as r,Y as i,et as a,mt as o,pt as s,tt as c,yt as l}from"../chunks/B8lQCytv.js";import{i as u,n as d,r as f}from"../chunks/CO_BwWGt.js";import"../chunks/D1hYfEew.js";var p={get data(){return u.data},get error(){return u.error},get form(){return u.form},get params(){return u.params},get route(){return u.route},get state(){return u.state},get status(){return u.status},get url(){return u.url}};Object.defineProperty({get from(){return f.current?f.current.from:null},get to(){return f.current?f.current.to:null},get type(){return f.current?f.current.type:null},get willUnload(){return f.current?f.current.willUnload:null},get delta(){return f.current?f.current.delta:null},get complete(){return f.current?f.current.complete:null}},`current`,{get(){throw Error(`Replace navigating.current.<prop> with navigating.<prop>`)}}),d.updated.check;var m=p,h=r(`<h1> </h1> <p> </p>`,1);function g(r,u){o(u,!0);var d=h(),f=a(d),p=e(f,!0);l(f);var g=c(f,2),_=e(g,!0);l(g),i(()=>{t(p,m.status),t(_,m.error?.message)}),n(r,d),s()}export{g as component};
@@ -1,4 +1,4 @@
1
- import{$ as e,A as t,B as n,C as r,E as i,G as a,I as o,K as s,L as c,M as l,N as u,O as d,P as f,Q as p,R as m,T as h,U as g,X as _,Y as v,a as y,b,bt as x,c as S,d as C,et as w,it as T,mt as E,n as D,nt as O,o as k,ot as A,p as j,pt as M,r as N,s as P,st as F,tt as I,u as ee,v as te,vt as L,w as R,y as z,yt as B,z as V}from"../chunks/B8lQCytv.js";import"../chunks/D1hYfEew.js";import{$ as H,A as ne,C as re,D as ie,F as ae,G as oe,I as se,L as U,M as ce,N as le,O as ue,P as de,R as fe,S as pe,U as me,V as he,W as ge,_ as _e,a as ve,b as ye,c as be,d as xe,f as Se,g as Ce,h as we,i as Te,j as Ee,k as De,l as Oe,n as ke,o as Ae,p as je,r as Me,s as Ne,t as Pe,tt as Fe,u as Ie,v as Le,w as Re,x as ze,y as Be,z as Ve}from"../chunks/BNqgidwO.js";import{a as He,c as Ue,d as W,h as We,i as Ge,n as Ke,p as qe,r as Je,s as G,u as Ye}from"../chunks/D_Fpgknp.js";import{n as Xe}from"../chunks/BgJ-X-tf.js";var Ze=ge({component:`separator`,parts:[`root`]}),Qe=class e{static create(t){return new e(t)}opts;attachment;constructor(e){this.opts=e,this.attachment=oe(e.ref)}#e=F(()=>({id:this.opts.id.current,role:this.opts.decorative.current?`none`:`separator`,"aria-orientation":this.opts.orientation.current,"aria-hidden":me(this.opts.decorative.current),"data-orientation":this.opts.orientation.current,[Ze.root]:``,...this.attachment}));get props(){return g(this.#e)}set props(e){T(this.#e,e)}},$e=f(`<div><!></div>`);function et(t,n){let r=o();E(n,!0);let i=y(n,`id`,19,()=>he(r)),a=y(n,`ref`,15,null),s=y(n,`decorative`,3,!1),c=y(n,`orientation`,3,`horizontal`),f=k(n,[`$$slots`,`$$events`,`$$legacy`,`id`,`ref`,`child`,`children`,`decorative`,`orientation`]),p=Qe.create({ref:Fe(()=>a(),e=>a(e)),id:Fe(()=>i()),decorative:Fe(()=>s()),orientation:Fe(()=>c())}),m=F(()=>H(f,p.props));var h=u(),_=w(h),v=e=>{var t=u();R(w(t),()=>n.child,()=>({props:g(m)})),l(e,t)},b=t=>{var r=$e();C(r,()=>({...g(m)})),R(e(r),()=>n.children??x),B(r),l(t,r)};d(_,e=>{n.child?e(v):e(b,-1)}),l(t,h),M()}function tt(e,t){return e.trim().length>0&&typeof t==`string`&&t.length>0}function nt(e,t,n){switch(n){case`replace`:return t;case`append`:return e+`
1
+ import{$ as e,A as t,B as n,C as r,E as i,G as a,I as o,K as s,L as c,M as l,N as u,O as d,P as f,Q as p,R as m,T as h,U as g,X as _,Y as v,a as y,b,bt as x,c as S,d as C,et as w,it as T,mt as E,n as D,nt as O,o as k,ot as A,p as j,pt as M,r as N,s as P,st as F,tt as I,u as ee,v as te,vt as L,w as R,y as z,yt as B,z as V}from"../chunks/B8lQCytv.js";import"../chunks/D1hYfEew.js";import{$ as H,A as ne,C as re,D as ie,F as ae,G as oe,I as se,L as U,M as ce,N as le,O as ue,P as de,R as fe,S as pe,U as me,V as he,W as ge,_ as _e,a as ve,b as ye,c as be,d as xe,f as Se,g as Ce,h as we,i as Te,j as Ee,k as De,l as Oe,n as ke,o as Ae,p as je,r as Me,s as Ne,t as Pe,tt as Fe,u as Ie,v as Le,w as Re,x as ze,y as Be,z as Ve}from"../chunks/D1vhgXpq.js";import{a as He,c as Ue,d as W,h as We,i as Ge,n as Ke,p as qe,r as Je,s as G,u as Ye}from"../chunks/CklMSqcv.js";import{n as Xe}from"../chunks/BgJ-X-tf.js";var Ze=ge({component:`separator`,parts:[`root`]}),Qe=class e{static create(t){return new e(t)}opts;attachment;constructor(e){this.opts=e,this.attachment=oe(e.ref)}#e=F(()=>({id:this.opts.id.current,role:this.opts.decorative.current?`none`:`separator`,"aria-orientation":this.opts.orientation.current,"aria-hidden":me(this.opts.decorative.current),"data-orientation":this.opts.orientation.current,[Ze.root]:``,...this.attachment}));get props(){return g(this.#e)}set props(e){T(this.#e,e)}},$e=f(`<div><!></div>`);function et(t,n){let r=o();E(n,!0);let i=y(n,`id`,19,()=>he(r)),a=y(n,`ref`,15,null),s=y(n,`decorative`,3,!1),c=y(n,`orientation`,3,`horizontal`),f=k(n,[`$$slots`,`$$events`,`$$legacy`,`id`,`ref`,`child`,`children`,`decorative`,`orientation`]),p=Qe.create({ref:Fe(()=>a(),e=>a(e)),id:Fe(()=>i()),decorative:Fe(()=>s()),orientation:Fe(()=>c())}),m=F(()=>H(f,p.props));var h=u(),_=w(h),v=e=>{var t=u();R(w(t),()=>n.child,()=>({props:g(m)})),l(e,t)},b=t=>{var r=$e();C(r,()=>({...g(m)})),R(e(r),()=>n.children??x),B(r),l(t,r)};d(_,e=>{n.child?e(v):e(b,-1)}),l(t,h),M()}function tt(e,t){return e.trim().length>0&&typeof t==`string`&&t.length>0}function nt(e,t,n){switch(n){case`replace`:return t;case`append`:return e+`
2
2
  `+t;case`prepend`:return t+`
3
3
  `+e;case`ignore`:return null}}var rt={Href:1,Src:2,Lang:4,Checked:8,Start:16};function it(e){switch(e){case 1:return`href`;case 2:return`src`;case 4:return`class`;case 8:return`checked`;case 16:return`start`}}var at=e=>{switch(e){case 1:return 3;case 2:return 4;case 3:return 5;case 4:return 6;case 5:return 7;default:return 8}},ot=24;function st(e){let t=new Uint32Array(ot);return t[0]=1,{renderer:e,text:``,pending:``,tokens:t,len:0,token:1,fence_end:0,blockquote_idx:0,hr_char:``,hr_chars:0,fence_start:0,spaces:new Uint8Array(ot),indent:``,indent_len:0,table_state:0}}function ct(e){e.pending.length>0&&Y(e,`
4
4
  `)}function K(e){e.text.length!==0&&(console.assert(e.len>0,`Never adding text to root`),e.renderer.add_text(e.renderer.data,e.text),e.text=``)}function q(e){console.assert(e.len>0,`No nodes to end`),--e.len,e.token=e.tokens[e.len],e.renderer.end_token(e.renderer.data)}function J(e,t){(e.tokens[e.len]===24||e.tokens[e.len]===23)&&t!==25&&q(e),e.len+=1,e.tokens[e.len]=t,e.token=t,e.renderer.add_token(e.renderer.data,t)}function lt(e,t,n){for(;n<=e.len;){if(e.tokens[n]===t)return n;n+=1}return-1}function ut(e,t){for(e.fence_start=0;e.len>t;)q(e)}function dt(e,t){let n=0;for(let r=0;r<=e.len&&(t-=e.spaces[r],!(t<0));r+=1)switch(e.tokens[r]){case 9:case 10:case 20:case 25:n=r;break}for(;e.len>n;)q(e);return t}function ft(e,t){let n=-1,r=-1;for(let i=e.blockquote_idx+1;i<=e.len;i+=1)if(e.tokens[i]===25){if(e.indent_len<e.spaces[i]){r=-1;break}r=i}else e.tokens[i]===t&&(n=i);return r===-1?n===-1?(ut(e,e.blockquote_idx),J(e,t),!0):(ut(e,n),!1):(ut(e,r),J(e,t),!0)}function pt(e,t){J(e,25),e.spaces[e.len]=e.indent_len+t,mt(e),e.token=103}function mt(e){e.indent=``,e.indent_len=0,e.pending=``}function ht(e){switch(e){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return!0;default:return!1}}function gt(e){switch(e){case 32:case 58:case 59:case 41:case 44:case 33:case 46:case 63:case 93:case 10:return!0;default:return!1}}function _t(e){return ht(e)||gt(e)}function vt(e){return ht(e)||e>=65&&e<=90||e>=97&&e<=122}function Y(e,t){for(let n of t){if(e.token===101){switch(n){case` `:e.indent_len+=1;continue;case` `:e.indent_len+=4;continue}let t=dt(e,e.indent_len);e.indent_len=0,e.token=e.tokens[e.len],t>0&&Y(e,` `.repeat(t))}let t=e.pending+n;switch(e.token){case 21:case 1:case 20:case 24:case 23:switch(console.assert(e.text.length===0,`Root should not have any text`),e.pending[0]){case void 0:e.pending=n;continue;case` `:console.assert(e.pending.length===1),e.pending=n,e.indent+=` `,e.indent_len+=1;continue;case` `:console.assert(e.pending.length===1),e.pending=n,e.indent+=` `,e.indent_len+=4;continue;case`
@@ -1 +1 @@
1
- {"version":"1777761538226"}
1
+ {"version":"1778095230587"}
@@ -12,12 +12,12 @@
12
12
  <link rel="icon" type="image/png" sizes="192x192" href="/pwa/icon-192.png" />
13
13
  <link rel="icon" type="image/png" sizes="512x512" href="/pwa/icon-512.png" />
14
14
  <link rel="apple-touch-icon" href="/pwa/icon-192.png" />
15
- <link href="/_app/immutable/entry/start.BZlrOH0-.js" rel="modulepreload">
16
- <link href="/_app/immutable/chunks/DzqbY2XU.js" rel="modulepreload">
17
- <link href="/_app/immutable/chunks/D26i4pYm.js" rel="modulepreload">
15
+ <link href="/_app/immutable/entry/start.DJTQ8-sD.js" rel="modulepreload">
16
+ <link href="/_app/immutable/chunks/CO_BwWGt.js" rel="modulepreload">
17
+ <link href="/_app/immutable/chunks/-Lc-U-GJ.js" rel="modulepreload">
18
18
  <link href="/_app/immutable/chunks/B8lQCytv.js" rel="modulepreload">
19
19
  <link href="/_app/immutable/chunks/5FogVG_p.js" rel="modulepreload">
20
- <link href="/_app/immutable/entry/app.DO-zgzyy.js" rel="modulepreload">
20
+ <link href="/_app/immutable/entry/app.B-HFVtpC.js" rel="modulepreload">
21
21
  <link href="/_app/immutable/chunks/CHncfsjL.js" rel="modulepreload">
22
22
  <link href="/_app/immutable/chunks/D1hYfEew.js" rel="modulepreload">
23
23
 
@@ -26,15 +26,15 @@
26
26
  <div style="display: contents">
27
27
  <script>
28
28
  {
29
- __sveltekit_1jt912z = {
29
+ __sveltekit_r6du57 = {
30
30
  base: ""
31
31
  };
32
32
 
33
33
  const element = document.currentScript.parentElement;
34
34
 
35
35
  Promise.all([
36
- import("/_app/immutable/entry/start.BZlrOH0-.js"),
37
- import("/_app/immutable/entry/app.DO-zgzyy.js")
36
+ import("/_app/immutable/entry/start.DJTQ8-sD.js"),
37
+ import("/_app/immutable/entry/app.B-HFVtpC.js")
38
38
  ]).then(([kit, app]) => {
39
39
  kit.start(app, element);
40
40
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pimote/pimote",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Web client and embedded server for pi with multi-session browser access, streaming, and extension UI support",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -39,6 +39,11 @@ export async function main(options = {}) {
39
39
  });
40
40
  const server = await createServer(config, sessionManager, folderIndex, pushNotificationService, sessionMetadataStore, voiceBoot.orchestrator);
41
41
  clientRegistryRef.current = server.clientRegistry;
42
+ // Suppress push notifications for sessions currently owned by a voice call.
43
+ // The user is on the line — we don't need to ping their phone for idle
44
+ // signals or extension UI prompts. Pushes resume automatically once the
45
+ // call ends and `isCallActive` flips back to false.
46
+ pushNotificationService.setSuppressionPredicate((sessionId) => voiceBoot.orchestrator.isCallActive(sessionId));
42
47
  // Tear down orchestrator bookkeeping when a session is being closed (idle
43
48
  // reap, explicit close). Emits call_ended{server_ended} to the owner.
44
49
  sessionManager.onBeforeSessionClose = async (sessionId) => {
@@ -2,10 +2,18 @@ export class PushNotificationService {
2
2
  sender;
3
3
  store;
4
4
  subscriptions = [];
5
+ suppressionPredicate;
5
6
  constructor(sender, store) {
6
7
  this.sender = sender;
7
8
  this.store = store;
8
9
  }
10
+ /** Install a predicate that suppresses notifications for a given session.
11
+ * Used to silence pushes while a voice call owns the session — pushes
12
+ * resume automatically once the predicate stops returning true (call
13
+ * hangs up). Pass `undefined` to clear. */
14
+ setSuppressionPredicate(predicate) {
15
+ this.suppressionPredicate = predicate;
16
+ }
9
17
  /** Load subscriptions from store on startup */
10
18
  async initialize() {
11
19
  this.subscriptions = await this.store.load();
@@ -35,6 +43,9 @@ export class PushNotificationService {
35
43
  }
36
44
  /** Send push notification to all subscriptions */
37
45
  async notify(payload) {
46
+ if (this.suppressionPredicate?.(payload.sessionId)) {
47
+ return;
48
+ }
38
49
  const expiredEndpoints = [];
39
50
  const payloadStr = JSON.stringify(payload);
40
51
  for (const sub of this.subscriptions) {
@@ -55,7 +55,7 @@ function createSessionState(session, eventBus, config, callbacks, slotRef, folde
55
55
  eventBuffer,
56
56
  status: session.isStreaming ? 'working' : 'idle',
57
57
  needsAttention: false,
58
- lastActivity: Date.now(),
58
+ idleSince: session.isStreaming ? null : Date.now(),
59
59
  unsubscribe: () => { },
60
60
  pendingUiResponses: new Map(),
61
61
  extensionsBound: false,
@@ -68,10 +68,12 @@ function createSessionState(session, eventBus, config, callbacks, slotRef, folde
68
68
  const unsubscribe = session.subscribe((event) => {
69
69
  if (event.type === 'agent_start' && state.status !== 'working') {
70
70
  state.status = 'working';
71
+ state.idleSince = null;
71
72
  callbacks.onStatusChange?.(sessionId, folderPath);
72
73
  }
73
74
  else if (event.type === 'agent_end' && state.status !== 'idle') {
74
75
  state.status = 'idle';
76
+ state.idleSince = Date.now();
75
77
  state.needsAttention = true;
76
78
  if (slotRef.slot)
77
79
  callbacks.onAgentEnd?.(sessionId, slotRef.slot);
@@ -368,7 +370,11 @@ export class PimoteSessionManager {
368
370
  }
369
371
  const clientId = slot.connection?.connectedClientId ?? null;
370
372
  const hasConnectedClient = clientId !== null && (isClientConnected?.(clientId) ?? false);
371
- if (!hasConnectedClient && Date.now() - slot.sessionState.lastActivity > idleTimeout) {
373
+ // Only idle (non-streaming) sessions are eligible for reaping. `idleSince` is set on
374
+ // `agent_end` and cleared on `agent_start`, so a working session can never be reaped
375
+ // here, regardless of how long it's been since a client was connected.
376
+ const idleSince = slot.sessionState.idleSince;
377
+ if (!hasConnectedClient && idleSince !== null && Date.now() - idleSince > idleTimeout) {
372
378
  this.closeSession(sessionId).catch(() => {
373
379
  // Best-effort cleanup — swallow errors during idle reaping
374
380
  });
@@ -8,7 +8,7 @@
8
8
  //
9
9
  // Holds NO knowledge of the streaming / walkback machines. Those plug in
10
10
  // through the top-level dispatcher.
11
- import { VOICE_CALL_STARTED_SENTINEL } from '../../state-machine.js';
11
+ import { VOICE_CALL_ENDED_SENTINEL, VOICE_CALL_STARTED_SENTINEL } from '../../state-machine.js';
12
12
  /**
13
13
  * Pure transition function for the lifecycle slice.
14
14
  *
@@ -55,11 +55,23 @@ export function reduceLifecycle(prev, event, ctx) {
55
55
  if (prev.kind === 'dormant') {
56
56
  return { next: prev, interpreterAppliedNow: false, actions: [] };
57
57
  }
58
+ // Inject an explicit end-of-call sentinel into the conversation so
59
+ // the agent has an in-history signal that voice mode is over —
60
+ // mirrors the `<voice_call_started/>` sentinel on activate. Without
61
+ // it, a session resumed in text mode after a call sees a wall of
62
+ // prior `speak()` calls and tends to mimic one more before the
63
+ // tool-side guard rejects it.
64
+ //
65
+ // Crucially this is a *silent* injection: unlike the start sentinel
66
+ // (which deliberately triggers the greeting turn), the end sentinel
67
+ // must NOT trigger a turn — the call is over, the LLM has nothing
68
+ // to do right now, and a triggered turn would just provoke one more
69
+ // speak() attempt that we then have to reject.
58
70
  // Idempotent: close_ws is a no-op if no client is open.
59
71
  return {
60
72
  next: { kind: 'dormant' },
61
73
  interpreterAppliedNow: false,
62
- actions: [{ kind: 'close_ws' }],
74
+ actions: [{ kind: 'inject_silent_user_message', customType: 'voice_call_ended', text: VOICE_CALL_ENDED_SENTINEL }, { kind: 'close_ws' }],
63
75
  };
64
76
  }
65
77
  case 'ws:opened': {
@@ -141,6 +141,18 @@ export function createVoiceExtension(opts) {
141
141
  pi.sendUserMessage(action.text, action.deliverAs ? { deliverAs: action.deliverAs } : undefined);
142
142
  return;
143
143
  }
144
+ case 'inject_silent_user_message': {
145
+ // sendMessage() with a `custom` role + triggerTurn:false appends
146
+ // an entry that converts to a `role:"user"` message for the LLM
147
+ // (see core/messages.ts convertToLlm) but does not start a turn
148
+ // now. Exactly what we want for the end-of-call sentinel.
149
+ pi.sendMessage({
150
+ customType: action.customType,
151
+ content: action.text,
152
+ display: true,
153
+ }, { triggerTurn: false });
154
+ return;
155
+ }
144
156
  case 'open_ws': {
145
157
  // Reentrancy guard: close any prior client first.
146
158
  try {
@@ -238,7 +250,12 @@ export function createVoiceExtension(opts) {
238
250
  return { content: [{ type: 'text', text: 'ok' }], details: {} };
239
251
  }
240
252
  return {
241
- content: [{ type: 'text', text: 'speak() is only available during an active voice call.' }],
253
+ content: [
254
+ {
255
+ type: 'text',
256
+ text: 'Voice call has ended. The user is now in text mode — do NOT call speak() again. Reply with normal assistant text. Any further speak() calls in this session will be rejected.',
257
+ },
258
+ ],
242
259
  details: {},
243
260
  isError: true,
244
261
  };
@@ -5,3 +5,10 @@
5
5
  // server-side VoiceOrchestrator.
6
6
  /** Sentinel user message appended on entry to the `active` state. */
7
7
  export const VOICE_CALL_STARTED_SENTINEL = '<voice_call_started/>';
8
+ /**
9
+ * Sentinel user message appended on exit from `active`/`activating` back to
10
+ * `dormant`. Gives the agent an explicit in-history signal that the voice
11
+ * call has ended, so subsequent turns (including future text-mode pickups
12
+ * of the same session) don't keep mimicking prior `speak()` calls.
13
+ */
14
+ export const VOICE_CALL_ENDED_SENTINEL = '<voice_call_ended/>';
@@ -989,7 +989,8 @@ export class WsHandler {
989
989
  onSessionReset: (s) => this.handleSessionReset(s),
990
990
  };
991
991
  slot.connection = connection;
992
- slot.sessionState.lastActivity = Date.now();
992
+ // Note: do NOT touch `idleSince` here. Idleness is an agent-level concept driven by
993
+ // agent_start/agent_end — a client claiming a session does not extend its idle clock.
993
994
  this.subscribedSessions.add(sessionId);
994
995
  // Bind extensions when needed. The bridge holds a direct reference to this
995
996
  // ManagedSlot — on reconnect we skip rebinding, but on session reset
@@ -1321,9 +1322,10 @@ export class WsHandler {
1321
1322
  const slot = this.sessionManager.getSession(sid);
1322
1323
  if (slot) {
1323
1324
  slot.connection = null;
1324
- slot.sessionState.lastActivity = Date.now();
1325
1325
  // Note: pending UI responses are NOT resolved here — they survive
1326
1326
  // for replay on reconnect. They are resolved on session close or abort.
1327
+ // Note: do NOT touch `idleSince`. Disconnecting does not reset idleness — if the
1328
+ // agent finished 10 minutes ago, a peeking client should not extend the session's life.
1327
1329
  }
1328
1330
  }
1329
1331
  this.subscribedSessions.clear();
@@ -1 +0,0 @@
1
- var e=`1777761538226`;export{e as t};
@@ -1 +0,0 @@
1
- import{c as e,o as t,s as n}from"./D_Fpgknp.js";export{t as openExistingSession,n as sessionRegistry,e as switchToSession};
@@ -1 +0,0 @@
1
- import{G as e,U as t,W as n,it as r,lt as i,ot as a,r as o,t as s}from"./B8lQCytv.js";import{t as c}from"./D26i4pYm.js";var l=class{constructor(e,t){this.status=e,typeof t==`string`?this.body={message:t}:t?this.body=t:this.body={message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}},u=class{constructor(e,t){this.status=e,this.location=t}},d=class extends Error{constructor(e,t,n){super(n),this.status=e,this.text=t}};new URL(`sveltekit-internal://`);function f(e,t){return e===`/`||t===`ignore`?e:t===`never`?e.endsWith(`/`)?e.slice(0,-1):e:t===`always`&&!e.endsWith(`/`)?e+`/`:e}function p(e){return e.split(`%25`).map(decodeURI).join(`%25`)}function ee(e){for(let t in e)e[t]=decodeURIComponent(e[t]);return e}function m({href:e}){return e.split(`#`)[0]}function h(...e){let t=5381;for(let n of e)if(typeof n==`string`){let e=n.length;for(;e;)t=t*33^n.charCodeAt(--e)}else if(ArrayBuffer.isView(n)){let e=new Uint8Array(n.buffer,n.byteOffset,n.byteLength),r=e.length;for(;r;)t=t*33^e[--r]}else throw TypeError(`value must be a string or TypedArray`);return(t>>>0).toString(36)}new TextEncoder,new TextDecoder;function g(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}var te=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||`GET`)!==`GET`&&_.delete(b(e)),te(e,t));var _=new Map;function v(e,t){let n=b(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:e,...t}=JSON.parse(r.textContent),i=r.getAttribute(`data-ttl`);return i&&_.set(n,{body:e,init:t,ttl:1e3*Number(i)}),r.getAttribute(`data-b64`)!==null&&(e=g(e)),Promise.resolve(new Response(e,t))}return window.fetch(e,t)}function y(e,t,n){if(_.size>0){let t=b(e,n),r=_.get(t);if(r){if(performance.now()<r.ttl&&[`default`,`force-cache`,`only-if-cached`,void 0].includes(n?.cache))return new Response(r.body,r.init);_.delete(t)}}return window.fetch(t,n)}function b(e,t){let n=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){let e=[];t.headers&&e.push([...new Headers(t.headers)].join(`,`)),t.body&&(typeof t.body==`string`||ArrayBuffer.isView(t.body))&&e.push(t.body),n+=`[data-hash="${h(...e)}"]`}return n}var ne=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function re(e){let t=[];return{pattern:e===`/`?/^\/$/:RegExp(`^${ae(e).map(e=>{let n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(e);if(n)return t.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),`(?:/([^]*))?`;let r=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(e);if(r)return t.push({name:r[1],matcher:r[2],optional:!0,rest:!1,chained:!0}),`(?:/([^/]+))?`;if(!e)return;let i=e.split(/\[(.+?)\](?!\])/);return`/`+i.map((e,n)=>{if(n%2){if(e.startsWith(`x+`))return se(String.fromCharCode(parseInt(e.slice(2),16)));if(e.startsWith(`u+`))return se(String.fromCharCode(...e.slice(2).split(`-`).map(e=>parseInt(e,16))));let[,r,a,o,s]=ne.exec(e);return t.push({name:o,matcher:s,optional:!!r,rest:!!a,chained:a?n===1&&i[0]===``:!1}),a?`([^]*?)`:r?`([^/]*)?`:`([^/]+?)`}return se(e)}).join(``)}).join(``)}/?$`),params:t}}function ie(e){return e!==``&&!/^\([^)]+\)$/.test(e)}function ae(e){return e.slice(1).split(`/`).filter(ie)}function oe(e,t,n){let r={},i=e.slice(1),a=i.filter(e=>e!==void 0),o=0;for(let e=0;e<t.length;e+=1){let s=t[e],c=i[e-o];if(s.chained&&s.rest&&o&&(c=i.slice(e-o,e+1).filter(e=>e).join(`/`),o=0),c===void 0)if(s.rest)c=``;else continue;if(!s.matcher||n[s.matcher](c)){r[s.name]=c;let n=t[e+1],l=i[e+1];n&&!n.rest&&n.optional&&l&&s.chained&&(o=0),!n&&!l&&Object.keys(r).length===a.length&&(o=0);continue}if(s.optional&&s.chained){o++;continue}return}if(!o)return r}function se(e){return e.normalize().replace(/[[\]]/g,`\\$&`).replace(/%/g,`%25`).replace(/\//g,`%2[Ff]`).replace(/\?/g,`%3[Ff]`).replace(/#/g,`%23`).replace(/[.*+?^${}()|\\]/g,`\\$&`)}function ce({nodes:e,server_loads:t,dictionary:n,matchers:r}){let i=new Set(t);return Object.entries(n).map(([t,[n,i,s]])=>{let{pattern:c,params:l}=re(t),u={id:t,exec:e=>{let t=c.exec(e);if(t)return oe(t,l,r)},errors:[1,...s||[]].map(t=>e[t]),layouts:[0,...i||[]].map(o),leaf:a(n)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function a(t){let n=t<0;return n&&(t=~t),[n,e[t]]}function o(t){return t===void 0?t:[i.has(t),e[t]]}}function le(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function ue(e,t,n=JSON.stringify){let r=n(t);try{sessionStorage[e]=r}catch{}}var x=globalThis.__sveltekit_1jt912z?.base??``,de=globalThis.__sveltekit_1jt912z?.assets??x??``,fe=`sveltekit:snapshot`,pe=`sveltekit:scroll`,me=`sveltekit:states`,S=`sveltekit:history`,C=`sveltekit:navigation`,w={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},he=location.origin;function ge(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){let e=document.getElementsByTagName(`base`);t=e.length?e[0].href:document.URL}return new URL(e,t)}function T(){return{x:pageXOffset,y:pageYOffset}}function E(e,t){return e.getAttribute(`data-sveltekit-${t}`)}var _e={...w,"":w.hover};function ve(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function ye(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()===`A`&&e.hasAttribute(`href`))return e;e=ve(e)}}function be(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){let e=location.hash.split(`#`)[1]||`/`;r.hash=`#${e}${r.hash}`}}catch{}let i=e instanceof SVGAElement?e.target.baseVal:e.target,a=!r||!!i||we(r,t,n)||(e.getAttribute(`rel`)||``).split(/\s+/).includes(`external`),o=r?.origin===he&&e.hasAttribute(`download`);return{url:r,external:a,target:i,download:o}}function D(e){let t=null,n=null,r=null,i=null,a=null,o=null,s=e;for(;s&&s!==document.documentElement;)r===null&&(r=E(s,`preload-code`)),i===null&&(i=E(s,`preload-data`)),t===null&&(t=E(s,`keepfocus`)),n===null&&(n=E(s,`noscroll`)),a===null&&(a=E(s,`reload`)),o===null&&(o=E(s,`replacestate`)),s=ve(s);function c(e){switch(e){case``:case`true`:return!0;case`off`:case`false`:return!1;default:return}}return{preload_code:_e[r??`off`],preload_data:_e[i??`off`],keepfocus:c(t),noscroll:c(n),reload:c(a),replace_state:c(o)}}function xe(e){let t=i(e),n=!0;function r(){n=!0,t.update(e=>e)}function a(e){n=!1,t.set(e)}function o(e){let r;return t.subscribe(t=>{(r===void 0||n&&t!==r)&&e(r=t)})}return{notify:r,set:a,subscribe:o}}var Se={v:()=>{}};function Ce(){let{set:e,subscribe:t}=i(!1);async function n(){clearTimeout(void 0);try{let t=await fetch(`${de}/_app/version.json`,{headers:{pragma:`no-cache`,"cache-control":`no-cache`}});if(!t.ok)return!1;let n=(await t.json()).version!==c;return n&&(e(!0),Se.v(),clearTimeout(void 0)),n}catch{return!1}}return{subscribe:t,check:n}}function we(e,t,n){return e.origin!==he||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function Te(e){}var Ee=new Set([`load`,`prerender`,`csr`,`ssr`,`trailingSlash`,`config`]);new Set([...Ee,`entries`]);var De=new Set([...Ee]);new Set([...De,`actions`,`entries`]);function Oe(e){return e.filter(e=>e!=null)}function ke(e){return e instanceof l||e instanceof d?e.status:500}function Ae(e){return e instanceof d?e.text:`Internal Error`}var O,k,A,je=o.toString().includes(`$$`)||/function \w+\(\) \{\}/.test(o.toString()),Me=`a:`;je?(O={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(Me)},k={current:null},A={current:!1}):(O=new class{#e=a({});get data(){return t(this.#e)}set data(e){r(this.#e,e)}#t=a(null);get form(){return t(this.#t)}set form(e){r(this.#t,e)}#n=a(null);get error(){return t(this.#n)}set error(e){r(this.#n,e)}#r=a({});get params(){return t(this.#r)}set params(e){r(this.#r,e)}#i=a({id:null});get route(){return t(this.#i)}set route(e){r(this.#i,e)}#a=a({});get state(){return t(this.#a)}set state(e){r(this.#a,e)}#o=a(-1);get status(){return t(this.#o)}set status(e){r(this.#o,e)}#s=a(new URL(Me));get url(){return t(this.#s)}set url(e){r(this.#s,e)}},k=new class{#e=a(null);get current(){return t(this.#e)}set current(e){r(this.#e,e)}},A=new class{#e=a(!1);get current(){return t(this.#e)}set current(e){r(this.#e,e)}},Se.v=()=>A.current=!0);function Ne(e){Object.assign(O,e)}var{onMount:Pe,tick:Fe}=s,Ie=new Set([`icon`,`shortcut icon`,`apple-touch-icon`]),j=null,M=le(`sveltekit:scroll`)??{},N=le(`sveltekit:snapshot`)??{},P={url:xe({}),page:xe({}),navigating:i(null),updated:Ce()};function Le(e){M[e]=T()}function Re(e,t){let n=e+1;for(;M[n];)delete M[n],n+=1;for(n=t+1;N[n];)delete N[n],n+=1}function F(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(()=>{})}async function ze(){if(`serviceWorker`in navigator){let e=await navigator.serviceWorker.getRegistration(x||`/`);e&&await e.update()}}function Be(){}var Ve,He,I,L,Ue,R,z=[],B=[],V=null;function H(){V?.fork?.then(e=>e?.discard()),V=null}var U=new Map,We=new Set,Ge=new Set,W=new Set,G={branch:[],error:null,url:null,nav:null},Ke=!1,K=!1,qe=!0,q=!1,J=!1,Je=!1,Ye=!1,Xe,Y,X,Z,Ze=new Set,Qe=new Map;async function $e(e,t,n){globalThis.__sveltekit_1jt912z&&(globalThis.__sveltekit_1jt912z.query,globalThis.__sveltekit_1jt912z.prerender),document.URL!==location.href&&(location.href=location.href),R=e,await e.hooks.init?.(),Ve=ce(e),L=document.documentElement,Ue=t,He=e.nodes[0],I=e.nodes[1],He(),I(),Y=history.state?.[S],X=history.state?.[C],Y||(Y=X=Date.now(),history.replaceState({...history.state,[S]:Y,[C]:X},``));let r=M[Y];function i(){r&&(history.scrollRestoration=`manual`,scrollTo(r.x,r.y))}n?(i(),await Dt(Ue,n)):(await Q({type:`enter`,url:ge(R.hash?Nt(new URL(location.href)):location.href),replace_state:!0}),i()),Et()}function et(){z.length=0,Ye=!1}function tt(e){B.some(e=>e?.snapshot)&&(N[e]=B.map(e=>e?.snapshot?.capture()))}function nt(e){N[e]?.forEach((e,t)=>{B[t]?.snapshot?.restore(e)})}function rt(){Le(Y),ue(pe,M),tt(X),ue(fe,N)}async function it(t,n,r,i){let a;n.invalidateAll&&H(),await Q({type:`goto`,url:ge(t),keepfocus:n.keepFocus,noscroll:n.noScroll,replace_state:n.replaceState,state:n.state,redirect_count:r,nav_token:i,accept:()=>{n.invalidateAll&&(Ye=!0,a=[],Qe.forEach((e,t)=>{for(let n of e.keys())a.push(t+`/`+n)})),n.invalidate&&n.invalidate.forEach(Tt)}}),n.invalidateAll&&e().then(e).then(()=>{Qe.forEach((e,t)=>{e.forEach(({resource:e},n)=>{a?.includes(t+`/`+n)&&e.refresh?.()})})})}async function at(e){if(e.id!==V?.id){H();let t={};Ze.add(t),V={id:e.id,token:t,promise:ht({...e,preload:t}).then(e=>(Ze.delete(t),e.type===`loaded`&&e.state.error&&H(),e)),fork:null}}return V.promise}async function ot(e){let t=(await yt(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(e=>e[1]()))}async function st(e,t,n){let r={params:G.params,route:{id:G.route?.id??null},url:new URL(location.href)};G={...e.state,nav:r};let i=document.querySelector(`style[data-sveltekit]`);if(i&&i.remove(),Object.assign(O,e.props.page),Xe=new R.root({target:t,props:{...e.props,stores:P,components:B},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),nt(X),n){let e={from:null,to:{...r,scroll:M[Y]??T()},willUnload:!1,type:`enter`,complete:Promise.resolve()};W.forEach(t=>t(e))}K=!0}async function ct({url:e,params:t,branch:n,errors:r,status:i,error:a,route:o,form:s}){let c=`never`;if(x&&(e.pathname===x||e.pathname===x+`/`))c=`always`;else for(let e of n)e?.slash!==void 0&&(c=e.slash);e.pathname=f(e.pathname,c),e.search=e.search;let l={type:`loaded`,state:{url:e,params:t,branch:n,error:a,route:o},props:{constructors:Oe(n).map(e=>e.node.component),page:Mt(O)}};s!==void 0&&(l.props.form=s);let u={},d=!O,p=0;for(let e=0;e<Math.max(n.length,G.branch.length);e+=1){let t=n[e],r=G.branch[e];t?.data!==r?.data&&(d=!0),t&&(u={...u,...t.data},d&&(l.props[`data_${p}`]=u),p+=1)}return(!G.url||e.href!==G.url.href||G.error!==a||s!==void 0&&s!==O.form||d)&&(l.props.page={error:a,params:t,route:{id:o?.id??null},state:{},status:i,url:new URL(e),form:s??null,data:d?u:O.data}),l}async function lt({loader:e,parent:t,url:n,params:r,route:i,server_data_node:a}){let o={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},s=await e();return{node:s,loader:e,server:a,universal:s.universal?.load?{type:`data`,data:null,uses:o}:null,data:a?.data??null,slash:s.universal?.trailingSlash??a?.slash}}function ut(e,t,n){let r=e instanceof Request?e.url:e,i=new URL(r,n);return i.origin===n.origin&&(r=i.href.slice(n.origin.length)),{resolved:i,promise:K?y(r,i.href,t):v(r,t)}}function dt(e,t,n,r,i,a){if(Ye)return!0;if(!i)return!1;if(i.parent&&e||i.route&&t||i.url&&n)return!0;for(let e of i.search_params)if(r.has(e))return!0;for(let e of i.params)if(a[e]!==G.params[e])return!0;for(let e of i.dependencies)if(z.some(t=>t(new URL(e))))return!0;return!1}function ft(e,t){return e?.type===`data`?e:e?.type===`skip`?t??null:null}function pt(e,t){if(!e)return new Set(t.searchParams.keys());let n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(let r of n){let i=e.searchParams.getAll(r),a=t.searchParams.getAll(r);i.every(e=>a.includes(e))&&a.every(e=>i.includes(e))&&n.delete(r)}return n}function mt({error:e,url:t,route:n,params:r}){return{type:`loaded`,state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:Mt(O),constructors:[]}}}async function ht({id:e,invalidating:t,url:n,params:r,route:i,preload:a}){if(V?.id===e)return Ze.delete(V.token),V.promise;let{errors:o,layouts:s,leaf:c}=i,d=[...s,c];o.forEach(e=>e?.().catch(()=>{})),d.forEach(e=>e?.[1]().catch(()=>{}));let f=G.url?e!==xt(G.url):!1,p=G.route?i.id!==G.route.id:!1,ee=pt(G.url,n),m=!1,h=d.map(async(e,t)=>{if(!e)return;let a=G.branch[t];return e[1]===a?.loader&&!dt(m,p,f,ee,a.universal?.uses,r)?a:(m=!0,lt({loader:e[1],url:n,params:r,route:i,parent:async()=>{let e={};for(let n=0;n<t;n+=1)Object.assign(e,(await h[n])?.data);return e},server_data_node:ft(e[0]?{type:`skip`}:null,e[0]?a?.server:void 0)}))});for(let e of h)e.catch(()=>{});let g=[];for(let e=0;e<d.length;e+=1)if(d[e])try{g.push(await h[e])}catch(t){if(t instanceof u)return{type:`redirect`,location:t.location};if(Ze.has(a))return mt({error:await $(t,{params:r,url:n,route:{id:i.id}}),url:n,params:r,route:i});let s=ke(t),c;if((void 0)?.includes(t))s=t.status??s,c=t.error;else if(t instanceof l)c=t.body;else{if(await P.updated.check())return await ze(),await F(n);c=await $(t,{params:r,url:n,route:{id:i.id}})}let d=await gt(e,g,o);return d?ct({url:n,params:r,branch:g.slice(0,d.idx).concat(d.node),errors:o,status:s,error:c,route:i}):await Ct(n,{id:i.id},c,s)}else g.push(void 0);return ct({url:n,params:r,branch:g,errors:o,status:200,error:null,route:i,form:t?void 0:null})}async function gt(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)--r;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function _t({status:e,error:t,url:n,route:r}){let i={};try{return ct({url:n,params:i,branch:[await lt({loader:He,url:n,params:i,route:r,parent:()=>Promise.resolve({}),server_data_node:ft(null)}),{node:await I(),loader:I,universal:null,server:null,data:null}],status:e,error:t,errors:[],route:null})}catch(e){if(e instanceof u)return it(new URL(e.location,location.href),{},0);throw e}}async function vt(e){let t=e.href;if(U.has(t))return U.get(t);let n;try{let r=(async()=>{let t=await R.hooks.reroute({url:new URL(e),fetch:async(t,n)=>ut(t,n,e).promise})??e;if(typeof t==`string`){let n=new URL(e);R.hash?n.hash=t:n.pathname=t,t=n}return t})();U.set(t,r),n=await r}catch{U.delete(t);return}return n}async function yt(e,t){if(e&&!we(e,x,R.hash)){let n=await vt(e);if(!n)return;let r=bt(n);for(let n of Ve){let i=n.exec(r);if(i)return{id:xt(e),invalidating:t,route:n,params:ee(i),url:e}}}}function bt(e){return p(R.hash?e.hash.replace(/^#/,``).replace(/[?#].+/,``):e.pathname.slice(x.length))||`/`}function xt(e){return(R.hash?e.hash.replace(/^#/,``):e.pathname)+e.search}function St({url:e,type:t,intent:n,delta:r,event:i,scroll:a}){let o=!1,s=jt(G,n,e,t,a??null);r!==void 0&&(s.navigation.delta=r),i!==void 0&&(s.navigation.event=i);let c={...s.navigation,cancel:()=>{o=!0,s.reject(Error(`navigation cancelled`))}};return q||We.forEach(e=>e(c)),o?null:s}async function Q({type:t,url:r,popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c={},redirect_count:l=0,nav_token:u={},accept:f=Be,block:p=Be,event:ee}){let m=Z;Z=u;let h=await yt(r,!1),g=t===`enter`?jt(G,h,r,t):St({url:r,type:t,delta:i?.delta,intent:h,scroll:i?.scroll,event:ee});if(!g){p(),Z===u&&(Z=m);return}let te=Y,_=X;f(),q=!0,K&&g.navigation.type!==`enter`&&P.navigating.set(k.current=g.navigation);let v=h&&await ht(h);if(!v){if(we(r,x,R.hash))return await F(r,s);v=await Ct(r,{id:null},await $(new d(404,`Not Found`,`Not found: ${r.pathname}`),{url:r,params:{},route:{id:null}}),404,s)}if(r=h?.url||r,Z!==u)return g.reject(Error(`navigation aborted`)),!1;if(v.type===`redirect`){if(l<20){await Q({type:t,url:new URL(v.location,r),popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c,redirect_count:l+1,nav_token:u}),g.fulfil(void 0);return}v=await _t({status:500,error:await $(Error(`Redirect loop`),{url:r,params:{},route:{id:null}}),url:r,route:{id:null}})}else v.props.page.status>=400&&await P.updated.check()&&(await ze(),await F(r,s));if(et(),Le(te),tt(_),v.props.page.url.pathname!==r.pathname&&(r.pathname=v.props.page.url.pathname),c=i?i.state:c,!i){let e=s?0:1,t={[S]:Y+=e,[C]:X+=e,[me]:c};(s?history.replaceState:history.pushState).call(history,t,``,r),s||Re(Y,X)}let y=h&&V?.id===h.id?V.fork:null;V?.fork&&!y&&H(),V=null,v.props.page.state=c;let b;if(K){let e=(await Promise.all(Array.from(Ge,e=>e(g.navigation)))).filter(e=>typeof e==`function`);if(e.length>0){function t(){e.forEach(e=>{W.delete(e)})}e.push(t),e.forEach(e=>{W.add(e)})}let t=g.navigation.to;G={...v.state,nav:{params:t.params,route:t.route,url:t.url}},v.props.page&&(v.props.page.url=r);let i=y&&await y;i?b=i.commit():(j=null,Xe.$set(v.props),j&&Object.assign(v.props.page,j),Ne(v.props.page),b=n?.()),Je=!0}else await st(v,Ue,!1);let{activeElement:ne}=document;await b,await e(),await e();let re=null;if(qe){let e=i?i.scroll:o?T():null;e?scrollTo(e.x,e.y):(re=r.hash&&document.getElementById(Pt(r)))?re.scrollIntoView():scrollTo(0,0)}let ie=document.activeElement!==ne&&document.activeElement!==document.body;!a&&!ie&&At(r,!re),qe=!0,v.props.page&&(j&&Object.assign(v.props.page,j),Object.assign(O,v.props.page)),q=!1,t===`popstate`&&nt(X),g.fulfil(void 0),g.navigation.to&&(g.navigation.to.scroll=T()),W.forEach(e=>e(g.navigation)),P.navigating.set(k.current=null)}async function Ct(e,t,n,r,i){return e.origin===he&&e.pathname===location.pathname&&!Ke?await _t({status:r,error:n,url:e,route:t}):await F(e,i)}function wt(){let e,t={element:void 0,href:void 0},n;L.addEventListener(`mousemove`,t=>{let n=t.target;clearTimeout(e),e=setTimeout(()=>{a(n,w.hover)},20)});function r(e){e.defaultPrevented||a(e.composedPath()[0],w.tap)}L.addEventListener(`mousedown`,r),L.addEventListener(`touchstart`,r,{passive:!0});let i=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(ot(new URL(t.target.href)),i.unobserve(t.target))},{threshold:0});async function a(e,r){let i=ye(e,L),a=i===t.element&&i?.href===t.href&&r>=n;if(!i||a)return;let{url:o,external:s,download:c}=be(i,x,R.hash);if(s||c)return;let l=D(i),u=o&&xt(G.url)===xt(o);if(!(l.reload||u))if(r<=l.preload_data){t={element:i,href:i.href},n=w.tap;let e=await yt(o,!1);if(!e)return;at(e)}else r<=l.preload_code&&(t={element:i,href:i.href},n=r,ot(o))}function o(){i.disconnect();for(let e of L.querySelectorAll(`a`)){let{url:t,external:n,download:r}=be(e,x,R.hash);if(n||r)continue;let a=D(e);a.reload||(a.preload_code===w.viewport&&i.observe(e),a.preload_code===w.eager&&ot(t))}}W.add(o),o()}function $(e,t){if(e instanceof l)return e.body;let n=ke(e),r=Ae(e);return R.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function Tt(e){if(typeof e==`function`)z.push(e);else{let{href:t}=new URL(e,location.href);z.push(e=>e.href===t)}}function Et(){history.scrollRestoration=`manual`,addEventListener(`beforeunload`,e=>{let t=!1;if(rt(),!q){let e=jt(G,void 0,null,`leave`),n={...e.navigation,cancel:()=>{t=!0,e.reject(Error(`navigation cancelled`))}};We.forEach(e=>e(n))}t?(e.preventDefault(),e.returnValue=``):history.scrollRestoration=`auto`}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&rt()}),navigator.connection?.saveData||wt(),L.addEventListener(`click`,async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;let n=ye(t.composedPath()[0],L);if(!n)return;let{url:r,external:i,target:a,download:o}=be(n,x,R.hash);if(!r)return;if(a===`_parent`||a===`_top`){if(window.parent!==window)return}else if(a&&a!==`_self`)return;let s=D(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol===`https:`||r.protocol===`http:`)||o)return;let[c,l]=(R.hash?r.hash.replace(/^#/,``):r.href).split(`#`),u=c===m(location);if(i||s.reload&&(!u||!l)){St({url:r,type:`link`,event:t})?q=!0:t.preventDefault();return}if(l!==void 0&&u){let[,i]=G.url.href.split(`#`);if(i===l){if(t.preventDefault(),l===``||l===`top`&&n.ownerDocument.getElementById(`top`)===null)scrollTo({top:0});else{let e=n.ownerDocument.getElementById(decodeURIComponent(l));e&&(e.scrollIntoView(),e.focus())}return}if(J=!0,Le(Y),e(r),!s.replace_state)return;J=!1}t.preventDefault(),await new Promise(e=>{requestAnimationFrame(()=>{setTimeout(e,0)}),setTimeout(e,100)}),await Q({type:`link`,url:r,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??r.href===location.href,event:t})}),L.addEventListener(`submit`,e=>{if(e.defaultPrevented)return;let t=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if((n?.formTarget||t.target)===`_blank`||(n?.formMethod||t.method)!==`get`)return;let r=new URL(n?.hasAttribute(`formaction`)&&n?.formAction||t.action);if(we(r,x,!1))return;let i=e.target,a=D(i);if(a.reload)return;e.preventDefault(),e.stopPropagation();let o=new FormData(i,n);r.search=new URLSearchParams(o).toString(),Q({type:`form`,url:r,keepfocus:a.keepfocus,noscroll:a.noscroll,replace_state:a.replace_state??r.href===location.href,event:e})}),addEventListener(`popstate`,async t=>{if(!kt)if(t.state?.[`sveltekit:history`]){let n=t.state[S];if(Z={},n===Y)return;let r=M[n],i=t.state[`sveltekit:states`]??{},a=new URL(t.state[`sveltekit:pageurl`]??location.href),o=t.state[C],s=G.url?m(location)===m(G.url):!1;if(o===X&&(Je||s)){i!==O.state&&(O.state=i),e(a),M[Y]=T(),r&&scrollTo(r.x,r.y),Y=n;return}let c=n-Y;await Q({type:`popstate`,url:a,popped:{state:i,scroll:r,delta:c},accept:()=>{Y=n,X=o},block:()=>{history.go(-c)},nav_token:Z,event:t})}else J||(e(new URL(location.href)),R.hash&&location.reload())}),addEventListener(`hashchange`,()=>{J&&(J=!1,history.replaceState({...history.state,[S]:++Y,[C]:X},``,location.href))});for(let e of document.querySelectorAll(`link`))Ie.has(e.rel)&&(e.href=e.href);addEventListener(`pageshow`,e=>{e.persisted&&P.navigating.set(k.current=null)});function e(e){G.url=O.url=e,P.page.set(Mt(O)),P.page.notify()}}async function Dt(e,{status:t=200,error:n,node_ids:r,params:i,route:a,server_route:o,data:s,form:c}){Ke=!0;let l=new URL(location.href),d;({params:i={},route:a={id:null}}=await yt(l,!1)||{}),d=Ve.find(({id:e})=>e===a.id);let f,p=!0;try{let e=r.map(async(t,n)=>{let r=s[n];return r?.uses&&(r.uses=Ot(r.uses)),lt({loader:R.nodes[t],url:l,params:i,route:a,parent:async()=>{let t={};for(let r=0;r<n;r+=1)Object.assign(t,(await e[r]).data);return t},server_data_node:ft(r)})}),o=await Promise.all(e);if(d){let e=d.layouts;for(let t=0;t<e.length;t++)e[t]||o.splice(t,0,void 0)}f=await ct({url:l,params:i,branch:o,status:t,error:n,errors:d?.errors,form:c,route:d??null})}catch(t){if(t instanceof u){await F(new URL(t.location,location.href));return}f=await _t({status:ke(t),error:await $(t,{url:l,params:i,route:a}),url:l,route:a}),e.textContent=``,p=!1}f.props.page&&(f.props.page.state={}),await st(f,e,p)}function Ot(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}var kt=!1;function At(e,t=!0){let n=document.querySelector(`[autofocus]`);if(n)n.focus();else{let n=Pt(e);if(n&&document.getElementById(n)){let{x:r,y:i}=T();setTimeout(()=>{let a=history.state;kt=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(a,``,e),t&&scrollTo(r,i),kt=!1})}else{let e=document.body,t=e.getAttribute(`tabindex`);e.tabIndex=-1,e.focus({preventScroll:!0,focusVisible:!1}),t===null?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,t)}let r=getSelection();if(r&&r.type!==`None`){let e=[];for(let t=0;t<r.rangeCount;t+=1)e.push(r.getRangeAt(t));setTimeout(()=>{if(r.rangeCount===e.length){for(let t=0;t<r.rangeCount;t+=1){let n=e[t],i=r.getRangeAt(t);if(n.commonAncestorContainer!==i.commonAncestorContainer||n.startContainer!==i.startContainer||n.endContainer!==i.endContainer||n.startOffset!==i.startOffset||n.endOffset!==i.endOffset)return}r.removeAllRanges()}})}}}function jt(e,t,n,r,i=null){let a,o,s=new Promise((e,t)=>{a=e,o=t});return s.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:T()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:i},willUnload:!t,type:r,complete:s},fulfil:a,reject:o}}function Mt(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function Nt(e){let t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function Pt(e){let t;if(R.hash){let[,,n]=e.hash.split(`#`,3);t=n??``}else t=e.hash.slice(1);return decodeURIComponent(t)}export{A as a,O as i,P as n,Te as o,k as r,$e as t};
@@ -1 +0,0 @@
1
- import{o as e,t}from"../chunks/DzqbY2XU.js";export{e as load_css,t as start};