@openpalm/ui 0.11.0-rc.7 → 0.11.0-rc.8

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 (104) hide show
  1. package/build/.openpalm-ui-version +1 -1
  2. package/build/client/_app/immutable/assets/6.COn4HE1H.css +1 -0
  3. package/build/client/_app/immutable/assets/6.COn4HE1H.css.br +0 -0
  4. package/build/client/_app/immutable/assets/{6.DJenXolA.css.gz → 6.COn4HE1H.css.gz} +0 -0
  5. package/build/client/_app/immutable/assets/AuthGate.qEXYiiu8.css +1 -0
  6. package/build/client/_app/immutable/assets/AuthGate.qEXYiiu8.css.br +0 -0
  7. package/build/client/_app/immutable/assets/AuthGate.qEXYiiu8.css.gz +0 -0
  8. package/build/client/_app/immutable/chunks/{D24QgzW3.js → BBQSZM0g.js} +1 -1
  9. package/build/client/_app/immutable/chunks/BBQSZM0g.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/BBQSZM0g.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/DEBerhwE.js +1 -0
  12. package/build/client/_app/immutable/chunks/DEBerhwE.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/DEBerhwE.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/Dh6kjuFV.js +5 -0
  15. package/build/client/_app/immutable/chunks/Dh6kjuFV.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/Dh6kjuFV.js.gz +0 -0
  17. package/build/client/_app/immutable/entry/{app.Cn3CnYEK.js → app.0vcs9lcu.js} +2 -2
  18. package/build/client/_app/immutable/entry/app.0vcs9lcu.js.br +0 -0
  19. package/build/client/_app/immutable/entry/app.0vcs9lcu.js.gz +0 -0
  20. package/build/client/_app/immutable/entry/start.DAyPxTR9.js +1 -0
  21. package/build/client/_app/immutable/entry/start.DAyPxTR9.js.br +0 -0
  22. package/build/client/_app/immutable/entry/start.DAyPxTR9.js.gz +0 -0
  23. package/build/client/_app/immutable/nodes/{1.CFZtmr9Z.js → 1.2imZJYi3.js} +1 -1
  24. package/build/client/_app/immutable/nodes/1.2imZJYi3.js.br +2 -0
  25. package/build/client/_app/immutable/nodes/1.2imZJYi3.js.gz +0 -0
  26. package/build/client/_app/immutable/nodes/{4.qMg9S6NF.js → 4.UvLQ-_B8.js} +1 -1
  27. package/build/client/_app/immutable/nodes/4.UvLQ-_B8.js.br +0 -0
  28. package/build/client/_app/immutable/nodes/{4.qMg9S6NF.js.gz → 4.UvLQ-_B8.js.gz} +0 -0
  29. package/build/client/_app/immutable/nodes/{5.DOV0FWgV.js → 5.CeFLRSVn.js} +1 -1
  30. package/build/client/_app/immutable/nodes/5.CeFLRSVn.js.br +0 -0
  31. package/build/client/_app/immutable/nodes/5.CeFLRSVn.js.gz +0 -0
  32. package/build/client/_app/immutable/nodes/{6.OjOdE489.js → 6.wrEWx8_F.js} +1 -1
  33. package/build/client/_app/immutable/nodes/6.wrEWx8_F.js.br +0 -0
  34. package/build/client/_app/immutable/nodes/6.wrEWx8_F.js.gz +0 -0
  35. package/build/client/_app/immutable/nodes/{7.BmeNI8zH.js → 7.B4rrIsb5.js} +1 -1
  36. package/build/client/_app/immutable/nodes/7.B4rrIsb5.js.br +0 -0
  37. package/build/client/_app/immutable/nodes/7.B4rrIsb5.js.gz +0 -0
  38. package/build/client/_app/version.json +1 -1
  39. package/build/client/_app/version.json.br +1 -1
  40. package/build/client/_app/version.json.gz +0 -0
  41. package/build/server/chunks/1-BZ9i5Jda.js +9 -0
  42. package/build/server/chunks/{1-BT8Fv1iZ.js.map → 1-BZ9i5Jda.js.map} +1 -1
  43. package/build/server/chunks/{4-Dogph41a.js → 4-dMZNaZg5.js} +4 -4
  44. package/build/server/chunks/{4-Dogph41a.js.map → 4-dMZNaZg5.js.map} +1 -1
  45. package/build/server/chunks/{5-B2ffACT5.js → 5-B3VmLYHv.js} +4 -4
  46. package/build/server/chunks/{5-B2ffACT5.js.map → 5-B3VmLYHv.js.map} +1 -1
  47. package/build/server/chunks/6-BOy95v6X.js +9 -0
  48. package/build/server/chunks/{6-SeG59S0A.js.map → 6-BOy95v6X.js.map} +1 -1
  49. package/build/server/chunks/{7-C49AAXUP.js → 7-BHe0Dd-L.js} +4 -4
  50. package/build/server/chunks/{7-C49AAXUP.js.map → 7-BHe0Dd-L.js.map} +1 -1
  51. package/build/server/chunks/{AuthGate-Bd07jybQ.js → AuthGate-CV3twHl8.js} +66 -24
  52. package/build/server/chunks/AuthGate-CV3twHl8.js.map +1 -0
  53. package/build/server/chunks/{_page.svelte-omfzeOSO.js → _page.svelte-BSWlh0cc.js} +4 -4
  54. package/build/server/chunks/{_page.svelte-omfzeOSO.js.map → _page.svelte-BSWlh0cc.js.map} +1 -1
  55. package/build/server/chunks/{_page.svelte-CnbQWtht.js → _page.svelte-C0Y9xjuf.js} +4 -4
  56. package/build/server/chunks/{_page.svelte-CnbQWtht.js.map → _page.svelte-C0Y9xjuf.js.map} +1 -1
  57. package/build/server/chunks/{_page.svelte-BankODKC.js → _page.svelte-CaA7RITG.js} +4 -4
  58. package/build/server/chunks/{_page.svelte-BankODKC.js.map → _page.svelte-CaA7RITG.js.map} +1 -1
  59. package/build/server/chunks/{_page.svelte-BguwEDhs.js → _page.svelte-CgREWagG.js} +4 -4
  60. package/build/server/chunks/{_page.svelte-BguwEDhs.js.map → _page.svelte-CgREWagG.js.map} +1 -1
  61. package/build/server/chunks/{error.svelte-CB2UX4hU.js → error.svelte-D5JFoLSX.js} +3 -3
  62. package/build/server/chunks/{error.svelte-CB2UX4hU.js.map → error.svelte-D5JFoLSX.js.map} +1 -1
  63. package/build/server/chunks/{hooks.server-E9Cpxup2.js → hooks.server-BEVMYNQ4.js} +6 -2
  64. package/build/server/chunks/hooks.server-BEVMYNQ4.js.map +1 -0
  65. package/build/server/chunks/{internal-mQUKV7SV.js → internal-DJnSEu6D.js} +3 -3
  66. package/build/server/chunks/{internal-mQUKV7SV.js.map → internal-DJnSEu6D.js.map} +1 -1
  67. package/build/server/chunks/{state-BVlApqbN.js → state-ChhzSrVm.js} +2 -2
  68. package/build/server/chunks/{state-BVlApqbN.js.map → state-ChhzSrVm.js.map} +1 -1
  69. package/build/server/index.js +1 -1
  70. package/build/server/index.js.map +1 -1
  71. package/build/server/manifest.js +6 -6
  72. package/build/server/manifest.js.map +1 -1
  73. package/package.json +1 -1
  74. package/build/client/_app/immutable/assets/6.DJenXolA.css +0 -1
  75. package/build/client/_app/immutable/assets/6.DJenXolA.css.br +0 -0
  76. package/build/client/_app/immutable/assets/AuthGate._EJNXKUm.css +0 -1
  77. package/build/client/_app/immutable/assets/AuthGate._EJNXKUm.css.br +0 -0
  78. package/build/client/_app/immutable/assets/AuthGate._EJNXKUm.css.gz +0 -0
  79. package/build/client/_app/immutable/chunks/D24QgzW3.js.br +0 -0
  80. package/build/client/_app/immutable/chunks/D24QgzW3.js.gz +0 -0
  81. package/build/client/_app/immutable/chunks/DqNbg4NA.js +0 -5
  82. package/build/client/_app/immutable/chunks/DqNbg4NA.js.br +0 -0
  83. package/build/client/_app/immutable/chunks/DqNbg4NA.js.gz +0 -0
  84. package/build/client/_app/immutable/chunks/s2DJ2Hzc.js +0 -1
  85. package/build/client/_app/immutable/chunks/s2DJ2Hzc.js.br +0 -0
  86. package/build/client/_app/immutable/chunks/s2DJ2Hzc.js.gz +0 -0
  87. package/build/client/_app/immutable/entry/app.Cn3CnYEK.js.br +0 -0
  88. package/build/client/_app/immutable/entry/app.Cn3CnYEK.js.gz +0 -0
  89. package/build/client/_app/immutable/entry/start.BKJ_XPtH.js +0 -1
  90. package/build/client/_app/immutable/entry/start.BKJ_XPtH.js.br +0 -0
  91. package/build/client/_app/immutable/entry/start.BKJ_XPtH.js.gz +0 -0
  92. package/build/client/_app/immutable/nodes/1.CFZtmr9Z.js.br +0 -0
  93. package/build/client/_app/immutable/nodes/1.CFZtmr9Z.js.gz +0 -0
  94. package/build/client/_app/immutable/nodes/4.qMg9S6NF.js.br +0 -0
  95. package/build/client/_app/immutable/nodes/5.DOV0FWgV.js.br +0 -0
  96. package/build/client/_app/immutable/nodes/5.DOV0FWgV.js.gz +0 -0
  97. package/build/client/_app/immutable/nodes/6.OjOdE489.js.br +0 -0
  98. package/build/client/_app/immutable/nodes/6.OjOdE489.js.gz +0 -0
  99. package/build/client/_app/immutable/nodes/7.BmeNI8zH.js.br +0 -0
  100. package/build/client/_app/immutable/nodes/7.BmeNI8zH.js.gz +0 -0
  101. package/build/server/chunks/1-BT8Fv1iZ.js +0 -9
  102. package/build/server/chunks/6-SeG59S0A.js +0 -9
  103. package/build/server/chunks/AuthGate-Bd07jybQ.js.map +0 -1
  104. package/build/server/chunks/hooks.server-E9Cpxup2.js.map +0 -1
