@devframes/plugin-inspect--assets 0.10.1 → 1.0.0

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.
@@ -1 +1 @@
1
- import{t as e}from"./index-DuIOtoQg.js";var t=Symbol.for(`devframe:browser-agent-registry`),{tools:n,listeners:r}=globalThis[t]??={tools:new Map,listeners:new Set};function i(){return[...n.values()]}function a(e){return r.add(e),()=>r.delete(e)}var o=`devframe:client-id`,s;function c(t=globalThis.window){try{let n=t?.sessionStorage;if(n){let t=n.getItem(o);return t||(t=e(),n.setItem(o,t)),t}}catch{}return s??=e(),s}function l(e){e.client.register({name:`devframe:agent:invoke-client-tool`,type:`action`,jsonSerializable:!0,handler:async(e,t)=>{let n=i().find(t=>t.id===e);if(!n)throw Error(`[devframe/agent] browser tool "${e}" not found`);return await n.invoke(t)}});let t=!1,n=!1,r=0,o=()=>{t||n||(t=!0,queueMicrotask(async()=>{if(t=!1,n)return;let a=i().map(({invoke:e,...t})=>t);(a.length!==0||r!==0)&&(r=a.length,await e.callOptional(`devframe:agent:sync-client-tools`,c(),a).catch(()=>{}))}))},s=a(o),l=e.events.on(`connection:status`,e=>{e===`connected`&&o()});return o(),()=>{n=!0,s(),l()}}export{l as setupBrowserAgentRpcBridge};
1
+ import{t as e}from"./index-CIMU5StC.js";var t=Symbol.for(`devframe:browser-agent-registry`),{tools:n,listeners:r}=globalThis[t]??={tools:new Map,listeners:new Set};function i(){return[...n.values()]}function a(e){return r.add(e),()=>r.delete(e)}var o=`devframe:client-id`,s;function c(t=globalThis.window){try{let n=t?.sessionStorage;if(n){let t=n.getItem(o);return t||(t=e(),n.setItem(o,t)),t}}catch{}return s??=e(),s}function l(e){e.client.register({name:`devframe:agent:invoke-client-tool`,type:`action`,jsonSerializable:!0,handler:async(e,t)=>{let n=i().find(t=>t.id===e);if(!n)throw Error(`[devframe/agent] browser tool "${e}" not found`);return await n.invoke(t)}});let t=!1,n=!1,r=0,o=()=>{t||n||(t=!0,queueMicrotask(async()=>{if(t=!1,n)return;let a=i().map(({invoke:e,...t})=>t);(a.length!==0||r!==0)&&(r=a.length,await e.callOptional(`devframe:agent:sync-client-tools`,c(),a).catch(()=>{}))}))},s=a(o),l=e.events.on(`connection:status`,e=>{e===`connected`&&o()});return o(),()=>{n=!0,s(),l()}}export{l as setupBrowserAgentRpcBridge};
@@ -1 +1 @@
1
- .flex-col[data-v-fa4416fc]{flex-direction:column;display:flex}@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--un-bg-opacity:100%;--un-border-opacity:100%;--un-ease:initial;--un-leading:initial;--un-ring-opacity:100%;--un-text-opacity:100%;--un-translate-x:initial;--un-translate-y:initial;--un-translate-z:initial}}@property --un-text-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-leading{syntax:"*";inherits:false}@property --un-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --un-border-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-bg-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-ring-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-inset-ring-color{syntax:"*";inherits:false}@property --un-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-inset-shadow-color{syntax:"*";inherits:false}@property --un-ring-color{syntax:"*";inherits:false}@property --un-ring-inset{syntax:"*";inherits:false}@property --un-ring-offset-color{syntax:"*";inherits:false}@property --un-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --un-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-shadow-color{syntax:"*";inherits:false}@property --un-translate-x{syntax:"*";inherits:false;initial-value:0}@property --un-translate-y{syntax:"*";inherits:false;initial-value:0}@property --un-translate-z{syntax:"*";inherits:false;initial-value:0}@property --un-ease{syntax:"*";inherits:false}@property --un-backdrop-blur{syntax:"*";inherits:false}@property --un-backdrop-brightness{syntax:"*";inherits:false}@property --un-backdrop-contrast{syntax:"*";inherits:false}@property --un-backdrop-grayscale{syntax:"*";inherits:false}@property --un-backdrop-hue-rotate{syntax:"*";inherits:false}@property --un-backdrop-invert{syntax:"*";inherits:false}@property --un-backdrop-opacity{syntax:"*";inherits:false}@property --un-backdrop-saturate{syntax:"*";inherits:false}@property --un-backdrop-sepia{syntax:"*";inherits:false}@property --un-blur{syntax:"*";inherits:false}@property --un-brightness{syntax:"*";inherits:false}@property --un-contrast{syntax:"*";inherits:false}@property --un-drop-shadow{syntax:"*";inherits:false}@property --un-grayscale{syntax:"*";inherits:false}@property --un-hue-rotate{syntax:"*";inherits:false}@property --un-invert{syntax:"*";inherits:false}@property --un-saturate{syntax:"*";inherits:false}@property --un-sepia{syntax:"*";inherits:false}@property --un-numeric-figure{syntax:"*";inherits:false}@property --un-numeric-fraction{syntax:"*";inherits:false}@property --un-numeric-spacing{syntax:"*";inherits:false}@property --un-ordinal{syntax:"*";inherits:false}@property --un-slashed-zero{syntax:"*";inherits:false}:root,:host{--radius-md:.375rem;--spacing:.25rem;--colors-white:#fff;--text-xs-fontSize:.75rem;--text-xs-lineHeight:1rem;--colors-neutral-200:oklch(92.2% 0 0);--colors-neutral-800:oklch(26.9% 0 0);--radius-DEFAULT:.25rem;--default-transition-timingFunction:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--radius-lg:.5rem;--fontWeight-semibold:600;--fontWeight-medium:500;--container-sm:24rem;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--radius-xl:.75rem;--colors-black:#000;--colors-error-DEFAULT:#f63d68;--colors-neutral-400:oklch(70.8% 0 0);--colors-warning-DEFAULT:#f79009;--colors-success-DEFAULT:#12b76a;--colors-primary-500:#578861;--text-sm-fontSize:.875rem;--text-sm-lineHeight:1.25rem;--text-base-fontSize:1rem;--text-base-lineHeight:1.5rem;--text-4xl-fontSize:2.25rem;--text-4xl-lineHeight:2.5rem;--text-lg-fontSize:1.125rem;--text-lg-lineHeight:1.75rem;--colors-primary-400:#75a67e;--leading-none:1;--colors-blue-400:oklch(70.7% .165 254.624);--colors-amber-400:oklch(82.8% .189 84.429);--colors-green-400:oklch(79.2% .209 151.711);--colors-red-400:oklch(70.4% .191 22.216);--colors-sky-400:oklch(74.6% .16 232.661);--colors-violet-400:oklch(70.2% .183 293.541);--colors-rose-400:oklch(71.2% .194 13.428);--colors-teal-400:oklch(77.7% .152 181.912);--colors-orange-400:oklch(75% .183 55.934);--colors-emerald-400:oklch(76.5% .177 163.223);--colors-blue-700:oklch(48.8% .243 264.376);--colors-blue-600:oklch(54.6% .245 262.881);--colors-amber-700:oklch(55.5% .163 48.998);--colors-amber-600:oklch(66.6% .179 58.318);--colors-green-700:oklch(52.7% .154 150.069);--colors-green-600:oklch(62.7% .194 149.214);--colors-red-700:oklch(50.5% .213 27.518);--colors-red-600:oklch(57.7% .245 27.325);--colors-sky-700:oklch(50% .134 242.749);--colors-sky-600:oklch(58.8% .158 241.966);--colors-violet-700:oklch(49.1% .27 292.581);--colors-violet-600:oklch(54.1% .281 293.009);--colors-rose-700:oklch(51.4% .222 16.935);--colors-rose-600:oklch(58.6% .253 17.585);--colors-teal-700:oklch(51.1% .096 186.391);--colors-teal-600:oklch(60% .118 184.704);--colors-orange-700:oklch(55.3% .195 38.402);--colors-orange-600:oklch(64.6% .222 41.116);--colors-emerald-700:oklch(50.8% .118 165.612);--colors-emerald-600:oklch(59.6% .145 163.225);--colors-primary-600:#40704b;--colors-neutral-600:oklch(43.9% 0 0);--colors-neutral-500:oklch(55.6% 0 0);--colors-blue-300:oklch(80.9% .105 251.813);--colors-amber-300:oklch(87.9% .169 91.605);--colors-green-300:oklch(87.1% .15 154.449);--colors-red-300:oklch(80.8% .114 19.571);--colors-sky-300:oklch(82.8% .111 230.318);--colors-violet-300:oklch(81.1% .111 293.571);--colors-rose-300:oklch(81% .117 11.638);--colors-teal-300:oklch(85.5% .138 181.071);--colors-orange-300:oklch(83.7% .128 66.29);--colors-emerald-300:oklch(84.5% .143 164.978);--colors-primary-300:#93c69d;--colors-blue-500:oklch(62.3% .214 259.815);--colors-green-500:oklch(72.3% .219 149.579);--colors-amber-500:oklch(76.9% .188 70.08);--colors-red-500:oklch(63.7% .237 25.331);--ease-DEFAULT:cubic-bezier(.4, 0, .2, 1);--font-sans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--default-font-family:var(--font-sans);--default-monoFont-family:var(--font-mono)}*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-featureSettings,normal);font-variation-settings:var(--default-font-variationSettings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-monoFont-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-monoFont-featureSettings,normal);font-variation-settings:var(--default-monoFont-variationSettings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden~=until-found])){display:none!important}*,:before,:after{border-color:#8882}.i-ph-arrow-clockwise{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M240 56v48a8 8 0 0 1-8 8h-48a8 8 0 0 1 0-16h27.4l-26.59-24.36l-.25-.24a80 80 0 1 0-1.67 114.78a8 8 0 0 1 11 11.63A95.44 95.44 0 0 1 128 224h-1.32a96 96 0 1 1 69.07-164L224 85.8V56a8 8 0 1 1 16 0'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-arrow-square-out-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M184 80v128a8 8 0 0 1-8 8H48a8 8 0 0 1-8-8V80a8 8 0 0 1 8-8h128a8 8 0 0 1 8 8' opacity='.2'/%3E%3Cpath d='M224 104a8 8 0 0 1-16 0V59.32l-66.33 66.34a8 8 0 0 1-11.32-11.32L196.68 48H152a8 8 0 0 1 0-16h64a8 8 0 0 1 8 8Zm-40 24a8 8 0 0 0-8 8v72H48V80h72a8 8 0 0 0 0-16H48a16 16 0 0 0-16 16v128a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-72a8 8 0 0 0-8-8'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-arrows-clockwise{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M224 48v48a8 8 0 0 1-8 8h-48a8 8 0 0 1 0-16h28.69l-14.63-14.63a79.56 79.56 0 0 0-56.13-23.43h-.45a79.52 79.52 0 0 0-55.89 22.77a8 8 0 0 1-11.18-11.44a96 96 0 0 1 135 .79L208 76.69V48a8 8 0 0 1 16 0m-37.59 135.29a80 80 0 0 1-112.47-.66L59.31 168H88a8 8 0 0 0 0-16H40a8 8 0 0 0-8 8v48a8 8 0 0 0 16 0v-28.69l14.63 14.63A95.43 95.43 0 0 0 130 222.06h.53a95.36 95.36 0 0 0 67.07-27.33a8 8 0 0 0-11.18-11.44Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-book-open-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M232 56v144h-72a32 32 0 0 0-32 32a32 32 0 0 0-32-32H24V56h72a32 32 0 0 1 32 32a32 32 0 0 1 32-32Z' opacity='.2'/%3E%3Cpath d='M232 48h-72a40 40 0 0 0-32 16a40 40 0 0 0-32-16H24a8 8 0 0 0-8 8v144a8 8 0 0 0 8 8h72a24 24 0 0 1 24 24a8 8 0 0 0 16 0a24 24 0 0 1 24-24h72a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8M96 192H32V64h64a24 24 0 0 1 24 24v112a39.8 39.8 0 0 0-24-8m128 0h-64a39.8 39.8 0 0 0-24 8V88a24 24 0 0 1 24-24h64Z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-broadcast-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M160 128a32 32 0 1 1-32-32a32 32 0 0 1 32 32' opacity='.2'/%3E%3Cpath d='M128 88a40 40 0 1 0 40 40a40 40 0 0 0-40-40m0 64a24 24 0 1 1 24-24a24 24 0 0 1-24 24m73.71 7.14a80 80 0 0 1-14.08 22.2a8 8 0 0 1-11.92-10.67a63.95 63.95 0 0 0 0-85.33a8 8 0 1 1 11.92-10.67a80.08 80.08 0 0 1 14.08 84.47M69 103.09a64 64 0 0 0 11.26 67.58a8 8 0 0 1-11.92 10.67a79.93 79.93 0 0 1 0-106.67a8 8 0 1 1 11.95 10.67A63.8 63.8 0 0 0 69 103.09M248 128a119.58 119.58 0 0 1-34.29 84a8 8 0 1 1-11.42-11.2a103.9 103.9 0 0 0 0-145.56A8 8 0 1 1 213.71 44A119.58 119.58 0 0 1 248 128M53.71 200.78A8 8 0 1 1 42.29 212a119.87 119.87 0 0 1 0-168a8 8 0 1 1 11.42 11.2a103.9 103.9 0 0 0 0 145.56Z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-browser-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M224 56v40H32V56a8 8 0 0 1 8-8h176a8 8 0 0 1 8 8' opacity='.2'/%3E%3Cpath d='M216 40H40a16 16 0 0 0-16 16v144a16 16 0 0 0 16 16h176a16 16 0 0 0 16-16V56a16 16 0 0 0-16-16m0 16v32H40V56Zm0 144H40v-96h176z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-caret-right{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m181.66 133.66l-80 80a8 8 0 0 1-11.32-11.32L164.69 128L90.34 53.66a8 8 0 0 1 11.32-11.32l80 80a8 8 0 0 1 0 11.32'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-clock-counter-clockwise-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M216 128a88 88 0 1 1-88-88a88 88 0 0 1 88 88' opacity='.2'/%3E%3Cpath d='M136 80v43.47l36.12 21.67a8 8 0 0 1-8.24 13.72l-40-24A8 8 0 0 1 120 128V80a8 8 0 0 1 16 0m-8-48a95.44 95.44 0 0 0-67.92 28.15C52.81 67.51 46.35 74.59 40 82V64a8 8 0 0 0-16 0v40a8 8 0 0 0 8 8h40a8 8 0 0 0 0-16H49c7.15-8.42 14.27-16.35 22.39-24.57a80 80 0 1 1 1.66 114.75a8 8 0 1 0-11 11.64A96 96 0 1 0 128 32'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-database-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M216 80c0 26.51-39.4 48-88 48s-88-21.49-88-48s39.4-48 88-48s88 21.49 88 48' opacity='.2'/%3E%3Cpath d='M128 24c-53.83 0-96 24.6-96 56v96c0 31.4 42.17 56 96 56s96-24.6 96-56V80c0-31.4-42.17-56-96-56m80 104c0 9.62-7.88 19.43-21.61 26.92C170.93 163.35 150.19 168 128 168s-42.93-4.65-58.39-13.08C55.88 147.43 48 137.62 48 128v-16.64c17.06 15 46.23 24.64 80 24.64s62.94-9.68 80-24.64ZM69.61 53.08C85.07 44.65 105.81 40 128 40s42.93 4.65 58.39 13.08C200.12 60.57 208 70.38 208 80s-7.88 19.43-21.61 26.92C170.93 115.35 150.19 120 128 120s-42.93-4.65-58.39-13.08C55.88 99.43 48 89.62 48 80s7.88-19.43 21.61-26.92m116.78 149.84C170.93 211.35 150.19 216 128 216s-42.93-4.65-58.39-13.08C55.88 195.43 48 185.62 48 176v-16.64c17.06 15 46.23 24.64 80 24.64s62.94-9.68 80-24.64V176c0 9.62-7.88 19.43-21.61 26.92'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-function-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M200 40v160a16 16 0 0 1-16 16H56V56a16 16 0 0 1 16-16Z' opacity='.2'/%3E%3Cpath d='M208 40a8 8 0 0 1-8 8h-29.29a24 24 0 0 0-23.62 19.71l-9.5 52.29H184a8 8 0 0 1 0 16h-49.32l-10 55.16A40 40 0 0 1 85.29 224H56a8 8 0 0 1 0-16h29.29a24 24 0 0 0 23.62-19.71l9.5-52.29H72a8 8 0 0 1 0-16h49.32l10-55.16A40 40 0 0 1 170.71 32H200a8 8 0 0 1 8 8'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-lock-key-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M208 88H48a8 8 0 0 0-8 8v112a8 8 0 0 0 8 8h160a8 8 0 0 0 8-8V96a8 8 0 0 0-8-8m-80 72a20 20 0 1 1 20-20a20 20 0 0 1-20 20' opacity='.2'/%3E%3Cpath d='M208 80h-32V56a48 48 0 0 0-96 0v24H48a16 16 0 0 0-16 16v112a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16V96a16 16 0 0 0-16-16M96 56a32 32 0 0 1 64 0v24H96Zm112 152H48V96h160zm-80-96a28 28 0 0 0-8 54.83V184a8 8 0 0 0 16 0v-17.17a28 28 0 0 0-8-54.83m0 40a12 12 0 1 1 12-12a12 12 0 0 1-12 12'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-magnifying-glass-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M192 112a80 80 0 1 1-80-80a80 80 0 0 1 80 80' opacity='.2'/%3E%3Cpath d='m229.66 218.34l-50.06-50.06a88.21 88.21 0 1 0-11.32 11.31l50.06 50.07a8 8 0 0 0 11.32-11.32M40 112a72 72 0 1 1 72 72a72.08 72.08 0 0 1-72-72'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-play-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M228.23 134.69L84.15 222.81A8 8 0 0 1 72 216.12V39.88a8 8 0 0 1 12.15-6.69l144.08 88.12a7.82 7.82 0 0 1 0 13.38' opacity='.2'/%3E%3Cpath d='M232.4 114.49L88.32 26.35a16 16 0 0 0-16.2-.3A15.86 15.86 0 0 0 64 39.87v176.26A15.94 15.94 0 0 0 80 232a16.07 16.07 0 0 0 8.36-2.35l144.04-88.14a15.81 15.81 0 0 0 0-27ZM80 215.94V40l143.83 88Z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-plugs-connected-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='m185 127l-58 58a24 24 0 0 1-33.94 0L71 162.91A24 24 0 0 1 71 129l58-58a24 24 0 0 1 33.94 0L185 93.09a24 24 0 0 1 0 33.91' opacity='.2'/%3E%3Cpath d='M237.66 18.34a8 8 0 0 0-11.32 0l-52.4 52.41l-5.37-5.38a32.05 32.05 0 0 0-45.26 0L100 88.69l-6.34-6.35a8 8 0 0 0-11.32 11.32l6.35 6.34l-23.32 23.31a32 32 0 0 0 0 45.26l5.38 5.37l-52.41 52.4a8 8 0 0 0 11.32 11.32l52.4-52.41l5.37 5.38a32.06 32.06 0 0 0 45.26 0L156 167.31l6.34 6.35a8 8 0 0 0 11.32-11.32l-6.35-6.34l23.32-23.31a32 32 0 0 0 0-45.26l-5.38-5.37l52.41-52.4a8 8 0 0 0 0-11.32m-116.29 161a16 16 0 0 1-22.62 0l-22.06-22.09a16 16 0 0 1 0-22.62L100 111.31L144.69 156Zm57.94-57.94L156 144.69L111.31 100l23.32-23.31a16 16 0 0 1 22.62 0l22.06 22a16 16 0 0 1 0 22.63ZM88.57 35a8 8 0 0 1 14.86-6l8 20a8 8 0 0 1-14.86 6Zm-64 58A8 8 0 0 1 35 88.57l20 8a8 8 0 0 1-6 14.86l-20-8A8 8 0 0 1 24.57 93m206.86 70a8 8 0 0 1-10.4 4.46l-20-8a8 8 0 1 1 5.97-14.89l20 8a8 8 0 0 1 4.43 10.43m-64 58.06a8 8 0 0 1-14.86 5.94l-8-20a8 8 0 0 1 14.86-6Z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-plugs-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='m76 124l56 56l-29 29a24 24 0 0 1-33.94 0L47 186.91A24 24 0 0 1 47 153Zm133-54.91L186.91 47A24 24 0 0 0 153 47l-29 29l56 56l29-29a24 24 0 0 0 0-33.91' opacity='.2'/%3E%3Cpath d='M149.66 138.34a8 8 0 0 0-11.32 0L120 156.69L99.31 136l18.35-18.34a8 8 0 0 0-11.32-11.32L88 124.69l-18.34-18.35a8 8 0 0 0-11.32 11.32l6.35 6.34l-23.32 23.31a32 32 0 0 0 0 45.26l5.38 5.37l-28.41 28.4a8 8 0 0 0 11.32 11.32l28.4-28.41l5.37 5.38a32 32 0 0 0 45.26 0L132 191.31l6.34 6.35a8 8 0 0 0 11.32-11.32L131.31 168l18.35-18.34a8 8 0 0 0 0-11.32m-52.29 65a16 16 0 0 1-22.62 0l-22.06-22.09a16 16 0 0 1 0-22.62L76 135.31L120.69 180Zm140.29-185a8 8 0 0 0-11.32 0l-28.4 28.41l-5.37-5.38a32.05 32.05 0 0 0-45.26 0L124 64.69l-6.34-6.35a8 8 0 0 0-11.32 11.32l80 80a8 8 0 0 0 11.32-11.32l-6.35-6.34l23.32-23.31a32 32 0 0 0 0-45.26l-5.38-5.37l28.41-28.4a8 8 0 0 0 0-11.32m-34.35 79L180 120.69L135.31 76l23.32-23.31a16 16 0 0 1 22.62 0l22.06 22a16 16 0 0 1 0 22.68Z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-record-fill{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24m0 192a88 88 0 1 1 88-88a88.1 88.1 0 0 1-88 88m72-88a72 72 0 1 1-72-72a72.08 72.08 0 0 1 72 72'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-robot-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M200 56H56a24 24 0 0 0-24 24v112a24 24 0 0 0 24 24h144a24 24 0 0 0 24-24V80a24 24 0 0 0-24-24m-36 128H92a20 20 0 0 1 0-40h72a20 20 0 0 1 0 40' opacity='.2'/%3E%3Cpath d='M200 48h-64V16a8 8 0 0 0-16 0v32H56a32 32 0 0 0-32 32v112a32 32 0 0 0 32 32h144a32 32 0 0 0 32-32V80a32 32 0 0 0-32-32m16 144a16 16 0 0 1-16 16H56a16 16 0 0 1-16-16V80a16 16 0 0 1 16-16h144a16 16 0 0 1 16 16ZM72 108a12 12 0 1 1 12 12a12 12 0 0 1-12-12m88 0a12 12 0 1 1 12 12a12 12 0 0 1-12-12m4 28H92a28 28 0 0 0 0 56h72a28 28 0 0 0 0-56m-24 16v24h-24v-24Zm-60 12a12 12 0 0 1 12-12h8v24h-8a12 12 0 0 1-12-12m84 12h-8v-24h8a12 12 0 0 1 0 24'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-terminal-window-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M224 56v144a8 8 0 0 1-8 8H40a8 8 0 0 1-8-8V56a8 8 0 0 1 8-8h176a8 8 0 0 1 8 8' opacity='.2'/%3E%3Cpath d='M128 128a8 8 0 0 1-3 6.25l-40 32a8 8 0 1 1-10-12.5L107.19 128L75 102.25a8 8 0 1 1 10-12.5l40 32a8 8 0 0 1 3 6.25m48 24h-40a8 8 0 0 0 0 16h40a8 8 0 0 0 0-16m56-96v144a16 16 0 0 1-16 16H40a16 16 0 0 1-16-16V56a16 16 0 0 1 16-16h176a16 16 0 0 1 16 16m-16 144V56H40v144z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-trash-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M200 56v152a8 8 0 0 1-8 8H64a8 8 0 0 1-8-8V56Z' opacity='.2'/%3E%3Cpath d='M216 48h-40v-8a24 24 0 0 0-24-24h-48a24 24 0 0 0-24 24v8H40a8 8 0 0 0 0 16h8v144a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16V64h8a8 8 0 0 0 0-16M96 40a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v8H96Zm96 168H64V64h128Zm-80-104v64a8 8 0 0 1-16 0v-64a8 8 0 0 1 16 0m48 0v64a8 8 0 0 1-16 0v-64a8 8 0 0 1 16 0'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-warning-circle-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M224 128a96 96 0 1 1-96-96a96 96 0 0 1 96 96' opacity='.2'/%3E%3Cpath d='M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24m0 192a88 88 0 1 1 88-88a88.1 88.1 0 0 1-88 88m-8-80V80a8 8 0 0 1 16 0v56a8 8 0 0 1-16 0m20 36a12 12 0 1 1-12-12a12 12 0 0 1 12 12'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-warning-octagon-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M224 91.55v72.9a8 8 0 0 1-2.34 5.66l-51.55 51.55a8 8 0 0 1-5.66 2.34h-72.9a8 8 0 0 1-5.66-2.34l-51.55-51.55a8 8 0 0 1-2.34-5.66v-72.9a8 8 0 0 1 2.34-5.66l51.55-51.55A8 8 0 0 1 91.55 32h72.9a8 8 0 0 1 5.66 2.34l51.55 51.55a8 8 0 0 1 2.34 5.66' opacity='.2'/%3E%3Cpath d='M120 136V80a8 8 0 0 1 16 0v56a8 8 0 0 1-16 0m112-44.45v72.9a15.86 15.86 0 0 1-4.69 11.31l-51.55 51.55a15.86 15.86 0 0 1-11.31 4.69h-72.9a15.86 15.86 0 0 1-11.31-4.69l-51.55-51.55A15.86 15.86 0 0 1 24 164.45v-72.9a15.86 15.86 0 0 1 4.69-11.31l51.55-51.55A15.86 15.86 0 0 1 91.55 24h72.9a15.86 15.86 0 0 1 11.31 4.69l51.55 51.55A15.86 15.86 0 0 1 232 91.55m-16 0L164.45 40h-72.9L40 91.55v72.9L91.55 216h72.9L216 164.45ZM128 160a12 12 0 1 0 12 12a12 12 0 0 0-12-12'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.badge{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight));--un-leading:var(--leading-none);line-height:var(--leading-none);--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium);padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5);border-radius:var(--radius-md);gap:calc(var(--spacing) * 1);align-items:center;display:inline-flex}.badge-active{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight));color:color-mix(in srgb, var(--colors-primary-600) var(--un-text-opacity), transparent);--un-leading:var(--leading-none);line-height:var(--leading-none);--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium);padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5);border-radius:var(--radius-md);background-color:color-mix(in oklab, #99999930 var(--un-bg-opacity), transparent);gap:calc(var(--spacing) * 1);align-items:center;display:inline-flex}.badge-muted{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight));color:color-mix(in srgb, var(--colors-neutral-600) var(--un-text-opacity), transparent);--un-leading:var(--leading-none);line-height:var(--leading-none);--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium);padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5);border-radius:var(--radius-md);background-color:color-mix(in oklab, #8881 var(--un-bg-opacity), transparent);gap:calc(var(--spacing) * 1);align-items:center;display:inline-flex}.btn-action-sm{font-size:var(--text-sm-fontSize);line-height:var(--un-leading,var(--text-sm-lineHeight));padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 1);--un-outline-style:none;border-width:1px;border-color:color-mix(in oklab, #9992 var(--un-border-opacity), transparent);border-radius:var(--radius-DEFAULT);opacity:.75;gap:calc(var(--spacing) * 2);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration));outline-style:none;align-items:center;display:flex}.badge-color-amber{color:color-mix(in srgb, var(--colors-amber-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-amber-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-amber-400) 10%, transparent)}.dark .badge-color-amber{color:color-mix(in srgb, var(--colors-amber-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-amber-300) 15%, transparent)}.badge-color-blue{color:color-mix(in srgb, var(--colors-blue-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-blue-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-blue-400) 10%, transparent)}.dark .badge-color-blue{color:color-mix(in srgb, var(--colors-blue-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-blue-300) 15%, transparent)}.badge-color-emerald{color:color-mix(in srgb, var(--colors-emerald-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-emerald-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-emerald-400) 10%, transparent)}.dark .badge-color-emerald{color:color-mix(in srgb, var(--colors-emerald-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-emerald-300) 15%, transparent)}.badge-color-green{color:color-mix(in srgb, var(--colors-green-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-green-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-green-400) 10%, transparent)}.dark .badge-color-green{color:color-mix(in srgb, var(--colors-green-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-green-300) 15%, transparent)}.badge-color-orange{color:color-mix(in srgb, var(--colors-orange-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-orange-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-orange-400) 10%, transparent)}.dark .badge-color-orange{color:color-mix(in srgb, var(--colors-orange-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-orange-300) 15%, transparent)}.badge-color-red{color:color-mix(in srgb, var(--colors-red-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-red-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-red-400) 10%, transparent)}.dark .badge-color-red{color:color-mix(in srgb, var(--colors-red-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-red-300) 15%, transparent)}.badge-color-rose{color:color-mix(in srgb, var(--colors-rose-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-rose-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-rose-400) 10%, transparent)}.dark .badge-color-rose{color:color-mix(in srgb, var(--colors-rose-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-rose-300) 15%, transparent)}.badge-color-sky{color:color-mix(in srgb, var(--colors-sky-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-sky-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-sky-400) 10%, transparent)}.dark .badge-color-sky{color:color-mix(in srgb, var(--colors-sky-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-sky-300) 15%, transparent)}.badge-color-teal{color:color-mix(in srgb, var(--colors-teal-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-teal-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-teal-400) 10%, transparent)}.dark .badge-color-teal{color:color-mix(in srgb, var(--colors-teal-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-teal-300) 15%, transparent)}.badge-color-violet{color:color-mix(in srgb, var(--colors-violet-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-violet-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-violet-400) 10%, transparent)}.dark .badge-color-violet{color:color-mix(in srgb, var(--colors-violet-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-violet-300) 15%, transparent)}.btn-primary{color:color-mix(in srgb, var(--colors-white) var(--un-text-opacity), transparent);padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 1);--un-outline-style:none;border-radius:var(--radius-DEFAULT);background-color:color-mix(in srgb, var(--colors-primary-500) var(--un-bg-opacity), transparent);gap:calc(var(--spacing) * 2);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration));border-width:1px;border-color:#0000;outline-style:none;align-items:center;display:flex}.text-micro{--un-leading:1.4;font-size:10px;line-height:1.4}.dark .badge-active,.dark .color-active,.dark .data-\[state\=active\]\:color-active[data-state=active]{color:color-mix(in srgb, var(--colors-primary-300) var(--un-text-opacity), transparent)}.dark .badge-muted,.dark .color-muted{color:color-mix(in srgb, var(--colors-neutral-400) var(--un-text-opacity), transparent)}.color-active,.data-\[state\=active\]\:color-active[data-state=active]{color:color-mix(in srgb, var(--colors-primary-600) var(--un-text-opacity), transparent)}.color-base,.data-\[state\=active\]\:color-base[data-state=active]{color:color-mix(in srgb, var(--colors-neutral-800) var(--un-text-opacity), transparent)}.dark .color-base,.dark .data-\[state\=active\]\:color-base[data-state=active]{color:color-mix(in srgb, var(--colors-neutral-200) var(--un-text-opacity), transparent)}.color-faint,.dark .color-faint{color:color-mix(in srgb, var(--colors-neutral-500) var(--un-text-opacity), transparent)}.color-muted{color:color-mix(in srgb, var(--colors-neutral-600) var(--un-text-opacity), transparent)}.dark .hover\:color-base:hover{color:color-mix(in srgb, var(--colors-neutral-200) var(--un-text-opacity), transparent)}.hover\:color-base:hover{color:color-mix(in srgb, var(--colors-neutral-800) var(--un-text-opacity), transparent)}.dark .placeholder\:color-faint::placeholder,.placeholder\:color-faint::placeholder{color:color-mix(in srgb, var(--colors-neutral-500) var(--un-text-opacity), transparent)}.btn-action{padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 1);--un-outline-style:none;border-width:1px;border-color:color-mix(in oklab, #9992 var(--un-border-opacity), transparent);border-radius:var(--radius-DEFAULT);opacity:.75;gap:calc(var(--spacing) * 2);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration));outline-style:none;align-items:center;display:flex}.btn-text{padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 1);--un-outline-style:none;border-radius:var(--radius-DEFAULT);opacity:.75;gap:calc(var(--spacing) * 2);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration));border-width:1px;border-color:#0000;outline-style:none;align-items:center;display:inline-flex}.btn-icon{--un-outline-style:none;opacity:.65;width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration));border-radius:3.40282e38px;outline-style:none;justify-content:center;align-items:center;display:flex}.btn-icon-compact{--un-outline-style:none;border-radius:var(--radius-DEFAULT);opacity:.65;width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration));outline-style:none;justify-content:center;align-items:center;display:flex}.btn-icon-square{--un-outline-style:none;border-width:1px;border-color:color-mix(in oklab, #9992 var(--un-border-opacity), transparent);border-radius:var(--radius-DEFAULT);opacity:.65;width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration));outline-style:none;justify-content:center;align-items:center;display:flex}.border-base{border-color:color-mix(in oklab, #9992 var(--un-border-opacity), transparent)}.border-base\!{border-color:color-mix(in oklab, #9992 var(--un-border-opacity), transparent)!important}.dark .focus-visible\:border-active:focus-visible{border-color:color-mix(in srgb, var(--colors-primary-400) 25%, transparent)}.focus-visible\:border-active:focus-visible{border-color:color-mix(in srgb, var(--colors-primary-600) 25%, transparent)}.bg-active{background-color:color-mix(in oklab, #99999930 var(--un-bg-opacity), transparent)}.bg-base,.data-\[state\=active\]\:bg-base[data-state=active]{background-color:color-mix(in srgb, var(--colors-white) var(--un-bg-opacity), transparent)}.dark .bg-base,.dark .data-\[state\=active\]\:bg-base[data-state=active]{background-color:color-mix(in oklab, #111 var(--un-bg-opacity), transparent)}.bg-glass{background-color:color-mix(in srgb, var(--colors-white) 65%, transparent);--un-backdrop-blur:blur(7px);-webkit-backdrop-filter:var(--un-backdrop-blur,) var(--un-backdrop-brightness,) var(--un-backdrop-contrast,) var(--un-backdrop-grayscale,) var(--un-backdrop-hue-rotate,) var(--un-backdrop-invert,) var(--un-backdrop-opacity,) var(--un-backdrop-saturate,) var(--un-backdrop-sepia,);backdrop-filter:var(--un-backdrop-blur,) var(--un-backdrop-brightness,) var(--un-backdrop-contrast,) var(--un-backdrop-grayscale,) var(--un-backdrop-hue-rotate,) var(--un-backdrop-invert,) var(--un-backdrop-opacity,) var(--un-backdrop-saturate,) var(--un-backdrop-sepia,)}.dark .bg-glass{background-color:oklab(17.7638% -2.23517e-8 0/.5)}.dark .data-\[state\=active\]\:bg-raised[data-state=active]{background-color:color-mix(in srgb, var(--colors-white) 6%, transparent)}.data-\[state\=active\]\:bg-raised[data-state=active]{background-color:color-mix(in srgb, var(--colors-white) 65%, transparent)}.bg-secondary{background-color:color-mix(in oklab, #f6f6f6 var(--un-bg-opacity), transparent)}.dark .bg-secondary{background-color:color-mix(in oklab, #101010 var(--un-bg-opacity), transparent)}.bg-sunken{background-color:color-mix(in srgb, var(--colors-black) 4%, transparent)}.dark .bg-sunken{background-color:color-mix(in srgb, var(--colors-black) 20%, transparent)}.hover\:bg-active:hover{background-color:color-mix(in oklab, #99999930 var(--un-bg-opacity), transparent)}.btn-action:hover,.btn-action-sm:hover,.btn-icon:hover,.btn-icon-compact:hover,.btn-icon-square:hover{background-color:color-mix(in oklab, #99999920 var(--un-bg-opacity), transparent);opacity:1}.btn-primary:hover{background-color:color-mix(in srgb, var(--colors-primary-600) var(--un-bg-opacity), transparent)}.btn-text:hover{background-color:color-mix(in oklab, #99999920 var(--un-bg-opacity), transparent);opacity:1}.dark .btn-icon,.dark .btn-icon-compact,.dark .btn-icon-square,.dark .op-fade{opacity:.55}.op-fade{opacity:.65}.dark .op-mute{opacity:.25}.op-mute{opacity:.3}.btn-action:disabled,.btn-action-sm:disabled{pointer-events:none;opacity:.3!important}.btn-icon:disabled,.btn-icon-compact:disabled,.btn-icon-square:disabled{opacity:.3;pointer-events:none}.btn-primary:disabled{opacity:.5;pointer-events:none}.btn-text:disabled{pointer-events:none;opacity:.3!important}.container{width:100%}.h-nav{height:calc(var(--spacing) * 10)}.btn-action:focus-visible,.btn-action-sm:focus-visible,.btn-icon:focus-visible,.btn-icon-compact:focus-visible,.btn-icon-square:focus-visible,.btn-primary:focus-visible,.btn-text:focus-visible{--un-ring-shadow:var(--un-ring-inset,) 0 0 0 calc(2px + var(--un-ring-offset-width)) var(--un-ring-color,currentColor);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);--un-ring-color:color-mix(in srgb, var(--colors-primary-500) 40%, transparent)}.z-modal-backdrop{z-index:60}.z-modal-content{z-index:70}.z-nav{z-index:30}@supports (color:color-mix(in lab, red, red)){.badge-color-amber{color:color-mix(in oklab, var(--colors-amber-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-amber-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-amber-400) 10%, transparent)}.dark .badge-color-amber{color:color-mix(in oklab, var(--colors-amber-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-amber-300) 15%, transparent)}.badge-color-blue{color:color-mix(in oklab, var(--colors-blue-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-blue-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-blue-400) 10%, transparent)}.dark .badge-color-blue{color:color-mix(in oklab, var(--colors-blue-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-blue-300) 15%, transparent)}.badge-color-emerald{color:color-mix(in oklab, var(--colors-emerald-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-emerald-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-emerald-400) 10%, transparent)}.dark .badge-color-emerald{color:color-mix(in oklab, var(--colors-emerald-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-emerald-300) 15%, transparent)}.badge-color-green{color:color-mix(in oklab, var(--colors-green-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-green-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-green-400) 10%, transparent)}.dark .badge-color-green{color:color-mix(in oklab, var(--colors-green-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-green-300) 15%, transparent)}.badge-color-orange{color:color-mix(in oklab, var(--colors-orange-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-orange-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-orange-400) 10%, transparent)}.dark .badge-color-orange{color:color-mix(in oklab, var(--colors-orange-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-orange-300) 15%, transparent)}.badge-color-red{color:color-mix(in oklab, var(--colors-red-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-red-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-red-400) 10%, transparent)}.dark .badge-color-red{color:color-mix(in oklab, var(--colors-red-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-red-300) 15%, transparent)}.badge-color-rose{color:color-mix(in oklab, var(--colors-rose-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-rose-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-rose-400) 10%, transparent)}.dark .badge-color-rose{color:color-mix(in oklab, var(--colors-rose-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-rose-300) 15%, transparent)}.badge-color-sky{color:color-mix(in oklab, var(--colors-sky-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-sky-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-sky-400) 10%, transparent)}.dark .badge-color-sky{color:color-mix(in oklab, var(--colors-sky-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-sky-300) 15%, transparent)}.badge-color-teal{color:color-mix(in oklab, var(--colors-teal-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-teal-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-teal-400) 10%, transparent)}.dark .badge-color-teal{color:color-mix(in oklab, var(--colors-teal-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-teal-300) 15%, transparent)}.badge-color-violet{color:color-mix(in oklab, var(--colors-violet-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-violet-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-violet-400) 10%, transparent)}.dark .badge-color-violet{color:color-mix(in oklab, var(--colors-violet-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-violet-300) 15%, transparent)}.btn-primary{color:color-mix(in oklab, var(--colors-white) var(--un-text-opacity), transparent);background-color:color-mix(in oklab, var(--colors-primary-500) var(--un-bg-opacity), transparent)}.badge-active{color:color-mix(in oklab, var(--colors-primary-600) var(--un-text-opacity), transparent)}.dark .badge-active{color:color-mix(in oklab, var(--colors-primary-300) var(--un-text-opacity), transparent)}.badge-muted{color:color-mix(in oklab, var(--colors-neutral-600) var(--un-text-opacity), transparent)}.dark .badge-muted{color:color-mix(in oklab, var(--colors-neutral-400) var(--un-text-opacity), transparent)}.color-active{color:color-mix(in oklab, var(--colors-primary-600) var(--un-text-opacity), transparent)}.dark .color-active,.dark .data-\[state\=active\]\:color-active[data-state=active]{color:color-mix(in oklab, var(--colors-primary-300) var(--un-text-opacity), transparent)}.data-\[state\=active\]\:color-active[data-state=active]{color:color-mix(in oklab, var(--colors-primary-600) var(--un-text-opacity), transparent)}.color-base{color:color-mix(in oklab, var(--colors-neutral-800) var(--un-text-opacity), transparent)}.dark .color-base,.dark .data-\[state\=active\]\:color-base[data-state=active]{color:color-mix(in oklab, var(--colors-neutral-200) var(--un-text-opacity), transparent)}.data-\[state\=active\]\:color-base[data-state=active]{color:color-mix(in oklab, var(--colors-neutral-800) var(--un-text-opacity), transparent)}.color-faint,.dark .color-faint{color:color-mix(in oklab, var(--colors-neutral-500) var(--un-text-opacity), transparent)}.color-muted{color:color-mix(in oklab, var(--colors-neutral-600) var(--un-text-opacity), transparent)}.dark .color-muted{color:color-mix(in oklab, var(--colors-neutral-400) var(--un-text-opacity), transparent)}.dark .hover\:color-base:hover{color:color-mix(in oklab, var(--colors-neutral-200) var(--un-text-opacity), transparent)}.hover\:color-base:hover{color:color-mix(in oklab, var(--colors-neutral-800) var(--un-text-opacity), transparent)}.dark .placeholder\:color-faint::placeholder,.placeholder\:color-faint::placeholder{color:color-mix(in oklab, var(--colors-neutral-500) var(--un-text-opacity), transparent)}.dark .focus-visible\:border-active:focus-visible{border-color:color-mix(in oklab, var(--colors-primary-400) 25%, transparent)}.focus-visible\:border-active:focus-visible{border-color:color-mix(in oklab, var(--colors-primary-600) 25%, transparent)}.bg-base,.data-\[state\=active\]\:bg-base[data-state=active]{background-color:color-mix(in oklab, var(--colors-white) var(--un-bg-opacity), transparent)}.bg-glass{background-color:color-mix(in oklab, var(--colors-white) 65%, transparent)}.dark .data-\[state\=active\]\:bg-raised[data-state=active]{background-color:color-mix(in oklab, var(--colors-white) 6%, transparent)}.data-\[state\=active\]\:bg-raised[data-state=active]{background-color:color-mix(in oklab, var(--colors-white) 65%, transparent)}.bg-sunken{background-color:color-mix(in oklab, var(--colors-black) 4%, transparent)}.dark .bg-sunken{background-color:color-mix(in oklab, var(--colors-black) 20%, transparent)}.btn-primary:hover{background-color:color-mix(in oklab, var(--colors-primary-600) var(--un-bg-opacity), transparent)}.btn-action:focus-visible,.btn-action-sm:focus-visible,.btn-icon:focus-visible,.btn-icon-compact:focus-visible,.btn-icon-square:focus-visible,.btn-primary:focus-visible,.btn-text:focus-visible{--un-ring-color:color-mix(in oklab, var(--colors-primary-500) 40%, transparent)}}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}@property --scroll-fade-t{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-b{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-s{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-e{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-mask{syntax:"*";inherits:false}@property --shimmer-angle{syntax:"<angle>";inherits:true;initial-value:20deg}@property --shimmer-image{syntax:"*";inherits:false}@property --shimmer-text-fill{syntax:"*";inherits:false}.text-4xl{font-size:var(--text-4xl-fontSize);line-height:var(--un-leading,var(--text-4xl-lineHeight))}.text-base{font-size:var(--text-base-fontSize);line-height:var(--un-leading,var(--text-base-lineHeight))}.text-lg{font-size:var(--text-lg-fontSize);line-height:var(--un-leading,var(--text-lg-lineHeight))}.text-sm{font-size:var(--text-sm-fontSize);line-height:var(--un-leading,var(--text-sm-lineHeight))}.text-xs{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight))}.dark .dark\:text-amber-300{color:color-mix(in srgb, var(--colors-amber-300) var(--un-text-opacity), transparent)}.dark .dark\:text-blue-300{color:color-mix(in srgb, var(--colors-blue-300) var(--un-text-opacity), transparent)}.dark .dark\:text-green-300{color:color-mix(in srgb, var(--colors-green-300) var(--un-text-opacity), transparent)}.dark .dark\:text-red-300{color:color-mix(in srgb, var(--colors-red-300) var(--un-text-opacity), transparent)}.text-amber-700{color:color-mix(in srgb, var(--colors-amber-700) var(--un-text-opacity), transparent)}.text-blue-700{color:color-mix(in srgb, var(--colors-blue-700) var(--un-text-opacity), transparent)}.text-error{color:color-mix(in srgb, var(--colors-error-DEFAULT) var(--un-text-opacity), transparent)}.text-green-700{color:color-mix(in srgb, var(--colors-green-700) var(--un-text-opacity), transparent)}.text-red-700{color:color-mix(in srgb, var(--colors-red-700) var(--un-text-opacity), transparent)}.font-medium{--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium)}.font-mono{font-family:var(--font-mono)}.font-semibold{--un-font-weight:var(--fontWeight-semibold);font-weight:var(--fontWeight-semibold)}.tab{tab-size:4}.m\[2\]{margin:2px}.m\[3\]{margin:3px}.m\[4\]{margin:4px}.m\[5\]{margin:5px}.m\[6\]{margin:6px}.m\[7\]{margin:7px}.-mb-px{margin-bottom:-1px}.me{margin-inline-end:calc(var(--spacing) * 4)}.ml{margin-left:calc(var(--spacing) * 4)}.ms{margin-inline-start:calc(var(--spacing) * 4)}.mt{margin-top:calc(var(--spacing) * 4)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.p-\[0\.25em\]{padding:.25em}.p-\[0\.5em\]{padding:.5em}.p-1,.p1{padding:calc(var(--spacing) * 1)}.p-3,.p3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-8{padding:calc(var(--spacing) * 8)}.p\[i\]{padding:i}.p\[v\]{padding:v}.p\$1{padding:var(--1)}.p\$1\){padding:var(--1\))}.p0{padding:calc(var(--spacing) * 0)}.p2{padding:calc(var(--spacing) * 2)}.px{padding-inline:calc(var(--spacing) * 4)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2,.px2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-2\.5\!{padding-inline:calc(var(--spacing) * 2.5)!important}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4\!{padding-inline:calc(var(--spacing) * 4)!important}.py-1,.py1{padding-block:calc(var(--spacing) * 1)}.py-1\!{padding-block:calc(var(--spacing) * 1)!important}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\!{padding-block:calc(var(--spacing) * 2)!important}.py-3{padding-block:calc(var(--spacing) * 3)}.pl{padding-left:calc(var(--spacing) * 4)}.pt{padding-top:calc(var(--spacing) * 4)}.text-center{text-align:center}.outline{outline-style:var(--un-outline-style);outline-width:1px}.outline-none{--un-outline-style:none;outline-style:none}.b,.border{border-width:1px}.border-b{border-bottom-width:1px}.border-2{border-width:2px}.border-amber-500\/20{border-color:color-mix(in srgb, var(--colors-amber-500) 20%, transparent)}.border-blue-500\/20{border-color:color-mix(in srgb, var(--colors-blue-500) 20%, transparent)}.border-current{border-color:currentColor}.border-error\/30\!{border-color:color-mix(in srgb, var(--colors-error-DEFAULT) 30%, transparent)!important}.border-green-500\/20{border-color:color-mix(in srgb, var(--colors-green-500) 20%, transparent)}.border-red-500\/20{border-color:color-mix(in srgb, var(--colors-red-500) 20%, transparent)}.border-transparent{border-color:#0000}.dark .dark\:data-\[state\=active\]\:border-primary-400[data-state=active]{border-color:color-mix(in srgb, var(--colors-primary-400) var(--un-border-opacity), transparent)}.data-\[state\=active\]\:border-primary-500[data-state=active]{border-color:color-mix(in srgb, var(--colors-primary-500) var(--un-border-opacity), transparent)}.border-b-2{border-bottom-width:2px}.border-t-transparent{border-top-color:#0000}.rd,.rounded{border-radius:var(--radius-DEFAULT)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.bg-amber-400\/10{background-color:color-mix(in srgb, var(--colors-amber-400) 10%, transparent)}.bg-black\/40{background-color:color-mix(in srgb, var(--colors-black) 40%, transparent)}.bg-blue-400\/10{background-color:color-mix(in srgb, var(--colors-blue-400) 10%, transparent)}.bg-error{background-color:color-mix(in srgb, var(--colors-error-DEFAULT) var(--un-bg-opacity), transparent)}.bg-green-400\/10{background-color:color-mix(in srgb, var(--colors-green-400) 10%, transparent)}.bg-neutral-400{background-color:color-mix(in srgb, var(--colors-neutral-400) var(--un-bg-opacity), transparent)}.bg-primary-500{background-color:color-mix(in srgb, var(--colors-primary-500) var(--un-bg-opacity), transparent)}.bg-red-400\/10{background-color:color-mix(in srgb, var(--colors-red-400) 10%, transparent)}.bg-success{background-color:color-mix(in srgb, var(--colors-success-DEFAULT) var(--un-bg-opacity), transparent)}.bg-warning{background-color:color-mix(in srgb, var(--colors-warning-DEFAULT) var(--un-bg-opacity), transparent)}.op100{opacity:1}.op100\!{opacity:1!important}.op75{opacity:.75}.hover\:op100:hover{opacity:1}.disabled\:op30\!:disabled{opacity:.3!important}.disabled\:op50:disabled{opacity:.5}.underline,.hover\:underline:hover{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.flex{display:flex}.inline-flex{display:inline-flex}.flex-1{flex:1}.shrink-0{flex-shrink:0}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.grid{display:grid}.inline-grid{display:inline-grid}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.h-0\.5{height:calc(var(--spacing) * .5)}.h-5{height:calc(var(--spacing) * 5)}.h-7\!{height:calc(var(--spacing) * 7)!important}.h-8{height:calc(var(--spacing) * 8)}.h-auto\!{height:auto!important}.h-full{height:100%}.h\$1{height:var(--1)}.h11{height:calc(var(--spacing) * 11)}.h12{height:calc(var(--spacing) * 12)}.h2{height:calc(var(--spacing) * 2)}.h23{height:calc(var(--spacing) * 23)}.h24{height:calc(var(--spacing) * 24)}.h3{height:calc(var(--spacing) * 3)}.h4{height:calc(var(--spacing) * 4)}.max-w-52{max-width:calc(var(--spacing) * 52)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-5{min-width:calc(var(--spacing) * 5)}.w-\[--reka-tabs-indicator-size\]{width:var(--reka-tabs-indicator-size)}.w-7\!{width:calc(var(--spacing) * 7)!important}.w-auto\!{width:auto!important}.w-full{width:100%}.w-max{width:max-content}.inline{display:inline}.block{display:block}.inline-block{display:inline-block}.contents{display:contents}.hidden{display:none}.visible{visibility:visible}.collapse{visibility:collapse}.cursor-pointer{cursor:pointer}.pointer-events-none,.disabled\:pointer-events-none:disabled{pointer-events:none}.resize{resize:both}.select-none{-webkit-user-select:none;user-select:none}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.text-wrap{text-wrap:wrap}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.ring{--un-ring-shadow:var(--un-ring-inset,) 0 0 0 calc(1px + var(--un-ring-offset-width)) var(--un-ring-color,currentColor);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.focus-visible\:ring-2:focus-visible{--un-ring-shadow:var(--un-ring-inset,) 0 0 0 calc(2px + var(--un-ring-offset-width)) var(--un-ring-color,currentColor);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.focus-visible\:ring-primary-500\/40:focus-visible{--un-ring-color:color-mix(in srgb, var(--colors-primary-500) 40%, transparent)}.data-\[state\=active\]\:shadow-sm[data-state=active],.shadow,.shadow-sm{--un-shadow:0 1px 3px 0 var(--un-shadow-color,#0000001a),0 1px 2px -1px var(--un-shadow-color,#0000001a);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.shadow-lg{--un-shadow:0 10px 15px -3px var(--un-shadow-color,#0000001a),0 4px 6px -4px var(--un-shadow-color,#0000001a);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.translate-x-\[--reka-tabs-indicator-position\]{--un-translate-x:var(--reka-tabs-indicator-position);translate:var(--un-translate-x) var(--un-translate-y)}.transform{transform:var(--un-rotate-x) var(--un-rotate-y) var(--un-rotate-z) var(--un-skew-x) var(--un-skew-y)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration))}.duration-200{--un-duration:.2s;transition-duration:.2s}.ease{--un-ease:var(--ease-DEFAULT);transition-timing-function:var(--ease-DEFAULT)}.items-center{align-items:center}.inset-0{inset:calc(var(--spacing) * 0)}.bottom-0{bottom:calc(var(--spacing) * 0)}.left-0{left:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.justify-center{justify-content:center}.place-items-center{place-items:center}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.static{position:static}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.animate-spin{animation:1s linear infinite spin}.isolate{isolation:isolate}.h-svh{height:100svh}.backdrop-blur-sm{--un-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--un-backdrop-blur,) var(--un-backdrop-brightness,) var(--un-backdrop-contrast,) var(--un-backdrop-grayscale,) var(--un-backdrop-hue-rotate,) var(--un-backdrop-invert,) var(--un-backdrop-opacity,) var(--un-backdrop-saturate,) var(--un-backdrop-sepia,);backdrop-filter:var(--un-backdrop-blur,) var(--un-backdrop-brightness,) var(--un-backdrop-contrast,) var(--un-backdrop-grayscale,) var(--un-backdrop-hue-rotate,) var(--un-backdrop-invert,) var(--un-backdrop-opacity,) var(--un-backdrop-saturate,) var(--un-backdrop-sepia,)}.blur{--un-blur:blur(8px);filter:var(--un-blur,) var(--un-brightness,) var(--un-contrast,) var(--un-grayscale,) var(--un-hue-rotate,) var(--un-invert,) var(--un-saturate,) var(--un-sepia,) var(--un-drop-shadow,)}.filter{filter:var(--un-blur,) var(--un-brightness,) var(--un-contrast,) var(--un-grayscale,) var(--un-hue-rotate,) var(--un-invert,) var(--un-saturate,) var(--un-sepia,) var(--un-drop-shadow,)}.table{display:table}.tabular-nums{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal,) var(--un-slashed-zero,) var(--un-numeric-figure,) var(--un-numeric-spacing,) var(--un-numeric-fraction,)}@supports (color:color-mix(in lab, red, red)){.dark .dark\:text-amber-300{color:color-mix(in oklab, var(--colors-amber-300) var(--un-text-opacity), transparent)}.dark .dark\:text-blue-300{color:color-mix(in oklab, var(--colors-blue-300) var(--un-text-opacity), transparent)}.dark .dark\:text-green-300{color:color-mix(in oklab, var(--colors-green-300) var(--un-text-opacity), transparent)}.dark .dark\:text-red-300{color:color-mix(in oklab, var(--colors-red-300) var(--un-text-opacity), transparent)}.text-amber-700{color:color-mix(in oklab, var(--colors-amber-700) var(--un-text-opacity), transparent)}.text-blue-700{color:color-mix(in oklab, var(--colors-blue-700) var(--un-text-opacity), transparent)}.text-error{color:color-mix(in oklab, var(--colors-error-DEFAULT) var(--un-text-opacity), transparent)}.text-green-700{color:color-mix(in oklab, var(--colors-green-700) var(--un-text-opacity), transparent)}.text-red-700{color:color-mix(in oklab, var(--colors-red-700) var(--un-text-opacity), transparent)}.border-amber-500\/20{border-color:color-mix(in oklab, var(--colors-amber-500) 20%, transparent)}.border-blue-500\/20{border-color:color-mix(in oklab, var(--colors-blue-500) 20%, transparent)}.border-error\/30\!{border-color:color-mix(in oklab, var(--colors-error-DEFAULT) 30%, transparent)!important}.border-green-500\/20{border-color:color-mix(in oklab, var(--colors-green-500) 20%, transparent)}.border-red-500\/20{border-color:color-mix(in oklab, var(--colors-red-500) 20%, transparent)}.dark .dark\:data-\[state\=active\]\:border-primary-400[data-state=active]{border-color:color-mix(in oklab, var(--colors-primary-400) var(--un-border-opacity), transparent)}.data-\[state\=active\]\:border-primary-500[data-state=active]{border-color:color-mix(in oklab, var(--colors-primary-500) var(--un-border-opacity), transparent)}.bg-amber-400\/10{background-color:color-mix(in oklab, var(--colors-amber-400) 10%, transparent)}.bg-black\/40{background-color:color-mix(in oklab, var(--colors-black) 40%, transparent)}.bg-blue-400\/10{background-color:color-mix(in oklab, var(--colors-blue-400) 10%, transparent)}.bg-error{background-color:color-mix(in oklab, var(--colors-error-DEFAULT) var(--un-bg-opacity), transparent)}.bg-green-400\/10{background-color:color-mix(in oklab, var(--colors-green-400) 10%, transparent)}.bg-neutral-400{background-color:color-mix(in oklab, var(--colors-neutral-400) var(--un-bg-opacity), transparent)}.bg-primary-500{background-color:color-mix(in oklab, var(--colors-primary-500) var(--un-bg-opacity), transparent)}.bg-red-400\/10{background-color:color-mix(in oklab, var(--colors-red-400) 10%, transparent)}.bg-success{background-color:color-mix(in oklab, var(--colors-success-DEFAULT) var(--un-bg-opacity), transparent)}.bg-warning{background-color:color-mix(in oklab, var(--colors-warning-DEFAULT) var(--un-bg-opacity), transparent)}.focus-visible\:ring-primary-500\/40:focus-visible{--un-ring-color:color-mix(in oklab, var(--colors-primary-500) 40%, transparent)}}.v-popper__popper{z-index:10000;outline:none;top:0;left:0}.v-popper__popper.v-popper__popper--hidden{visibility:hidden;opacity:0;pointer-events:none;transition:opacity .15s,visibility .15s}.v-popper__popper.v-popper__popper--shown{visibility:visible;opacity:1;transition:opacity .15s}.v-popper__popper.v-popper__popper--skip-transition,.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper{transition:none!important}.v-popper__backdrop{width:100%;height:100%;display:none;position:absolute;top:0;left:0}.v-popper__inner{box-sizing:border-box;position:relative;overflow-y:auto}.v-popper__inner>div{z-index:1;max-width:inherit;max-height:inherit;position:relative}.v-popper__arrow-container{width:10px;height:10px;position:absolute}.v-popper__popper--arrow-overflow .v-popper__arrow-container,.v-popper__popper--no-positioning .v-popper__arrow-container{display:none}.v-popper__arrow-inner,.v-popper__arrow-outer{border-style:solid;width:0;height:0;position:absolute;top:0;left:0}.v-popper__arrow-inner{visibility:hidden;border-width:7px}.v-popper__arrow-outer{border-width:6px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{left:-2px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{left:-1px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer{border-bottom-width:0;border-bottom-color:#0000!important;border-left-color:#0000!important;border-right-color:#0000!important}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:0}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{border-top-width:0;border-top-color:#0000!important;border-left-color:#0000!important;border-right-color:#0000!important}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{top:-4px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{top:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{top:-1px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{border-left-width:0;border-top-color:#0000!important;border-bottom-color:#0000!important;border-left-color:#0000!important}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{left:-4px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{left:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer{border-right-width:0;border-top-color:#0000!important;border-bottom-color:#0000!important;border-right-color:#0000!important}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner{left:-2px}.v-popper--theme-tooltip .v-popper__inner{color:#fff;background:#000c;border-radius:6px;padding:7px 12px 6px}.v-popper--theme-tooltip .v-popper__arrow-outer{border-color:#000c}.v-popper--theme-dropdown .v-popper__inner{color:#000;background:#fff;border:1px solid #ddd;border-radius:6px;box-shadow:0 6px 30px #0000001a}.v-popper--theme-dropdown .v-popper__arrow-inner{visibility:visible;border-color:#fff}.v-popper--theme-dropdown .v-popper__arrow-outer{border-color:#ddd}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html.dark .dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:color-mix(in srgb, var(--colors-neutral-200) var(--un-text-opacity), transparent)}@supports (color:color-mix(in lab, red, red)){html.dark .dark{color:color-mix(in oklab, var(--colors-neutral-200) var(--un-text-opacity), transparent)}}html.light .light{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:color-mix(in srgb, var(--colors-neutral-800) var(--un-text-opacity), transparent)}@supports (color:color-mix(in lab, red, red)){html.light .light{color:color-mix(in oklab, var(--colors-neutral-800) var(--un-text-opacity), transparent)}}html,body{color:color-mix(in srgb, var(--colors-neutral-800) var(--un-text-opacity), transparent);background-color:color-mix(in srgb, var(--colors-white) var(--un-bg-opacity), transparent)}@supports (color:color-mix(in lab, red, red)){html,body{color:color-mix(in oklab, var(--colors-neutral-800) var(--un-text-opacity), transparent);background-color:color-mix(in oklab, var(--colors-white) var(--un-bg-opacity), transparent)}}.dark html,.dark body{color:color-mix(in srgb, var(--colors-neutral-200) var(--un-text-opacity), transparent);background-color:color-mix(in oklab, #111 var(--un-bg-opacity), transparent)}@supports (color:color-mix(in lab, red, red)){.dark html,.dark body{color:color-mix(in oklab, var(--colors-neutral-200) var(--un-text-opacity), transparent)}}*{scrollbar-width:thin;scrollbar-color:#88888859 transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#8888884d;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#88888880}@keyframes af-spin{to{transform:rotate(360deg)}}@keyframes af-spin-reverse{to{transform:rotate(-360deg)}}.af-spin{animation:1s linear infinite af-spin}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:9999}html.dark::view-transition-old(root){z-index:9999}html.dark::view-transition-new(root){z-index:1}@media (prefers-reduced-motion:reduce){::view-transition-old(root){animation:none!important}::view-transition-new(root){animation:none!important}}[data-reka-popper-content-wrapper]{z-index:70}[data-af-animate][data-state=open]{animation:.15s both af-fade-in}[data-af-animate][data-state=closed]{animation:.15s both af-fade-out}[data-af-modal][data-state=open]{animation:.18s cubic-bezier(.16,1,.3,1) both af-modal-in}[data-af-modal][data-state=closed]{animation:.15s both af-modal-out}[data-af-drawer]{animation-duration:.22s;animation-timing-function:cubic-bezier(.32,.72,0,1);animation-fill-mode:both}[data-af-drawer][data-side=right]{animation-name:af-slide-right}[data-af-drawer][data-side=left]{animation-name:af-slide-left}[data-af-drawer][data-side=top]{animation-name:af-slide-top}[data-af-drawer][data-side=bottom]{animation-name:af-slide-bottom}[data-af-drawer][data-state=closed]{animation-direction:reverse}@keyframes af-fade-in{0%{opacity:0}}@keyframes af-fade-out{to{opacity:0}}@keyframes af-modal-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes af-modal-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}@keyframes af-slide-right{0%{transform:translate(100%)}}@keyframes af-slide-left{0%{transform:translate(-100%)}}@keyframes af-slide-top{0%{transform:translateY(-100%)}}@keyframes af-slide-bottom{0%{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){[data-af-animate],[data-af-modal],[data-af-drawer]{animation:none!important}}.v-popper__popper .v-popper__inner{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight));color:color-mix(in srgb, var(--colors-neutral-800) var(--un-text-opacity), transparent);padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 1);border-width:1px;border-color:color-mix(in oklab, #9992 var(--un-border-opacity), transparent);border-radius:var(--radius-md);background-color:color-mix(in srgb, var(--colors-white) 75%, transparent);--un-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--un-backdrop-blur,) var(--un-backdrop-brightness,) var(--un-backdrop-contrast,) var(--un-backdrop-grayscale,) var(--un-backdrop-hue-rotate,) var(--un-backdrop-invert,) var(--un-backdrop-opacity,) var(--un-backdrop-saturate,) var(--un-backdrop-sepia,);backdrop-filter:var(--un-backdrop-blur,) var(--un-backdrop-brightness,) var(--un-backdrop-contrast,) var(--un-backdrop-grayscale,) var(--un-backdrop-hue-rotate,) var(--un-backdrop-invert,) var(--un-backdrop-opacity,) var(--un-backdrop-saturate,) var(--un-backdrop-sepia,);box-shadow:0 4px 16px #0000001f}@supports (color:color-mix(in lab, red, red)){.v-popper__popper .v-popper__inner{color:color-mix(in oklab, var(--colors-neutral-800) var(--un-text-opacity), transparent);background-color:color-mix(in oklab, var(--colors-white) 75%, transparent)}}.dark .v-popper__popper .v-popper__inner{color:color-mix(in srgb, var(--colors-neutral-200) var(--un-text-opacity), transparent);background-color:oklab(17.7638% -2.23517e-8 0/.75)}@supports (color:color-mix(in lab, red, red)){.dark .v-popper__popper .v-popper__inner{color:color-mix(in oklab, var(--colors-neutral-200) var(--un-text-opacity), transparent)}}.v-popper__popper .v-popper__arrow-outer{border-color:color-mix(in oklab, #9992 var(--un-border-opacity), transparent)}.v-popper__popper .v-popper__arrow-inner{border-color:color-mix(in srgb, var(--colors-white) 75%, transparent);visibility:visible}@supports (color:color-mix(in lab, red, red)){.v-popper__popper .v-popper__arrow-inner{border-color:color-mix(in oklab, var(--colors-white) 75%, transparent)}}.dark .v-popper__popper .v-popper__arrow-inner{border-color:oklab(17.7638% -2.23517e-8 0/.75)}.v-popper--theme-dropdown .v-popper__inner{padding:calc(var(--spacing) * 1)}.splitpanes{width:100%;height:100%;display:flex}.splitpanes--vertical{flex-direction:row}.splitpanes--horizontal{flex-direction:column}.splitpanes--dragging *{-webkit-user-select:none;user-select:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--vertical>.splitpanes__pane{transition:width .2s ease-out}.splitpanes--horizontal>.splitpanes__pane{transition:height .2s ease-out}.splitpanes--dragging>.splitpanes__pane{pointer-events:none;transition:none}.splitpanes__splitter{touch-action:none;background-color:color-mix(in oklab, #8882 var(--un-bg-opacity), transparent);transition:background-color .2s;position:relative}.splitpanes__splitter:hover{background-color:color-mix(in oklab, #8886 var(--un-bg-opacity), transparent)}.splitpanes--vertical>.splitpanes__splitter{cursor:col-resize;min-width:1px}.splitpanes--horizontal>.splitpanes__splitter{cursor:row-resize;min-height:1px}.splitpanes__splitter:before{content:"";z-index:1;position:absolute;inset:-4px}:root{--df-radius:.5rem;--df-bg:#fff;--df-bg-soft:#f5f5f5;--df-bg-active:#8881;--df-border:#88888821;--df-border-soft:#8881;--df-fg:#262626;--df-fg-dim:#525252;--df-fg-faint:#737373;--df-accent:#3a6a45;--df-accent-dim:#3a6a4538;--df-danger:#e11d48;--df-mono:ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace;--df-sans:var(--font-sans,"DM Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);--df-query:#2563c9;--df-static:#8a45c9;--df-action:#b9701f;--df-event:#c43d75;--df-string:#1f8a52;--df-number:#9a6315;--df-boolean:#7a32bf;--df-null:#93a0ad;--df-key:#2a5fa6}.dark{--df-bg:#111;--df-bg-soft:#1a1a1a;--df-fg:#e5e5e5;--df-fg-dim:#a3a3a3;--df-fg-faint:#737373;--df-accent:#6fb07d;--df-accent-dim:#6fb07d38;--df-danger:#fb7185;--df-query:#6ea8fe;--df-static:#c792ea;--df-action:#ffb08f;--df-event:#e06b9b;--df-string:#95d6a4;--df-number:#e6b673;--df-boolean:#d39bf0;--df-null:#76828f;--df-key:#7fb0e8}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{background:var(--df-bg);color:var(--df-fg);font-family:var(--df-sans);-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.45}button{cursor:pointer;font-family:inherit}code,.mono{font-family:var(--df-mono)}input,textarea{color:inherit;font-family:inherit}.app{flex-direction:column;height:100%;display:flex;overflow:hidden}.app-body{flex:1;min-height:0;overflow:hidden}.center{height:100%;color:var(--df-fg-dim);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:20px;display:flex}.pane{height:100%;overflow:auto}.toolbar{background:var(--df-bg);border-bottom:1px solid var(--df-border-soft);z-index:2;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;display:flex;position:sticky;top:0}.search{border:1px solid var(--df-border);border-radius:var(--df-radius);background:0 0;flex:1;align-items:center;gap:7px;min-width:180px;padding:5px 10px;display:flex}.search:focus-within{border-color:var(--df-accent)}.search input{background:0 0;border:none;outline:none;flex:1;font-size:12.5px}.search svg{color:var(--df-fg-faint);flex-shrink:0}.muted{color:var(--df-fg-dim);font-size:11.5px}.checkbox{color:var(--df-fg-dim);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:5px;font-size:11.5px;display:inline-flex}.badge{font-size:10.5px;font-weight:600;font-family:var(--df-mono);background:var(--df-bg-active);color:var(--df-fg-dim);border:1px solid var(--df-border);letter-spacing:.02em;border-radius:100px;padding:1px 7px;display:inline-block}.badge.query{color:var(--df-query)}.badge.static{color:var(--df-static)}.badge.action{color:var(--df-action)}.badge.event{color:var(--df-event)}.badge.flag{color:var(--df-fg-faint);background:0 0;font-weight:500}.badge.agent{color:var(--df-accent);border-color:var(--df-accent-dim)}.badge.safety-destructive{color:var(--df-danger)}.fn-list{padding:8px 14px 14px}.fn-row{border-top:1px solid var(--df-border-soft)}.fn-head{cursor:default;align-items:center;gap:10px;padding:8px 6px;display:flex}.fn-head.clickable{cursor:pointer}.fn-head.clickable:hover{background:var(--df-bg-soft)}.fn-name{font-family:var(--df-mono);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12.5px;overflow:hidden}.fn-name .ns-seg{color:var(--df-fg)}.fn-name .ns-sep{color:var(--df-fg-faint)}.fn-flags{flex-shrink:0;align-items:center;gap:5px;display:flex}.chev{color:var(--df-fg-faint);flex-shrink:0;width:14px;transition:transform .15s}.chev.open{transform:rotate(90deg)}.fn-detail{background:var(--df-bg-soft);border-top:1px solid var(--df-border-soft);padding:4px 12px 14px 30px}.fn-detail .desc{color:var(--df-fg-dim);margin:8px 0;font-size:12px}.label{text-transform:uppercase;letter-spacing:.06em;color:var(--df-fg-faint);margin:12px 0 5px;font-size:10.5px;font-weight:600}textarea.args{resize:vertical;background:var(--df-bg);border:1px solid var(--df-border);border-radius:var(--df-radius);width:100%;min-height:58px;font-family:var(--df-mono);outline:none;padding:8px 10px;font-size:12px}textarea.args:focus{border-color:var(--df-accent)}.result{border:1px solid var(--df-border);border-radius:var(--df-radius);background:var(--df-bg);margin-top:10px;padding:10px 12px}.result-head{align-items:center;gap:8px;margin-bottom:6px;font-size:11.5px;display:flex}.result-head .ok{color:var(--df-accent);font-weight:600}.result-head .fail{color:var(--df-danger);font-weight:600}.note{color:var(--df-fg-faint);font-size:11.5px;font-style:italic}.cmd-icon{color:var(--df-fg-dim);flex-shrink:0}.cmd-title{flex-shrink:0;font-size:12.5px;font-weight:600}.cmd-id{color:var(--df-fg-faint);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:11px;overflow:hidden}.cmd-row-child .fn-head{padding-left:22px}.cmd-children{border-left:1px solid var(--df-border-soft);margin-left:5px;padding-left:16px}.cmd-children .fn-row{border-top:none;border-bottom:1px solid var(--df-border-soft)}.cmd-children .fn-row:last-child{border-bottom:none}.split{height:100%;display:flex;overflow:hidden}.keys{border-right:1px solid var(--df-border);background:var(--df-bg-soft);flex-direction:column;flex-shrink:0;width:260px;display:flex;overflow:hidden}.keys-head{border-bottom:1px solid var(--df-border-soft);color:var(--df-fg-dim);justify-content:space-between;align-items:center;padding:9px 12px;font-size:11px;display:flex}.keys-list{flex:1;overflow:auto}.key-item{text-align:left;width:100%;color:var(--df-fg-dim);font-family:var(--df-mono);border:none;border-bottom:1px solid var(--df-border-soft);text-overflow:ellipsis;white-space:nowrap;background:0 0;padding:8px 12px;font-size:11.5px;transition:background .1s;display:block;overflow:hidden}.key-item:hover{background:var(--df-bg-active)}.key-item.active{background:var(--df-bg-active);color:var(--df-accent);box-shadow:inset 2px 0 0 var(--df-accent)}.state-main{flex:1;min-width:0;padding:14px 16px;overflow:auto}.state-meta{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.state-key{font-family:var(--df-mono);color:var(--df-accent);font-size:13px}.pulse{color:var(--df-accent);font-size:11px}.json{font-family:var(--df-mono);font-size:12px;line-height:1.6}.json-row{border-radius:4px;align-items:flex-start;padding:0 3px;display:flex}.json-toggle{cursor:pointer;-webkit-user-select:none;user-select:none}.json-toggle:hover{background:var(--df-bg-active)}.json-caret{width:12px;color:var(--df-fg-faint);flex-shrink:0;transition:transform .12s;display:inline-block}.json-caret.open{transform:rotate(90deg)}.json-key{color:var(--df-key)}.json-colon{color:var(--df-fg-faint);margin:0 5px 0 1px}.json-children{border-left:1px solid var(--df-border-soft);margin-left:5px;padding-left:16px}.json-meta{color:var(--df-fg-faint);font-size:11px}.v-string{color:var(--df-string)}.v-number{color:var(--df-number)}.v-boolean{color:var(--df-boolean)}.v-null{color:var(--df-null);font-style:italic}.json-row.changed{background:var(--df-accent-dim);animation:1.6s ease-out forwards fade-change}@keyframes fade-change{0%{background:var(--df-accent-dim)}to{background:0 0}}.cards{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;padding:12px 14px;display:grid}.card{border:1px solid var(--df-border);border-radius:var(--df-radius);background:var(--df-bg-soft);padding:12px 13px}.card-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.card-title{font-size:13px;font-weight:600}.card .id{font-family:var(--df-mono);color:var(--df-fg-faint);word-break:break-all;font-size:11px}.card .id-note{font-family:var(--df-mono);color:var(--df-fg-faint);opacity:.7;word-break:break-all;margin-top:1px;font-size:10px}.card .desc{color:var(--df-fg-dim);margin:7px 0;font-size:12px}.tags{flex-wrap:wrap;gap:5px;margin-top:6px;display:flex}.section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--df-fg-faint);padding:14px 14px 0;font-size:11px;font-weight:600}.empty{color:var(--df-fg-faint);padding:14px;font-style:italic}.inst-url{max-width:100%;font-family:var(--df-mono);color:var(--df-accent);align-items:center;gap:6px;margin-top:8px;font-size:12px;text-decoration:none;display:inline-flex}.inst-url:hover{text-decoration:underline}.inst-url-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.inst-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px;margin:12px 0 0;display:grid}.inst-meta>div{min-width:0}.inst-meta-wide{grid-column:1/-1}.inst-meta dt{text-transform:uppercase;letter-spacing:.06em;color:var(--df-fg-faint);font-size:10.5px;font-weight:600}.inst-meta dd{font-family:var(--df-mono);color:var(--df-fg-dim);text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;font-size:12px;overflow:hidden}.inst-empty{text-align:center;max-width:560px;color:var(--df-fg-dim);margin:0 auto;padding:40px 20px}.inst-empty p{margin:8px 0 0;font-size:12.5px;line-height:1.55}.inst-empty-icon{color:var(--df-fg-faint);font-size:32px}.inst-empty-title{color:var(--df-fg);font-size:14px;font-weight:600;margin-top:10px!important}.inst-empty code,.toolbar code{font-family:var(--df-mono);background:var(--df-bg-active);color:var(--df-fg-dim);border-radius:4px;padding:1px 5px;font-size:.92em}
1
+ .flex-col[data-v-fa4416fc]{flex-direction:column;display:flex}@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--un-bg-opacity:100%;--un-border-opacity:100%;--un-ease:initial;--un-leading:initial;--un-ring-opacity:100%;--un-text-opacity:100%;--un-translate-x:initial;--un-translate-y:initial;--un-translate-z:initial}}@property --un-text-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-leading{syntax:"*";inherits:false}@property --un-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --un-border-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-bg-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-ring-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-inset-ring-color{syntax:"*";inherits:false}@property --un-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-inset-shadow-color{syntax:"*";inherits:false}@property --un-ring-color{syntax:"*";inherits:false}@property --un-ring-inset{syntax:"*";inherits:false}@property --un-ring-offset-color{syntax:"*";inherits:false}@property --un-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --un-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-shadow-color{syntax:"*";inherits:false}@property --un-translate-x{syntax:"*";inherits:false;initial-value:0}@property --un-translate-y{syntax:"*";inherits:false;initial-value:0}@property --un-translate-z{syntax:"*";inherits:false;initial-value:0}@property --un-ease{syntax:"*";inherits:false}@property --un-backdrop-blur{syntax:"*";inherits:false}@property --un-backdrop-brightness{syntax:"*";inherits:false}@property --un-backdrop-contrast{syntax:"*";inherits:false}@property --un-backdrop-grayscale{syntax:"*";inherits:false}@property --un-backdrop-hue-rotate{syntax:"*";inherits:false}@property --un-backdrop-invert{syntax:"*";inherits:false}@property --un-backdrop-opacity{syntax:"*";inherits:false}@property --un-backdrop-saturate{syntax:"*";inherits:false}@property --un-backdrop-sepia{syntax:"*";inherits:false}@property --un-blur{syntax:"*";inherits:false}@property --un-brightness{syntax:"*";inherits:false}@property --un-contrast{syntax:"*";inherits:false}@property --un-drop-shadow{syntax:"*";inherits:false}@property --un-grayscale{syntax:"*";inherits:false}@property --un-hue-rotate{syntax:"*";inherits:false}@property --un-invert{syntax:"*";inherits:false}@property --un-saturate{syntax:"*";inherits:false}@property --un-sepia{syntax:"*";inherits:false}@property --un-numeric-figure{syntax:"*";inherits:false}@property --un-numeric-fraction{syntax:"*";inherits:false}@property --un-numeric-spacing{syntax:"*";inherits:false}@property --un-ordinal{syntax:"*";inherits:false}@property --un-slashed-zero{syntax:"*";inherits:false}:root,:host{--radius-md:.375rem;--spacing:.25rem;--colors-white:#fff;--text-xs-fontSize:.75rem;--text-xs-lineHeight:1rem;--colors-neutral-200:oklch(92.2% 0 0);--colors-neutral-800:oklch(26.9% 0 0);--radius-DEFAULT:.25rem;--default-transition-timingFunction:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--radius-lg:.5rem;--fontWeight-semibold:600;--fontWeight-medium:500;--container-sm:24rem;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--radius-xl:.75rem;--colors-black:#000;--colors-error-DEFAULT:#f63d68;--colors-neutral-400:oklch(70.8% 0 0);--colors-warning-DEFAULT:#f79009;--colors-success-DEFAULT:#12b76a;--colors-primary-500:#578861;--text-sm-fontSize:.875rem;--text-sm-lineHeight:1.25rem;--text-base-fontSize:1rem;--text-base-lineHeight:1.5rem;--text-4xl-fontSize:2.25rem;--text-4xl-lineHeight:2.5rem;--text-lg-fontSize:1.125rem;--text-lg-lineHeight:1.75rem;--colors-primary-400:#75a67e;--leading-none:1;--colors-blue-400:oklch(70.7% .165 254.624);--colors-amber-400:oklch(82.8% .189 84.429);--colors-green-400:oklch(79.2% .209 151.711);--colors-red-400:oklch(70.4% .191 22.216);--colors-sky-400:oklch(74.6% .16 232.661);--colors-violet-400:oklch(70.2% .183 293.541);--colors-rose-400:oklch(71.2% .194 13.428);--colors-teal-400:oklch(77.7% .152 181.912);--colors-orange-400:oklch(75% .183 55.934);--colors-emerald-400:oklch(76.5% .177 163.223);--colors-blue-700:oklch(48.8% .243 264.376);--colors-blue-600:oklch(54.6% .245 262.881);--colors-amber-700:oklch(55.5% .163 48.998);--colors-amber-600:oklch(66.6% .179 58.318);--colors-green-700:oklch(52.7% .154 150.069);--colors-green-600:oklch(62.7% .194 149.214);--colors-red-700:oklch(50.5% .213 27.518);--colors-red-600:oklch(57.7% .245 27.325);--colors-sky-700:oklch(50% .134 242.749);--colors-sky-600:oklch(58.8% .158 241.966);--colors-violet-700:oklch(49.1% .27 292.581);--colors-violet-600:oklch(54.1% .281 293.009);--colors-rose-700:oklch(51.4% .222 16.935);--colors-rose-600:oklch(58.6% .253 17.585);--colors-teal-700:oklch(51.1% .096 186.391);--colors-teal-600:oklch(60% .118 184.704);--colors-orange-700:oklch(55.3% .195 38.402);--colors-orange-600:oklch(64.6% .222 41.116);--colors-emerald-700:oklch(50.8% .118 165.612);--colors-emerald-600:oklch(59.6% .145 163.225);--colors-primary-600:#40704b;--colors-neutral-600:oklch(43.9% 0 0);--colors-neutral-500:oklch(55.6% 0 0);--colors-blue-300:oklch(80.9% .105 251.813);--colors-amber-300:oklch(87.9% .169 91.605);--colors-green-300:oklch(87.1% .15 154.449);--colors-red-300:oklch(80.8% .114 19.571);--colors-sky-300:oklch(82.8% .111 230.318);--colors-violet-300:oklch(81.1% .111 293.571);--colors-rose-300:oklch(81% .117 11.638);--colors-teal-300:oklch(85.5% .138 181.071);--colors-orange-300:oklch(83.7% .128 66.29);--colors-emerald-300:oklch(84.5% .143 164.978);--colors-primary-300:#93c69d;--ease-DEFAULT:cubic-bezier(.4, 0, .2, 1);--colors-blue-500:oklch(62.3% .214 259.815);--colors-green-500:oklch(72.3% .219 149.579);--colors-amber-500:oklch(76.9% .188 70.08);--colors-red-500:oklch(63.7% .237 25.331);--font-sans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--default-font-family:var(--font-sans);--default-monoFont-family:var(--font-mono)}*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-featureSettings,normal);font-variation-settings:var(--default-font-variationSettings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-monoFont-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-monoFont-featureSettings,normal);font-variation-settings:var(--default-monoFont-variationSettings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden~=until-found])){display:none!important}*,:before,:after{border-color:#8882}.i-ph-arrow-clockwise{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M240 56v48a8 8 0 0 1-8 8h-48a8 8 0 0 1 0-16h27.4l-26.59-24.36l-.25-.24a80 80 0 1 0-1.67 114.78a8 8 0 0 1 11 11.63A95.44 95.44 0 0 1 128 224h-1.32a96 96 0 1 1 69.07-164L224 85.8V56a8 8 0 1 1 16 0'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-arrow-square-out-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M184 80v128a8 8 0 0 1-8 8H48a8 8 0 0 1-8-8V80a8 8 0 0 1 8-8h128a8 8 0 0 1 8 8' opacity='.2'/%3E%3Cpath d='M224 104a8 8 0 0 1-16 0V59.32l-66.33 66.34a8 8 0 0 1-11.32-11.32L196.68 48H152a8 8 0 0 1 0-16h64a8 8 0 0 1 8 8Zm-40 24a8 8 0 0 0-8 8v72H48V80h72a8 8 0 0 0 0-16H48a16 16 0 0 0-16 16v128a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-72a8 8 0 0 0-8-8'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-arrows-clockwise{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M224 48v48a8 8 0 0 1-8 8h-48a8 8 0 0 1 0-16h28.69l-14.63-14.63a79.56 79.56 0 0 0-56.13-23.43h-.45a79.52 79.52 0 0 0-55.89 22.77a8 8 0 0 1-11.18-11.44a96 96 0 0 1 135 .79L208 76.69V48a8 8 0 0 1 16 0m-37.59 135.29a80 80 0 0 1-112.47-.66L59.31 168H88a8 8 0 0 0 0-16H40a8 8 0 0 0-8 8v48a8 8 0 0 0 16 0v-28.69l14.63 14.63A95.43 95.43 0 0 0 130 222.06h.53a95.36 95.36 0 0 0 67.07-27.33a8 8 0 0 0-11.18-11.44Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-book-open-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M232 56v144h-72a32 32 0 0 0-32 32a32 32 0 0 0-32-32H24V56h72a32 32 0 0 1 32 32a32 32 0 0 1 32-32Z' opacity='.2'/%3E%3Cpath d='M232 48h-72a40 40 0 0 0-32 16a40 40 0 0 0-32-16H24a8 8 0 0 0-8 8v144a8 8 0 0 0 8 8h72a24 24 0 0 1 24 24a8 8 0 0 0 16 0a24 24 0 0 1 24-24h72a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8M96 192H32V64h64a24 24 0 0 1 24 24v112a39.8 39.8 0 0 0-24-8m128 0h-64a39.8 39.8 0 0 0-24 8V88a24 24 0 0 1 24-24h64Z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-broadcast-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M160 128a32 32 0 1 1-32-32a32 32 0 0 1 32 32' opacity='.2'/%3E%3Cpath d='M128 88a40 40 0 1 0 40 40a40 40 0 0 0-40-40m0 64a24 24 0 1 1 24-24a24 24 0 0 1-24 24m73.71 7.14a80 80 0 0 1-14.08 22.2a8 8 0 0 1-11.92-10.67a63.95 63.95 0 0 0 0-85.33a8 8 0 1 1 11.92-10.67a80.08 80.08 0 0 1 14.08 84.47M69 103.09a64 64 0 0 0 11.26 67.58a8 8 0 0 1-11.92 10.67a79.93 79.93 0 0 1 0-106.67a8 8 0 1 1 11.95 10.67A63.8 63.8 0 0 0 69 103.09M248 128a119.58 119.58 0 0 1-34.29 84a8 8 0 1 1-11.42-11.2a103.9 103.9 0 0 0 0-145.56A8 8 0 1 1 213.71 44A119.58 119.58 0 0 1 248 128M53.71 200.78A8 8 0 1 1 42.29 212a119.87 119.87 0 0 1 0-168a8 8 0 1 1 11.42 11.2a103.9 103.9 0 0 0 0 145.56Z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-browser-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M224 56v40H32V56a8 8 0 0 1 8-8h176a8 8 0 0 1 8 8' opacity='.2'/%3E%3Cpath d='M216 40H40a16 16 0 0 0-16 16v144a16 16 0 0 0 16 16h176a16 16 0 0 0 16-16V56a16 16 0 0 0-16-16m0 16v32H40V56Zm0 144H40v-96h176z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-caret-right{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m181.66 133.66l-80 80a8 8 0 0 1-11.32-11.32L164.69 128L90.34 53.66a8 8 0 0 1 11.32-11.32l80 80a8 8 0 0 1 0 11.32'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-clock-counter-clockwise-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M216 128a88 88 0 1 1-88-88a88 88 0 0 1 88 88' opacity='.2'/%3E%3Cpath d='M136 80v43.47l36.12 21.67a8 8 0 0 1-8.24 13.72l-40-24A8 8 0 0 1 120 128V80a8 8 0 0 1 16 0m-8-48a95.44 95.44 0 0 0-67.92 28.15C52.81 67.51 46.35 74.59 40 82V64a8 8 0 0 0-16 0v40a8 8 0 0 0 8 8h40a8 8 0 0 0 0-16H49c7.15-8.42 14.27-16.35 22.39-24.57a80 80 0 1 1 1.66 114.75a8 8 0 1 0-11 11.64A96 96 0 1 0 128 32'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-database-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M216 80c0 26.51-39.4 48-88 48s-88-21.49-88-48s39.4-48 88-48s88 21.49 88 48' opacity='.2'/%3E%3Cpath d='M128 24c-53.83 0-96 24.6-96 56v96c0 31.4 42.17 56 96 56s96-24.6 96-56V80c0-31.4-42.17-56-96-56m80 104c0 9.62-7.88 19.43-21.61 26.92C170.93 163.35 150.19 168 128 168s-42.93-4.65-58.39-13.08C55.88 147.43 48 137.62 48 128v-16.64c17.06 15 46.23 24.64 80 24.64s62.94-9.68 80-24.64ZM69.61 53.08C85.07 44.65 105.81 40 128 40s42.93 4.65 58.39 13.08C200.12 60.57 208 70.38 208 80s-7.88 19.43-21.61 26.92C170.93 115.35 150.19 120 128 120s-42.93-4.65-58.39-13.08C55.88 99.43 48 89.62 48 80s7.88-19.43 21.61-26.92m116.78 149.84C170.93 211.35 150.19 216 128 216s-42.93-4.65-58.39-13.08C55.88 195.43 48 185.62 48 176v-16.64c17.06 15 46.23 24.64 80 24.64s62.94-9.68 80-24.64V176c0 9.62-7.88 19.43-21.61 26.92'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-function-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M200 40v160a16 16 0 0 1-16 16H56V56a16 16 0 0 1 16-16Z' opacity='.2'/%3E%3Cpath d='M208 40a8 8 0 0 1-8 8h-29.29a24 24 0 0 0-23.62 19.71l-9.5 52.29H184a8 8 0 0 1 0 16h-49.32l-10 55.16A40 40 0 0 1 85.29 224H56a8 8 0 0 1 0-16h29.29a24 24 0 0 0 23.62-19.71l9.5-52.29H72a8 8 0 0 1 0-16h49.32l10-55.16A40 40 0 0 1 170.71 32H200a8 8 0 0 1 8 8'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-lock-key-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M208 88H48a8 8 0 0 0-8 8v112a8 8 0 0 0 8 8h160a8 8 0 0 0 8-8V96a8 8 0 0 0-8-8m-80 72a20 20 0 1 1 20-20a20 20 0 0 1-20 20' opacity='.2'/%3E%3Cpath d='M208 80h-32V56a48 48 0 0 0-96 0v24H48a16 16 0 0 0-16 16v112a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16V96a16 16 0 0 0-16-16M96 56a32 32 0 0 1 64 0v24H96Zm112 152H48V96h160zm-80-96a28 28 0 0 0-8 54.83V184a8 8 0 0 0 16 0v-17.17a28 28 0 0 0-8-54.83m0 40a12 12 0 1 1 12-12a12 12 0 0 1-12 12'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-magnifying-glass-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M192 112a80 80 0 1 1-80-80a80 80 0 0 1 80 80' opacity='.2'/%3E%3Cpath d='m229.66 218.34l-50.06-50.06a88.21 88.21 0 1 0-11.32 11.31l50.06 50.07a8 8 0 0 0 11.32-11.32M40 112a72 72 0 1 1 72 72a72.08 72.08 0 0 1-72-72'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-play-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M228.23 134.69L84.15 222.81A8 8 0 0 1 72 216.12V39.88a8 8 0 0 1 12.15-6.69l144.08 88.12a7.82 7.82 0 0 1 0 13.38' opacity='.2'/%3E%3Cpath d='M232.4 114.49L88.32 26.35a16 16 0 0 0-16.2-.3A15.86 15.86 0 0 0 64 39.87v176.26A15.94 15.94 0 0 0 80 232a16.07 16.07 0 0 0 8.36-2.35l144.04-88.14a15.81 15.81 0 0 0 0-27ZM80 215.94V40l143.83 88Z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-plugs-connected-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='m185 127l-58 58a24 24 0 0 1-33.94 0L71 162.91A24 24 0 0 1 71 129l58-58a24 24 0 0 1 33.94 0L185 93.09a24 24 0 0 1 0 33.91' opacity='.2'/%3E%3Cpath d='M237.66 18.34a8 8 0 0 0-11.32 0l-52.4 52.41l-5.37-5.38a32.05 32.05 0 0 0-45.26 0L100 88.69l-6.34-6.35a8 8 0 0 0-11.32 11.32l6.35 6.34l-23.32 23.31a32 32 0 0 0 0 45.26l5.38 5.37l-52.41 52.4a8 8 0 0 0 11.32 11.32l52.4-52.41l5.37 5.38a32.06 32.06 0 0 0 45.26 0L156 167.31l6.34 6.35a8 8 0 0 0 11.32-11.32l-6.35-6.34l23.32-23.31a32 32 0 0 0 0-45.26l-5.38-5.37l52.41-52.4a8 8 0 0 0 0-11.32m-116.29 161a16 16 0 0 1-22.62 0l-22.06-22.09a16 16 0 0 1 0-22.62L100 111.31L144.69 156Zm57.94-57.94L156 144.69L111.31 100l23.32-23.31a16 16 0 0 1 22.62 0l22.06 22a16 16 0 0 1 0 22.63ZM88.57 35a8 8 0 0 1 14.86-6l8 20a8 8 0 0 1-14.86 6Zm-64 58A8 8 0 0 1 35 88.57l20 8a8 8 0 0 1-6 14.86l-20-8A8 8 0 0 1 24.57 93m206.86 70a8 8 0 0 1-10.4 4.46l-20-8a8 8 0 1 1 5.97-14.89l20 8a8 8 0 0 1 4.43 10.43m-64 58.06a8 8 0 0 1-14.86 5.94l-8-20a8 8 0 0 1 14.86-6Z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-plugs-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='m76 124l56 56l-29 29a24 24 0 0 1-33.94 0L47 186.91A24 24 0 0 1 47 153Zm133-54.91L186.91 47A24 24 0 0 0 153 47l-29 29l56 56l29-29a24 24 0 0 0 0-33.91' opacity='.2'/%3E%3Cpath d='M149.66 138.34a8 8 0 0 0-11.32 0L120 156.69L99.31 136l18.35-18.34a8 8 0 0 0-11.32-11.32L88 124.69l-18.34-18.35a8 8 0 0 0-11.32 11.32l6.35 6.34l-23.32 23.31a32 32 0 0 0 0 45.26l5.38 5.37l-28.41 28.4a8 8 0 0 0 11.32 11.32l28.4-28.41l5.37 5.38a32 32 0 0 0 45.26 0L132 191.31l6.34 6.35a8 8 0 0 0 11.32-11.32L131.31 168l18.35-18.34a8 8 0 0 0 0-11.32m-52.29 65a16 16 0 0 1-22.62 0l-22.06-22.09a16 16 0 0 1 0-22.62L76 135.31L120.69 180Zm140.29-185a8 8 0 0 0-11.32 0l-28.4 28.41l-5.37-5.38a32.05 32.05 0 0 0-45.26 0L124 64.69l-6.34-6.35a8 8 0 0 0-11.32 11.32l80 80a8 8 0 0 0 11.32-11.32l-6.35-6.34l23.32-23.31a32 32 0 0 0 0-45.26l-5.38-5.37l28.41-28.4a8 8 0 0 0 0-11.32m-34.35 79L180 120.69L135.31 76l23.32-23.31a16 16 0 0 1 22.62 0l22.06 22a16 16 0 0 1 0 22.68Z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-record-fill{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24m0 192a88 88 0 1 1 88-88a88.1 88.1 0 0 1-88 88m72-88a72 72 0 1 1-72-72a72.08 72.08 0 0 1 72 72'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-robot-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M200 56H56a24 24 0 0 0-24 24v112a24 24 0 0 0 24 24h144a24 24 0 0 0 24-24V80a24 24 0 0 0-24-24m-36 128H92a20 20 0 0 1 0-40h72a20 20 0 0 1 0 40' opacity='.2'/%3E%3Cpath d='M200 48h-64V16a8 8 0 0 0-16 0v32H56a32 32 0 0 0-32 32v112a32 32 0 0 0 32 32h144a32 32 0 0 0 32-32V80a32 32 0 0 0-32-32m16 144a16 16 0 0 1-16 16H56a16 16 0 0 1-16-16V80a16 16 0 0 1 16-16h144a16 16 0 0 1 16 16ZM72 108a12 12 0 1 1 12 12a12 12 0 0 1-12-12m88 0a12 12 0 1 1 12 12a12 12 0 0 1-12-12m4 28H92a28 28 0 0 0 0 56h72a28 28 0 0 0 0-56m-24 16v24h-24v-24Zm-60 12a12 12 0 0 1 12-12h8v24h-8a12 12 0 0 1-12-12m84 12h-8v-24h8a12 12 0 0 1 0 24'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-terminal-window-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M224 56v144a8 8 0 0 1-8 8H40a8 8 0 0 1-8-8V56a8 8 0 0 1 8-8h176a8 8 0 0 1 8 8' opacity='.2'/%3E%3Cpath d='M128 128a8 8 0 0 1-3 6.25l-40 32a8 8 0 1 1-10-12.5L107.19 128L75 102.25a8 8 0 1 1 10-12.5l40 32a8 8 0 0 1 3 6.25m48 24h-40a8 8 0 0 0 0 16h40a8 8 0 0 0 0-16m56-96v144a16 16 0 0 1-16 16H40a16 16 0 0 1-16-16V56a16 16 0 0 1 16-16h176a16 16 0 0 1 16 16m-16 144V56H40v144z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-trash-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M200 56v152a8 8 0 0 1-8 8H64a8 8 0 0 1-8-8V56Z' opacity='.2'/%3E%3Cpath d='M216 48h-40v-8a24 24 0 0 0-24-24h-48a24 24 0 0 0-24 24v8H40a8 8 0 0 0 0 16h8v144a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16V64h8a8 8 0 0 0 0-16M96 40a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v8H96Zm96 168H64V64h128Zm-80-104v64a8 8 0 0 1-16 0v-64a8 8 0 0 1 16 0m48 0v64a8 8 0 0 1-16 0v-64a8 8 0 0 1 16 0'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-warning-circle-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M224 128a96 96 0 1 1-96-96a96 96 0 0 1 96 96' opacity='.2'/%3E%3Cpath d='M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24m0 192a88 88 0 1 1 88-88a88.1 88.1 0 0 1-88 88m-8-80V80a8 8 0 0 1 16 0v56a8 8 0 0 1-16 0m20 36a12 12 0 1 1-12-12a12 12 0 0 1 12 12'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-warning-octagon-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M224 91.55v72.9a8 8 0 0 1-2.34 5.66l-51.55 51.55a8 8 0 0 1-5.66 2.34h-72.9a8 8 0 0 1-5.66-2.34l-51.55-51.55a8 8 0 0 1-2.34-5.66v-72.9a8 8 0 0 1 2.34-5.66l51.55-51.55A8 8 0 0 1 91.55 32h72.9a8 8 0 0 1 5.66 2.34l51.55 51.55a8 8 0 0 1 2.34 5.66' opacity='.2'/%3E%3Cpath d='M120 136V80a8 8 0 0 1 16 0v56a8 8 0 0 1-16 0m112-44.45v72.9a15.86 15.86 0 0 1-4.69 11.31l-51.55 51.55a15.86 15.86 0 0 1-11.31 4.69h-72.9a15.86 15.86 0 0 1-11.31-4.69l-51.55-51.55A15.86 15.86 0 0 1 24 164.45v-72.9a15.86 15.86 0 0 1 4.69-11.31l51.55-51.55A15.86 15.86 0 0 1 91.55 24h72.9a15.86 15.86 0 0 1 11.31 4.69l51.55 51.55A15.86 15.86 0 0 1 232 91.55m-16 0L164.45 40h-72.9L40 91.55v72.9L91.55 216h72.9L216 164.45ZM128 160a12 12 0 1 0 12 12a12 12 0 0 0-12-12'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.badge{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight));--un-leading:var(--leading-none);line-height:var(--leading-none);--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium);padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5);border-radius:var(--radius-md);gap:calc(var(--spacing) * 1);align-items:center;display:inline-flex}.badge-active{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight));color:color-mix(in srgb, var(--colors-primary-600) var(--un-text-opacity), transparent);--un-leading:var(--leading-none);line-height:var(--leading-none);--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium);padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5);border-radius:var(--radius-md);background-color:color-mix(in oklab, #99999930 var(--un-bg-opacity), transparent);gap:calc(var(--spacing) * 1);align-items:center;display:inline-flex}.badge-muted{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight));color:color-mix(in srgb, var(--colors-neutral-600) var(--un-text-opacity), transparent);--un-leading:var(--leading-none);line-height:var(--leading-none);--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium);padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5);border-radius:var(--radius-md);background-color:color-mix(in oklab, #8881 var(--un-bg-opacity), transparent);gap:calc(var(--spacing) * 1);align-items:center;display:inline-flex}.btn-action-sm{font-size:var(--text-sm-fontSize);line-height:var(--un-leading,var(--text-sm-lineHeight));padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 1);--un-outline-style:none;border-width:1px;border-color:color-mix(in oklab, #9992 var(--un-border-opacity), transparent);border-radius:var(--radius-DEFAULT);opacity:.75;gap:calc(var(--spacing) * 2);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration));outline-style:none;align-items:center;display:flex}.badge-color-amber{color:color-mix(in srgb, var(--colors-amber-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-amber-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-amber-400) 10%, transparent)}.dark .badge-color-amber{color:color-mix(in srgb, var(--colors-amber-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-amber-300) 15%, transparent)}.badge-color-blue{color:color-mix(in srgb, var(--colors-blue-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-blue-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-blue-400) 10%, transparent)}.dark .badge-color-blue{color:color-mix(in srgb, var(--colors-blue-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-blue-300) 15%, transparent)}.badge-color-emerald{color:color-mix(in srgb, var(--colors-emerald-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-emerald-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-emerald-400) 10%, transparent)}.dark .badge-color-emerald{color:color-mix(in srgb, var(--colors-emerald-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-emerald-300) 15%, transparent)}.badge-color-green{color:color-mix(in srgb, var(--colors-green-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-green-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-green-400) 10%, transparent)}.dark .badge-color-green{color:color-mix(in srgb, var(--colors-green-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-green-300) 15%, transparent)}.badge-color-orange{color:color-mix(in srgb, var(--colors-orange-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-orange-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-orange-400) 10%, transparent)}.dark .badge-color-orange{color:color-mix(in srgb, var(--colors-orange-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-orange-300) 15%, transparent)}.badge-color-red{color:color-mix(in srgb, var(--colors-red-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-red-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-red-400) 10%, transparent)}.dark .badge-color-red{color:color-mix(in srgb, var(--colors-red-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-red-300) 15%, transparent)}.badge-color-rose{color:color-mix(in srgb, var(--colors-rose-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-rose-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-rose-400) 10%, transparent)}.dark .badge-color-rose{color:color-mix(in srgb, var(--colors-rose-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-rose-300) 15%, transparent)}.badge-color-sky{color:color-mix(in srgb, var(--colors-sky-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-sky-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-sky-400) 10%, transparent)}.dark .badge-color-sky{color:color-mix(in srgb, var(--colors-sky-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-sky-300) 15%, transparent)}.badge-color-teal{color:color-mix(in srgb, var(--colors-teal-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-teal-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-teal-400) 10%, transparent)}.dark .badge-color-teal{color:color-mix(in srgb, var(--colors-teal-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-teal-300) 15%, transparent)}.badge-color-violet{color:color-mix(in srgb, var(--colors-violet-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-violet-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-violet-400) 10%, transparent)}.dark .badge-color-violet{color:color-mix(in srgb, var(--colors-violet-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-violet-300) 15%, transparent)}.btn-primary{color:color-mix(in srgb, var(--colors-white) var(--un-text-opacity), transparent);padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 1);--un-outline-style:none;border-radius:var(--radius-DEFAULT);background-color:color-mix(in srgb, var(--colors-primary-500) var(--un-bg-opacity), transparent);gap:calc(var(--spacing) * 2);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration));border-width:1px;border-color:#0000;outline-style:none;align-items:center;display:flex}.text-micro{--un-leading:1.4;font-size:10px;line-height:1.4}.dark .badge-active,.dark .color-active,.dark .data-\[state\=active\]\:color-active[data-state=active]{color:color-mix(in srgb, var(--colors-primary-300) var(--un-text-opacity), transparent)}.dark .badge-muted,.dark .color-muted{color:color-mix(in srgb, var(--colors-neutral-400) var(--un-text-opacity), transparent)}.color-active,.data-\[state\=active\]\:color-active[data-state=active]{color:color-mix(in srgb, var(--colors-primary-600) var(--un-text-opacity), transparent)}.color-base,.data-\[state\=active\]\:color-base[data-state=active]{color:color-mix(in srgb, var(--colors-neutral-800) var(--un-text-opacity), transparent)}.dark .color-base,.dark .data-\[state\=active\]\:color-base[data-state=active]{color:color-mix(in srgb, var(--colors-neutral-200) var(--un-text-opacity), transparent)}.color-faint,.dark .color-faint{color:color-mix(in srgb, var(--colors-neutral-500) var(--un-text-opacity), transparent)}.color-muted{color:color-mix(in srgb, var(--colors-neutral-600) var(--un-text-opacity), transparent)}.dark .hover\:color-base:hover{color:color-mix(in srgb, var(--colors-neutral-200) var(--un-text-opacity), transparent)}.hover\:color-base:hover{color:color-mix(in srgb, var(--colors-neutral-800) var(--un-text-opacity), transparent)}.dark .placeholder\:color-faint::placeholder,.placeholder\:color-faint::placeholder{color:color-mix(in srgb, var(--colors-neutral-500) var(--un-text-opacity), transparent)}.btn-action{padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 1);--un-outline-style:none;border-width:1px;border-color:color-mix(in oklab, #9992 var(--un-border-opacity), transparent);border-radius:var(--radius-DEFAULT);opacity:.75;gap:calc(var(--spacing) * 2);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration));outline-style:none;align-items:center;display:flex}.btn-text{padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 1);--un-outline-style:none;border-radius:var(--radius-DEFAULT);opacity:.75;gap:calc(var(--spacing) * 2);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration));border-width:1px;border-color:#0000;outline-style:none;align-items:center;display:inline-flex}.btn-icon{--un-outline-style:none;opacity:.65;width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration));border-radius:3.40282e38px;outline-style:none;justify-content:center;align-items:center;display:flex}.btn-icon-compact{--un-outline-style:none;border-radius:var(--radius-DEFAULT);opacity:.65;width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration));outline-style:none;justify-content:center;align-items:center;display:flex}.btn-icon-square{--un-outline-style:none;border-width:1px;border-color:color-mix(in oklab, #9992 var(--un-border-opacity), transparent);border-radius:var(--radius-DEFAULT);opacity:.65;width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration));outline-style:none;justify-content:center;align-items:center;display:flex}.border-base{border-color:color-mix(in oklab, #9992 var(--un-border-opacity), transparent)}.border-base\!{border-color:color-mix(in oklab, #9992 var(--un-border-opacity), transparent)!important}.dark .focus-visible\:border-active:focus-visible{border-color:color-mix(in srgb, var(--colors-primary-400) 25%, transparent)}.focus-visible\:border-active:focus-visible{border-color:color-mix(in srgb, var(--colors-primary-600) 25%, transparent)}.bg-active{background-color:color-mix(in oklab, #99999930 var(--un-bg-opacity), transparent)}.bg-base,.data-\[state\=active\]\:bg-base[data-state=active]{background-color:color-mix(in srgb, var(--colors-white) var(--un-bg-opacity), transparent)}.dark .bg-base,.dark .data-\[state\=active\]\:bg-base[data-state=active]{background-color:color-mix(in oklab, #111 var(--un-bg-opacity), transparent)}.bg-glass{background-color:color-mix(in srgb, var(--colors-white) 65%, transparent);--un-backdrop-blur:blur(7px);-webkit-backdrop-filter:var(--un-backdrop-blur,) var(--un-backdrop-brightness,) var(--un-backdrop-contrast,) var(--un-backdrop-grayscale,) var(--un-backdrop-hue-rotate,) var(--un-backdrop-invert,) var(--un-backdrop-opacity,) var(--un-backdrop-saturate,) var(--un-backdrop-sepia,);backdrop-filter:var(--un-backdrop-blur,) var(--un-backdrop-brightness,) var(--un-backdrop-contrast,) var(--un-backdrop-grayscale,) var(--un-backdrop-hue-rotate,) var(--un-backdrop-invert,) var(--un-backdrop-opacity,) var(--un-backdrop-saturate,) var(--un-backdrop-sepia,)}.dark .bg-glass{background-color:oklab(17.7638% -2.23517e-8 0/.5)}.dark .data-\[state\=active\]\:bg-raised[data-state=active]{background-color:color-mix(in srgb, var(--colors-white) 6%, transparent)}.data-\[state\=active\]\:bg-raised[data-state=active]{background-color:color-mix(in srgb, var(--colors-white) 65%, transparent)}.bg-secondary{background-color:color-mix(in oklab, #f6f6f6 var(--un-bg-opacity), transparent)}.dark .bg-secondary{background-color:color-mix(in oklab, #101010 var(--un-bg-opacity), transparent)}.bg-sunken{background-color:color-mix(in srgb, var(--colors-black) 4%, transparent)}.dark .bg-sunken{background-color:color-mix(in srgb, var(--colors-black) 20%, transparent)}.hover\:bg-active:hover{background-color:color-mix(in oklab, #99999930 var(--un-bg-opacity), transparent)}.btn-action:hover,.btn-action-sm:hover,.btn-icon:hover,.btn-icon-compact:hover,.btn-icon-square:hover{background-color:color-mix(in oklab, #99999920 var(--un-bg-opacity), transparent);opacity:1}.btn-primary:hover{background-color:color-mix(in srgb, var(--colors-primary-600) var(--un-bg-opacity), transparent)}.btn-text:hover{background-color:color-mix(in oklab, #99999920 var(--un-bg-opacity), transparent);opacity:1}.dark .btn-icon,.dark .btn-icon-compact,.dark .btn-icon-square,.dark .op-fade{opacity:.55}.op-fade{opacity:.65}.dark .op-mute{opacity:.25}.op-mute{opacity:.3}.btn-action:disabled,.btn-action-sm:disabled{pointer-events:none;opacity:.3!important}.btn-icon:disabled,.btn-icon-compact:disabled,.btn-icon-square:disabled{opacity:.3;pointer-events:none}.btn-primary:disabled{opacity:.5;pointer-events:none}.btn-text:disabled{pointer-events:none;opacity:.3!important}.container{width:100%}.h-nav{height:calc(var(--spacing) * 10)}.btn-action:focus-visible,.btn-action-sm:focus-visible,.btn-icon:focus-visible,.btn-icon-compact:focus-visible,.btn-icon-square:focus-visible,.btn-primary:focus-visible,.btn-text:focus-visible{--un-ring-shadow:var(--un-ring-inset,) 0 0 0 calc(2px + var(--un-ring-offset-width)) var(--un-ring-color,currentColor);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);--un-ring-color:color-mix(in srgb, var(--colors-primary-500) 40%, transparent)}.z-modal-backdrop{z-index:60}.z-modal-content{z-index:70}.z-nav{z-index:30}@supports (color:color-mix(in lab, red, red)){.badge-color-amber{color:color-mix(in oklab, var(--colors-amber-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-amber-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-amber-400) 10%, transparent)}.dark .badge-color-amber{color:color-mix(in oklab, var(--colors-amber-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-amber-300) 15%, transparent)}.badge-color-blue{color:color-mix(in oklab, var(--colors-blue-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-blue-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-blue-400) 10%, transparent)}.dark .badge-color-blue{color:color-mix(in oklab, var(--colors-blue-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-blue-300) 15%, transparent)}.badge-color-emerald{color:color-mix(in oklab, var(--colors-emerald-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-emerald-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-emerald-400) 10%, transparent)}.dark .badge-color-emerald{color:color-mix(in oklab, var(--colors-emerald-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-emerald-300) 15%, transparent)}.badge-color-green{color:color-mix(in oklab, var(--colors-green-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-green-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-green-400) 10%, transparent)}.dark .badge-color-green{color:color-mix(in oklab, var(--colors-green-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-green-300) 15%, transparent)}.badge-color-orange{color:color-mix(in oklab, var(--colors-orange-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-orange-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-orange-400) 10%, transparent)}.dark .badge-color-orange{color:color-mix(in oklab, var(--colors-orange-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-orange-300) 15%, transparent)}.badge-color-red{color:color-mix(in oklab, var(--colors-red-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-red-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-red-400) 10%, transparent)}.dark .badge-color-red{color:color-mix(in oklab, var(--colors-red-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-red-300) 15%, transparent)}.badge-color-rose{color:color-mix(in oklab, var(--colors-rose-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-rose-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-rose-400) 10%, transparent)}.dark .badge-color-rose{color:color-mix(in oklab, var(--colors-rose-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-rose-300) 15%, transparent)}.badge-color-sky{color:color-mix(in oklab, var(--colors-sky-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-sky-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-sky-400) 10%, transparent)}.dark .badge-color-sky{color:color-mix(in oklab, var(--colors-sky-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-sky-300) 15%, transparent)}.badge-color-teal{color:color-mix(in oklab, var(--colors-teal-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-teal-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-teal-400) 10%, transparent)}.dark .badge-color-teal{color:color-mix(in oklab, var(--colors-teal-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-teal-300) 15%, transparent)}.badge-color-violet{color:color-mix(in oklab, var(--colors-violet-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-violet-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-violet-400) 10%, transparent)}.dark .badge-color-violet{color:color-mix(in oklab, var(--colors-violet-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-violet-300) 15%, transparent)}.btn-primary{color:color-mix(in oklab, var(--colors-white) var(--un-text-opacity), transparent);background-color:color-mix(in oklab, var(--colors-primary-500) var(--un-bg-opacity), transparent)}.badge-active{color:color-mix(in oklab, var(--colors-primary-600) var(--un-text-opacity), transparent)}.dark .badge-active{color:color-mix(in oklab, var(--colors-primary-300) var(--un-text-opacity), transparent)}.badge-muted{color:color-mix(in oklab, var(--colors-neutral-600) var(--un-text-opacity), transparent)}.dark .badge-muted{color:color-mix(in oklab, var(--colors-neutral-400) var(--un-text-opacity), transparent)}.color-active{color:color-mix(in oklab, var(--colors-primary-600) var(--un-text-opacity), transparent)}.dark .color-active,.dark .data-\[state\=active\]\:color-active[data-state=active]{color:color-mix(in oklab, var(--colors-primary-300) var(--un-text-opacity), transparent)}.data-\[state\=active\]\:color-active[data-state=active]{color:color-mix(in oklab, var(--colors-primary-600) var(--un-text-opacity), transparent)}.color-base{color:color-mix(in oklab, var(--colors-neutral-800) var(--un-text-opacity), transparent)}.dark .color-base,.dark .data-\[state\=active\]\:color-base[data-state=active]{color:color-mix(in oklab, var(--colors-neutral-200) var(--un-text-opacity), transparent)}.data-\[state\=active\]\:color-base[data-state=active]{color:color-mix(in oklab, var(--colors-neutral-800) var(--un-text-opacity), transparent)}.color-faint,.dark .color-faint{color:color-mix(in oklab, var(--colors-neutral-500) var(--un-text-opacity), transparent)}.color-muted{color:color-mix(in oklab, var(--colors-neutral-600) var(--un-text-opacity), transparent)}.dark .color-muted{color:color-mix(in oklab, var(--colors-neutral-400) var(--un-text-opacity), transparent)}.dark .hover\:color-base:hover{color:color-mix(in oklab, var(--colors-neutral-200) var(--un-text-opacity), transparent)}.hover\:color-base:hover{color:color-mix(in oklab, var(--colors-neutral-800) var(--un-text-opacity), transparent)}.dark .placeholder\:color-faint::placeholder,.placeholder\:color-faint::placeholder{color:color-mix(in oklab, var(--colors-neutral-500) var(--un-text-opacity), transparent)}.dark .focus-visible\:border-active:focus-visible{border-color:color-mix(in oklab, var(--colors-primary-400) 25%, transparent)}.focus-visible\:border-active:focus-visible{border-color:color-mix(in oklab, var(--colors-primary-600) 25%, transparent)}.bg-base,.data-\[state\=active\]\:bg-base[data-state=active]{background-color:color-mix(in oklab, var(--colors-white) var(--un-bg-opacity), transparent)}.bg-glass{background-color:color-mix(in oklab, var(--colors-white) 65%, transparent)}.dark .data-\[state\=active\]\:bg-raised[data-state=active]{background-color:color-mix(in oklab, var(--colors-white) 6%, transparent)}.data-\[state\=active\]\:bg-raised[data-state=active]{background-color:color-mix(in oklab, var(--colors-white) 65%, transparent)}.bg-sunken{background-color:color-mix(in oklab, var(--colors-black) 4%, transparent)}.dark .bg-sunken{background-color:color-mix(in oklab, var(--colors-black) 20%, transparent)}.btn-primary:hover{background-color:color-mix(in oklab, var(--colors-primary-600) var(--un-bg-opacity), transparent)}.btn-action:focus-visible,.btn-action-sm:focus-visible,.btn-icon:focus-visible,.btn-icon-compact:focus-visible,.btn-icon-square:focus-visible,.btn-primary:focus-visible,.btn-text:focus-visible{--un-ring-color:color-mix(in oklab, var(--colors-primary-500) 40%, transparent)}}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}@property --scroll-fade-t{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-b{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-s{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-e{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-mask{syntax:"*";inherits:false}@property --shimmer-angle{syntax:"<angle>";inherits:true;initial-value:20deg}@property --shimmer-image{syntax:"*";inherits:false}@property --shimmer-text-fill{syntax:"*";inherits:false}.text-4xl{font-size:var(--text-4xl-fontSize);line-height:var(--un-leading,var(--text-4xl-lineHeight))}.text-base{font-size:var(--text-base-fontSize);line-height:var(--un-leading,var(--text-base-lineHeight))}.text-lg{font-size:var(--text-lg-fontSize);line-height:var(--un-leading,var(--text-lg-lineHeight))}.text-sm{font-size:var(--text-sm-fontSize);line-height:var(--un-leading,var(--text-sm-lineHeight))}.text-xs{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight))}.dark .dark\:text-amber-300{color:color-mix(in srgb, var(--colors-amber-300) var(--un-text-opacity), transparent)}.dark .dark\:text-blue-300{color:color-mix(in srgb, var(--colors-blue-300) var(--un-text-opacity), transparent)}.dark .dark\:text-green-300{color:color-mix(in srgb, var(--colors-green-300) var(--un-text-opacity), transparent)}.dark .dark\:text-red-300{color:color-mix(in srgb, var(--colors-red-300) var(--un-text-opacity), transparent)}.text-amber-700{color:color-mix(in srgb, var(--colors-amber-700) var(--un-text-opacity), transparent)}.text-blue-700{color:color-mix(in srgb, var(--colors-blue-700) var(--un-text-opacity), transparent)}.text-error{color:color-mix(in srgb, var(--colors-error-DEFAULT) var(--un-text-opacity), transparent)}.text-green-700{color:color-mix(in srgb, var(--colors-green-700) var(--un-text-opacity), transparent)}.text-red-700{color:color-mix(in srgb, var(--colors-red-700) var(--un-text-opacity), transparent)}.font-medium{--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium)}.font-mono{font-family:var(--font-mono)}.font-semibold{--un-font-weight:var(--fontWeight-semibold);font-weight:var(--fontWeight-semibold)}.tab{tab-size:4}.m\[2\]{margin:2px}.m\[3\]{margin:3px}.m\[4\]{margin:4px}.m\[5\]{margin:5px}.m\[6\]{margin:6px}.m\[7\]{margin:7px}.-mb-px{margin-bottom:-1px}.me{margin-inline-end:calc(var(--spacing) * 4)}.ml{margin-left:calc(var(--spacing) * 4)}.ms{margin-inline-start:calc(var(--spacing) * 4)}.mt{margin-top:calc(var(--spacing) * 4)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.p-\[0\.25em\]{padding:.25em}.p-\[0\.5em\]{padding:.5em}.p-1,.p1{padding:calc(var(--spacing) * 1)}.p-3,.p3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-8{padding:calc(var(--spacing) * 8)}.p\[i\]{padding:i}.p\[v\]{padding:v}.p\$1{padding:var(--1)}.p\$1\){padding:var(--1\))}.p0{padding:calc(var(--spacing) * 0)}.p2{padding:calc(var(--spacing) * 2)}.px{padding-inline:calc(var(--spacing) * 4)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2,.px2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-2\.5\!{padding-inline:calc(var(--spacing) * 2.5)!important}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4\!{padding-inline:calc(var(--spacing) * 4)!important}.py-1,.py1{padding-block:calc(var(--spacing) * 1)}.py-1\!{padding-block:calc(var(--spacing) * 1)!important}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\!{padding-block:calc(var(--spacing) * 2)!important}.py-3{padding-block:calc(var(--spacing) * 3)}.pl{padding-left:calc(var(--spacing) * 4)}.pt{padding-top:calc(var(--spacing) * 4)}.text-center{text-align:center}.outline{outline-style:var(--un-outline-style);outline-width:1px}.outline-none{--un-outline-style:none;outline-style:none}.b,.border{border-width:1px}.border-b{border-bottom-width:1px}.border-2{border-width:2px}.border-amber-500\/20{border-color:color-mix(in srgb, var(--colors-amber-500) 20%, transparent)}.border-blue-500\/20{border-color:color-mix(in srgb, var(--colors-blue-500) 20%, transparent)}.border-current{border-color:currentColor}.border-error\/30\!{border-color:color-mix(in srgb, var(--colors-error-DEFAULT) 30%, transparent)!important}.border-green-500\/20{border-color:color-mix(in srgb, var(--colors-green-500) 20%, transparent)}.border-red-500\/20{border-color:color-mix(in srgb, var(--colors-red-500) 20%, transparent)}.border-transparent{border-color:#0000}.dark .dark\:data-\[state\=active\]\:border-primary-400[data-state=active]{border-color:color-mix(in srgb, var(--colors-primary-400) var(--un-border-opacity), transparent)}.data-\[state\=active\]\:border-primary-500[data-state=active]{border-color:color-mix(in srgb, var(--colors-primary-500) var(--un-border-opacity), transparent)}.border-b-2{border-bottom-width:2px}.border-t-transparent{border-top-color:#0000}.rd,.rounded{border-radius:var(--radius-DEFAULT)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.bg-amber-400\/10{background-color:color-mix(in srgb, var(--colors-amber-400) 10%, transparent)}.bg-black\/40{background-color:color-mix(in srgb, var(--colors-black) 40%, transparent)}.bg-blue-400\/10{background-color:color-mix(in srgb, var(--colors-blue-400) 10%, transparent)}.bg-error{background-color:color-mix(in srgb, var(--colors-error-DEFAULT) var(--un-bg-opacity), transparent)}.bg-green-400\/10{background-color:color-mix(in srgb, var(--colors-green-400) 10%, transparent)}.bg-neutral-400{background-color:color-mix(in srgb, var(--colors-neutral-400) var(--un-bg-opacity), transparent)}.bg-primary-500{background-color:color-mix(in srgb, var(--colors-primary-500) var(--un-bg-opacity), transparent)}.bg-red-400\/10{background-color:color-mix(in srgb, var(--colors-red-400) 10%, transparent)}.bg-success{background-color:color-mix(in srgb, var(--colors-success-DEFAULT) var(--un-bg-opacity), transparent)}.bg-warning{background-color:color-mix(in srgb, var(--colors-warning-DEFAULT) var(--un-bg-opacity), transparent)}.op100{opacity:1}.op100\!{opacity:1!important}.op75{opacity:.75}.hover\:op100:hover{opacity:1}.disabled\:op30\!:disabled{opacity:.3!important}.disabled\:op50:disabled{opacity:.5}.underline,.hover\:underline:hover{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.flex{display:flex}.inline-flex{display:inline-flex}.flex-1{flex:1}.shrink-0{flex-shrink:0}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.grid{display:grid}.inline-grid{display:inline-grid}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.h-0\.5{height:calc(var(--spacing) * .5)}.h-5{height:calc(var(--spacing) * 5)}.h-7\!{height:calc(var(--spacing) * 7)!important}.h-8{height:calc(var(--spacing) * 8)}.h-auto\!{height:auto!important}.h-full{height:100%}.h\$1{height:var(--1)}.h11{height:calc(var(--spacing) * 11)}.h12{height:calc(var(--spacing) * 12)}.h2{height:calc(var(--spacing) * 2)}.h23{height:calc(var(--spacing) * 23)}.h24{height:calc(var(--spacing) * 24)}.h3{height:calc(var(--spacing) * 3)}.h4{height:calc(var(--spacing) * 4)}.max-w-52{max-width:calc(var(--spacing) * 52)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-5{min-width:calc(var(--spacing) * 5)}.w-\[--reka-tabs-indicator-size\]{width:var(--reka-tabs-indicator-size)}.w-7\!{width:calc(var(--spacing) * 7)!important}.w-auto\!{width:auto!important}.w-full{width:100%}.w-max{width:max-content}.inline{display:inline}.block{display:block}.inline-block{display:inline-block}.contents{display:contents}.hidden{display:none}.visible{visibility:visible}.collapse{visibility:collapse}.cursor-pointer{cursor:pointer}.pointer-events-none,.disabled\:pointer-events-none:disabled{pointer-events:none}.resize{resize:both}.select-none{-webkit-user-select:none;user-select:none}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.text-wrap{text-wrap:wrap}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.ring{--un-ring-shadow:var(--un-ring-inset,) 0 0 0 calc(1px + var(--un-ring-offset-width)) var(--un-ring-color,currentColor);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.focus-visible\:ring-2:focus-visible{--un-ring-shadow:var(--un-ring-inset,) 0 0 0 calc(2px + var(--un-ring-offset-width)) var(--un-ring-color,currentColor);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.focus-visible\:ring-primary-500\/40:focus-visible{--un-ring-color:color-mix(in srgb, var(--colors-primary-500) 40%, transparent)}.data-\[state\=active\]\:shadow-sm[data-state=active],.shadow,.shadow-sm{--un-shadow:0 1px 3px 0 var(--un-shadow-color,#0000001a),0 1px 2px -1px var(--un-shadow-color,#0000001a);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.shadow-lg{--un-shadow:0 10px 15px -3px var(--un-shadow-color,#0000001a),0 4px 6px -4px var(--un-shadow-color,#0000001a);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.translate-x-\[--reka-tabs-indicator-position\]{--un-translate-x:var(--reka-tabs-indicator-position);translate:var(--un-translate-x) var(--un-translate-y)}.transform{transform:var(--un-rotate-x) var(--un-rotate-y) var(--un-rotate-z) var(--un-skew-x) var(--un-skew-y)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration))}.duration-200{--un-duration:.2s;transition-duration:.2s}.ease{--un-ease:var(--ease-DEFAULT);transition-timing-function:var(--ease-DEFAULT)}.items-center{align-items:center}.inset-0{inset:calc(var(--spacing) * 0)}.bottom-0{bottom:calc(var(--spacing) * 0)}.left-0{left:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.justify-center{justify-content:center}.place-items-center{place-items:center}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.static{position:static}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.animate-spin{animation:1s linear infinite spin}.isolate{isolation:isolate}.h-svh{height:100svh}.backdrop-blur-sm{--un-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--un-backdrop-blur,) var(--un-backdrop-brightness,) var(--un-backdrop-contrast,) var(--un-backdrop-grayscale,) var(--un-backdrop-hue-rotate,) var(--un-backdrop-invert,) var(--un-backdrop-opacity,) var(--un-backdrop-saturate,) var(--un-backdrop-sepia,);backdrop-filter:var(--un-backdrop-blur,) var(--un-backdrop-brightness,) var(--un-backdrop-contrast,) var(--un-backdrop-grayscale,) var(--un-backdrop-hue-rotate,) var(--un-backdrop-invert,) var(--un-backdrop-opacity,) var(--un-backdrop-saturate,) var(--un-backdrop-sepia,)}.blur{--un-blur:blur(8px);filter:var(--un-blur,) var(--un-brightness,) var(--un-contrast,) var(--un-grayscale,) var(--un-hue-rotate,) var(--un-invert,) var(--un-saturate,) var(--un-sepia,) var(--un-drop-shadow,)}.filter{filter:var(--un-blur,) var(--un-brightness,) var(--un-contrast,) var(--un-grayscale,) var(--un-hue-rotate,) var(--un-invert,) var(--un-saturate,) var(--un-sepia,) var(--un-drop-shadow,)}.table{display:table}.tabular-nums{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal,) var(--un-slashed-zero,) var(--un-numeric-figure,) var(--un-numeric-spacing,) var(--un-numeric-fraction,)}@supports (color:color-mix(in lab, red, red)){.dark .dark\:text-amber-300{color:color-mix(in oklab, var(--colors-amber-300) var(--un-text-opacity), transparent)}.dark .dark\:text-blue-300{color:color-mix(in oklab, var(--colors-blue-300) var(--un-text-opacity), transparent)}.dark .dark\:text-green-300{color:color-mix(in oklab, var(--colors-green-300) var(--un-text-opacity), transparent)}.dark .dark\:text-red-300{color:color-mix(in oklab, var(--colors-red-300) var(--un-text-opacity), transparent)}.text-amber-700{color:color-mix(in oklab, var(--colors-amber-700) var(--un-text-opacity), transparent)}.text-blue-700{color:color-mix(in oklab, var(--colors-blue-700) var(--un-text-opacity), transparent)}.text-error{color:color-mix(in oklab, var(--colors-error-DEFAULT) var(--un-text-opacity), transparent)}.text-green-700{color:color-mix(in oklab, var(--colors-green-700) var(--un-text-opacity), transparent)}.text-red-700{color:color-mix(in oklab, var(--colors-red-700) var(--un-text-opacity), transparent)}.border-amber-500\/20{border-color:color-mix(in oklab, var(--colors-amber-500) 20%, transparent)}.border-blue-500\/20{border-color:color-mix(in oklab, var(--colors-blue-500) 20%, transparent)}.border-error\/30\!{border-color:color-mix(in oklab, var(--colors-error-DEFAULT) 30%, transparent)!important}.border-green-500\/20{border-color:color-mix(in oklab, var(--colors-green-500) 20%, transparent)}.border-red-500\/20{border-color:color-mix(in oklab, var(--colors-red-500) 20%, transparent)}.dark .dark\:data-\[state\=active\]\:border-primary-400[data-state=active]{border-color:color-mix(in oklab, var(--colors-primary-400) var(--un-border-opacity), transparent)}.data-\[state\=active\]\:border-primary-500[data-state=active]{border-color:color-mix(in oklab, var(--colors-primary-500) var(--un-border-opacity), transparent)}.bg-amber-400\/10{background-color:color-mix(in oklab, var(--colors-amber-400) 10%, transparent)}.bg-black\/40{background-color:color-mix(in oklab, var(--colors-black) 40%, transparent)}.bg-blue-400\/10{background-color:color-mix(in oklab, var(--colors-blue-400) 10%, transparent)}.bg-error{background-color:color-mix(in oklab, var(--colors-error-DEFAULT) var(--un-bg-opacity), transparent)}.bg-green-400\/10{background-color:color-mix(in oklab, var(--colors-green-400) 10%, transparent)}.bg-neutral-400{background-color:color-mix(in oklab, var(--colors-neutral-400) var(--un-bg-opacity), transparent)}.bg-primary-500{background-color:color-mix(in oklab, var(--colors-primary-500) var(--un-bg-opacity), transparent)}.bg-red-400\/10{background-color:color-mix(in oklab, var(--colors-red-400) 10%, transparent)}.bg-success{background-color:color-mix(in oklab, var(--colors-success-DEFAULT) var(--un-bg-opacity), transparent)}.bg-warning{background-color:color-mix(in oklab, var(--colors-warning-DEFAULT) var(--un-bg-opacity), transparent)}.focus-visible\:ring-primary-500\/40:focus-visible{--un-ring-color:color-mix(in oklab, var(--colors-primary-500) 40%, transparent)}}.v-popper__popper{z-index:10000;outline:none;top:0;left:0}.v-popper__popper.v-popper__popper--hidden{visibility:hidden;opacity:0;pointer-events:none;transition:opacity .15s,visibility .15s}.v-popper__popper.v-popper__popper--shown{visibility:visible;opacity:1;transition:opacity .15s}.v-popper__popper.v-popper__popper--skip-transition,.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper{transition:none!important}.v-popper__backdrop{width:100%;height:100%;display:none;position:absolute;top:0;left:0}.v-popper__inner{box-sizing:border-box;position:relative;overflow-y:auto}.v-popper__inner>div{z-index:1;max-width:inherit;max-height:inherit;position:relative}.v-popper__arrow-container{width:10px;height:10px;position:absolute}.v-popper__popper--arrow-overflow .v-popper__arrow-container,.v-popper__popper--no-positioning .v-popper__arrow-container{display:none}.v-popper__arrow-inner,.v-popper__arrow-outer{border-style:solid;width:0;height:0;position:absolute;top:0;left:0}.v-popper__arrow-inner{visibility:hidden;border-width:7px}.v-popper__arrow-outer{border-width:6px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{left:-2px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{left:-1px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer{border-bottom-width:0;border-bottom-color:#0000!important;border-left-color:#0000!important;border-right-color:#0000!important}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:0}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{border-top-width:0;border-top-color:#0000!important;border-left-color:#0000!important;border-right-color:#0000!important}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{top:-4px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{top:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{top:-1px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{border-left-width:0;border-top-color:#0000!important;border-bottom-color:#0000!important;border-left-color:#0000!important}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{left:-4px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{left:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer{border-right-width:0;border-top-color:#0000!important;border-bottom-color:#0000!important;border-right-color:#0000!important}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner{left:-2px}.v-popper--theme-tooltip .v-popper__inner{color:#fff;background:#000c;border-radius:6px;padding:7px 12px 6px}.v-popper--theme-tooltip .v-popper__arrow-outer{border-color:#000c}.v-popper--theme-dropdown .v-popper__inner{color:#000;background:#fff;border:1px solid #ddd;border-radius:6px;box-shadow:0 6px 30px #0000001a}.v-popper--theme-dropdown .v-popper__arrow-inner{visibility:visible;border-color:#fff}.v-popper--theme-dropdown .v-popper__arrow-outer{border-color:#ddd}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html.dark .dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:color-mix(in srgb, var(--colors-neutral-200) var(--un-text-opacity), transparent)}@supports (color:color-mix(in lab, red, red)){html.dark .dark{color:color-mix(in oklab, var(--colors-neutral-200) var(--un-text-opacity), transparent)}}html.light .light{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:color-mix(in srgb, var(--colors-neutral-800) var(--un-text-opacity), transparent)}@supports (color:color-mix(in lab, red, red)){html.light .light{color:color-mix(in oklab, var(--colors-neutral-800) var(--un-text-opacity), transparent)}}html,body{color:color-mix(in srgb, var(--colors-neutral-800) var(--un-text-opacity), transparent);background-color:color-mix(in srgb, var(--colors-white) var(--un-bg-opacity), transparent)}@supports (color:color-mix(in lab, red, red)){html,body{color:color-mix(in oklab, var(--colors-neutral-800) var(--un-text-opacity), transparent);background-color:color-mix(in oklab, var(--colors-white) var(--un-bg-opacity), transparent)}}.dark html,.dark body{color:color-mix(in srgb, var(--colors-neutral-200) var(--un-text-opacity), transparent);background-color:color-mix(in oklab, #111 var(--un-bg-opacity), transparent)}@supports (color:color-mix(in lab, red, red)){.dark html,.dark body{color:color-mix(in oklab, var(--colors-neutral-200) var(--un-text-opacity), transparent)}}*{scrollbar-width:thin;scrollbar-color:#88888859 transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#8888884d;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#88888880}@keyframes af-spin{to{transform:rotate(360deg)}}@keyframes af-spin-reverse{to{transform:rotate(-360deg)}}.af-spin{animation:1s linear infinite af-spin}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:9999}html.dark::view-transition-old(root){z-index:9999}html.dark::view-transition-new(root){z-index:1}@media (prefers-reduced-motion:reduce){::view-transition-old(root){animation:none!important}::view-transition-new(root){animation:none!important}}[data-reka-popper-content-wrapper]{z-index:70}[data-af-animate][data-state=open]{animation:.15s both af-fade-in}[data-af-animate][data-state=closed]{animation:.15s both af-fade-out}[data-af-modal][data-state=open]{animation:.18s cubic-bezier(.16,1,.3,1) both af-modal-in}[data-af-modal][data-state=closed]{animation:.15s both af-modal-out}[data-af-drawer]{animation-duration:.22s;animation-timing-function:cubic-bezier(.32,.72,0,1);animation-fill-mode:both}[data-af-drawer][data-side=right]{animation-name:af-slide-right}[data-af-drawer][data-side=left]{animation-name:af-slide-left}[data-af-drawer][data-side=top]{animation-name:af-slide-top}[data-af-drawer][data-side=bottom]{animation-name:af-slide-bottom}[data-af-drawer][data-state=closed]{animation-direction:reverse}@keyframes af-fade-in{0%{opacity:0}}@keyframes af-fade-out{to{opacity:0}}@keyframes af-modal-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes af-modal-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}@keyframes af-slide-right{0%{transform:translate(100%)}}@keyframes af-slide-left{0%{transform:translate(-100%)}}@keyframes af-slide-top{0%{transform:translateY(-100%)}}@keyframes af-slide-bottom{0%{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){[data-af-animate],[data-af-modal],[data-af-drawer]{animation:none!important}}.v-popper__popper .v-popper__inner{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight));color:color-mix(in srgb, var(--colors-neutral-800) var(--un-text-opacity), transparent);padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 1);border-width:1px;border-color:color-mix(in oklab, #9992 var(--un-border-opacity), transparent);border-radius:var(--radius-md);background-color:color-mix(in srgb, var(--colors-white) 75%, transparent);--un-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--un-backdrop-blur,) var(--un-backdrop-brightness,) var(--un-backdrop-contrast,) var(--un-backdrop-grayscale,) var(--un-backdrop-hue-rotate,) var(--un-backdrop-invert,) var(--un-backdrop-opacity,) var(--un-backdrop-saturate,) var(--un-backdrop-sepia,);backdrop-filter:var(--un-backdrop-blur,) var(--un-backdrop-brightness,) var(--un-backdrop-contrast,) var(--un-backdrop-grayscale,) var(--un-backdrop-hue-rotate,) var(--un-backdrop-invert,) var(--un-backdrop-opacity,) var(--un-backdrop-saturate,) var(--un-backdrop-sepia,);box-shadow:0 4px 16px #0000001f}@supports (color:color-mix(in lab, red, red)){.v-popper__popper .v-popper__inner{color:color-mix(in oklab, var(--colors-neutral-800) var(--un-text-opacity), transparent);background-color:color-mix(in oklab, var(--colors-white) 75%, transparent)}}.dark .v-popper__popper .v-popper__inner{color:color-mix(in srgb, var(--colors-neutral-200) var(--un-text-opacity), transparent);background-color:oklab(17.7638% -2.23517e-8 0/.75)}@supports (color:color-mix(in lab, red, red)){.dark .v-popper__popper .v-popper__inner{color:color-mix(in oklab, var(--colors-neutral-200) var(--un-text-opacity), transparent)}}.v-popper__popper .v-popper__arrow-outer{border-color:color-mix(in oklab, #9992 var(--un-border-opacity), transparent)}.v-popper__popper .v-popper__arrow-inner{border-color:color-mix(in srgb, var(--colors-white) 75%, transparent);visibility:visible}@supports (color:color-mix(in lab, red, red)){.v-popper__popper .v-popper__arrow-inner{border-color:color-mix(in oklab, var(--colors-white) 75%, transparent)}}.dark .v-popper__popper .v-popper__arrow-inner{border-color:oklab(17.7638% -2.23517e-8 0/.75)}.v-popper--theme-dropdown .v-popper__inner{padding:calc(var(--spacing) * 1)}.splitpanes{width:100%;height:100%;display:flex}.splitpanes--vertical{flex-direction:row}.splitpanes--horizontal{flex-direction:column}.splitpanes--dragging *{-webkit-user-select:none;user-select:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--vertical>.splitpanes__pane{transition:width .2s ease-out}.splitpanes--horizontal>.splitpanes__pane{transition:height .2s ease-out}.splitpanes--dragging>.splitpanes__pane{pointer-events:none;transition:none}.splitpanes__splitter{touch-action:none;background-color:color-mix(in oklab, #8882 var(--un-bg-opacity), transparent);transition:background-color .2s;position:relative}.splitpanes__splitter:hover{background-color:color-mix(in oklab, #8886 var(--un-bg-opacity), transparent)}.splitpanes--vertical>.splitpanes__splitter{cursor:col-resize;min-width:1px}.splitpanes--horizontal>.splitpanes__splitter{cursor:row-resize;min-height:1px}.splitpanes__splitter:before{content:"";z-index:1;position:absolute;inset:-4px}:root{--df-radius:.5rem;--df-bg:#fff;--df-bg-soft:#f5f5f5;--df-bg-active:#8881;--df-border:#88888821;--df-border-soft:#8881;--df-fg:#262626;--df-fg-dim:#525252;--df-fg-faint:#737373;--df-accent:#3a6a45;--df-accent-dim:#3a6a4538;--df-danger:#e11d48;--df-mono:ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace;--df-sans:var(--font-sans,"DM Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);--df-query:#2563c9;--df-static:#8a45c9;--df-action:#b9701f;--df-event:#c43d75;--df-string:#1f8a52;--df-number:#9a6315;--df-boolean:#7a32bf;--df-null:#93a0ad;--df-key:#2a5fa6}.dark{--df-bg:#111;--df-bg-soft:#1a1a1a;--df-fg:#e5e5e5;--df-fg-dim:#a3a3a3;--df-fg-faint:#737373;--df-accent:#6fb07d;--df-accent-dim:#6fb07d38;--df-danger:#fb7185;--df-query:#6ea8fe;--df-static:#c792ea;--df-action:#ffb08f;--df-event:#e06b9b;--df-string:#95d6a4;--df-number:#e6b673;--df-boolean:#d39bf0;--df-null:#76828f;--df-key:#7fb0e8}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{background:var(--df-bg);color:var(--df-fg);font-family:var(--df-sans);-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.45}button{cursor:pointer;font-family:inherit}code,.mono{font-family:var(--df-mono)}input,textarea{color:inherit;font-family:inherit}.app{flex-direction:column;height:100%;display:flex;overflow:hidden}.app-body{flex:1;min-height:0;overflow:hidden}.center{height:100%;color:var(--df-fg-dim);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:20px;display:flex}.pane{height:100%;overflow:auto}.toolbar{background:var(--df-bg);border-bottom:1px solid var(--df-border-soft);z-index:2;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;display:flex;position:sticky;top:0}.search{border:1px solid var(--df-border);border-radius:var(--df-radius);background:0 0;flex:1;align-items:center;gap:7px;min-width:180px;padding:5px 10px;display:flex}.search:focus-within{border-color:var(--df-accent)}.search input{background:0 0;border:none;outline:none;flex:1;font-size:12.5px}.search svg{color:var(--df-fg-faint);flex-shrink:0}.muted{color:var(--df-fg-dim);font-size:11.5px}.checkbox{color:var(--df-fg-dim);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:5px;font-size:11.5px;display:inline-flex}.badge{font-size:10.5px;font-weight:600;font-family:var(--df-mono);background:var(--df-bg-active);color:var(--df-fg-dim);border:1px solid var(--df-border);letter-spacing:.02em;border-radius:100px;padding:1px 7px;display:inline-block}.badge.query{color:var(--df-query)}.badge.static{color:var(--df-static)}.badge.action{color:var(--df-action)}.badge.event{color:var(--df-event)}.badge.flag{color:var(--df-fg-faint);background:0 0;font-weight:500}.badge.agent{color:var(--df-accent);border-color:var(--df-accent-dim)}.badge.safety-destructive{color:var(--df-danger)}.fn-list{padding:8px 14px 14px}.fn-row{border-top:1px solid var(--df-border-soft)}.fn-head{cursor:default;align-items:center;gap:10px;padding:8px 6px;display:flex}.fn-head.clickable{cursor:pointer}.fn-head.clickable:hover{background:var(--df-bg-soft)}.fn-name{font-family:var(--df-mono);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12.5px;overflow:hidden}.fn-name .ns-seg{color:var(--df-fg)}.fn-name .ns-sep{color:var(--df-fg-faint)}.fn-flags{flex-shrink:0;align-items:center;gap:5px;display:flex}.chev{color:var(--df-fg-faint);flex-shrink:0;width:14px;transition:transform .15s}.chev.open{transform:rotate(90deg)}.fn-detail{background:var(--df-bg-soft);border-top:1px solid var(--df-border-soft);padding:4px 12px 14px 30px}.fn-detail .desc{color:var(--df-fg-dim);margin:8px 0;font-size:12px}.label{text-transform:uppercase;letter-spacing:.06em;color:var(--df-fg-faint);margin:12px 0 5px;font-size:10.5px;font-weight:600}textarea.args{resize:vertical;background:var(--df-bg);border:1px solid var(--df-border);border-radius:var(--df-radius);width:100%;min-height:58px;font-family:var(--df-mono);outline:none;padding:8px 10px;font-size:12px}textarea.args:focus{border-color:var(--df-accent)}.result{border:1px solid var(--df-border);border-radius:var(--df-radius);background:var(--df-bg);margin-top:10px;padding:10px 12px}.result-head{align-items:center;gap:8px;margin-bottom:6px;font-size:11.5px;display:flex}.result-head .ok{color:var(--df-accent);font-weight:600}.result-head .fail{color:var(--df-danger);font-weight:600}.note{color:var(--df-fg-faint);font-size:11.5px;font-style:italic}.cmd-icon{color:var(--df-fg-dim);flex-shrink:0}.cmd-title{flex-shrink:0;font-size:12.5px;font-weight:600}.cmd-id{color:var(--df-fg-faint);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:11px;overflow:hidden}.cmd-row-child .fn-head{padding-left:22px}.cmd-children{border-left:1px solid var(--df-border-soft);margin-left:5px;padding-left:16px}.cmd-children .fn-row{border-top:none;border-bottom:1px solid var(--df-border-soft)}.cmd-children .fn-row:last-child{border-bottom:none}.split{height:100%;display:flex;overflow:hidden}.keys{border-right:1px solid var(--df-border);background:var(--df-bg-soft);flex-direction:column;flex-shrink:0;width:260px;display:flex;overflow:hidden}.keys-head{border-bottom:1px solid var(--df-border-soft);color:var(--df-fg-dim);justify-content:space-between;align-items:center;padding:9px 12px;font-size:11px;display:flex}.keys-list{flex:1;overflow:auto}.key-item{text-align:left;width:100%;color:var(--df-fg-dim);font-family:var(--df-mono);border:none;border-bottom:1px solid var(--df-border-soft);text-overflow:ellipsis;white-space:nowrap;background:0 0;padding:8px 12px;font-size:11.5px;transition:background .1s;display:block;overflow:hidden}.key-item:hover{background:var(--df-bg-active)}.key-item.active{background:var(--df-bg-active);color:var(--df-accent);box-shadow:inset 2px 0 0 var(--df-accent)}.state-main{flex:1;min-width:0;padding:14px 16px;overflow:auto}.state-meta{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.state-key{font-family:var(--df-mono);color:var(--df-accent);font-size:13px}.pulse{color:var(--df-accent);font-size:11px}.json{font-family:var(--df-mono);font-size:12px;line-height:1.6}.json-row{border-radius:4px;align-items:flex-start;padding:0 3px;display:flex}.json-toggle{cursor:pointer;-webkit-user-select:none;user-select:none}.json-toggle:hover{background:var(--df-bg-active)}.json-caret{width:12px;color:var(--df-fg-faint);flex-shrink:0;transition:transform .12s;display:inline-block}.json-caret.open{transform:rotate(90deg)}.json-key{color:var(--df-key)}.json-colon{color:var(--df-fg-faint);margin:0 5px 0 1px}.json-children{border-left:1px solid var(--df-border-soft);margin-left:5px;padding-left:16px}.json-meta{color:var(--df-fg-faint);font-size:11px}.v-string{color:var(--df-string)}.v-number{color:var(--df-number)}.v-boolean{color:var(--df-boolean)}.v-null{color:var(--df-null);font-style:italic}.json-row.changed{background:var(--df-accent-dim);animation:1.6s ease-out forwards fade-change}@keyframes fade-change{0%{background:var(--df-accent-dim)}to{background:0 0}}.cards{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;padding:12px 14px;display:grid}.card{border:1px solid var(--df-border);border-radius:var(--df-radius);background:var(--df-bg-soft);padding:12px 13px}.card-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.card-title{font-size:13px;font-weight:600}.card .id{font-family:var(--df-mono);color:var(--df-fg-faint);word-break:break-all;font-size:11px}.card .id-note{font-family:var(--df-mono);color:var(--df-fg-faint);opacity:.7;word-break:break-all;margin-top:1px;font-size:10px}.card .desc{color:var(--df-fg-dim);margin:7px 0;font-size:12px}.tags{flex-wrap:wrap;gap:5px;margin-top:6px;display:flex}.section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--df-fg-faint);padding:14px 14px 0;font-size:11px;font-weight:600}.empty{color:var(--df-fg-faint);padding:14px;font-style:italic}.inst-url{max-width:100%;font-family:var(--df-mono);color:var(--df-accent);align-items:center;gap:6px;margin-top:8px;font-size:12px;text-decoration:none;display:inline-flex}.inst-url:hover{text-decoration:underline}.inst-url-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.inst-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px;margin:12px 0 0;display:grid}.inst-meta>div{min-width:0}.inst-meta-wide{grid-column:1/-1}.inst-meta dt{text-transform:uppercase;letter-spacing:.06em;color:var(--df-fg-faint);font-size:10.5px;font-weight:600}.inst-meta dd{font-family:var(--df-mono);color:var(--df-fg-dim);text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;font-size:12px;overflow:hidden}.inst-empty{text-align:center;max-width:560px;color:var(--df-fg-dim);margin:0 auto;padding:40px 20px}.inst-empty p{margin:8px 0 0;font-size:12.5px;line-height:1.55}.inst-empty-icon{color:var(--df-fg-faint);font-size:32px}.inst-empty-title{color:var(--df-fg);font-size:14px;font-weight:600;margin-top:10px!important}.inst-empty code,.toolbar code{font-family:var(--df-mono);background:var(--df-bg-active);color:var(--df-fg-dim);border-radius:4px;padding:1px 5px;font-size:.92em}
@@ -5,4 +5,4 @@ var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],en
5
5
  `)].join(`
6
6
  `))}return()=>i.value||r.value||o.value?X(t.default({present:o.value})[0],{ref:e=>{let t=Dp(e);return t?.hasAttribute===void 0||(t?.hasAttribute(`data-reka-popper-content-wrapper`)?a.value=t.firstElementChild:a.value=t),t}}):null}}),Wp=R({name:`PrimitiveSlot`,inheritAttrs:!1,setup(e,{attrs:t,slots:n}){return()=>{if(!n.default)return null;let e=Np(n.default()),r=e.findIndex(e=>e.type!==V);if(r===-1)return e;let i=e[r];delete i.props?.ref;let a=i.props?Ts(t,i.props):t,o=bs({...i,props:{}},a);return e.length===1?o:(e[r]=o,e)}}}),Gp=[`area`,`img`,`input`],Kp=R({name:`Primitive`,inheritAttrs:!1,props:{asChild:{type:Boolean,default:!1},as:{type:[String,Object],default:`div`}},setup(e,{attrs:t,slots:n}){let r=e.asChild?`template`:e.as;return typeof r==`string`&&Gp.includes(r)?()=>X(r,t):r===`template`?()=>X(Wp,t,{default:n.default}):()=>X(e.as,t,{default:n.default})}});function qp(){let e=F();return{primitiveElement:e,currentElement:Y(()=>[`#text`,`#comment`].includes(e.value?.$el.nodeName)?e.value?.$el.nextElementSibling:Dp(e))}}var Jp=`data-reka-collection-item`;function Yp(e={}){let{key:t=``,isProvider:n=!1}=e,r=`${t}CollectionProvider`,i;n?(i={collectionRef:F(),itemMap:F(new Map)},gr(r,i)):i=_r(r);let a=(e=!1)=>{let t=i.collectionRef.value;if(!t)return[];let n=Array.from(t.querySelectorAll(`[${Jp}]`)),r=new Map(n.map((e,t)=>[e,t])),a=Array.from(i.itemMap.value.values()).sort((e,t)=>(r.get(e.ref)??-1)-(r.get(t.ref)??-1));return e?a:a.filter(e=>e.ref.dataset.disabled!==``)},o=R({name:`CollectionSlot`,inheritAttrs:!1,setup(e,{slots:t,attrs:n}){let{primitiveElement:r,currentElement:a}=qp();return wr(a,()=>{i.collectionRef.value=a.value}),()=>X(Wp,{ref:r,...n},t)}}),s=R({name:`CollectionItem`,inheritAttrs:!1,props:{value:{validator:()=>!0}},setup(e,{slots:t,attrs:n}){let{primitiveElement:r,currentElement:a}=qp();return xr(t=>{if(a.value){let n=an(a.value);i.itemMap.value.set(n,{ref:a.value,value:e.value}),t(()=>i.itemMap.value.delete(n))}}),()=>X(Wp,{...n,[Jp]:``,ref:r},t)}});return{getItems:a,reactiveItems:Y(()=>Array.from(i.itemMap.value.values())),itemMapSize:Y(()=>i.itemMap.value.size),CollectionSlot:o,CollectionItem:s}}var Xp=`rovingFocusGroup.onEntryFocus`,Zp={bubbles:!1,cancelable:!0},Qp={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function $p(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function em(e,t,n){let r=$p(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return Qp[r]}function tm(e,t=!1){let n=Sp();for(let r of e)if(r===n||(r.focus({preventScroll:t}),Sp()!==n))return}function nm(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var[rm,im]=xp(`RovingFocusGroup`),am=R({__name:`RovingFocusGroup`,props:{orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!1},currentTabStopId:{type:[String,null],required:!1},defaultCurrentTabStopId:{type:String,required:!1},preventScrollOnEntryFocus:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`entryFocus`,`update:currentTabStopId`],setup(e,{expose:t,emit:n}){let r=e,i=n,{loop:a,orientation:o,dir:s}=_n(r),c=Ip(s),l=Mp(r,`currentTabStopId`,i,{defaultValue:r.defaultCurrentTabStopId,passive:r.currentTabStopId===void 0}),u=F(!1),d=F(!1),f=F(0),{getItems:p,CollectionSlot:m}=Yp({isProvider:!0});function h(e){let t=!d.value;if(e.currentTarget&&e.target===e.currentTarget&&t&&!u.value){let t=new CustomEvent(Xp,Zp);if(e.currentTarget.dispatchEvent(t),i(`entryFocus`,t),!t.defaultPrevented){let e=p().map(e=>e.ref).filter(e=>e.dataset.disabled!==``);tm([e.find(e=>e.getAttribute(`data-active`)===``),e.find(e=>e.getAttribute(`data-highlighted`)===``),e.find(e=>e.id===l.value),...e].filter(Boolean),r.preventScrollOnEntryFocus)}}d.value=!1}function g(){setTimeout(()=>{d.value=!1},1)}return t({getItems:p}),im({loop:a,dir:c,orientation:o,currentTabStopId:l,onItemFocus:e=>{l.value=e},onItemShiftTab:()=>{u.value=!0},onFocusableItemAdd:()=>{f.value++},onFocusableItemRemove:()=>{f.value--}}),(e,t)=>(H(),W(I(m),null,{default:L(()=>[K(I(Kp),{tabindex:u.value||f.value===0?-1:0,"data-orientation":I(o),as:e.as,"as-child":e.asChild,dir:I(c),style:{outline:`none`},onMousedown:t[0]||=e=>d.value=!0,onMouseup:g,onFocus:h,onBlur:t[1]||=e=>u.value=!1},{default:L(()=>[ma(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`as`,`as-child`,`dir`])]),_:3}))}}),om=R({__name:`RovingFocusItem`,props:{tabStopId:{type:String,required:!1},focusable:{type:Boolean,required:!1,default:!0},active:{type:Boolean,required:!1},allowShiftKey:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,n=rm(),r=zp(),i=Y(()=>t.tabStopId||r),a=Y(()=>n.currentTabStopId.value===i.value),{getItems:o,CollectionItem:s}=Yp();Yi(()=>{t.focusable&&n.onFocusableItemAdd()}),$i(()=>{t.focusable&&n.onFocusableItemRemove()}),wr(()=>t.focusable,(e,t)=>{e!==t&&(e?n.onFocusableItemAdd():n.onFocusableItemRemove())});function c(e){if(e.key===`Tab`&&e.shiftKey){n.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let r=em(e,n.orientation.value,n.dir.value);if(r!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||!t.allowShiftKey&&e.shiftKey)return;e.preventDefault();let i=[...o().map(e=>e.ref).filter(e=>e.dataset.disabled!==``)];if(r===`last`)i.reverse();else if(r===`prev`||r===`next`){r===`prev`&&i.reverse();let t=i.indexOf(e.currentTarget);i=n.loop.value?nm(i,t+1):i.slice(t+1)}Xn(()=>tm(i))}}return(e,t)=>(H(),W(I(s),null,{default:L(()=>[K(I(Kp),{tabindex:a.value?0:-1,"data-orientation":I(n).orientation.value,"data-active":e.active?``:void 0,"data-disabled":e.focusable?void 0:``,as:e.as,"as-child":e.asChild,onMousedown:t[0]||=t=>{e.focusable?I(n).onItemFocus(i.value):t.preventDefault()},onFocus:t[1]||=e=>I(n).onItemFocus(i.value),onKeydown:c},{default:L(()=>[ma(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`data-active`,`data-disabled`,`as`,`as-child`])]),_:3}))}}),[sm,cm]=xp(`TabsRoot`),lm=R({__name:`TabsRoot`,props:{defaultValue:{type:null,required:!1},orientation:{type:String,required:!1,default:`horizontal`},dir:{type:String,required:!1},activationMode:{type:String,required:!1,default:`automatic`},modelValue:{type:null,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,{orientation:i,unmountOnHide:a,dir:o}=_n(n),s=Ip(o);Lp();let c=Mp(n,`modelValue`,r,{defaultValue:n.defaultValue,passive:n.modelValue===void 0}),l=F(),u=cn(new Set);return cm({modelValue:c,changeModelValue:e=>{c.value=e},orientation:i,dir:s,unmountOnHide:a,activationMode:n.activationMode,baseId:zp(void 0,`reka-tabs`),tabsList:l,contentIds:u,registerContent:e=>{u.value=new Set([...u.value,e])},unregisterContent:e=>{let t=new Set(u.value);t.delete(e),u.value=t}}),(e,t)=>(H(),W(I(Kp),{dir:I(s),"data-orientation":I(i),"as-child":e.asChild,as:e.as},{default:L(()=>[ma(e.$slots,`default`,{modelValue:I(c)})]),_:3},8,[`dir`,`data-orientation`,`as-child`,`as`]))}});function um(e,t){return`${e}-trigger-${t}`}function dm(e,t){return`${e}-content-${t}`}var fm=R({__name:`TabsContent`,props:{value:{type:[String,Number],required:!0},forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,{forwardRef:n}=Lp(),r=sm(),i=Y(()=>um(r.baseId,t.value)),a=Y(()=>dm(r.baseId,t.value)),o=Y(()=>t.value===r.modelValue.value),s=F(o.value);return Yi(()=>{r.registerContent(t.value),requestAnimationFrame(()=>{s.value=!1})}),Qi(()=>{r.unregisterContent(t.value)}),(e,t)=>(H(),W(I(Up),{present:e.forceMount||o.value,"force-mount":``},{default:L(({present:t})=>[K(I(Kp),{id:a.value,ref:I(n),"as-child":e.asChild,as:e.as,role:`tabpanel`,"data-state":o.value?`active`:`inactive`,"data-orientation":I(r).orientation.value,"aria-labelledby":i.value,hidden:!t,tabindex:`0`,style:he({animationDuration:s.value?`0s`:void 0})},{default:L(()=>[!I(r).unmountOnHide.value||t?ma(e.$slots,`default`,{key:0}):J(`v-if`,!0)]),_:2},1032,[`id`,`as-child`,`as`,`data-state`,`data-orientation`,`aria-labelledby`,`hidden`,`style`])]),_:3},8,[`present`]))}}),pm=R({__name:`TabsIndicator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e,{expose:t}){let n=e,r=sm();t({updateIndicatorStyle:s}),Lp();let i=Op(),a=F({size:null,thickness:null,position:null}),o=F([]);wr(()=>[r.modelValue.value,r?.dir.value],()=>{s()},{immediate:!0,flush:`post`}),Sr(()=>{o.value=Array.from(r.tabsList.value?.querySelectorAll(`[role="tab"]`)||[])}),jp(Y(()=>[r.tabsList.value,...o.value]),s);function s(){let e=r.tabsList.value?.querySelector(`[role="tab"][data-state="active"]`);e&&(r.orientation.value===`horizontal`?a.value={size:e.offsetWidth,thickness:e.offsetHeight,position:e.offsetLeft}:a.value={size:e.offsetHeight,thickness:e.offsetWidth,position:e.offsetTop})}return(e,t)=>I(i)&&typeof a.value.size==`number`?(H(),W(I(Kp),Ts({key:0},n,{style:{"--reka-tabs-indicator-size":`${a.value.size}px`,"--reka-tabs-indicator-thickness":`${a.value.thickness}px`,"--reka-tabs-indicator-position":`${a.value.position}px`}}),{default:L(()=>[ma(e.$slots,`default`)]),_:3},16,[`style`])):J(`v-if`,!0)}}),mm=R({__name:`TabsList`,props:{loop:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let{loop:t}=_n(e),{forwardRef:n,currentElement:r}=Lp(),i=sm();return i.tabsList=r,(e,r)=>(H(),W(I(am),{"as-child":``,orientation:I(i).orientation.value,dir:I(i).dir.value,loop:I(t)},{default:L(()=>[K(I(Kp),{ref:I(n),role:`tablist`,"as-child":e.asChild,as:e.as,"aria-orientation":I(i).orientation.value},{default:L(()=>[ma(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`aria-orientation`])]),_:3},8,[`orientation`,`dir`,`loop`]))}}),hm=R({__name:`TabsTrigger`,props:{value:{type:[String,Number],required:!0},disabled:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,{forwardRef:n}=Lp(),r=sm(),i=Y(()=>um(r.baseId,t.value)),a=Y(()=>r.contentIds.value.has(t.value)?dm(r.baseId,t.value):void 0),o=Y(()=>t.value===r.modelValue.value);return(e,t)=>(H(),W(I(om),{"as-child":``,focusable:!e.disabled,active:o.value},{default:L(()=>[K(I(Kp),{id:i.value,ref:I(n),role:`tab`,type:e.as===`button`?`button`:void 0,as:e.as,"as-child":e.asChild,"aria-selected":o.value?`true`:`false`,"aria-controls":a.value,"data-state":o.value?`active`:`inactive`,disabled:e.disabled,"data-disabled":e.disabled?``:void 0,"data-orientation":I(r).orientation.value,onMousedown:t[0]||=tu(t=>{!e.disabled&&t.ctrlKey===!1?I(r).changeModelValue(e.value):t.preventDefault()},[`left`]),onKeydown:t[1]||=ru(t=>I(r).changeModelValue(e.value),[`enter`,`space`]),onFocus:t[2]||=()=>{let t=I(r).activationMode!==`manual`;!o.value&&!e.disabled&&t&&I(r).changeModelValue(e.value)}},{default:L(()=>[ma(e.$slots,`default`)]),_:3},8,[`id`,`type`,`as`,`as-child`,`aria-selected`,`aria-controls`,`data-state`,`disabled`,`data-disabled`,`data-orientation`])]),_:3},8,[`focusable`,`active`]))}}),gm={key:1,class:`text-micro font-mono px-1.5 rounded-full bg-active inline-flex h-5 min-w-5 items-center justify-center tabular-nums`},_m=R({__name:`LayoutTabs`,props:Pa({tabs:{},variant:{default:`underline`},lazy:{type:Boolean,default:!0}},{modelValue:{},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=no(e,`modelValue`);return(n,r)=>(H(),W(I(lm),{modelValue:t.value,"onUpdate:modelValue":r[0]||=e=>t.value=e,class:k(e.variant===`segment`?``:`border-b border-base`)},{default:L(()=>[K(I(mm),{class:k([`flex items-center relative`,e.variant===`segment`?`gap-1 p-1 rounded-lg bg-sunken w-max`:`gap-1`])},{default:L(()=>[(H(!0),U(B,null,fa(e.tabs,t=>(H(),W(I(hm),{key:t.value,value:t.value,as:t.href?`a`:`button`,href:t.href,disabled:t.disabled,class:k([`text-sm color-muted outline-none flex gap-1.5 transition items-center relative disabled:op50 focus-visible:ring-2 focus-visible:ring-primary-500/40`,e.variant===`segment`?`px-3 py-1 rounded-md data-[state=active]:bg-raised data-[state=active]:color-base data-[state=active]:shadow-sm`:`px-3 py-2 -mb-px border-b-2 border-transparent hover:color-base data-[state=active]:color-active data-[state=active]:border-primary-500 dark:data-[state=active]:border-primary-400`])},{default:L(()=>[t.icon?(H(),U(`span`,{key:0,class:k(t.icon),"aria-hidden":`true`},null,2)):J(``,!0),q(` `+A(t.label??t.value)+` `,1),t.count==null?J(``,!0):(H(),U(`span`,gm,A(t.count),1))]),_:2},1032,[`value`,`as`,`href`,`disabled`,`class`]))),128)),e.variant===`underline`?(H(),W(I(pm),{key:0,class:`rounded-full bg-primary-500 h-0.5 w-[--reka-tabs-indicator-size] translate-x-[--reka-tabs-indicator-position] transition-all duration-200 bottom-0 left-0 absolute`})):J(``,!0)]),_:1},8,[`class`]),ma(n.$slots,`default`),(H(!0),U(B,null,fa(e.tabs,t=>(H(),U(B,{key:`panel-${t.value}`},[n.$slots[t.value]?(H(),W(I(fm),{key:0,value:t.value,"force-mount":!e.lazy||void 0,class:`py-3 outline-none focus-visible:ring-2 focus-visible:ring-primary-500/40`},{default:L(()=>[ma(n.$slots,t.value)]),_:2},1032,[`value`,`force-mount`])):J(``,!0)],64))),128))]),_:3},8,[`modelValue`,`class`]))}}),vm={key:0,class:`flex-1 min-w-0`},ym={key:1,class:`flex gap-1 items-center`},bm=R({__name:`LayoutToolbar`,props:{sticky:{type:Boolean,default:!0},glass:{type:Boolean,default:!0}},setup(e){return(t,n)=>(H(),U(`div`,{class:k([`px-3 py-2 border-b border-base flex gap-3 items-center`,[e.sticky?`sticky top-0 z-nav`:``,e.glass?`bg-glass`:`bg-base`]])},[ma(t.$slots,`start`,{},()=>[ma(t.$slots,`default`)]),t.$slots.search?(H(),U(`div`,vm,[ma(t.$slots,`search`)])):J(``,!0),t.$slots.end?(H(),U(`div`,ym,[ma(t.$slots,`end`)])):J(``,!0)],2))}});function xm(...e){return e.filter(Boolean).join(` `)}function Sm({variant:e=`primary`,size:t=`md`,class:n}={}){let r={primary:`btn-primary`,secondary:`btn-action`,outline:`btn-action`,ghost:`inline-flex items-center justify-center gap-1.5 rounded px2 py1 op75 hover:op100 hover:bg-active transition disabled:pointer-events-none disabled:op30!`,destructive:`btn-action text-error border-error/30!`,link:`inline-flex items-center gap-1.5 color-active hover:underline underline-offset-2`},i=t===`sm`?e===`primary`?`text-sm px-2.5! py-1!`:`text-sm`:t===`lg`?`text-base px-4! py-2!`:``;return xm(r[e],i,n)}var Cm={connecting:{label:`connecting…`,dot:`bg-neutral-400 animate-pulse`},disconnected:{label:`disconnected`,dot:`bg-error`},unauthorized:{label:`unauthorized`,dot:`bg-warning`},error:{label:`error`,dot:`bg-error`}};function wm(e,t){if(e===`connected`)return null;let n=Cm[e];return{label:n.label,dot:xm(`inline-block size-1.5 rounded-full shrink-0`,n.dot),class:xm(`flex items-center gap-1.5 shrink-0 text-xs color-muted select-none`,t)}}var Tm={connecting:{icon:`i-ph-plugs-connected-duotone`,title:`Connecting…`,body:`Establishing a connection to the devframe server.`,reloadable:!1,spin:!0},disconnected:{icon:`i-ph-plugs-duotone`,title:`Disconnected`,body:`Lost the connection to the devframe server. Reload once it is back up.`,reloadable:!0,spin:!1},unauthorized:{icon:`i-ph-lock-key-duotone`,title:`Not authorized`,body:`This client isn’t authorized. Reopen the link printed by your dev server, then reload.`,reloadable:!0,spin:!1},error:{icon:`i-ph-warning-octagon-duotone`,title:`Connection failed`,body:`Could not reach the devframe server.`,reloadable:!0,spin:!1}};function Em(e){return e===`connected`?null:Tm[e]}function Dm(e){return xm(`flex flex-col items-center justify-center gap-4 bg-base p-8 text-center`,e)}function Om(e=!1,t){return xm(`text-4xl color-active`,e&&`animate-pulse`,t)}function km(e){return xm(`text-lg font-medium color-base`,e)}function Am(e){return xm(`max-w-sm text-sm color-muted`,e)}function jm(e){return xm(`mt-1 max-w-sm break-words font-mono text-xs color-faint`,e)}var Mm=cn(null),Nm=F(!1);function Pm(e){Mm.value=e,Ie(()=>{Mm.value===e&&(Mm.value=null)})}function Fm(){async function e(){if(Mm.value&&!Nm.value){Nm.value=!0;try{await Mm.value()}finally{Nm.value=!1}}}return{refresh:e,loading:Nm}}var Q={bus:{agentManifestChanged:`agent:manifest:changed`,agentToolRegistered:`agent:tool:registered`,agentToolUnregistered:`agent:tool:unregistered`,agentResourceRegistered:`agent:resource:registered`,agentResourceUnregistered:`agent:resource:unregistered`},client:{isTrustedUpdated:`rpc:is-trusted:updated`,error:`rpc:error`,connectionStatus:`connection:status`,connectionError:`connection:error`},broadcast:{authRevoked:`devframe:auth:revoked`,clientStateUpdated:`devframe:rpc:client-state:updated`,clientStatePatch:`devframe:rpc:client-state:patch`,streamingChunk:`devframe:streaming:chunk`,streamingEnd:`devframe:streaming:end`,streamingUploadCancel:`devframe:streaming:upload-cancel`},inPageChannel:{panelStateUpdated:`devframe:in-page:panel-state:updated`,panelStatePatch:`devframe:in-page:panel-state:patch`},postMessage:{remoteAssetsError:`devframe:remote-assets-error`,inPageChannel:`devframe:in-page-channel`}},Im=`__connection.json`,Lm=`__DEVFRAME_CONNECTION__`,Rm=`x-birpc-session`,zm=`__rpc-dump/index.json`,Bm=`devframe:services`,Vm=`devframe_otp`,Hm=`devframe_auth_token`;Q.postMessage.remoteAssetsError;function Um(e){return bp(e)}var Wm=class{cacheMap=new Map;options;keySerializer;constructor(e){this.options=e,this.keySerializer=e.keySerializer||(e=>Um(e))}updateOptions(e){this.options={...this.options,...e}}cached(e,t){let n=this.cacheMap.get(e);if(n)return n.get(this.keySerializer(t))}has(e,t){return this.cacheMap.get(e)?.has(this.keySerializer(t))??!1}apply(e,t){let n=this.cacheMap.get(e.m)||new Map;n.set(this.keySerializer(e.a),t),this.cacheMap.set(e.m,n)}validate(e){return this.options.functions.includes(e)}clear(e){e?this.cacheMap.delete(e):this.cacheMap.clear()}};function Gm(e,t){let n=`\x1B[${e}m`,r=`\x1B[${t}m`;return((e,...t)=>{if(Array.isArray(e)&&`raw`in e){let i=e,a=``;for(let e=0;e<i.length;e++)a+=i[e],e<t.length&&(a+=String(t[e]));return`${n}${a}${r}`}return`${n}${String(e)}${r}`})}var Km={blue:Gm(34,39),cyan:Gm(36,39),gray:Gm(90,39),green:Gm(32,39),red:Gm(31,39),yellow:Gm(33,39),bold:Gm(1,22),dim:Gm(2,22),reset:Gm(0,0),underline:Gm(4,24)};function qm(e,...t){return typeof e==`function`?e(...t):e}var Jm=Error.captureStackTrace,Ym=class e extends Error{name;code;docs;fix;sources;get why(){return this.message}constructor(t,n=e){super(t.why,{cause:t.cause}),this.code=this.name=t.code,this.fix=t.fix,this.docs=t.docs,this.sources=t.sources,Jm?.(this,n)}toJSON(){return{name:this.name,why:this.why,fix:this.fix,docs:this.docs,sources:this.sources,cause:this.cause,stack:this.stack}}};function Xm(e,t){return typeof e==`string`?`${e}/${t.toLowerCase()}`:e?.(t)}function Zm(e){let t=e.reporters??[],n={},{docsBase:r}=e;for(let i of Object.keys(e.codes)){let a=e.codes[i],o=a.docs===!1?void 0:a.docs||Xm(r,i),s=(e={},n={})=>{let r=new Ym({code:i,why:qm(a.why,e),fix:qm(a.fix,e),docs:o,cause:e.cause,sources:e.sources},s);for(let e of t)e(r,n);return r};n[i]=s}return n}function Qm(e){return t=>{let n=`${e.bold(e.red(`[${t.name}]`))} ${t.message}`,r=[];return t.fix&&r.push(`${e.dim(`fix:`)} ${t.fix}`),t.sources?.length&&r.push(`${e.dim(`sources:`)} ${t.sources.join(`, `)}`),t.docs&&r.push(`${e.dim(`see:`)} ${e.cyan(t.docs)}`),r.length===0?n:[n,...r.map((t,n)=>`${e.dim(n<r.length-1?`├▶`:`╰▶`)} ${t}`)].join(`
7
7
  `)}}var $m=Qm(Km);function eh(e,{method:t=`warn`}={}){console[t]($m(e))}function th(e){return Zm({...e,reporters:[eh,...e.reporters??[]]})}var nh=th({docsBase:`https://devfra.me/errors`,codes:{DF0019:{why:e=>`RPC function "${e.name}" has \`agent\` set but \`jsonSerializable\` is \`false\`; MCP requires JSON-serializable data.`,fix:"Remove `jsonSerializable: false`, or remove `agent` to keep it RPC-only."},DF0020:{why:e=>`RPC function "${e.name}" declares \`jsonSerializable: true\` but the value at "${e.path}" is a ${e.type}.`,fix:"Either drop `jsonSerializable: true` (falls back to structured-clone) or change the value to a JSON-safe shape."},DF0021:{why:e=>`RPC function "${e.name}" is already registered`,fix:"Use the `force` parameter to overwrite an existing registration."},DF0022:{why:e=>`RPC function "${e.name}" is not registered. Use register() to add new functions.`},DF0023:{why:e=>`RPC function "${e.name}" is not registered`},DF0024:{why:e=>`Either handler or setup function must be provided for RPC function "${e.name}"`},DF0025:{why:e=>`Function "${e.name}" not found in dump store`},DF0026:{why:e=>`No dump match for "${e.name}" with args: ${e.args}`},DF0027:{why:e=>`Function "${e.name}" with type "${e.type}" cannot have dump configuration. Only "static" and "query" types support dumps.`},DF0028:{why:e=>`Function "${e.name}" with type "${e.type}" cannot use \`snapshot: true\`. Only "query" functions support this sugar; "static" functions have equivalent default behavior already.`,fix:"Remove `snapshot: true`, or change the function type to `query`."},DF0043:{why:e=>`RPC function "${e.name}" received an invalid argument at position ${e.index}: ${e.issues}`,fix:"Pass a value that satisfies the `args` schema declared for this function."},DF0044:{why:e=>`RPC function "${e.name}" returned a value that failed its \`returns\` schema: ${e.issues}`,fix:"Make the handler return a value that satisfies the `returns` schema, or relax the schema."}}});function rh(e){if(e.agent&&e.jsonSerializable===!1)throw nh.DF0019({name:e.name});e.agent&&!e.jsonSerializable&&(e.jsonSerializable=!0)}async function ih(e,t){let n=e[`~standard`].validate(t);return n instanceof Promise?await n:n}function ah(e){return e.map(e=>{let t=e.path?.map(e=>typeof e==`object`?e.key:e).join(`.`);return t?`${t}: ${e.message}`:e.message}).join(`; `)}async function oh(e,t,n){let r=n.slice();if(!t||t.length===0)return r;for(let r=0;r<t.length;r++){let i=t[r];if(!i)continue;let a=await ih(i,n[r]);if(a.issues)throw nh.DF0043({name:e,index:r,issues:ah(a.issues)})}return r}async function sh(e,t,n){if(!t)return n;let r=await ih(t,n);if(r.issues)throw nh.DF0044({name:e,issues:ah(r.issues)});return n}async function ch(e,t){if(!e.setup)return{};if(typeof t==`object`&&t){e.__cache??=new WeakMap;let n=e.__cache,r=n.get(t);return r||(r=Promise.resolve(e.setup(t)),r.catch(()=>{n.get(t)===r&&n.delete(t)}),n.set(t,r)),await r}if(!e.__promise){let n=Promise.resolve(e.setup(t));n.catch(()=>{e.__promise===n&&(e.__promise=void 0)}),e.__promise=n}return await e.__promise}async function lh(e,t){let n=e.handler;if(!n){let r=await ch(e,t);if(!r.handler)throw nh.DF0024({name:e.name});n=r.handler}let r=e.args,i=e.returns;if(!r&&!i)return n;let a=n;return async(...t)=>{let n=await oh(e.name,r,t),o=await a(...n);return await sh(e.name,i,o)}}var uh=class{context;definitions=new Map;functions;_onChanged=[];constructor(e){this.context=e;let t=this.definitions,n=this;this.functions=new Proxy({},{get(e,r){let i=t.get(r);if(i)return lh(i,n.context)},has(e,n){return t.has(n)},getOwnPropertyDescriptor(e,n){return{value:t.get(n)?.handler,configurable:!0,enumerable:!0}},ownKeys(){return Array.from(t.keys())}})}register(e,t=!1){if(this.definitions.has(e.name)&&!t)throw nh.DF0021({name:e.name});rh(e),this.definitions.set(e.name,e),this._onChanged.forEach(t=>t(e.name))}update(e,t=!1){if(!this.definitions.has(e.name)&&!t)throw nh.DF0022({name:e.name});rh(e),this.definitions.set(e.name,e),this._onChanged.forEach(t=>t(e.name))}onChanged(e){return this._onChanged.push(e),()=>{let t=this._onChanged.indexOf(e);t!==-1&&this._onChanged.splice(t,1)}}async getHandler(e){return await lh(this.definitions.get(e),this.context)}getSchema(e){let t=this.definitions.get(e);if(!t)throw nh.DF0023({name:String(e)});return{args:t.args,returns:t.returns}}has(e){return this.definitions.has(e)}get(e){return this.definitions.get(e)}list(){return Array.from(this.definitions.keys())}};function dh(e,t=``){return JSON.stringify(e,function(e,n){let r=this,i=r==null?n:r[e];if(i===void 0){if(Array.isArray(r))throw ph(t,`undefined`,r,e);return n}return i!==null&&fh(i,r,e,t),n})}function fh(e,t,n,r){if(typeof e==`bigint`)throw ph(r,`BigInt`,t,n);if(typeof e!=`object`)return;if(e instanceof Map)throw ph(r,`Map`,t,n);if(e instanceof Set)throw ph(r,`Set`,t,n);if(e instanceof Date)throw ph(r,`Date`,t,n);if(Array.isArray(e))return;let i=Object.getPrototypeOf(e);if(i!==null&&i!==Object.prototype)throw ph(r,e.constructor?.name??`class instance`,t,n)}function ph(e,t,n,r){let i=mh(n,r);return nh.DF0020({name:e||`<anonymous>`,type:t,path:i})}function mh(e,t){return Array.isArray(e)?`[${t}]`:t===``?`<root>`:t}function hh(){let e={};function t(t,...n){let r=e[t]||[];for(let e=0,t=r.length;e<t;e++){let t=r[e];t&&t(...n)}}function n(n,...r){t(n,...r),delete e[n]}function r(t,n){return(e[t]||=[]).push(n),()=>{e[t]=e[t]?.filter(e=>n!==e)}}function i(e,t){let n=r(e,((...e)=>(n(),t(...e))));return n}return{_listeners:e,emit:t,emitOnce:n,on:r,once:i}}var gh=/^[\w+.-]{2,}:\/\//;function _h(e){return e.endsWith(`/`)?e:`${e}/`}function vh(e){return(e.endsWith(`/`)?e.slice(0,-1):e)||`/`}function yh(e,...t){let n=e;for(let e of t)e&&e!==`/`&&(n=n?_h(n)+e.replace(/^\.?\//,``):e);return n}function bh(e,t){if(!t||t===`/`||gh.test(e))return e;let n=vh(t);return e.startsWith(n)?e:yh(n,e)}function xh(e,t){let n=e.match(gh);return t+(n?e.slice(n[0].length):e)}var Sh=`__DEVFRAME_CONNECTION_META__`,Ch=`__DEVFRAME_CONNECTION_AUTH_TOKEN__`;function wh(e){let t=[()=>window?.[e],()=>globalThis?.[e],()=>parent.window?.[e]];for(let e of t)try{let t=e();if(t)return t}catch{}}function Th(){return wh(Lm)}function Eh(){return wh(Sh)}function Dh(e){if(e)return e;try{let e=localStorage.getItem(Ch);if(e)return e}catch{}return wh(Ch)}function Oh(e){globalThis[Lm]=e,globalThis[Sh]={...e.connectionMeta,baseUrl:e.metaBaseUrl},e.authToken&&kh(e.authToken)}function kh(e){try{localStorage.setItem(Ch,e)}catch{}globalThis[Ch]=e;let t=Th();t&&(globalThis[Lm]={...t,authToken:e})}function Ah(e){let t=bh(Im,e);try{return new URL(t,globalThis.location?.href).href}catch{return t}}function jh(e,t){return t&&t!==e.authToken?{...e,authToken:t}:e}function Mh(){let e=Th();if(e)return jh(e,Dh()??e.authToken??e.connectionMeta.authToken);let t=Eh();if(t)return{connectionMeta:t,metaBaseUrl:t.baseUrl??Ah(`./`),authToken:Dh(t.authToken)}}async function Nh(e={}){if(e.connection){let t=jh(e.connection,Dh(e.authToken??e.connection.authToken??e.connection.connectionMeta.authToken));return Oh(t),t}let t=Array.isArray(e.baseURL)?e.baseURL:[e.baseURL??`./`];if(e.connectionMeta){let n={connectionMeta:e.connectionMeta,metaBaseUrl:Ah(t[0]??`./`),authToken:Dh(e.authToken??e.connectionMeta.authToken)};return Oh(n),n}let n=Mh();if(n){let t=jh(n,Dh(e.authToken??n.authToken??n.connectionMeta.authToken));return Oh(t),t}let r=[];for(let n of t){let t=bh(Im,n),i=Ah(n);try{let n=await fetch(t);if(!n.ok)throw Error(`Failed to fetch connection meta from ${i}: ${n.status}`);let r=await n.json(),a=n.url||i,o={connectionMeta:r,metaBaseUrl:r.baseUrl?new URL(r.baseUrl,a).href:a,authToken:Dh(e.authToken??r.authToken)};return Oh(o),o}catch(e){r.push(e)}}throw Error(`Failed to get connection meta from ${t.join(`, `)}`,{cause:r})}var Ph=class extends Error{name=`DevframeConnectionError`;kind;constructor(e,t,n){super(t,n),this.kind=e}};function Fh(e=Vm){try{let t=globalThis.location?.hash?.replace(/^#/,``)??``;return new URLSearchParams(t).get(e)||void 0}catch{return}}function Ih(e){try{let t=new URL(globalThis.location.href),n=new URLSearchParams(t.hash.replace(/^#/,``));if(!n.has(e))return;n.delete(e),t.hash=n.toString(),globalThis.history?.replaceState(globalThis.history.state,``,t.href)}catch{}}function Lh(e=Vm){let t=Fh(e);return t&&Ih(e),t}async function Rh(e,t={}){let n=Lh(t.param??`devframe_otp`);return n?e.isTrusted?!0:e.requestTrustWithCode(n):!1}function zh(e){let t={},n=new WeakMap,r,i=()=>(r??=e.sharedState.get(Bm,{initialValue:{}}).then(e=>(t=e.value(),e.on(`updated`,e=>{t=e}),e)),r);return i(),{state:i,has:e=>e in t,keys:()=>Object.keys(t),get:r=>{let i=t[r];if(!i)return;let a=n.get(i);return a||(a={...i,rpc:e.scope(i.scope).rpc},n.set(i,a)),a}}}var Bh=Symbol.for(`immer-nothing`),Vh=Symbol.for(`immer-draftable`),Hh=Symbol.for(`immer-state`);function Uh(e,...t){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var Wh=Object,Gh=Wh.getPrototypeOf,Kh=`constructor`,qh=`prototype`,Jh=`configurable`,Yh=`enumerable`,Xh=`writable`,Zh=`value`,Qh=e=>!!e&&!!e[Hh];function $h(e){return e?ng(e)||lg(e)||!!e[Vh]||!!e[Kh]?.[Vh]||ug(e)||dg(e):!1}var eg=Wh[qh][Kh].toString(),tg=new WeakMap;function ng(e){if(!e||!fg(e))return!1;let t=Gh(e);if(t===null||t===Wh[qh])return!0;let n=Wh.hasOwnProperty.call(t,Kh)&&t[Kh];if(n===Object)return!0;if(!pg(n))return!1;let r=tg.get(n);return r===void 0&&(r=Function.toString.call(n),tg.set(n,r)),r===eg}function rg(e,t,n=!0){ig(e)===0?(n?Reflect.ownKeys(e):Wh.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function ig(e){let t=e[Hh];return t?t.type_:lg(e)?1:ug(e)?2:dg(e)?3:0}var ag=(e,t,n=ig(e))=>n===2?e.has(t):Wh[qh].hasOwnProperty.call(e,t),og=(e,t,n=ig(e))=>n===2?e.get(t):e[t],sg=(e,t,n,r=ig(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function cg(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var lg=Array.isArray,ug=e=>e instanceof Map,dg=e=>e instanceof Set,fg=e=>typeof e==`object`,pg=e=>typeof e==`function`,mg=e=>typeof e==`boolean`;function hg(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var gg=e=>fg(e)?e?.[Hh]:null,_g=e=>e.copy_||e.base_,vg=e=>e.modified_?e.copy_:e.base_;function yg(e,t){if(ug(e))return new Map(e);if(dg(e))return new Set(e);if(lg(e))return Array[qh].slice.call(e);let n=ng(e);if(t===!0||t===`class_only`&&!n){let t=Wh.getOwnPropertyDescriptors(e);delete t[Hh];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){let i=n[r],a=t[i];a[Xh]===!1&&(a[Xh]=!0,a[Jh]=!0),(a.get||a.set)&&(t[i]={[Jh]:!0,[Xh]:!0,[Yh]:a[Yh],[Zh]:e[i]})}return Wh.create(Gh(e),t)}{let t=Gh(e);if(t!==null&&n)return{...e};let r=Wh.create(t);return Wh.assign(r,e)}}function bg(e,t=!1){return Cg(e)||Qh(e)||!$h(e)?e:(ig(e)>1&&Wh.defineProperties(e,{set:Sg,add:Sg,clear:Sg,delete:Sg}),Wh.freeze(e),t&&rg(e,(e,t)=>{bg(t,!0)},!1),e)}function xg(){Uh(2)}var Sg={[Zh]:xg};function Cg(e){return e===null||!fg(e)||Wh.isFrozen(e)}var wg=`MapSet`,Tg=`Patches`,Eg=`ArrayMethods`,Dg={};function Og(e){let t=Dg[e];return t||Uh(0,e),t}var kg=e=>!!Dg[e];function Ag(e,t){Dg[e]||(Dg[e]=t)}var jg,Mg=()=>jg,Ng=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:kg(wg)?Og(wg):void 0,arrayMethodsPlugin_:kg(Eg)?Og(Eg):void 0});function Pg(e,t){t&&(e.patchPlugin_=Og(Tg),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Fg(e){Ig(e),e.drafts_.forEach(Rg),e.drafts_=null}function Ig(e){e===jg&&(jg=e.parent_)}var Lg=e=>jg=Ng(jg,e);function Rg(e){let t=e[Hh];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function zg(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[Hh].modified_&&(Fg(t),Uh(4)),$h(e)&&(e=Bg(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[Hh].base_,e,t)}else e=Bg(t,n);return Vg(t,e,!0),Fg(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===Bh?void 0:e}function Bg(e,t){if(Cg(t))return t;let n=t[Hh];if(!n)return Yg(t,e.handledSet_,e);if(!Ug(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){let{callbacks_:t}=n;if(t)for(;t.length>0;)t.pop()(e);qg(n,e)}return n.copy_}function Vg(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&bg(t,n)}function Hg(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var Ug=(e,t)=>e.scope_===t,Wg=[];function Gg(e,t,n,r){let i=_g(e),a=e.type_;if(r!==void 0&&og(i,r,a)===t){sg(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;rg(i,(e,n)=>{if(Qh(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??Wg;for(let e of o)sg(i,e,n,a)}function Kg(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!Ug(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=vg(i);Gg(e,i.draft_??i,a,n),qg(i,r)})}function qg(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let r=n.getPath(e);r&&n.generatePatches_(e,r,t)}Hg(e)}}function Jg(e,t,n){let{scope_:r}=e;if(Qh(n)){let i=n[Hh];Ug(i,r)&&i.callbacks_.push(function(){i_(e),Gg(e,n,vg(i),t)})}else $h(n)&&e.callbacks_.push(function(){let i=_g(e);e.type_===3?i.has(n)&&Yg(n,r.handledSet_,r):og(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&Yg(og(e.copy_,t,e.type_),r.handledSet_,r)})}function Yg(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||Qh(e)||t.has(e)||!$h(e)||Cg(e)?e:(t.add(e),rg(e,(r,i)=>{if(Qh(i)){let t=i[Hh];Ug(t,n)&&(sg(e,r,vg(t),e.type_),Hg(t))}else $h(i)&&Yg(i,t,n)}),e)}function Xg(e,t){let n=lg(e),r={type_:+!!n,scope_:t?t.scope_:Mg(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},i=r,a=Zg;n&&(i=[r],a=Qg);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var Zg={get(e,t){if(t===Hh)return e;let n=e.scope_.arrayMethodsPlugin_,r=e.type_===1&&typeof t==`string`;if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let i=_g(e);if(!ag(i,t,e.type_))return t_(e,i,t);let a=i[t];if(e.finalized_||!$h(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&hg(t))return a;if(a===$g(e.base_,t)||e_(e,t,a)){i_(e);let n=e.type_===1?+t:t,r=o_(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t in _g(e)},ownKeys(e){return Reflect.ownKeys(_g(e))},set(e,t,n){let r=n_(_g(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=$g(_g(e),t),i=r?.[Hh];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(cg(n,r)&&(n!==void 0||ag(e.base_,t,e.type_)))return!0;i_(e),r_(e)}return e.copy_[t]===n&&(n!==void 0||ag(e.copy_,t,e.type_))||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),Jg(e,t,n),!0)},deleteProperty(e,t){return i_(e),$g(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),r_(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=_g(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[Xh]:!0,[Jh]:e.type_!==1||t!==`length`,[Yh]:r[Yh],[Zh]:n[t]}},defineProperty(){Uh(11)},getPrototypeOf(e){return Gh(e.base_)},setPrototypeOf(){Uh(12)}},Qg={};for(let e in Zg){let t=Zg[e];Qg[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}Qg.deleteProperty=function(e,t){return Qg.set.call(this,e,t,void 0)},Qg.set=function(e,t,n){return Zg.set.call(this,e[0],t,n,e[0])};function $g(e,t){let n=e[Hh];return(n?_g(n):e)[t]}function e_(e,t,n){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!$h(n)||n[Hh]?!1:e.baseRefs_.has(n)}function t_(e,t,n){let r=n_(t,n);return r?Zh in r?r[Zh]:r.get?.call(e.draft_):void 0}function n_(e,t){if(!(t in e))return;let n=Gh(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=Gh(n)}}function r_(e){e.modified_||(e.modified_=!0,e.parent_&&r_(e.parent_))}function i_(e){e.copy_||=(e.assigned_=new Map,yg(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var a_=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(pg(e)&&!pg(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}pg(t)||Uh(6),n!==void 0&&!pg(n)&&Uh(7);let r;if($h(e)){let i=Lg(this),a=o_(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?Fg(i):Ig(i)}return Pg(i,n),zg(r,i)}if(!e||!fg(e)){if(r=t(e),r===void 0&&(r=e),r===Bh&&(r=void 0),this.autoFreeze_&&bg(r,!0),n){let t=[],i=[];Og(Tg).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}Uh(1,e)},this.produceWithPatches=(e,t)=>{if(pg(e))return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},mg(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),mg(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),mg(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){$h(e)||Uh(8),Qh(e)&&(e=s_(e));let t=Lg(this),n=o_(t,e,void 0);return n[Hh].isManual_=!0,Ig(t),n}finishDraft(e,t){let n=e&&e[Hh];(!n||!n.isManual_)&&Uh(9);let{scope_:r}=n;return Pg(r,t),zg(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=Og(Tg).applyPatches_;return Qh(e)?r(e,t):this.produce(e,e=>r(e,t))}};function o_(e,t,n,r){let[i,a]=ug(t)?Og(wg).proxyMap_(t,n):dg(t)?Og(wg).proxySet_(t,n):Xg(t,n);return(n?.scope_??Mg()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?Kg(n,a,r):a.callbacks_.push(function(e){e.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:t}=e;a.modified_&&t&&t.generatePatches_(a,[],e)}),i}function s_(e){return Qh(e)||Uh(10,e),c_(e)}function c_(e){if(!$h(e)||Cg(e))return e;let t=e[Hh],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=yg(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=yg(e,!0);return rg(n,(e,t)=>{sg(n,e,c_(t))},r),t&&(t.finalized_=!1),n}function l_(){function e(n,r=[]){if(n.key_!==void 0){let e=n.parent_.copy_??n.parent_.base_,t=gg(og(e,n.key_)),i=og(e,n.key_);if(i===void 0||i!==n.draft_&&i!==n.base_&&i!==n.copy_||t!=null&&t.base_!==n.base_)return null;let a=n.parent_.type_===3,o;if(a){let e=n.parent_;o=Array.from(e.drafts_.keys()).indexOf(n.key_)}else o=n.key_;if(!(a&&e.size>o||ag(e,o)))return null;r.push(o)}if(n.parent_)return e(n.parent_,r);r.reverse();try{t(n.copy_,r)}catch{return null}return r}function t(e,t){let n=e;for(let e=0;e<t.length-1;e++){let r=t[e];if(n=og(n,r),!fg(n)||n===null)throw Error(`Cannot resolve path at '${t.join(`/`)}'`)}return n}let n=`replace`,r=`remove`;function i(e,t,n){if(e.scope_.processedForPatches_.has(e))return;e.scope_.processedForPatches_.add(e);let{patches_:r,inversePatches_:i}=n;switch(e.type_){case 0:case 2:return o(e,t,r,i);case 1:return a(e,t,r,i);case 3:return s(e,t,r,i)}}function a(e,t,i,a){let{base_:o,assigned_:s}=e,c=e.copy_;c.length<o.length&&([o,c]=[c,o],[i,a]=[a,i]);let l=e.allIndicesReassigned_===!0;for(let e=0;e<o.length;e++){let r=c[e],u=o[e];if((l||s?.get(e.toString()))&&r!==u){let o=r?.[Hh];if(o&&o.modified_)continue;let s=t.concat([e]);i.push({op:n,path:s,value:d(r)}),a.push({op:n,path:s,value:d(u)})}}for(let e=o.length;e<c.length;e++){let n=t.concat([e]);i.push({op:`add`,path:n,value:d(c[e])})}for(let e=c.length-1;o.length<=e;--e){let n=t.concat([e]);a.push({op:r,path:n})}}function o(e,t,i,a){let{base_:o,copy_:s,type_:c}=e;rg(e.assigned_,(e,l)=>{let u=og(o,e,c),f=og(s,e,c),p=l?ag(o,e)?n:`add`:r;if(u===f&&p===n)return;let m=t.concat(e);i.push(p===r?{op:p,path:m}:{op:p,path:m,value:d(f)}),a.push(p===`add`?{op:r,path:m}:p===r?{op:`add`,path:m,value:d(u)}:{op:n,path:m,value:d(u)})})}function s(e,t,n,i){let{base_:a,copy_:o}=e,s=0;a.forEach(e=>{if(!o.has(e)){let a=t.concat([s]);n.push({op:r,path:a,value:e}),i.unshift({op:`add`,path:a,value:e})}s++}),s=0,o.forEach(e=>{if(!a.has(e)){let a=t.concat([s]);n.push({op:`add`,path:a,value:e}),i.unshift({op:r,path:a,value:e})}s++})}function c(e,t,r){let{patches_:i,inversePatches_:a}=r;i.push({op:n,path:[],value:t===Bh?void 0:t}),a.push({op:n,path:[],value:e})}function l(e,t){return t.forEach(t=>{let{path:i,op:a}=t,o=e;for(let e=0;e<i.length-1;e++){let t=ig(o),n=i[e];typeof n!=`string`&&typeof n!=`number`&&(n=``+n),(t===0||t===1)&&(n===`__proto__`||n===Kh)&&Uh(19),pg(o)&&n===qh&&Uh(19),o=og(o,n),(o===null||!fg(o))&&Uh(18,i.join(`/`))}let s=ig(o),c=u(t.value),l=i[i.length-1];switch(a){case n:switch(s){case 2:return o.set(l,c);case 3:Uh(16);default:return o[l]=c}case`add`:switch(s){case 1:return l===`-`?o.push(c):o.splice(l,0,c);case 2:return o.set(l,c);case 3:return o.add(c);default:return o[l]=c}case r:switch(s){case 1:return o.splice(l,1);case 2:return o.delete(l);case 3:return o.delete(t.value);default:return delete o[l]}default:Uh(17,a)}}),e}function u(e){if(!$h(e))return e;if(lg(e))return e.map(u);if(ug(e))return new Map(Array.from(e.entries()).map(([e,t])=>[e,u(t)]));if(dg(e))return new Set(Array.from(e).map(u));let t=Object.create(Gh(e));for(let n in e)t[n]=u(e[n]);return ag(e,Vh)&&(t[Vh]=e[Vh]),t}function d(e){return Qh(e)?u(e):e}Ag(Tg,{applyPatches_:l,generatePatches_:i,generateReplacementPatches_:c,getPath:e})}globalThis.Iterator?.from;var u_=new a_,d_=u_.produce,f_=u_.produceWithPatches.bind(u_),p_=u_.applyPatches.bind(u_),m_=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function h_(e=21){let t=``,n=e;for(;n--;)t+=m_[Math.random()*64|0];return t}var g_=1e3;function __(e,t){if(e.add(t),e.size>g_){let t=e.values().next().value;t!==void 0&&e.delete(t)}}function v_(e){let{enablePatches:t=!1}=e;t&&l_();let n=hh(),r=e.initialValue,i=new Set;return{on:n.on,value:()=>r,patch:(e,t=h_())=>{i.has(t)||(l_(),r=p_(r,e),__(i,t),n.emit(`updated`,r,void 0,t))},mutate:(e,a=h_())=>{if(!i.has(a)){if(__(i,a),t){let[t,i]=f_(r,e);if(t===r)return;r=t,n.emit(`updated`,r,i,a)}else{let t=d_(r,e);if(t===r)return;r=t,n.emit(`updated`,r,void 0,a)}}},syncIds:i}}function y_(e){let t=new Map,n=new Map,r=new Map,i=new Set,a=e.connectionMeta.backend===`static`;function o(e,t){let n=r.get(e);return n&&typeof n==`object`&&!Array.isArray(n)&&typeof t==`object`&&!Array.isArray(t)?{...n,...t}:t}e.client.register({name:Q.broadcast.clientStateUpdated,type:`event`,handler:(e,n,r)=>{let i=t.get(e);i&&!i.syncIds.has(r)&&i.mutate(()=>o(e,n),r)}}),e.client.register({name:Q.broadcast.clientStatePatch,type:`event`,handler:(e,n,r)=>{let i=t.get(e);i&&!i.syncIds.has(r)&&i.patch(n,r)}});function s(t,n){let r=[];return r.push(n.on(`updated`,(n,r,i)=>{a||(r?e.callEvent(`devframe:rpc:server-state:patch`,t,r,i):e.callEvent(`devframe:rpc:server-state:set`,t,n,i))})),()=>{for(let e of r)e()}}return{keys:()=>Array.from(t.keys()),onKeyAdded(e){return i.add(e),()=>{i.delete(e)}},delete(e){let i=n.get(e);n.delete(e);let a=t.delete(e);return r.delete(e),i?.(),a},get:async(c,l)=>{if(l?.initialValue!==void 0&&r.set(c,l.initialValue),t.has(c))return t.get(c);let u=v_({initialValue:l?.initialValue,enablePatches:!1});async function d(){if(a||e.callEvent(`devframe:rpc:server-state:subscribe`,c),l?.initialValue!==void 0){t.set(c,u);for(let e of i)e(c);return e.call(`devframe:rpc:server-state:get`,c).then(e=>{e!==void 0&&u.mutate(()=>o(c,e))}).catch(e=>{console.error(`Error getting server state`,e)}),n.set(c,s(c,u)),u}{let r=await e.call(`devframe:rpc:server-state:get`,c);u.mutate(()=>o(c,r)),t.set(c,u);for(let e of i)e(c);return n.set(c,s(c,u)),u}}return new Promise(t=>{if(e.isTrusted)d().then(t);else{t(u);let n=!1;e.events.on(Q.client.isTrustedUpdated,e=>{e&&!n&&(n=!0,d())})}})}}}var b_=typeof self==`object`?self:globalThis,x_=new Set([`Error`,`EvalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`,`AggregateError`]),S_=new Set([`Boolean`,`Number`,`String`,`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float16Array`,`Float32Array`,`Float64Array`,`BigInt64Array`,`BigUint64Array`]);function C_(e,t){let n=(t,n)=>(e.set(n,t),t),r=i=>{if(e.has(i))return e.get(i);let[a,o]=t[i];switch(a){case 0:case-1:return n(o,i);case 1:{let e=n([],i);for(let t of o)e.push(r(t));return e}case 2:{let e=n({},i);for(let[t,n]of o)e[r(t)]=r(n);return e}case 3:return n(new Date(o),i);case 4:{let{source:e,flags:t}=o;return n(new RegExp(e,t),i)}case 5:{let e=n(new Map,i);for(let[t,n]of o)e.set(r(t),r(n));return e}case 6:{let e=n(new Set,i);for(let t of o)e.add(r(t));return e}case 7:{let{name:e,message:t}=o,r=x_.has(e)?b_[e]:void 0;return n(new(r??b_.Error)(t),i)}case 8:return n(BigInt(o),i);case`BigInt`:return n(Object(BigInt(o)),i);case`ArrayBuffer`:return n(new Uint8Array(o).buffer,o);case`DataView`:{let{buffer:e}=new Uint8Array(o);return n(new DataView(e),o)}}if(typeof a==`string`&&S_.has(a))return n(new b_[a](o),i);throw TypeError(`unable to deserialize unsafe or unknown type: ${String(a)}`)};return r}function w_(e){return C_(new Map,e)(0)}var T_=``,{toString:E_}={},{keys:D_}=Object;function O_(e){let t=typeof e;if(t!==`object`||!e)return[0,t];let n=E_.call(e).slice(8,-1);switch(n){case`Array`:return[1,T_];case`Object`:return[2,T_];case`Date`:return[3,T_];case`RegExp`:return[4,T_];case`Map`:return[5,T_];case`Set`:return[6,T_];case`DataView`:return[1,n]}return n.includes(`Array`)?[1,n]:n.includes(`Error`)?[7,n]:[2,n]}function k_([e,t]){return e===0&&(t===`function`||t===`symbol`)}function A_(e,t,n,r){let i=(e,t)=>{let i=r.push(e)-1;return n.set(t,i),i},a=r=>{if(n.has(r))return n.get(r);let[o,s]=O_(r);switch(o){case 0:{let t=r;switch(s){case`bigint`:o=8,t=r.toString();break;case`function`:case`symbol`:if(e)throw TypeError(`unable to serialize ${s}`);t=null;break;case`undefined`:return i([-1],r)}return i([o,t],r)}case 1:{if(s){let e=r;return s===`DataView`?e=new Uint8Array(r.buffer):s===`ArrayBuffer`&&(e=new Uint8Array(r)),i([s,[...e]],r)}let e=[],t=i([o,e],r);for(let t of r)e.push(a(t));return t}case 2:{if(s)switch(s){case`BigInt`:return i([s,r.toString()],r);case`Boolean`:case`Number`:case`String`:return i([s,r.valueOf()],r)}if(t&&`toJSON`in r)return a(r.toJSON());let n=[],c=i([o,n],r);for(let t of D_(r))(e||!k_(O_(r[t])))&&n.push([a(t),a(r[t])]);return c}case 3:return i([o,r.toISOString()],r);case 4:{let{source:e,flags:t}=r;return i([o,{source:e,flags:t}],r)}case 5:{let t=[],n=i([o,t],r);for(let[n,i]of r)(e||!(k_(O_(n))||k_(O_(i))))&&t.push([a(n),a(i)]);return n}case 6:{let t=[],n=i([o,t],r);for(let n of r)(e||!k_(O_(n)))&&t.push(a(n));return n}}let{message:c}=r;return i([o,{name:s,message:c}],r)};return a}function j_(e,t={}){let n=[];return A_(!(t.json||t.lossy),!!t.json,new Map,n)(e),n}var{parse:M_,stringify:N_}=JSON,P_={json:!0,lossy:!0};function F_(e){return w_(M_(e))}function I_(e){return N_(j_(e,P_))}function L_(e){return w_(e)}function R_(e){return I_(e)}function z_(e){return F_(e)}var B_=new Map;function V_(e=B_){let t=new Map;return{serialize:n=>{let r;return n.t===`q`?r=n.m:(r=t.get(n.i),t.delete(n.i)),!(n.t===`s`&&`e`in n)&&r&&e.get(r)?.jsonSerializable===!0?dh(n,r??``):`s:${R_(n)}`},deserialize:e=>{let n=e.startsWith(`s:`)?z_(e.slice(2)):JSON.parse(e);return n.t===`q`&&n.i&&n.m&&t.set(n.i,n.m),n}}}function H_(){}function U_(e){let t=e.search(/\n\n|\r\n\r\n/);if(!(t<0))return{frame:e.slice(0,t),rest:e.slice(t+(e[t]===`\r`?4:2))}}function W_(e){let t=`message`,n=[];for(let r of e.split(/\r?\n/))r.startsWith(`:`)||(r.startsWith(`event:`)?t=r.slice(6).trimStart():r.startsWith(`data:`)&&n.push(r.slice(5).replace(/^ /,``)));return{event:t,data:n}}function G_(e){let{onConnected:t=H_,onError:n=H_,onDisconnected:r=H_,definitions:i,fetch:a=globalThis.fetch.bind(globalThis)}=e,o=e.url;e.authToken&&(o=`${o}${o.includes(`?`)?`&`:`?`}${Hm}=${encodeURIComponent(e.authToken)}`);let s=V_(i),c=new AbortController,l=!1,u,d,f,p,m=new Promise((e,t)=>{f=e,p=t});m.catch(()=>{});function h(e){l||(l=!0,p(e),n(e),r())}function g(){l||(l=!0,p(Error(`Devframe SSE stream closed`)),r())}function _(e,n){if(e===`session`){f(n),t();return}u?.(n)}async function v(e){let t=e.getReader();d=t;let n=new TextDecoder,r=``;for(;;){let{done:e,value:i}=await t.read();if(e)break;for(r+=n.decode(i,{stream:!0});;){let e=U_(r);if(!e)break;r=e.rest;let{event:t,data:n}=W_(e.frame);n.length>0&&_(t,n.join(`
8
- `))}}g()}return(async()=>{try{let e=await a(o,{headers:{accept:`text/event-stream`},signal:c.signal});if(!e.ok||!e.body)throw Error(`Devframe SSE stream request failed: ${e.status}`);await v(e.body)}catch(e){if(c.signal.aborted){g();return}h(e instanceof Error?e:Error(String(e)))}})(),{close:()=>{l=!0,c.abort(),d?.cancel().catch(()=>{})},on:e=>{u=e},post:async e=>{let t;try{t=await m}catch{return}if(l){n(Error(`Devframe SSE channel is closed; message dropped`));return}try{let n=await a(o,{method:`POST`,headers:{"content-type":`text/plain; charset=utf-8`,[Rm]:t},body:e});if(n.status===200){let e=await n.text();e&&u?.(e);return}if(!n.ok)throw Error(`Devframe SSE POST failed: ${n.status}`)}catch(e){n(e instanceof Error?e:Error(String(e)))}},serialize:s.serialize,deserialize:s.deserialize}}function K_(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var q_=Math.random.bind(Math),J_=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function Y_(e=21){let t=``,n=e;for(;n--;)t+=J_[q_()*64|0];return t}var X_=6e4,Z_=e=>e,Q_=Z_,{clearTimeout:$_,setTimeout:ev}=globalThis;function tv(e,t){let{post:n,on:r,off:i=()=>{},eventNames:a=[],serialize:o=Z_,deserialize:s=Q_,resolver:c,bind:l=`rpc`,timeout:u=X_,proxify:d=!0}=t,f=!1,p=new Map,m,h;async function g(e,r,i,a){if(f)throw Error(`[birpc] rpc is closed, cannot call "${e}"`);let s={m:e,a:r,t:`q`};a&&(s.o=!0);let c=async e=>n(o(e));if(i){await c(s);return}if(m)try{await m}finally{m=void 0}let{promise:l,resolve:d,reject:g}=K_(),_=Y_();s.i=_;let v;async function y(n=s){return u>=0&&(v=ev(()=>{try{if(t.onTimeoutError?.call(h,e,r)!==!0)throw Error(`[birpc] timeout on calling "${e}"`)}catch(e){g(e)}p.delete(_)},u),typeof v==`object`&&(v=v.unref?.())),p.set(_,{resolve:d,reject:g,timeoutId:v,method:e}),await c(n),l}try{t.onRequest?await t.onRequest.call(h,s,y,d):await y()}catch(e){if(t.onGeneralError?.call(h,e)!==!0)throw e;return}finally{$_(v),p.delete(_)}return l}let _={$call:(e,...t)=>g(e,t,!1),$callOptional:(e,...t)=>g(e,t,!1,!0),$callEvent:(e,...t)=>g(e,t,!0),$callRaw:e=>g(e.method,e.args,e.event,e.optional),$rejectPendingCalls:y,get $closed(){return f},get $meta(){return t.meta},$close:v,$functions:e};h=d?new Proxy({},{get(t,n){if(Object.hasOwn(_,n))return _[n];if(n===`then`&&!a.includes(`then`)&&!(`then`in e))return;let r=(...e)=>g(n,e,!0);if(a.includes(n))return r.asEvent=r,r;let i=(...e)=>g(n,e,!1);return i.asEvent=r,i}}):_;function v(e){f=!0,p.forEach(({reject:t,method:n})=>{let r=Error(`[birpc] rpc is closed, cannot call "${n}"`);if(e)return e.cause??=r,t(e);t(r)}),p.clear(),i(b)}function y(e){let t=Array.from(p.values()).map(({method:t,reject:n})=>e?e({method:t,reject:n}):n(Error(`[birpc]: rejected pending call "${t}".`)));return p.clear(),t}async function b(r,...i){let a;try{a=s(r)}catch(e){if(t.onGeneralError?.call(h,e)!==!0)throw e;return}if(a.t===`q`){let{m:r,a:s,o:u}=a,d,f,p=await(c?c.call(h,r,e[r]):e[r]);if(u&&(p||=()=>void 0),!p)f=Error(`[birpc] function "${r}" not found`);else try{d=await p.apply(l===`rpc`?h:e,s)}catch(e){f=e}if(a.i){if(f&&t.onFunctionError&&t.onFunctionError.call(h,f,r,s)===!0)return;if(!f)try{await n(o({t:`s`,i:a.i,r:d}),...i);return}catch(e){if(f=e,t.onGeneralError?.call(h,e,r,s)!==!0)throw e}try{await n(o({t:`s`,i:a.i,e:f}),...i)}catch(e){if(t.onGeneralError?.call(h,e,r,s)!==!0)throw e}}}else{let{i:e,r:t,e:n}=a,r=p.get(e);r&&($_(r.timeoutId),n?r.reject(n):r.resolve(t)),p.delete(e)}}return m=r(b),h}function nv(e,t){let{channel:n,rpcOptions:r={}}=t;return tv(e,{...n,timeout:-1,...r,proxify:!1})}function rv(e){let{transport:t,authToken:n,connectionMeta:r,events:i,clientRpc:a,rpcOptions:o={},callTimeout:s=0}=e,c=!1,l=`connecting`,u=null,d=Promise.withResolvers();function f(e,t=null){if(t?u=t:e===`connected`&&(u=null),e===l)return;let n=l;l=e,i.emit(Q.client.connectionStatus,e,n)}let p=new Set;function m(e){for(let t of[...p])t.reject(e)}function h(){return l===`disconnected`||l===`error`?new Ph(`connection`,`[devframe] Not connected to the devframe server`,{cause:u??void 0}):l===`unauthorized`?new Ph(`auth`,`[devframe] Not authorized by the devframe server`,{cause:u??void 0}):null}function g(e,t){return new Promise((n,r)=>{let a=!1,o,c={reject(e){a||(l(),i.emit(Q.client.error,e,t),r(e))}};function l(){a=!0,p.delete(c),o&&clearTimeout(o)}p.add(c),s>0&&(o=setTimeout(()=>{c.reject(new Ph(`timeout`,`[devframe] RPC call "${t}" timed out after ${s}ms`))},s)),e.then(e=>{a||(l(),n(e))},e=>{if(a)return;l();let n=e instanceof Error?e:Error(String(e));i.emit(Q.client.error,n,t),r(n)})})}let _=new Map;for(let e of r.jsonSerializableMethods??[])_.set(e,{jsonSerializable:!0});let v=e.createChannel({definitions:_,onError(e){f(`error`,e),i.emit(Q.client.connectionError,e),m(new Ph(`connection`,`[devframe] Connection to the devframe server failed`,{cause:e}))},onDisconnected(){l!==`error`&&f(`disconnected`),m(new Ph(`connection`,`[devframe] Disconnected from the devframe server`,{cause:u??void 0}))}}),y=nv(a.functions,{channel:v,rpcOptions:o});a.register({name:Q.broadcast.authRevoked,type:`event`,handler:()=>{c=!1;let e=new Ph(`auth`,`[devframe] The devframe server revoked this client's trust`);f(`unauthorized`,e),i.emit(Q.client.connectionError,e),m(e),i.emit(Q.client.isTrustedUpdated,!1)}});let b=n;async function x(e){b=e;let t=await y.$call(`anonymous:devframe:auth`,{authToken:e,ua:navigator.userAgent,origin:location.origin});if(c=t.isTrusted,c)d.resolve(!0),f(`connected`);else{let e=new Ph(`auth`,`[devframe] The devframe server refused this client's credentials`);f(`unauthorized`,e),i.emit(Q.client.connectionError,e)}return i.emit(Q.client.isTrustedUpdated,c),t.isTrusted}async function S(e){let t=(await y.$call(`anonymous:devframe:auth:exchange`,{code:e,ua:navigator.userAgent,origin:location.origin}))?.authToken??null;return t&&(b=t,c=!0,d.resolve(!0),f(`connected`),i.emit(Q.client.isTrustedUpdated,!0)),t}async function C(e={}){await y.$call(`anonymous:devframe:auth:request-code`,{ua:navigator.userAgent,origin:location.origin,...e.reissue?{reissue:!0}:{}})}async function w(){return c?!0:x(b??``)}async function ee(e=6e4){if(c&&d.resolve(!0),e<=0)return d.promise;let t;try{return await Promise.race([d.promise,new Promise((n,r)=>{t=setTimeout(()=>{r(Error(`[devframe] Timeout waiting for rpc to be trusted`))},e)})]),c}finally{clearTimeout(t)}}return{transport:t,get isTrusted(){return c},get status(){return l},get connectionError(){return u},requestTrust:w,requestTrustWithToken:x,requestTrustWithCode:S,requestAuthCode:C,ensureTrusted:ee,call:(...e)=>{let t=String(e[0]),n=h();return n?(i.emit(Q.client.error,n,t),Promise.reject(n)):g(y.$call(...e),t)},callEvent:(...e)=>{let t=h();if(t){i.emit(Q.client.error,t,String(e[0]));return}return y.$callEvent(...e)},callOptional:(...e)=>{let t=String(e[0]),n=h();return n?(i.emit(Q.client.error,n,t),Promise.reject(n)):g(y.$callOptional(...e),t)},close:()=>{v.close()}}}function iv(e,t,n){let r=(()=>{try{return new URL(t,n.href)}catch{return new URL(n.href)}})();if(e&&typeof e==`object`){if(e.host!=null||e.port!=null){let t=e.host??`${r.hostname}:${e.port}`;return new URL(e.path??`/`,`${r.protocol}//${t}`).href}return new URL(e.path??``,r).href}let i=e??``;return/^https?:\/\//i.test(i)?i:new URL(i,r).href}function av(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},sseOptions:s={},callTimeout:c=0}=e,l=iv(n.sse,r??`./`,location);return rv({transport:`sse`,authToken:t,connectionMeta:n,events:i,clientRpc:a,rpcOptions:o,callTimeout:c,createChannel:e=>G_({url:l,authToken:t,definitions:e.definitions,...s,onConnected(){s.onConnected?.()},onError(t){e.onError(t),s.onError?.(t)},onDisconnected(){e.onDisconnected(),s.onDisconnected?.()}})})}function ov(e){let{name:t,message:n,cause:r,...i}=e,a=r instanceof Error?r:sv(r)?ov(r):r,o=a===void 0?Error(n):Error(n,{cause:a});return o.name=t,Object.assign(o,i),o}function sv(e){return typeof e==`object`&&!!e&&typeof e.message==`string`&&typeof e.name==`string`}function cv(e){return typeof e==`object`&&!!e&&e.type===`static`&&typeof e.path==`string`}function lv(e){return typeof e==`object`&&!!e&&e.type===`query`&&typeof e.records==`object`&&e.records!==null}function uv(e){return typeof e==`object`&&!!e&&(`output`in e||`error`in e)}function dv(e){if(e.error)throw ov(e.error);return e.output}function fv(e){return e.some(e=>e!=null)}function pv(e){return typeof e==`object`&&e&&`serialization`in e&&`data`in e?e.data:e}function mv(e,t){let n=new Map,r=new Map;function i(e,t){return t===`structured-clone`&&Array.isArray(e)?L_(e):e}function a(e,t){return i(pv(e),t)}async function o(e){n.has(e.path)||n.set(e.path,t(e.path).then(t=>a(t,e.serialization)));let r=await n.get(e.path);return uv(r)?dv(r):r}async function s(e,n){return r.has(e)||r.set(e,t(e).then(e=>a(e,n))),await r.get(e)}async function c(t,n){if(!(t in e))throw Error(`[devframe-rpc] Function "${t}" not found in dump store`);let r=e[t];if(cv(r)){if(fv(n))throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`);return await o(r)}if(lv(r)){let e=Um(n),i=r.records[e];if(i)return dv(await s(i,r.serialization));if(r.fallback)return dv(await s(r.fallback,r.serialization));throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`)}if(!fv(n))return r;throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`)}return{call:async(e,t)=>await c(e,t),callOptional:async(t,n)=>{if(t in e)return await c(t,n)},callEvent:async(e,t)=>{}}}async function hv(e){let t=mv(await e.fetchJsonFromBases(zm),e.fetchJsonFromBases);return{transport:`static`,isTrusted:!0,status:`connected`,connectionError:null,requestTrust:async()=>!0,requestTrustWithToken:async()=>!0,requestTrustWithCode:async()=>null,requestAuthCode:async()=>{},ensureTrusted:async()=>!0,call:(...e)=>t.call(e[0],e.slice(1)),callEvent:(...e)=>t.callEvent(e[0],e.slice(1)),callOptional:(...e)=>t.callOptional(e[0],e.slice(1)),close:()=>{}}}var gv=256,_v=class extends Error{name=`StreamClosedError`};function vv(e={}){let t=e.id??h_(),n=Math.max(0,e.replayWindow??0),r=hh(),i=new AbortController,a=[],o=!1,s=0;function c(e){if(o)throw new _v(`Cannot write to a closed stream "${t}"`);s+=1,n>0&&(a.push({seq:s,chunk:e}),a.length>n&&(a.length-n===1?a.shift():a.splice(0,a.length-n))),r.emit(`chunk`,s,e)}function l(e){if(o)return;o=!0;let t=bv(e);i.abort(e),r.emit(`end`,t)}function u(){o||(o=!0,i.signal.aborted||i.abort(`stream closed`),r.emit(`end`,void 0))}function d(e){o||i.signal.aborted||i.abort(e??`aborted`)}let f=new WritableStream({write(e){c(e)},close(){u()},abort(e){l(e)}});return{id:t,signal:i.signal,get closed(){return o},get lastSeq(){return s},write:c,error:l,close:u,abort:d,writable:f,events:r,buffer:a}}function yv(e={}){let t=e.id??h_(),n=Math.max(1,e.highWaterMark??gv),r=[],i=0,a=!1,o=!1,s,c,l,u;function d(){if(c){if(r.length>0){let e=r.shift(),t=c;c=void 0,t.resolve({value:e,done:!1});return}if(a){let e=c;if(c=void 0,s){let t=Error(s.message);t.name=s.name,e.reject(t)}else e.resolve({value:void 0,done:!0})}}}function f(){if(l){for(;r.length>0;){let e=r.shift();try{l.enqueue(e)}catch{break}}if(a&&l){try{if(s){let e=Error(s.message);e.name=s.name,l.error(e)}else l.close()}catch{}l=void 0}}}function p(t,s){if(!(a||o)&&!(t<=i)){if(i=t,r.push(s),r.length>n){let t=r.length-n;r.splice(0,t),e.onOverflow?.(t)}d(),u&&f()}}function m(e){a||(a=!0,s=e,d(),u&&f())}function h(){o||a||(o=!0,e.onCancel?.(),m(void 0))}function g(){return u||(u=new ReadableStream({start(e){l=e,f()},cancel(){h()}}),u)}return{id:t,get cancelled(){return o},get done(){return a},get lastSeenSeq(){return i},get readable(){return g()},cancel:h,_push:p,_end:m,[Symbol.asyncIterator](){return{next(){if(r.length>0)return Promise.resolve({value:r.shift(),done:!1});if(a){if(s){let e=Error(s.message);return e.name=s.name,Promise.reject(e)}return Promise.resolve({value:void 0,done:!0})}return new Promise((e,t)=>{c={resolve:e,reject:t}})},return(){return h(),Promise.resolve({value:void 0,done:!0})}}}}}function bv(e){if(e instanceof Error)return{name:e.name||`Error`,message:e.message};if(typeof e==`string`)return{name:`Error`,message:e};try{return{name:`Error`,message:JSON.stringify(e)}}catch{return{name:`Error`,message:String(e)}}}var xv=``;function Sv(e,t){return`${e}${xv}${t}`}function Cv(e){let t=new Map,n=new Map;e.client.register({name:Q.broadcast.streamingChunk,type:`event`,handler(e,n,r,i){t.get(Sv(e,n))?._push(r,i)}}),e.client.register({name:Q.broadcast.streamingEnd,type:`event`,handler(e,n,r){let i=Sv(e,n),a=t.get(i);a&&(a._end(r),t.delete(i))}}),e.client.register({name:Q.broadcast.streamingUploadCancel,type:`event`,handler(e,t){let r=Sv(e,t),i=n.get(r);i&&(i.abort(`server cancelled upload`),n.delete(r))}}),e.events.on(Q.client.isTrustedUpdated,n=>{if(n)for(let[n,r]of t){if(r.cancelled||r.done)continue;let t=n.indexOf(xv);if(t<0)continue;let i=n.slice(0,t),a=n.slice(t+1);e.callEvent(`devframe:streaming:subscribe`,i,a,{afterSeq:r.lastSeenSeq})}});function r(n,r,i={}){let a=Sv(n,r),o=t.get(a);if(o)return o;let s=yv({id:r,highWaterMark:i.highWaterMark,onOverflow(e){console.warn(`[devframe] DF0029: Stream "${n}#${r}" dropped ${e} chunk(s) after exceeding the client high-water mark.`)},onCancel(){e.callEvent(`devframe:streaming:cancel`,n,r),t.delete(a)}});if(t.set(a,s),e.isTrusted)e.callEvent(`devframe:streaming:subscribe`,n,r,{afterSeq:0});else{let i=e.events.on(Q.client.isTrustedUpdated,o=>{o&&(i(),t.has(a)&&!s.cancelled&&!s.done&&e.callEvent(`devframe:streaming:subscribe`,n,r,{afterSeq:s.lastSeenSeq}))})}return s}function i(t,r){let i=Sv(t,r),a=n.get(i);if(a)return a;let o=vv({id:r});return o.events.on(`chunk`,(n,i)=>{e.callEvent(`devframe:streaming:upload-chunk`,t,r,n,i)}),o.events.on(`end`,a=>{e.callEvent(`devframe:streaming:upload-end`,t,r,a),n.delete(i)}),n.set(i,o),o}return{subscribe:r,upload:i}}function wv(){}var Tv=new Map;function Ev(e){let t=e.url;e.authToken&&(t=`${t}?${Hm}=${encodeURIComponent(e.authToken)}`);let n=new WebSocket(t),{onConnected:r=wv,onError:i=wv,onDisconnected:a=wv,definitions:o=Tv}=e;n.addEventListener(`open`,e=>{r(e)}),n.addEventListener(`error`,e=>{let t=e instanceof Error?e:Error(e.type);i(t)}),n.addEventListener(`close`,e=>{a(e)});let s=V_(o);return{close:()=>{n.close()},on:e=>{n.addEventListener(`message`,t=>{e(t.data)})},post:e=>{if(n.readyState===WebSocket.OPEN){n.send(e);return}if(n.readyState===WebSocket.CONNECTING){let t=()=>{i(),n.readyState===WebSocket.OPEN&&n.send(e)},r=()=>i();function i(){n.removeEventListener(`open`,t),n.removeEventListener(`close`,r)}n.addEventListener(`open`,t),n.addEventListener(`close`,r);return}i(Error(`Devframe WebSocket is not open; message dropped`))},serialize:s.serialize,deserialize:s.deserialize}}function Dv(e,t,n){let r=(()=>{try{return new URL(t,n.href)}catch{return new URL(n.href)}})(),i=r.protocol===`https:`?`wss:`:`ws:`;if(e&&typeof e==`object`){if(e.host!=null||e.port!=null){let t=e.host??`${r.hostname}:${e.port}`,n=new URL(e.path??`/`,`${i}//${t}`);return n.protocol=i,n.href}let t=new URL(e.path??``,r);return t.protocol=i,t.href}if(typeof e==`number`)return`${i}//${r.hostname}:${e}`;let a=e??``;if(/^wss?:\/\//i.test(a))return a;if(/^https?:\/\//i.test(a))return xh(a,/^https/i.test(a)?`wss://`:`ws://`);let o=new URL(a,r);return o.protocol=i,o.href}function Ov(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},wsOptions:s={},callTimeout:c=0}=e,l=Dv(n.websocket,r??`./`,location);return rv({transport:`websocket`,authToken:t,connectionMeta:n,events:i,clientRpc:a,rpcOptions:o,callTimeout:c,createChannel:e=>Ev({url:l,authToken:t,definitions:e.definitions,...s,onConnected(e){s.onConnected?.(e)},onError(t){e.onError(t),s.onError?.(t)},onDisconnected(t){e.onDisconnected(),s.onDisconnected?.(t)}})})}function kv(e){return e.includes(`:`)}function Av(e,t){return kv(t)?t:`${e}:${t}`}function jv(e){return{async get(t){return(await e()).value()[t]},async set(t,n){(await e()).mutate(e=>{e[t]=n})},async delete(t){(await e()).mutate(e=>{delete e[t]})},async all(){return(await e()).value()},async onChange(t){return(await e()).on(`updated`,e=>t(e))}}}function Mv(e,t,n){let r=`devframe:settings:${n}:${t}`,i;function a(){return i||=e.sharedState.get(r,{initialValue:{}}),i}return jv(a)}function Nv(e,t){return{global:Mv(e,t,`global`),project:Mv(e,t,`project`)}}function Pv(e,t){return{namespace:t,base:e,rpc:{namespace:t,register(n){if(kv(n.name))throw Error(`[devframe] Scoped client RPC registration for namespace "${t}" received an already-namespaced function name "${n.name}". Pass a bare name without a ":" separator.`);e.client.register({...n,name:`${t}:${n.name}`})},call:((n,...r)=>e.call(Av(t,n),...r)),callEvent:((n,...r)=>e.callEvent(Av(t,n),...r)),callOptional:((n,...r)=>e.callOptional(Av(t,n),...r)),sharedState:((n,r)=>e.sharedState.get(Av(t,n),r)),streaming:{subscribe:(n,r,i)=>e.streaming.subscribe(Av(t,n),r,i),upload:(n,r)=>e.streaming.upload(Av(t,n),r)}},settings:Nv(e,t),scope:e.scope}}var Fv=128;function Iv(e){return e.replace(/[^\w-]+/g,`_`).slice(0,Fv)}function Lv(e,t){return t.safety?t.safety:e===`static`||e===`query`||e==null?`read`:`action`}var Rv=Object.freeze({type:`object`,additionalProperties:!0});function zv(e){let t=e[`~standard`];if(t.jsonSchema)try{return t.jsonSchema.input({target:`draft-2020-12`})}catch{return Rv}return Rv}function Bv(e){if(!e||e.length===0)return{type:`object`,properties:{}};let t={},n=[];for(let r=0;r<e.length;r++){let i=`arg${r}`;t[i]=zv(e[r]),n.push(i)}return{type:`object`,properties:t,required:n,additionalProperties:!1}}function Vv(e,t){if(Array.isArray(e))return e;if(e==null)return[];if(typeof e!=`object`)return;let n=e;if(t!=null)return Array.from({length:t},(e,t)=>n[`arg${t}`]);if(`arg0`in n){let e=[];for(;`arg${e.length}`in n;)e.push(n[`arg${e.length}`]);return e}return Object.keys(n).length===0?[]:void 0}function Hv(e,t){return Vv(e,t)??[e]}function Uv(){if(typeof document<`u`){let e=document.modelContext;if(e)return e}if(typeof navigator<`u`){let e=navigator.modelContext;if(e)return e}}function Wv(e,t={}){let n=t.modelContext??Uv();if(!n)return()=>{};let r=n,i=new Map,a=new Map;function o(t,n){let o=Iv(t.name),s=a.get(o);if(s&&s!==t.name){console.warn(`[devframe] WebMCP tool name "${o}" (from "${t.name}") collides with "${s}"; keeping the first registration.`);return}let c=new AbortController,l=Lv(t.type,n),u=r.registerTool({name:o,description:n.description,inputSchema:Bv(t.args),annotations:{title:n.title??t.name,readOnlyHint:l===`read`,destructiveHint:l===`destructive`},execute:n=>Gv(t,e.context,n)},{signal:c.signal});u&&`then`in u&&u.then(()=>{},()=>{}),a.set(o,t.name),i.set(t.name,()=>{c.abort(),u&&`unregister`in u&&typeof u.unregister==`function`&&u.unregister(),a.delete(o)})}function s(t){let n=t?[t]:[...e.definitions.keys()];for(let t of n){i.get(t)?.(),i.delete(t);let n=e.definitions.get(t),r=n?.agent;n&&r&&o(n,r)}}s();let c=e.onChanged(e=>s(e));return()=>{c();for(let e of i.values())e();i.clear()}}async function Gv(e,t,n){try{let r=Hv(n,e.args?.length);return{content:[{type:`text`,text:Kv(await(await lh(e,t))(...r))}]}}catch(e){return{isError:!0,content:[{type:`text`,text:qv(e)}]}}}function Kv(e){return e===void 0?`undefined`:typeof e==`string`?e:JSON.stringify(e,null,2)}function qv(e){if(!(e instanceof Error))return String(e);let t=e.cause instanceof Error?` (cause: ${e.cause.message})`:``;return`${e.name}: ${e.message}${t}`}var Jv=`modulepreload`,Yv=function(e,t){return new URL(e,t).href},Xv={},Zv=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=Yv(t,n),t=s(t),t in Xv)return;Xv[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:Jv,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};function Qv(e,t){if(t.backend===`static`)return`static`;let n=t.websocket!==void 0,r=t.sse!==void 0;if(e===`websocket`){if(!n)throw Error(`[devframe] transport: 'websocket' was requested, but this server does not advertise a WebSocket endpoint`);return`websocket`}if(e===`sse`){if(!r)throw Error(`[devframe] transport: 'sse' was requested, but this server does not advertise an SSE endpoint`);return`sse`}if(t.backend===`sse`&&r)return`sse`;if(n)return`websocket`;if(r)return`sse`;throw Error(`[devframe] This server advertises no RPC transport (backend "none"), so there is nothing to connect to. Enable the WebSocket or SSE endpoint on the server, or use its static/MCP surfaces instead.`)}async function $v(e={}){let{baseURL:t=`./`,rpcOptions:n={},cacheOptions:r=!1}=e,i=hh(),a=Array.isArray(t)?t:[t],o=await Nh(e),{connectionMeta:s,metaBaseUrl:c,authToken:l}=o,u=a[0]??`./`;try{u=new URL(`.`,c).href}catch{}let d=new Wm({functions:[],...typeof e.cacheOptions==`object`?e.cacheOptions:{}}),f={rpc:void 0},p=new uh(f),m=e.webmcp===!1?void 0:Wv(p),h,g=!1;async function _(e){let t=[u,...a.filter(e=>e!==u)].filter(e=>e!=null),n=[];for(let r of t)try{return await fetch(bh(e,r)).then(t=>{if(!t.ok)throw Error(`Failed to fetch ${e} from ${r}: ${t.status}`);return t.json()})}catch(e){n.push(e)}throw Error(`Failed to load ${e} from ${t.join(`, `)}`,{cause:n})}let v={authToken:l,connectionMeta:s,metaBaseUrl:c,events:i,clientRpc:p,callTimeout:e.callTimeout,rpcOptions:{...n,async onRequest(e,t,i){if(await n.onRequest?.call(this,e,t,i),r&&d?.validate(e.m)){if(d.has(e.m,e.a))return i(d.cached(e.m,e.a));let n=await t(e);d.apply(e,n)}else await t(e)}}},y=Qv(e.transport??`auto`,s),b=y===`static`?await hv({fetchJsonFromBases:_}):y===`sse`?av({...v,sseOptions:e.sseOptions}):Ov({...v,wsOptions:e.wsOptions}),x;try{x=new BroadcastChannel(`devframe-auth`)}catch{}let S,C=!1;function w(e){return((...t)=>C||!S?e(...t):S.then(()=>e(...t)))}function ee(){g=!0;try{h?.(),m?.()}finally{try{x?.close()}finally{b.close?.()}}}let T={events:i,get isTrusted(){return b.isTrusted},get status(){return b.status},get connectionError(){return b.connectionError},get transport(){return b.transport??y},get connection(){return o},connectionMeta:s,ensureTrusted:b.ensureTrusted,requestTrust:b.requestTrust,requestTrustWithToken:async e=>(kh(e),o={...o,authToken:e},b.requestTrustWithToken(e)),requestTrustWithCode:async e=>{let t=await b.requestTrustWithCode(e);if(!t)return!1;kh(t),o={...o,authToken:t};try{x?.postMessage({type:`auth-update`,authToken:t})}catch{}return!0},requestAuthCode:e=>b.requestAuthCode(e),call:w(b.call),callEvent:w(b.callEvent),callOptional:w(b.callOptional),client:p,sharedState:void 0,services:void 0,streaming:void 0,cacheManager:d,scope:void 0,close:ee};T.sharedState=y_(T),T.streaming=Cv(T),T.services=zh(T);let E=new Map;T.scope=(e=>{if(!e)return T;let t=E.get(e);return t||(t=Pv(T,e),E.set(e,t)),t}),f.rpc=T;function te(){try{return typeof window<`u`&&window.self===window.top}catch{return!1}}async function ne(){if(e.simpleAuth!==!1&&te()&&typeof globalThis.prompt==`function`)for(await T.requestAuthCode().catch(()=>{});!T.isTrusted;){let e=globalThis.prompt(`devframe: enter the authentication code shown in your terminal`);if(e==null)return;let t=e.trim();if(t&&await T.requestTrustWithCode(t))return}}async function re(){let t=await b.requestTrust(),n=e.otpParam??`devframe_otp`,r=n?await Rh(T,{param:n}):!1;t||r||T.isTrusted||await ne()}return S=re().then(()=>{C=!0},()=>{C=!0}),s.mcp&&Zv(async()=>{let{setupBrowserAgentRpcBridge:e}=await import(`./browser-agent-rpc-B1ctDd61.js`);return{setupBrowserAgentRpcBridge:e}},[],import.meta.url).then(({setupBrowserAgentRpcBridge:e})=>{g||(h=e(T))}).catch(()=>{}),x&&(x.onmessage=e=>{e.data?.type===`auth-update`&&e.data.authToken&&T.requestTrustWithToken(e.data.authToken)}),T}var ey=$v,ty=F([]),ny=F(!0),ry=1;function iy(e){ny.value&&ty.value.push({...e,id:ry++})}function ay(){ty.value=[]}var oy=M({connected:!1,status:`connecting`,error:null,backend:null}),sy=cn(null);function cy(e){let t=e.call.bind(e);e.call=async(e,...n)=>{let r=Date.now();try{let i=await t(e,...n);return!e.includes(`list-functions`)&&!e.includes(`list-state-keys`)&&e!==`devframe:rpc:server-state:get`&&iy({type:`call`,method:e,args:n,result:i,duration:Date.now()-r,time:r}),i}catch(t){throw!e.includes(`list-functions`)&&!e.includes(`list-state-keys`)&&e!==`devframe:rpc:server-state:get`&&iy({type:`call`,method:e,args:n,error:t,duration:Date.now()-r,time:r}),t}};let n=e.callEvent.bind(e);e.callEvent=(e,...t)=>(!e.includes(`list-functions`)&&!e.includes(`list-state-keys`)&&e!==`devframe:rpc:server-state:subscribe`&&iy({type:`call`,method:e,args:t,duration:0,time:Date.now()}),n(e,...t));let r=e.client.definitions.get(`devframe:rpc:client-state:updated`);if(r&&r.handler){let e=r.handler;r.handler=(t,n,r)=>(iy({type:`state`,key:t,value:n,syncId:r,time:Date.now()}),e(t,n,r))}let i=e.client.definitions.get(`devframe:rpc:client-state:patch`);if(i&&i.handler){let e=i.handler;i.handler=(t,n,r)=>(iy({type:`state`,key:t,patches:n,syncId:r,time:Date.now()}),e(t,n,r))}}function ly(e){oy.status=e.status,oy.connected=e.status===`connected`,oy.error=e.connectionError?.message??null}async function uy(){try{let e=await ey();cy(e),sy.value=e,oy.backend=e.connectionMeta.backend,ly(e),e.events.on(`connection:status`,()=>ly(e)),e.connectionMeta.backend===`websocket`&&e.ensureTrusted(5e3).catch(()=>{})}catch(e){oy.status=`error`,oy.error=e?.message??String(e)}}function dy(){return sy}function fy(){return oy.backend===`static`}var py=R({__name:`FeedbackSpinner`,props:{size:{default:`1em`}},setup(e){let t=e,n=Y(()=>typeof t.size==`number`?`${t.size}px`:t.size);return(e,t)=>(H(),U(`span`,{class:`border-2 border-current border-t-transparent rounded-full inline-block animate-spin`,style:he({width:n.value,height:n.value}),role:`status`,"aria-label":`Loading`},null,4))}}),my=R({__name:`ActionButton`,props:{as:{},to:{},href:{},icon:{},variant:{default:`action`},size:{default:`md`},loading:{type:Boolean},disabled:{type:Boolean}},setup(e){let t=e,n=Y(()=>t.as?t.as:t.href!=null||t.to!=null?`a`:`button`),r=Y(()=>n.value===`a`),i=Y(()=>n.value===`button`),a=Y(()=>t.size===`sm`),o=Y(()=>t.variant===`primary`?a.value?`btn-primary text-sm`:`btn-primary`:t.variant===`text`?a.value?`btn-text text-sm`:`btn-text`:a.value?`btn-action-sm`:`btn-action`),s=Y(()=>t.disabled||t.loading);return(t,a)=>(H(),W(ca(n.value),{class:k([o.value,{"pointer-events-none op-mute":s.value&&!i.value}]),href:r.value?e.href??e.to:void 0,to:e.as&&e.to!=null?e.to:void 0,disabled:i.value?s.value:void 0,"aria-disabled":s.value||void 0,"aria-busy":e.loading||void 0},{default:L(()=>[e.loading?(H(),W(py,{key:0,size:`1em`})):e.icon?(H(),U(`span`,{key:1,class:k(e.icon),"aria-hidden":`true`},null,2)):J(``,!0),ma(t.$slots,`default`)]),_:3},8,[`class`,`href`,`to`,`disabled`,`aria-disabled`,`aria-busy`]))}}),hy={class:`min-w-0`},gy=R({__name:`FeedbackTip`,props:{type:{default:`info`},icon:{}},setup(e){let t=e,n={info:`bg-blue-400/10 border-blue-500/20 text-blue-700 dark:text-blue-300`,success:`bg-green-400/10 border-green-500/20 text-green-700 dark:text-green-300`,warning:`bg-amber-400/10 border-amber-500/20 text-amber-700 dark:text-amber-300`,error:`bg-red-400/10 border-red-500/20 text-red-700 dark:text-red-300`},r=Y(()=>n[t.type]);return(t,n)=>(H(),U(`div`,{class:k([`text-sm p-3 border rounded-lg flex gap-2`,r.value]),role:`note`},[e.icon?(H(),U(`span`,{key:0,class:k([e.icon,`mt-0.5 shrink-0`]),"aria-hidden":`true`},null,2)):J(``,!0),G(`div`,hy,[ma(t.$slots,`default`)])],2))}}),_y={class:`json`},vy={key:0,class:`json-key`},yy={key:1,class:`json-colon`},by={key:0,class:`json-key`},xy={key:1,class:`json-colon`},Sy={class:`json-meta`},Cy={key:2},wy={key:0,class:`json-key`},Ty={key:1,class:`json-colon`},Ey={key:2,class:`json-meta`},Dy={key:3,class:`json-meta`},Oy={key:0,class:`json-children`},ky={key:1,class:`json-row`},Ay={class:`json-meta`},$=R({__name:`JsonView`,props:{value:{},name:{},path:{default:``},depth:{default:0},expandDepth:{default:1},highlightPaths:{}},setup(e){let t=e,n=Y(()=>Array.isArray(t.value)?`array`:t.value!==null&&typeof t.value==`object`?`object`:`primitive`),r=Y(()=>n.value===`array`?t.value.map((e,t)=>[String(t),e]):n.value===`object`?Object.entries(t.value):[]),i=F(t.depth<t.expandDepth),a=Y(()=>r.value.length===0),o=Y(()=>!!t.path&&t.highlightPaths?.has(t.path));function s(e){return t.path?`${t.path}.${e}`:e}function c(e){return e==null?`v-null`:`v-${typeof e}`}function l(e){return e===void 0?`undefined`:e===null?`null`:typeof e==`string`?JSON.stringify(e):String(e)}let u=Y(()=>n.value===`array`?`[`:`{`),d=Y(()=>n.value===`array`?`]`:`}`),f=Y(()=>n.value===`array`?`[${r.value.length}]`:`{${r.value.length}}`);return(t,p)=>{let m=oa(`JsonView`,!0);return H(),U(`div`,_y,[n.value===`primitive`?(H(),U(`div`,{key:0,class:k([`json-row`,{changed:o.value}])},[e.name===void 0?J(``,!0):(H(),U(`span`,vy,A(e.name),1)),e.name===void 0?J(``,!0):(H(),U(`span`,yy,`:`)),G(`span`,{class:k(c(e.value))},A(l(e.value)),3)],2)):a.value?(H(),U(`div`,{key:1,class:k([`json-row`,{changed:o.value}])},[e.name===void 0?J(``,!0):(H(),U(`span`,by,A(e.name),1)),e.name===void 0?J(``,!0):(H(),U(`span`,xy,`:`)),G(`span`,Sy,A(u.value)+A(d.value),1)],2)):(H(),U(`div`,Cy,[G(`div`,{class:k([`json-row json-toggle`,{changed:o.value}]),onClick:p[0]||=e=>i.value=!i.value},[G(`span`,{class:k([`json-caret`,{open:i.value}])},`▶`,2),e.name===void 0?J(``,!0):(H(),U(`span`,wy,A(e.name),1)),e.name===void 0?J(``,!0):(H(),U(`span`,Ty,`:`)),i.value?(H(),U(`span`,Ey,A(u.value),1)):(H(),U(`span`,Dy,A(f.value),1))],2),i.value?(H(),U(`div`,Oy,[(H(!0),U(B,null,fa(r.value,([t,n])=>(H(),W(m,{key:t,name:t,value:n,path:s(t),depth:e.depth+1,"expand-depth":e.expandDepth,"highlight-paths":e.highlightPaths},null,8,[`name`,`value`,`path`,`depth`,`expand-depth`,`highlight-paths`]))),128))])):J(``,!0),i.value?(H(),U(`div`,ky,[G(`span`,Ay,A(d.value),1)])):J(``,!0)]))])}}}),jy={class:`pane`},My={key:0,class:`center`},Ny={class:`section-title`},Py={key:0,class:`empty`},Fy={key:1,class:`cards`},Iy=[`onClick`],Ly={class:`card-title`},Ry={class:`badge flag`},zy={class:`id`},By={key:0,class:`id-note`},Vy={class:`desc`},Hy={key:1,class:`tags`},Uy=[`onUpdate:modelValue`,`aria-invalid`,`aria-describedby`,`onInput`],Wy={style:{"margin-top":`8px`,display:`flex`,gap:`8px`,"align-items":`center`}},Gy={key:0,class:`note`},Ky={key:4,class:`result`},qy={class:`result-head`},Jy={key:0,class:`ok`},Yy={key:1,class:`fail`},Xy={key:2,class:`muted`},Zy={class:`section-title`},Qy={key:2,class:`empty`},$y={key:3,class:`cards`},eb=[`onClick`],tb={class:`card-title`},nb={key:0,class:`badge flag`},rb={class:`id`},ib={key:0,class:`desc`},ab={style:{"margin-top":`8px`,display:`flex`,gap:`8px`,"align-items":`center`}},ob={key:0,class:`note`},sb={key:0,class:`result`},cb={class:`result-head`},lb={key:0,class:`ok`},ub={key:1,class:`fail`},db={key:2,class:`muted`},fb=R({__name:`AgentView`,props:{manifest:{},isStatic:{type:Boolean},results:{},pending:{}},emits:[`invoke`,`read`],setup(e,{emit:t}){let n=t,r=F(null),i=M({}),a=M({});function o(e){r.value=r.value===e?null:e,i[e]===void 0&&(i[e]=`{}`)}function s(e){let t;try{t=JSON.parse(i[e]||`{}`)}catch(t){a[e]=`Invalid JSON arguments: ${t.message}`;return}delete a[e],n(`invoke`,e,t)}function c(e){delete a[e]}function l(e){return`agent-invoke-error-${Iv(e)}`}function u(e){n(`read`,e)}return(t,n)=>(H(),U(`div`,jy,[e.manifest?(H(),U(B,{key:1},[G(`div`,Ny,` Tools · `+A(e.manifest.tools.length),1),e.manifest.tools.length===0?(H(),U(`div`,Py,` No agent-exposed tools. `)):(H(),U(`div`,Fy,[(H(!0),U(B,null,fa(e.manifest.tools,t=>(H(),U(`div`,{key:t.id,class:`card`},[G(`div`,{class:`card-head`,style:{cursor:`pointer`,"user-select":`none`},onClick:e=>o(t.id)},[G(`div`,{class:k([`chev i-ph-caret-right`,{open:r.value===t.id}])},null,2),G(`span`,Ly,A(t.title),1),G(`span`,Ry,A(t.kind),1),G(`span`,{class:k([`badge`,`safety-${t.safety}`])},A(t.safety),3)],8,Iy),G(`div`,zy,A(I(Iv)(t.id)),1),I(Iv)(t.id)===t.id?J(``,!0):(H(),U(`div`,By,` internal id: `+A(t.id),1)),G(`p`,Vy,A(t.description),1),t.tags&&t.tags.length?(H(),U(`div`,Hy,[(H(!0),U(B,null,fa(t.tags,e=>(H(),U(`span`,{key:e,class:`badge flag`},A(e),1))),128))])):J(``,!0),r.value===t.id?(H(),U(B,{key:2},[t.inputSchema?(H(),U(B,{key:0},[n[0]||=G(`div`,{class:`label`},` Input schema `,-1),K($,{value:t.inputSchema,"expand-depth":1},null,8,[`value`])],64)):J(``,!0),t.outputSchema?(H(),U(B,{key:1},[n[1]||=G(`div`,{class:`label`},` Output schema `,-1),K($,{value:t.outputSchema,"expand-depth":1},null,8,[`value`])],64)):J(``,!0),t.examples&&t.examples.length?(H(),U(B,{key:2},[n[2]||=G(`div`,{class:`label`},` Examples `,-1),K($,{value:t.examples,"expand-depth":1},null,8,[`value`])],64)):J(``,!0),n[3]||=G(`div`,{class:`label`},` Invoke (MCP format) `,-1),mr(G(`textarea`,{"onUpdate:modelValue":e=>i[t.id]=e,class:`args`,spellcheck:`false`,placeholder:`{}`,"aria-invalid":!!a[t.id],"aria-describedby":a[t.id]?l(t.id):void 0,onInput:e=>c(t.id)},null,40,Uy),[[Bl,i[t.id]]]),a[t.id]?(H(),W(gy,{key:3,id:l(t.id),class:`mt-2`,type:`error`,icon:`i-ph-warning-circle-duotone`,role:`alert`},{default:L(()=>[q(A(a[t.id]),1)]),_:2},1032,[`id`])):J(``,!0),G(`div`,Wy,[K(my,{variant:`primary`,size:`sm`,icon:`i-ph-play-duotone`,loading:e.pending[t.id],disabled:e.pending[t.id]||e.isStatic,onClick:e=>s(t.id)},{default:L(()=>[q(A(e.pending[t.id]?`Invoking…`:`Invoke`),1)]),_:2},1032,[`loading`,`disabled`,`onClick`]),e.isStatic?(H(),U(`span`,Gy,`read-only static backend`)):J(``,!0)]),e.results[t.id]?(H(),U(`div`,Ky,[G(`div`,qy,[e.results[t.id].ok?(H(),U(`span`,Jy,`✓ resolved`)):(H(),U(`span`,Yy,`✕ threw`)),`durationMs`in e.results[t.id]?(H(),U(`span`,Xy,A(e.results[t.id].durationMs)+`ms`,1)):J(``,!0)]),e.results[t.id].ok?(H(),W($,{key:0,value:e.results[t.id].result,"expand-depth":2},null,8,[`value`])):(H(),W($,{key:1,value:e.results[t.id].error,"expand-depth":2},null,8,[`value`]))])):J(``,!0)],64)):J(``,!0)]))),128))])),G(`div`,Zy,` Resources · `+A(e.manifest.resources.length),1),e.manifest.resources.length===0?(H(),U(`div`,Qy,` No agent-readable resources. `)):(H(),U(`div`,$y,[(H(!0),U(B,null,fa(e.manifest.resources,t=>(H(),U(`div`,{key:t.id,class:`card`},[G(`div`,{class:`card-head`,style:{cursor:`pointer`,"user-select":`none`},onClick:e=>o(t.id)},[G(`div`,{class:k([`chev i-ph-caret-right`,{open:r.value===t.id}])},null,2),G(`span`,tb,A(t.name),1),t.mimeType?(H(),U(`span`,nb,A(t.mimeType),1)):J(``,!0)],8,eb),G(`div`,rb,A(t.uri),1),t.description?(H(),U(`p`,ib,A(t.description),1)):J(``,!0),r.value===t.id?(H(),U(B,{key:1},[G(`div`,ab,[K(my,{variant:`primary`,size:`sm`,icon:`i-ph-book-open-duotone`,loading:e.pending[t.id],disabled:e.pending[t.id]||e.isStatic,onClick:e=>u(t.id)},{default:L(()=>[q(A(e.pending[t.id]?`Reading…`:`Read Resource`),1)]),_:2},1032,[`loading`,`disabled`,`onClick`]),e.isStatic?(H(),U(`span`,ob,`read-only static backend`)):J(``,!0)]),e.results[t.id]?(H(),U(`div`,sb,[G(`div`,cb,[e.results[t.id].ok?(H(),U(`span`,lb,`✓ resolved`)):(H(),U(`span`,ub,`✕ threw`)),`durationMs`in e.results[t.id]?(H(),U(`span`,db,A(e.results[t.id].durationMs)+`ms`,1)):J(``,!0)]),e.results[t.id].ok?(H(),W($,{key:0,value:e.results[t.id].result,"expand-depth":2},null,8,[`value`])):(H(),W($,{key:1,value:e.results[t.id].error,"expand-depth":2},null,8,[`value`]))])):J(``,!0)],64)):J(``,!0)]))),128))]))],64)):(H(),U(`div`,My,` Loading agent surface… `))]))}}),pb=R({__name:`AgentSmart`,setup(e){let t=dy(),n=cn(null),r=M({}),i=M({});async function a(){t.value&&(n.value=await t.value.call(`devframes:plugin:inspect:describe-agent`))}Pm(a),Yi(a);async function o(e,n){if(t.value){i[e]=!0;try{r[e]=await t.value.call(`devframes:plugin:inspect:invoke-agent-tool`,e,n)}catch(t){let n=t;r[e]={ok:!1,error:{name:n?.name??`Error`,message:n?.message??String(t)}}}finally{i[e]=!1}}}async function s(e){if(t.value){i[e]=!0;try{r[e]=await t.value.call(`devframes:plugin:inspect:read-agent-resource`,e)}catch(t){let n=t;r[e]={ok:!1,error:{name:n?.name??`Error`,message:n?.message??String(t)}}}finally{i[e]=!1}}}return(e,t)=>(H(),W(fb,{manifest:n.value,"is-static":I(fy)(),results:r,pending:i,onInvoke:o,onRead:s},null,8,[`manifest`,`is-static`,`results`,`pending`]))}}),mb=Object.freeze({type:`object`,additionalProperties:!0}),hb=new Set([`query`,`static`]);function gb(e,t){let n=t.type??`query`,r;return t.agent&&(r={description:t.agent.description,title:t.agent.title,safety:t.agent.safety,tags:t.agent.tags}),{name:e,type:n,jsonSerializable:t.jsonSerializable===!0,snapshot:t.snapshot===!0,cacheable:t.cacheable===!0,hasArgs:!!t.args,hasReturns:!!t.returns,hasDump:!!t.dump,hasSetup:!!t.setup,hasHandler:!!t.handler,invokable:hb.has(n),agent:r,argsSchema:yb(t.args),returnsSchema:vb(t.returns)}}function _b(e){let t=e[`~standard`];if(!t.jsonSchema)return mb;try{return t.jsonSchema.input({target:`draft-2020-12`})}catch{return mb}}function vb(e){if(e)return _b(e)}function yb(e){if(e&&e.length!==0)return{type:`array`,prefixItems:e.map(e=>_b(e))}}function bb(e){let t=[];for(let[n,r]of e.definitions)t.push(gb(n,r));return t.sort((e,t)=>e.name.localeCompare(t.name)),t}async function xb(e,t,n){let r=e.definitions.get(t);if(!r)return{ok:!1,error:{name:`Error`,message:`No client RPC function named "${t}" is registered.`},durationMs:0};let i=r.type??`query`;if(!hb.has(i))return{ok:!1,error:{name:`Error`,message:`"${t}" is a ${i} function; only read-only query/static functions are invoked.`},durationMs:0};let a=Date.now();try{return{ok:!0,result:await(await lh(r,e.context))(...n),durationMs:Date.now()-a}}catch(e){return{ok:!1,error:Tb(e),durationMs:Date.now()-a}}}async function Sb(e,t=Uv()){if(t?.getTools)try{let e=(await t.getTools()).map(e=>({...e,inputSchema:wb(e.inputSchema)}));return{available:!0,live:!0,executable:typeof t.executeTool==`function`,tools:e}}catch{}let n=[];for(let[t,r]of e.definitions)r.agent&&n.push({name:Iv(t),description:r.agent.description,source:t});return n.sort((e,t)=>e.name.localeCompare(t.name)),{available:!!t,live:!1,executable:!1,tools:n}}async function Cb(e,t,n){let r=Date.now();try{if(!e.executeTool)throw Error(`This model context does not support executeTool().`);let i;try{i=await e.executeTool(t,JSON.stringify(n))}catch(r){if(!(r instanceof TypeError))throw r;i=await e.executeTool(t,n)}return{ok:!0,result:wb(i),durationMs:Date.now()-r}}catch(e){return{ok:!1,error:Tb(e),durationMs:Date.now()-r}}}function wb(e){if(typeof e!=`string`)return e;try{return JSON.parse(e)}catch{return e}}function Tb(e){let t=e;return{name:t?.name??`Error`,message:t?.message??String(e),stack:t?.stack}}function Eb(e,t=1){let n=0;for(let t=0;t<e.length;t++)n=e.charCodeAt(t)+((n<<5)-n);return Db(n%360,t)}function Db(e,t=1){return`hsla(${e}, 60%, 50%, ${t})`}function Ob(e){let t=e.split(/([:/])/),n=[],r=``;for(let e=0;e<t.length;e+=2){let i=t[e]??``,a=t[e+1]??``;if(i===``&&a===``)continue;r+=i;let o=a===``;n.push({text:i,separator:a,isLeaf:o,color:o?void 0:Eb(r)}),r+=a}return n}var kb=[`title`],Ab={key:0,class:`ns-sep`},jb=R({__name:`FunctionName`,props:{name:{}},setup(e){let t=e,n=Y(()=>Ob(t.name));return(t,r)=>(H(),U(`span`,{class:`fn-name`,title:e.name},[(H(!0),U(B,null,fa(n.value,(e,t)=>(H(),U(B,{key:t},[G(`span`,{class:`ns-seg`,style:he(e.color?{color:e.color}:void 0)},A(e.text),5),e.separator?(H(),U(`span`,Ab,A(e.separator),1)):J(``,!0)],64))),128))],8,kb))}}),Mb={class:`fn-row`},Nb={class:`fn-flags`},Pb={key:0,class:`badge agent`,title:`Exposed to agents`},Fb={key:1,class:`badge flag`,title:`Strict JSON wire serialization`},Ib={key:2,class:`badge flag`,title:`Baked into the static build dump`},Lb={key:3,class:`badge flag`},Rb={key:4,class:`badge flag`},zb={key:5,class:`badge flag`},Bb={key:0,class:`fn-detail`},Vb={key:0,class:`desc`},Hb=[`value`],Ub={style:{"margin-top":`8px`,display:`flex`,gap:`8px`,"align-items":`center`}},Wb={key:0,class:`note`},Gb={key:0,class:`result`},Kb={class:`result-head`},qb={key:0,class:`ok`},Jb={key:1,class:`fail`},Yb={key:2,class:`muted`},Xb={key:4,class:`note`},Zb=R({__name:`FunctionRow`,props:{fn:{},argsInput:{},results:{},pending:{},isStatic:{type:Boolean}},emits:[`invoke`,`updateArgs`],setup(e,{emit:t}){let n=e,r=t,i=F(!1),a=Y(()=>n.fn.invokable||!!n.fn.agent||n.fn.hasArgs||n.fn.hasReturns);function o(){i.value=!i.value}return(t,n)=>(H(),U(`div`,Mb,[G(`div`,{class:k([`fn-head`,{clickable:a.value}]),onClick:o},[G(`div`,{class:k([`chev i-ph-caret-right`,{open:i.value}])},null,2),K(jb,{name:e.fn.name},null,8,[`name`]),G(`span`,Nb,[G(`span`,{class:k([`badge`,e.fn.type])},A(e.fn.type),3),e.fn.agent?(H(),U(`span`,Pb,`agent`)):J(``,!0),e.fn.jsonSerializable?(H(),U(`span`,Fb,`json`)):J(``,!0),e.fn.snapshot?(H(),U(`span`,Ib,`snapshot`)):J(``,!0),e.fn.hasArgs?(H(),U(`span`,Lb,`args`)):J(``,!0),e.fn.hasReturns?(H(),U(`span`,Rb,`returns`)):J(``,!0),e.fn.hasDump?(H(),U(`span`,zb,`dump`)):J(``,!0)])],2),i.value?(H(),U(`div`,Bb,[e.fn.agent?(H(),U(`p`,Vb,A(e.fn.agent.description),1)):J(``,!0),e.fn.argsSchema?(H(),U(B,{key:1},[n[2]||=G(`div`,{class:`label`},` Args schema `,-1),K($,{value:e.fn.argsSchema,"expand-depth":0},null,8,[`value`])],64)):J(``,!0),e.fn.returnsSchema?(H(),U(B,{key:2},[n[3]||=G(`div`,{class:`label`},` Returns schema `,-1),K($,{value:e.fn.returnsSchema,"expand-depth":0},null,8,[`value`])],64)):J(``,!0),e.fn.invokable?(H(),U(B,{key:3},[n[4]||=G(`div`,{class:`label`},` Invoke with positional args as a JSON array `,-1),G(`textarea`,{value:e.argsInput[e.fn.name],class:`args`,spellcheck:`false`,placeholder:`[]`,onInput:n[0]||=t=>r(`updateArgs`,e.fn.name,t.target.value)},null,40,Hb),G(`div`,Ub,[K(my,{variant:`primary`,size:`sm`,icon:`i-ph-play-duotone`,loading:e.pending[e.fn.name],disabled:e.pending[e.fn.name]||e.isStatic,onClick:n[1]||=tu(t=>r(`invoke`,e.fn),[`stop`])},{default:L(()=>[q(A(e.pending[e.fn.name]?`Invoking…`:`Invoke`),1)]),_:1},8,[`loading`,`disabled`]),e.isStatic?(H(),U(`span`,Wb,`read-only static backend, invocation disabled`)):J(``,!0)]),e.results[e.fn.name]?(H(),U(`div`,Gb,[G(`div`,Kb,[e.results[e.fn.name].ok?(H(),U(`span`,qb,`✓ resolved`)):(H(),U(`span`,Jb,`✕ threw`)),`durationMs`in e.results[e.fn.name]?(H(),U(`span`,Yb,A(e.results[e.fn.name].durationMs)+`ms`,1)):J(``,!0)]),e.results[e.fn.name].ok?(H(),W($,{key:0,value:e.results[e.fn.name].result,"expand-depth":2},null,8,[`value`])):(H(),W($,{key:1,value:e.results[e.fn.name].error,"expand-depth":2},null,8,[`value`]))])):J(``,!0)],64)):(H(),U(`p`,Xb,A(e.fn.type)+` functions may carry side effects, so the inspector does not invoke them. `,1))])):J(``,!0)]))}}),Qb={class:`pane`},$b={key:0,class:`center`},ex={class:`section-title`},tx={key:0,class:`empty`},nx={key:1,class:`fn-list`},rx={class:`section-title`},ix={class:`note`},ax={key:2,class:`empty`},ox={key:3,class:`cards`},sx=[`onClick`],cx={class:`card-title`},lx={class:`badge flag`},ux={key:0,class:`badge flag`},dx={key:0,class:`id`},fx={key:1,class:`desc`},px=[`onUpdate:modelValue`],mx={style:{"margin-top":`8px`,display:`flex`,gap:`8px`,"align-items":`center`}},hx={key:2,class:`note`},gx={key:3,class:`note`},_x={key:4,class:`result`},vx={class:`result-head`},yx={key:0,class:`ok`},bx={key:1,class:`fail`},xx={key:2,class:`muted`},Sx=R({__name:`ClientView`,props:{functions:{},webmcp:{},results:{},pending:{}},emits:[`invoke`,`invokeTool`],setup(e,{emit:t}){let n=t,r=M({}),i=M({}),a=F(null);function o(e){return`webmcp:${e}`}function s(e){a.value=a.value===e?null:e,i[e]??=`{}`}function c(e){let t;try{let n=JSON.parse(r[e.name]||`[]`);t=Array.isArray(n)?n:[n]}catch(e){throw Error(`Invalid JSON args: ${e.message}`)}n(`invoke`,e,t)}function l(e){let t;try{t=JSON.parse(i[e]||`{}`)}catch(e){throw Error(`Invalid JSON args: ${e.message}`)}n(`invokeTool`,e,t)}return(t,n)=>(H(),U(`div`,Qb,[!e.functions||!e.webmcp?(H(),U(`div`,$b,` Loading client surface… `)):(H(),U(B,{key:1},[G(`div`,ex,` Client functions · `+A(e.functions.length),1),e.functions.length===0?(H(),U(`div`,tx,` No client RPC functions registered in this page. `)):(H(),U(`div`,nx,[(H(!0),U(B,null,fa(e.functions,t=>(H(),W(Zb,{key:t.name,fn:t,"args-input":r,results:e.results,pending:e.pending,"is-static":!1,onInvoke:c,onUpdateArgs:n[0]||=(e,t)=>r[e]=t},null,8,[`fn`,`args-input`,`results`,`pending`]))),128))])),G(`div`,rx,` WebMCP tools · `+A(e.webmcp.tools.length),1),G(`p`,ix,[e.webmcp.live?(H(),U(B,{key:0},[q(` Live from this page's WebMCP model context. `)],64)):e.webmcp.available?(H(),U(B,{key:1},[q(` This page's model context supports registration only; showing the tools projected from agent-flagged client functions. `)],64)):(H(),U(B,{key:2},[q(` This browser provides no WebMCP model context; showing the tools devframe would register on one. `)],64))]),e.webmcp.tools.length===0?(H(),U(`div`,ax,` No WebMCP tools on this page. `)):(H(),U(`div`,ox,[(H(!0),U(B,null,fa(e.webmcp.tools,t=>(H(),U(`div`,{key:t.name,class:`card`},[G(`div`,{class:`card-head`,style:{cursor:`pointer`,"user-select":`none`},onClick:e=>s(t.name)},[G(`div`,{class:k([`chev i-ph-caret-right`,{open:a.value===t.name}])},null,2),G(`span`,cx,A(t.name),1),G(`span`,lx,A(e.webmcp.live?`live`:`projected`),1),t.origin?(H(),U(`span`,ux,A(t.origin),1)):J(``,!0)],8,sx),t.source?(H(),U(`div`,dx,` client function: `+A(t.source),1)):J(``,!0),t.description?(H(),U(`p`,fx,A(t.description),1)):J(``,!0),a.value===t.name?(H(),U(B,{key:2},[t.inputSchema?(H(),U(B,{key:0},[n[1]||=G(`div`,{class:`label`},` Input schema `,-1),K($,{value:t.inputSchema,"expand-depth":1},null,8,[`value`])],64)):J(``,!0),e.webmcp.executable?(H(),U(B,{key:1},[n[2]||=G(`div`,{class:`label`},` Invoke (WebMCP args object) `,-1),mr(G(`textarea`,{"onUpdate:modelValue":e=>i[t.name]=e,class:`args`,spellcheck:`false`,placeholder:`{}`},null,8,px),[[Bl,i[t.name]]]),G(`div`,mx,[K(my,{variant:`primary`,size:`sm`,icon:`i-ph-play-duotone`,loading:e.pending[o(t.name)],disabled:e.pending[o(t.name)],onClick:e=>l(t.name)},{default:L(()=>[q(A(e.pending[o(t.name)]?`Invoking…`:`Invoke`),1)]),_:2},1032,[`loading`,`disabled`,`onClick`])])],64)):t.source?(H(),U(`p`,hx,` Invoke the backing client function from the list above. `)):(H(),U(`p`,gx,` This model context does not expose tool execution to the page. `)),e.results[o(t.name)]?(H(),U(`div`,_x,[G(`div`,vx,[e.results[o(t.name)].ok?(H(),U(`span`,yx,`✓ resolved`)):(H(),U(`span`,bx,`✕ threw`)),`durationMs`in e.results[o(t.name)]?(H(),U(`span`,xx,A(e.results[o(t.name)].durationMs)+`ms`,1)):J(``,!0)]),e.results[o(t.name)].ok?(H(),W($,{key:0,value:e.results[o(t.name)].result,"expand-depth":2},null,8,[`value`])):(H(),W($,{key:1,value:e.results[o(t.name)].error,"expand-depth":2},null,8,[`value`]))])):J(``,!0)],64)):J(``,!0)]))),128))]))],64))]))}}),Cx=R({__name:`ClientSmart`,setup(e){let t=dy(),n=cn(null),r=cn(null),i=M({}),a=M({});async function o(){t.value&&(n.value=bb(t.value.client),r.value=await Sb(t.value.client))}Pm(o);let s;Yi(()=>{o(),s=t.value?.client.onChanged(()=>void o())}),$i(()=>s?.());async function c(e,n){if(t.value){a[e.name]=!0;try{i[e.name]=await xb(t.value.client,e.name,n)}finally{a[e.name]=!1}}}async function l(e,t){let n=Uv(),o=r.value?.tools.find(t=>t.name===e);if(!n||!o)return;let s=`webmcp:${e}`;a[s]=!0;try{i[s]=await Cb(n,o,t)}finally{a[s]=!1}}return(e,t)=>(H(),W(Sx,{functions:n.value,webmcp:r.value,results:i,pending:a,onInvoke:c,onInvokeTool:l},null,8,[`functions`,`webmcp`,`results`,`pending`]))}}),wx={class:`cmd-title`},Tx={class:`cmd-id mono`},Ex={class:`fn-flags`},Dx={key:0,class:`badge flag`},Ox={key:1,class:`badge flag`,title:`No handler, a group for its children`},kx={key:2,class:`badge flag`},Ax={key:0,class:`fn-detail`},jx={key:0,class:`desc`},Mx=[`value`],Nx={style:{"margin-top":`8px`,display:`flex`,gap:`8px`,"align-items":`center`}},Px={key:0,class:`note`},Fx={key:0,class:`result`},Ix={class:`result-head`},Lx={key:0,class:`ok`},Rx={key:1,class:`fail`},zx={key:2,class:`muted`},Bx={key:2,class:`note`},Vx={class:`cmd-children`},Hx=R({name:`CommandRow`,__name:`CommandRow`,props:{cmd:{},argsInput:{},results:{},pending:{},isStatic:{type:Boolean},depth:{}},emits:[`execute`,`updateArgs`],setup(e,{emit:t}){let n=e,r=t,i=F(!1),a=Y(()=>n.cmd.hasHandler||!!n.cmd.description||!!n.cmd.children?.length);function o(){i.value=!i.value}return(t,n)=>{let s=oa(`CommandRow`,!0);return H(),U(`div`,{class:k([`fn-row`,{"cmd-row-child":e.depth}])},[G(`div`,{class:k([`fn-head`,{clickable:a.value}]),onClick:o},[G(`div`,{class:k([`chev i-ph-caret-right`,{open:i.value}])},null,2),e.cmd.icon?(H(),U(`span`,{key:0,class:k([typeof e.cmd.icon==`string`?e.cmd.icon:`i-ph-terminal-window-duotone`,`cmd-icon`])},null,2)):J(``,!0),G(`span`,wx,A(e.cmd.title),1),G(`span`,Tx,A(e.cmd.id),1),G(`span`,Ex,[e.cmd.category?(H(),U(`span`,Dx,A(e.cmd.category),1)):J(``,!0),e.cmd.hasHandler?J(``,!0):(H(),U(`span`,Ox,`group`)),e.cmd.children?.length?(H(),U(`span`,kx,A(e.cmd.children.length)+` children`,1)):J(``,!0)])],2),i.value?(H(),U(`div`,Ax,[e.cmd.description?(H(),U(`p`,jx,A(e.cmd.description),1)):J(``,!0),e.cmd.hasHandler?(H(),U(B,{key:1},[n[4]||=G(`div`,{class:`label`},` Execute with positional args as a JSON array `,-1),G(`textarea`,{value:e.argsInput[e.cmd.id],class:`args`,spellcheck:`false`,placeholder:`[]`,onInput:n[0]||=t=>r(`updateArgs`,e.cmd.id,t.target.value)},null,40,Mx),G(`div`,Nx,[K(my,{variant:`primary`,size:`sm`,icon:`i-ph-play-duotone`,loading:e.pending[e.cmd.id],disabled:e.pending[e.cmd.id]||e.isStatic,onClick:n[1]||=tu(t=>r(`execute`,e.cmd),[`stop`])},{default:L(()=>[q(A(e.pending[e.cmd.id]?`Running…`:`Run`),1)]),_:1},8,[`loading`,`disabled`]),e.isStatic?(H(),U(`span`,Px,`read-only static backend, execution disabled`)):J(``,!0)]),e.results[e.cmd.id]?(H(),U(`div`,Fx,[G(`div`,Ix,[e.results[e.cmd.id].ok?(H(),U(`span`,Lx,`✓ resolved`)):(H(),U(`span`,Rx,`✕ threw`)),`durationMs`in e.results[e.cmd.id]?(H(),U(`span`,zx,A(e.results[e.cmd.id].durationMs)+`ms`,1)):J(``,!0)]),e.results[e.cmd.id].ok?(H(),W($,{key:0,value:e.results[e.cmd.id].result,"expand-depth":2},null,8,[`value`])):(H(),W($,{key:1,value:e.results[e.cmd.id].error,"expand-depth":2},null,8,[`value`]))])):J(``,!0)],64)):e.cmd.children?.length?J(``,!0):(H(),U(`p`,Bx,` Group-only command, no handler to run. `)),e.cmd.children?.length?(H(),U(B,{key:3},[n[5]||=G(`div`,{class:`label`},` Children `,-1),G(`div`,Vx,[(H(!0),U(B,null,fa(e.cmd.children,t=>(H(),W(s,{key:t.id,cmd:t,"args-input":e.argsInput,results:e.results,pending:e.pending,"is-static":e.isStatic,depth:(e.depth??0)+1,onExecute:n[2]||=e=>r(`execute`,e),onUpdateArgs:n[3]||=(e,t)=>r(`updateArgs`,e,t)},null,8,[`cmd`,`args-input`,`results`,`pending`,`is-static`,`depth`]))),128))])],64)):J(``,!0)])):J(``,!0)],2)}}}),Ux={class:`pane`},Wx={class:`toolbar`},Gx={class:`search`},Kx={class:`muted`},qx={class:`badge flag`},Jx={key:0,class:`center`},Yx={key:1,class:`empty`},Xx={key:2,class:`empty`},Zx={key:3,class:`fn-list`},Qx=R({__name:`CommandsView`,props:{commands:{},isStatic:{type:Boolean},results:{},pending:{}},emits:[`execute`],setup(e,{emit:t}){let n=e,r=t,i=F(``),a=M({});function o(e,t){return e.id.toLowerCase().includes(t)||e.title.toLowerCase().includes(t)||e.category?.toLowerCase().includes(t)?!0:e.children?.some(e=>o(e,t))??!1}let s=Y(()=>{let e=n.commands??[],t=i.value.trim().toLowerCase();return[...t?e.filter(e=>o(e,t)):e].sort((e,t)=>e.title.localeCompare(t.title))}),c=Y(()=>{let e={};for(let t of n.commands??[]){let n=t.category??`uncategorized`;e[n]=(e[n]||0)+1}return e});function l(e){let t;try{let n=JSON.parse(a[e.id]||`[]`);t=Array.isArray(n)?n:[n]}catch(e){throw Error(`Invalid JSON args: ${e.message}`)}r(`execute`,e,t)}return(t,n)=>(H(),U(`div`,Ux,[G(`div`,Wx,[G(`label`,Gx,[n[2]||=G(`div`,{class:`i-ph-magnifying-glass-duotone`},null,-1),mr(G(`input`,{"onUpdate:modelValue":n[0]||=e=>i.value=e,placeholder:`Filter commands by id, title, category…`,spellcheck:`false`},null,512),[[Bl,i.value]])]),G(`span`,Kx,A((e.commands??[]).length)+` commands`,1),(H(!0),U(B,null,fa(c.value,(e,t)=>(H(),U(`span`,{key:t,class:`muted`},[G(`span`,qx,A(t),1),q(` `+A(e),1)]))),128))]),e.commands?e.commands.length===0?(H(),U(`div`,Yx," No commands registered. Commands are a `@devframes/hub` feature; this connection isn't mounted inside a hub. ")):s.value.length===0?(H(),U(`div`,Xx,` No commands match "`+A(i.value)+`". `,1)):(H(),U(`div`,Zx,[(H(!0),U(B,null,fa(s.value,t=>(H(),W(Hx,{key:t.id,cmd:t,"args-input":a,results:e.results,pending:e.pending,"is-static":e.isStatic,onExecute:l,onUpdateArgs:n[1]||=(e,t)=>a[e]=t},null,8,[`cmd`,`args-input`,`results`,`pending`,`is-static`]))),128))])):(H(),U(`div`,Jx,` Loading commands… `))]))}}),$x=R({__name:`CommandsSmart`,setup(e){let t=dy(),n=cn(null),r=M({}),i=M({});async function a(){t.value&&(n.value=await t.value.call(`devframes:plugin:inspect:list-commands`))}Pm(a),Yi(a);async function o(e,n){if(t.value){i[e.id]=!0;try{r[e.id]=await t.value.call(`devframes:plugin:inspect:execute-command`,e.id,n)}catch(t){let n=t;r[e.id]={ok:!1,error:{name:n?.name??`Error`,message:n?.message??String(t)}}}finally{i[e.id]=!1}}}return(e,t)=>(H(),W(Qx,{commands:n.value,"is-static":I(fy)(),results:r,pending:i,onExecute:o},null,8,[`commands`,`is-static`,`results`,`pending`]))}}),eS={class:`pane`},tS={class:`toolbar`},nS={class:`search`},rS={class:`muted`},iS={key:0,class:`center`},aS={key:1,class:`empty`},oS={key:2,class:`fn-list`},sS=R({__name:`FunctionsView`,props:{functions:{},isStatic:{type:Boolean},results:{},pending:{}},emits:[`invoke`],setup(e,{emit:t}){let n=e,r=t,i=F(``),a=M({}),o=Y(()=>{let e=n.functions??[],t=i.value.trim().toLowerCase();return[...t?e.filter(e=>e.name.toLowerCase().includes(t)):e].sort((e,t)=>e.name.localeCompare(t.name))}),s=Y(()=>{let e={};for(let t of n.functions??[])e[t.type]=(e[t.type]||0)+1;return e});function c(e){let t;try{let n=JSON.parse(a[e.name]||`[]`);t=Array.isArray(n)?n:[n]}catch(e){throw Error(`Invalid JSON args: ${e.message}`)}r(`invoke`,e,t)}return(t,n)=>(H(),U(`div`,eS,[G(`div`,tS,[G(`label`,nS,[n[2]||=G(`div`,{class:`i-ph-magnifying-glass-duotone`},null,-1),mr(G(`input`,{"onUpdate:modelValue":n[0]||=e=>i.value=e,placeholder:`Filter functions by name…`,spellcheck:`false`},null,512),[[Bl,i.value]])]),G(`span`,rS,A((e.functions??[]).length)+` functions`,1),(H(!0),U(B,null,fa(s.value,(e,t)=>(H(),U(`span`,{key:t,class:`muted`},[G(`span`,{class:k([`badge`,t])},A(t),3),q(` `+A(e),1)]))),128))]),e.functions?o.value.length===0?(H(),U(`div`,aS,` No functions match “`+A(i.value)+`”. `,1)):(H(),U(`div`,oS,[(H(!0),U(B,null,fa(o.value,t=>(H(),W(Zb,{key:t.name,fn:t,"args-input":a,results:e.results,pending:e.pending,"is-static":e.isStatic,onInvoke:c,onUpdateArgs:n[1]||=(e,t)=>a[e]=t},null,8,[`fn`,`args-input`,`results`,`pending`,`is-static`]))),128))])):(H(),U(`div`,iS,` Loading functions… `))]))}}),cS=R({__name:`FunctionsSmart`,setup(e){let t=dy(),n=cn(null),r=M({}),i=M({});async function a(){t.value&&(n.value=await t.value.call(`devframes:plugin:inspect:list-functions`))}Pm(a),Yi(a);async function o(e,n){if(t.value){i[e.name]=!0;try{r[e.name]=await t.value.call(`devframes:plugin:inspect:invoke`,e.name,n)}catch(t){let n=t;r[e.name]={ok:!1,error:{name:n?.name??`Error`,message:n?.message??String(t)}}}finally{i[e.name]=!1}}}return(e,t)=>(H(),W(sS,{functions:n.value,"is-static":I(fy)(),results:r,pending:i,onInvoke:o},null,8,[`functions`,`is-static`,`results`,`pending`]))}}),lS={class:`pane flex-col`},uS={class:`toolbar`},dS={class:`muted`},fS={key:0,class:`center`},pS={key:1,style:{padding:`14px`,display:`flex`,"flex-direction":`column`,gap:`14px`}},mS={style:{display:`flex`,gap:`8px`,"align-items":`center`,"margin-bottom":`8px`,"flex-wrap":`wrap`}},hS={class:`muted`,style:{"font-family":`var(--df-mono)`,"font-size":`11px`}},gS={style:{"font-family":`var(--df-mono)`,"font-weight":`600`,"font-size":`12.5px`}},_S={class:`muted`},vS={style:{"font-family":`var(--df-mono)`,"font-weight":`600`,"font-size":`12.5px`,color:`var(--df-accent)`}},yS={class:`muted`},bS={style:{"padding-left":`8px`,"border-left":`2px solid var(--df-border-soft)`}},xS=((e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n})(R({__name:`HistoryView`,props:{historyRecords:{},isRecording:{type:Boolean}},emits:[`update:isRecording`,`clear`],setup(e,{emit:t}){let n=t;function r(e){let t=new Date(e);return`${t.getHours().toString().padStart(2,`0`)}:${t.getMinutes().toString().padStart(2,`0`)}:${t.getSeconds().toString().padStart(2,`0`)}.${t.getMilliseconds().toString().padStart(3,`0`)}`}return(t,i)=>(H(),U(`div`,lS,[G(`div`,uS,[K(my,{variant:e.isRecording?`action`:`text`,size:`sm`,icon:e.isRecording?`i-ph-record-fill text-error`:`i-ph-play-duotone`,title:e.isRecording?`Click to pause recording`:`Click to record`,onClick:i[0]||=t=>n(`update:isRecording`,!e.isRecording)},{default:L(()=>[q(A(e.isRecording?`Recording`:`Paused`),1)]),_:1},8,[`variant`,`icon`,`title`]),K(my,{variant:`text`,size:`sm`,icon:`i-ph-trash-duotone`,onClick:i[1]||=e=>n(`clear`)},{default:L(()=>[...i[2]||=[q(` Clear `,-1)]]),_:1}),G(`span`,dS,A(e.historyRecords.length)+` records`,1)]),e.historyRecords.length===0?(H(),U(`div`,fS,` No history yet. `)):(H(),U(`div`,pS,[(H(!0),U(B,null,fa(e.historyRecords,e=>(H(),U(`div`,{key:e.id,style:{border:`1px solid var(--df-border)`,"border-radius":`var(--df-radius)`,background:`var(--df-bg-soft)`,padding:`12px`}},[G(`div`,mS,[G(`span`,hS,A(r(e.time)),1),e.type===`call`?(H(),U(B,{key:0},[i[3]||=G(`span`,{class:`badge action`},`RPC Call`,-1),G(`span`,gS,A(e.method),1),G(`span`,_S,A(e.duration)+`ms`,1)],64)):(H(),U(B,{key:1},[i[4]||=G(`span`,{class:`badge static`},`State Update`,-1),G(`span`,vS,A(e.key),1),G(`span`,yS,`Sync ID: `+A(e.syncId),1)],64))]),G(`div`,bS,[e.type===`call`?(H(),U(B,{key:0},[i[7]||=G(`div`,{class:`label`,style:{"margin-top":`0`}},` Arguments `,-1),K($,{value:e.args,"expand-depth":1},null,8,[`value`]),`result`in e?(H(),U(B,{key:0},[i[5]||=G(`div`,{class:`label`},` Result `,-1),K($,{value:e.result,"expand-depth":1},null,8,[`value`])],64)):`error`in e?(H(),U(B,{key:1},[i[6]||=G(`div`,{class:`label`,style:{color:`var(--df-danger)`}},` Error `,-1),K($,{value:e.error,"expand-depth":1},null,8,[`value`])],64)):J(``,!0)],64)):(H(),U(B,{key:1},[`value`in e?(H(),U(B,{key:0},[i[8]||=G(`div`,{class:`label`,style:{"margin-top":`0`}},` New State `,-1),K($,{value:e.value,"expand-depth":1},null,8,[`value`])],64)):`patches`in e?(H(),U(B,{key:1},[i[9]||=G(`div`,{class:`label`,style:{"margin-top":`0`}},` Patches `,-1),K($,{value:e.patches,"expand-depth":1},null,8,[`value`])],64)):J(``,!0)],64))])]))),128))]))]))}}),[[`__scopeId`,`data-v-fa4416fc`]]),SS=R({__name:`HistorySmart`,setup(e){function t(e){ny.value=e}return(e,n)=>(H(),W(xS,{"history-records":I(ty),"is-recording":I(ny),"onUpdate:isRecording":t,onClear:I(ay)},null,8,[`history-records`,`is-recording`,`onClear`]))}}),CS={class:`pane`},wS={class:`toolbar`},TS={class:`muted`},ES={key:0,class:`center`},DS={key:1,class:`inst-empty`},OS={key:2,class:`cards`},kS={class:`card-head`},AS={class:`card-title`},jS={key:0,class:`badge agent`},MS={key:1,class:`badge`},NS={class:`id`},PS=[`href`],FS={class:`inst-url-text`},IS={class:`inst-meta`},LS={class:`inst-meta-wide`},RS=[`title`],zS=R({__name:`InstancesView`,props:{instances:{}},setup(e){let t=e,n=Y(()=>[...t.instances??[]].sort((e,t)=>e.isCurrent===t.isCurrent?t.startedAt-e.startedAt:e.isCurrent?-1:1));function r(e){let t=Math.max(0,Math.round((Date.now()-e)/1e3));if(t<60)return`${t}s`;let n=Math.floor(t/60);if(n<60)return`${n}m ${t%60}s`;let r=Math.floor(n/60);return r<24?`${r}h ${n%60}m`:`${Math.floor(r/24)}d ${r%24}h`}return(t,i)=>(H(),U(`div`,CS,[G(`div`,wS,[G(`span`,TS,A((e.instances??[]).length)+` running `+A((e.instances??[]).length===1?`instance`:`instances`),1),i[0]||=G(`span`,{class:`muted`},[q(`Devframe dev servers running on this machine, discovered via the shared registry (`),G(`code`,null,`~/.devframe/instances/`),q(`).`)],-1)]),e.instances?e.instances.length===0?(H(),U(`div`,DS,[...i[1]||=[G(`span`,{class:`i-ph-broadcast-duotone inst-empty-icon`},null,-1),G(`p`,{class:`inst-empty-title`},` No devframe instances discovered `,-1),G(`p`,null,[q(` This tab lists every devframe dev server running on your machine, so you can jump between them. Each server registers itself in `),G(`code`,null,`~/.devframe/instances/`),q(` while it runs. `)],-1),G(`p`,null,[q(` Nothing shows up when only static/build servers are running, when discovery is turned off (`),G(`code`,null,`DEVFRAME_DISABLE_INSTANCE_REGISTRY=1`),q(`), or when an in-process host hasn't opted in. Start another `),G(`code`,null,`devframe`),q(` dev server (or a hub host that calls `),G(`code`,null,`registerDevframeInstance()`),q(`), then hit refresh. `)],-1)]])):(H(),U(`div`,OS,[(H(!0),U(B,null,fa(n.value,e=>(H(),U(`div`,{key:`${e.pid}-${e.port}`,class:`card`},[G(`div`,kS,[i[2]||=G(`span`,{class:`i-ph-broadcast-duotone cmd-icon`},null,-1),G(`span`,AS,A(e.name??e.id),1),e.isCurrent?(H(),U(`span`,jS,`this instance`)):J(``,!0),e.hasMcp?(H(),U(`span`,MS,`MCP`)):J(``,!0)]),G(`div`,NS,A(e.id),1),G(`a`,{class:`inst-url`,href:e.url,target:`_blank`,rel:`noopener noreferrer`},[i[3]||=G(`span`,{class:`i-ph-arrow-square-out-duotone`},null,-1),G(`span`,FS,A(e.url),1)],8,PS),G(`dl`,IS,[G(`div`,null,[i[4]||=G(`dt`,null,`Port`,-1),G(`dd`,null,A(e.port),1)]),G(`div`,null,[i[5]||=G(`dt`,null,`PID`,-1),G(`dd`,null,A(e.pid),1)]),G(`div`,null,[i[6]||=G(`dt`,null,`Uptime`,-1),G(`dd`,null,A(r(e.startedAt)),1)]),G(`div`,LS,[i[7]||=G(`dt`,null,`Root`,-1),G(`dd`,{title:e.rootDir},A(e.rootDir),9,RS)])])]))),128))])):(H(),U(`div`,ES,` Discovering instances… `))]))}}),BS=R({__name:`InstancesSmart`,setup(e){let t=dy(),n=cn(null);async function r(){t.value&&(n.value=await t.value.call(`devframes:plugin:inspect:list-instances`))}return Pm(r),Yi(r),(e,t)=>(H(),W(zS,{instances:n.value},null,8,[`instances`]))}}),VS={class:`split`},HS={class:`keys`},US={class:`keys-head`},WS={class:`checkbox`},GS={class:`keys-list`},KS={key:0,class:`empty`},qS={key:1,class:`empty`},JS=[`title`,`onClick`],YS={class:`state-main`},XS={key:0,class:`center`},ZS={key:1,class:`center`},QS={class:`state-meta`},$S={class:`state-key`},eC={key:0,class:`pulse`},tC={key:1,class:`note`},nC=R({__name:`StateView`,props:{keys:{},selectedKey:{},value:{},loading:{type:Boolean},isStatic:{type:Boolean},updates:{},highlightPaths:{}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,i=F(!1),a=Y(()=>{let e=n.keys??[];return i.value?e:e.filter(e=>!e.startsWith(`devframe:`)&&!e.startsWith(`__`))});return(t,n)=>(H(),U(`div`,VS,[G(`aside`,HS,[G(`div`,US,[G(`span`,null,A(a.value.length)+` keys`,1),G(`label`,WS,[mr(G(`input`,{"onUpdate:modelValue":n[0]||=e=>i.value=e,type:`checkbox`},null,512),[[Vl,i.value]]),n[1]||=q(` internal `,-1)])]),G(`div`,GS,[e.keys?a.value.length===0?(H(),U(`div`,qS,` No shared state`+A(e.keys.length?` (toggle internal)`:``)+`. `,1)):J(``,!0):(H(),U(`div`,KS,` Loading… `)),(H(!0),U(B,null,fa(a.value,t=>(H(),U(`button`,{key:t,class:k([`key-item`,{active:e.selectedKey===t}]),title:t,onClick:e=>r(`select`,t)},A(t),11,JS))),128))])]),G(`section`,YS,[e.selectedKey?e.loading?(H(),U(`div`,ZS,` Loading state… `)):(H(),U(B,{key:2},[G(`div`,QS,[G(`span`,$S,A(e.selectedKey),1),e.isStatic?(H(),U(`span`,tC,`static snapshot`)):(H(),U(`span`,eC,`live`+A(e.updates?` · ${e.updates} update${e.updates>1?`s`:``}`:``),1))]),K($,{value:e.value,"expand-depth":3,"highlight-paths":e.highlightPaths},null,8,[`value`,`highlight-paths`])],64)):(H(),U(`div`,XS,` Select a shared-state key to inspect its live value. `))])]))}}),rC=R({__name:`StateSmart`,setup(e){let t=dy(),n=cn(null),r=F(null),i=cn(void 0),a=F(!1),o=cn(new Set),s=F(0),c=null,l=null;async function u(){t.value&&(n.value=await t.value.call(`devframes:plugin:inspect:list-state-keys`))}Pm(u),Yi(u);function d(e,t,n=``,r=new Set){if(e===t)return r;if(!(typeof e==`object`&&e)||!(typeof t==`object`&&t))return r.add(n),r;let i=new Set([...Object.keys(e),...Object.keys(t)]);for(let a of i){let i=n?`${n}.${a}`:a,o=a in e,s=a in t;!o||!s?r.add(i):d(e[a],t[a],i,r)}return r}function f(e){o.value=e,l&&clearTimeout(l),l=setTimeout(()=>{o.value=new Set},1600)}function p(){c?.(),c=null}return wr(r,async e=>{if(p(),i.value=void 0,s.value=0,o.value=new Set,e&&t.value){a.value=!0;try{let n=await t.value.sharedState.get(e);i.value=n.value(),c=n.on(`updated`,e=>{let t=d(i.value,e);i.value=e,s.value++,f(t)})}finally{a.value=!1}}}),Ie(()=>{p(),l&&clearTimeout(l)}),(e,t)=>(H(),W(nC,{keys:n.value,"selected-key":r.value,value:i.value,loading:a.value,"is-static":I(fy)(),updates:s.value,"highlight-paths":o.value,onSelect:t[0]||=e=>r.value=e},null,8,[`keys`,`selected-key`,`value`,`loading`,`is-static`,`updates`,`highlight-paths`]))}}),iC={class:`app`},aC={class:`app-body`},oC={class:`flex flex-col gap-1`},sC=R({__name:`App`,setup(e){let t=F(`functions`),{refresh:n,loading:r}=Fm(),i=Y(()=>wm(oy.status)),a=Y(()=>Em(oy.status)),o=[{value:`functions`,label:`Functions`,icon:`i-ph-function-duotone`},{value:`client`,label:`Client`,icon:`i-ph-browser-duotone`},{value:`state`,label:`State`,icon:`i-ph-database-duotone`},{value:`agent`,label:`Agent`,icon:`i-ph-robot-duotone`},{value:`commands`,label:`Commands`,icon:`i-ph-terminal-window-duotone`},{value:`history`,label:`History`,icon:`i-ph-clock-counter-clockwise-duotone`},{value:`instances`,label:`Instances`,icon:`i-ph-broadcast-duotone`}],s=Y(()=>fy()?o.filter(e=>e.value!==`instances`):o);Yi(uy);function c(){location.reload()}return(e,o)=>(H(),U(`div`,iC,[K(bm,{glass:!1,class:`h-nav`},{search:L(()=>[...o[1]||=[G(`div`,null,null,-1)]]),end:L(()=>[i.value?(H(),U(`span`,{key:0,class:k(i.value.class)},[G(`span`,{class:k(i.value.dot)},null,2),q(` `+A(i.value.label),1)],2)):J(``,!0),K(sp,{class:`text-sm`,icon:I(r)?`i-ph-arrows-clockwise animate-spin`:`i-ph-arrows-clockwise`,tooltip:I(r)?`Refreshing…`:`Refresh`,label:`Refresh`,disabled:I(r)||!I(oy).connected,onClick:I(n)},null,8,[`icon`,`tooltip`,`disabled`,`onClick`])]),default:L(()=>[o[2]||=G(`div`,{class:`flex items-center gap-1.5 shrink-0 font-semibold text-sm select-none`},[G(`span`,{class:`i-ph-magnifying-glass-duotone text-base color-active`}),G(`span`,null,`Devframe Inspector`)],-1),K(_m,{modelValue:t.value,"onUpdate:modelValue":o[0]||=e=>t.value=e,tabs:s.value,variant:`segment`},null,8,[`modelValue`,`tabs`])]),_:1}),G(`main`,aC,[a.value?(H(),U(`div`,{key:0,class:k(I(Dm)(`h-full`))},[G(`span`,{class:k([a.value.icon,I(Om)(a.value.spin)])},null,2),G(`div`,oC,[G(`p`,{class:k(I(km)())},A(a.value.title),3),G(`p`,{class:k(I(Am)())},A(a.value.body),3),I(oy).error&&I(oy).status===`error`?(H(),U(`p`,{key:0,class:k(I(jm)())},A(I(oy).error),3)):J(``,!0)]),a.value.reloadable?(H(),U(`button`,{key:0,type:`button`,class:k(I(Sm)({variant:`primary`,size:`sm`})),onClick:c},[...o[3]||=[G(`span`,{class:`i-ph-arrow-clockwise`},null,-1),q(` Reload `,-1)]],2)):J(``,!0)],2)):(H(),U(B,{key:1},[t.value===`functions`?(H(),W(cS,{key:0})):t.value===`client`?(H(),W(Cx,{key:1})):t.value===`state`?(H(),W(rC,{key:2})):t.value===`agent`?(H(),W(pb,{key:3})):t.value===`commands`?(H(),W($x,{key:4})):t.value===`history`?(H(),W(SS,{key:5})):t.value===`instances`?(H(),W(BS,{key:6})):J(``,!0)],64))])]))}}),cC=window.matchMedia(`(prefers-color-scheme: dark)`);function lC(e){document.documentElement.classList.toggle(`dark`,e),document.documentElement.classList.toggle(`light`,!e)}lC(cC.matches),cC.addEventListener(`change`,e=>lC(e.matches)),du(sC).mount(`#app`);export{h_ as t};
8
+ `))}}g()}return(async()=>{try{let e=await a(o,{headers:{accept:`text/event-stream`},signal:c.signal});if(!e.ok||!e.body)throw Error(`Devframe SSE stream request failed: ${e.status}`);await v(e.body)}catch(e){if(c.signal.aborted){g();return}h(e instanceof Error?e:Error(String(e)))}})(),{close:()=>{l=!0,c.abort(),d?.cancel().catch(()=>{})},on:e=>{u=e},post:async e=>{let t;try{t=await m}catch{return}if(l){n(Error(`Devframe SSE channel is closed; message dropped`));return}try{let n=await a(o,{method:`POST`,headers:{"content-type":`text/plain; charset=utf-8`,[Rm]:t},body:e});if(n.status===200){let e=await n.text();e&&u?.(e);return}if(!n.ok)throw Error(`Devframe SSE POST failed: ${n.status}`)}catch(e){n(e instanceof Error?e:Error(String(e)))}},serialize:s.serialize,deserialize:s.deserialize}}function K_(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var q_=Math.random.bind(Math),J_=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function Y_(e=21){let t=``,n=e;for(;n--;)t+=J_[q_()*64|0];return t}var X_=6e4,Z_=e=>e,Q_=Z_,{clearTimeout:$_,setTimeout:ev}=globalThis;function tv(e,t){let{post:n,on:r,off:i=()=>{},eventNames:a=[],serialize:o=Z_,deserialize:s=Q_,resolver:c,bind:l=`rpc`,timeout:u=X_,proxify:d=!0}=t,f=!1,p=new Map,m,h;async function g(e,r,i,a){if(f)throw Error(`[birpc] rpc is closed, cannot call "${e}"`);let s={m:e,a:r,t:`q`};a&&(s.o=!0);let c=async e=>n(o(e));if(i){await c(s);return}if(m)try{await m}finally{m=void 0}let{promise:l,resolve:d,reject:g}=K_(),_=Y_();s.i=_;let v;async function y(n=s){return u>=0&&(v=ev(()=>{try{if(t.onTimeoutError?.call(h,e,r)!==!0)throw Error(`[birpc] timeout on calling "${e}"`)}catch(e){g(e)}p.delete(_)},u),typeof v==`object`&&(v=v.unref?.())),p.set(_,{resolve:d,reject:g,timeoutId:v,method:e}),await c(n),l}try{t.onRequest?await t.onRequest.call(h,s,y,d):await y()}catch(e){if(t.onGeneralError?.call(h,e)!==!0)throw e;return}finally{$_(v),p.delete(_)}return l}let _={$call:(e,...t)=>g(e,t,!1),$callOptional:(e,...t)=>g(e,t,!1,!0),$callEvent:(e,...t)=>g(e,t,!0),$callRaw:e=>g(e.method,e.args,e.event,e.optional),$rejectPendingCalls:y,get $closed(){return f},get $meta(){return t.meta},$close:v,$functions:e};h=d?new Proxy({},{get(t,n){if(Object.hasOwn(_,n))return _[n];if(n===`then`&&!a.includes(`then`)&&!(`then`in e))return;let r=(...e)=>g(n,e,!0);if(a.includes(n))return r.asEvent=r,r;let i=(...e)=>g(n,e,!1);return i.asEvent=r,i}}):_;function v(e){f=!0,p.forEach(({reject:t,method:n})=>{let r=Error(`[birpc] rpc is closed, cannot call "${n}"`);if(e)return e.cause??=r,t(e);t(r)}),p.clear(),i(b)}function y(e){let t=Array.from(p.values()).map(({method:t,reject:n})=>e?e({method:t,reject:n}):n(Error(`[birpc]: rejected pending call "${t}".`)));return p.clear(),t}async function b(r,...i){let a;try{a=s(r)}catch(e){if(t.onGeneralError?.call(h,e)!==!0)throw e;return}if(a.t===`q`){let{m:r,a:s,o:u}=a,d,f,p=await(c?c.call(h,r,e[r]):e[r]);if(u&&(p||=()=>void 0),!p)f=Error(`[birpc] function "${r}" not found`);else try{d=await p.apply(l===`rpc`?h:e,s)}catch(e){f=e}if(a.i){if(f&&t.onFunctionError&&t.onFunctionError.call(h,f,r,s)===!0)return;if(!f)try{await n(o({t:`s`,i:a.i,r:d}),...i);return}catch(e){if(f=e,t.onGeneralError?.call(h,e,r,s)!==!0)throw e}try{await n(o({t:`s`,i:a.i,e:f}),...i)}catch(e){if(t.onGeneralError?.call(h,e,r,s)!==!0)throw e}}}else{let{i:e,r:t,e:n}=a,r=p.get(e);r&&($_(r.timeoutId),n?r.reject(n):r.resolve(t)),p.delete(e)}}return m=r(b),h}function nv(e,t){let{channel:n,rpcOptions:r={}}=t;return tv(e,{...n,timeout:-1,...r,proxify:!1})}function rv(e){let{transport:t,authToken:n,connectionMeta:r,events:i,clientRpc:a,rpcOptions:o={},callTimeout:s=0}=e,c=!1,l=`connecting`,u=null,d=Promise.withResolvers();function f(e,t=null){if(t?u=t:e===`connected`&&(u=null),e===l)return;let n=l;l=e,i.emit(Q.client.connectionStatus,e,n)}let p=new Set;function m(e){for(let t of[...p])t.reject(e)}function h(){return l===`disconnected`||l===`error`?new Ph(`connection`,`[devframe] Not connected to the devframe server`,{cause:u??void 0}):l===`unauthorized`?new Ph(`auth`,`[devframe] Not authorized by the devframe server`,{cause:u??void 0}):null}function g(e,t){return new Promise((n,r)=>{let a=!1,o,c={reject(e){a||(l(),i.emit(Q.client.error,e,t),r(e))}};function l(){a=!0,p.delete(c),o&&clearTimeout(o)}p.add(c),s>0&&(o=setTimeout(()=>{c.reject(new Ph(`timeout`,`[devframe] RPC call "${t}" timed out after ${s}ms`))},s)),e.then(e=>{a||(l(),n(e))},e=>{if(a)return;l();let n=e instanceof Error?e:Error(String(e));i.emit(Q.client.error,n,t),r(n)})})}let _=new Map;for(let e of r.jsonSerializableMethods??[])_.set(e,{jsonSerializable:!0});let v=e.createChannel({definitions:_,onError(e){f(`error`,e),i.emit(Q.client.connectionError,e),m(new Ph(`connection`,`[devframe] Connection to the devframe server failed`,{cause:e}))},onDisconnected(){l!==`error`&&f(`disconnected`),m(new Ph(`connection`,`[devframe] Disconnected from the devframe server`,{cause:u??void 0}))}}),y=nv(a.functions,{channel:v,rpcOptions:o});a.register({name:Q.broadcast.authRevoked,type:`event`,handler:()=>{c=!1;let e=new Ph(`auth`,`[devframe] The devframe server revoked this client's trust`);f(`unauthorized`,e),i.emit(Q.client.connectionError,e),m(e),i.emit(Q.client.isTrustedUpdated,!1)}});let b=n;async function x(e){b=e;let t=await y.$call(`anonymous:devframe:auth`,{authToken:e,ua:navigator.userAgent,origin:location.origin});if(c=t.isTrusted,c)d.resolve(!0),f(`connected`);else{let e=new Ph(`auth`,`[devframe] The devframe server refused this client's credentials`);f(`unauthorized`,e),i.emit(Q.client.connectionError,e)}return i.emit(Q.client.isTrustedUpdated,c),t.isTrusted}async function S(e){let t=(await y.$call(`anonymous:devframe:auth:exchange`,{code:e,ua:navigator.userAgent,origin:location.origin}))?.authToken??null;return t&&(b=t,c=!0,d.resolve(!0),f(`connected`),i.emit(Q.client.isTrustedUpdated,!0)),t}async function C(e={}){await y.$call(`anonymous:devframe:auth:request-code`,{ua:navigator.userAgent,origin:location.origin,...e.reissue?{reissue:!0}:{}})}async function w(){return c?!0:x(b??``)}async function ee(e=6e4){if(c&&d.resolve(!0),e<=0)return d.promise;let t;try{return await Promise.race([d.promise,new Promise((n,r)=>{t=setTimeout(()=>{r(Error(`[devframe] Timeout waiting for rpc to be trusted`))},e)})]),c}finally{clearTimeout(t)}}return{transport:t,get isTrusted(){return c},get status(){return l},get connectionError(){return u},requestTrust:w,requestTrustWithToken:x,requestTrustWithCode:S,requestAuthCode:C,ensureTrusted:ee,call:(...e)=>{let t=String(e[0]),n=h();return n?(i.emit(Q.client.error,n,t),Promise.reject(n)):g(y.$call(...e),t)},callEvent:(...e)=>{let t=h();if(t){i.emit(Q.client.error,t,String(e[0]));return}return y.$callEvent(...e)},callOptional:(...e)=>{let t=String(e[0]),n=h();return n?(i.emit(Q.client.error,n,t),Promise.reject(n)):g(y.$callOptional(...e),t)},close:()=>{v.close()}}}function iv(e,t,n){let r=(()=>{try{return new URL(t,n.href)}catch{return new URL(n.href)}})();if(e&&typeof e==`object`){if(e.host!=null||e.port!=null){let t=e.host??`${r.hostname}:${e.port}`;return new URL(e.path??`/`,`${r.protocol}//${t}`).href}return new URL(e.path??``,r).href}let i=e??``;return/^https?:\/\//i.test(i)?i:new URL(i,r).href}function av(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},sseOptions:s={},callTimeout:c=0}=e,l=iv(n.sse,r??`./`,location);return rv({transport:`sse`,authToken:t,connectionMeta:n,events:i,clientRpc:a,rpcOptions:o,callTimeout:c,createChannel:e=>G_({url:l,authToken:t,definitions:e.definitions,...s,onConnected(){s.onConnected?.()},onError(t){e.onError(t),s.onError?.(t)},onDisconnected(){e.onDisconnected(),s.onDisconnected?.()}})})}function ov(e){let{name:t,message:n,cause:r,...i}=e,a=r instanceof Error?r:sv(r)?ov(r):r,o=a===void 0?Error(n):Error(n,{cause:a});return o.name=t,Object.assign(o,i),o}function sv(e){return typeof e==`object`&&!!e&&typeof e.message==`string`&&typeof e.name==`string`}function cv(e){return typeof e==`object`&&!!e&&e.type===`static`&&typeof e.path==`string`}function lv(e){return typeof e==`object`&&!!e&&e.type===`query`&&typeof e.records==`object`&&e.records!==null}function uv(e){return typeof e==`object`&&!!e&&(`output`in e||`error`in e)}function dv(e){if(e.error)throw ov(e.error);return e.output}function fv(e){return e.some(e=>e!=null)}function pv(e){return typeof e==`object`&&e&&`serialization`in e&&`data`in e?e.data:e}function mv(e,t){let n=new Map,r=new Map;function i(e,t){return t===`structured-clone`&&Array.isArray(e)?L_(e):e}function a(e,t){return i(pv(e),t)}async function o(e){n.has(e.path)||n.set(e.path,t(e.path).then(t=>a(t,e.serialization)));let r=await n.get(e.path);return uv(r)?dv(r):r}async function s(e,n){return r.has(e)||r.set(e,t(e).then(e=>a(e,n))),await r.get(e)}async function c(t,n){if(!(t in e))throw Error(`[devframe-rpc] Function "${t}" not found in dump store`);let r=e[t];if(cv(r)){if(fv(n))throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`);return await o(r)}if(lv(r)){let e=Um(n),i=r.records[e];if(i)return dv(await s(i,r.serialization));if(r.fallback)return dv(await s(r.fallback,r.serialization));throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`)}if(!fv(n))return r;throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`)}return{call:async(e,t)=>await c(e,t),callOptional:async(t,n)=>{if(t in e)return await c(t,n)},callEvent:async(e,t)=>{}}}async function hv(e){let t=mv(await e.fetchJsonFromBases(zm),e.fetchJsonFromBases);return{transport:`static`,isTrusted:!0,status:`connected`,connectionError:null,requestTrust:async()=>!0,requestTrustWithToken:async()=>!0,requestTrustWithCode:async()=>null,requestAuthCode:async()=>{},ensureTrusted:async()=>!0,call:(...e)=>t.call(e[0],e.slice(1)),callEvent:(...e)=>t.callEvent(e[0],e.slice(1)),callOptional:(...e)=>t.callOptional(e[0],e.slice(1)),close:()=>{}}}var gv=256,_v=class extends Error{name=`StreamClosedError`};function vv(e={}){let t=e.id??h_(),n=Math.max(0,e.replayWindow??0),r=hh(),i=new AbortController,a=[],o=!1,s=0;function c(e){if(o)throw new _v(`Cannot write to a closed stream "${t}"`);s+=1,n>0&&(a.push({seq:s,chunk:e}),a.length>n&&(a.length-n===1?a.shift():a.splice(0,a.length-n))),r.emit(`chunk`,s,e)}function l(e){if(o)return;o=!0;let t=bv(e);i.abort(e),r.emit(`end`,t)}function u(){o||(o=!0,i.signal.aborted||i.abort(`stream closed`),r.emit(`end`,void 0))}function d(e){o||i.signal.aborted||i.abort(e??`aborted`)}let f=new WritableStream({write(e){c(e)},close(){u()},abort(e){l(e)}});return{id:t,signal:i.signal,get closed(){return o},get lastSeq(){return s},write:c,error:l,close:u,abort:d,writable:f,events:r,buffer:a}}function yv(e={}){let t=e.id??h_(),n=Math.max(1,e.highWaterMark??gv),r=[],i=0,a=!1,o=!1,s,c,l,u;function d(){if(c){if(r.length>0){let e=r.shift(),t=c;c=void 0,t.resolve({value:e,done:!1});return}if(a){let e=c;if(c=void 0,s){let t=Error(s.message);t.name=s.name,e.reject(t)}else e.resolve({value:void 0,done:!0})}}}function f(){if(l){for(;r.length>0;){let e=r.shift();try{l.enqueue(e)}catch{break}}if(a&&l){try{if(s){let e=Error(s.message);e.name=s.name,l.error(e)}else l.close()}catch{}l=void 0}}}function p(t,s){if(!(a||o)&&!(t<=i)){if(i=t,r.push(s),r.length>n){let t=r.length-n;r.splice(0,t),e.onOverflow?.(t)}d(),u&&f()}}function m(e){a||(a=!0,s=e,d(),u&&f())}function h(){o||a||(o=!0,e.onCancel?.(),m(void 0))}function g(){return u||(u=new ReadableStream({start(e){l=e,f()},cancel(){h()}}),u)}return{id:t,get cancelled(){return o},get done(){return a},get lastSeenSeq(){return i},get readable(){return g()},cancel:h,_push:p,_end:m,[Symbol.asyncIterator](){return{next(){if(r.length>0)return Promise.resolve({value:r.shift(),done:!1});if(a){if(s){let e=Error(s.message);return e.name=s.name,Promise.reject(e)}return Promise.resolve({value:void 0,done:!0})}return new Promise((e,t)=>{c={resolve:e,reject:t}})},return(){return h(),Promise.resolve({value:void 0,done:!0})}}}}}function bv(e){if(e instanceof Error)return{name:e.name||`Error`,message:e.message};if(typeof e==`string`)return{name:`Error`,message:e};try{return{name:`Error`,message:JSON.stringify(e)}}catch{return{name:`Error`,message:String(e)}}}var xv=``;function Sv(e,t){return`${e}${xv}${t}`}function Cv(e){let t=new Map,n=new Map;e.client.register({name:Q.broadcast.streamingChunk,type:`event`,handler(e,n,r,i){t.get(Sv(e,n))?._push(r,i)}}),e.client.register({name:Q.broadcast.streamingEnd,type:`event`,handler(e,n,r){let i=Sv(e,n),a=t.get(i);a&&(a._end(r),t.delete(i))}}),e.client.register({name:Q.broadcast.streamingUploadCancel,type:`event`,handler(e,t){let r=Sv(e,t),i=n.get(r);i&&(i.abort(`server cancelled upload`),n.delete(r))}}),e.events.on(Q.client.isTrustedUpdated,n=>{if(n)for(let[n,r]of t){if(r.cancelled||r.done)continue;let t=n.indexOf(xv);if(t<0)continue;let i=n.slice(0,t),a=n.slice(t+1);e.callEvent(`devframe:streaming:subscribe`,i,a,{afterSeq:r.lastSeenSeq})}});function r(n,r,i={}){let a=Sv(n,r),o=t.get(a);if(o)return o;let s=yv({id:r,highWaterMark:i.highWaterMark,onOverflow(e){console.warn(`[devframe] DF0029: Stream "${n}#${r}" dropped ${e} chunk(s) after exceeding the client high-water mark.`)},onCancel(){e.callEvent(`devframe:streaming:cancel`,n,r),t.delete(a)}});if(t.set(a,s),e.isTrusted)e.callEvent(`devframe:streaming:subscribe`,n,r,{afterSeq:0});else{let i=e.events.on(Q.client.isTrustedUpdated,o=>{o&&(i(),t.has(a)&&!s.cancelled&&!s.done&&e.callEvent(`devframe:streaming:subscribe`,n,r,{afterSeq:s.lastSeenSeq}))})}return s}function i(t,r){let i=Sv(t,r),a=n.get(i);if(a)return a;let o=vv({id:r});return o.events.on(`chunk`,(n,i)=>{e.callEvent(`devframe:streaming:upload-chunk`,t,r,n,i)}),o.events.on(`end`,a=>{e.callEvent(`devframe:streaming:upload-end`,t,r,a),n.delete(i)}),n.set(i,o),o}return{subscribe:r,upload:i}}function wv(){}var Tv=new Map;function Ev(e){let t=e.url;e.authToken&&(t=`${t}?${Hm}=${encodeURIComponent(e.authToken)}`);let n=new WebSocket(t),{onConnected:r=wv,onError:i=wv,onDisconnected:a=wv,definitions:o=Tv}=e;n.addEventListener(`open`,e=>{r(e)}),n.addEventListener(`error`,e=>{let t=e instanceof Error?e:Error(e.type);i(t)}),n.addEventListener(`close`,e=>{a(e)});let s=V_(o);return{close:()=>{n.close()},on:e=>{n.addEventListener(`message`,t=>{e(t.data)})},post:e=>{if(n.readyState===WebSocket.OPEN){n.send(e);return}if(n.readyState===WebSocket.CONNECTING){let t=()=>{i(),n.readyState===WebSocket.OPEN&&n.send(e)},r=()=>i();function i(){n.removeEventListener(`open`,t),n.removeEventListener(`close`,r)}n.addEventListener(`open`,t),n.addEventListener(`close`,r);return}i(Error(`Devframe WebSocket is not open; message dropped`))},serialize:s.serialize,deserialize:s.deserialize}}function Dv(e,t,n){let r=(()=>{try{return new URL(t,n.href)}catch{return new URL(n.href)}})(),i=r.protocol===`https:`?`wss:`:`ws:`;if(e&&typeof e==`object`){if(e.host!=null||e.port!=null){let t=e.host??`${r.hostname}:${e.port}`,n=new URL(e.path??`/`,`${i}//${t}`);return n.protocol=i,n.href}let t=new URL(e.path??``,r);return t.protocol=i,t.href}if(typeof e==`number`)return`${i}//${r.hostname}:${e}`;let a=e??``;if(/^wss?:\/\//i.test(a))return a;if(/^https?:\/\//i.test(a))return xh(a,/^https/i.test(a)?`wss://`:`ws://`);let o=new URL(a,r);return o.protocol=i,o.href}function Ov(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},wsOptions:s={},callTimeout:c=0}=e,l=Dv(n.websocket,r??`./`,location);return rv({transport:`websocket`,authToken:t,connectionMeta:n,events:i,clientRpc:a,rpcOptions:o,callTimeout:c,createChannel:e=>Ev({url:l,authToken:t,definitions:e.definitions,...s,onConnected(e){s.onConnected?.(e)},onError(t){e.onError(t),s.onError?.(t)},onDisconnected(t){e.onDisconnected(),s.onDisconnected?.(t)}})})}function kv(e){return e.includes(`:`)}function Av(e,t){return kv(t)?t:`${e}:${t}`}function jv(e){return{async get(t){return(await e()).value()[t]},async set(t,n){(await e()).mutate(e=>{e[t]=n})},async delete(t){(await e()).mutate(e=>{delete e[t]})},async all(){return(await e()).value()},async onChange(t){return(await e()).on(`updated`,e=>t(e))}}}function Mv(e,t,n){let r=`devframe:settings:${n}:${t}`,i;function a(){return i||=e.sharedState.get(r,{initialValue:{}}),i}return jv(a)}function Nv(e,t){return{global:Mv(e,t,`global`),project:Mv(e,t,`project`)}}function Pv(e,t){return{namespace:t,base:e,rpc:{namespace:t,register(n){if(kv(n.name))throw Error(`[devframe] Scoped client RPC registration for namespace "${t}" received an already-namespaced function name "${n.name}". Pass a bare name without a ":" separator.`);e.client.register({...n,name:`${t}:${n.name}`})},call:((n,...r)=>e.call(Av(t,n),...r)),callEvent:((n,...r)=>e.callEvent(Av(t,n),...r)),callOptional:((n,...r)=>e.callOptional(Av(t,n),...r)),sharedState:((n,r)=>e.sharedState.get(Av(t,n),r)),streaming:{subscribe:(n,r,i)=>e.streaming.subscribe(Av(t,n),r,i),upload:(n,r)=>e.streaming.upload(Av(t,n),r)}},settings:Nv(e,t),scope:e.scope}}var Fv=128;function Iv(e){return e.replace(/[^\w-]+/g,`_`).slice(0,Fv)}function Lv(e,t){return t.safety?t.safety:e===`static`||e===`query`||e==null?`read`:`action`}var Rv=Object.freeze({type:`object`,additionalProperties:!0});function zv(e){let t=e[`~standard`];if(t.jsonSchema)try{return t.jsonSchema.input({target:`draft-2020-12`})}catch{return Rv}return Rv}function Bv(e){if(!e||e.length===0)return{type:`object`,properties:{}};let t={},n=[];for(let r=0;r<e.length;r++){let i=`arg${r}`;t[i]=zv(e[r]),n.push(i)}return{type:`object`,properties:t,required:n,additionalProperties:!1}}function Vv(e,t){if(Array.isArray(e))return e;if(e==null)return[];if(typeof e!=`object`)return;let n=e;if(t!=null)return Array.from({length:t},(e,t)=>n[`arg${t}`]);if(`arg0`in n){let e=[];for(;`arg${e.length}`in n;)e.push(n[`arg${e.length}`]);return e}return Object.keys(n).length===0?[]:void 0}function Hv(e,t){return Vv(e,t)??[e]}function Uv(){if(typeof document<`u`){let e=document.modelContext;if(e)return e}if(typeof navigator<`u`){let e=navigator.modelContext;if(e)return e}}function Wv(e,t={}){let n=t.modelContext??Uv();if(!n)return()=>{};let r=n,i=new Map,a=new Map;function o(t,n){let o=Iv(t.name),s=a.get(o);if(s&&s!==t.name){console.warn(`[devframe] WebMCP tool name "${o}" (from "${t.name}") collides with "${s}"; keeping the first registration.`);return}let c=new AbortController,l=Lv(t.type,n),u=r.registerTool({name:o,description:n.description,inputSchema:Bv(t.args),annotations:{title:n.title??t.name,readOnlyHint:l===`read`,destructiveHint:l===`destructive`},execute:n=>Gv(t,e.context,n)},{signal:c.signal});u&&`then`in u&&u.then(()=>{},()=>{}),a.set(o,t.name),i.set(t.name,()=>{c.abort(),u&&`unregister`in u&&typeof u.unregister==`function`&&u.unregister(),a.delete(o)})}function s(t){let n=t?[t]:[...e.definitions.keys()];for(let t of n){i.get(t)?.(),i.delete(t);let n=e.definitions.get(t),r=n?.agent;n&&r&&o(n,r)}}s();let c=e.onChanged(e=>s(e));return()=>{c();for(let e of i.values())e();i.clear()}}async function Gv(e,t,n){try{let r=Hv(n,e.args?.length);return{content:[{type:`text`,text:Kv(await(await lh(e,t))(...r))}]}}catch(e){return{isError:!0,content:[{type:`text`,text:qv(e)}]}}}function Kv(e){return e===void 0?`undefined`:typeof e==`string`?e:JSON.stringify(e,null,2)}function qv(e){if(!(e instanceof Error))return String(e);let t=e.cause instanceof Error?` (cause: ${e.cause.message})`:``;return`${e.name}: ${e.message}${t}`}var Jv=`modulepreload`,Yv=function(e,t){return new URL(e,t).href},Xv={},Zv=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=Yv(t,n),t=s(t),t in Xv)return;Xv[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:Jv,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};function Qv(e,t){if(t.backend===`static`)return`static`;let n=t.websocket!==void 0,r=t.sse!==void 0;if(e===`websocket`){if(!n)throw Error(`[devframe] transport: 'websocket' was requested, but this server does not advertise a WebSocket endpoint`);return`websocket`}if(e===`sse`){if(!r)throw Error(`[devframe] transport: 'sse' was requested, but this server does not advertise an SSE endpoint`);return`sse`}if(t.backend===`sse`&&r)return`sse`;if(n)return`websocket`;if(r)return`sse`;throw Error(`[devframe] This server advertises no RPC transport (backend "none"), so there is nothing to connect to. Enable the WebSocket or SSE endpoint on the server, or use its static/MCP surfaces instead.`)}async function $v(e={}){let{baseURL:t=`./`,rpcOptions:n={},cacheOptions:r=!1}=e,i=hh(),a=Array.isArray(t)?t:[t],o=await Nh(e),{connectionMeta:s,metaBaseUrl:c,authToken:l}=o,u=a[0]??`./`;try{u=new URL(`.`,c).href}catch{}let d=new Wm({functions:[],...typeof e.cacheOptions==`object`?e.cacheOptions:{}}),f={rpc:void 0},p=new uh(f),m=e.webmcp===!1?void 0:Wv(p),h,g=!1;async function _(e){let t=[u,...a.filter(e=>e!==u)].filter(e=>e!=null),n=[];for(let r of t)try{return await fetch(bh(e,r)).then(t=>{if(!t.ok)throw Error(`Failed to fetch ${e} from ${r}: ${t.status}`);return t.json()})}catch(e){n.push(e)}throw Error(`Failed to load ${e} from ${t.join(`, `)}`,{cause:n})}let v={authToken:l,connectionMeta:s,metaBaseUrl:c,events:i,clientRpc:p,callTimeout:e.callTimeout,rpcOptions:{...n,async onRequest(e,t,i){if(await n.onRequest?.call(this,e,t,i),r&&d?.validate(e.m)){if(d.has(e.m,e.a))return i(d.cached(e.m,e.a));let n=await t(e);d.apply(e,n)}else await t(e)}}},y=Qv(e.transport??`auto`,s),b=y===`static`?await hv({fetchJsonFromBases:_}):y===`sse`?av({...v,sseOptions:e.sseOptions}):Ov({...v,wsOptions:e.wsOptions}),x;try{x=new BroadcastChannel(`devframe-auth`)}catch{}let S,C=!1;function w(e){return((...t)=>C||!S?e(...t):S.then(()=>e(...t)))}function ee(){g=!0;try{h?.(),m?.()}finally{try{x?.close()}finally{b.close?.()}}}let T={events:i,get isTrusted(){return b.isTrusted},get status(){return b.status},get connectionError(){return b.connectionError},get transport(){return b.transport??y},get connection(){return o},connectionMeta:s,ensureTrusted:b.ensureTrusted,requestTrust:b.requestTrust,requestTrustWithToken:async e=>(kh(e),o={...o,authToken:e},b.requestTrustWithToken(e)),requestTrustWithCode:async e=>{let t=await b.requestTrustWithCode(e);if(!t)return!1;kh(t),o={...o,authToken:t};try{x?.postMessage({type:`auth-update`,authToken:t})}catch{}return!0},requestAuthCode:e=>b.requestAuthCode(e),call:w(b.call),callEvent:w(b.callEvent),callOptional:w(b.callOptional),client:p,sharedState:void 0,services:void 0,streaming:void 0,cacheManager:d,scope:void 0,close:ee};T.sharedState=y_(T),T.streaming=Cv(T),T.services=zh(T);let E=new Map;T.scope=(e=>{if(!e)return T;let t=E.get(e);return t||(t=Pv(T,e),E.set(e,t)),t}),f.rpc=T;function te(){try{return typeof window<`u`&&window.self===window.top}catch{return!1}}async function ne(){if(e.simpleAuth!==!1&&te()&&typeof globalThis.prompt==`function`)for(await T.requestAuthCode().catch(()=>{});!T.isTrusted;){let e=globalThis.prompt(`devframe: enter the authentication code shown in your terminal`);if(e==null)return;let t=e.trim();if(t&&await T.requestTrustWithCode(t))return}}async function re(){let t=await b.requestTrust(),n=e.otpParam??`devframe_otp`,r=n?await Rh(T,{param:n}):!1;t||r||T.isTrusted||await ne()}return S=re().then(()=>{C=!0},()=>{C=!0}),s.mcp&&Zv(async()=>{let{setupBrowserAgentRpcBridge:e}=await import(`./browser-agent-rpc-C8UmNFh8.js`);return{setupBrowserAgentRpcBridge:e}},[],import.meta.url).then(({setupBrowserAgentRpcBridge:e})=>{g||(h=e(T))}).catch(()=>{}),x&&(x.onmessage=e=>{e.data?.type===`auth-update`&&e.data.authToken&&T.requestTrustWithToken(e.data.authToken)}),T}var ey=$v,ty=F([]),ny=F(!0),ry=1;function iy(e){ny.value&&ty.value.push({...e,id:ry++})}function ay(){ty.value=[]}var oy=M({connected:!1,status:`connecting`,error:null,backend:null}),sy=cn(null);function cy(e){let t=e.call.bind(e);e.call=async(e,...n)=>{let r=Date.now();try{let i=await t(e,...n);return!e.includes(`list-functions`)&&!e.includes(`list-state-keys`)&&e!==`devframe:rpc:server-state:get`&&iy({type:`call`,method:e,args:n,result:i,duration:Date.now()-r,time:r}),i}catch(t){throw!e.includes(`list-functions`)&&!e.includes(`list-state-keys`)&&e!==`devframe:rpc:server-state:get`&&iy({type:`call`,method:e,args:n,error:t,duration:Date.now()-r,time:r}),t}};let n=e.callEvent.bind(e);e.callEvent=(e,...t)=>(!e.includes(`list-functions`)&&!e.includes(`list-state-keys`)&&e!==`devframe:rpc:server-state:subscribe`&&iy({type:`call`,method:e,args:t,duration:0,time:Date.now()}),n(e,...t));let r=e.client.definitions.get(`devframe:rpc:client-state:updated`);if(r&&r.handler){let e=r.handler;r.handler=(t,n,r)=>(iy({type:`state`,key:t,value:n,syncId:r,time:Date.now()}),e(t,n,r))}let i=e.client.definitions.get(`devframe:rpc:client-state:patch`);if(i&&i.handler){let e=i.handler;i.handler=(t,n,r)=>(iy({type:`state`,key:t,patches:n,syncId:r,time:Date.now()}),e(t,n,r))}}function ly(e){oy.status=e.status,oy.connected=e.status===`connected`,oy.error=e.connectionError?.message??null}async function uy(){try{let e=await ey();cy(e),sy.value=e,oy.backend=e.connectionMeta.backend,ly(e),e.events.on(`connection:status`,()=>ly(e)),e.connectionMeta.backend===`websocket`&&e.ensureTrusted(5e3).catch(()=>{})}catch(e){oy.status=`error`,oy.error=e?.message??String(e)}}function dy(){return sy}function fy(){return oy.backend===`static`}var py=R({__name:`FeedbackSpinner`,props:{size:{default:`1em`}},setup(e){let t=e,n=Y(()=>typeof t.size==`number`?`${t.size}px`:t.size);return(e,t)=>(H(),U(`span`,{class:`border-2 border-current border-t-transparent rounded-full inline-block animate-spin`,style:he({width:n.value,height:n.value}),role:`status`,"aria-label":`Loading`},null,4))}}),my=R({__name:`ActionButton`,props:{as:{},to:{},href:{},icon:{},variant:{default:`action`},size:{default:`md`},loading:{type:Boolean},disabled:{type:Boolean}},setup(e){let t=e,n=Y(()=>t.as?t.as:t.href!=null||t.to!=null?`a`:`button`),r=Y(()=>n.value===`a`),i=Y(()=>n.value===`button`),a=Y(()=>t.size===`sm`),o=Y(()=>t.variant===`primary`?a.value?`btn-primary text-sm`:`btn-primary`:t.variant===`text`?a.value?`btn-text text-sm`:`btn-text`:a.value?`btn-action-sm`:`btn-action`),s=Y(()=>t.disabled||t.loading);return(t,a)=>(H(),W(ca(n.value),{class:k([o.value,{"pointer-events-none op-mute":s.value&&!i.value}]),href:r.value?e.href??e.to:void 0,to:e.as&&e.to!=null?e.to:void 0,disabled:i.value?s.value:void 0,"aria-disabled":s.value||void 0,"aria-busy":e.loading||void 0},{default:L(()=>[e.loading?(H(),W(py,{key:0,size:`1em`})):e.icon?(H(),U(`span`,{key:1,class:k(e.icon),"aria-hidden":`true`},null,2)):J(``,!0),ma(t.$slots,`default`)]),_:3},8,[`class`,`href`,`to`,`disabled`,`aria-disabled`,`aria-busy`]))}}),hy={class:`min-w-0`},gy=R({__name:`FeedbackTip`,props:{type:{default:`info`},icon:{}},setup(e){let t=e,n={info:`bg-blue-400/10 border-blue-500/20 text-blue-700 dark:text-blue-300`,success:`bg-green-400/10 border-green-500/20 text-green-700 dark:text-green-300`,warning:`bg-amber-400/10 border-amber-500/20 text-amber-700 dark:text-amber-300`,error:`bg-red-400/10 border-red-500/20 text-red-700 dark:text-red-300`},r=Y(()=>n[t.type]);return(t,n)=>(H(),U(`div`,{class:k([`text-sm p-3 border rounded-lg flex gap-2`,r.value]),role:`note`},[e.icon?(H(),U(`span`,{key:0,class:k([e.icon,`mt-0.5 shrink-0`]),"aria-hidden":`true`},null,2)):J(``,!0),G(`div`,hy,[ma(t.$slots,`default`)])],2))}}),_y={class:`json`},vy={key:0,class:`json-key`},yy={key:1,class:`json-colon`},by={key:0,class:`json-key`},xy={key:1,class:`json-colon`},Sy={class:`json-meta`},Cy={key:2},wy={key:0,class:`json-key`},Ty={key:1,class:`json-colon`},Ey={key:2,class:`json-meta`},Dy={key:3,class:`json-meta`},Oy={key:0,class:`json-children`},ky={key:1,class:`json-row`},Ay={class:`json-meta`},$=R({__name:`JsonView`,props:{value:{},name:{},path:{default:``},depth:{default:0},expandDepth:{default:1},highlightPaths:{}},setup(e){let t=e,n=Y(()=>Array.isArray(t.value)?`array`:t.value!==null&&typeof t.value==`object`?`object`:`primitive`),r=Y(()=>n.value===`array`?t.value.map((e,t)=>[String(t),e]):n.value===`object`?Object.entries(t.value):[]),i=F(t.depth<t.expandDepth),a=Y(()=>r.value.length===0),o=Y(()=>!!t.path&&t.highlightPaths?.has(t.path));function s(e){return t.path?`${t.path}.${e}`:e}function c(e){return e==null?`v-null`:`v-${typeof e}`}function l(e){return e===void 0?`undefined`:e===null?`null`:typeof e==`string`?JSON.stringify(e):String(e)}let u=Y(()=>n.value===`array`?`[`:`{`),d=Y(()=>n.value===`array`?`]`:`}`),f=Y(()=>n.value===`array`?`[${r.value.length}]`:`{${r.value.length}}`);return(t,p)=>{let m=oa(`JsonView`,!0);return H(),U(`div`,_y,[n.value===`primitive`?(H(),U(`div`,{key:0,class:k([`json-row`,{changed:o.value}])},[e.name===void 0?J(``,!0):(H(),U(`span`,vy,A(e.name),1)),e.name===void 0?J(``,!0):(H(),U(`span`,yy,`:`)),G(`span`,{class:k(c(e.value))},A(l(e.value)),3)],2)):a.value?(H(),U(`div`,{key:1,class:k([`json-row`,{changed:o.value}])},[e.name===void 0?J(``,!0):(H(),U(`span`,by,A(e.name),1)),e.name===void 0?J(``,!0):(H(),U(`span`,xy,`:`)),G(`span`,Sy,A(u.value)+A(d.value),1)],2)):(H(),U(`div`,Cy,[G(`div`,{class:k([`json-row json-toggle`,{changed:o.value}]),onClick:p[0]||=e=>i.value=!i.value},[G(`span`,{class:k([`json-caret`,{open:i.value}])},`▶`,2),e.name===void 0?J(``,!0):(H(),U(`span`,wy,A(e.name),1)),e.name===void 0?J(``,!0):(H(),U(`span`,Ty,`:`)),i.value?(H(),U(`span`,Ey,A(u.value),1)):(H(),U(`span`,Dy,A(f.value),1))],2),i.value?(H(),U(`div`,Oy,[(H(!0),U(B,null,fa(r.value,([t,n])=>(H(),W(m,{key:t,name:t,value:n,path:s(t),depth:e.depth+1,"expand-depth":e.expandDepth,"highlight-paths":e.highlightPaths},null,8,[`name`,`value`,`path`,`depth`,`expand-depth`,`highlight-paths`]))),128))])):J(``,!0),i.value?(H(),U(`div`,ky,[G(`span`,Ay,A(d.value),1)])):J(``,!0)]))])}}}),jy={class:`pane`},My={key:0,class:`center`},Ny={class:`section-title`},Py={key:0,class:`empty`},Fy={key:1,class:`cards`},Iy=[`onClick`],Ly={class:`card-title`},Ry={class:`badge flag`},zy={class:`id`},By={key:0,class:`id-note`},Vy={class:`desc`},Hy={key:1,class:`tags`},Uy=[`onUpdate:modelValue`,`aria-invalid`,`aria-describedby`,`onInput`],Wy={style:{"margin-top":`8px`,display:`flex`,gap:`8px`,"align-items":`center`}},Gy={key:0,class:`note`},Ky={key:4,class:`result`},qy={class:`result-head`},Jy={key:0,class:`ok`},Yy={key:1,class:`fail`},Xy={key:2,class:`muted`},Zy={class:`section-title`},Qy={key:2,class:`empty`},$y={key:3,class:`cards`},eb=[`onClick`],tb={class:`card-title`},nb={key:0,class:`badge flag`},rb={class:`id`},ib={key:0,class:`desc`},ab={style:{"margin-top":`8px`,display:`flex`,gap:`8px`,"align-items":`center`}},ob={key:0,class:`note`},sb={key:0,class:`result`},cb={class:`result-head`},lb={key:0,class:`ok`},ub={key:1,class:`fail`},db={key:2,class:`muted`},fb=R({__name:`AgentView`,props:{manifest:{},isStatic:{type:Boolean},results:{},pending:{}},emits:[`invoke`,`read`],setup(e,{emit:t}){let n=t,r=F(null),i=M({}),a=M({});function o(e){r.value=r.value===e?null:e,i[e]===void 0&&(i[e]=`{}`)}function s(e){let t;try{t=JSON.parse(i[e]||`{}`)}catch(t){a[e]=`Invalid JSON arguments: ${t.message}`;return}delete a[e],n(`invoke`,e,t)}function c(e){delete a[e]}function l(e){return`agent-invoke-error-${Iv(e)}`}function u(e){n(`read`,e)}return(t,n)=>(H(),U(`div`,jy,[e.manifest?(H(),U(B,{key:1},[G(`div`,Ny,` Tools · `+A(e.manifest.tools.length),1),e.manifest.tools.length===0?(H(),U(`div`,Py,` No agent-exposed tools. `)):(H(),U(`div`,Fy,[(H(!0),U(B,null,fa(e.manifest.tools,t=>(H(),U(`div`,{key:t.id,class:`card`},[G(`div`,{class:`card-head`,style:{cursor:`pointer`,"user-select":`none`},onClick:e=>o(t.id)},[G(`div`,{class:k([`chev i-ph-caret-right`,{open:r.value===t.id}])},null,2),G(`span`,Ly,A(t.title),1),G(`span`,Ry,A(t.kind),1),G(`span`,{class:k([`badge`,`safety-${t.safety}`])},A(t.safety),3)],8,Iy),G(`div`,zy,A(I(Iv)(t.id)),1),I(Iv)(t.id)===t.id?J(``,!0):(H(),U(`div`,By,` internal id: `+A(t.id),1)),G(`p`,Vy,A(t.description),1),t.tags&&t.tags.length?(H(),U(`div`,Hy,[(H(!0),U(B,null,fa(t.tags,e=>(H(),U(`span`,{key:e,class:`badge flag`},A(e),1))),128))])):J(``,!0),r.value===t.id?(H(),U(B,{key:2},[t.inputSchema?(H(),U(B,{key:0},[n[0]||=G(`div`,{class:`label`},` Input schema `,-1),K($,{value:t.inputSchema,"expand-depth":1},null,8,[`value`])],64)):J(``,!0),t.outputSchema?(H(),U(B,{key:1},[n[1]||=G(`div`,{class:`label`},` Output schema `,-1),K($,{value:t.outputSchema,"expand-depth":1},null,8,[`value`])],64)):J(``,!0),t.examples&&t.examples.length?(H(),U(B,{key:2},[n[2]||=G(`div`,{class:`label`},` Examples `,-1),K($,{value:t.examples,"expand-depth":1},null,8,[`value`])],64)):J(``,!0),n[3]||=G(`div`,{class:`label`},` Invoke (MCP format) `,-1),mr(G(`textarea`,{"onUpdate:modelValue":e=>i[t.id]=e,class:`args`,spellcheck:`false`,placeholder:`{}`,"aria-invalid":!!a[t.id],"aria-describedby":a[t.id]?l(t.id):void 0,onInput:e=>c(t.id)},null,40,Uy),[[Bl,i[t.id]]]),a[t.id]?(H(),W(gy,{key:3,id:l(t.id),class:`mt-2`,type:`error`,icon:`i-ph-warning-circle-duotone`,role:`alert`},{default:L(()=>[q(A(a[t.id]),1)]),_:2},1032,[`id`])):J(``,!0),G(`div`,Wy,[K(my,{variant:`primary`,size:`sm`,icon:`i-ph-play-duotone`,loading:e.pending[t.id],disabled:e.pending[t.id]||e.isStatic,onClick:e=>s(t.id)},{default:L(()=>[q(A(e.pending[t.id]?`Invoking…`:`Invoke`),1)]),_:2},1032,[`loading`,`disabled`,`onClick`]),e.isStatic?(H(),U(`span`,Gy,`read-only static backend`)):J(``,!0)]),e.results[t.id]?(H(),U(`div`,Ky,[G(`div`,qy,[e.results[t.id].ok?(H(),U(`span`,Jy,`✓ resolved`)):(H(),U(`span`,Yy,`✕ threw`)),`durationMs`in e.results[t.id]?(H(),U(`span`,Xy,A(e.results[t.id].durationMs)+`ms`,1)):J(``,!0)]),e.results[t.id].ok?(H(),W($,{key:0,value:e.results[t.id].result,"expand-depth":2},null,8,[`value`])):(H(),W($,{key:1,value:e.results[t.id].error,"expand-depth":2},null,8,[`value`]))])):J(``,!0)],64)):J(``,!0)]))),128))])),G(`div`,Zy,` Resources · `+A(e.manifest.resources.length),1),e.manifest.resources.length===0?(H(),U(`div`,Qy,` No agent-readable resources. `)):(H(),U(`div`,$y,[(H(!0),U(B,null,fa(e.manifest.resources,t=>(H(),U(`div`,{key:t.id,class:`card`},[G(`div`,{class:`card-head`,style:{cursor:`pointer`,"user-select":`none`},onClick:e=>o(t.id)},[G(`div`,{class:k([`chev i-ph-caret-right`,{open:r.value===t.id}])},null,2),G(`span`,tb,A(t.name),1),t.mimeType?(H(),U(`span`,nb,A(t.mimeType),1)):J(``,!0)],8,eb),G(`div`,rb,A(t.uri),1),t.description?(H(),U(`p`,ib,A(t.description),1)):J(``,!0),r.value===t.id?(H(),U(B,{key:1},[G(`div`,ab,[K(my,{variant:`primary`,size:`sm`,icon:`i-ph-book-open-duotone`,loading:e.pending[t.id],disabled:e.pending[t.id]||e.isStatic,onClick:e=>u(t.id)},{default:L(()=>[q(A(e.pending[t.id]?`Reading…`:`Read Resource`),1)]),_:2},1032,[`loading`,`disabled`,`onClick`]),e.isStatic?(H(),U(`span`,ob,`read-only static backend`)):J(``,!0)]),e.results[t.id]?(H(),U(`div`,sb,[G(`div`,cb,[e.results[t.id].ok?(H(),U(`span`,lb,`✓ resolved`)):(H(),U(`span`,ub,`✕ threw`)),`durationMs`in e.results[t.id]?(H(),U(`span`,db,A(e.results[t.id].durationMs)+`ms`,1)):J(``,!0)]),e.results[t.id].ok?(H(),W($,{key:0,value:e.results[t.id].result,"expand-depth":2},null,8,[`value`])):(H(),W($,{key:1,value:e.results[t.id].error,"expand-depth":2},null,8,[`value`]))])):J(``,!0)],64)):J(``,!0)]))),128))]))],64)):(H(),U(`div`,My,` Loading agent surface… `))]))}}),pb=R({__name:`AgentSmart`,setup(e){let t=dy(),n=cn(null),r=M({}),i=M({});async function a(){t.value&&(n.value=await t.value.call(`devframes:plugin:inspect:describe-agent`))}Pm(a),Yi(a);async function o(e,n){if(t.value){i[e]=!0;try{r[e]=await t.value.call(`devframes:plugin:inspect:invoke-agent-tool`,e,n)}catch(t){let n=t;r[e]={ok:!1,error:{name:n?.name??`Error`,message:n?.message??String(t)}}}finally{i[e]=!1}}}async function s(e){if(t.value){i[e]=!0;try{r[e]=await t.value.call(`devframes:plugin:inspect:read-agent-resource`,e)}catch(t){let n=t;r[e]={ok:!1,error:{name:n?.name??`Error`,message:n?.message??String(t)}}}finally{i[e]=!1}}}return(e,t)=>(H(),W(fb,{manifest:n.value,"is-static":I(fy)(),results:r,pending:i,onInvoke:o,onRead:s},null,8,[`manifest`,`is-static`,`results`,`pending`]))}}),mb=Object.freeze({type:`object`,additionalProperties:!0}),hb=new Set([`query`,`static`]);function gb(e,t){let n=t.type??`query`,r;return t.agent&&(r={description:t.agent.description,title:t.agent.title,safety:t.agent.safety,tags:t.agent.tags}),{name:e,type:n,jsonSerializable:t.jsonSerializable===!0,snapshot:t.snapshot===!0,cacheable:t.cacheable===!0,hasArgs:!!t.args,hasReturns:!!t.returns,hasDump:!!t.dump,hasSetup:!!t.setup,hasHandler:!!t.handler,invokable:hb.has(n),agent:r,argsSchema:yb(t.args),returnsSchema:vb(t.returns)}}function _b(e){let t=e[`~standard`];if(!t.jsonSchema)return mb;try{return t.jsonSchema.input({target:`draft-2020-12`})}catch{return mb}}function vb(e){if(e)return _b(e)}function yb(e){if(e&&e.length!==0)return{type:`array`,prefixItems:e.map(e=>_b(e))}}function bb(e){let t=[];for(let[n,r]of e.definitions)t.push(gb(n,r));return t.sort((e,t)=>e.name.localeCompare(t.name)),t}async function xb(e,t,n){let r=e.definitions.get(t);if(!r)return{ok:!1,error:{name:`Error`,message:`No client RPC function named "${t}" is registered.`},durationMs:0};let i=r.type??`query`;if(!hb.has(i))return{ok:!1,error:{name:`Error`,message:`"${t}" is a ${i} function; only read-only query/static functions are invoked.`},durationMs:0};let a=Date.now();try{return{ok:!0,result:await(await lh(r,e.context))(...n),durationMs:Date.now()-a}}catch(e){return{ok:!1,error:Tb(e),durationMs:Date.now()-a}}}async function Sb(e,t=Uv()){if(t?.getTools)try{let e=(await t.getTools()).map(e=>({...e,inputSchema:wb(e.inputSchema)}));return{available:!0,live:!0,executable:typeof t.executeTool==`function`,tools:e}}catch{}let n=[];for(let[t,r]of e.definitions)r.agent&&n.push({name:Iv(t),description:r.agent.description,source:t});return n.sort((e,t)=>e.name.localeCompare(t.name)),{available:!!t,live:!1,executable:!1,tools:n}}async function Cb(e,t,n){let r=Date.now();try{if(!e.executeTool)throw Error(`This model context does not support executeTool().`);let i;try{i=await e.executeTool(t,JSON.stringify(n))}catch(r){if(!(r instanceof TypeError))throw r;i=await e.executeTool(t,n)}return{ok:!0,result:wb(i),durationMs:Date.now()-r}}catch(e){return{ok:!1,error:Tb(e),durationMs:Date.now()-r}}}function wb(e){if(typeof e!=`string`)return e;try{return JSON.parse(e)}catch{return e}}function Tb(e){let t=e;return{name:t?.name??`Error`,message:t?.message??String(e),stack:t?.stack}}function Eb(e,t=1){let n=0;for(let t=0;t<e.length;t++)n=e.charCodeAt(t)+((n<<5)-n);return Db(n%360,t)}function Db(e,t=1){return`hsla(${e}, 60%, 50%, ${t})`}function Ob(e){let t=e.split(/([:/])/),n=[],r=``;for(let e=0;e<t.length;e+=2){let i=t[e]??``,a=t[e+1]??``;if(i===``&&a===``)continue;r+=i;let o=a===``;n.push({text:i,separator:a,isLeaf:o,color:o?void 0:Eb(r)}),r+=a}return n}var kb=[`title`],Ab={key:0,class:`ns-sep`},jb=R({__name:`FunctionName`,props:{name:{}},setup(e){let t=e,n=Y(()=>Ob(t.name));return(t,r)=>(H(),U(`span`,{class:`fn-name`,title:e.name},[(H(!0),U(B,null,fa(n.value,(e,t)=>(H(),U(B,{key:t},[G(`span`,{class:`ns-seg`,style:he(e.color?{color:e.color}:void 0)},A(e.text),5),e.separator?(H(),U(`span`,Ab,A(e.separator),1)):J(``,!0)],64))),128))],8,kb))}}),Mb={class:`fn-row`},Nb={class:`fn-flags`},Pb={key:0,class:`badge agent`,title:`Exposed to agents`},Fb={key:1,class:`badge flag`,title:`Strict JSON wire serialization`},Ib={key:2,class:`badge flag`,title:`Baked into the static build dump`},Lb={key:3,class:`badge flag`},Rb={key:4,class:`badge flag`},zb={key:5,class:`badge flag`},Bb={key:0,class:`fn-detail`},Vb={key:0,class:`desc`},Hb=[`value`],Ub={style:{"margin-top":`8px`,display:`flex`,gap:`8px`,"align-items":`center`}},Wb={key:0,class:`note`},Gb={key:0,class:`result`},Kb={class:`result-head`},qb={key:0,class:`ok`},Jb={key:1,class:`fail`},Yb={key:2,class:`muted`},Xb={key:4,class:`note`},Zb=R({__name:`FunctionRow`,props:{fn:{},argsInput:{},results:{},pending:{},isStatic:{type:Boolean}},emits:[`invoke`,`updateArgs`],setup(e,{emit:t}){let n=e,r=t,i=F(!1),a=Y(()=>n.fn.invokable||!!n.fn.agent||n.fn.hasArgs||n.fn.hasReturns);function o(){i.value=!i.value}return(t,n)=>(H(),U(`div`,Mb,[G(`div`,{class:k([`fn-head`,{clickable:a.value}]),onClick:o},[G(`div`,{class:k([`chev i-ph-caret-right`,{open:i.value}])},null,2),K(jb,{name:e.fn.name},null,8,[`name`]),G(`span`,Nb,[G(`span`,{class:k([`badge`,e.fn.type])},A(e.fn.type),3),e.fn.agent?(H(),U(`span`,Pb,`agent`)):J(``,!0),e.fn.jsonSerializable?(H(),U(`span`,Fb,`json`)):J(``,!0),e.fn.snapshot?(H(),U(`span`,Ib,`snapshot`)):J(``,!0),e.fn.hasArgs?(H(),U(`span`,Lb,`args`)):J(``,!0),e.fn.hasReturns?(H(),U(`span`,Rb,`returns`)):J(``,!0),e.fn.hasDump?(H(),U(`span`,zb,`dump`)):J(``,!0)])],2),i.value?(H(),U(`div`,Bb,[e.fn.agent?(H(),U(`p`,Vb,A(e.fn.agent.description),1)):J(``,!0),e.fn.argsSchema?(H(),U(B,{key:1},[n[2]||=G(`div`,{class:`label`},` Args schema `,-1),K($,{value:e.fn.argsSchema,"expand-depth":0},null,8,[`value`])],64)):J(``,!0),e.fn.returnsSchema?(H(),U(B,{key:2},[n[3]||=G(`div`,{class:`label`},` Returns schema `,-1),K($,{value:e.fn.returnsSchema,"expand-depth":0},null,8,[`value`])],64)):J(``,!0),e.fn.invokable?(H(),U(B,{key:3},[n[4]||=G(`div`,{class:`label`},` Invoke with positional args as a JSON array `,-1),G(`textarea`,{value:e.argsInput[e.fn.name],class:`args`,spellcheck:`false`,placeholder:`[]`,onInput:n[0]||=t=>r(`updateArgs`,e.fn.name,t.target.value)},null,40,Hb),G(`div`,Ub,[K(my,{variant:`primary`,size:`sm`,icon:`i-ph-play-duotone`,loading:e.pending[e.fn.name],disabled:e.pending[e.fn.name]||e.isStatic,onClick:n[1]||=tu(t=>r(`invoke`,e.fn),[`stop`])},{default:L(()=>[q(A(e.pending[e.fn.name]?`Invoking…`:`Invoke`),1)]),_:1},8,[`loading`,`disabled`]),e.isStatic?(H(),U(`span`,Wb,`read-only static backend, invocation disabled`)):J(``,!0)]),e.results[e.fn.name]?(H(),U(`div`,Gb,[G(`div`,Kb,[e.results[e.fn.name].ok?(H(),U(`span`,qb,`✓ resolved`)):(H(),U(`span`,Jb,`✕ threw`)),`durationMs`in e.results[e.fn.name]?(H(),U(`span`,Yb,A(e.results[e.fn.name].durationMs)+`ms`,1)):J(``,!0)]),e.results[e.fn.name].ok?(H(),W($,{key:0,value:e.results[e.fn.name].result,"expand-depth":2},null,8,[`value`])):(H(),W($,{key:1,value:e.results[e.fn.name].error,"expand-depth":2},null,8,[`value`]))])):J(``,!0)],64)):(H(),U(`p`,Xb,A(e.fn.type)+` functions may carry side effects, so the inspector does not invoke them. `,1))])):J(``,!0)]))}}),Qb={class:`pane`},$b={key:0,class:`center`},ex={class:`section-title`},tx={key:0,class:`empty`},nx={key:1,class:`fn-list`},rx={class:`section-title`},ix={class:`note`},ax={key:2,class:`empty`},ox={key:3,class:`cards`},sx=[`onClick`],cx={class:`card-title`},lx={class:`badge flag`},ux={key:0,class:`badge flag`},dx={key:0,class:`id`},fx={key:1,class:`desc`},px=[`onUpdate:modelValue`],mx={style:{"margin-top":`8px`,display:`flex`,gap:`8px`,"align-items":`center`}},hx={key:2,class:`note`},gx={key:3,class:`note`},_x={key:4,class:`result`},vx={class:`result-head`},yx={key:0,class:`ok`},bx={key:1,class:`fail`},xx={key:2,class:`muted`},Sx=R({__name:`ClientView`,props:{functions:{},webmcp:{},results:{},pending:{}},emits:[`invoke`,`invokeTool`],setup(e,{emit:t}){let n=t,r=M({}),i=M({}),a=F(null);function o(e){return`webmcp:${e}`}function s(e){a.value=a.value===e?null:e,i[e]??=`{}`}function c(e){let t;try{let n=JSON.parse(r[e.name]||`[]`);t=Array.isArray(n)?n:[n]}catch(e){throw Error(`Invalid JSON args: ${e.message}`)}n(`invoke`,e,t)}function l(e){let t;try{t=JSON.parse(i[e]||`{}`)}catch(e){throw Error(`Invalid JSON args: ${e.message}`)}n(`invokeTool`,e,t)}return(t,n)=>(H(),U(`div`,Qb,[!e.functions||!e.webmcp?(H(),U(`div`,$b,` Loading client surface… `)):(H(),U(B,{key:1},[G(`div`,ex,` Client functions · `+A(e.functions.length),1),e.functions.length===0?(H(),U(`div`,tx,` No client RPC functions registered in this page. `)):(H(),U(`div`,nx,[(H(!0),U(B,null,fa(e.functions,t=>(H(),W(Zb,{key:t.name,fn:t,"args-input":r,results:e.results,pending:e.pending,"is-static":!1,onInvoke:c,onUpdateArgs:n[0]||=(e,t)=>r[e]=t},null,8,[`fn`,`args-input`,`results`,`pending`]))),128))])),G(`div`,rx,` WebMCP tools · `+A(e.webmcp.tools.length),1),G(`p`,ix,[e.webmcp.live?(H(),U(B,{key:0},[q(` Live from this page's WebMCP model context. `)],64)):e.webmcp.available?(H(),U(B,{key:1},[q(` This page's model context supports registration only; showing the tools projected from agent-flagged client functions. `)],64)):(H(),U(B,{key:2},[q(` This browser provides no WebMCP model context; showing the tools devframe would register on one. `)],64))]),e.webmcp.tools.length===0?(H(),U(`div`,ax,` No WebMCP tools on this page. `)):(H(),U(`div`,ox,[(H(!0),U(B,null,fa(e.webmcp.tools,t=>(H(),U(`div`,{key:t.name,class:`card`},[G(`div`,{class:`card-head`,style:{cursor:`pointer`,"user-select":`none`},onClick:e=>s(t.name)},[G(`div`,{class:k([`chev i-ph-caret-right`,{open:a.value===t.name}])},null,2),G(`span`,cx,A(t.name),1),G(`span`,lx,A(e.webmcp.live?`live`:`projected`),1),t.origin?(H(),U(`span`,ux,A(t.origin),1)):J(``,!0)],8,sx),t.source?(H(),U(`div`,dx,` client function: `+A(t.source),1)):J(``,!0),t.description?(H(),U(`p`,fx,A(t.description),1)):J(``,!0),a.value===t.name?(H(),U(B,{key:2},[t.inputSchema?(H(),U(B,{key:0},[n[1]||=G(`div`,{class:`label`},` Input schema `,-1),K($,{value:t.inputSchema,"expand-depth":1},null,8,[`value`])],64)):J(``,!0),e.webmcp.executable?(H(),U(B,{key:1},[n[2]||=G(`div`,{class:`label`},` Invoke (WebMCP args object) `,-1),mr(G(`textarea`,{"onUpdate:modelValue":e=>i[t.name]=e,class:`args`,spellcheck:`false`,placeholder:`{}`},null,8,px),[[Bl,i[t.name]]]),G(`div`,mx,[K(my,{variant:`primary`,size:`sm`,icon:`i-ph-play-duotone`,loading:e.pending[o(t.name)],disabled:e.pending[o(t.name)],onClick:e=>l(t.name)},{default:L(()=>[q(A(e.pending[o(t.name)]?`Invoking…`:`Invoke`),1)]),_:2},1032,[`loading`,`disabled`,`onClick`])])],64)):t.source?(H(),U(`p`,hx,` Invoke the backing client function from the list above. `)):(H(),U(`p`,gx,` This model context does not expose tool execution to the page. `)),e.results[o(t.name)]?(H(),U(`div`,_x,[G(`div`,vx,[e.results[o(t.name)].ok?(H(),U(`span`,yx,`✓ resolved`)):(H(),U(`span`,bx,`✕ threw`)),`durationMs`in e.results[o(t.name)]?(H(),U(`span`,xx,A(e.results[o(t.name)].durationMs)+`ms`,1)):J(``,!0)]),e.results[o(t.name)].ok?(H(),W($,{key:0,value:e.results[o(t.name)].result,"expand-depth":2},null,8,[`value`])):(H(),W($,{key:1,value:e.results[o(t.name)].error,"expand-depth":2},null,8,[`value`]))])):J(``,!0)],64)):J(``,!0)]))),128))]))],64))]))}}),Cx=R({__name:`ClientSmart`,setup(e){let t=dy(),n=cn(null),r=cn(null),i=M({}),a=M({});async function o(){t.value&&(n.value=bb(t.value.client),r.value=await Sb(t.value.client))}Pm(o);let s;Yi(()=>{o(),s=t.value?.client.onChanged(()=>void o())}),$i(()=>s?.());async function c(e,n){if(t.value){a[e.name]=!0;try{i[e.name]=await xb(t.value.client,e.name,n)}finally{a[e.name]=!1}}}async function l(e,t){let n=Uv(),o=r.value?.tools.find(t=>t.name===e);if(!n||!o)return;let s=`webmcp:${e}`;a[s]=!0;try{i[s]=await Cb(n,o,t)}finally{a[s]=!1}}return(e,t)=>(H(),W(Sx,{functions:n.value,webmcp:r.value,results:i,pending:a,onInvoke:c,onInvokeTool:l},null,8,[`functions`,`webmcp`,`results`,`pending`]))}}),wx={class:`cmd-title`},Tx={class:`cmd-id mono`},Ex={class:`fn-flags`},Dx={key:0,class:`badge flag`},Ox={key:1,class:`badge flag`,title:`No handler, a group for its children`},kx={key:2,class:`badge flag`},Ax={key:0,class:`fn-detail`},jx={key:0,class:`desc`},Mx=[`value`],Nx={style:{"margin-top":`8px`,display:`flex`,gap:`8px`,"align-items":`center`}},Px={key:0,class:`note`},Fx={key:0,class:`result`},Ix={class:`result-head`},Lx={key:0,class:`ok`},Rx={key:1,class:`fail`},zx={key:2,class:`muted`},Bx={key:2,class:`note`},Vx={class:`cmd-children`},Hx=R({name:`CommandRow`,__name:`CommandRow`,props:{cmd:{},argsInput:{},results:{},pending:{},isStatic:{type:Boolean},depth:{}},emits:[`execute`,`updateArgs`],setup(e,{emit:t}){let n=e,r=t,i=F(!1),a=Y(()=>n.cmd.hasHandler||!!n.cmd.description||!!n.cmd.children?.length);function o(){i.value=!i.value}return(t,n)=>{let s=oa(`CommandRow`,!0);return H(),U(`div`,{class:k([`fn-row`,{"cmd-row-child":e.depth}])},[G(`div`,{class:k([`fn-head`,{clickable:a.value}]),onClick:o},[G(`div`,{class:k([`chev i-ph-caret-right`,{open:i.value}])},null,2),e.cmd.icon?(H(),U(`span`,{key:0,class:k([typeof e.cmd.icon==`string`?e.cmd.icon:`i-ph-terminal-window-duotone`,`cmd-icon`])},null,2)):J(``,!0),G(`span`,wx,A(e.cmd.title),1),G(`span`,Tx,A(e.cmd.id),1),G(`span`,Ex,[e.cmd.category?(H(),U(`span`,Dx,A(e.cmd.category),1)):J(``,!0),e.cmd.hasHandler?J(``,!0):(H(),U(`span`,Ox,`group`)),e.cmd.children?.length?(H(),U(`span`,kx,A(e.cmd.children.length)+` children`,1)):J(``,!0)])],2),i.value?(H(),U(`div`,Ax,[e.cmd.description?(H(),U(`p`,jx,A(e.cmd.description),1)):J(``,!0),e.cmd.hasHandler?(H(),U(B,{key:1},[n[4]||=G(`div`,{class:`label`},` Execute with positional args as a JSON array `,-1),G(`textarea`,{value:e.argsInput[e.cmd.id],class:`args`,spellcheck:`false`,placeholder:`[]`,onInput:n[0]||=t=>r(`updateArgs`,e.cmd.id,t.target.value)},null,40,Mx),G(`div`,Nx,[K(my,{variant:`primary`,size:`sm`,icon:`i-ph-play-duotone`,loading:e.pending[e.cmd.id],disabled:e.pending[e.cmd.id]||e.isStatic,onClick:n[1]||=tu(t=>r(`execute`,e.cmd),[`stop`])},{default:L(()=>[q(A(e.pending[e.cmd.id]?`Running…`:`Run`),1)]),_:1},8,[`loading`,`disabled`]),e.isStatic?(H(),U(`span`,Px,`read-only static backend, execution disabled`)):J(``,!0)]),e.results[e.cmd.id]?(H(),U(`div`,Fx,[G(`div`,Ix,[e.results[e.cmd.id].ok?(H(),U(`span`,Lx,`✓ resolved`)):(H(),U(`span`,Rx,`✕ threw`)),`durationMs`in e.results[e.cmd.id]?(H(),U(`span`,zx,A(e.results[e.cmd.id].durationMs)+`ms`,1)):J(``,!0)]),e.results[e.cmd.id].ok?(H(),W($,{key:0,value:e.results[e.cmd.id].result,"expand-depth":2},null,8,[`value`])):(H(),W($,{key:1,value:e.results[e.cmd.id].error,"expand-depth":2},null,8,[`value`]))])):J(``,!0)],64)):e.cmd.children?.length?J(``,!0):(H(),U(`p`,Bx,` Group-only command, no handler to run. `)),e.cmd.children?.length?(H(),U(B,{key:3},[n[5]||=G(`div`,{class:`label`},` Children `,-1),G(`div`,Vx,[(H(!0),U(B,null,fa(e.cmd.children,t=>(H(),W(s,{key:t.id,cmd:t,"args-input":e.argsInput,results:e.results,pending:e.pending,"is-static":e.isStatic,depth:(e.depth??0)+1,onExecute:n[2]||=e=>r(`execute`,e),onUpdateArgs:n[3]||=(e,t)=>r(`updateArgs`,e,t)},null,8,[`cmd`,`args-input`,`results`,`pending`,`is-static`,`depth`]))),128))])],64)):J(``,!0)])):J(``,!0)],2)}}}),Ux={class:`pane`},Wx={class:`toolbar`},Gx={class:`search`},Kx={class:`muted`},qx={class:`badge flag`},Jx={key:0,class:`center`},Yx={key:1,class:`empty`},Xx={key:2,class:`empty`},Zx={key:3,class:`fn-list`},Qx=R({__name:`CommandsView`,props:{commands:{},isStatic:{type:Boolean},results:{},pending:{}},emits:[`execute`],setup(e,{emit:t}){let n=e,r=t,i=F(``),a=M({});function o(e,t){return e.id.toLowerCase().includes(t)||e.title.toLowerCase().includes(t)||e.category?.toLowerCase().includes(t)?!0:e.children?.some(e=>o(e,t))??!1}let s=Y(()=>{let e=n.commands??[],t=i.value.trim().toLowerCase();return[...t?e.filter(e=>o(e,t)):e].sort((e,t)=>e.title.localeCompare(t.title))}),c=Y(()=>{let e={};for(let t of n.commands??[]){let n=t.category??`uncategorized`;e[n]=(e[n]||0)+1}return e});function l(e){let t;try{let n=JSON.parse(a[e.id]||`[]`);t=Array.isArray(n)?n:[n]}catch(e){throw Error(`Invalid JSON args: ${e.message}`)}r(`execute`,e,t)}return(t,n)=>(H(),U(`div`,Ux,[G(`div`,Wx,[G(`label`,Gx,[n[2]||=G(`div`,{class:`i-ph-magnifying-glass-duotone`},null,-1),mr(G(`input`,{"onUpdate:modelValue":n[0]||=e=>i.value=e,placeholder:`Filter commands by id, title, category…`,spellcheck:`false`},null,512),[[Bl,i.value]])]),G(`span`,Kx,A((e.commands??[]).length)+` commands`,1),(H(!0),U(B,null,fa(c.value,(e,t)=>(H(),U(`span`,{key:t,class:`muted`},[G(`span`,qx,A(t),1),q(` `+A(e),1)]))),128))]),e.commands?e.commands.length===0?(H(),U(`div`,Yx," No commands registered. Commands are a `@devframes/hub` feature; this connection isn't mounted inside a hub. ")):s.value.length===0?(H(),U(`div`,Xx,` No commands match "`+A(i.value)+`". `,1)):(H(),U(`div`,Zx,[(H(!0),U(B,null,fa(s.value,t=>(H(),W(Hx,{key:t.id,cmd:t,"args-input":a,results:e.results,pending:e.pending,"is-static":e.isStatic,onExecute:l,onUpdateArgs:n[1]||=(e,t)=>a[e]=t},null,8,[`cmd`,`args-input`,`results`,`pending`,`is-static`]))),128))])):(H(),U(`div`,Jx,` Loading commands… `))]))}}),$x=R({__name:`CommandsSmart`,setup(e){let t=dy(),n=cn(null),r=M({}),i=M({});async function a(){t.value&&(n.value=await t.value.call(`devframes:plugin:inspect:list-commands`))}Pm(a),Yi(a);async function o(e,n){if(t.value){i[e.id]=!0;try{r[e.id]=await t.value.call(`devframes:plugin:inspect:execute-command`,e.id,n)}catch(t){let n=t;r[e.id]={ok:!1,error:{name:n?.name??`Error`,message:n?.message??String(t)}}}finally{i[e.id]=!1}}}return(e,t)=>(H(),W(Qx,{commands:n.value,"is-static":I(fy)(),results:r,pending:i,onExecute:o},null,8,[`commands`,`is-static`,`results`,`pending`]))}}),eS={class:`pane`},tS={class:`toolbar`},nS={class:`search`},rS={class:`muted`},iS={key:0,class:`center`},aS={key:1,class:`empty`},oS={key:2,class:`fn-list`},sS=R({__name:`FunctionsView`,props:{functions:{},isStatic:{type:Boolean},results:{},pending:{}},emits:[`invoke`],setup(e,{emit:t}){let n=e,r=t,i=F(``),a=M({}),o=Y(()=>{let e=n.functions??[],t=i.value.trim().toLowerCase();return[...t?e.filter(e=>e.name.toLowerCase().includes(t)):e].sort((e,t)=>e.name.localeCompare(t.name))}),s=Y(()=>{let e={};for(let t of n.functions??[])e[t.type]=(e[t.type]||0)+1;return e});function c(e){let t;try{let n=JSON.parse(a[e.name]||`[]`);t=Array.isArray(n)?n:[n]}catch(e){throw Error(`Invalid JSON args: ${e.message}`)}r(`invoke`,e,t)}return(t,n)=>(H(),U(`div`,eS,[G(`div`,tS,[G(`label`,nS,[n[2]||=G(`div`,{class:`i-ph-magnifying-glass-duotone`},null,-1),mr(G(`input`,{"onUpdate:modelValue":n[0]||=e=>i.value=e,placeholder:`Filter functions by name…`,spellcheck:`false`},null,512),[[Bl,i.value]])]),G(`span`,rS,A((e.functions??[]).length)+` functions`,1),(H(!0),U(B,null,fa(s.value,(e,t)=>(H(),U(`span`,{key:t,class:`muted`},[G(`span`,{class:k([`badge`,t])},A(t),3),q(` `+A(e),1)]))),128))]),e.functions?o.value.length===0?(H(),U(`div`,aS,` No functions match “`+A(i.value)+`”. `,1)):(H(),U(`div`,oS,[(H(!0),U(B,null,fa(o.value,t=>(H(),W(Zb,{key:t.name,fn:t,"args-input":a,results:e.results,pending:e.pending,"is-static":e.isStatic,onInvoke:c,onUpdateArgs:n[1]||=(e,t)=>a[e]=t},null,8,[`fn`,`args-input`,`results`,`pending`,`is-static`]))),128))])):(H(),U(`div`,iS,` Loading functions… `))]))}}),cS=R({__name:`FunctionsSmart`,setup(e){let t=dy(),n=cn(null),r=M({}),i=M({});async function a(){t.value&&(n.value=await t.value.call(`devframes:plugin:inspect:list-functions`))}Pm(a),Yi(a);async function o(e,n){if(t.value){i[e.name]=!0;try{r[e.name]=await t.value.call(`devframes:plugin:inspect:invoke`,e.name,n)}catch(t){let n=t;r[e.name]={ok:!1,error:{name:n?.name??`Error`,message:n?.message??String(t)}}}finally{i[e.name]=!1}}}return(e,t)=>(H(),W(sS,{functions:n.value,"is-static":I(fy)(),results:r,pending:i,onInvoke:o},null,8,[`functions`,`is-static`,`results`,`pending`]))}}),lS={class:`pane flex-col`},uS={class:`toolbar`},dS={class:`muted`},fS={key:0,class:`center`},pS={key:1,style:{padding:`14px`,display:`flex`,"flex-direction":`column`,gap:`14px`}},mS={style:{display:`flex`,gap:`8px`,"align-items":`center`,"margin-bottom":`8px`,"flex-wrap":`wrap`}},hS={class:`muted`,style:{"font-family":`var(--df-mono)`,"font-size":`11px`}},gS={style:{"font-family":`var(--df-mono)`,"font-weight":`600`,"font-size":`12.5px`}},_S={class:`muted`},vS={style:{"font-family":`var(--df-mono)`,"font-weight":`600`,"font-size":`12.5px`,color:`var(--df-accent)`}},yS={class:`muted`},bS={style:{"padding-left":`8px`,"border-left":`2px solid var(--df-border-soft)`}},xS=((e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n})(R({__name:`HistoryView`,props:{historyRecords:{},isRecording:{type:Boolean}},emits:[`update:isRecording`,`clear`],setup(e,{emit:t}){let n=t;function r(e){let t=new Date(e);return`${t.getHours().toString().padStart(2,`0`)}:${t.getMinutes().toString().padStart(2,`0`)}:${t.getSeconds().toString().padStart(2,`0`)}.${t.getMilliseconds().toString().padStart(3,`0`)}`}return(t,i)=>(H(),U(`div`,lS,[G(`div`,uS,[K(my,{variant:e.isRecording?`action`:`text`,size:`sm`,icon:e.isRecording?`i-ph-record-fill text-error`:`i-ph-play-duotone`,title:e.isRecording?`Click to pause recording`:`Click to record`,onClick:i[0]||=t=>n(`update:isRecording`,!e.isRecording)},{default:L(()=>[q(A(e.isRecording?`Recording`:`Paused`),1)]),_:1},8,[`variant`,`icon`,`title`]),K(my,{variant:`text`,size:`sm`,icon:`i-ph-trash-duotone`,onClick:i[1]||=e=>n(`clear`)},{default:L(()=>[...i[2]||=[q(` Clear `,-1)]]),_:1}),G(`span`,dS,A(e.historyRecords.length)+` records`,1)]),e.historyRecords.length===0?(H(),U(`div`,fS,` No history yet. `)):(H(),U(`div`,pS,[(H(!0),U(B,null,fa(e.historyRecords,e=>(H(),U(`div`,{key:e.id,style:{border:`1px solid var(--df-border)`,"border-radius":`var(--df-radius)`,background:`var(--df-bg-soft)`,padding:`12px`}},[G(`div`,mS,[G(`span`,hS,A(r(e.time)),1),e.type===`call`?(H(),U(B,{key:0},[i[3]||=G(`span`,{class:`badge action`},`RPC Call`,-1),G(`span`,gS,A(e.method),1),G(`span`,_S,A(e.duration)+`ms`,1)],64)):(H(),U(B,{key:1},[i[4]||=G(`span`,{class:`badge static`},`State Update`,-1),G(`span`,vS,A(e.key),1),G(`span`,yS,`Sync ID: `+A(e.syncId),1)],64))]),G(`div`,bS,[e.type===`call`?(H(),U(B,{key:0},[i[7]||=G(`div`,{class:`label`,style:{"margin-top":`0`}},` Arguments `,-1),K($,{value:e.args,"expand-depth":1},null,8,[`value`]),`result`in e?(H(),U(B,{key:0},[i[5]||=G(`div`,{class:`label`},` Result `,-1),K($,{value:e.result,"expand-depth":1},null,8,[`value`])],64)):`error`in e?(H(),U(B,{key:1},[i[6]||=G(`div`,{class:`label`,style:{color:`var(--df-danger)`}},` Error `,-1),K($,{value:e.error,"expand-depth":1},null,8,[`value`])],64)):J(``,!0)],64)):(H(),U(B,{key:1},[`value`in e?(H(),U(B,{key:0},[i[8]||=G(`div`,{class:`label`,style:{"margin-top":`0`}},` New State `,-1),K($,{value:e.value,"expand-depth":1},null,8,[`value`])],64)):`patches`in e?(H(),U(B,{key:1},[i[9]||=G(`div`,{class:`label`,style:{"margin-top":`0`}},` Patches `,-1),K($,{value:e.patches,"expand-depth":1},null,8,[`value`])],64)):J(``,!0)],64))])]))),128))]))]))}}),[[`__scopeId`,`data-v-fa4416fc`]]),SS=R({__name:`HistorySmart`,setup(e){function t(e){ny.value=e}return(e,n)=>(H(),W(xS,{"history-records":I(ty),"is-recording":I(ny),"onUpdate:isRecording":t,onClear:I(ay)},null,8,[`history-records`,`is-recording`,`onClear`]))}}),CS={class:`pane`},wS={class:`toolbar`},TS={class:`muted`},ES={key:0,class:`center`},DS={key:1,class:`inst-empty`},OS={key:2,class:`cards`},kS={class:`card-head`},AS={class:`card-title`},jS={key:0,class:`badge agent`},MS={key:1,class:`badge`},NS={class:`id`},PS=[`href`],FS={class:`inst-url-text`},IS={class:`inst-meta`},LS={class:`inst-meta-wide`},RS=[`title`],zS=R({__name:`InstancesView`,props:{instances:{}},setup(e){let t=e,n=Y(()=>[...t.instances??[]].sort((e,t)=>e.isCurrent===t.isCurrent?t.startedAt-e.startedAt:e.isCurrent?-1:1));function r(e){let t=Math.max(0,Math.round((Date.now()-e)/1e3));if(t<60)return`${t}s`;let n=Math.floor(t/60);if(n<60)return`${n}m ${t%60}s`;let r=Math.floor(n/60);return r<24?`${r}h ${n%60}m`:`${Math.floor(r/24)}d ${r%24}h`}return(t,i)=>(H(),U(`div`,CS,[G(`div`,wS,[G(`span`,TS,A((e.instances??[]).length)+` running `+A((e.instances??[]).length===1?`instance`:`instances`),1),i[0]||=G(`span`,{class:`muted`},[q(`Devframe dev servers running on this machine, discovered via the shared registry (`),G(`code`,null,`~/.devframe/instances/`),q(`).`)],-1)]),e.instances?e.instances.length===0?(H(),U(`div`,DS,[...i[1]||=[G(`span`,{class:`i-ph-broadcast-duotone inst-empty-icon`},null,-1),G(`p`,{class:`inst-empty-title`},` No devframe instances discovered `,-1),G(`p`,null,[q(` This tab lists every devframe dev server running on your machine, so you can jump between them. Each server registers itself in `),G(`code`,null,`~/.devframe/instances/`),q(` while it runs. `)],-1),G(`p`,null,[q(` Nothing shows up when only static/build servers are running, when discovery is turned off (`),G(`code`,null,`DEVFRAME_DISABLE_INSTANCE_REGISTRY=1`),q(`), or when an in-process host hasn't opted in. Start another `),G(`code`,null,`devframe`),q(` dev server (or a hub host that calls `),G(`code`,null,`registerDevframeInstance()`),q(`), then hit refresh. `)],-1)]])):(H(),U(`div`,OS,[(H(!0),U(B,null,fa(n.value,e=>(H(),U(`div`,{key:`${e.pid}-${e.port}`,class:`card`},[G(`div`,kS,[i[2]||=G(`span`,{class:`i-ph-broadcast-duotone cmd-icon`},null,-1),G(`span`,AS,A(e.name??e.id),1),e.isCurrent?(H(),U(`span`,jS,`this instance`)):J(``,!0),e.hasMcp?(H(),U(`span`,MS,`MCP`)):J(``,!0)]),G(`div`,NS,A(e.id),1),G(`a`,{class:`inst-url`,href:e.url,target:`_blank`,rel:`noopener noreferrer`},[i[3]||=G(`span`,{class:`i-ph-arrow-square-out-duotone`},null,-1),G(`span`,FS,A(e.url),1)],8,PS),G(`dl`,IS,[G(`div`,null,[i[4]||=G(`dt`,null,`Port`,-1),G(`dd`,null,A(e.port),1)]),G(`div`,null,[i[5]||=G(`dt`,null,`PID`,-1),G(`dd`,null,A(e.pid),1)]),G(`div`,null,[i[6]||=G(`dt`,null,`Uptime`,-1),G(`dd`,null,A(r(e.startedAt)),1)]),G(`div`,LS,[i[7]||=G(`dt`,null,`Root`,-1),G(`dd`,{title:e.rootDir},A(e.rootDir),9,RS)])])]))),128))])):(H(),U(`div`,ES,` Discovering instances… `))]))}}),BS=R({__name:`InstancesSmart`,setup(e){let t=dy(),n=cn(null);async function r(){t.value&&(n.value=await t.value.call(`devframes:plugin:inspect:list-instances`))}return Pm(r),Yi(r),(e,t)=>(H(),W(zS,{instances:n.value},null,8,[`instances`]))}}),VS={class:`split`},HS={class:`keys`},US={class:`keys-head`},WS={class:`checkbox`},GS={class:`keys-list`},KS={key:0,class:`empty`},qS={key:1,class:`empty`},JS=[`title`,`onClick`],YS={class:`state-main`},XS={key:0,class:`center`},ZS={key:1,class:`center`},QS={class:`state-meta`},$S={class:`state-key`},eC={key:0,class:`pulse`},tC={key:1,class:`note`},nC=R({__name:`StateView`,props:{keys:{},selectedKey:{},value:{},loading:{type:Boolean},isStatic:{type:Boolean},updates:{},highlightPaths:{}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,i=F(!1),a=Y(()=>{let e=n.keys??[];return i.value?e:e.filter(e=>!e.startsWith(`devframe:`)&&!e.startsWith(`__`))});return(t,n)=>(H(),U(`div`,VS,[G(`aside`,HS,[G(`div`,US,[G(`span`,null,A(a.value.length)+` keys`,1),G(`label`,WS,[mr(G(`input`,{"onUpdate:modelValue":n[0]||=e=>i.value=e,type:`checkbox`},null,512),[[Vl,i.value]]),n[1]||=q(` internal `,-1)])]),G(`div`,GS,[e.keys?a.value.length===0?(H(),U(`div`,qS,` No shared state`+A(e.keys.length?` (toggle internal)`:``)+`. `,1)):J(``,!0):(H(),U(`div`,KS,` Loading… `)),(H(!0),U(B,null,fa(a.value,t=>(H(),U(`button`,{key:t,class:k([`key-item`,{active:e.selectedKey===t}]),title:t,onClick:e=>r(`select`,t)},A(t),11,JS))),128))])]),G(`section`,YS,[e.selectedKey?e.loading?(H(),U(`div`,ZS,` Loading state… `)):(H(),U(B,{key:2},[G(`div`,QS,[G(`span`,$S,A(e.selectedKey),1),e.isStatic?(H(),U(`span`,tC,`static snapshot`)):(H(),U(`span`,eC,`live`+A(e.updates?` · ${e.updates} update${e.updates>1?`s`:``}`:``),1))]),K($,{value:e.value,"expand-depth":3,"highlight-paths":e.highlightPaths},null,8,[`value`,`highlight-paths`])],64)):(H(),U(`div`,XS,` Select a shared-state key to inspect its live value. `))])]))}}),rC=R({__name:`StateSmart`,setup(e){let t=dy(),n=cn(null),r=F(null),i=cn(void 0),a=F(!1),o=cn(new Set),s=F(0),c=null,l=null;async function u(){t.value&&(n.value=await t.value.call(`devframes:plugin:inspect:list-state-keys`))}Pm(u),Yi(u);function d(e,t,n=``,r=new Set){if(e===t)return r;if(!(typeof e==`object`&&e)||!(typeof t==`object`&&t))return r.add(n),r;let i=new Set([...Object.keys(e),...Object.keys(t)]);for(let a of i){let i=n?`${n}.${a}`:a,o=a in e,s=a in t;!o||!s?r.add(i):d(e[a],t[a],i,r)}return r}function f(e){o.value=e,l&&clearTimeout(l),l=setTimeout(()=>{o.value=new Set},1600)}function p(){c?.(),c=null}return wr(r,async e=>{if(p(),i.value=void 0,s.value=0,o.value=new Set,e&&t.value){a.value=!0;try{let n=await t.value.sharedState.get(e);i.value=n.value(),c=n.on(`updated`,e=>{let t=d(i.value,e);i.value=e,s.value++,f(t)})}finally{a.value=!1}}}),Ie(()=>{p(),l&&clearTimeout(l)}),(e,t)=>(H(),W(nC,{keys:n.value,"selected-key":r.value,value:i.value,loading:a.value,"is-static":I(fy)(),updates:s.value,"highlight-paths":o.value,onSelect:t[0]||=e=>r.value=e},null,8,[`keys`,`selected-key`,`value`,`loading`,`is-static`,`updates`,`highlight-paths`]))}}),iC={class:`app`},aC={class:`app-body`},oC={class:`flex flex-col gap-1`},sC=R({__name:`App`,setup(e){let t=F(`functions`),{refresh:n,loading:r}=Fm(),i=Y(()=>wm(oy.status)),a=Y(()=>Em(oy.status)),o=[{value:`functions`,label:`Functions`,icon:`i-ph-function-duotone`},{value:`client`,label:`Client`,icon:`i-ph-browser-duotone`},{value:`state`,label:`State`,icon:`i-ph-database-duotone`},{value:`agent`,label:`Agent`,icon:`i-ph-robot-duotone`},{value:`commands`,label:`Commands`,icon:`i-ph-terminal-window-duotone`},{value:`history`,label:`History`,icon:`i-ph-clock-counter-clockwise-duotone`},{value:`instances`,label:`Instances`,icon:`i-ph-broadcast-duotone`}],s=Y(()=>fy()?o.filter(e=>e.value!==`instances`):o);Yi(uy);function c(){location.reload()}return(e,o)=>(H(),U(`div`,iC,[K(bm,{glass:!1,class:`h-nav`},{search:L(()=>[...o[1]||=[G(`div`,null,null,-1)]]),end:L(()=>[i.value?(H(),U(`span`,{key:0,class:k(i.value.class)},[G(`span`,{class:k(i.value.dot)},null,2),q(` `+A(i.value.label),1)],2)):J(``,!0),K(sp,{class:`text-sm`,icon:I(r)?`i-ph-arrows-clockwise animate-spin`:`i-ph-arrows-clockwise`,tooltip:I(r)?`Refreshing…`:`Refresh`,label:`Refresh`,disabled:I(r)||!I(oy).connected,onClick:I(n)},null,8,[`icon`,`tooltip`,`disabled`,`onClick`])]),default:L(()=>[o[2]||=G(`div`,{class:`flex items-center gap-1.5 shrink-0 font-semibold text-sm select-none`},[G(`span`,{class:`i-ph-magnifying-glass-duotone text-base color-active`}),G(`span`,null,`Devframe Inspector`)],-1),K(_m,{modelValue:t.value,"onUpdate:modelValue":o[0]||=e=>t.value=e,tabs:s.value,variant:`segment`},null,8,[`modelValue`,`tabs`])]),_:1}),G(`main`,aC,[a.value?(H(),U(`div`,{key:0,class:k(I(Dm)(`h-full`))},[G(`span`,{class:k([a.value.icon,I(Om)(a.value.spin)])},null,2),G(`div`,oC,[G(`p`,{class:k(I(km)())},A(a.value.title),3),G(`p`,{class:k(I(Am)())},A(a.value.body),3),I(oy).error&&I(oy).status===`error`?(H(),U(`p`,{key:0,class:k(I(jm)())},A(I(oy).error),3)):J(``,!0)]),a.value.reloadable?(H(),U(`button`,{key:0,type:`button`,class:k(I(Sm)({variant:`primary`,size:`sm`})),onClick:c},[...o[3]||=[G(`span`,{class:`i-ph-arrow-clockwise`},null,-1),q(` Reload `,-1)]],2)):J(``,!0)],2)):(H(),U(B,{key:1},[t.value===`functions`?(H(),W(cS,{key:0})):t.value===`client`?(H(),W(Cx,{key:1})):t.value===`state`?(H(),W(rC,{key:2})):t.value===`agent`?(H(),W(pb,{key:3})):t.value===`commands`?(H(),W($x,{key:4})):t.value===`history`?(H(),W(SS,{key:5})):t.value===`instances`?(H(),W(BS,{key:6})):J(``,!0)],64))])]))}}),cC=window.matchMedia(`(prefers-color-scheme: dark)`);function lC(e){document.documentElement.classList.toggle(`dark`,e),document.documentElement.classList.toggle(`light`,!e)}lC(cC.matches),cC.addEventListener(`change`,e=>lC(e.matches)),du(sC).mount(`#app`);export{h_ as t};
package/dist/index.html CHANGED
@@ -5,8 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width,initial-scale=1" />
6
6
  <base href="./" />
7
7
  <title>Devframe Inspector</title>
8
- <script type="module" crossorigin src="./assets/index-DuIOtoQg.js"></script>
9
- <link rel="stylesheet" crossorigin href="./assets/index-r6MWVtoN.css">
8
+ <script type="module" crossorigin src="./assets/index-CIMU5StC.js"></script>
9
+ <link rel="stylesheet" crossorigin href="./assets/index-BcvvxvdN.css">
10
10
  </head>
11
11
  <body>
12
12
  <div id="app"></div>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@devframes/plugin-inspect--assets",
3
3
  "type": "module",
4
- "version": "0.10.1",
4
+ "version": "1.0.0",
5
5
  "description": "Prebuilt browser assets (SPA) for @devframes/plugin-inspect, served on demand through devframe's remote-assets back-proxy.",
6
6
  "author": "Anthony Fu <anthonyfu117@hotmail.com>",
7
7
  "license": "MIT",