@@ -1 +1 @@
1
- 0.11.0-rc.7
1
+ 0.11.0-rc.8
@@ -0,0 +1 @@
1
+ .advanced-layout.svelte-1z0msvj{height:calc(100dvh - var(--nav-height));background:var(--color-bg);width:100%}.opencode-frame.svelte-1z0msvj{border:none;width:100%;height:100%;display:block}
@@ -0,0 +1 @@
1
+ .voice-control.svelte-1a5q9sh{align-items:center;gap:var(--space-2);display:flex}.voice-interim.svelte-1a5q9sh{max-width:200px;font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;padding:2px var(--space-2);background:var(--color-surface-hover);border-radius:var(--radius-sm);border:1px solid var(--color-border);flex-shrink:1;min-width:0;overflow:hidden}.voice-autoplay-banner.svelte-1a5q9sh{align-items:center;gap:var(--space-2);padding:4px var(--space-3);background:var(--color-primary-subtle);border:1px solid var(--color-primary);border-radius:var(--radius-md);height:32px;color:var(--color-primary);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer;white-space:nowrap;transition:filter var(--transition-fast);display:inline-flex}.voice-autoplay-banner.svelte-1a5q9sh:hover{filter:brightness(1.05)}.voice-autoplay-banner.svelte-1a5q9sh:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.voice-btn.svelte-1a5q9sh{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);width:32px;height:32px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.voice-btn.svelte-1a5q9sh:hover{color:var(--color-text);border-color:var(--color-border-hover);background:var(--color-surface-hover)}.voice-btn.svelte-1a5q9sh:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.voice-btn-active.svelte-1a5q9sh{color:var(--color-danger);border-color:var(--color-danger);background:var(--color-danger-bg)}.voice-btn-active.svelte-1a5q9sh:hover{color:var(--color-danger);border-color:var(--color-danger)}.voice-btn-on.svelte-1a5q9sh{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-primary-subtle)}.voice-btn-on.svelte-1a5q9sh:hover{color:var(--color-primary);border-color:var(--color-primary)}.voice-btn-speaking.svelte-1a5q9sh{background:var(--color-primary-subtle);box-shadow:0 0 0 2px var(--color-primary-subtle)}.voice-btn-processing.svelte-1a5q9sh{color:var(--color-text-tertiary);cursor:not-allowed}.voice-pulse.svelte-1a5q9sh{border:2px solid var(--color-danger);border-radius:var(--radius-md);opacity:0;pointer-events:none;animation:1.5s ease-out infinite svelte-1a5q9sh-voice-pulse-anim;position:absolute;inset:-3px}.voice-spinner.svelte-1a5q9sh{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite svelte-1a5q9sh-voice-spinner-anim;display:inline-block}@keyframes svelte-1a5q9sh-voice-spinner-anim{to{transform:rotate(360deg)}}.wave-anim.svelte-1a5q9sh{transform-origin:11px 12px;animation:1.2s ease-in-out infinite svelte-1a5q9sh-wave-pulse-anim}.wave-anim-2.svelte-1a5q9sh{transform-origin:11px 12px;animation:1.2s ease-in-out .3s infinite svelte-1a5q9sh-wave-pulse-anim}@keyframes svelte-1a5q9sh-wave-pulse-anim{0%,to{opacity:.4}50%{opacity:1}}@keyframes svelte-1a5q9sh-voice-pulse-anim{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.3)}}@media (prefers-reduced-motion:reduce){.voice-pulse.svelte-1a5q9sh,.voice-spinner.svelte-1a5q9sh,.wave-anim.svelte-1a5q9sh,.wave-anim-2.svelte-1a5q9sh{animation:none}.voice-pulse.svelte-1a5q9sh{opacity:.4}}.sr-only.svelte-1a5q9sh{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.switcher.svelte-1gh51ee{position:relative}.trigger.svelte-1gh51ee{align-items:center;gap:var(--space-2);padding:0 var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);height:32px;font-size:var(--text-sm);color:var(--color-text);cursor:pointer;anchor-name:--endpoint-anchor;max-width:240px;display:inline-flex;overflow:hidden}.trigger.svelte-1gh51ee:hover:not(:disabled){background:var(--color-surface-hover)}.trigger.svelte-1gh51ee:disabled{opacity:.6;cursor:progress}.trigger-icon.svelte-1gh51ee{color:var(--color-text-secondary);flex-shrink:0;display:none}.dot.svelte-1gh51ee{background:var(--color-success,#16a34a);border-radius:50%;flex-shrink:0;width:8px;height:8px}.label.svelte-1gh51ee{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.caret.svelte-1gh51ee{opacity:.6;font-size:10px}.menu.svelte-1gh51ee{padding:var(--space-2);position-anchor:--endpoint-anchor;position-area:block-end span-inline-start;position-try-fallbacks:flip-block;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);min-width:280px;max-width:min(360px,100vw - 24px);box-shadow:var(--shadow-lg);z-index:400;margin:6px 0 0;position:fixed}.menu-header.svelte-1gh51ee{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.menu-item.svelte-1gh51ee{align-items:flex-start;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm,6px);cursor:pointer;text-align:left;font:inherit;color:var(--color-text);background:0 0;border:0;display:flex}.menu-item.svelte-1gh51ee:hover:not(:disabled),.menu-item.svelte-1gh51ee:focus-visible{background:var(--color-bg-tertiary)}.menu-item.svelte-1gh51ee:disabled{opacity:.6;cursor:progress}.menu-item.active.svelte-1gh51ee{background:var(--color-bg-tertiary)}.check.svelte-1gh51ee{width:14px;color:var(--color-primary);flex-shrink:0}.menu-item-text.svelte-1gh51ee{flex-direction:column;display:flex;overflow:hidden}.menu-item-label.svelte-1gh51ee{font-weight:500;font-size:var(--text-sm)}.menu-item-url.svelte-1gh51ee{font-size:var(--text-xs);color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu-divider.svelte-1gh51ee{height:1px;margin:var(--space-2) 0;background:var(--color-border)}.menu-item.link.svelte-1gh51ee{color:var(--color-primary);text-decoration:none}.picker.svelte-1owsj0q{position:relative}.trigger.svelte-1owsj0q{align-items:center;gap:var(--space-2);padding:0 var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);height:32px;font-size:var(--text-sm);color:var(--color-text);cursor:pointer;anchor-name:--session-anchor;max-width:240px;display:inline-flex;overflow:hidden}.trigger.svelte-1owsj0q:hover{background:var(--color-surface-hover)}.trigger-icon.svelte-1owsj0q{color:var(--color-text-secondary);flex-shrink:0}.dot.svelte-1owsj0q{background:var(--color-text-tertiary);border-radius:50%;flex-shrink:0;width:6px;height:6px;transition:background .12s}.dot.connected.svelte-1owsj0q{background:var(--color-success,#16a34a)}.label.svelte-1owsj0q{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.caret.svelte-1owsj0q{opacity:.6;font-size:10px}.menu.svelte-1owsj0q{padding:var(--space-2);position-anchor:--session-anchor;position-area:block-end span-inline-start;position-try-fallbacks:flip-block;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);min-width:300px;max-width:min(380px,100vw - 24px);box-shadow:var(--shadow-lg);z-index:400;margin:6px 0 0;position:fixed}.menu-header.svelte-1owsj0q{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.menu-item.svelte-1owsj0q{align-items:flex-start;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm,6px);cursor:pointer;text-align:left;font:inherit;color:var(--color-text);background:0 0;border:0;display:flex}.menu-item.svelte-1owsj0q:hover:not(:disabled),.menu-item.svelte-1owsj0q:focus-visible{background:var(--color-bg-tertiary)}.menu-item.svelte-1owsj0q:disabled{opacity:.6;cursor:not-allowed}.menu-item.active.svelte-1owsj0q{background:var(--color-bg-tertiary)}.new-btn.svelte-1owsj0q{color:var(--color-primary);font-weight:500}.check.svelte-1owsj0q{text-align:center;width:14px;color:var(--color-primary);flex-shrink:0}.menu-item-text.svelte-1owsj0q{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.menu-item-label.svelte-1owsj0q{font-weight:500;font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu-item-meta.svelte-1owsj0q{font-size:var(--text-xs);color:var(--color-text-secondary)}.menu-divider.svelte-1owsj0q{height:1px;margin:var(--space-2) 0;background:var(--color-border)}.session-list.svelte-1owsj0q{max-height:60vh;overflow-y:auto}.empty.svelte-1owsj0q,.error.svelte-1owsj0q{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text-secondary);display:flex}.error.svelte-1owsj0q{color:var(--color-danger)}.error.svelte-1owsj0q span:where(.svelte-1owsj0q):first-child{flex:1}.retry-btn.svelte-1owsj0q{font-size:var(--text-xs);border:1px solid var(--color-danger);border-radius:var(--radius-full);color:var(--color-danger);cursor:pointer;background:0 0;padding:2px 8px}.retry-btn.svelte-1owsj0q:hover{background:var(--color-danger);color:var(--color-text-inverse)}.notice.svelte-1owsj0q{margin:0 var(--space-2) var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--color-text-secondary);background:var(--color-bg-tertiary);border-radius:var(--radius-sm,6px)}.show-all.svelte-1owsj0q{width:100%;padding:var(--space-2) var(--space-3);color:var(--color-primary);font:inherit;font-size:var(--text-xs);text-align:left;cursor:pointer;border-radius:var(--radius-sm,6px);background:0 0;border:0}.show-all.svelte-1owsj0q:hover{background:var(--color-bg-tertiary)}.spinner.svelte-1owsj0q{border:2px solid;border-right-color:#0000;border-radius:50%;width:12px;height:12px;animation:.6s linear infinite svelte-1owsj0q-spin;display:inline-block}@keyframes svelte-1owsj0q-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner.svelte-1owsj0q{animation:none}}.theme-toggle.svelte-1cmi4dh{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:32px;height:32px;color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle.svelte-1cmi4dh:hover{color:var(--color-text);background:var(--color-surface-hover);border-color:var(--color-border-hover)}.theme-toggle.svelte-1cmi4dh:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.theme-toggle[aria-pressed=true].svelte-1cmi4dh{color:var(--color-primary);background:var(--color-bg-tertiary);border-color:var(--color-border)}.navbar.svelte-rfuq4y{z-index:50;background:var(--color-navbar-bg);border-bottom:1px solid var(--color-border);position:sticky;top:0}.navbar.svelte-rfuq4y:before{content:"";z-index:-1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none;position:absolute;inset:0}.navbar-inner.svelte-rfuq4y{width:100%;padding:0 var(--space-6);height:var(--nav-height);align-items:center;gap:var(--space-4);display:flex}.navbar-brand.svelte-rfuq4y{align-items:center;gap:var(--space-2);flex-shrink:0;min-width:34px;display:flex}.brand-icon.svelte-rfuq4y{flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.brand-icon.svelte-rfuq4y img:where(.svelte-rfuq4y){max-width:34px;display:block}.brand-text.svelte-rfuq4y{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-text);letter-spacing:-.01em;white-space:nowrap}.version-badge.svelte-rfuq4y{font-size:.625rem;font-weight:var(--font-medium);font-family:var(--font-mono);color:var(--color-text-tertiary);background:var(--color-bg-tertiary);border-radius:var(--radius-full);letter-spacing:.02em;white-space:nowrap;padding:2px 8px}.navbar-nav.svelte-rfuq4y{height:var(--nav-height);flex:1;justify-content:flex-start;align-items:stretch;gap:0;display:flex}.nav-tab.svelte-rfuq4y{align-items:center;gap:var(--space-2);padding:0 var(--space-3);height:32px;color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);white-space:nowrap;cursor:pointer;border-radius:var(--radius-md);margin:auto var(--space-1);transition:color var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast);background:0 0;border:1px solid #0000;text-decoration:none;display:inline-flex}.nav-tab.svelte-rfuq4y:hover{color:var(--color-text);background:var(--color-surface-hover)}.nav-tab.svelte-rfuq4y:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.nav-tab.active.svelte-rfuq4y{color:var(--color-primary);background:var(--color-bg-tertiary);border-color:var(--color-border)}.nav-icon.svelte-rfuq4y{flex-shrink:0}.navbar-actions.svelte-rfuq4y{flex-shrink:0;align-items:center;margin-left:auto;display:flex}.drawer-header.svelte-rfuq4y{display:none}.drawer-body.svelte-rfuq4y{align-items:center;gap:var(--space-2);display:flex}.drawer-section.svelte-rfuq4y{display:contents}.section-label.svelte-rfuq4y,.utility-labels.svelte-rfuq4y{display:none}.utility-row.svelte-rfuq4y{display:contents}.mobile-menu-btn.svelte-rfuq4y{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:44px;min-height:44px;color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:none}.mobile-menu-btn.svelte-rfuq4y:hover{color:var(--color-text);background:var(--color-surface-hover);border-color:var(--color-border-hover)}.mobile-menu-btn.svelte-rfuq4y:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.drawer-overlay.svelte-rfuq4y{z-index:299;background:#0006;position:fixed;inset:0}@media (width<=768px){.navbar-inner.svelte-rfuq4y{padding:0 var(--space-4)}.version-badge.svelte-rfuq4y{display:none}.mobile-menu-btn.svelte-rfuq4y{display:inline-flex}.navbar-actions.svelte-rfuq4y{inset-inline:0;background:var(--color-surface);border-top:1px solid var(--color-border);z-index:300;border-radius:16px 16px 0 0;flex-direction:column;width:100%;height:auto;max-height:min(480px,80dvh);margin-left:0;transition:transform .25s;display:flex;position:fixed;top:auto;bottom:0;overflow:visible;transform:translateY(100%);box-shadow:0 -4px 24px #0000001f}.navbar-actions.open.svelte-rfuq4y{transform:translateY(0)}@media (prefers-reduced-motion:reduce){.navbar-actions.svelte-rfuq4y{transition:none}}.drawer-header.svelte-rfuq4y{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);flex-shrink:0;display:flex}.drawer-title.svelte-rfuq4y{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text);flex:1}.drawer-close.svelte-rfuq4y{min-width:44px;min-height:44px;color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.drawer-close.svelte-rfuq4y:hover{background:var(--color-bg-secondary);color:var(--color-text)}.drawer-close.svelte-rfuq4y:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.drawer-body.svelte-rfuq4y{padding:var(--space-4) var(--space-5);flex-direction:column;flex:1;gap:0;display:flex;overflow:visible auto}.drawer-section.svelte-rfuq4y{gap:var(--space-3);padding:var(--space-4) 0;border-top:1px solid var(--color-border);flex-direction:column;display:flex;overflow:visible}.drawer-section.svelte-rfuq4y:first-child{border-top:none;padding-top:0}.section-label.svelte-rfuq4y{font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);display:block}.control-row.svelte-rfuq4y{width:100%;overflow:visible}.control-row.svelte-rfuq4y .trigger{width:100%;max-width:none;height:44px;padding:0 var(--space-3);justify-content:flex-start}.control-row.svelte-rfuq4y .trigger .label,.control-row.svelte-rfuq4y .trigger .dot,.control-row.svelte-rfuq4y .trigger .caret,.control-row.svelte-rfuq4y .trigger .trigger-icon{display:inline-flex}.control-row--voice.svelte-rfuq4y .voice-control{gap:var(--space-2);flex-wrap:wrap}.utility-row.svelte-rfuq4y{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-tertiary);display:flex}.utility-labels.svelte-rfuq4y{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.utility-title.svelte-rfuq4y{color:var(--color-text);font-size:var(--text-sm);font-weight:var(--font-medium)}.utility-copy.svelte-rfuq4y{color:var(--color-text-secondary);font-size:var(--text-xs)}}@media (width<=640px){.navbar-inner.svelte-rfuq4y{align-items:center;gap:var(--space-2);padding:0 var(--space-4);grid-template-columns:auto 1fr auto;display:grid}.brand-text.svelte-rfuq4y{display:none}.navbar-nav.svelte-rfuq4y{flex:unset;height:var(--nav-height);justify-content:center}.nav-tab.svelte-rfuq4y{height:var(--nav-height);padding:0 var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary);transition:color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin:0;padding-bottom:2px}.nav-tab.svelte-rfuq4y:hover{color:var(--color-text);background:0 0}.nav-tab.active.svelte-rfuq4y{border-color:var(--color-primary);color:var(--color-primary);background:0 0}.mobile-menu-btn.svelte-rfuq4y{margin-left:0}}@media (width<=400px){.nav-tab.svelte-rfuq4y{padding:0 var(--space-1);font-size:var(--text-xs)}.navbar-inner.svelte-rfuq4y{padding:0 var(--space-3)}}@media (width<=340px){.nav-label.svelte-rfuq4y{display:none}}.auth-gate.svelte-1vviwqr{max-width:none;height:100dvh;padding:var(--space-6);box-sizing:border-box;background-color:var(--color-bg-secondary);background-image:url(../../../fu.png);background-position:left -2% bottom -2%;background-repeat:no-repeat;background-size:35%;justify-content:center;align-items:center;margin:0;display:flex;overflow:hidden}.auth-card.svelte-1vviwqr{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:460px;box-shadow:var(--shadow-lg);padding:var(--space-6);box-sizing:border-box;margin-bottom:10vh}.auth-brand.svelte-1vviwqr{align-items:center;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.auth-brand.svelte-1vviwqr h1:where(.svelte-1vviwqr){font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text)}.auth-brand.svelte-1vviwqr p:where(.svelte-1vviwqr){font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:4px}.brand-icon.svelte-1vviwqr{flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.brand-icon.svelte-1vviwqr img:where(.svelte-1vviwqr){max-width:34px}.auth-form.svelte-1vviwqr{gap:var(--space-3);display:grid}.auth-form.svelte-1vviwqr label:where(.svelte-1vviwqr){font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary)}.auth-form.svelte-1vviwqr input:where(.svelte-1vviwqr):not(.sr-only){border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);width:100%;height:40px;color:var(--color-text);font-size:var(--text-sm);padding:0 12px}.auth-form.svelte-1vviwqr input:where(.svelte-1vviwqr):not(.sr-only):focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle);outline:none}.auth-error.svelte-1vviwqr{color:var(--color-danger);font-size:var(--text-sm);margin:0}.sr-only.svelte-1vviwqr{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.token-input-wrapper.svelte-1vviwqr{align-items:center;gap:var(--space-2);display:flex}.token-input-wrapper.svelte-1vviwqr input:where(.svelte-1vviwqr){flex:1}.btn-toggle.svelte-1vviwqr{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-toggle.svelte-1vviwqr:hover{color:var(--color-text);border-color:var(--color-border-hover);background:var(--color-surface-hover)}.btn-toggle.svelte-1vviwqr:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}@media (width<=480px){.auth-gate.svelte-1vviwqr{padding:var(--space-3);background-size:45%}.auth-card.svelte-1vviwqr{padding:var(--space-4);margin-bottom:5vh}.auth-brand.svelte-1vviwqr h1:where(.svelte-1vviwqr){font-size:var(--text-lg)}}
@@ -1 +1 @@
1
- import"./BwTF6U35.js";import{i as e,n as t,r as n}from"./s2DJ2Hzc.js";var r={get data(){return e.data},get error(){return e.error},get form(){return e.form},get params(){return e.params},get route(){return e.route},get state(){return e.state},get status(){return e.status},get url(){return e.url}};Object.defineProperty({get from(){return n.current?n.current.from:null},get to(){return n.current?n.current.to:null},get type(){return n.current?n.current.type:null},get willUnload(){return n.current?n.current.willUnload:null},get delta(){return n.current?n.current.delta:null},get complete(){return n.current?n.current.complete:null}},"current",{get(){throw Error(`Replace navigating.current.<prop> with navigating.<prop>`)}}),t.updated.check;var i=r;export{i as t};
1
+ import"./BwTF6U35.js";import{i as e,n as t,r as n}from"./DEBerhwE.js";var r={get data(){return e.data},get error(){return e.error},get form(){return e.form},get params(){return e.params},get route(){return e.route},get state(){return e.state},get status(){return e.status},get url(){return e.url}};Object.defineProperty({get from(){return n.current?n.current.from:null},get to(){return n.current?n.current.to:null},get type(){return n.current?n.current.type:null},get willUnload(){return n.current?n.current.willUnload:null},get delta(){return n.current?n.current.delta:null},get complete(){return n.current?n.current.complete:null}},"current",{get(){throw Error(`Replace navigating.current.<prop> with navigating.<prop>`)}}),t.updated.check;var i=r;export{i as t};
@@ -0,0 +1 @@
1
+ import{I as e,L as t,Q as n,R as r,Z as i,r as a,t as o,tt as s}from"./BwTF6U35.js";import{i as c,n as l,r as u,t as d}from"./BuFlayix.js";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,t,n,r=!1){let i=new URL(e);Object.defineProperty(i,"searchParams",{value:new Proxy(i.searchParams,{get(e,r){if(r===`get`||r===`getAll`||r===`has`)return(t,...i)=>(n(t),e[r](t,...i));t();let i=Reflect.get(e,r);return typeof i==`function`?i.bind(e):i}}),enumerable:!0,configurable:!0});let a=[`href`,`pathname`,`search`,`toString`,`toJSON`];r&&a.push(`hash`);for(let n of a)Object.defineProperty(i,n,{get(){return t(),e[n]},enumerable:!0,configurable:!0});return i}function g(){}function _(...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)}var te=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||`GET`)!==`GET`&&v.delete(b(e)),te(e,t));var v=new Map;function y(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&&v.set(n,{body:e,init:t,ttl:1e3*Number(i)}),r.getAttribute(`data-b64`)!==null&&(e=d(e)),Promise.resolve(new Response(e,t))}return window.fetch(e,t)}function ne(e,t,n){if(v.size>0){let t=b(e,n),r=v.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);v.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="${_(...e)}"]`}return n}var re=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/,x=/^\/\((?:.+)\)$/;function ie(e){let t=[];return{pattern:e===`/`||x.test(e)?/^\/$/:RegExp(`^${oe(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 ce(String.fromCharCode(parseInt(e.slice(2),16)));if(e.startsWith(`u+`))return ce(String.fromCharCode(...e.slice(2).split(`-`).map(e=>parseInt(e,16))));let[,r,a,o,s]=re.exec(e);return t.push({name:o,matcher:s,optional:!!r,rest:!!a,chained:a?n===1&&i[0]===``:!1}),a?`([^]*?)`:r?`([^/]*)?`:`([^/]+?)`}return ce(e)}).join(``)}).join(``)}/?$`),params:t}}function ae(e){return e!==``&&!/^\([^)]+\)$/.test(e)}function oe(e){return e.slice(1).split(`/`).filter(ae)}function se(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 ce(e){return e.normalize().replace(/[[\]]/g,`\\$&`).replace(/%/g,`%25`).replace(/\//g,`%2[Ff]`).replace(/\?/g,`%3[Ff]`).replace(/#/g,`%23`).replace(/[.*+?^${}()|\\]/g,`\\$&`)}function le({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}=ie(t),u={id:t,exec:e=>{let t=c.exec(e);if(t)return se(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 ue(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function de(e,t,n=JSON.stringify){let r=n(t);try{sessionStorage[e]=r}catch{}}var S=globalThis.__sveltekit_1o2j4hb?.base??``,fe=globalThis.__sveltekit_1o2j4hb?.assets??S??``,pe=`0.11.0-rc.8`,me=`sveltekit:snapshot`,he=`sveltekit:scroll`,ge=`sveltekit:states`,C=`sveltekit:history`,w=`sveltekit:navigation`,T={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},_e=location.origin;function ve(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 E(){return{x:pageXOffset,y:pageYOffset}}function D(e,t){return e.getAttribute(`data-sveltekit-${t}`)}var ye={...T,"":T.hover};function be(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function xe(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()===`A`&&e.hasAttribute(`href`))return e;e=be(e)}}function Se(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||Ee(r,t,n)||(e.getAttribute(`rel`)||``).split(/\s+/).includes(`external`),o=r?.origin===_e&&e.hasAttribute(`download`);return{url:r,external:a,target:i,download:o}}function O(e){let t=null,n=null,r=null,i=null,a=null,o=null,s=e;for(;s&&s!==document.documentElement;)r===null&&(r=D(s,`preload-code`)),i===null&&(i=D(s,`preload-data`)),t===null&&(t=D(s,`keepfocus`)),n===null&&(n=D(s,`noscroll`)),a===null&&(a=D(s,`reload`)),o===null&&(o=D(s,`replacestate`)),s=be(s);function c(e){switch(e){case``:case`true`:return!0;case`off`:case`false`:return!1;default:return}}return{preload_code:ye[r??`off`],preload_data:ye[i??`off`],keepfocus:c(t),noscroll:c(n),reload:c(a),replace_state:c(o)}}function Ce(e){let t=s(e),n=!0;function r(){n=!0,t.update(e=>e)}function i(e){n=!1,t.set(e)}function a(e){let r;return t.subscribe(t=>{(r===void 0||n&&t!==r)&&e(r=t)})}return{notify:r,set:i,subscribe:a}}var we={v:g};function Te(){let{set:e,subscribe:t}=s(!1);async function n(){clearTimeout(void 0);try{let t=await fetch(`${fe}/_app/version.json`,{headers:{pragma:`no-cache`,"cache-control":`no-cache`}});if(!t.ok)return!1;let n=(await t.json()).version!==pe;return n&&(e(!0),we.v(),clearTimeout(void 0)),n}catch{return!1}}return{subscribe:t,check:n}}function Ee(e,t,n){return e.origin!==_e||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function De(e){}var Oe=new Set([`load`,`prerender`,`csr`,`ssr`,`trailingSlash`,`config`]);new Set([...Oe,`entries`]);var ke=new Set([...Oe]);new Set([...ke,`actions`,`entries`]),new Set([`GET`,`POST`,`PATCH`,`PUT`,`DELETE`,`OPTIONS`,`HEAD`,`fallback`,`prerender`,`trailingSlash`,`config`,`entries`]);function Ae(e){return e.filter(e=>e!=null)}function k(e,t){return e+`/`+t}function je(e){return e instanceof l||e instanceof c?e.status:500}function Me(e){return e instanceof c?e.text:`Internal Error`}var A,j,M,Ne=a.toString().includes(`$$`)||/function \w+\(\) \{\}/.test(a.toString()),Pe=`a:`;Ne?(A={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(Pe)},j={current:null},M={current:!1}):(A=new class{#e=n({});get data(){return e(this.#e)}set data(e){i(this.#e,e)}#t=n(null);get form(){return e(this.#t)}set form(e){i(this.#t,e)}#n=n(null);get error(){return e(this.#n)}set error(e){i(this.#n,e)}#r=n({});get params(){return e(this.#r)}set params(e){i(this.#r,e)}#i=n({id:null});get route(){return e(this.#i)}set route(e){i(this.#i,e)}#a=n({});get state(){return e(this.#a)}set state(e){i(this.#a,e)}#o=n(-1);get status(){return e(this.#o)}set status(e){i(this.#o,e)}#s=n(new URL(Pe));get url(){return e(this.#s)}set url(e){i(this.#s,e)}},j=new class{#e=n(null);get current(){return e(this.#e)}set current(e){i(this.#e,e)}},M=new class{#e=n(!1);get current(){return e(this.#e)}set current(e){i(this.#e,e)}},we.v=()=>M.current=!0);function Fe(e){Object.assign(A,e)}var Ie={spanContext(){return Le},setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording(){return!1},recordException(){return this},addLink(){return this},addLinks(){return this}},Le={traceId:``,spanId:``,traceFlags:0},{onMount:Re,tick:ze}=o,Be=new Set([`icon`,`shortcut icon`,`apple-touch-icon`]),N=null,P=ue(`sveltekit:scroll`)??{},F=ue(`sveltekit:snapshot`)??{},I={url:Ce({}),page:Ce({}),navigating:s(null),updated:Te()};function Ve(e){P[e]=E()}function He(e,t){let n=e+1;for(;P[n];)delete P[n],n+=1;for(n=t+1;F[n];)delete F[n],n+=1}function L(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(g)}async function Ue(){if(`serviceWorker`in navigator){let e=await navigator.serviceWorker.getRegistration(S||`/`);e&&await e.update()}}var We,Ge,R,z,Ke,B,V=[],H=[],U=null;function W(){U?.fork?.then(e=>e?.discard()),U=null}var qe=new Map,Je=new Set,Ye=new Set,G=new Set,K={branch:[],error:null,url:null,nav:null},Xe=!1,Ze=!1,Qe=!0,q=!1,J=!1,$e=!1,et=!1,tt,Y,X,Z,nt=new Set,rt=new Map,it=new Map;async function at(e,t,n){globalThis.__sveltekit_1o2j4hb&&(globalThis.__sveltekit_1o2j4hb.query,globalThis.__sveltekit_1o2j4hb.prerender),document.URL!==location.href&&(location.href=location.href),B=e,await e.hooks.init?.(),We=le(e),z=document.documentElement,Ke=t,Ge=e.nodes[0],R=e.nodes[1],Ge(),R(),Y=history.state?.[C],X=history.state?.[w],Y||(Y=X=Date.now(),history.replaceState({...history.state,[C]:Y,[w]:X},``));let r=P[Y];function i(){r&&(history.scrollRestoration=`manual`,scrollTo(r.x,r.y))}n?(i(),await Nt(Ke,n)):(await Q({type:`enter`,url:ve(B.hash?zt(new URL(location.href)):location.href),replace_state:!0}),i()),Mt()}function ot(){V.length=0,et=!1}function st(e){H.some(e=>e?.snapshot)&&(F[e]=H.map(e=>e?.snapshot?.capture()))}function ct(e){F[e]?.forEach((e,t)=>{H[t]?.snapshot?.restore(e)})}function lt(){Ve(Y),de(he,P),st(X),de(me,F)}async function ut(e,t,n,i){let a,o;t.invalidateAll&&W(),await Q({type:`goto`,url:ve(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:i,accept:()=>{if(t.invalidateAll){et=!0,a=new Set;for(let[e,t]of rt)for(let n of t.keys())a.add(k(e,n));o=new Set;for(let[e,t]of it)for(let n of t.keys())o.add(k(e,n))}t.invalidate&&t.invalidate.forEach(jt)}}),t.invalidateAll&&r().then(r).then(()=>{for(let[e,t]of rt)for(let[n,{resource:r}]of t)a?.has(k(e,n))&&r.refresh();for(let[e,t]of it)for(let[n,{resource:r}]of t)o?.has(k(e,n))&&r.reconnect()})}async function dt(e){if(e.id!==U?.id){W();let t={};nt.add(t),U={id:e.id,token:t,promise:xt({...e,preload:t}).then(e=>(nt.delete(t),e.type===`loaded`&&e.state.error&&W(),e)),fork:null}}return U.promise}async function ft(e){let t=(await Tt(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(e=>e[1]()))}async function pt(e,t,n){let r={params:K.params,route:{id:K.route?.id??null},url:new URL(location.href)};if(K={...e.state,nav:r},Fe(e.props.page),tt=new B.root({target:t,props:{...e.props,stores:I,components:H},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),ct(X),n){let e={from:null,to:{...r,scroll:P[Y]??E()},willUnload:!1,type:`enter`,complete:Promise.resolve()};G.forEach(t=>t(e))}Ze=!0}async function mt({url:e,params:t,branch:n,errors:r,status:i,error:a,route:o,form:s}){let c=`never`;if(S&&(e.pathname===S||e.pathname===S+`/`))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:Ae(n).map(e=>e.node.component),page:Rt(A)}};s!==void 0&&(l.props.form=s);let u={},d=!A,p=0;for(let e=0;e<Math.max(n.length,K.branch.length);e+=1){let t=n[e],r=K.branch[e];t?.data!==r?.data&&(d=!0),t&&(u={...u,...t.data},d&&(l.props[`data_${p}`]=u),p+=1)}return(!K.url||e.href!==K.url.href||K.error!==a||s!==void 0&&s!==A.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:A.data}),l}async function ht({loader:e,parent:t,url:n,params:r,route:i,server_data_node:a}){let o=null,s=!0,c={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},l=await e();if(l.universal?.load){function e(...e){for(let t of e){let{href:e}=new URL(t,n);c.dependencies.add(e)}}let u={tracing:{enabled:!1,root:Ie,current:Ie},route:new Proxy(i,{get:(e,t)=>(s&&(c.route=!0),e[t])}),params:new Proxy(r,{get:(e,t)=>(s&&c.params.add(t),e[t])}),data:a?.data??null,url:h(n,()=>{s&&(c.url=!0)},e=>{s&&c.search_params.add(e)},B.hash),async fetch(t,r){t instanceof Request&&(r={body:t.method===`GET`||t.method===`HEAD`?void 0:await t.blob(),cache:t.cache,credentials:t.credentials,headers:[...t.headers].length>0?t?.headers:void 0,integrity:t.integrity,keepalive:t.keepalive,method:t.method,mode:t.mode,redirect:t.redirect,referrer:t.referrer,referrerPolicy:t.referrerPolicy,signal:t.signal,...r});let{resolved:i,promise:a}=gt(t,r,n);return s&&e(i.href),a},setHeaders:g,depends:e,parent(){return s&&(c.parent=!0),t()},untrack(e){s=!1;try{return e()}finally{s=!0}}};o=await l.universal.load.call(null,u)??null}return{node:l,loader:e,server:a,universal:l.universal?.load?{type:`data`,data:o,uses:c}:null,data:o??a?.data??null,slash:l.universal?.trailingSlash??a?.slash}}function gt(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:Ze?ne(r,i.href,t):y(r,t)}}function _t(e,t,n,r,i,a){if(et)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]!==K.params[e])return!0;for(let e of i.dependencies)if(V.some(t=>t(new URL(e))))return!0;return!1}function vt(e,t){return e?.type===`data`?e:e?.type===`skip`?t??null:null}function yt(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 bt({error:e,url:t,route:n,params:r}){return{type:`loaded`,state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:Rt(A),constructors:[]}}}async function xt({id:e,invalidating:t,url:n,params:r,route:i,preload:a}){if(U?.id===e)return nt.delete(U.token),U.promise;let{errors:o,layouts:s,leaf:c}=i,d=[...s,c];o.forEach(e=>e?.().catch(g)),d.forEach(e=>e?.[1]().catch(g));let f=K.url?e!==Dt(K.url):!1,p=K.route?i.id!==K.route.id:!1,ee=yt(K.url,n),m=!1,h=d.map(async(e,t)=>{if(!e)return;let a=K.branch[t];return e[1]===a?.loader&&!_t(m,p,f,ee,a.universal?.uses,r)?a:(m=!0,ht({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:vt(e[0]?{type:`skip`}:null,e[0]?a?.server:void 0)}))});for(let e of h)e.catch(g);let _=[];for(let e=0;e<d.length;e+=1)if(d[e])try{_.push(await h[e])}catch(t){if(t instanceof u)return{type:`redirect`,location:t.location};if(nt.has(a))return bt({error:await $(t,{params:r,url:n,route:{id:i.id}}),url:n,params:r,route:i});let s=je(t),c;if(t instanceof l)c=t.body;else{if(await I.updated.check())return await Ue(),await L(n);c=await $(t,{params:r,url:n,route:{id:i.id}})}let d=await St(e,_,o);return d?mt({url:n,params:r,branch:_.slice(0,d.idx).concat(d.node),errors:o,status:s,error:c,route:i}):await kt(n,{id:i.id},c,s)}else _.push(void 0);return mt({url:n,params:r,branch:_,errors:o,status:200,error:null,route:i,form:t?void 0:null})}async function St(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 Ct({status:e,error:t,url:n,route:r}){let i={};try{return mt({url:n,params:i,branch:[await ht({loader:Ge,url:n,params:i,route:r,parent:()=>Promise.resolve({}),server_data_node:vt(null)}),{node:await R(),loader:R,universal:null,server:null,data:null}],status:e,error:t,errors:[],route:null})}catch(e){if(e instanceof u)return ut(new URL(e.location,location.href),{},0);throw e}}async function wt(e){let t=e.href;if(qe.has(t))return qe.get(t);let n;try{let r=(async()=>{let t=await B.hooks.reroute({url:new URL(e),fetch:async(t,n)=>gt(t,n,e).promise})??e;if(typeof t==`string`){let n=new URL(e);B.hash?n.hash=t:n.pathname=t,t=n}return t})();qe.set(t,r),n=await r}catch{qe.delete(t);return}return n}async function Tt(e,t){if(e&&!Ee(e,S,B.hash)){let n=await wt(e);if(!n)return;let r=Et(n);for(let n of We){let i=n.exec(r);if(i)return{id:Dt(e),invalidating:t,route:n,params:ee(i),url:e}}}}function Et(e){return p(B.hash?e.hash.replace(/^#/,``).replace(/[?#].+/,``):e.pathname.slice(S.length))||`/`}function Dt(e){return(B.hash?e.hash.replace(/^#/,``):e.pathname)+e.search}function Ot({url:e,type:t,intent:n,delta:r,event:i,scroll:a}){let o=!1,s=Lt(K,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||Je.forEach(e=>e(c)),o?null:s}async function Q({type:e,url:n,popped:i,keepfocus:a,noscroll:o,replace_state:s,state:l={},redirect_count:u=0,nav_token:d={},accept:f=g,block:p=g,event:ee}){let m=Z;Z=d;let h=await Tt(n,!1),_=e===`enter`?Lt(K,h,n,e):Ot({url:n,type:e,delta:i?.delta,intent:h,scroll:i?.scroll,event:ee});if(!_){p(),Z===d&&(Z=m);return}let te=Y,v=X;f(),q=!0,Ze&&_.navigation.type!==`enter`&&I.navigating.set(j.current=_.navigation);let y=h&&await xt(h);if(!y){if(Ee(n,S,B.hash))return await L(n,s);y=await kt(n,{id:null},await $(new c(404,`Not Found`,`Not found: ${n.pathname}`),{url:n,params:{},route:{id:null}}),404,s)}if(n=h?.url||n,Z!==d)return _.reject(Error(`navigation aborted`)),!1;if(y.type===`redirect`){if(u<20){await Q({type:e,url:new URL(y.location,n),popped:i,keepfocus:a,noscroll:o,replace_state:s,state:l,redirect_count:u+1,nav_token:d}),_.fulfil(void 0);return}y=await Ct({status:500,error:await $(Error(`Redirect loop`),{url:n,params:{},route:{id:null}}),url:n,route:{id:null}})}else y.props.page.status>=400&&await I.updated.check()&&(await Ue(),await L(n,s));if(ot(),Ve(te),st(v),y.props.page.url.pathname!==n.pathname&&(n.pathname=y.props.page.url.pathname),l=i?i.state:l,!i){let e=+!s,t={[C]:Y+=e,[w]:X+=e,[ge]:l};(s?history.replaceState:history.pushState).call(history,t,``,n),s||He(Y,X)}let ne=h&&U?.id===h.id?U.fork:null;U?.fork&&!ne&&W(),U=null,y.props.page.state=l;let b;if(Ze){let e=(await Promise.all(Array.from(Ye,e=>e(_.navigation)))).filter(e=>typeof e==`function`);if(e.length>0){function t(){e.forEach(e=>{G.delete(e)})}e.push(t),e.forEach(e=>{G.add(e)})}let r=_.navigation.to;K={...y.state,nav:{params:r.params,route:r.route,url:r.url}},y.props.page&&(y.props.page.url=n);let i=ne&&await ne;i?b=i.commit():(N=null,tt.$set(y.props),N&&Object.assign(y.props.page,N),Fe(y.props.page),b=t?.()),$e=!0}else await pt(y,Ke,!1);let{activeElement:re}=document;if(await b,await r(),await r(),Z!==d)return _.reject(Error(`navigation aborted`)),!1;y.props.page&&N&&Object.assign(y.props.page,N);let x=null;if(Qe){let e=i?i.scroll:o?E():null;e?scrollTo(e.x,e.y):(x=n.hash&&document.getElementById(Bt(n)))?x.scrollIntoView():scrollTo(0,0)}let ie=document.activeElement!==re&&document.activeElement!==document.body;!a&&!ie&&It(n,!x),Qe=!0,q=!1,e===`popstate`&&ct(X),_.fulfil(void 0),_.navigation.to&&(_.navigation.to.scroll=E()),G.forEach(e=>e(_.navigation)),I.navigating.set(j.current=null)}async function kt(e,t,n,r,i){return e.origin===_e&&e.pathname===location.pathname&&!Xe?await Ct({status:r,error:n,url:e,route:t}):await L(e,i)}function At(){let e,t={element:void 0,href:void 0},n;z.addEventListener(`mousemove`,t=>{let n=t.target;clearTimeout(e),e=setTimeout(()=>{a(n,T.hover)},20)});function r(e){e.defaultPrevented||a(e.composedPath()[0],T.tap)}z.addEventListener(`mousedown`,r),z.addEventListener(`touchstart`,r,{passive:!0});let i=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(ft(new URL(t.target.href)),i.unobserve(t.target))},{threshold:0});async function a(e,r){let i=xe(e,z),a=i===t.element&&i?.href===t.href&&r>=n;if(!i||a)return;let{url:o,external:s,download:c}=Se(i,S,B.hash);if(s||c)return;let l=O(i),u=o&&Dt(K.url)===Dt(o);if(!(l.reload||u))if(r<=l.preload_data){t={element:i,href:i.href},n=T.tap;let e=await Tt(o,!1);if(!e)return;dt(e)}else r<=l.preload_code&&(t={element:i,href:i.href},n=r,ft(o))}function o(){i.disconnect();for(let e of z.querySelectorAll(`a`)){let{url:t,external:n,download:r}=Se(e,S,B.hash);if(n||r)continue;let a=O(e);a.reload||(a.preload_code===T.viewport&&i.observe(e),a.preload_code===T.eager&&ft(t))}}G.add(o),o()}function $(e,t){if(e instanceof l)return e.body;let n=je(e),r=Me(e);return B.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function jt(e){if(typeof e==`function`)V.push(e);else{let{href:t}=new URL(e,location.href);V.push(e=>e.href===t)}}function Mt(){history.scrollRestoration=`manual`,addEventListener(`beforeunload`,e=>{let t=!1;if(lt(),!q){let e=Lt(K,void 0,null,`leave`),n={...e.navigation,cancel:()=>{t=!0,e.reject(Error(`navigation cancelled`))}};Je.forEach(e=>e(n))}t?(e.preventDefault(),e.returnValue=``):history.scrollRestoration=`auto`}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&lt()}),!navigator.connection?.saveData&&!/2g/.test(navigator.connection?.effectiveType)&&At(),z.addEventListener(`click`,async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;let n=xe(t.composedPath()[0],z);if(!n)return;let{url:r,external:i,target:a,download:o}=Se(n,S,B.hash);if(!r)return;if(a===`_parent`||a===`_top`){if(window.parent!==window)return}else if(a&&a!==`_self`)return;let s=O(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol===`https:`||r.protocol===`http:`)||o)return;let[c,l]=(B.hash?r.hash.replace(/^#/,``):r.href).split(`#`),u=c===m(location);if(i||s.reload&&(!u||!l)){Ot({url:r,type:`link`,event:t})?q=!0:t.preventDefault();return}if(l!==void 0&&u){let[,i]=K.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,Ve(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})}),z.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(Ee(r,S,!1))return;let i=e.target,a=O(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(!Ft)if(t.state?.[`sveltekit:history`]){let n=t.state[C];if(Z={},n===Y)return;let r=P[n],i=t.state[`sveltekit:states`]??{},a=new URL(t.state[`sveltekit:pageurl`]??location.href),o=t.state[w],s=K.url?m(location)===m(K.url):!1;if(o===X&&($e||s)){i!==A.state&&(A.state=i),e(a),P[Y]=E(),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)),B.hash&&location.reload())}),addEventListener(`hashchange`,()=>{J&&(J=!1,history.replaceState({...history.state,[C]:++Y,[w]:X},``,location.href))});for(let e of document.querySelectorAll(`link`))Be.has(e.rel)&&(e.href=e.href);addEventListener(`pageshow`,e=>{e.persisted&&I.navigating.set(j.current=null)});function e(e){K.url=A.url=e,I.page.set(Rt(A)),I.page.notify()}}async function Nt(e,{status:t=200,error:n,node_ids:r,params:i,route:a,server_route:o,data:s,form:c}){Xe=!0;let l=new URL(location.href),d;({params:i={},route:a={id:null}}=await Tt(l,!1)||{}),d=We.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=Pt(r.uses)),ht({loader:B.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:vt(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 mt({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 L(new URL(t.location,location.href));return}f=await Ct({status:je(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 pt(f,e,p)}function Pt(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 Ft=!1;function It(e,t=!0){let n=document.querySelector(`[autofocus]`);if(n)n.focus();else{let n=Bt(e);if(n&&document.getElementById(n)){let{x:r,y:i}=E();setTimeout(()=>{let a=history.state;Ft=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(a,``,e),t&&scrollTo(r,i),Ft=!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 Lt(e,t,n,r,i=null){let a,o,s=new Promise((e,t)=>{a=e,o=t});return s.catch(g),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:E()},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 Rt(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 zt(e){let t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function Bt(e){let t;if(B.hash){let[,,n]=e.hash.split(`#`,3);t=n??``}else t=e.hash.slice(1);return decodeURIComponent(t)}export{M as a,A as i,I as n,De as o,j as r,at as t};
@@ -0,0 +1,5 @@
1
+ import{A as e,D as t,E as n,F as r,H as i,I as a,J as o,N as s,O as c,P as l,Q as u,V as d,X as f,Y as p,Z as m,ct as h,d as g,et as _,it as v,j as y,k as b,l as x,n as S,q as C,r as w,rt as T,s as E,st as D,u as O,v as k,w as A}from"./BwTF6U35.js";import"./xihTtKlq.js";import{B as j,J as M,O as N,Y as P,a as F,c as I,g as ee,i as L,l as R,n as z,o as B,r as V,s as H,t as U,u as W,z as G}from"./DXseS2Vw.js";import{t as te}from"./BBQSZM0g.js";var K=1e3,q=3e4,J=`/proxy/assistant/event`;function Y(e){let t={},n=[];for(let r of e.split(`
2
+ `))!r||r.startsWith(`:`)||(r.startsWith(`data:`)?n.push(r.replace(/^data:\s?/,``)):r.startsWith(`event:`)?t.event=r.replace(/^event:\s?/,``):r.startsWith(`id:`)&&(t.id=r.replace(/^id:\s?/,``)));return n.length>0&&(t.data=n.join(`
3
+ `)),t}function ne(e,t){let n=t.properties?.info,r=n?.id;if(r)switch(t.type){case`session.created`:e.onCreated(r);return;case`session.updated`:e.onUpdated(r,{title:n?.title,updatedAt:n?.time?.updated});return;case`session.deleted`:e.onDeleted(r);return;default:return}}function X(e){let t=!1,n=new AbortController,r,i=e=>new Promise(t=>{let r=setTimeout(t,e);n.signal.addEventListener(`abort`,()=>{clearTimeout(r),t()},{once:!0})});async function a(){let t={accept:`text/event-stream`};r!==void 0&&(t[`Last-Event-ID`]=r);let i=await fetch(J,{method:`GET`,headers:t,credentials:`include`,signal:n.signal});if(!i.ok||!i.body)throw Error(`SSE stream failed: ${i.status} ${i.statusText}`);e.onConnect?.();let a=i.body.pipeThrough(new TextDecoderStream).getReader(),o=``;try{for(;;){let{done:t,value:n}=await a.read();if(t)break;o+=n;let i=o.split(`
4
+
5
+ `);o=i.pop()??``;for(let t of i){if(!t)continue;let n=Y(t);if(n.id!==void 0&&(r=n.id),!n.data)continue;let i;try{i=JSON.parse(n.data)}catch(e){console.warn(`[session-events] Bad JSON in SSE frame`,e);continue}ne(e,i)}}}finally{try{a.releaseLock()}catch{}}}return(async()=>{let r=0;for(;!t;)try{r++,await a(),r=0,t||await i(500)}catch(a){if(t)return;let o=a instanceof Error?a:Error(String(a));o.name!==`AbortError`&&(console.warn(`[session-events] SSE error, reconnecting`,o),e.onDisconnect?.(o)),await i(Math.min(K*2**Math.max(0,r-1),q)),n.signal.aborted&&!t&&(n=new AbortController)}})(),()=>{t=!0;try{n.abort()}catch{}}}function Z(){return{sessions:[],sessionsLoaded:!1,sessionsLoading:!1,sessionsError:``,activeSessionId:null}}var Q=new class{#e=u(f(new Map));get byEndpoint(){return a(this.#e)}set byEndpoint(e){m(this.#e,e,!0)}#t=u(`default`);get activeEndpointId(){return a(this.#t)}set activeEndpointId(e){m(this.#t,e,!0)}#n=u(f([]));get entries(){return a(this.#n)}set entries(e){m(this.#n,e,!0)}#r=u(!1);get entriesLoading(){return a(this.#r)}set entriesLoading(e){m(this.#r,e,!0)}#i=u(!1);get sending(){return a(this.#i)}set sending(e){m(this.#i,e,!0)}#a=u(``);get error(){return a(this.#a)}set error(e){m(this.#a,e,!0)}#o=u(!1);get liveConnected(){return a(this.#o)}set liveConnected(e){m(this.#o,e,!0)}_unsubscribeEvents=null;#s=_(()=>this.byEndpoint.get(this.activeEndpointId)?.activeSessionId??null);get activeSessionId(){return a(this.#s)}set activeSessionId(e){m(this.#s,e)}setEndpointState(e,t){let n={...this.byEndpoint.get(e)??Z(),...t};return this.byEndpoint=new Map(this.byEndpoint).set(e,n),n}async onEndpointChanged(e){if(this.sending){this.error=`Wait for the current reply to finish before switching.`;return}this.activeEndpointId=e,this.entries=[],this.error=``,this.byEndpoint.get(e)?.sessionsLoaded||await this.loadSessions();let t=this.byEndpoint.get(e)??Z(),n=t.sessions,r=t.activeSessionId,i=null;r&&n.some(e=>e.id===r)?i=r:n.length>0&&(i=n[0].id),i!==t.activeSessionId&&this.setEndpointState(e,{activeSessionId:i}),i&&await this.openSession(i),this._resubscribeEvents()}_resubscribeEvents(){if(this._unsubscribeEvents){try{this._unsubscribeEvents()}catch(e){console.warn(`[chat] failed to unsubscribe from previous event stream`,e)}this._unsubscribeEvents=null}this.liveConnected=!1,this._unsubscribeEvents=X({onCreated:e=>{this._onSessionCreated(e)},onUpdated:(e,t)=>{this._onSessionUpdated(e,t)},onDeleted:e=>{this._onSessionDeleted(e)},onConnect:()=>{this.liveConnected=!0},onDisconnect:()=>{this.liveConnected=!1}})}_onSessionCreated(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t)??Z();if(n.sessions.some(t=>t.id===e))return;let r=Date.now(),i={id:e,title:``,createdAt:r,updatedAt:r};this.setEndpointState(t,{sessions:[i,...n.sessions],sessionsLoaded:!0})}_onSessionUpdated(e,t){let n=this.activeEndpointId,r=this.byEndpoint.get(n);if(!r)return;let i=r.sessions.findIndex(t=>t.id===e);if(i===-1)return;let a=r.sessions[i],o=[{...a,title:t?.title??a.title,updatedAt:t?.updatedAt??Date.now()},...r.sessions.filter(t=>t.id!==e)];o.sort((e,t)=>t.updatedAt-e.updatedAt),this.setEndpointState(n,{sessions:o})}async _onSessionDeleted(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t);if(!n||!n.sessions.some(t=>t.id===e))return;let r=n.sessions.filter(t=>t.id!==e),i=n.activeSessionId===e,a=i?r[0]?.id??null:n.activeSessionId;this.setEndpointState(t,{sessions:r,activeSessionId:a}),i&&(this.entries=[],a&&await this.openSession(a))}async loadSessions(){let e=this.activeEndpointId;this.setEndpointState(e,{sessionsLoading:!0,sessionsError:``});try{let t=await j();this.setEndpointState(e,{sessions:t,sessionsLoaded:!0,sessionsLoading:!1,sessionsError:``})}catch(t){let n=t,r=n.status===503||n.status===502?`Assistant is not reachable.`:n.message??`Failed to load sessions.`;this.setEndpointState(e,{sessionsLoading:!1,sessionsError:r})}}async openSession(e){if(this.sending){this.error=`Wait for the current reply to finish before switching.`;return}let t=this.activeEndpointId;this.setEndpointState(t,{activeSessionId:e}),this.entries=[],this.entriesLoading=!0,this.error=``;try{let n=await G(e);this.activeEndpointId===t&&this.byEndpoint.get(t)?.activeSessionId===e&&(this.entries=n)}catch(e){let t=e;t.status===503||t.status===502?this.error=`Assistant is not reachable. Try reconnecting.`:t.status===401?this.error=`Sign-in required.`:this.error=t.message??`Failed to load messages.`}finally{this.entriesLoading=!1}}async startNewSession(){if(this.sending)return this.error=`Wait for the current reply to finish before switching.`,null;let e=this.activeEndpointId;this.error=``;try{let{id:t}=await ee(),n=Date.now(),r={id:t,title:``,createdAt:n,updatedAt:n},i=this.byEndpoint.get(e)??Z();return this.setEndpointState(e,{sessions:[r,...i.sessions.filter(e=>e.id!==t)],sessionsLoaded:!0,activeSessionId:t}),this.entries=[],t}catch(e){let t=e;return this.error=`Failed to start session: ${t.message??`unknown error`}`,null}}async send(e){if(this.sending)return;let t=e.trim();if(!t)return;let n=this.activeSessionId;if(!n&&(n=await this.startNewSession(),!n))return;let r={id:crypto.randomUUID(),role:`user`,text:t,timestamp:Date.now()};this.entries=[...this.entries,r],this.error=``,this.sending=!0;try{let e=(await M(n,t)).parts.filter(e=>e.type===`text`&&e.text).map(e=>e.text??``).join(``),r={id:crypto.randomUUID(),role:`assistant`,text:e||`(no response)`,timestamp:Date.now()};this.entries=[...this.entries,r];let i=this.activeEndpointId,a=this.byEndpoint.get(i);if(a){let e=Date.now(),t=a.sessions.find(e=>e.id===n),r=t?{...t,updatedAt:e}:{id:n,title:``,createdAt:e,updatedAt:e},o=a.sessions.filter(e=>e.id!==n);this.setEndpointState(i,{sessions:[r,...o]})}W.ttsSupported&&W.ttsAutoEnabled&&e&&B(e)}catch(e){let t=e;t.status===503||t.status===502?(this.error=`Assistant is not reachable. Try reconnecting.`,this.setEndpointState(this.activeEndpointId,{activeSessionId:null})):t.status===401?this.error=`Sign-in required.`:this.error=t.message??`Message failed.`}finally{this.sending=!1}}reset(){if(R(),this.entries=[],this.error=``,this.byEndpoint=new Map,this._unsubscribeEvents){try{this._unsubscribeEvents()}catch(e){console.warn(`[chat] failed to unsubscribe from event stream during reset`,e)}this._unsubscribeEvents=null}this.liveConnected=!1}},re=e(`<span class="voice-interim svelte-1a5q9sh" aria-hidden="true"> </span>`),ie=e(`<button type="button" class="voice-autoplay-banner svelte-1a5q9sh" aria-label="Resume paused audio" title="Audio was blocked by the browser. Click to resume."><svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1a5q9sh"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5" class="svelte-1a5q9sh"></polygon><line x1="23" y1="9" x2="17" y2="15" class="svelte-1a5q9sh"></line><line x1="17" y1="9" x2="23" y2="15" class="svelte-1a5q9sh"></line></svg> <span class="svelte-1a5q9sh">Audio paused — click to resume</span></button>`),ae=y(`<path d="M15.54 8.46a5 5 0 0 1 0 7.07"></path><path d="M19.07 4.93a10 10 0 0 1 0 14.14"></path>`,1),oe=y(`<line x1="23" y1="9" x2="17" y2="15" class="svelte-1a5q9sh"></line><line x1="17" y1="9" x2="23" y2="15" class="svelte-1a5q9sh"></line>`,1),se=e(`<button><svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1a5q9sh"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5" class="svelte-1a5q9sh"></polygon><!></svg></button>`),ce=e(`<span class="voice-spinner svelte-1a5q9sh" aria-hidden="true"></span>`),le=e(`<svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="currentColor" class="svelte-1a5q9sh"><rect x="6" y="6" width="12" height="12" rx="1.5" class="svelte-1a5q9sh"></rect></svg> <span class="voice-pulse svelte-1a5q9sh" aria-hidden="true"></span>`,1),ue=y(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1a5q9sh"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z" class="svelte-1a5q9sh"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2" class="svelte-1a5q9sh"></path><line x1="12" y1="19" x2="12" y2="23" class="svelte-1a5q9sh"></line><line x1="8" y1="23" x2="16" y2="23" class="svelte-1a5q9sh"></line></svg>`),de=e(`<button><!></button>`),fe=e(`<div class="voice-control svelte-1a5q9sh" role="toolbar" aria-label="Voice controls"><!> <!> <!> <!> <span class="sr-only svelte-1a5q9sh" aria-live="polite"> </span></div>`);function pe(e,r){v(r,!0);let i=u(!1);w(()=>{V().then(()=>{m(i,!0)})}),S(()=>{z()});let s=_(()=>a(i)&&W.sttEngine!==`disabled`&&W.sttSupported),f=_(()=>a(i)&&W.ttsSupported),y=_(()=>W.status===`recording`),x=_(()=>W.status===`transcribing`),E=_(()=>!a(y)&&!a(x)&&Q.sending),O=_(()=>W.status===`speaking`);function A(){if(a(y)){I();return}a(x)||(R(),H(e=>{let t=e.trim();t&&Q.send(t)}))}function j(){F(!W.ttsAutoEnabled)}var M=b(),N=o(M),P=e=>{var r=fe(),i=C(r),u=e=>{var n=re(),r=C(n,!0);h(n),d(e=>{g(n,`title`,W.interimTranscript),t(r,e)},[()=>W.interimTranscript.length>48?W.interimTranscript.slice(0,48)+`…`:W.interimTranscript]),c(e,n)};n(i,e=>{a(y)&&W.interimTranscript&&e(u)});var m=p(i,2),_=e=>{var t=ie();l(`click`,t,()=>L()),c(e,t)};n(m,e=>{W.autoplayBlocked&&e(_)});var v=p(m,2),b=e=>{var t=se();let r;var i=C(t),s=p(C(i)),u=e=>{var t=ae(),n=o(t);let r;var i=p(n);let s;d(()=>{r=k(n,0,`svelte-1a5q9sh`,null,r,{"wave-anim":a(O)}),s=k(i,0,`svelte-1a5q9sh`,null,s,{"wave-anim-2":a(O)})}),c(e,t)},f=e=>{var t=oe();D(),c(e,t)};n(s,e=>{W.ttsAutoEnabled?e(u):e(f,-1)}),h(i),h(t),d(()=>{r=k(t,1,`voice-btn svelte-1a5q9sh`,null,r,{"voice-btn-on":W.ttsAutoEnabled,"voice-btn-speaking":a(O)}),g(t,`aria-label`,W.ttsAutoEnabled?`Turn off spoken responses`:`Turn on spoken responses`),g(t,`aria-pressed`,W.ttsAutoEnabled),g(t,`title`,a(O)?`Speaking — click to turn off spoken responses`:W.ttsAutoEnabled?`Spoken responses are on — click to turn off`:`Spoken responses are off — click to turn on`)}),l(`click`,t,j),c(e,t)};n(v,e=>{a(f)&&e(b)});var S=p(v,2),w=e=>{var t=de();let r;var i=C(t),o=e=>{c(e,ce())},s=e=>{var t=le();D(2),c(e,t)},u=e=>{c(e,ue())};n(i,e=>{a(x)||a(E)?e(o):a(y)?e(s,1):e(u,-1)}),h(t),d(()=>{r=k(t,1,`voice-btn svelte-1a5q9sh`,null,r,{"voice-btn-active":a(y),"voice-btn-processing":a(E)||a(x)}),t.disabled=a(E),g(t,`aria-label`,a(y)?`Stop recording`:a(x)?`Transcribing…`:a(E)?`Sending message…`:`Start recording`),g(t,`aria-pressed`,a(y)),g(t,`title`,a(y)?`Stop recording`:a(x)?`Transcribing…`:a(E)?`Sending message…`:`Speak — message will be sent to the selected assistant`)}),l(`click`,t,A),c(e,t)};n(S,e=>{a(s)&&e(w)});var T=p(S,2),M=C(T,!0);h(T),h(r),d(()=>t(M,a(y)&&W.interimTranscript?W.interimTranscript:a(y)?`Recording`:a(x)?`Transcribing`:a(E)?`Sending message to assistant`:a(O)?`Assistant is speaking`:W.ttsAutoEnabled?`Spoken responses on`:``)),c(e,r)};n(N,e=>{(a(s)||a(f)||W.autoplayBlocked)&&e(P)}),c(e,M),T()}s([`click`]);var $=new class{#e=u(f([]));get endpoints(){return a(this.#e)}set endpoints(e){m(this.#e,e,!0)}#t=u(`default`);get activeId(){return a(this.#t)}set activeId(e){m(this.#t,e,!0)}#n=u(!1);get loading(){return a(this.#n)}set loading(e){m(this.#n,e,!0)}#r=u(!1);get loaded(){return a(this.#r)}set loaded(e){m(this.#r,e,!0)}#i=u(``);get error(){return a(this.#i)}set error(e){m(this.#i,e,!0)}#a=_(()=>this.endpoints.find(e=>e.id===this.activeId)??this.endpoints[0]??null);get active(){return a(this.#a)}set active(e){m(this.#a,e)}async load(e=!1){if(!this.loading&&!(this.loaded&&!e)){this.loading=!0,this.error=``;try{let{endpoints:e,activeId:t}=await N();this.endpoints=e,this.activeId=t,this.loaded=!0}catch(e){let t=e;t.status!==401&&(this.error=t.message??`Failed to load endpoints`)}finally{this.loading=!1}}}async activate(e){if(e===this.activeId)return;if(Q.sending)throw this.error=`Wait for the current reply to finish before switching.`,Error(this.error);let t=this.activeId;this.activeId=e;try{await P(e),await Q.onEndpointChanged(e)}catch(e){this.activeId=t;let n=e;throw this.error=n.message??`Failed to switch endpoint`,e}}},me=e(`<button type="button" role="menuitemradio" popovertargetaction="hide"><span class="check svelte-1gh51ee" aria-hidden="true"> </span> <span class="menu-item-text svelte-1gh51ee"><span class="menu-item-label svelte-1gh51ee"> </span> <span class="menu-item-url svelte-1gh51ee"> </span></span></button>`),he=e(`<div class="switcher svelte-1gh51ee"><button type="button" class="trigger svelte-1gh51ee" id="endpoint-trigger" aria-haspopup="menu"><svg class="trigger-icon svelte-1gh51ee" aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect><rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect><line x1="6" y1="6" x2="6.01" y2="6"></line><line x1="6" y1="18" x2="6.01" y2="18"></line></svg> <span class="dot svelte-1gh51ee" aria-hidden="true"></span> <span class="label svelte-1gh51ee"> </span> <span class="caret svelte-1gh51ee" aria-hidden="true">▾</span></button> <div class="menu svelte-1gh51ee" popover="auto" role="menu" tabindex="-1"><div class="menu-header svelte-1gh51ee">Assistant endpoint</div> <!> <div class="menu-divider svelte-1gh51ee"></div> <a class="menu-item link svelte-1gh51ee" href="/admin/endpoints" role="menuitem">Manage endpoints…</a></div></div>`);function ge(e,n){v(n,!0);let i=`endpoint-menu`,o=u(!1),s=u(!1),f=_(()=>$.active),y=_(()=>$.endpoints),b=_(()=>a(y).length>1);w(()=>{$.load()});function x(e){a(b)||(e.preventDefault(),window.location.href=`/admin/endpoints`)}async function S(e){if(!a(o)&&e!==a(f)?.id){m(o,!0);try{await $.activate(e)}catch{}finally{m(o,!1)}}}function E(e){m(s,e.newState===`open`)}var O=he(),j=C(O);g(j,`aria-controls`,i);var M=p(C(j),4),N=C(M,!0);h(M),D(2),h(j);var P=p(j,2);g(P,`id`,i),A(p(C(P),2),17,()=>a(y),e=>e.id,(e,n)=>{var r=me();let s;g(r,`popovertarget`,i);var u=C(r),m=C(u,!0);h(u);var _=p(u,2),v=C(_),y=C(v,!0);h(v);var b=p(v,2),x=C(b,!0);h(b),h(_),h(r),d(()=>{s=k(r,1,`menu-item svelte-1gh51ee`,null,s,{active:a(n).id===a(f)?.id}),g(r,`aria-checked`,a(n).id===a(f)?.id),r.disabled=a(o),t(m,a(n).id===a(f)?.id?`●`:`○`),t(y,a(n).label),t(x,a(n).url)}),l(`click`,r,()=>S(a(n).id)),c(e,r)}),D(4),h(P),h(O),d(()=>{g(j,`popovertarget`,a(b)?i:void 0),g(j,`aria-expanded`,a(s)),g(j,`aria-label`,a(f)?`Assistant endpoint: ${a(f).label}`:`Assistant endpoints`),g(j,`title`,a(f)?`Connected to: ${a(f).label} (${a(f).url})`:`Assistant endpoints`),j.disabled=a(o)||$.loading,t(N,a(f)?.label??`Endpoint…`)}),l(`click`,j,x),r(`toggle`,P,E),c(e,O),T()}s([`click`]);var _e=e(`<div class="notice svelte-1owsj0q">Wait for the current reply to finish before switching.</div>`),ve=e(`<div class="empty svelte-1owsj0q"><span class="spinner svelte-1owsj0q" aria-hidden="true"></span> <span>Loading sessions…</span></div>`),ye=e(`<div class="error svelte-1owsj0q"><span class="svelte-1owsj0q"> </span> <button type="button" class="retry-btn svelte-1owsj0q">Retry</button></div>`),be=e(`<div class="empty svelte-1owsj0q">No sessions yet. Start the first one.</div>`),xe=e(`<button type="button" role="menuitemradio" popovertargetaction="hide"><span class="check svelte-1owsj0q" aria-hidden="true"> </span> <span class="menu-item-text svelte-1owsj0q"><span class="menu-item-label svelte-1owsj0q"> </span> <span class="menu-item-meta svelte-1owsj0q"> </span></span></button>`),Se=e(`<button type="button" class="show-all svelte-1owsj0q"> </button>`),Ce=e(`<div class="session-list svelte-1owsj0q" role="none"></div> <!>`,1),we=e(`<div class="picker svelte-1owsj0q"><button type="button" class="trigger svelte-1owsj0q" id="session-trigger" aria-haspopup="menu" aria-label="Sessions"><svg class="trigger-icon svelte-1owsj0q" aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 9a2 2 0 0 1-2 2H6l-4 4V4c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2z"></path><path d="M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1"></path></svg> <span aria-hidden="true"></span> <span class="label svelte-1owsj0q"> </span> <span class="caret svelte-1owsj0q" aria-hidden="true">▾</span></button> <div class="menu svelte-1owsj0q" popover="auto" role="menu" tabindex="-1"><div class="menu-header svelte-1owsj0q"> </div> <!> <button type="button" class="menu-item new-btn svelte-1owsj0q" role="menuitem" popovertargetaction="hide"><span class="check svelte-1owsj0q" aria-hidden="true">+</span> <span class="menu-item-text svelte-1owsj0q"><span class="menu-item-label svelte-1owsj0q">New session</span></span></button> <div class="menu-divider svelte-1owsj0q"></div> <!></div></div>`);function Te(e,i){v(i,!0);let s=`session-menu`,f=u(!1),y=u(!1),b=_(()=>$.active),x=_(()=>a(b)?Q.byEndpoint.get(a(b).id)??null:null),S=_(()=>a(x)?.sessions??[]),w=_(()=>a(x)?.sessionsLoading??!1),E=_(()=>a(x)?.sessionsError??``),O=_(()=>Q.activeSessionId),j=_(()=>a(S).find(e=>e.id===a(O))??null),M=_(()=>a(j)?a(j).title||`Untitled · ${I(a(j).updatedAt)}`:`New session`),N=_(()=>Q.liveConnected),P=_(()=>a(f)?a(S):a(S).slice(0,50)),F=_(()=>Math.max(0,a(S).length-50));function I(e){if(!e)return``;let t=Math.max(0,(Date.now()-e)/1e3);if(t<60)return`just now`;let n=Math.floor(t/60);if(n<60)return`${n}m ago`;let r=Math.floor(n/60);if(r<24)return`${r}h ago`;let i=Math.floor(r/24);if(i===1)return`yesterday`;if(i<7)return`${i}d ago`;let a=Math.floor(i/7);if(a<5)return`${a}w ago`;let o=Math.floor(i/30);return o<12?`${o}mo ago`:`${Math.floor(i/365)}y ago`}function ee(){a(b)&&!a(x)?.sessionsLoaded&&!a(w)&&Q.loadSessions()}async function L(e){Q.sending||await Q.openSession(e)}async function R(){Q.sending||await Q.startNewSession()}async function z(){await Q.loadSessions()}function B(e){m(y,e.newState===`open`)}var V=we(),H=C(V);g(H,`popovertarget`,s),g(H,`aria-controls`,s);var U=p(C(H),2);let W;var G=p(U,2),te=C(G,!0);h(G),D(2),h(H);var K=p(H,2);g(K,`id`,s);var q=C(K),J=C(q);h(q);var Y=p(q,2),ne=e=>{c(e,_e())};n(Y,e=>{Q.sending&&e(ne)});var X=p(Y,2);g(X,`popovertarget`,s);var Z=p(X,4),re=e=>{c(e,ve())},ie=e=>{var n=ye(),r=C(n),i=C(r,!0);h(r);var o=p(r,2);h(n),d(()=>t(i,a(E))),l(`click`,o,z),c(e,n)},ae=e=>{c(e,be())},oe=e=>{var r=Ce(),i=o(r);A(i,21,()=>a(P),e=>e.id,(e,n)=>{var r=xe();let i;g(r,`popovertarget`,s);var o=C(r),u=C(o,!0);h(o);var f=p(o,2),m=C(f),_=C(m,!0);h(m);var v=p(m,2),y=C(v,!0);h(v),h(f),h(r),d(e=>{i=k(r,1,`menu-item session-item svelte-1owsj0q`,null,i,{active:a(n).id===a(O)}),g(r,`aria-checked`,a(n).id===a(O)),r.disabled=Q.sending,t(u,a(n).id===a(O)?`●`:`○`),t(_,a(n).title||`Untitled`),t(y,e)},[()=>I(a(n).updatedAt)]),l(`click`,r,()=>L(a(n).id)),c(e,r)}),h(i);var u=p(i,2),_=e=>{var n=Se(),r=C(n);h(n),d(()=>t(r,`Show all (${a(F)??``} more)`)),l(`click`,n,()=>m(f,!0)),c(e,n)};n(u,e=>{!a(f)&&a(F)>0&&e(_)}),c(e,r)};n(Z,e=>{a(w)?e(re):a(E)?e(ie,1):a(S).length===0?e(ae,2):e(oe,-1)}),h(K),h(V),d(()=>{g(H,`aria-expanded`,a(y)),g(H,`title`,a(M)),W=k(U,1,`dot svelte-1owsj0q`,null,W,{connected:a(N)}),g(U,`title`,a(N)?`Live updates connected`:`Live updates disconnected`),t(te,a(M)),t(J,`Sessions on ${a(b)?.label??`this endpoint`??``}`),X.disabled=Q.sending}),l(`click`,H,ee),r(`toggle`,K,B),l(`click`,X,R),c(e,V),T()}s([`click`]);var Ee=y(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg>`),De=y(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9z"></path></svg>`),Oe=e(`<button type="button" class="theme-toggle svelte-1cmi4dh"><!></button>`);function ke(e,t){v(t,!0);let r=_(()=>U.resolved===`dark`),i=_(()=>a(r)?`Switch to light mode`:`Switch to dark mode`);function o(){U.toggle()}var s=Oe(),u=C(s),f=e=>{c(e,Ee())},p=e=>{c(e,De())};n(u,e=>{a(r)?e(f):e(p,-1)}),h(s),d(()=>{g(s,`aria-label`,a(i)),g(s,`aria-pressed`,a(r)),g(s,`title`,a(i))}),l(`click`,s,o),c(e,s),T()}s([`click`]);var Ae=y(`<svg class="nav-icon svelte-rfuq4y" aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg>`),je=y(`<svg class="nav-icon svelte-rfuq4y" aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><path d="m7 9 3 3-3 3"></path><line x1="13" y1="15" x2="17" y2="15"></line></svg>`),Me=y(`<svg class="nav-icon svelte-rfuq4y" aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="4" y1="21" x2="4" y2="14"></line><line x1="4" y1="10" x2="4" y2="3"></line><line x1="12" y1="21" x2="12" y2="12"></line><line x1="12" y1="8" x2="12" y2="3"></line><line x1="20" y1="21" x2="20" y2="16"></line><line x1="20" y1="12" x2="20" y2="3"></line><line x1="1" y1="14" x2="7" y2="14"></line><line x1="9" y1="8" x2="15" y2="8"></line><line x1="17" y1="16" x2="23" y2="16"></line></svg>`),Ne=e(`<a><!> <span class="nav-label svelte-rfuq4y"> </span></a>`),Pe=y(`<path d="M18 6 6 18"></path><path d="m6 6 12 12"></path>`,1),Fe=y(`<path d="M3 6h18"></path><path d="M3 12h18"></path><path d="M3 18h18"></path>`,1),Ie=e(`<div class="drawer-overlay svelte-rfuq4y" aria-hidden="true"></div>`),Le=e(`<header class="navbar svelte-rfuq4y"><div class="navbar-inner svelte-rfuq4y"><div class="navbar-brand svelte-rfuq4y"><span class="brand-icon svelte-rfuq4y" aria-hidden="true"><img src="/logo-128.png" alt="OpenPalm Logo" class="svelte-rfuq4y"/></span> <span class="brand-text svelte-rfuq4y">OpenPalm</span> <span class="version-badge svelte-rfuq4y"> </span></div> <nav class="navbar-nav svelte-rfuq4y" aria-label="Primary navigation"></nav> <div id="navbar-drawer"><div class="drawer-header svelte-rfuq4y"><h2 class="drawer-title svelte-rfuq4y" id="navbar-drawer-title">Settings</h2> <button type="button" class="drawer-close svelte-rfuq4y" aria-label="Close settings menu"><svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></div> <div class="drawer-body svelte-rfuq4y"><div class="drawer-section svelte-rfuq4y"><div class="section-label svelte-rfuq4y">Endpoint</div> <div class="control-row svelte-rfuq4y"><!></div></div> <div class="drawer-section svelte-rfuq4y"><div class="section-label svelte-rfuq4y">Session</div> <div class="control-row svelte-rfuq4y"><!></div></div> <div class="drawer-section svelte-rfuq4y"><div class="section-label svelte-rfuq4y">Voice</div> <div class="control-row control-row--voice svelte-rfuq4y"><!></div></div> <div class="drawer-section svelte-rfuq4y"><div class="utility-row svelte-rfuq4y"><div class="utility-labels svelte-rfuq4y"><span class="utility-title svelte-rfuq4y">Theme</span> <span class="utility-copy svelte-rfuq4y">Switch between light and dark mode.</span></div> <!></div></div></div></div> <button type="button" class="mobile-menu-btn svelte-rfuq4y" aria-controls="navbar-drawer" aria-haspopup="dialog"><svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><!></svg></button> <!></div></header>`);function Re(e,r){v(r,!0);let o=[{href:`/chat`,label:`Chat`,icon:`chat`},{href:`/advanced`,label:`Advanced`,icon:`advanced`},{href:`/admin`,label:`Admin`,icon:`admin`}],s=_(()=>te.url?.pathname??``);function f(e){return a(s)===e||a(s).startsWith(e+`/`)}let y=u(!1),b=u(void 0),x=u(void 0),S=u(void 0);function w(){m(y,!a(y))}function O(){m(y,!1),a(b)?.focus()}function j(){m(y,!1)}function M(e){if(!a(S))return;if(e.key===`Escape`){if(a(S).querySelector(`:popover-open`))return;e.preventDefault(),e.stopPropagation(),O();return}if(e.key!==`Tab`)return;let t=Array.from(a(S).querySelectorAll(`a[href], button:not(:disabled), input:not(:disabled), select:not(:disabled), textarea:not(:disabled), [tabindex]:not([tabindex="-1"])`)).filter(e=>!e.hasAttribute(`disabled`));if(t.length===0)return;let n=t[0],r=t[t.length-1];e.shiftKey?document.activeElement===n&&(e.preventDefault(),r.focus()):document.activeElement===r&&(e.preventDefault(),n.focus())}i(()=>{if(a(y)&&a(x)){let e=requestAnimationFrame(()=>{a(x)?.focus()});return()=>cancelAnimationFrame(e)}});var N=Le(),P=C(N),F=C(P),I=p(C(F),4),ee=C(I);h(I),h(F);var L=p(F,2);A(L,21,()=>o,e=>e.href,(e,r)=>{var i=Ne();let o;var s=C(i),u=e=>{c(e,Ae())},m=e=>{c(e,je())},_=e=>{c(e,Me())};n(s,e=>{a(r).icon===`chat`?e(u):a(r).icon===`advanced`?e(m,1):e(_,-1)});var v=p(s,2),b=C(v,!0);h(v),h(i),d((e,n)=>{g(i,`href`,a(r).href),o=k(i,1,`nav-tab svelte-rfuq4y`,null,o,e),g(i,`aria-current`,n),t(b,a(r).label)},[()=>({active:f(a(r).href)}),()=>f(a(r).href)?`page`:void 0]),l(`click`,i,function(...e){(a(y)?j:void 0)?.apply(this,e)}),c(e,i)}),h(L);var R=p(L,2);let z;var B=C(R),V=p(C(B),2);E(V,e=>m(x,e),()=>a(x)),h(B);var H=p(B,2),U=C(H),W=p(C(U),2);ge(C(W),{}),h(W),h(U);var G=p(U,2),K=p(C(G),2);Te(C(K),{}),h(K),h(G);var q=p(G,2),J=p(C(q),2);pe(C(J),{}),h(J),h(q);var Y=p(q,2),ne=C(Y);ke(p(C(ne),2),{}),h(ne),h(Y),h(H),h(R),E(R,e=>m(S,e),()=>a(S));var X=p(R,2),Z=C(X),Q=C(Z),re=e=>{var t=Pe();D(),c(e,t)},ie=e=>{var t=Fe();D(2),c(e,t)};n(Q,e=>{a(y)?e(re):e(ie,-1)}),h(Z),h(X),E(X,e=>m(b,e),()=>a(b));var ae=p(X,2),oe=e=>{var t=Ie();l(`click`,t,O),c(e,t)};n(ae,e=>{a(y)&&e(oe)}),h(P),h(N),d(()=>{t(ee,`ui v0.11.0-rc.8`),z=k(R,1,`navbar-actions svelte-rfuq4y`,null,z,{open:a(y)}),g(R,`role`,a(y)?`dialog`:void 0),g(R,`aria-modal`,a(y)?`true`:void 0),g(R,`aria-labelledby`,a(y)?`navbar-drawer-title`:void 0),g(V,`tabindex`,a(y)?0:-1),g(X,`aria-label`,a(y)?`Close menu`:`Open settings menu`),g(X,`aria-expanded`,a(y))}),l(`keydown`,R,function(...e){(a(y)?M:void 0)?.apply(this,e)}),l(`click`,V,O),l(`click`,X,w),c(e,N),T()}s([`click`,`keydown`]);var ze=y(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94"></path><path d="M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19"></path><line x1="1" y1="1" x2="23" y2="23"></line><path d="M14.12 14.12a3 3 0 1 1-4.24-4.24"></path></svg>`),Be=y(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>`),Ve=e(`<p class="auth-error svelte-1vviwqr" role="alert"> </p>`),He=e(`<span class="spinner"></span>`),Ue=e(`<main class="auth-gate svelte-1vviwqr" aria-label="Admin login gate"><section class="auth-card svelte-1vviwqr"><div class="auth-brand svelte-1vviwqr"><span class="brand-icon svelte-1vviwqr"><img src="/logo-128.png" alt="OpenPalm Logo" class="svelte-1vviwqr"/></span> <div><h1 class="svelte-1vviwqr">OpenPalm Console</h1> <p class="svelte-1vviwqr">Enter your admin password to unlock the control plane.</p></div></div> <form class="auth-form svelte-1vviwqr"><label for="admin-token" class="svelte-1vviwqr">Admin Password</label> <input type="text" name="username" autocomplete="username" value="admin" class="sr-only svelte-1vviwqr" tabindex="-1" aria-hidden="true"/> <div class="token-input-wrapper svelte-1vviwqr"><input id="admin-token" name="admin-token" placeholder="Enter admin password" autocomplete="current-password" class="svelte-1vviwqr"/> <button type="button" class="btn-toggle svelte-1vviwqr"><!></button></div> <!> <button class="btn btn-primary" type="submit"><!> Unlock Console</button></form></section></main>`);function We(e,i){v(i,!0);let o=u(``),s=u(!1),f=u(void 0);async function _(e){e.preventDefault();let t=a(o).trim();if(!t||i.loading){a(f)?.focus();return}await i.onSuccess(t)||(a(f)?.focus(),a(f)?.select())}var y=Ue(),b=C(y),S=p(C(b),2),w=p(p(C(S),2),2),k=C(w);O(k),E(k,e=>m(f,e),()=>a(f));var A=p(k,2),j=C(A),M=e=>{c(e,ze())},N=e=>{c(e,Be())};n(j,e=>{a(s)?e(M):e(N,-1)}),h(A),h(w);var P=p(w,2),F=e=>{var n=Ve(),r=C(n,!0);h(n),d(()=>t(r,i.error)),c(e,n)};n(P,e=>{i.error&&e(F)});var I=p(P,2),ee=C(I),L=e=>{c(e,He())};n(ee,e=>{i.loading&&e(L)}),D(),h(I),h(S),h(b),h(y),d(e=>{g(k,`type`,a(s)?`text`:`password`),g(A,`aria-label`,a(s)?`Hide token`:`Show token`),I.disabled=e},[()=>i.loading||!a(o).trim()]),r(`submit`,S,_),x(k,()=>a(o),e=>m(o,e)),l(`click`,A,()=>m(s,!a(s))),c(e,y),T()}s([`click`]);export{Q as i,Re as n,$ as r,We as t};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.C-6HAZZl.js","../chunks/BwTF6U35.js","../chunks/xihTtKlq.js","../chunks/DXseS2Vw.js","../assets/0.BoT18krG.css","../nodes/1.CFZtmr9Z.js","../chunks/D24QgzW3.js","../chunks/s2DJ2Hzc.js","../chunks/BuFlayix.js","../nodes/2.ojh8oE7F.js","../chunks/os2NZ37U.js","../nodes/3.DeAC3yVJ.js","../nodes/4.qMg9S6NF.js","../chunks/DqNbg4NA.js","../assets/AuthGate._EJNXKUm.css","../chunks/Cb_i8bV9.js","../assets/VoiceProfileSelector.Dp7tWdKe.css","../assets/4.D9MwgTDo.css","../nodes/5.DOV0FWgV.js","../assets/5.Cj0Mk9Gn.css","../nodes/6.OjOdE489.js","../assets/6.DJenXolA.css","../nodes/7.BmeNI8zH.js","../assets/7.BimnqtTb.css","../nodes/8.DNsQWKjK.js","../assets/8.DjrHy5wu.css"])))=>i.map(i=>d[i]);
2
- import{A as e,D as t,E as n,H as r,I as i,J as a,M as o,O as s,Q as c,R as l,U as u,V as d,Y as f,Z as p,a as m,b as h,ct as g,et as _,i as v,it as y,k as b,q as x,r as S,rt as C,s as w}from"../chunks/BwTF6U35.js";import{t as T}from"../chunks/kNaey6uv.js";import"../chunks/xihTtKlq.js";var E={},D=e(`<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=e(`<!> <!>`,1);function k(e,v){y(v,!0);let T=m(v,`components`,23,()=>[]),E=m(v,`data_0`,3,null),k=m(v,`data_1`,3,null),A=m(v,`data_2`,3,null);u(()=>v.stores.page.set(v.page)),r(()=>{v.stores,v.page,v.constructors,T(),v.form,E(),k(),A(),v.stores.page.notify()});let j=c(!1),M=c(!1),N=c(null);S(()=>{let e=v.stores.page.subscribe(()=>{i(j)&&(p(M,!0),l().then(()=>{p(N,document.title||`untitled page`,!0)}))});return p(j,!0),e});let P=_(()=>v.constructors[2]);var F=O(),I=a(F),L=e=>{let t=_(()=>v.constructors[0]);var r=b();h(a(r),()=>i(t),(e,t)=>{w(t(e,{get data(){return E()},get form(){return v.form},get params(){return v.page.params},children:(e,t)=>{var r=b(),o=a(r),c=e=>{let t=_(()=>v.constructors[1]);var n=b();h(a(n),()=>i(t),(e,t)=>{w(t(e,{get data(){return k()},get form(){return v.form},get params(){return v.page.params},children:(e,t)=>{var n=b();h(a(n),()=>i(P),(e,t)=>{w(t(e,{get data(){return A()},get form(){return v.form},get params(){return v.page.params}}),e=>T()[2]=e,()=>T()?.[2])}),s(e,n)},$$slots:{default:!0}}),e=>T()[1]=e,()=>T()?.[1])}),s(e,n)},l=e=>{let t=_(()=>v.constructors[1]);var n=b();h(a(n),()=>i(t),(e,t)=>{w(t(e,{get data(){return k()},get form(){return v.form},get params(){return v.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),s(e,n)};n(o,e=>{v.constructors[2]?e(c):e(l,-1)}),s(e,r)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),s(e,r)},R=e=>{let t=_(()=>v.constructors[0]);var n=b();h(a(n),()=>i(t),(e,t)=>{w(t(e,{get data(){return E()},get form(){return v.form},get params(){return v.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),s(e,n)};n(I,e=>{v.constructors[1]?e(L):e(R,-1)});var z=f(I,2),B=e=>{var r=D(),a=x(r),c=e=>{var n=o();d(()=>t(n,i(N))),s(e,n)};n(a,e=>{i(M)&&e(c)}),g(r),s(e,r)};n(z,e=>{i(j)&&e(B)}),s(e,F),C()}var A=v(k),j=[()=>T(()=>import(`../nodes/0.C-6HAZZl.js`),__vite__mapDeps([0,1,2,3,4]),import.meta.url),()=>T(()=>import(`../nodes/1.CFZtmr9Z.js`),__vite__mapDeps([5,1,6,7,8,2]),import.meta.url),()=>T(()=>import(`../nodes/2.ojh8oE7F.js`),__vite__mapDeps([9,1,2,10]),import.meta.url),()=>T(()=>import(`../nodes/3.DeAC3yVJ.js`),__vite__mapDeps([11,1,8,2,10]),import.meta.url),()=>T(()=>import(`../nodes/4.qMg9S6NF.js`),__vite__mapDeps([12,1,2,13,6,7,8,3,14,15,16,17]),import.meta.url),()=>T(()=>import(`../nodes/5.DOV0FWgV.js`),__vite__mapDeps([18,1,2,13,6,7,8,3,14,19]),import.meta.url),()=>T(()=>import(`../nodes/6.OjOdE489.js`),__vite__mapDeps([20,1,2,13,6,7,8,3,14,21]),import.meta.url),()=>T(()=>import(`../nodes/7.BmeNI8zH.js`),__vite__mapDeps([22,1,2,13,6,7,8,3,14,23]),import.meta.url),()=>T(()=>import(`../nodes/8.DNsQWKjK.js`),__vite__mapDeps([24,1,2,15,16,25]),import.meta.url)],M=[],N={"/":[3],"/admin":[4],"/admin/endpoints":[5],"/advanced":[6],"/chat":[7],"/setup":[8,[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.C-6HAZZl.js","../chunks/BwTF6U35.js","../chunks/xihTtKlq.js","../chunks/DXseS2Vw.js","../assets/0.BoT18krG.css","../nodes/1.2imZJYi3.js","../chunks/BBQSZM0g.js","../chunks/DEBerhwE.js","../chunks/BuFlayix.js","../nodes/2.ojh8oE7F.js","../chunks/os2NZ37U.js","../nodes/3.DeAC3yVJ.js","../nodes/4.UvLQ-_B8.js","../chunks/Dh6kjuFV.js","../assets/AuthGate.qEXYiiu8.css","../chunks/Cb_i8bV9.js","../assets/VoiceProfileSelector.Dp7tWdKe.css","../assets/4.D9MwgTDo.css","../nodes/5.CeFLRSVn.js","../assets/5.Cj0Mk9Gn.css","../nodes/6.wrEWx8_F.js","../assets/6.COn4HE1H.css","../nodes/7.B4rrIsb5.js","../assets/7.BimnqtTb.css","../nodes/8.DNsQWKjK.js","../assets/8.DjrHy5wu.css"])))=>i.map(i=>d[i]);
2
+ import{A as e,D as t,E as n,H as r,I as i,J as a,M as o,O as s,Q as c,R as l,U as u,V as d,Y as f,Z as p,a as m,b as h,ct as g,et as _,i as v,it as y,k as b,q as x,r as S,rt as C,s as w}from"../chunks/BwTF6U35.js";import{t as T}from"../chunks/kNaey6uv.js";import"../chunks/xihTtKlq.js";var E={},D=e(`<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=e(`<!> <!>`,1);function k(e,v){y(v,!0);let T=m(v,`components`,23,()=>[]),E=m(v,`data_0`,3,null),k=m(v,`data_1`,3,null),A=m(v,`data_2`,3,null);u(()=>v.stores.page.set(v.page)),r(()=>{v.stores,v.page,v.constructors,T(),v.form,E(),k(),A(),v.stores.page.notify()});let j=c(!1),M=c(!1),N=c(null);S(()=>{let e=v.stores.page.subscribe(()=>{i(j)&&(p(M,!0),l().then(()=>{p(N,document.title||`untitled page`,!0)}))});return p(j,!0),e});let P=_(()=>v.constructors[2]);var F=O(),I=a(F),L=e=>{let t=_(()=>v.constructors[0]);var r=b();h(a(r),()=>i(t),(e,t)=>{w(t(e,{get data(){return E()},get form(){return v.form},get params(){return v.page.params},children:(e,t)=>{var r=b(),o=a(r),c=e=>{let t=_(()=>v.constructors[1]);var n=b();h(a(n),()=>i(t),(e,t)=>{w(t(e,{get data(){return k()},get form(){return v.form},get params(){return v.page.params},children:(e,t)=>{var n=b();h(a(n),()=>i(P),(e,t)=>{w(t(e,{get data(){return A()},get form(){return v.form},get params(){return v.page.params}}),e=>T()[2]=e,()=>T()?.[2])}),s(e,n)},$$slots:{default:!0}}),e=>T()[1]=e,()=>T()?.[1])}),s(e,n)},l=e=>{let t=_(()=>v.constructors[1]);var n=b();h(a(n),()=>i(t),(e,t)=>{w(t(e,{get data(){return k()},get form(){return v.form},get params(){return v.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),s(e,n)};n(o,e=>{v.constructors[2]?e(c):e(l,-1)}),s(e,r)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),s(e,r)},R=e=>{let t=_(()=>v.constructors[0]);var n=b();h(a(n),()=>i(t),(e,t)=>{w(t(e,{get data(){return E()},get form(){return v.form},get params(){return v.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),s(e,n)};n(I,e=>{v.constructors[1]?e(L):e(R,-1)});var z=f(I,2),B=e=>{var r=D(),a=x(r),c=e=>{var n=o();d(()=>t(n,i(N))),s(e,n)};n(a,e=>{i(M)&&e(c)}),g(r),s(e,r)};n(z,e=>{i(j)&&e(B)}),s(e,F),C()}var A=v(k),j=[()=>T(()=>import(`../nodes/0.C-6HAZZl.js`),__vite__mapDeps([0,1,2,3,4]),import.meta.url),()=>T(()=>import(`../nodes/1.2imZJYi3.js`),__vite__mapDeps([5,1,6,7,8,2]),import.meta.url),()=>T(()=>import(`../nodes/2.ojh8oE7F.js`),__vite__mapDeps([9,1,2,10]),import.meta.url),()=>T(()=>import(`../nodes/3.DeAC3yVJ.js`),__vite__mapDeps([11,1,8,2,10]),import.meta.url),()=>T(()=>import(`../nodes/4.UvLQ-_B8.js`),__vite__mapDeps([12,1,2,13,6,7,8,3,14,15,16,17]),import.meta.url),()=>T(()=>import(`../nodes/5.CeFLRSVn.js`),__vite__mapDeps([18,1,2,13,6,7,8,3,14,19]),import.meta.url),()=>T(()=>import(`../nodes/6.wrEWx8_F.js`),__vite__mapDeps([20,1,2,13,6,7,8,3,14,21]),import.meta.url),()=>T(()=>import(`../nodes/7.B4rrIsb5.js`),__vite__mapDeps([22,1,2,13,6,7,8,3,14,23]),import.meta.url),()=>T(()=>import(`../nodes/8.DNsQWKjK.js`),__vite__mapDeps([24,1,2,15,16,25]),import.meta.url)],M=[],N={"/":[3],"/admin":[4],"/admin/endpoints":[5],"/advanced":[6],"/chat":[7],"/setup":[8,[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/DEBerhwE.js";export{e as load_css,t as start};
@@ -1 +1 @@
1
- import{A as e,D as t,J as n,O as r,V as i,Y as a,ct as o,it as s,q as c,rt as l}from"../chunks/BwTF6U35.js";import"../chunks/xihTtKlq.js";import{t as u}from"../chunks/D24QgzW3.js";var d=e(`<h1> </h1> <p> </p>`,1);function f(e,f){s(f,!0);var p=d(),m=n(p),h=c(m,!0);o(m);var g=a(m,2),_=c(g,!0);o(g),i(()=>{t(h,u.status),t(_,u.error?.message)}),r(e,p),l()}export{f as component};
1
+ import{A as e,D as t,J as n,O as r,V as i,Y as a,ct as o,it as s,q as c,rt as l}from"../chunks/BwTF6U35.js";import"../chunks/xihTtKlq.js";import{t as u}from"../chunks/BBQSZM0g.js";var d=e(`<h1> </h1> <p> </p>`,1);function f(e,f){s(f,!0);var p=d(),m=n(p),h=c(m,!0);o(m);var g=a(m,2),_=c(g,!0);o(g),i(()=>{t(h,u.status),t(_,u.error?.message)}),r(e,p),l()}export{f as component};
@@ -0,0 +1,2 @@
1
+ w�D����J$p�|t��� ���cњn��Ԗ���LzUz�Ʊt�Y���aa|�ܐ��pA�hwcLo�������).��_��(��tu?l�J�YK�uÒ7W�[i�I_�U�ݝ��-�﷈�r��W����3��F�c�SVpڕ/#h���~As,�{���~8�g���tb��S������?�=t�0��u�X�?��
2
+ w���qFC��,(3��ƅ�81v����)�p�,�{
@@ -1,4 +1,4 @@
1
- import{A as e,B as t,D as n,E as r,G as i,I as a,J as o,K as s,M as c,N as l,O as u,P as d,Q as f,T as p,V as m,W as h,X as g,Y as _,Z as v,c as y,ct as b,d as x,et as S,f as C,g as w,h as T,it as E,j as D,k as O,l as k,m as A,n as j,p as M,q as N,r as P,rt as F,s as I,st as L,u as R,v as z,w as B,y as V}from"../chunks/BwTF6U35.js";import"../chunks/xihTtKlq.js";import{$ as H,A as U,C as W,D as G,E as K,F as q,G as J,H as ee,I as te,K as ne,L as re,M as ie,N as Y,P as ae,R as oe,S as se,T as ce,U as le,W as ue,X as de,Z as fe,a as pe,b as me,d as X,f as he,j as ge,k as _e,m as ve,o as ye,p as be,q as xe,u as Se,v as Ce,w as we,x as Z,y as Q}from"../chunks/DXseS2Vw.js";import{n as $,r as Te,t as Ee}from"../chunks/DqNbg4NA.js";import{n as De,t as Oe}from"../chunks/Cb_i8bV9.js";var ke=e(`<div class="tabs svelte-1wwzsr0" role="tablist"><button role="tab"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="7"></rect><rect x="14" y="3" width="7" height="7"></rect><rect x="14" y="14" width="7" height="7"></rect><rect x="3" y="14" width="7" height="7"></rect></svg> Overview</button> <button role="tab"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2L2 7l10 5 10-5-10-5z"></path><path d="M2 17l10 5 10-5"></path><path d="M2 12l10 5 10-5"></path></svg> Addons</button> <button role="tab"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg> Automations</button> <button role="tab"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg> Connections</button> <button role="tab"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg> Secrets</button> <button role="tab"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2"></path><line x1="12" y1="19" x2="12" y2="23"></line><line x1="8" y1="23" x2="16" y2="23"></line></svg> Voice</button> <button role="tab"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg> Knowledge</button> <button role="tab"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect><rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect><line x1="6" y1="6" x2="6.01" y2="6"></line><line x1="6" y1="18" x2="6.01" y2="18"></line></svg> Containers</button> <button role="tab"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 17 10 11 4 5"></polyline><line x1="12" y1="19" x2="20" y2="19"></line></svg> Logs</button></div>`);function Ae(e,t){E(t,!0);function n(e){if(e.key!==`ArrowLeft`&&e.key!==`ArrowRight`)return;e.preventDefault();let t=e.currentTarget,n=Array.from(t.parentElement?.querySelectorAll(`[role="tab"]`)??[]),r=n.indexOf(t);if(r===-1)return;let i;i=e.key===`ArrowRight`?(r+1)%n.length:(r-1+n.length)%n.length,n[i]?.focus()}var r=ke(),i=N(r);let a;var o=_(i,2);let s;var c=_(o,2);let l;var f=_(c,2);let p;var h=_(f,2);let g;var v=_(h,2);let y;var S=_(v,2);let C;var w=_(S,2);let T;var D=_(w,2);let O;b(r),m(()=>{a=z(i,1,`tab svelte-1wwzsr0`,null,a,{"tab-active":t.active===`overview`}),x(i,`aria-selected`,t.active===`overview`),s=z(o,1,`tab svelte-1wwzsr0`,null,s,{"tab-active":t.active===`addons`}),x(o,`aria-selected`,t.active===`addons`),l=z(c,1,`tab svelte-1wwzsr0`,null,l,{"tab-active":t.active===`automations`}),x(c,`aria-selected`,t.active===`automations`),p=z(f,1,`tab svelte-1wwzsr0`,null,p,{"tab-active":t.active===`connections`}),x(f,`aria-selected`,t.active===`connections`),g=z(h,1,`tab svelte-1wwzsr0`,null,g,{"tab-active":t.active===`secrets`}),x(h,`aria-selected`,t.active===`secrets`),y=z(v,1,`tab svelte-1wwzsr0`,null,y,{"tab-active":t.active===`voice`}),x(v,`aria-selected`,t.active===`voice`),C=z(S,1,`tab svelte-1wwzsr0`,null,C,{"tab-active":t.active===`akm`}),x(S,`aria-selected`,t.active===`akm`),T=z(w,1,`tab svelte-1wwzsr0`,null,T,{"tab-active":t.active===`containers`}),x(w,`aria-selected`,t.active===`containers`),O=z(D,1,`tab svelte-1wwzsr0`,null,O,{"tab-active":t.active===`logs`}),x(D,`aria-selected`,t.active===`logs`)}),d(`click`,i,()=>t.onSelect(`overview`)),d(`keydown`,i,n),d(`click`,o,()=>t.onSelect(`addons`)),d(`keydown`,o,n),d(`click`,c,()=>t.onSelect(`automations`)),d(`keydown`,c,n),d(`click`,f,()=>t.onSelect(`connections`)),d(`keydown`,f,n),d(`click`,h,()=>t.onSelect(`secrets`)),d(`keydown`,h,n),d(`click`,v,()=>t.onSelect(`voice`)),d(`keydown`,v,n),d(`click`,S,()=>t.onSelect(`akm`)),d(`keydown`,S,n),d(`click`,w,()=>t.onSelect(`containers`)),d(`keydown`,w,n),d(`click`,D,()=>t.onSelect(`logs`)),d(`keydown`,D,n),u(e,r),F()}l([`click`,`keydown`]);var je=e(`<section><div class="output-header svelte-1ob1zsm"><h3 class="svelte-1ob1zsm">Operation Output</h3> <button class="btn-ghost svelte-1ob1zsm" aria-label="Dismiss"><svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1ob1zsm"><line x1="18" y1="6" x2="6" y2="18" class="svelte-1ob1zsm"></line><line x1="6" y1="6" x2="18" y2="18" class="svelte-1ob1zsm"></line></svg></button></div> <pre class="output-code svelte-1ob1zsm"> </pre></section>`),Me=e(`<span class="spinner svelte-1ob1zsm"></span>`),Ne=D(`<svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1ob1zsm"><path d="M22 12h-4l-3 9L9 3l-3 9H2" class="svelte-1ob1zsm"></path></svg>`),Pe=e(`<span class="spinner svelte-1ob1zsm"></span>`),Fe=D(`<svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1ob1zsm"><polyline points="16 16 12 12 8 16" class="svelte-1ob1zsm"></polyline><line x1="12" y1="12" x2="12" y2="21" class="svelte-1ob1zsm"></line><path d="M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3" class="svelte-1ob1zsm"></path></svg>`),Ie=e(`<span> </span>`),Le=e(`<span class="badge badge-idle svelte-1ob1zsm">Unknown</span>`),Re=e(`<span class="badge badge-success svelte-1ob1zsm">Running</span>`),ze=e(`<span class="badge badge-danger svelte-1ob1zsm">Stopped</span>`),Be=e(`<span class="badge badge-idle svelte-1ob1zsm">Unknown</span>`),Ve=e(`<span class="badge badge-success svelte-1ob1zsm"> </span>`),He=e(`<span class="badge badge-warning svelte-1ob1zsm"> </span>`),Ue=e(`<span class="badge badge-danger svelte-1ob1zsm"> </span>`),We=e(`<span class="badge badge-idle svelte-1ob1zsm">Unknown</span>`),Ge=e(`<span class="badge badge-success svelte-1ob1zsm">Connected</span>`),Ke=e(`<span class="badge badge-danger svelte-1ob1zsm">Disconnected</span>`),qe=e(`<span class="badge badge-idle svelte-1ob1zsm">Unknown</span>`),Je=e(`<span class="info-mono svelte-1ob1zsm"> </span>`),Ye=e(`<span class="badge badge-idle svelte-1ob1zsm">Loading</span>`),Xe=e(`<div class="version-select-skeleton svelte-1ob1zsm"></div>`),Ze=e(`<option class="svelte-1ob1zsm"> </option>`),Qe=e(`<select class="version-select svelte-1ob1zsm"><option class="svelte-1ob1zsm">latest</option><!></select>`),$e=e(`<input class="version-input svelte-1ob1zsm" type="text" placeholder="e.g. 0.11.0 or latest"/>`),et=e(`<span class="spinner spinner-sm svelte-1ob1zsm"></span> Applying…`,1),tt=e(`<span class="spinner spinner-sm svelte-1ob1zsm"></span> Upgrading…`,1),nt=e(`<div class="version-select-skeleton svelte-1ob1zsm"></div>`),rt=e(`<option class="svelte-1ob1zsm"> </option>`),it=e(`<select class="version-select svelte-1ob1zsm"></select>`),at=e(`<input class="version-input svelte-1ob1zsm" type="text" placeholder="e.g. 0.11.0-beta.7"/>`),ot=e(`<span class="spinner spinner-sm svelte-1ob1zsm"></span> Downloading…`,1),st=e(`<div class="version-restart-prompt svelte-1ob1zsm">UI updated. <button class="btn btn-sm btn-primary svelte-1ob1zsm">Restart App</button></div>`),ct=e(`<p class="version-hint svelte-1ob1zsm">Downloads and replaces the UI from GitHub. Takes effect on restart.</p>`),lt=e(`<div class="version-section svelte-1ob1zsm"><div class="version-input-row svelte-1ob1zsm"><!> <button class="btn btn-sm svelte-1ob1zsm"><!></button></div> <!></div>`),ut=e(`<div role="status" aria-live="polite"><span class="health-dot svelte-1ob1zsm"></span> <span class="health-msg svelte-1ob1zsm"> </span></div> <!> <div class="panel-grid svelte-1ob1zsm" role="tabpanel"><div class="panel svelte-1ob1zsm"><div class="panel-header svelte-1ob1zsm"><h2 class="svelte-1ob1zsm">Quick Actions</h2></div> <div class="panel-body svelte-1ob1zsm"><div class="action-list svelte-1ob1zsm"><button class="action-item svelte-1ob1zsm"><span class="action-icon action-icon--blue svelte-1ob1zsm"><!></span> <div class="action-content svelte-1ob1zsm"><span class="action-title svelte-1ob1zsm">Health Check</span> <span class="action-desc svelte-1ob1zsm">Verify admin and guardian services are reachable</span></div> <span class="action-arrow svelte-1ob1zsm"><svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1ob1zsm"><polyline points="9 18 15 12 9 6" class="svelte-1ob1zsm"></polyline></svg></span></button> <button class="action-item svelte-1ob1zsm"><span class="action-icon action-icon--blue svelte-1ob1zsm"><!></span> <div class="action-content svelte-1ob1zsm"><span class="action-title svelte-1ob1zsm">Apply Config + Restart</span> <span class="action-desc svelte-1ob1zsm">Update configuration and restart running services</span> <span class="action-hint svelte-1ob1zsm">Restarts services with updated compose config.</span></div> <span class="action-arrow svelte-1ob1zsm"><svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1ob1zsm"><polyline points="9 18 15 12 9 6" class="svelte-1ob1zsm"></polyline></svg></span></button> <a class="action-item svelte-1ob1zsm" href="/setup?rerun=1"><span class="action-icon action-icon--purple svelte-1ob1zsm"><svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1ob1zsm"><circle cx="12" cy="12" r="3" class="svelte-1ob1zsm"></circle><path d="M19.07 4.93a10 10 0 0 1 0 14.14M4.93 4.93a10 10 0 0 0 0 14.14" class="svelte-1ob1zsm"></path></svg></span> <div class="action-content svelte-1ob1zsm"><span class="action-title svelte-1ob1zsm">Update Settings</span> <span class="action-desc svelte-1ob1zsm">Re-run setup wizard to change providers, channels, or options</span></div> <span class="action-arrow svelte-1ob1zsm"><svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1ob1zsm"><polyline points="9 18 15 12 9 6" class="svelte-1ob1zsm"></polyline></svg></span></a> <a class="action-item svelte-1ob1zsm" href="/advanced"><span class="action-icon action-icon--blue svelte-1ob1zsm"><svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1ob1zsm"><rect x="3" y="3" width="18" height="18" rx="2" ry="2" class="svelte-1ob1zsm"></rect><path d="M9 9h6v6H9z" class="svelte-1ob1zsm"></path></svg></span> <div class="action-content svelte-1ob1zsm"><span class="action-title svelte-1ob1zsm">Advanced Chat (OpenCode)</span> <span class="action-desc svelte-1ob1zsm">Open the full OpenCode UI embedded in OpenPalm — host machine only</span></div> <span class="action-arrow svelte-1ob1zsm"><svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1ob1zsm"><polyline points="9 18 15 12 9 6" class="svelte-1ob1zsm"></polyline></svg></span></a></div></div></div> <div class="panel svelte-1ob1zsm"><div class="panel-header svelte-1ob1zsm"><h2 class="svelte-1ob1zsm">System Information</h2></div> <div class="panel-body svelte-1ob1zsm"><div class="info-grid svelte-1ob1zsm"><div class="info-item svelte-1ob1zsm"><span class="info-label svelte-1ob1zsm">Admin API</span> <span class="info-value svelte-1ob1zsm"><!></span></div> <div class="info-item svelte-1ob1zsm"><span class="info-label svelte-1ob1zsm">Guardian</span> <span class="info-value svelte-1ob1zsm"><!></span></div> <div class="info-item svelte-1ob1zsm"><span class="info-label svelte-1ob1zsm">Containers</span> <span class="info-value svelte-1ob1zsm"><!></span></div> <div class="info-item svelte-1ob1zsm"><span class="info-label svelte-1ob1zsm">Assistant</span> <span class="info-value svelte-1ob1zsm"><!></span></div> <div class="info-item svelte-1ob1zsm"><span class="info-label svelte-1ob1zsm">Automations</span> <span class="info-value svelte-1ob1zsm"><!></span></div></div></div></div> <div class="panel svelte-1ob1zsm"><div class="panel-header svelte-1ob1zsm"><h2 class="svelte-1ob1zsm">Version Management</h2></div> <div class="panel-body svelte-1ob1zsm"><div class="version-section svelte-1ob1zsm"><div class="version-row svelte-1ob1zsm"><span class="version-label svelte-1ob1zsm">Stack images</span> <code class="version-value version-value--active svelte-1ob1zsm"> </code></div> <div class="version-input-row svelte-1ob1zsm"><!> <button class="btn btn-sm svelte-1ob1zsm"><!></button></div> <p class="version-hint svelte-1ob1zsm">Pulls the selected images and restarts services.</p></div> <div class="version-divider svelte-1ob1zsm"></div> <div class="version-section svelte-1ob1zsm"><div class="version-row svelte-1ob1zsm"><span class="version-label svelte-1ob1zsm">Upgrade Stack</span></div> <div class="version-input-row svelte-1ob1zsm"><button class="btn btn-sm btn-warning svelte-1ob1zsm"><!></button></div> <p class="version-hint svelte-1ob1zsm">Downloads the latest assets, pulls images, and restarts services. Backs up current config first.</p></div> <div class="version-divider svelte-1ob1zsm"></div> <!></div></div></div>`,1);function dt(e,t){E(t,!0),P(()=>{Te.load()});function i(e){let t=[];return e.distTag?t.push(e.distTag):e.prerelease&&t.push(`pre-release`),t.length?`${e.version} (${t.join(`, `)})`:e.version}let s=S(()=>t.automationsData?.automations.length??0),l=S(()=>t.automationsData?.automations.filter(e=>e.enabled).length??0),f=S(()=>t.mergedServices.size===0?null:{total:t.mergedServices.size,running:[...t.mergedServices.values()].filter(e=>e===`running`).length}),p=S(()=>{let e=t.mergedServices.get(`guardian`);return e===`running`?`running`:e===`stopped`||e===`exited`||e===`created`||e?`stopped`:`unknown`}),h=S(()=>{let e=t.mergedServices.get(`assistant`);return e===`running`?`connected`:e===`stopped`||e===`exited`||e===`created`||e?`disconnected`:`unknown`}),g=S(()=>a(f)?a(f).running===a(f).total&&a(f).total>0?{status:`ok`,message:`All ${a(f).total} services running`}:{status:`warning`,message:`${a(f).total-a(f).running} of ${a(f).total} services not running — check the Containers tab`}:{status:`unknown`,message:`Checking services…`});var v=ut(),y=o(v),x=_(N(y),2),C=N(x,!0);b(x),b(y);var D=_(y,2),k=e=>{var r=je(),i=N(r),a=_(N(i),2);b(i);var o=_(i,2),s=N(o,!0);b(o),b(r),m(()=>{z(r,1,`output-section output-section--${t.operationResultType??``}`,`svelte-1ob1zsm`),n(s,t.operationResult)}),d(`click`,a,function(...e){t.onDismissResult?.apply(this,e)}),u(e,r)};r(D,e=>{t.operationResult&&e(k)});var A=_(D,2),j=N(A),I=_(N(j),2),V=N(I),H=N(V),U=N(H),W=N(U),G=e=>{u(e,Me())},K=e=>{u(e,Ne())};r(W,e=>{t.healthLoading?e(G):e(K,-1)}),b(U),L(4),b(H);var q=_(H,2),J=N(q),ee=N(J),te=e=>{u(e,Pe())},ne=e=>{u(e,Fe())};r(ee,e=>{t.applyLoading?e(te):e(ne,-1)}),b(J),L(4),b(q),L(4),b(V),b(I),b(j);var re=_(j,2),ie=_(N(re),2),Y=N(ie),ae=N(Y),oe=_(N(ae),2),se=N(oe),ce=e=>{var r=Ie();let i;var a=N(r,!0);b(r),m(()=>{i=z(r,1,`badge svelte-1ob1zsm`,null,i,{"badge-success":t.adminHealth.status===`ok`,"badge-danger":t.adminHealth.status!==`ok`}),n(a,t.adminHealth.status)}),u(e,r)},le=e=>{u(e,Le())};r(se,e=>{t.adminHealth?e(ce):e(le,-1)}),b(oe),b(ae);var ue=_(ae,2),de=_(N(ue),2),fe=N(de),pe=e=>{u(e,Re())},me=e=>{u(e,ze())},X=e=>{u(e,Be())};r(fe,e=>{a(p)===`running`?e(pe):a(p)===`stopped`?e(me,1):e(X,-1)}),b(de),b(ue);var he=_(ue,2),ge=_(N(he),2),_e=N(ge),ve=e=>{var t=O(),i=o(t),s=e=>{var t=Ve(),r=N(t);b(t),m(()=>n(r,`${a(f).running??``} / ${a(f).total??``} running`)),u(e,t)},c=e=>{var t=He(),r=N(t);b(t),m(()=>n(r,`${a(f).running??``} / ${a(f).total??``} running`)),u(e,t)},l=e=>{var t=Ue(),r=N(t);b(t),m(()=>n(r,`0 / ${a(f).total??``} running`)),u(e,t)};r(i,e=>{a(f).running===a(f).total?e(s):a(f).running>0?e(c,1):e(l,-1)}),u(e,t)},ye=e=>{u(e,We())};r(_e,e=>{a(f)?e(ve):e(ye,-1)}),b(ge),b(he);var be=_(he,2),xe=_(N(be),2),Se=N(xe),Ce=e=>{u(e,Ge())},we=e=>{u(e,Ke())},Z=e=>{u(e,qe())};r(Se,e=>{a(h)===`connected`?e(Ce):a(h)===`disconnected`?e(we,1):e(Z,-1)}),b(xe),b(be);var Q=_(be,2),$=_(N(Q),2),Ee=N($),De=e=>{var t=Je(),r=N(t);b(t),m(()=>n(r,`${a(l)??``} active / ${a(s)??``} total`)),u(e,t)},Oe=e=>{u(e,Ye())};r(Ee,e=>{t.automationsData?e(De):e(Oe,-1)}),b($),b(Q),b(Y),b(ie),b(re);var ke=_(re,2),Ae=_(N(ke),2),dt=N(Ae),ft=N(dt),pt=_(N(ft),2),mt=N(pt,!0);b(pt),b(ft);var ht=_(ft,2),gt=N(ht),_t=e=>{u(e,Xe())},vt=e=>{var r=Qe(),i=N(r);i.value=i.__value=`latest`,B(_(i),17,()=>t.releases,e=>e.tag,(e,t)=>{var r=Ze(),i=N(r);b(r);var o={};m(()=>{n(i,`${a(t).tag??``}${a(t).prerelease?` (pre-release)`:``}`),o!==(o=a(t).tag)&&(r.value=(r.__value=a(t).tag)??``)}),u(e,r)}),b(r);var o;T(r),m(()=>{r.disabled=t.tagChangeLoading||t.anyDangerousLoading,o!==(o=t.selectedImageTag)&&(r.value=(r.__value=t.selectedImageTag)??``,w(r,t.selectedImageTag))}),d(`change`,r,e=>t.onSelectedImageTagChange(e.currentTarget.value)),u(e,r)},yt=e=>{var n=$e();R(n),m(()=>{M(n,t.selectedImageTag),n.disabled=t.tagChangeLoading||t.anyDangerousLoading}),d(`input`,n,e=>t.onSelectedImageTagChange(e.currentTarget.value)),u(e,n)};r(gt,e=>{t.releasesLoading?e(_t):t.releases.length>0?e(vt,1):e(yt,-1)});var bt=_(gt,2),xt=N(bt),St=e=>{var t=et();L(),u(e,t)},Ct=e=>{u(e,c(`Pull & Restart`))};r(xt,e=>{t.tagChangeLoading?e(St):e(Ct,-1)}),b(bt),b(ht),L(2),b(dt);var wt=_(dt,4),Tt=_(N(wt),2),Et=N(Tt),Dt=N(Et),Ot=e=>{var t=tt();L(),u(e,t)},kt=e=>{u(e,c(`Upgrade to Latest`))};r(Dt,e=>{t.upgradeLoading?e(Ot):e(kt,-1)}),b(Et),b(Tt),L(2),b(wt);var At=_(wt,4),jt=e=>{var o=lt(),s=N(o),l=N(s),f=e=>{u(e,nt())},p=e=>{var r=it();B(r,21,()=>t.uiVersions,e=>e.version,(e,t)=>{var r=rt(),o=N(r,!0);b(r);var s={};m(e=>{n(o,e),s!==(s=a(t).version)&&(r.value=(r.__value=a(t).version)??``)},[()=>i(a(t))]),u(e,r)}),b(r);var o;T(r),m(()=>{r.disabled=t.uiDownloadLoading,o!==(o=t.selectedUiTag)&&(r.value=(r.__value=t.selectedUiTag)??``,w(r,t.selectedUiTag))}),d(`change`,r,e=>t.onSelectedUiTagChange(e.currentTarget.value)),u(e,r)},h=e=>{var n=at();R(n),m(()=>{M(n,t.selectedUiTag),n.disabled=t.uiDownloadLoading}),d(`input`,n,e=>t.onSelectedUiTagChange(e.currentTarget.value)),u(e,n)};r(l,e=>{t.uiVersionsLoading?e(f):t.uiVersions.length>0?e(p,1):e(h,-1)});var g=_(l,2),v=N(g),y=e=>{var t=ot();L(),u(e,t)},x=e=>{u(e,c(`Download`))};r(v,e=>{t.uiDownloadLoading?e(y):e(x,-1)}),b(g),b(s);var S=_(s,2),C=e=>{var n=st(),r=_(N(n));b(n),d(`click`,r,function(...e){t.onRestartApp?.apply(this,e)}),u(e,n)},E=e=>{u(e,ct())};r(S,e=>{t.uiDownloadReady?e(C):e(E,-1)}),b(o),m(e=>g.disabled=e,[()=>!t.selectedUiTag.trim()||t.uiDownloadLoading]),d(`click`,g,()=>{t.selectedUiTag.trim()&&t.onDownloadUiVersion(t.selectedUiTag.trim())}),u(e,o)};r(At,e=>{t.inElectron&&e(jt)}),b(Ae),b(ke),b(A),m(e=>{z(y,1,`health-summary health-summary--${a(g).status??``}`,`svelte-1ob1zsm`),n(C,a(g).message),H.disabled=t.healthLoading,q.disabled=t.anyDangerousLoading||!t.tokenStored,n(mt,t.currentImageTag||`—`),bt.disabled=e,Et.disabled=t.anyDangerousLoading||!t.tokenStored},[()=>!t.selectedImageTag.trim()||t.tagChangeLoading||t.anyDangerousLoading]),d(`click`,H,function(...e){t.onCheckHealth?.apply(this,e)}),d(`click`,q,function(...e){t.onApplyChanges?.apply(this,e)}),d(`click`,bt,()=>{t.selectedImageTag.trim()&&t.onSetImageTag(t.selectedImageTag.trim())}),d(`click`,Et,function(...e){t.onUpgradeStack?.apply(this,e)}),u(e,v),F()}l([`click`,`change`,`input`]);var ft=e(`<span class="spinner"></span>`),pt=e(`<div class="loading-state"><span class="spinner"></span> <span>Loading addons...</span></div>`),mt=e(`<div class="error-state svelte-faz2je"><span> </span> <button class="btn btn-secondary btn-sm">Retry</button></div>`),ht=e(`<div class="empty-state"><svg aria-hidden="true" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2L2 7l10 5 10-5-10-5z"></path><path d="M2 17l10 5 10-5"></path><path d="M2 12l10 5 10-5"></path></svg> <p>No addons found in registry/addons/.</p></div>`),gt=e(`<span class="spinner"></span>`),_t=e(`<div class="creds-loading svelte-faz2je"><span class="spinner"></span> Loading credentials...</div>`),vt=e(`<p class="creds-empty svelte-faz2je">This addon has no configurable env vars (compose overlay only).</p>`),yt=e(`<span class="creds-tag svelte-faz2je">sensitive</span>`),bt=e(`<span class="creds-tag creds-tag--set svelte-faz2je">set</span>`),xt=e(`<p class="creds-desc svelte-faz2je"> </p>`),St=e(`<div class="creds-row svelte-faz2je"><label class="creds-label svelte-faz2je"><code class="svelte-faz2je"> </code> <!> <!></label> <!> <input class="form-input svelte-faz2je" autocomplete="off"/></div>`),Ct=e(`<span class="spinner"></span>`),wt=e(`<p class="creds-hint svelte-faz2je">Values are written to <code>knowledge/env/stack.env</code> and read by the addon container on next recreate.</p> <!> <div class="creds-actions svelte-faz2je"><button class="btn btn-primary btn-sm"><!> Save</button></div>`,1),Tt=e(`<div class="addon-creds svelte-faz2je"><!></div>`),Et=e(`<div class="addon-row svelte-faz2je"><span class="addon-col addon-col--name addon-name svelte-faz2je"> </span> <span class="addon-col addon-col--status svelte-faz2je"><span> </span></span> <span class="addon-col addon-col--actions svelte-faz2je"><button class="btn btn-sm btn-ghost"> </button> <button><!></button></span></div> <!>`,1),Dt=e(`<div class="addon-table svelte-faz2je"><div class="addon-table-header svelte-faz2je"><span class="addon-col addon-col--name svelte-faz2je">Addon</span> <span class="addon-col addon-col--status svelte-faz2je">Status</span> <span class="addon-col addon-col--actions svelte-faz2je"></span></div> <!></div>`),Ot=e(`<div class="panel" role="tabpanel"><div class="panel-header"><div><h2>Addons</h2> <p class="panel-subtitle">Optional features you can enable or disable. Credentials are written to the stack config and applied when the addon container restarts.</p></div> <button class="btn btn-secondary btn-sm"><!> Refresh</button></div> <div class="panel-body panel-body--flush"><!></div></div>`);function kt(e,t){E(t,!0);let i=f(g([])),s=f(!1),l=f(``),p=f(null),h=f(null),y=g({}),S=g({}),C=f(null),w=f(null);async function T(){v(s,!0),v(l,``);try{v(i,await we(),!0)}catch(e){let n=e instanceof Error?e.message:String(e);if(n.includes(`401`)||n.includes(`403`)){t.onAuthError();return}v(l,n,!0)}finally{v(s,!1)}}async function D(e,n){v(p,e,!0);try{await fe(e,n),await T()}catch(e){let n=e instanceof Error?e.message:String(e);if(n.includes(`401`)||n.includes(`403`)){t.onAuthError();return}v(l,n,!0)}finally{v(p,null)}}async function O(e){if(a(h)===e){v(h,null);return}if(v(h,e,!0),!y[e]){v(C,e,!0);try{let t=await W(e);y[e]=t;let n={};for(let e of t)n[e.key]=e.sensitive?``:e.value;S[e]=n}catch(e){let n=e instanceof Error?e.message:String(e);if(n.includes(`401`)||n.includes(`403`)){t.onAuthError();return}X.push(`error`,`Could not load credentials: ${n}`)}finally{v(C,null)}}}async function A(e){v(w,e,!0);try{let t=y[e]??[],n=new Set(t.filter(e=>e.sensitive).map(e=>e.key)),r={},i=S[e]??{};for(let[e,t]of Object.entries(i))n.has(e)&&t===``||(r[e]=t);if(Object.keys(r).length===0){X.push(`error`,`Nothing to save.`);return}let{updated:a}=await le(e,r);X.push(`success`,`Saved ${a.length} field(s). Recreate the addon container to apply.`);let o=await W(e);y[e]=o;let s={...i};for(let e of o)e.sensitive&&(s[e.key]=``);S[e]=s}catch(e){let n=e instanceof Error?e.message:String(e);if(n.includes(`401`)||n.includes(`403`)){t.onAuthError();return}X.push(`error`,`Save failed: ${n}`)}finally{v(w,null)}}P(()=>{T()});var j=Ot(),M=N(j),I=_(N(M),2),V=N(I),H=e=>{u(e,ft())};r(V,e=>{a(s)&&e(H)}),L(),b(I),b(M);var U=_(M,2),G=N(U),K=e=>{u(e,pt())},q=e=>{var t=mt(),r=N(t),i=N(r,!0);b(r);var o=_(r,2);b(t),m(()=>n(i,a(l))),d(`click`,o,()=>T()),u(e,t)},J=e=>{u(e,ht())},ee=e=>{var t=Dt();B(_(N(t),2),17,()=>a(i),e=>e.name,(e,t)=>{var i=Et(),s=o(i),l=N(s),f=N(l,!0);b(l);var g=_(l,2),v=N(g);let T;var E=N(v,!0);b(v),b(g);var j=_(g,2),M=N(j),P=N(M,!0);b(M);var F=_(M,2);let I;var V=N(F),H=e=>{u(e,gt())},U=e=>{var r=c();m(()=>n(r,a(t).enabled?`Disable`:`Enable`)),u(e,r)};r(V,e=>{a(p)===a(t).name?e(H):e(U,-1)}),b(F),b(j),b(s);var W=_(s,2),G=e=>{var i=Tt(),s=N(i),c=e=>{u(e,_t())},l=e=>{u(e,vt())},f=e=>{var i=wt(),s=_(o(i),2);B(s,17,()=>y[a(t).name]??[],e=>e.key,(e,i)=>{var o=St(),s=N(o),c=N(s),l=N(c,!0);b(c);var d=_(c,2),f=e=>{u(e,yt())};r(d,e=>{a(i).sensitive&&e(f)});var p=_(d,2),h=e=>{u(e,bt())};r(p,e=>{a(i).sensitive&&a(i).set&&e(h)}),b(s);var g=_(s,2),v=e=>{var t=xt(),r=N(t,!0);b(t),m(()=>n(r,a(i).description)),u(e,t)};r(g,e=>{a(i).description&&e(v)});var y=_(g,2);R(y),b(o),m(()=>{x(s,`for`,`cred-${a(t).name??``}-${a(i).key??``}`),n(l,a(i).key),x(y,`id`,`cred-${a(t).name??``}-${a(i).key??``}`),x(y,`type`,a(i).sensitive?`password`:`text`),x(y,`placeholder`,a(i).sensitive&&a(i).set?`••••••• (leave empty to keep current)`:a(i).default)}),k(y,()=>S[a(t).name][a(i).key],e=>S[a(t).name][a(i).key]=e),u(e,o)});var c=_(s,2),l=N(c),f=N(l),p=e=>{u(e,Ct())};r(f,e=>{a(w)===a(t).name&&e(p)}),L(),b(l),b(c),m(()=>l.disabled=a(w)===a(t).name),d(`click`,l,()=>void A(a(t).name)),u(e,i)};r(s,e=>{a(C)===a(t).name?e(c):(y[a(t).name]?.length??0)===0?e(l,1):e(f,-1)}),b(i),u(e,i)};r(W,e=>{a(h)===a(t).name&&e(G)}),m(()=>{n(f,a(t).name),T=z(v,1,`badge`,null,T,{"badge-enabled":a(t).enabled,"badge-disabled":!a(t).enabled}),n(E,a(t).enabled?`enabled`:`disabled`),M.disabled=!a(t).available,x(M,`aria-expanded`,a(h)===a(t).name),n(P,a(h)===a(t).name?`Hide`:`Credentials`),I=z(F,1,`btn btn-sm`,null,I,{"btn-danger":a(t).enabled,"btn-outline":!a(t).enabled}),F.disabled=a(p)===a(t).name||!a(t).available}),d(`click`,M,()=>void O(a(t).name)),d(`click`,F,()=>D(a(t).name,!a(t).enabled)),u(e,i)}),b(t),u(e,t)};r(G,e=>{a(s)&&a(i).length===0?e(K):a(l)?e(q,1):a(i).length===0?e(J,2):e(ee,-1)}),b(U),b(j),m(()=>I.disabled=a(s)),d(`click`,I,()=>T()),u(e,j),F()}l([`click`]);var At=e(`<span class="last-updated svelte-ocbovv"> </span>`),jt=e(`<span class="spinner"></span>`),Mt=e(`<span class="spinner"></span>`),Nt=e(`<span class="ct-not-created svelte-ocbovv">--</span>`),Pt=e(`<span class="tag-badge svelte-ocbovv"> </span>`),Ft=e(`<span class="ct-not-created svelte-ocbovv">--</span>`),It=e(`<span class="detail-mono detail-digest svelte-ocbovv"> </span>`),Lt=e(`<div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">Image Name</span> <span class="detail-value detail-mono svelte-ocbovv"> </span></div> <div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">Tag / Digest</span> <span class="detail-value svelte-ocbovv"><span class="tag-badge tag-badge--lg svelte-ocbovv"> </span> <!></span></div>`,1),Rt=e(`<div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">Health</span> <span class="detail-value svelte-ocbovv"><span> </span></span></div>`),zt=e(`<div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">Ports</span> <span class="detail-value detail-mono svelte-ocbovv"> </span></div>`),Bt=e(`<div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">Uptime</span> <span class="detail-value svelte-ocbovv"> </span></div>`),Vt=e(`<div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">Created</span> <span class="detail-value svelte-ocbovv"> </span></div>`),Ht=e(`<div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">Project</span> <span class="detail-value detail-mono svelte-ocbovv"> </span></div>`),Ut=e(`<div class="detail-grid svelte-ocbovv"><div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">Container ID</span> <span class="detail-value detail-mono svelte-ocbovv"> </span></div> <div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">Name</span> <span class="detail-value detail-mono svelte-ocbovv"> </span></div> <div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">Image</span> <span class="detail-value detail-mono svelte-ocbovv"> </span></div> <!> <div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">State</span> <span class="detail-value svelte-ocbovv"><span> </span></span></div> <div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">Status</span> <span class="detail-value svelte-ocbovv"> </span></div> <!> <!> <!> <!> <!></div>`),Wt=e(`<div class="detail-not-created svelte-ocbovv"><p class="svelte-ocbovv">Container has not been created yet. Use <strong>Start</strong> to create and start it.</p></div>`),Gt=e(`<div role="status"> </div>`),Kt=e(`<div class="confirm-bar svelte-ocbovv" role="alert"><span class="confirm-text svelte-ocbovv"> <strong> </strong>?</span> <div class="confirm-actions svelte-ocbovv"><button class="btn btn-danger btn-sm">Confirm</button> <button class="btn btn-secondary btn-sm">Cancel</button></div></div>`),qt=e(`<span class="spinner-inline svelte-ocbovv"></span>`),Jt=e(`<button class="btn btn-primary btn-sm"><!> Start</button>`),Yt=e(`<span class="spinner-inline svelte-ocbovv"></span>`),Xt=e(`<span class="spinner-inline svelte-ocbovv"></span>`),Zt=e(`<span class="spinner-inline svelte-ocbovv"></span>`),Qt=e(`<button class="btn btn-secondary btn-sm"><!> Start</button> <button class="btn btn-danger btn-sm"><!> Stop</button> <button class="btn btn-secondary btn-sm"><!> Restart</button>`,1),$t=e(`<div class="detail-actions svelte-ocbovv"><!></div>`),en=e(`<div class="container-detail svelte-ocbovv"><!> <!> <!></div>`),tn=e(`<button class="container-table-row container-table-row--clickable svelte-ocbovv"><span class="ct-col ct-col--name svelte-ocbovv"><span></span> <span class="ct-service-name svelte-ocbovv"> </span></span> <span class="ct-col ct-col--image ct-mono svelte-ocbovv"><!></span> <span class="ct-col ct-col--tag svelte-ocbovv"><!></span> <span class="ct-col ct-col--status svelte-ocbovv"><span> </span></span> <span class="ct-col ct-col--actions svelte-ocbovv"><svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span></button> <!>`,1),nn=e(`<div class="container-table svelte-ocbovv"><div class="container-table-header svelte-ocbovv"><span class="ct-col ct-col--name svelte-ocbovv">Container</span> <span class="ct-col ct-col--image svelte-ocbovv">Image</span> <span class="ct-col ct-col--tag svelte-ocbovv">Tag</span> <span class="ct-col ct-col--status svelte-ocbovv">Status</span> <span class="ct-col ct-col--actions svelte-ocbovv"></span></div> <!></div>`),rn=e(`<p>Loading container status...</p>`),an=e(`<p class="text-danger svelte-ocbovv"> </p> <button class="btn btn-secondary btn-sm svelte-ocbovv">Try Again</button>`,1),on=e(`<p>Docker is not available on this host.</p> <p class="hint svelte-ocbovv">Ensure Docker is running and the admin service has access to the Docker socket.</p>`,1),sn=e(`<p>No containers found. Services may not be installed yet.</p>`),cn=e(`<div class="empty-state svelte-ocbovv"><svg aria-hidden="true" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect><rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect><line x1="6" y1="6" x2="6.01" y2="6"></line><line x1="6" y1="18" x2="6.01" y2="18"></line></svg> <!></div>`),ln=e(`<div class="panel" role="tabpanel"><div class="panel-header"><h2>Container Status</h2> <div class="panel-header-actions"><!> <button class="btn btn-secondary btn-sm"><!> Pull Images</button> <button class="btn btn-secondary btn-sm"><!> Refresh</button></div></div> <div class="panel-body panel-body--flush"><!></div></div>`);function un(e,t){E(t,!0);let i=S(()=>t.serviceEntries.length>0),s=g({});function l(e){let t=e.indexOf(`@`),n=t>-1?e.slice(0,t):e,r=n.lastIndexOf(`:`);return r>-1?{name:n.slice(0,r),tag:n.slice(r+1)}:{name:n,tag:`latest`}}function f(e){return e===`running`?`success`:e===`exited`||e===`dead`||e===`stopped`?`danger`:e===`restarting`||e===`paused`?`warning`:`idle`}function p(e){return s[e]||(s[e]={inFlight:null,confirm:null,feedback:null}),s[e]}function h(e,t,n){n.stopPropagation(),p(e).confirm=t}function v(e,t){t.stopPropagation(),p(e).confirm=null}async function y(e,n,r,i){i.stopPropagation();let a=p(e);a.confirm=null,a.inFlight=r,a.feedback=null;try{r===`start`?t.onStart(n):r===`stop`?t.onStop(n):t.onRestart(n),a.feedback={type:`success`,message:`${r.charAt(0).toUpperCase()+r.slice(1)} initiated`}}catch(e){a.feedback={type:`error`,message:`${r} failed: ${e instanceof Error?e.message:e}`}}a.inFlight=null,setTimeout(()=>{a.feedback=null},3e3)}var C=ln(),w=N(C),T=_(N(w),2),D=N(T),O=e=>{var r=At(),i=N(r);b(r),m(()=>n(i,`Updated ${t.lastUpdated??``}`)),u(e,r)};r(D,e=>{t.lastUpdated&&e(O)});var k=_(D,2),A=N(k),j=e=>{u(e,jt())};r(A,e=>{t.pullLoading&&e(j)}),L(),b(k);var M=_(k,2),P=N(M),I=e=>{u(e,Mt())};r(P,e=>{t.loading&&e(I)}),L(),b(M),b(T),b(w);var R=_(w,2),V=N(R),H=e=>{var i=nn();B(_(N(i),2),17,()=>t.serviceEntries,e=>e.id,(e,i)=>{let p=S(()=>t.selectedContainerId===a(i).id),g=S(()=>s[a(i).id]?.inFlight??null),C=S(()=>s[a(i).id]?.confirm??null),w=S(()=>s[a(i).id]?.feedback??null),T=S(()=>a(i).docker?l(a(i).docker.Image):null),E=S(()=>a(g)!==null),D=S(()=>!a(i).docker);var O=tn(),k=o(O),A=N(k),j=N(A),M=_(j,2),P=N(M,!0);b(M),b(A);var F=_(A,2),I=N(F),R=e=>{var t=c();m(()=>n(t,a(T).name)),u(e,t)},B=e=>{u(e,Nt())};r(I,e=>{a(T)?e(R):e(B,-1)}),b(F);var V=_(F,2),H=N(V),U=e=>{var t=Pt(),r=N(t,!0);b(t),m(()=>n(r,a(T).tag)),u(e,t)},W=e=>{u(e,Ft())};r(H,e=>{a(T)?e(U):e(W,-1)}),b(V);var G=_(V,2),K=N(G),q=N(K,!0);b(K),b(G);var J=_(G,2),ee=N(J);let te;b(J),b(k);var ne=_(k,2),re=e=>{var t=en(),s=N(t),c=e=>{let t=S(()=>a(i).docker);var s=Ut(),c=N(s),l=_(N(c),2),d=N(l,!0);b(l),b(c);var p=_(c,2),h=_(N(p),2),g=N(h,!0);b(h),b(p);var v=_(p,2),y=_(N(v),2),x=N(y,!0);b(y),b(v);var C=_(v,2),w=e=>{var i=Lt(),s=o(i),c=_(N(s),2),l=N(c,!0);b(c),b(s);var d=_(s,2),f=_(N(d),2),p=N(f),h=N(p,!0);b(p);var g=_(p,2),v=e=>{var r=It(),i=N(r);b(r),m(e=>n(i,`${e??``}...`),[()=>a(t).Image.split(`@`)[1]?.slice(0,19)]),u(e,r)},y=S(()=>a(t).Image.includes(`@`));r(g,e=>{a(y)&&e(v)}),b(f),b(d),m(()=>{n(l,a(T).name),n(h,a(T).tag)}),u(e,i)};r(C,e=>{a(T)&&e(w)});var E=_(C,2),D=_(N(E),2),O=N(D),k=N(O,!0);b(O),b(D),b(E);var A=_(E,2),j=_(N(A),2),M=N(j,!0);b(j),b(A);var P=_(A,2),F=e=>{var r=Rt(),i=_(N(r),2),o=N(i);let s;var c=N(o,!0);b(o),b(i),b(r),m(e=>{s=z(o,1,`badge`,null,s,e),n(c,a(t).Health)},[()=>({"badge-success":a(t).Health===`healthy`,"badge-warning":a(t).Health===`starting`,"badge-danger":a(t).Health===`unhealthy`,"badge-idle":![`healthy`,`starting`,`unhealthy`].includes(a(t).Health)})]),u(e,r)};r(P,e=>{a(t).Health&&e(F)});var I=_(P,2),L=e=>{var r=zt(),i=_(N(r),2),o=N(i,!0);b(i),b(r),m(()=>n(o,a(t).Ports)),u(e,r)};r(I,e=>{a(t).Ports&&e(L)});var R=_(I,2),B=e=>{var r=Bt(),i=_(N(r),2),o=N(i,!0);b(i),b(r),m(()=>n(o,a(t).RunningFor)),u(e,r)};r(R,e=>{a(t).RunningFor&&e(B)});var V=_(R,2),H=e=>{var r=Vt(),i=_(N(r),2),o=N(i,!0);b(i),b(r),m(()=>n(o,a(t).CreatedAt)),u(e,r)};r(V,e=>{a(t).CreatedAt&&e(H)});var U=_(V,2),W=e=>{var r=Ht(),i=_(N(r),2),o=N(i,!0);b(i),b(r),m(()=>n(o,a(t).Project)),u(e,r)};r(U,e=>{a(t).Project&&e(W)}),b(s),m(e=>{n(d,a(t).ID),n(g,a(t).Name||a(t).Names),n(x,a(t).Image),z(O,1,`badge badge-${e??``}`,`svelte-ocbovv`),n(k,a(t).State),n(M,a(t).Status)},[()=>f(a(t).State)]),u(e,s)},l=e=>{u(e,Wt())};r(s,e=>{a(i).docker?e(c):e(l,-1)});var p=_(s,2),x=e=>{var t=Gt(),r=N(t,!0);b(t),m(()=>{z(t,1,`action-feedback action-feedback--${a(w).type??``}`,`svelte-ocbovv`),n(r,a(w).message)}),u(e,t)};r(p,e=>{a(w)&&e(x)});var O=_(p,2),k=e=>{var t=Kt(),r=N(t),o=N(r),s=_(o),c=N(s,!0);b(s),L(),b(r);var l=_(r,2),f=N(l),p=_(f,2);b(l),b(t),m(e=>{n(o,`${e??``} `),n(c,a(i).service)},[()=>a(C).charAt(0).toUpperCase()+a(C).slice(1)]),d(`click`,f,e=>y(a(i).id,a(i).service,a(C),e)),d(`click`,p,e=>v(a(i).id,e)),u(e,t)},A=e=>{var t=$t(),n=N(t),s=e=>{var t=Jt(),n=N(t),o=e=>{u(e,qt())};r(n,e=>{a(g)===`start`&&e(o)}),L(),b(t),m(()=>t.disabled=a(E)),d(`click`,t,e=>h(a(i).id,`start`,e)),u(e,t)},c=e=>{var t=Qt(),n=o(t),s=N(n),c=e=>{u(e,Yt())};r(s,e=>{a(g)===`start`&&e(c)}),L(),b(n);var l=_(n,2),f=N(l),p=e=>{u(e,Xt())};r(f,e=>{a(g)===`stop`&&e(p)}),L(),b(l);var v=_(l,2),y=N(v),x=e=>{u(e,Zt())};r(y,e=>{a(g)===`restart`&&e(x)}),L(),b(v),m(()=>{n.disabled=a(E),l.disabled=a(E),v.disabled=a(E)}),d(`click`,n,e=>h(a(i).id,`start`,e)),d(`click`,l,e=>h(a(i).id,`stop`,e)),d(`click`,v,e=>h(a(i).id,`restart`,e)),u(e,t)};r(n,e=>{a(D)?e(s):e(c,-1)}),b(t),u(e,t)};r(O,e=>{a(C)?e(k):e(A,-1)}),b(t),u(e,t)};r(ne,e=>{a(p)&&e(re)}),m((e,t)=>{x(k,`aria-expanded`,a(p)),z(j,1,`ct-indicator ct-indicator--${e??``}`,`svelte-ocbovv`),n(P,a(i).service),z(K,1,`badge badge-${t??``}`,`svelte-ocbovv`),n(q,a(i).state),te=z(ee,0,`svelte-ocbovv`,null,te,{"ct-chevron-open":a(p)})},[()=>f(a(i).state),()=>f(a(i).state)]),d(`click`,k,()=>t.onToggleContainer(a(i).id)),u(e,O)}),b(i),u(e,i)},U=e=>{var i=cn(),a=_(N(i),2),s=e=>{u(e,rn())},c=e=>{var r=an(),i=o(r),a=N(i,!0);b(i);var s=_(i,2);m(()=>{n(a,t.error),s.disabled=!t.tokenStored}),d(`click`,s,function(...e){t.onRefresh?.apply(this,e)}),u(e,r)},l=e=>{var t=on();L(2),u(e,t)},f=e=>{u(e,sn())};r(a,e=>{t.loading?e(s):t.error?e(c,1):t.containerData&&!t.containerData.dockerAvailable?e(l,2):e(f,-1)}),b(i),u(e,i)};r(V,e=>{a(i)?e(H):e(U,-1)}),b(R),b(C),m(()=>{k.disabled=t.pullLoading||!t.tokenStored,M.disabled=t.loading||!t.tokenStored}),d(`click`,k,function(...e){t.onPullImages?.apply(this,e)}),d(`click`,M,function(...e){t.onRefresh?.apply(this,e)}),u(e,C),F()}l([`click`]);var dn=e(`<span class="spinner"></span>`),fn=e(`<span class="spinner"></span>`),pn=e(`<div class="task-editor svelte-1uqcxu1"><div class="task-editor-head svelte-1uqcxu1"><span class="task-editor-name svelte-1uqcxu1"> </span> <span class="task-editor-hint svelte-1uqcxu1">Raw akm task file (YAML) — set <code>enabled</code>, <code>schedule</code>, <code>command</code>, etc.</span></div> <textarea class="task-editor-area svelte-1uqcxu1" spellcheck="false" rows="14"></textarea> <div class="task-editor-actions svelte-1uqcxu1"><button class="btn btn-secondary btn-sm">Cancel</button> <button class="btn btn-primary btn-sm"><!> Save</button></div></div>`),mn=e(`<div class="automation-desc svelte-1uqcxu1"> </div>`),hn=e(`<span class="meta-item schedule-friendly svelte-1uqcxu1"> </span>`),gn=e(`<span class="meta-item svelte-1uqcxu1"><code class="svelte-1uqcxu1"> </code></span> <span class="meta-item meta-tz svelte-1uqcxu1"> </span>`,1),_n=e(`<div class="automation-card svelte-1uqcxu1"><div class="automation-row svelte-1uqcxu1"><div class="automation-main svelte-1uqcxu1"><div class="automation-name svelte-1uqcxu1"> <span> </span> <span class="badge badge-type svelte-1uqcxu1"> </span></div> <!></div> <div class="automation-meta svelte-1uqcxu1"><!></div></div> <div class="automation-footer svelte-1uqcxu1"><span class="automation-file svelte-1uqcxu1"> </span> <div class="automation-actions svelte-1uqcxu1"><button class="btn btn-ghost btn-sm">Edit</button> <button class="btn btn-ghost btn-sm">Delete</button></div></div></div>`),vn=e(`<div class="automation-list svelte-1uqcxu1"></div>`),yn=e(`<p>Loading automations...</p>`),bn=e(`<p class="text-danger svelte-1uqcxu1"> </p> <button class="btn btn-secondary btn-sm svelte-1uqcxu1">Try Again</button>`,1),xn=e(`<p>No automations configured.</p> <p class="empty-state-hint svelte-1uqcxu1">Drop <code class="svelte-1uqcxu1">.md</code> task files into <code class="svelte-1uqcxu1">~/.openpalm/knowledge/tasks/</code>, or install via <code class="svelte-1uqcxu1">akm</code>.</p>`,1),Sn=e(`<div class="empty-state svelte-1uqcxu1"><svg aria-hidden="true" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg> <!></div>`),Cn=e(`<div class="panel" role="tabpanel"><div class="panel-header"><div><h2>Automations</h2> <p class="panel-subtitle">Scheduled tasks read from <code>~/.openpalm/knowledge/tasks/</code>. Add or edit task files there to manage automations — changes take effect on refresh.</p></div> <div class="panel-header-actions"><button class="btn btn-secondary btn-sm">New task</button> <button class="btn btn-secondary btn-sm"><!> Refresh</button></div></div> <!> <div class="panel-body"><!></div></div>`);function wn(e,t){E(t,!0);let s=S(()=>t.data!==null&&Array.isArray(t.data.automations)&&t.data.automations.length>0),c=f(null),l=f(``),h=f(!1);async function g(e){if(!a(h)){v(h,!0);try{v(c,e,!0),v(l,(await q(e)).content,!0)}catch(e){X.push(`error`,e instanceof Error?e.message:`Failed to read task file.`),v(c,null)}finally{v(h,!1)}}}function y(){let e=(prompt(`New task file name (.yml):`,`my-task.yml`)??``).trim();e&&(v(c,e,!0),v(l,`schedule: '0 9 * * *'
1
+ import{A as e,B as t,D as n,E as r,G as i,I as a,J as o,K as s,M as c,N as l,O as u,P as d,Q as f,T as p,V as m,W as h,X as g,Y as _,Z as v,c as y,ct as b,d as x,et as S,f as C,g as w,h as T,it as E,j as D,k as O,l as k,m as A,n as j,p as M,q as N,r as P,rt as F,s as I,st as L,u as R,v as z,w as B,y as V}from"../chunks/BwTF6U35.js";import"../chunks/xihTtKlq.js";import{$ as H,A as U,C as W,D as G,E as K,F as q,G as J,H as ee,I as te,K as ne,L as re,M as ie,N as Y,P as ae,R as oe,S as se,T as ce,U as le,W as ue,X as de,Z as fe,a as pe,b as me,d as X,f as he,j as ge,k as _e,m as ve,o as ye,p as be,q as xe,u as Se,v as Ce,w as we,x as Z,y as Q}from"../chunks/DXseS2Vw.js";import{n as $,r as Te,t as Ee}from"../chunks/Dh6kjuFV.js";import{n as De,t as Oe}from"../chunks/Cb_i8bV9.js";var ke=e(`<div class="tabs svelte-1wwzsr0" role="tablist"><button role="tab"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="7"></rect><rect x="14" y="3" width="7" height="7"></rect><rect x="14" y="14" width="7" height="7"></rect><rect x="3" y="14" width="7" height="7"></rect></svg> Overview</button> <button role="tab"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2L2 7l10 5 10-5-10-5z"></path><path d="M2 17l10 5 10-5"></path><path d="M2 12l10 5 10-5"></path></svg> Addons</button> <button role="tab"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg> Automations</button> <button role="tab"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg> Connections</button> <button role="tab"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg> Secrets</button> <button role="tab"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2"></path><line x1="12" y1="19" x2="12" y2="23"></line><line x1="8" y1="23" x2="16" y2="23"></line></svg> Voice</button> <button role="tab"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg> Knowledge</button> <button role="tab"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect><rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect><line x1="6" y1="6" x2="6.01" y2="6"></line><line x1="6" y1="18" x2="6.01" y2="18"></line></svg> Containers</button> <button role="tab"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 17 10 11 4 5"></polyline><line x1="12" y1="19" x2="20" y2="19"></line></svg> Logs</button></div>`);function Ae(e,t){E(t,!0);function n(e){if(e.key!==`ArrowLeft`&&e.key!==`ArrowRight`)return;e.preventDefault();let t=e.currentTarget,n=Array.from(t.parentElement?.querySelectorAll(`[role="tab"]`)??[]),r=n.indexOf(t);if(r===-1)return;let i;i=e.key===`ArrowRight`?(r+1)%n.length:(r-1+n.length)%n.length,n[i]?.focus()}var r=ke(),i=N(r);let a;var o=_(i,2);let s;var c=_(o,2);let l;var f=_(c,2);let p;var h=_(f,2);let g;var v=_(h,2);let y;var S=_(v,2);let C;var w=_(S,2);let T;var D=_(w,2);let O;b(r),m(()=>{a=z(i,1,`tab svelte-1wwzsr0`,null,a,{"tab-active":t.active===`overview`}),x(i,`aria-selected`,t.active===`overview`),s=z(o,1,`tab svelte-1wwzsr0`,null,s,{"tab-active":t.active===`addons`}),x(o,`aria-selected`,t.active===`addons`),l=z(c,1,`tab svelte-1wwzsr0`,null,l,{"tab-active":t.active===`automations`}),x(c,`aria-selected`,t.active===`automations`),p=z(f,1,`tab svelte-1wwzsr0`,null,p,{"tab-active":t.active===`connections`}),x(f,`aria-selected`,t.active===`connections`),g=z(h,1,`tab svelte-1wwzsr0`,null,g,{"tab-active":t.active===`secrets`}),x(h,`aria-selected`,t.active===`secrets`),y=z(v,1,`tab svelte-1wwzsr0`,null,y,{"tab-active":t.active===`voice`}),x(v,`aria-selected`,t.active===`voice`),C=z(S,1,`tab svelte-1wwzsr0`,null,C,{"tab-active":t.active===`akm`}),x(S,`aria-selected`,t.active===`akm`),T=z(w,1,`tab svelte-1wwzsr0`,null,T,{"tab-active":t.active===`containers`}),x(w,`aria-selected`,t.active===`containers`),O=z(D,1,`tab svelte-1wwzsr0`,null,O,{"tab-active":t.active===`logs`}),x(D,`aria-selected`,t.active===`logs`)}),d(`click`,i,()=>t.onSelect(`overview`)),d(`keydown`,i,n),d(`click`,o,()=>t.onSelect(`addons`)),d(`keydown`,o,n),d(`click`,c,()=>t.onSelect(`automations`)),d(`keydown`,c,n),d(`click`,f,()=>t.onSelect(`connections`)),d(`keydown`,f,n),d(`click`,h,()=>t.onSelect(`secrets`)),d(`keydown`,h,n),d(`click`,v,()=>t.onSelect(`voice`)),d(`keydown`,v,n),d(`click`,S,()=>t.onSelect(`akm`)),d(`keydown`,S,n),d(`click`,w,()=>t.onSelect(`containers`)),d(`keydown`,w,n),d(`click`,D,()=>t.onSelect(`logs`)),d(`keydown`,D,n),u(e,r),F()}l([`click`,`keydown`]);var je=e(`<section><div class="output-header svelte-1ob1zsm"><h3 class="svelte-1ob1zsm">Operation Output</h3> <button class="btn-ghost svelte-1ob1zsm" aria-label="Dismiss"><svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1ob1zsm"><line x1="18" y1="6" x2="6" y2="18" class="svelte-1ob1zsm"></line><line x1="6" y1="6" x2="18" y2="18" class="svelte-1ob1zsm"></line></svg></button></div> <pre class="output-code svelte-1ob1zsm"> </pre></section>`),Me=e(`<span class="spinner svelte-1ob1zsm"></span>`),Ne=D(`<svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1ob1zsm"><path d="M22 12h-4l-3 9L9 3l-3 9H2" class="svelte-1ob1zsm"></path></svg>`),Pe=e(`<span class="spinner svelte-1ob1zsm"></span>`),Fe=D(`<svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1ob1zsm"><polyline points="16 16 12 12 8 16" class="svelte-1ob1zsm"></polyline><line x1="12" y1="12" x2="12" y2="21" class="svelte-1ob1zsm"></line><path d="M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3" class="svelte-1ob1zsm"></path></svg>`),Ie=e(`<span> </span>`),Le=e(`<span class="badge badge-idle svelte-1ob1zsm">Unknown</span>`),Re=e(`<span class="badge badge-success svelte-1ob1zsm">Running</span>`),ze=e(`<span class="badge badge-danger svelte-1ob1zsm">Stopped</span>`),Be=e(`<span class="badge badge-idle svelte-1ob1zsm">Unknown</span>`),Ve=e(`<span class="badge badge-success svelte-1ob1zsm"> </span>`),He=e(`<span class="badge badge-warning svelte-1ob1zsm"> </span>`),Ue=e(`<span class="badge badge-danger svelte-1ob1zsm"> </span>`),We=e(`<span class="badge badge-idle svelte-1ob1zsm">Unknown</span>`),Ge=e(`<span class="badge badge-success svelte-1ob1zsm">Connected</span>`),Ke=e(`<span class="badge badge-danger svelte-1ob1zsm">Disconnected</span>`),qe=e(`<span class="badge badge-idle svelte-1ob1zsm">Unknown</span>`),Je=e(`<span class="info-mono svelte-1ob1zsm"> </span>`),Ye=e(`<span class="badge badge-idle svelte-1ob1zsm">Loading</span>`),Xe=e(`<div class="version-select-skeleton svelte-1ob1zsm"></div>`),Ze=e(`<option class="svelte-1ob1zsm"> </option>`),Qe=e(`<select class="version-select svelte-1ob1zsm"><option class="svelte-1ob1zsm">latest</option><!></select>`),$e=e(`<input class="version-input svelte-1ob1zsm" type="text" placeholder="e.g. 0.11.0 or latest"/>`),et=e(`<span class="spinner spinner-sm svelte-1ob1zsm"></span> Applying…`,1),tt=e(`<span class="spinner spinner-sm svelte-1ob1zsm"></span> Upgrading…`,1),nt=e(`<div class="version-select-skeleton svelte-1ob1zsm"></div>`),rt=e(`<option class="svelte-1ob1zsm"> </option>`),it=e(`<select class="version-select svelte-1ob1zsm"></select>`),at=e(`<input class="version-input svelte-1ob1zsm" type="text" placeholder="e.g. 0.11.0-beta.7"/>`),ot=e(`<span class="spinner spinner-sm svelte-1ob1zsm"></span> Downloading…`,1),st=e(`<div class="version-restart-prompt svelte-1ob1zsm">UI updated. <button class="btn btn-sm btn-primary svelte-1ob1zsm">Restart App</button></div>`),ct=e(`<p class="version-hint svelte-1ob1zsm">Downloads and replaces the UI from GitHub. Takes effect on restart.</p>`),lt=e(`<div class="version-section svelte-1ob1zsm"><div class="version-input-row svelte-1ob1zsm"><!> <button class="btn btn-sm svelte-1ob1zsm"><!></button></div> <!></div>`),ut=e(`<div role="status" aria-live="polite"><span class="health-dot svelte-1ob1zsm"></span> <span class="health-msg svelte-1ob1zsm"> </span></div> <!> <div class="panel-grid svelte-1ob1zsm" role="tabpanel"><div class="panel svelte-1ob1zsm"><div class="panel-header svelte-1ob1zsm"><h2 class="svelte-1ob1zsm">Quick Actions</h2></div> <div class="panel-body svelte-1ob1zsm"><div class="action-list svelte-1ob1zsm"><button class="action-item svelte-1ob1zsm"><span class="action-icon action-icon--blue svelte-1ob1zsm"><!></span> <div class="action-content svelte-1ob1zsm"><span class="action-title svelte-1ob1zsm">Health Check</span> <span class="action-desc svelte-1ob1zsm">Verify admin and guardian services are reachable</span></div> <span class="action-arrow svelte-1ob1zsm"><svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1ob1zsm"><polyline points="9 18 15 12 9 6" class="svelte-1ob1zsm"></polyline></svg></span></button> <button class="action-item svelte-1ob1zsm"><span class="action-icon action-icon--blue svelte-1ob1zsm"><!></span> <div class="action-content svelte-1ob1zsm"><span class="action-title svelte-1ob1zsm">Apply Config + Restart</span> <span class="action-desc svelte-1ob1zsm">Update configuration and restart running services</span> <span class="action-hint svelte-1ob1zsm">Restarts services with updated compose config.</span></div> <span class="action-arrow svelte-1ob1zsm"><svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1ob1zsm"><polyline points="9 18 15 12 9 6" class="svelte-1ob1zsm"></polyline></svg></span></button> <a class="action-item svelte-1ob1zsm" href="/setup?rerun=1"><span class="action-icon action-icon--purple svelte-1ob1zsm"><svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1ob1zsm"><circle cx="12" cy="12" r="3" class="svelte-1ob1zsm"></circle><path d="M19.07 4.93a10 10 0 0 1 0 14.14M4.93 4.93a10 10 0 0 0 0 14.14" class="svelte-1ob1zsm"></path></svg></span> <div class="action-content svelte-1ob1zsm"><span class="action-title svelte-1ob1zsm">Update Settings</span> <span class="action-desc svelte-1ob1zsm">Re-run setup wizard to change providers, channels, or options</span></div> <span class="action-arrow svelte-1ob1zsm"><svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1ob1zsm"><polyline points="9 18 15 12 9 6" class="svelte-1ob1zsm"></polyline></svg></span></a> <a class="action-item svelte-1ob1zsm" href="/advanced"><span class="action-icon action-icon--blue svelte-1ob1zsm"><svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1ob1zsm"><rect x="3" y="3" width="18" height="18" rx="2" ry="2" class="svelte-1ob1zsm"></rect><path d="M9 9h6v6H9z" class="svelte-1ob1zsm"></path></svg></span> <div class="action-content svelte-1ob1zsm"><span class="action-title svelte-1ob1zsm">Advanced Chat (OpenCode)</span> <span class="action-desc svelte-1ob1zsm">Open the full OpenCode UI embedded in OpenPalm — host machine only</span></div> <span class="action-arrow svelte-1ob1zsm"><svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1ob1zsm"><polyline points="9 18 15 12 9 6" class="svelte-1ob1zsm"></polyline></svg></span></a></div></div></div> <div class="panel svelte-1ob1zsm"><div class="panel-header svelte-1ob1zsm"><h2 class="svelte-1ob1zsm">System Information</h2></div> <div class="panel-body svelte-1ob1zsm"><div class="info-grid svelte-1ob1zsm"><div class="info-item svelte-1ob1zsm"><span class="info-label svelte-1ob1zsm">Admin API</span> <span class="info-value svelte-1ob1zsm"><!></span></div> <div class="info-item svelte-1ob1zsm"><span class="info-label svelte-1ob1zsm">Guardian</span> <span class="info-value svelte-1ob1zsm"><!></span></div> <div class="info-item svelte-1ob1zsm"><span class="info-label svelte-1ob1zsm">Containers</span> <span class="info-value svelte-1ob1zsm"><!></span></div> <div class="info-item svelte-1ob1zsm"><span class="info-label svelte-1ob1zsm">Assistant</span> <span class="info-value svelte-1ob1zsm"><!></span></div> <div class="info-item svelte-1ob1zsm"><span class="info-label svelte-1ob1zsm">Automations</span> <span class="info-value svelte-1ob1zsm"><!></span></div></div></div></div> <div class="panel svelte-1ob1zsm"><div class="panel-header svelte-1ob1zsm"><h2 class="svelte-1ob1zsm">Version Management</h2></div> <div class="panel-body svelte-1ob1zsm"><div class="version-section svelte-1ob1zsm"><div class="version-row svelte-1ob1zsm"><span class="version-label svelte-1ob1zsm">Stack images</span> <code class="version-value version-value--active svelte-1ob1zsm"> </code></div> <div class="version-input-row svelte-1ob1zsm"><!> <button class="btn btn-sm svelte-1ob1zsm"><!></button></div> <p class="version-hint svelte-1ob1zsm">Pulls the selected images and restarts services.</p></div> <div class="version-divider svelte-1ob1zsm"></div> <div class="version-section svelte-1ob1zsm"><div class="version-row svelte-1ob1zsm"><span class="version-label svelte-1ob1zsm">Upgrade Stack</span></div> <div class="version-input-row svelte-1ob1zsm"><button class="btn btn-sm btn-warning svelte-1ob1zsm"><!></button></div> <p class="version-hint svelte-1ob1zsm">Downloads the latest assets, pulls images, and restarts services. Backs up current config first.</p></div> <div class="version-divider svelte-1ob1zsm"></div> <!></div></div></div>`,1);function dt(e,t){E(t,!0),P(()=>{Te.load()});function i(e){let t=[];return e.distTag?t.push(e.distTag):e.prerelease&&t.push(`pre-release`),t.length?`${e.version} (${t.join(`, `)})`:e.version}let s=S(()=>t.automationsData?.automations.length??0),l=S(()=>t.automationsData?.automations.filter(e=>e.enabled).length??0),f=S(()=>t.mergedServices.size===0?null:{total:t.mergedServices.size,running:[...t.mergedServices.values()].filter(e=>e===`running`).length}),p=S(()=>{let e=t.mergedServices.get(`guardian`);return e===`running`?`running`:e===`stopped`||e===`exited`||e===`created`||e?`stopped`:`unknown`}),h=S(()=>{let e=t.mergedServices.get(`assistant`);return e===`running`?`connected`:e===`stopped`||e===`exited`||e===`created`||e?`disconnected`:`unknown`}),g=S(()=>a(f)?a(f).running===a(f).total&&a(f).total>0?{status:`ok`,message:`All ${a(f).total} services running`}:{status:`warning`,message:`${a(f).total-a(f).running} of ${a(f).total} services not running — check the Containers tab`}:{status:`unknown`,message:`Checking services…`});var v=ut(),y=o(v),x=_(N(y),2),C=N(x,!0);b(x),b(y);var D=_(y,2),k=e=>{var r=je(),i=N(r),a=_(N(i),2);b(i);var o=_(i,2),s=N(o,!0);b(o),b(r),m(()=>{z(r,1,`output-section output-section--${t.operationResultType??``}`,`svelte-1ob1zsm`),n(s,t.operationResult)}),d(`click`,a,function(...e){t.onDismissResult?.apply(this,e)}),u(e,r)};r(D,e=>{t.operationResult&&e(k)});var A=_(D,2),j=N(A),I=_(N(j),2),V=N(I),H=N(V),U=N(H),W=N(U),G=e=>{u(e,Me())},K=e=>{u(e,Ne())};r(W,e=>{t.healthLoading?e(G):e(K,-1)}),b(U),L(4),b(H);var q=_(H,2),J=N(q),ee=N(J),te=e=>{u(e,Pe())},ne=e=>{u(e,Fe())};r(ee,e=>{t.applyLoading?e(te):e(ne,-1)}),b(J),L(4),b(q),L(4),b(V),b(I),b(j);var re=_(j,2),ie=_(N(re),2),Y=N(ie),ae=N(Y),oe=_(N(ae),2),se=N(oe),ce=e=>{var r=Ie();let i;var a=N(r,!0);b(r),m(()=>{i=z(r,1,`badge svelte-1ob1zsm`,null,i,{"badge-success":t.adminHealth.status===`ok`,"badge-danger":t.adminHealth.status!==`ok`}),n(a,t.adminHealth.status)}),u(e,r)},le=e=>{u(e,Le())};r(se,e=>{t.adminHealth?e(ce):e(le,-1)}),b(oe),b(ae);var ue=_(ae,2),de=_(N(ue),2),fe=N(de),pe=e=>{u(e,Re())},me=e=>{u(e,ze())},X=e=>{u(e,Be())};r(fe,e=>{a(p)===`running`?e(pe):a(p)===`stopped`?e(me,1):e(X,-1)}),b(de),b(ue);var he=_(ue,2),ge=_(N(he),2),_e=N(ge),ve=e=>{var t=O(),i=o(t),s=e=>{var t=Ve(),r=N(t);b(t),m(()=>n(r,`${a(f).running??``} / ${a(f).total??``} running`)),u(e,t)},c=e=>{var t=He(),r=N(t);b(t),m(()=>n(r,`${a(f).running??``} / ${a(f).total??``} running`)),u(e,t)},l=e=>{var t=Ue(),r=N(t);b(t),m(()=>n(r,`0 / ${a(f).total??``} running`)),u(e,t)};r(i,e=>{a(f).running===a(f).total?e(s):a(f).running>0?e(c,1):e(l,-1)}),u(e,t)},ye=e=>{u(e,We())};r(_e,e=>{a(f)?e(ve):e(ye,-1)}),b(ge),b(he);var be=_(he,2),xe=_(N(be),2),Se=N(xe),Ce=e=>{u(e,Ge())},we=e=>{u(e,Ke())},Z=e=>{u(e,qe())};r(Se,e=>{a(h)===`connected`?e(Ce):a(h)===`disconnected`?e(we,1):e(Z,-1)}),b(xe),b(be);var Q=_(be,2),$=_(N(Q),2),Ee=N($),De=e=>{var t=Je(),r=N(t);b(t),m(()=>n(r,`${a(l)??``} active / ${a(s)??``} total`)),u(e,t)},Oe=e=>{u(e,Ye())};r(Ee,e=>{t.automationsData?e(De):e(Oe,-1)}),b($),b(Q),b(Y),b(ie),b(re);var ke=_(re,2),Ae=_(N(ke),2),dt=N(Ae),ft=N(dt),pt=_(N(ft),2),mt=N(pt,!0);b(pt),b(ft);var ht=_(ft,2),gt=N(ht),_t=e=>{u(e,Xe())},vt=e=>{var r=Qe(),i=N(r);i.value=i.__value=`latest`,B(_(i),17,()=>t.releases,e=>e.tag,(e,t)=>{var r=Ze(),i=N(r);b(r);var o={};m(()=>{n(i,`${a(t).tag??``}${a(t).prerelease?` (pre-release)`:``}`),o!==(o=a(t).tag)&&(r.value=(r.__value=a(t).tag)??``)}),u(e,r)}),b(r);var o;T(r),m(()=>{r.disabled=t.tagChangeLoading||t.anyDangerousLoading,o!==(o=t.selectedImageTag)&&(r.value=(r.__value=t.selectedImageTag)??``,w(r,t.selectedImageTag))}),d(`change`,r,e=>t.onSelectedImageTagChange(e.currentTarget.value)),u(e,r)},yt=e=>{var n=$e();R(n),m(()=>{M(n,t.selectedImageTag),n.disabled=t.tagChangeLoading||t.anyDangerousLoading}),d(`input`,n,e=>t.onSelectedImageTagChange(e.currentTarget.value)),u(e,n)};r(gt,e=>{t.releasesLoading?e(_t):t.releases.length>0?e(vt,1):e(yt,-1)});var bt=_(gt,2),xt=N(bt),St=e=>{var t=et();L(),u(e,t)},Ct=e=>{u(e,c(`Pull & Restart`))};r(xt,e=>{t.tagChangeLoading?e(St):e(Ct,-1)}),b(bt),b(ht),L(2),b(dt);var wt=_(dt,4),Tt=_(N(wt),2),Et=N(Tt),Dt=N(Et),Ot=e=>{var t=tt();L(),u(e,t)},kt=e=>{u(e,c(`Upgrade to Latest`))};r(Dt,e=>{t.upgradeLoading?e(Ot):e(kt,-1)}),b(Et),b(Tt),L(2),b(wt);var At=_(wt,4),jt=e=>{var o=lt(),s=N(o),l=N(s),f=e=>{u(e,nt())},p=e=>{var r=it();B(r,21,()=>t.uiVersions,e=>e.version,(e,t)=>{var r=rt(),o=N(r,!0);b(r);var s={};m(e=>{n(o,e),s!==(s=a(t).version)&&(r.value=(r.__value=a(t).version)??``)},[()=>i(a(t))]),u(e,r)}),b(r);var o;T(r),m(()=>{r.disabled=t.uiDownloadLoading,o!==(o=t.selectedUiTag)&&(r.value=(r.__value=t.selectedUiTag)??``,w(r,t.selectedUiTag))}),d(`change`,r,e=>t.onSelectedUiTagChange(e.currentTarget.value)),u(e,r)},h=e=>{var n=at();R(n),m(()=>{M(n,t.selectedUiTag),n.disabled=t.uiDownloadLoading}),d(`input`,n,e=>t.onSelectedUiTagChange(e.currentTarget.value)),u(e,n)};r(l,e=>{t.uiVersionsLoading?e(f):t.uiVersions.length>0?e(p,1):e(h,-1)});var g=_(l,2),v=N(g),y=e=>{var t=ot();L(),u(e,t)},x=e=>{u(e,c(`Download`))};r(v,e=>{t.uiDownloadLoading?e(y):e(x,-1)}),b(g),b(s);var S=_(s,2),C=e=>{var n=st(),r=_(N(n));b(n),d(`click`,r,function(...e){t.onRestartApp?.apply(this,e)}),u(e,n)},E=e=>{u(e,ct())};r(S,e=>{t.uiDownloadReady?e(C):e(E,-1)}),b(o),m(e=>g.disabled=e,[()=>!t.selectedUiTag.trim()||t.uiDownloadLoading]),d(`click`,g,()=>{t.selectedUiTag.trim()&&t.onDownloadUiVersion(t.selectedUiTag.trim())}),u(e,o)};r(At,e=>{t.inElectron&&e(jt)}),b(Ae),b(ke),b(A),m(e=>{z(y,1,`health-summary health-summary--${a(g).status??``}`,`svelte-1ob1zsm`),n(C,a(g).message),H.disabled=t.healthLoading,q.disabled=t.anyDangerousLoading||!t.tokenStored,n(mt,t.currentImageTag||`—`),bt.disabled=e,Et.disabled=t.anyDangerousLoading||!t.tokenStored},[()=>!t.selectedImageTag.trim()||t.tagChangeLoading||t.anyDangerousLoading]),d(`click`,H,function(...e){t.onCheckHealth?.apply(this,e)}),d(`click`,q,function(...e){t.onApplyChanges?.apply(this,e)}),d(`click`,bt,()=>{t.selectedImageTag.trim()&&t.onSetImageTag(t.selectedImageTag.trim())}),d(`click`,Et,function(...e){t.onUpgradeStack?.apply(this,e)}),u(e,v),F()}l([`click`,`change`,`input`]);var ft=e(`<span class="spinner"></span>`),pt=e(`<div class="loading-state"><span class="spinner"></span> <span>Loading addons...</span></div>`),mt=e(`<div class="error-state svelte-faz2je"><span> </span> <button class="btn btn-secondary btn-sm">Retry</button></div>`),ht=e(`<div class="empty-state"><svg aria-hidden="true" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2L2 7l10 5 10-5-10-5z"></path><path d="M2 17l10 5 10-5"></path><path d="M2 12l10 5 10-5"></path></svg> <p>No addons found in registry/addons/.</p></div>`),gt=e(`<span class="spinner"></span>`),_t=e(`<div class="creds-loading svelte-faz2je"><span class="spinner"></span> Loading credentials...</div>`),vt=e(`<p class="creds-empty svelte-faz2je">This addon has no configurable env vars (compose overlay only).</p>`),yt=e(`<span class="creds-tag svelte-faz2je">sensitive</span>`),bt=e(`<span class="creds-tag creds-tag--set svelte-faz2je">set</span>`),xt=e(`<p class="creds-desc svelte-faz2je"> </p>`),St=e(`<div class="creds-row svelte-faz2je"><label class="creds-label svelte-faz2je"><code class="svelte-faz2je"> </code> <!> <!></label> <!> <input class="form-input svelte-faz2je" autocomplete="off"/></div>`),Ct=e(`<span class="spinner"></span>`),wt=e(`<p class="creds-hint svelte-faz2je">Values are written to <code>knowledge/env/stack.env</code> and read by the addon container on next recreate.</p> <!> <div class="creds-actions svelte-faz2je"><button class="btn btn-primary btn-sm"><!> Save</button></div>`,1),Tt=e(`<div class="addon-creds svelte-faz2je"><!></div>`),Et=e(`<div class="addon-row svelte-faz2je"><span class="addon-col addon-col--name addon-name svelte-faz2je"> </span> <span class="addon-col addon-col--status svelte-faz2je"><span> </span></span> <span class="addon-col addon-col--actions svelte-faz2je"><button class="btn btn-sm btn-ghost"> </button> <button><!></button></span></div> <!>`,1),Dt=e(`<div class="addon-table svelte-faz2je"><div class="addon-table-header svelte-faz2je"><span class="addon-col addon-col--name svelte-faz2je">Addon</span> <span class="addon-col addon-col--status svelte-faz2je">Status</span> <span class="addon-col addon-col--actions svelte-faz2je"></span></div> <!></div>`),Ot=e(`<div class="panel" role="tabpanel"><div class="panel-header"><div><h2>Addons</h2> <p class="panel-subtitle">Optional features you can enable or disable. Credentials are written to the stack config and applied when the addon container restarts.</p></div> <button class="btn btn-secondary btn-sm"><!> Refresh</button></div> <div class="panel-body panel-body--flush"><!></div></div>`);function kt(e,t){E(t,!0);let i=f(g([])),s=f(!1),l=f(``),p=f(null),h=f(null),y=g({}),S=g({}),C=f(null),w=f(null);async function T(){v(s,!0),v(l,``);try{v(i,await we(),!0)}catch(e){let n=e instanceof Error?e.message:String(e);if(n.includes(`401`)||n.includes(`403`)){t.onAuthError();return}v(l,n,!0)}finally{v(s,!1)}}async function D(e,n){v(p,e,!0);try{await fe(e,n),await T()}catch(e){let n=e instanceof Error?e.message:String(e);if(n.includes(`401`)||n.includes(`403`)){t.onAuthError();return}v(l,n,!0)}finally{v(p,null)}}async function O(e){if(a(h)===e){v(h,null);return}if(v(h,e,!0),!y[e]){v(C,e,!0);try{let t=await W(e);y[e]=t;let n={};for(let e of t)n[e.key]=e.sensitive?``:e.value;S[e]=n}catch(e){let n=e instanceof Error?e.message:String(e);if(n.includes(`401`)||n.includes(`403`)){t.onAuthError();return}X.push(`error`,`Could not load credentials: ${n}`)}finally{v(C,null)}}}async function A(e){v(w,e,!0);try{let t=y[e]??[],n=new Set(t.filter(e=>e.sensitive).map(e=>e.key)),r={},i=S[e]??{};for(let[e,t]of Object.entries(i))n.has(e)&&t===``||(r[e]=t);if(Object.keys(r).length===0){X.push(`error`,`Nothing to save.`);return}let{updated:a}=await le(e,r);X.push(`success`,`Saved ${a.length} field(s). Recreate the addon container to apply.`);let o=await W(e);y[e]=o;let s={...i};for(let e of o)e.sensitive&&(s[e.key]=``);S[e]=s}catch(e){let n=e instanceof Error?e.message:String(e);if(n.includes(`401`)||n.includes(`403`)){t.onAuthError();return}X.push(`error`,`Save failed: ${n}`)}finally{v(w,null)}}P(()=>{T()});var j=Ot(),M=N(j),I=_(N(M),2),V=N(I),H=e=>{u(e,ft())};r(V,e=>{a(s)&&e(H)}),L(),b(I),b(M);var U=_(M,2),G=N(U),K=e=>{u(e,pt())},q=e=>{var t=mt(),r=N(t),i=N(r,!0);b(r);var o=_(r,2);b(t),m(()=>n(i,a(l))),d(`click`,o,()=>T()),u(e,t)},J=e=>{u(e,ht())},ee=e=>{var t=Dt();B(_(N(t),2),17,()=>a(i),e=>e.name,(e,t)=>{var i=Et(),s=o(i),l=N(s),f=N(l,!0);b(l);var g=_(l,2),v=N(g);let T;var E=N(v,!0);b(v),b(g);var j=_(g,2),M=N(j),P=N(M,!0);b(M);var F=_(M,2);let I;var V=N(F),H=e=>{u(e,gt())},U=e=>{var r=c();m(()=>n(r,a(t).enabled?`Disable`:`Enable`)),u(e,r)};r(V,e=>{a(p)===a(t).name?e(H):e(U,-1)}),b(F),b(j),b(s);var W=_(s,2),G=e=>{var i=Tt(),s=N(i),c=e=>{u(e,_t())},l=e=>{u(e,vt())},f=e=>{var i=wt(),s=_(o(i),2);B(s,17,()=>y[a(t).name]??[],e=>e.key,(e,i)=>{var o=St(),s=N(o),c=N(s),l=N(c,!0);b(c);var d=_(c,2),f=e=>{u(e,yt())};r(d,e=>{a(i).sensitive&&e(f)});var p=_(d,2),h=e=>{u(e,bt())};r(p,e=>{a(i).sensitive&&a(i).set&&e(h)}),b(s);var g=_(s,2),v=e=>{var t=xt(),r=N(t,!0);b(t),m(()=>n(r,a(i).description)),u(e,t)};r(g,e=>{a(i).description&&e(v)});var y=_(g,2);R(y),b(o),m(()=>{x(s,`for`,`cred-${a(t).name??``}-${a(i).key??``}`),n(l,a(i).key),x(y,`id`,`cred-${a(t).name??``}-${a(i).key??``}`),x(y,`type`,a(i).sensitive?`password`:`text`),x(y,`placeholder`,a(i).sensitive&&a(i).set?`••••••• (leave empty to keep current)`:a(i).default)}),k(y,()=>S[a(t).name][a(i).key],e=>S[a(t).name][a(i).key]=e),u(e,o)});var c=_(s,2),l=N(c),f=N(l),p=e=>{u(e,Ct())};r(f,e=>{a(w)===a(t).name&&e(p)}),L(),b(l),b(c),m(()=>l.disabled=a(w)===a(t).name),d(`click`,l,()=>void A(a(t).name)),u(e,i)};r(s,e=>{a(C)===a(t).name?e(c):(y[a(t).name]?.length??0)===0?e(l,1):e(f,-1)}),b(i),u(e,i)};r(W,e=>{a(h)===a(t).name&&e(G)}),m(()=>{n(f,a(t).name),T=z(v,1,`badge`,null,T,{"badge-enabled":a(t).enabled,"badge-disabled":!a(t).enabled}),n(E,a(t).enabled?`enabled`:`disabled`),M.disabled=!a(t).available,x(M,`aria-expanded`,a(h)===a(t).name),n(P,a(h)===a(t).name?`Hide`:`Credentials`),I=z(F,1,`btn btn-sm`,null,I,{"btn-danger":a(t).enabled,"btn-outline":!a(t).enabled}),F.disabled=a(p)===a(t).name||!a(t).available}),d(`click`,M,()=>void O(a(t).name)),d(`click`,F,()=>D(a(t).name,!a(t).enabled)),u(e,i)}),b(t),u(e,t)};r(G,e=>{a(s)&&a(i).length===0?e(K):a(l)?e(q,1):a(i).length===0?e(J,2):e(ee,-1)}),b(U),b(j),m(()=>I.disabled=a(s)),d(`click`,I,()=>T()),u(e,j),F()}l([`click`]);var At=e(`<span class="last-updated svelte-ocbovv"> </span>`),jt=e(`<span class="spinner"></span>`),Mt=e(`<span class="spinner"></span>`),Nt=e(`<span class="ct-not-created svelte-ocbovv">--</span>`),Pt=e(`<span class="tag-badge svelte-ocbovv"> </span>`),Ft=e(`<span class="ct-not-created svelte-ocbovv">--</span>`),It=e(`<span class="detail-mono detail-digest svelte-ocbovv"> </span>`),Lt=e(`<div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">Image Name</span> <span class="detail-value detail-mono svelte-ocbovv"> </span></div> <div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">Tag / Digest</span> <span class="detail-value svelte-ocbovv"><span class="tag-badge tag-badge--lg svelte-ocbovv"> </span> <!></span></div>`,1),Rt=e(`<div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">Health</span> <span class="detail-value svelte-ocbovv"><span> </span></span></div>`),zt=e(`<div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">Ports</span> <span class="detail-value detail-mono svelte-ocbovv"> </span></div>`),Bt=e(`<div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">Uptime</span> <span class="detail-value svelte-ocbovv"> </span></div>`),Vt=e(`<div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">Created</span> <span class="detail-value svelte-ocbovv"> </span></div>`),Ht=e(`<div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">Project</span> <span class="detail-value detail-mono svelte-ocbovv"> </span></div>`),Ut=e(`<div class="detail-grid svelte-ocbovv"><div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">Container ID</span> <span class="detail-value detail-mono svelte-ocbovv"> </span></div> <div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">Name</span> <span class="detail-value detail-mono svelte-ocbovv"> </span></div> <div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">Image</span> <span class="detail-value detail-mono svelte-ocbovv"> </span></div> <!> <div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">State</span> <span class="detail-value svelte-ocbovv"><span> </span></span></div> <div class="detail-item svelte-ocbovv"><span class="detail-label svelte-ocbovv">Status</span> <span class="detail-value svelte-ocbovv"> </span></div> <!> <!> <!> <!> <!></div>`),Wt=e(`<div class="detail-not-created svelte-ocbovv"><p class="svelte-ocbovv">Container has not been created yet. Use <strong>Start</strong> to create and start it.</p></div>`),Gt=e(`<div role="status"> </div>`),Kt=e(`<div class="confirm-bar svelte-ocbovv" role="alert"><span class="confirm-text svelte-ocbovv"> <strong> </strong>?</span> <div class="confirm-actions svelte-ocbovv"><button class="btn btn-danger btn-sm">Confirm</button> <button class="btn btn-secondary btn-sm">Cancel</button></div></div>`),qt=e(`<span class="spinner-inline svelte-ocbovv"></span>`),Jt=e(`<button class="btn btn-primary btn-sm"><!> Start</button>`),Yt=e(`<span class="spinner-inline svelte-ocbovv"></span>`),Xt=e(`<span class="spinner-inline svelte-ocbovv"></span>`),Zt=e(`<span class="spinner-inline svelte-ocbovv"></span>`),Qt=e(`<button class="btn btn-secondary btn-sm"><!> Start</button> <button class="btn btn-danger btn-sm"><!> Stop</button> <button class="btn btn-secondary btn-sm"><!> Restart</button>`,1),$t=e(`<div class="detail-actions svelte-ocbovv"><!></div>`),en=e(`<div class="container-detail svelte-ocbovv"><!> <!> <!></div>`),tn=e(`<button class="container-table-row container-table-row--clickable svelte-ocbovv"><span class="ct-col ct-col--name svelte-ocbovv"><span></span> <span class="ct-service-name svelte-ocbovv"> </span></span> <span class="ct-col ct-col--image ct-mono svelte-ocbovv"><!></span> <span class="ct-col ct-col--tag svelte-ocbovv"><!></span> <span class="ct-col ct-col--status svelte-ocbovv"><span> </span></span> <span class="ct-col ct-col--actions svelte-ocbovv"><svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span></button> <!>`,1),nn=e(`<div class="container-table svelte-ocbovv"><div class="container-table-header svelte-ocbovv"><span class="ct-col ct-col--name svelte-ocbovv">Container</span> <span class="ct-col ct-col--image svelte-ocbovv">Image</span> <span class="ct-col ct-col--tag svelte-ocbovv">Tag</span> <span class="ct-col ct-col--status svelte-ocbovv">Status</span> <span class="ct-col ct-col--actions svelte-ocbovv"></span></div> <!></div>`),rn=e(`<p>Loading container status...</p>`),an=e(`<p class="text-danger svelte-ocbovv"> </p> <button class="btn btn-secondary btn-sm svelte-ocbovv">Try Again</button>`,1),on=e(`<p>Docker is not available on this host.</p> <p class="hint svelte-ocbovv">Ensure Docker is running and the admin service has access to the Docker socket.</p>`,1),sn=e(`<p>No containers found. Services may not be installed yet.</p>`),cn=e(`<div class="empty-state svelte-ocbovv"><svg aria-hidden="true" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect><rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect><line x1="6" y1="6" x2="6.01" y2="6"></line><line x1="6" y1="18" x2="6.01" y2="18"></line></svg> <!></div>`),ln=e(`<div class="panel" role="tabpanel"><div class="panel-header"><h2>Container Status</h2> <div class="panel-header-actions"><!> <button class="btn btn-secondary btn-sm"><!> Pull Images</button> <button class="btn btn-secondary btn-sm"><!> Refresh</button></div></div> <div class="panel-body panel-body--flush"><!></div></div>`);function un(e,t){E(t,!0);let i=S(()=>t.serviceEntries.length>0),s=g({});function l(e){let t=e.indexOf(`@`),n=t>-1?e.slice(0,t):e,r=n.lastIndexOf(`:`);return r>-1?{name:n.slice(0,r),tag:n.slice(r+1)}:{name:n,tag:`latest`}}function f(e){return e===`running`?`success`:e===`exited`||e===`dead`||e===`stopped`?`danger`:e===`restarting`||e===`paused`?`warning`:`idle`}function p(e){return s[e]||(s[e]={inFlight:null,confirm:null,feedback:null}),s[e]}function h(e,t,n){n.stopPropagation(),p(e).confirm=t}function v(e,t){t.stopPropagation(),p(e).confirm=null}async function y(e,n,r,i){i.stopPropagation();let a=p(e);a.confirm=null,a.inFlight=r,a.feedback=null;try{r===`start`?t.onStart(n):r===`stop`?t.onStop(n):t.onRestart(n),a.feedback={type:`success`,message:`${r.charAt(0).toUpperCase()+r.slice(1)} initiated`}}catch(e){a.feedback={type:`error`,message:`${r} failed: ${e instanceof Error?e.message:e}`}}a.inFlight=null,setTimeout(()=>{a.feedback=null},3e3)}var C=ln(),w=N(C),T=_(N(w),2),D=N(T),O=e=>{var r=At(),i=N(r);b(r),m(()=>n(i,`Updated ${t.lastUpdated??``}`)),u(e,r)};r(D,e=>{t.lastUpdated&&e(O)});var k=_(D,2),A=N(k),j=e=>{u(e,jt())};r(A,e=>{t.pullLoading&&e(j)}),L(),b(k);var M=_(k,2),P=N(M),I=e=>{u(e,Mt())};r(P,e=>{t.loading&&e(I)}),L(),b(M),b(T),b(w);var R=_(w,2),V=N(R),H=e=>{var i=nn();B(_(N(i),2),17,()=>t.serviceEntries,e=>e.id,(e,i)=>{let p=S(()=>t.selectedContainerId===a(i).id),g=S(()=>s[a(i).id]?.inFlight??null),C=S(()=>s[a(i).id]?.confirm??null),w=S(()=>s[a(i).id]?.feedback??null),T=S(()=>a(i).docker?l(a(i).docker.Image):null),E=S(()=>a(g)!==null),D=S(()=>!a(i).docker);var O=tn(),k=o(O),A=N(k),j=N(A),M=_(j,2),P=N(M,!0);b(M),b(A);var F=_(A,2),I=N(F),R=e=>{var t=c();m(()=>n(t,a(T).name)),u(e,t)},B=e=>{u(e,Nt())};r(I,e=>{a(T)?e(R):e(B,-1)}),b(F);var V=_(F,2),H=N(V),U=e=>{var t=Pt(),r=N(t,!0);b(t),m(()=>n(r,a(T).tag)),u(e,t)},W=e=>{u(e,Ft())};r(H,e=>{a(T)?e(U):e(W,-1)}),b(V);var G=_(V,2),K=N(G),q=N(K,!0);b(K),b(G);var J=_(G,2),ee=N(J);let te;b(J),b(k);var ne=_(k,2),re=e=>{var t=en(),s=N(t),c=e=>{let t=S(()=>a(i).docker);var s=Ut(),c=N(s),l=_(N(c),2),d=N(l,!0);b(l),b(c);var p=_(c,2),h=_(N(p),2),g=N(h,!0);b(h),b(p);var v=_(p,2),y=_(N(v),2),x=N(y,!0);b(y),b(v);var C=_(v,2),w=e=>{var i=Lt(),s=o(i),c=_(N(s),2),l=N(c,!0);b(c),b(s);var d=_(s,2),f=_(N(d),2),p=N(f),h=N(p,!0);b(p);var g=_(p,2),v=e=>{var r=It(),i=N(r);b(r),m(e=>n(i,`${e??``}...`),[()=>a(t).Image.split(`@`)[1]?.slice(0,19)]),u(e,r)},y=S(()=>a(t).Image.includes(`@`));r(g,e=>{a(y)&&e(v)}),b(f),b(d),m(()=>{n(l,a(T).name),n(h,a(T).tag)}),u(e,i)};r(C,e=>{a(T)&&e(w)});var E=_(C,2),D=_(N(E),2),O=N(D),k=N(O,!0);b(O),b(D),b(E);var A=_(E,2),j=_(N(A),2),M=N(j,!0);b(j),b(A);var P=_(A,2),F=e=>{var r=Rt(),i=_(N(r),2),o=N(i);let s;var c=N(o,!0);b(o),b(i),b(r),m(e=>{s=z(o,1,`badge`,null,s,e),n(c,a(t).Health)},[()=>({"badge-success":a(t).Health===`healthy`,"badge-warning":a(t).Health===`starting`,"badge-danger":a(t).Health===`unhealthy`,"badge-idle":![`healthy`,`starting`,`unhealthy`].includes(a(t).Health)})]),u(e,r)};r(P,e=>{a(t).Health&&e(F)});var I=_(P,2),L=e=>{var r=zt(),i=_(N(r),2),o=N(i,!0);b(i),b(r),m(()=>n(o,a(t).Ports)),u(e,r)};r(I,e=>{a(t).Ports&&e(L)});var R=_(I,2),B=e=>{var r=Bt(),i=_(N(r),2),o=N(i,!0);b(i),b(r),m(()=>n(o,a(t).RunningFor)),u(e,r)};r(R,e=>{a(t).RunningFor&&e(B)});var V=_(R,2),H=e=>{var r=Vt(),i=_(N(r),2),o=N(i,!0);b(i),b(r),m(()=>n(o,a(t).CreatedAt)),u(e,r)};r(V,e=>{a(t).CreatedAt&&e(H)});var U=_(V,2),W=e=>{var r=Ht(),i=_(N(r),2),o=N(i,!0);b(i),b(r),m(()=>n(o,a(t).Project)),u(e,r)};r(U,e=>{a(t).Project&&e(W)}),b(s),m(e=>{n(d,a(t).ID),n(g,a(t).Name||a(t).Names),n(x,a(t).Image),z(O,1,`badge badge-${e??``}`,`svelte-ocbovv`),n(k,a(t).State),n(M,a(t).Status)},[()=>f(a(t).State)]),u(e,s)},l=e=>{u(e,Wt())};r(s,e=>{a(i).docker?e(c):e(l,-1)});var p=_(s,2),x=e=>{var t=Gt(),r=N(t,!0);b(t),m(()=>{z(t,1,`action-feedback action-feedback--${a(w).type??``}`,`svelte-ocbovv`),n(r,a(w).message)}),u(e,t)};r(p,e=>{a(w)&&e(x)});var O=_(p,2),k=e=>{var t=Kt(),r=N(t),o=N(r),s=_(o),c=N(s,!0);b(s),L(),b(r);var l=_(r,2),f=N(l),p=_(f,2);b(l),b(t),m(e=>{n(o,`${e??``} `),n(c,a(i).service)},[()=>a(C).charAt(0).toUpperCase()+a(C).slice(1)]),d(`click`,f,e=>y(a(i).id,a(i).service,a(C),e)),d(`click`,p,e=>v(a(i).id,e)),u(e,t)},A=e=>{var t=$t(),n=N(t),s=e=>{var t=Jt(),n=N(t),o=e=>{u(e,qt())};r(n,e=>{a(g)===`start`&&e(o)}),L(),b(t),m(()=>t.disabled=a(E)),d(`click`,t,e=>h(a(i).id,`start`,e)),u(e,t)},c=e=>{var t=Qt(),n=o(t),s=N(n),c=e=>{u(e,Yt())};r(s,e=>{a(g)===`start`&&e(c)}),L(),b(n);var l=_(n,2),f=N(l),p=e=>{u(e,Xt())};r(f,e=>{a(g)===`stop`&&e(p)}),L(),b(l);var v=_(l,2),y=N(v),x=e=>{u(e,Zt())};r(y,e=>{a(g)===`restart`&&e(x)}),L(),b(v),m(()=>{n.disabled=a(E),l.disabled=a(E),v.disabled=a(E)}),d(`click`,n,e=>h(a(i).id,`start`,e)),d(`click`,l,e=>h(a(i).id,`stop`,e)),d(`click`,v,e=>h(a(i).id,`restart`,e)),u(e,t)};r(n,e=>{a(D)?e(s):e(c,-1)}),b(t),u(e,t)};r(O,e=>{a(C)?e(k):e(A,-1)}),b(t),u(e,t)};r(ne,e=>{a(p)&&e(re)}),m((e,t)=>{x(k,`aria-expanded`,a(p)),z(j,1,`ct-indicator ct-indicator--${e??``}`,`svelte-ocbovv`),n(P,a(i).service),z(K,1,`badge badge-${t??``}`,`svelte-ocbovv`),n(q,a(i).state),te=z(ee,0,`svelte-ocbovv`,null,te,{"ct-chevron-open":a(p)})},[()=>f(a(i).state),()=>f(a(i).state)]),d(`click`,k,()=>t.onToggleContainer(a(i).id)),u(e,O)}),b(i),u(e,i)},U=e=>{var i=cn(),a=_(N(i),2),s=e=>{u(e,rn())},c=e=>{var r=an(),i=o(r),a=N(i,!0);b(i);var s=_(i,2);m(()=>{n(a,t.error),s.disabled=!t.tokenStored}),d(`click`,s,function(...e){t.onRefresh?.apply(this,e)}),u(e,r)},l=e=>{var t=on();L(2),u(e,t)},f=e=>{u(e,sn())};r(a,e=>{t.loading?e(s):t.error?e(c,1):t.containerData&&!t.containerData.dockerAvailable?e(l,2):e(f,-1)}),b(i),u(e,i)};r(V,e=>{a(i)?e(H):e(U,-1)}),b(R),b(C),m(()=>{k.disabled=t.pullLoading||!t.tokenStored,M.disabled=t.loading||!t.tokenStored}),d(`click`,k,function(...e){t.onPullImages?.apply(this,e)}),d(`click`,M,function(...e){t.onRefresh?.apply(this,e)}),u(e,C),F()}l([`click`]);var dn=e(`<span class="spinner"></span>`),fn=e(`<span class="spinner"></span>`),pn=e(`<div class="task-editor svelte-1uqcxu1"><div class="task-editor-head svelte-1uqcxu1"><span class="task-editor-name svelte-1uqcxu1"> </span> <span class="task-editor-hint svelte-1uqcxu1">Raw akm task file (YAML) — set <code>enabled</code>, <code>schedule</code>, <code>command</code>, etc.</span></div> <textarea class="task-editor-area svelte-1uqcxu1" spellcheck="false" rows="14"></textarea> <div class="task-editor-actions svelte-1uqcxu1"><button class="btn btn-secondary btn-sm">Cancel</button> <button class="btn btn-primary btn-sm"><!> Save</button></div></div>`),mn=e(`<div class="automation-desc svelte-1uqcxu1"> </div>`),hn=e(`<span class="meta-item schedule-friendly svelte-1uqcxu1"> </span>`),gn=e(`<span class="meta-item svelte-1uqcxu1"><code class="svelte-1uqcxu1"> </code></span> <span class="meta-item meta-tz svelte-1uqcxu1"> </span>`,1),_n=e(`<div class="automation-card svelte-1uqcxu1"><div class="automation-row svelte-1uqcxu1"><div class="automation-main svelte-1uqcxu1"><div class="automation-name svelte-1uqcxu1"> <span> </span> <span class="badge badge-type svelte-1uqcxu1"> </span></div> <!></div> <div class="automation-meta svelte-1uqcxu1"><!></div></div> <div class="automation-footer svelte-1uqcxu1"><span class="automation-file svelte-1uqcxu1"> </span> <div class="automation-actions svelte-1uqcxu1"><button class="btn btn-ghost btn-sm">Edit</button> <button class="btn btn-ghost btn-sm">Delete</button></div></div></div>`),vn=e(`<div class="automation-list svelte-1uqcxu1"></div>`),yn=e(`<p>Loading automations...</p>`),bn=e(`<p class="text-danger svelte-1uqcxu1"> </p> <button class="btn btn-secondary btn-sm svelte-1uqcxu1">Try Again</button>`,1),xn=e(`<p>No automations configured.</p> <p class="empty-state-hint svelte-1uqcxu1">Drop <code class="svelte-1uqcxu1">.md</code> task files into <code class="svelte-1uqcxu1">~/.openpalm/knowledge/tasks/</code>, or install via <code class="svelte-1uqcxu1">akm</code>.</p>`,1),Sn=e(`<div class="empty-state svelte-1uqcxu1"><svg aria-hidden="true" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg> <!></div>`),Cn=e(`<div class="panel" role="tabpanel"><div class="panel-header"><div><h2>Automations</h2> <p class="panel-subtitle">Scheduled tasks read from <code>~/.openpalm/knowledge/tasks/</code>. Add or edit task files there to manage automations — changes take effect on refresh.</p></div> <div class="panel-header-actions"><button class="btn btn-secondary btn-sm">New task</button> <button class="btn btn-secondary btn-sm"><!> Refresh</button></div></div> <!> <div class="panel-body"><!></div></div>`);function wn(e,t){E(t,!0);let s=S(()=>t.data!==null&&Array.isArray(t.data.automations)&&t.data.automations.length>0),c=f(null),l=f(``),h=f(!1);async function g(e){if(!a(h)){v(h,!0);try{v(c,e,!0),v(l,(await q(e)).content,!0)}catch(e){X.push(`error`,e instanceof Error?e.message:`Failed to read task file.`),v(c,null)}finally{v(h,!1)}}}function y(){let e=(prompt(`New task file name (.yml):`,`my-task.yml`)??``).trim();e&&(v(c,e,!0),v(l,`schedule: '0 9 * * *'
2
2
  enabled: false
3
3
  description:
4
4
  command: