diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ccb8b28f..6221094f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Added + +- **The dashboard follows the system appearance** (`actionagent`). Settings + → Appearance offers System, Light and Dark; System (the default when + nothing was chosen) follows the OS light/dark setting and changes with it + while the page is open. Light and Dark are fixed, as the old toggle's + choices were, and a choice that toggle saved still holds. The header's + sun/moon button flips to the opposite of what shows and saves it as a + fixed choice; pick System on the settings page to follow the OS again. + ### Changed - **One badge for every status and message role in the dashboard** diff --git a/actionagent/app/assets/builds/action_agent.css b/actionagent/app/assets/builds/action_agent.css index b00c8eabf..513f3e4a1 100644 --- a/actionagent/app/assets/builds/action_agent.css +++ b/actionagent/app/assets/builds/action_agent.css @@ -1,2 +1,2 @@ /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */ -@layer properties{@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{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-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-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-orange-500:oklch(70.5% .213 47.604);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-50:oklch(98.2% .018 155.826);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-700:oklch(45.7% .24 277.023);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-rose-50:oklch(96.9% .015 12.422);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-rose-700:oklch(51.4% .222 16.935);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-4xl:56rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,: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-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,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;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,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:currentColor}@supports (color:color-mix(in lab, red, red)){::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}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-x-4{inset-inline:calc(var(--spacing) * 4)}.-top-2{top:calc(var(--spacing) * -2)}.-top-3{top:calc(var(--spacing) * -3)}.-top-8{top:calc(var(--spacing) * -8)}.top-2\.5{top:calc(var(--spacing) * 2.5)}.top-4{top:calc(var(--spacing) * 4)}.top-14{top:calc(var(--spacing) * 14)}.-right-2{right:calc(var(--spacing) * -2)}.right-0{right:0}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.left-4{left:calc(var(--spacing) * 4)}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[60\]{z-index:60}.col-span-2{grid-column:span 2/span 2}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.mx-1{margin-inline:var(--spacing)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.my-0\.5{margin-block:calc(var(--spacing) * .5)}.my-1{margin-block:var(--spacing)}.my-2{margin-block:calc(var(--spacing) * 2)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mr-1{margin-right:var(--spacing)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-36{height:calc(var(--spacing) * 36)}.h-48{height:calc(var(--spacing) * 48)}.h-64{height:calc(var(--spacing) * 64)}.h-full{height:100%}.max-h-24{max-height:calc(var(--spacing) * 24)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-44{max-height:calc(var(--spacing) * 44)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0}.min-h-screen{min-height:100vh}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-1\/3{width:33.3333%}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-48{width:calc(var(--spacing) * 48)}.w-64{width:calc(var(--spacing) * 64)}.w-80{width:calc(var(--spacing) * 80)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-\[12rem\]{max-width:12rem}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.min-w-\[4\.5rem\]{min-width:4.5rem}.min-w-\[10rem\]{min-width:10rem}.min-w-\[16rem\]{min-width:16rem}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.origin-left{transform-origin:0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-1{--tw-translate-x:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-6{--tw-translate-x:calc(var(--spacing) * 6);translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-45{rotate:-45deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:var(--spacing)}.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)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(var(--spacing) * var(--tw-space-x-reverse));margin-inline-end:calc(var(--spacing) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-8>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 8) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-x-reverse)))}.gap-y-1{row-gap:var(--spacing)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-100>:not(:last-child)){border-color:var(--color-gray-100)}:where(.divide-gray-200>:not(:last-child)){border-color:var(--color-gray-200)}.self-end{align-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-clip{overflow-x:clip}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-800{border-color:var(--color-amber-800)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-800{border-color:var(--color-blue-800)}.border-emerald-500{border-color:var(--color-emerald-500)}.border-gray-50{border-color:var(--color-gray-50)}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-600{border-color:var(--color-gray-600)}.border-gray-700{border-color:var(--color-gray-700)}.border-green-200{border-color:var(--color-green-200)}.border-green-800{border-color:var(--color-green-800)}.border-red-200{border-color:var(--color-red-200)}.border-red-300{border-color:var(--color-red-300)}.border-red-500{border-color:var(--color-red-500)}.border-red-800{border-color:var(--color-red-800)}.border-rose-200{border-color:var(--color-rose-200)}.border-rose-300{border-color:var(--color-rose-300)}.border-rose-500{border-color:var(--color-rose-500)}.border-transparent{border-color:#0000}.border-yellow-200{border-color:var(--color-yellow-200)}.border-yellow-800{border-color:var(--color-yellow-800)}.border-l-amber-500{border-left-color:var(--color-amber-500)}.border-l-blue-500{border-left-color:var(--color-blue-500)}.border-l-green-500{border-left-color:var(--color-green-500)}.border-l-purple-500{border-left-color:var(--color-purple-500)}.border-l-red-500{border-left-color:var(--color-red-500)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-900\/20{background-color:#7b330633}@supports (color:color-mix(in lab, red, red)){.bg-amber-900\/20{background-color:color-mix(in oklab, var(--color-amber-900) 20%, transparent)}}.bg-amber-900\/30{background-color:#7b33064d}@supports (color:color-mix(in lab, red, red)){.bg-amber-900\/30{background-color:color-mix(in oklab, var(--color-amber-900) 30%, transparent)}}.bg-black{background-color:var(--color-black)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-blue-900\/20{background-color:#1c398e33}@supports (color:color-mix(in lab, red, red)){.bg-blue-900\/20{background-color:color-mix(in oklab, var(--color-blue-900) 20%, transparent)}}.bg-current{background-color:currentColor}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-600{background-color:var(--color-gray-600)}.bg-gray-700{background-color:var(--color-gray-700)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-900\/20{background-color:#0d542b33}@supports (color:color-mix(in lab, red, red)){.bg-green-900\/20{background-color:color-mix(in oklab, var(--color-green-900) 20%, transparent)}}.bg-green-900\/30{background-color:#0d542b4d}@supports (color:color-mix(in lab, red, red)){.bg-green-900\/30{background-color:color-mix(in oklab, var(--color-green-900) 30%, transparent)}}.bg-indigo-50{background-color:var(--color-indigo-50)}.bg-orange-500{background-color:var(--color-orange-500)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-600{background-color:var(--color-red-600)}.bg-red-900\/20{background-color:#82181a33}@supports (color:color-mix(in lab, red, red)){.bg-red-900\/20{background-color:color-mix(in oklab, var(--color-red-900) 20%, transparent)}}.bg-red-900\/30{background-color:#82181a4d}@supports (color:color-mix(in lab, red, red)){.bg-red-900\/30{background-color:color-mix(in oklab, var(--color-red-900) 30%, transparent)}}.bg-red-900\/40{background-color:#82181a66}@supports (color:color-mix(in lab, red, red)){.bg-red-900\/40{background-color:color-mix(in oklab, var(--color-red-900) 40%, transparent)}}.bg-rose-50{background-color:var(--color-rose-50)}.bg-rose-500{background-color:var(--color-rose-500)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-yellow-900\/20{background-color:#733e0a33}@supports (color:color-mix(in lab, red, red)){.bg-yellow-900\/20{background-color:color-mix(in oklab, var(--color-yellow-900) 20%, transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-gray-50{--tw-gradient-from:var(--color-gray-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-rose-50{--tw-gradient-from:var(--color-rose-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-rose-500{--tw-gradient-from:var(--color-rose-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-gray-100{--tw-gradient-to:var(--color-gray-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-purple-50{--tw-gradient-to:var(--color-purple-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-purple-600{--tw-gradient-to:var(--color-purple-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-10{padding-left:calc(var(--spacing) * 10)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.9em\]{font-size:.9em}.text-\[0\.85em\]{font-size:.85em}.text-\[0\.95em\]{font-size:.95em}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-300{color:var(--color-amber-300)}.text-amber-500{color:var(--color-amber-500)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-amber-900{color:var(--color-amber-900)}.text-blue-200{color:var(--color-blue-200)}.text-blue-300{color:var(--color-blue-300)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-gray-100{color:var(--color-gray-100)}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-300{color:var(--color-green-300)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-indigo-700{color:var(--color-indigo-700)}.text-purple-700{color:var(--color-purple-700)}.text-red-100{color:var(--color-red-100)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-rose-100{color:var(--color-rose-100)}.text-rose-500{color:var(--color-rose-500)}.text-rose-600{color:var(--color-rose-600)}.text-white{color:var(--color-white)}.text-yellow-300{color:var(--color-yellow-300)}.text-yellow-700{color:var(--color-yellow-700)}.text-yellow-800{color:var(--color-yellow-800)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.placeholder-gray-500::placeholder{color:var(--color-gray-500)}.accent-red-500{accent-color:var(--color-red-500)}.opacity-0{opacity:0}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-emerald-200{--tw-ring-color:var(--color-emerald-200)}.ring-red-100{--tw-ring-color:var(--color-red-100)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\:bg-gray-400:is(:where(.group):hover *){background-color:var(--color-gray-400)}.group-hover\:bg-gray-500:is(:where(.group):hover *){background-color:var(--color-gray-500)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-focus-visible\:bg-red-500:is(:where(.group):focus-visible *){background-color:var(--color-red-500)}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.focus-within\:opacity-100:focus-within{opacity:1}@media (hover:hover){.hover\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\:bg-\[var\(--color-hover\)\]:hover{background-color:var(--color-hover)}.hover\:bg-amber-600:hover{background-color:var(--color-amber-600)}.hover\:bg-black\/5:hover{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-black\/5:hover{background-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-gray-300:hover{background-color:var(--color-gray-300)}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-gray-800:hover{background-color:var(--color-gray-800)}.hover\:bg-purple-600:hover{background-color:var(--color-purple-600)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-red-900\/40:hover{background-color:#82181a66}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-900\/40:hover{background-color:color-mix(in oklab, var(--color-red-900) 40%, transparent)}}.hover\:bg-red-900\/60:hover{background-color:#82181a99}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-900\/60:hover{background-color:color-mix(in oklab, var(--color-red-900) 60%, transparent)}}.hover\:bg-rose-600:hover{background-color:var(--color-rose-600)}.hover\:bg-white\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/5:hover{background-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.hover\:text-amber-900:hover{color:var(--color-amber-900)}.hover\:text-gray-200:hover{color:var(--color-gray-200)}.hover\:text-gray-300:hover{color:var(--color-gray-300)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:text-red-700:hover{color:var(--color-red-700)}.hover\:text-rose-700:hover{color:var(--color-rose-700)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus\:border-transparent:focus{border-color:#0000}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-rose-500:focus{--tw-ring-color:var(--color-rose-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-gray-100:disabled{background-color:var(--color-gray-100)}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}@media (min-width:40rem){.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}}@media (min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:flex{display:flex}.lg\:h-full{height:100%}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:gap-0{gap:0}}@media (min-width:80rem){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}.aa-dashboard{--color-accent:#fa343b;--color-accent-hover:#e02d33;--color-accent-b:#fa343b29;--color-accent-b-hover:#fa343b33;--color-on-accent:#fff;--color-accent-ui:#ef4444;--color-accent-ui-hover:#dc2626;--color-accent-ui-muted:#ef444426;--color-accent-ui-tint:#fef2f2;--color-background:#f9fafb;--color-background-page:#fff;--color-surface:#fff;--color-card:#fff;--color-muted:#f3f4f6;--color-hover:#f3f4f6;--color-background-blur:#ffffffe6;--color-border:#e5e7eb;--color-border-light:#f3f4f6;--color-border-strong:#d1d5db;--color-text-primary:#111827;--color-text-secondary:#6b7280;--color-text-muted:#9ca3af;--color-text-cell:#4b5563;--color-success:#16a34a;--color-success-soft:#dcfce7;--color-success-text:#166534;--color-warning:#eab308;--color-warning-soft:#fef9c3;--color-warning-text:#854d0e;--color-error:#dc2626;--color-error-soft:#fee2e2;--color-error-text:#991b1b;--color-info:#3b82f6;--color-info-soft:#dbeafe;--color-info-text:#1e40af;--color-system:#8b5cf6;--color-system-soft:#ede9fe;--color-system-text:#6d28d9;--color-dev:#14b8a6;--color-dev-soft:#ccfbf1;--color-dev-text:#0f766e;--span-root:#9ca3af;--span-prompt:#60a5fa;--span-generate:#a855f7;--span-llm:#ef4444;--span-thinking:#fbbf24;--span-tool:#22c55e;--span-response:#2dd4bf;--color-token-in:#2563eb;--color-token-out:#7c3aed;--chart-1:#6366f1;--chart-2:#10b981;--chart-3:#f59e0b;--chart-4:#ec4899;--chart-5:#3b82f6;--font-text:"Inter Variable", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "SF Mono", "Fira Code", Menlo, Consolas, "Courier New", monospace}.aa-dashboard.theme-dark{color-scheme:dark;--color-accent-ui-tint:#ef444426;--color-background:#0f0f0f;--color-background-page:#0f0f0f;--color-surface:#1a1a1a;--color-card:#ffffff0d;--color-muted:#ffffff0d;--color-hover:#252525;--color-background-blur:#0f0f0fe6;--color-border:#ffffff1a;--color-border-light:#ffffff0d;--color-border-strong:#fff3;--color-text-primary:#fff;--color-text-secondary:#fff9;--color-text-muted:#fff6;--color-text-cell:#ffffffb3;--color-success-soft:#16a34a26;--color-success-text:#4ade80;--color-warning-soft:#eab30826;--color-warning-text:#facc15;--color-error-soft:#dc262626;--color-error-text:#f87171;--color-info-soft:#3b82f626;--color-info-text:#93c5fd;--color-system-soft:#8b5cf626;--color-system-text:#c4b5fd;--color-dev-soft:#14b8a626;--color-dev-text:#5eead4}.aa-dashboard .aa-chevron{transition:transform .15s;display:inline-block}.aa-dashboard .aa-chevron[data-open=true]{transform:rotate(90deg)}.aa-dashboard .aa-roster-row{background:0 0}.aa-dashboard .aa-roster-row[data-on=true]{background:var(--color-accent-ui-tint)}.aa-dashboard .aa-roster-row:hover{background:var(--color-hover)}.aa-fix-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000080}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}} \ No newline at end of file +@layer properties{@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{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-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-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-orange-500:oklch(70.5% .213 47.604);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-50:oklch(98.2% .018 155.826);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-700:oklch(45.7% .24 277.023);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-rose-50:oklch(96.9% .015 12.422);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-rose-700:oklch(51.4% .222 16.935);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-4xl:56rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,: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-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,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;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,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:currentColor}@supports (color:color-mix(in lab, red, red)){::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}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-x-4{inset-inline:calc(var(--spacing) * 4)}.-top-2{top:calc(var(--spacing) * -2)}.-top-3{top:calc(var(--spacing) * -3)}.-top-8{top:calc(var(--spacing) * -8)}.top-2\.5{top:calc(var(--spacing) * 2.5)}.top-4{top:calc(var(--spacing) * 4)}.top-14{top:calc(var(--spacing) * 14)}.-right-2{right:calc(var(--spacing) * -2)}.right-0{right:0}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.left-4{left:calc(var(--spacing) * 4)}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[60\]{z-index:60}.col-span-2{grid-column:span 2/span 2}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.mx-1{margin-inline:var(--spacing)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.my-0\.5{margin-block:calc(var(--spacing) * .5)}.my-1{margin-block:var(--spacing)}.my-2{margin-block:calc(var(--spacing) * 2)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mr-1{margin-right:var(--spacing)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-36{height:calc(var(--spacing) * 36)}.h-48{height:calc(var(--spacing) * 48)}.h-64{height:calc(var(--spacing) * 64)}.h-full{height:100%}.max-h-24{max-height:calc(var(--spacing) * 24)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-44{max-height:calc(var(--spacing) * 44)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0}.min-h-screen{min-height:100vh}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-1\/3{width:33.3333%}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-48{width:calc(var(--spacing) * 48)}.w-64{width:calc(var(--spacing) * 64)}.w-80{width:calc(var(--spacing) * 80)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-\[12rem\]{max-width:12rem}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.min-w-\[4\.5rem\]{min-width:4.5rem}.min-w-\[10rem\]{min-width:10rem}.min-w-\[16rem\]{min-width:16rem}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.origin-left{transform-origin:0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-1{--tw-translate-x:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-6{--tw-translate-x:calc(var(--spacing) * 6);translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-45{rotate:-45deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:var(--spacing)}.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)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(var(--spacing) * var(--tw-space-x-reverse));margin-inline-end:calc(var(--spacing) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-8>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 8) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-x-reverse)))}.gap-y-1{row-gap:var(--spacing)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-100>:not(:last-child)){border-color:var(--color-gray-100)}:where(.divide-gray-200>:not(:last-child)){border-color:var(--color-gray-200)}.self-end{align-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-clip{overflow-x:clip}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-800{border-color:var(--color-amber-800)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-800{border-color:var(--color-blue-800)}.border-emerald-500{border-color:var(--color-emerald-500)}.border-gray-50{border-color:var(--color-gray-50)}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-600{border-color:var(--color-gray-600)}.border-gray-700{border-color:var(--color-gray-700)}.border-green-200{border-color:var(--color-green-200)}.border-green-800{border-color:var(--color-green-800)}.border-red-200{border-color:var(--color-red-200)}.border-red-300{border-color:var(--color-red-300)}.border-red-500{border-color:var(--color-red-500)}.border-red-800{border-color:var(--color-red-800)}.border-rose-200{border-color:var(--color-rose-200)}.border-rose-300{border-color:var(--color-rose-300)}.border-rose-500{border-color:var(--color-rose-500)}.border-transparent{border-color:#0000}.border-yellow-200{border-color:var(--color-yellow-200)}.border-yellow-800{border-color:var(--color-yellow-800)}.border-l-amber-500{border-left-color:var(--color-amber-500)}.border-l-blue-500{border-left-color:var(--color-blue-500)}.border-l-green-500{border-left-color:var(--color-green-500)}.border-l-purple-500{border-left-color:var(--color-purple-500)}.border-l-red-500{border-left-color:var(--color-red-500)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-900\/20{background-color:#7b330633}@supports (color:color-mix(in lab, red, red)){.bg-amber-900\/20{background-color:color-mix(in oklab, var(--color-amber-900) 20%, transparent)}}.bg-amber-900\/30{background-color:#7b33064d}@supports (color:color-mix(in lab, red, red)){.bg-amber-900\/30{background-color:color-mix(in oklab, var(--color-amber-900) 30%, transparent)}}.bg-black{background-color:var(--color-black)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-blue-900\/20{background-color:#1c398e33}@supports (color:color-mix(in lab, red, red)){.bg-blue-900\/20{background-color:color-mix(in oklab, var(--color-blue-900) 20%, transparent)}}.bg-current{background-color:currentColor}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-600{background-color:var(--color-gray-600)}.bg-gray-700{background-color:var(--color-gray-700)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-900\/20{background-color:#0d542b33}@supports (color:color-mix(in lab, red, red)){.bg-green-900\/20{background-color:color-mix(in oklab, var(--color-green-900) 20%, transparent)}}.bg-green-900\/30{background-color:#0d542b4d}@supports (color:color-mix(in lab, red, red)){.bg-green-900\/30{background-color:color-mix(in oklab, var(--color-green-900) 30%, transparent)}}.bg-indigo-50{background-color:var(--color-indigo-50)}.bg-orange-500{background-color:var(--color-orange-500)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-600{background-color:var(--color-red-600)}.bg-red-900\/20{background-color:#82181a33}@supports (color:color-mix(in lab, red, red)){.bg-red-900\/20{background-color:color-mix(in oklab, var(--color-red-900) 20%, transparent)}}.bg-red-900\/30{background-color:#82181a4d}@supports (color:color-mix(in lab, red, red)){.bg-red-900\/30{background-color:color-mix(in oklab, var(--color-red-900) 30%, transparent)}}.bg-red-900\/40{background-color:#82181a66}@supports (color:color-mix(in lab, red, red)){.bg-red-900\/40{background-color:color-mix(in oklab, var(--color-red-900) 40%, transparent)}}.bg-rose-50{background-color:var(--color-rose-50)}.bg-rose-500{background-color:var(--color-rose-500)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-yellow-900\/20{background-color:#733e0a33}@supports (color:color-mix(in lab, red, red)){.bg-yellow-900\/20{background-color:color-mix(in oklab, var(--color-yellow-900) 20%, transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-gray-50{--tw-gradient-from:var(--color-gray-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-rose-50{--tw-gradient-from:var(--color-rose-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-rose-500{--tw-gradient-from:var(--color-rose-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-gray-100{--tw-gradient-to:var(--color-gray-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-purple-50{--tw-gradient-to:var(--color-purple-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-purple-600{--tw-gradient-to:var(--color-purple-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-10{padding-left:calc(var(--spacing) * 10)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.9em\]{font-size:.9em}.text-\[0\.85em\]{font-size:.85em}.text-\[0\.95em\]{font-size:.95em}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-300{color:var(--color-amber-300)}.text-amber-500{color:var(--color-amber-500)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-amber-900{color:var(--color-amber-900)}.text-blue-200{color:var(--color-blue-200)}.text-blue-300{color:var(--color-blue-300)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-gray-100{color:var(--color-gray-100)}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-300{color:var(--color-green-300)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-indigo-700{color:var(--color-indigo-700)}.text-purple-700{color:var(--color-purple-700)}.text-red-100{color:var(--color-red-100)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-rose-100{color:var(--color-rose-100)}.text-rose-500{color:var(--color-rose-500)}.text-rose-600{color:var(--color-rose-600)}.text-white{color:var(--color-white)}.text-yellow-300{color:var(--color-yellow-300)}.text-yellow-700{color:var(--color-yellow-700)}.text-yellow-800{color:var(--color-yellow-800)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.placeholder-gray-500::placeholder{color:var(--color-gray-500)}.accent-red-500{accent-color:var(--color-red-500)}.opacity-0{opacity:0}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-emerald-200{--tw-ring-color:var(--color-emerald-200)}.ring-red-100{--tw-ring-color:var(--color-red-100)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\:bg-gray-400:is(:where(.group):hover *){background-color:var(--color-gray-400)}.group-hover\:bg-gray-500:is(:where(.group):hover *){background-color:var(--color-gray-500)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-focus-visible\:bg-red-500:is(:where(.group):focus-visible *){background-color:var(--color-red-500)}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.focus-within\:opacity-100:focus-within{opacity:1}@media (hover:hover){.hover\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\:bg-\[var\(--color-hover\)\]:hover{background-color:var(--color-hover)}.hover\:bg-amber-600:hover{background-color:var(--color-amber-600)}.hover\:bg-black\/5:hover{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-black\/5:hover{background-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-gray-300:hover{background-color:var(--color-gray-300)}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-gray-800:hover{background-color:var(--color-gray-800)}.hover\:bg-purple-600:hover{background-color:var(--color-purple-600)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-red-900\/40:hover{background-color:#82181a66}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-900\/40:hover{background-color:color-mix(in oklab, var(--color-red-900) 40%, transparent)}}.hover\:bg-red-900\/60:hover{background-color:#82181a99}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-900\/60:hover{background-color:color-mix(in oklab, var(--color-red-900) 60%, transparent)}}.hover\:bg-rose-600:hover{background-color:var(--color-rose-600)}.hover\:bg-white\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/5:hover{background-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.hover\:text-amber-900:hover{color:var(--color-amber-900)}.hover\:text-gray-200:hover{color:var(--color-gray-200)}.hover\:text-gray-300:hover{color:var(--color-gray-300)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:text-red-700:hover{color:var(--color-red-700)}.hover\:text-rose-700:hover{color:var(--color-rose-700)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus\:border-transparent:focus{border-color:#0000}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-rose-500:focus{--tw-ring-color:var(--color-rose-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-gray-100:disabled{background-color:var(--color-gray-100)}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}@media (min-width:40rem){.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}}@media (min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:flex{display:flex}.lg\:h-full{height:100%}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:gap-0{gap:0}}@media (min-width:80rem){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}.aa-dashboard{--color-accent:#fa343b;--color-accent-hover:#e02d33;--color-accent-b:#fa343b29;--color-accent-b-hover:#fa343b33;--color-on-accent:#fff;--color-accent-ui:#ef4444;--color-accent-ui-hover:#dc2626;--color-accent-ui-muted:#ef444426;--color-accent-ui-tint:#fef2f2;--color-background:#f9fafb;--color-background-page:#fff;--color-surface:#fff;--color-card:#fff;--color-muted:#f3f4f6;--color-hover:#f3f4f6;--color-background-blur:#ffffffe6;--color-border:#e5e7eb;--color-border-light:#f3f4f6;--color-border-strong:#d1d5db;--color-text-primary:#111827;--color-text-secondary:#6b7280;--color-text-muted:#9ca3af;--color-text-cell:#4b5563;--color-success:#16a34a;--color-success-soft:#dcfce7;--color-success-text:#166534;--color-warning:#eab308;--color-warning-soft:#fef9c3;--color-warning-text:#854d0e;--color-error:#dc2626;--color-error-soft:#fee2e2;--color-error-text:#991b1b;--color-info:#3b82f6;--color-info-soft:#dbeafe;--color-info-text:#1e40af;--color-system:#8b5cf6;--color-system-soft:#ede9fe;--color-system-text:#6d28d9;--color-dev:#14b8a6;--color-dev-soft:#ccfbf1;--color-dev-text:#0f766e;--span-root:#9ca3af;--span-prompt:#60a5fa;--span-generate:#a855f7;--span-llm:#ef4444;--span-thinking:#fbbf24;--span-tool:#22c55e;--span-response:#2dd4bf;--color-token-in:#2563eb;--color-token-out:#7c3aed;--chart-1:#6366f1;--chart-2:#10b981;--chart-3:#f59e0b;--chart-4:#ec4899;--chart-5:#3b82f6;--font-text:"Inter Variable", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "SF Mono", "Fira Code", Menlo, Consolas, "Courier New", monospace}.aa-dashboard.theme-dark{color-scheme:dark;--color-accent-ui-tint:#ef444426;--color-background:#0f0f0f;--color-background-page:#0f0f0f;--color-surface:#1a1a1a;--color-card:#ffffff0d;--color-muted:#ffffff0d;--color-hover:#252525;--color-background-blur:#0f0f0fe6;--color-border:#ffffff1a;--color-border-light:#ffffff0d;--color-border-strong:#fff3;--color-text-primary:#fff;--color-text-secondary:#fff9;--color-text-muted:#fff6;--color-text-cell:#ffffffb3;--color-success-soft:#16a34a26;--color-success-text:#4ade80;--color-warning-soft:#eab30826;--color-warning-text:#facc15;--color-error-soft:#dc262626;--color-error-text:#f87171;--color-info-soft:#3b82f626;--color-info-text:#93c5fd;--color-system-soft:#8b5cf626;--color-system-text:#c4b5fd;--color-dev-soft:#14b8a626;--color-dev-text:#5eead4}.aa-dashboard .aa-chevron{transition:transform .15s;display:inline-block}.aa-dashboard .aa-chevron[data-open=true]{transform:rotate(90deg)}.aa-dashboard .aa-roster-row{background:0 0}.aa-dashboard .aa-roster-row[data-on=true]{background:var(--color-accent-ui-tint)}.aa-dashboard .aa-roster-row:hover{background:var(--color-hover)}.aa-fix-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000080}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}} \ No newline at end of file diff --git a/actionagent/app/assets/builds/action_agent.js b/actionagent/app/assets/builds/action_agent.js index 3894f4b55..66a56ea52 100644 --- a/actionagent/app/assets/builds/action_agent.js +++ b/actionagent/app/assets/builds/action_agent.js @@ -1,97 +1,97 @@ -var xte=Object.create;var NA=Object.defineProperty;var bte=Object.getOwnPropertyDescriptor;var wte=Object.getOwnPropertyNames;var Ste=Object.getPrototypeOf,kte=Object.prototype.hasOwnProperty;var $o=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),_te=(e,t)=>{for(var r in t)NA(e,r,{get:t[r],enumerable:!0})},Cte=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of wte(t))!kte.call(e,o)&&o!==r&&NA(e,o,{get:()=>t[o],enumerable:!(n=bte(t,o))||n.enumerable});return e};var Z=(e,t,r)=>(r=e!=null?xte(Ste(e)):{},Cte(t||!e||!e.__esModule?NA(r,"default",{value:e,enumerable:!0}):r,e));var Wj=$o(Vt=>{"use strict";var PA=Symbol.for("react.transitional.element"),Ate=Symbol.for("react.portal"),Ete=Symbol.for("react.fragment"),Nte=Symbol.for("react.strict_mode"),Tte=Symbol.for("react.profiler"),Ote=Symbol.for("react.consumer"),Pte=Symbol.for("react.context"),Mte=Symbol.for("react.forward_ref"),Ite=Symbol.for("react.suspense"),Dte=Symbol.for("react.memo"),$j=Symbol.for("react.lazy"),jte=Symbol.for("react.activity"),Mj=Symbol.iterator;function $te(e){return e===null||typeof e!="object"?null:(e=Mj&&e[Mj]||e["@@iterator"],typeof e=="function"?e:null)}var Lj={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},zj=Object.assign,Bj={};function If(e,t,r){this.props=e,this.context=t,this.refs=Bj,this.updater=r||Lj}If.prototype.isReactComponent={};If.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};If.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Fj(){}Fj.prototype=If.prototype;function MA(e,t,r){this.props=e,this.context=t,this.refs=Bj,this.updater=r||Lj}var IA=MA.prototype=new Fj;IA.constructor=MA;zj(IA,If.prototype);IA.isPureReactComponent=!0;var Ij=Array.isArray;function OA(){}var pn={H:null,A:null,T:null,S:null},Uj=Object.prototype.hasOwnProperty;function DA(e,t,r){var n=r.ref;return{$$typeof:PA,type:e,key:t,ref:n!==void 0?n:null,props:r}}function Lte(e,t){return DA(e.type,t,e.props)}function jA(e){return typeof e=="object"&&e!==null&&e.$$typeof===PA}function zte(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(r){return t[r]})}var Dj=/\/+/g;function TA(e,t){return typeof e=="object"&&e!==null&&e.key!=null?zte(""+e.key):t.toString(36)}function Bte(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(OA,OA):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function Mf(e,t,r,n,o){var a=typeof e;(a==="undefined"||a==="boolean")&&(e=null);var i=!1;if(e===null)i=!0;else switch(a){case"bigint":case"string":case"number":i=!0;break;case"object":switch(e.$$typeof){case PA:case Ate:i=!0;break;case $j:return i=e._init,Mf(i(e._payload),t,r,n,o)}}if(i)return o=o(e),i=n===""?"."+TA(e,0):n,Ij(o)?(r="",i!=null&&(r=i.replace(Dj,"$&/")+"/"),Mf(o,t,r,"",function(u){return u})):o!=null&&(jA(o)&&(o=Lte(o,r+(o.key==null||e&&e.key===o.key?"":(""+o.key).replace(Dj,"$&/")+"/")+i)),t.push(o)),1;i=0;var s=n===""?".":n+":";if(Ij(e))for(var l=0;l{"use strict";Hj.exports=Wj()});var Rj=$o(_n=>{"use strict";function BA(e,t){var r=e.length;e.push(t);e:for(;0>>1,o=e[n];if(0>>1;nwb(s,r))lwb(u,s)?(e[n]=u,e[l]=r,n=l):(e[n]=s,e[i]=r,n=i);else if(lwb(u,r))e[n]=u,e[l]=r,n=l;else break e}}return t}function wb(e,t){var r=e.sortIndex-t.sortIndex;return r!==0?r:e.id-t.id}_n.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(qj=performance,_n.unstable_now=function(){return qj.now()}):($A=Date,Kj=$A.now(),_n.unstable_now=function(){return $A.now()-Kj});var qj,$A,Kj,Dl=[],Vu=[],Wte=1,Ii=null,oa=3,FA=!1,ey=!1,ty=!1,UA=!1,Yj=typeof setTimeout=="function"?setTimeout:null,Xj=typeof clearTimeout=="function"?clearTimeout:null,Vj=typeof setImmediate<"u"?setImmediate:null;function Sb(e){for(var t=Qs(Vu);t!==null;){if(t.callback===null)kb(Vu);else if(t.startTime<=e)kb(Vu),t.sortIndex=t.expirationTime,BA(Dl,t);else break;t=Qs(Vu)}}function WA(e){if(ty=!1,Sb(e),!ey)if(Qs(Dl)!==null)ey=!0,jf||(jf=!0,Df());else{var t=Qs(Vu);t!==null&&HA(WA,t.startTime-e)}}var jf=!1,ry=-1,Zj=5,Jj=-1;function Qj(){return UA?!0:!(_n.unstable_now()-Jje&&Qj());){var n=Ii.callback;if(typeof n=="function"){Ii.callback=null,oa=Ii.priorityLevel;var o=n(Ii.expirationTime<=e);if(e=_n.unstable_now(),typeof o=="function"){Ii.callback=o,Sb(e),t=!0;break t}Ii===Qs(Dl)&&kb(Dl),Sb(e)}else kb(Dl);Ii=Qs(Dl)}if(Ii!==null)t=!0;else{var a=Qs(Vu);a!==null&&HA(WA,a.startTime-e),t=!1}}break e}finally{Ii=null,oa=r,FA=!1}t=void 0}}finally{t?Df():jf=!1}}}var Df;typeof Vj=="function"?Df=function(){Vj(LA)}:typeof MessageChannel<"u"?(zA=new MessageChannel,Gj=zA.port2,zA.port1.onmessage=LA,Df=function(){Gj.postMessage(null)}):Df=function(){Yj(LA,0)};var zA,Gj;function HA(e,t){ry=Yj(function(){e(_n.unstable_now())},t)}_n.unstable_IdlePriority=5;_n.unstable_ImmediatePriority=1;_n.unstable_LowPriority=4;_n.unstable_NormalPriority=3;_n.unstable_Profiling=null;_n.unstable_UserBlockingPriority=2;_n.unstable_cancelCallback=function(e){e.callback=null};_n.unstable_forceFrameRate=function(e){0>e||125n?(e.sortIndex=r,BA(Vu,e),Qs(Dl)===null&&e===Qs(Vu)&&(ty?(Xj(ry),ry=-1):ty=!0,HA(WA,r-n))):(e.sortIndex=o,BA(Dl,e),ey||FA||(ey=!0,jf||(jf=!0,Df()))),e};_n.unstable_shouldYield=Qj;_n.unstable_wrapCallback=function(e){var t=oa;return function(){var r=oa;oa=t;try{return e.apply(this,arguments)}finally{oa=r}}}});var t4=$o((MAe,e4)=>{"use strict";e4.exports=Rj()});var n4=$o(xa=>{"use strict";var Hte=J();function r4(e){var t="https://react.dev/errors/"+e;if(1{"use strict";function o4(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(o4)}catch(e){console.error(e)}}o4(),a4.exports=n4()});var y6=$o(X1=>{"use strict";var _o=t4(),P$=J(),Vte=oy();function Ae(e){var t="https://react.dev/errors/"+e;if(1Wf||(e.current=NE[Wf],NE[Wf]=null,Wf--)}function on(e,t){Wf++,NE[Wf]=e.current,e.current=t}var rl=nl(null),Oy=nl(null),ac=nl(null),o1=nl(null);function a1(e,t){switch(on(ac,t),on(Oy,e),on(rl,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?m$(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=m$(t),e=n6(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}Bo(rl),on(rl,e)}function im(){Bo(rl),Bo(Oy),Bo(ac)}function TE(e){e.memoizedState!==null&&on(o1,e);var t=rl.current,r=n6(t,e.type);t!==r&&(on(Oy,e),on(rl,r))}function i1(e){Oy.current===e&&(Bo(rl),Bo(Oy)),o1.current===e&&(Bo(o1),Uy._currentValue=Dd)}var qA,l4;function Od(e){if(qA===void 0)try{throw Error()}catch(r){var t=r.stack.trim().match(/\n( *(at )?)/);qA=t&&t[1]||"",l4=-1()=>(t||e((t={exports:{}}).exports,t),t.exports),Ite=(e,t)=>{for(var r in t)TA(e,r,{get:t[r],enumerable:!0})},Dte=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ote(t))!Mte.call(e,o)&&o!==r&&TA(e,o,{get:()=>t[o],enumerable:!(n=Tte(t,o))||n.enumerable});return e};var Z=(e,t,r)=>(r=e!=null?Nte(Pte(e)):{},Dte(t||!e||!e.__esModule?TA(r,"default",{value:e,enumerable:!0}):r,e));var qj=$o(Vt=>{"use strict";var MA=Symbol.for("react.transitional.element"),jte=Symbol.for("react.portal"),$te=Symbol.for("react.fragment"),Lte=Symbol.for("react.strict_mode"),zte=Symbol.for("react.profiler"),Bte=Symbol.for("react.consumer"),Fte=Symbol.for("react.context"),Ute=Symbol.for("react.forward_ref"),Wte=Symbol.for("react.suspense"),Hte=Symbol.for("react.memo"),zj=Symbol.for("react.lazy"),qte=Symbol.for("react.activity"),Dj=Symbol.iterator;function Kte(e){return e===null||typeof e!="object"?null:(e=Dj&&e[Dj]||e["@@iterator"],typeof e=="function"?e:null)}var Bj={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Fj=Object.assign,Uj={};function If(e,t,r){this.props=e,this.context=t,this.refs=Uj,this.updater=r||Bj}If.prototype.isReactComponent={};If.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};If.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Wj(){}Wj.prototype=If.prototype;function IA(e,t,r){this.props=e,this.context=t,this.refs=Uj,this.updater=r||Bj}var DA=IA.prototype=new Wj;DA.constructor=IA;Fj(DA,If.prototype);DA.isPureReactComponent=!0;var jj=Array.isArray;function PA(){}var pn={H:null,A:null,T:null,S:null},Hj=Object.prototype.hasOwnProperty;function jA(e,t,r){var n=r.ref;return{$$typeof:MA,type:e,key:t,ref:n!==void 0?n:null,props:r}}function Vte(e,t){return jA(e.type,t,e.props)}function $A(e){return typeof e=="object"&&e!==null&&e.$$typeof===MA}function Gte(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(r){return t[r]})}var $j=/\/+/g;function OA(e,t){return typeof e=="object"&&e!==null&&e.key!=null?Gte(""+e.key):t.toString(36)}function Yte(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(PA,PA):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function Mf(e,t,r,n,o){var a=typeof e;(a==="undefined"||a==="boolean")&&(e=null);var i=!1;if(e===null)i=!0;else switch(a){case"bigint":case"string":case"number":i=!0;break;case"object":switch(e.$$typeof){case MA:case jte:i=!0;break;case zj:return i=e._init,Mf(i(e._payload),t,r,n,o)}}if(i)return o=o(e),i=n===""?"."+OA(e,0):n,jj(o)?(r="",i!=null&&(r=i.replace($j,"$&/")+"/"),Mf(o,t,r,"",function(u){return u})):o!=null&&($A(o)&&(o=Vte(o,r+(o.key==null||e&&e.key===o.key?"":(""+o.key).replace($j,"$&/")+"/")+i)),t.push(o)),1;i=0;var s=n===""?".":n+":";if(jj(e))for(var l=0;l{"use strict";Kj.exports=qj()});var t4=$o(_n=>{"use strict";function FA(e,t){var r=e.length;e.push(t);e:for(;0>>1,o=e[n];if(0>>1;nwb(s,r))lwb(u,s)?(e[n]=u,e[l]=r,n=l):(e[n]=s,e[i]=r,n=i);else if(lwb(u,r))e[n]=u,e[l]=r,n=l;else break e}}return t}function wb(e,t){var r=e.sortIndex-t.sortIndex;return r!==0?r:e.id-t.id}_n.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(Vj=performance,_n.unstable_now=function(){return Vj.now()}):(LA=Date,Gj=LA.now(),_n.unstable_now=function(){return LA.now()-Gj});var Vj,LA,Gj,Dl=[],Vu=[],Jte=1,ji=null,oa=3,UA=!1,ey=!1,ty=!1,WA=!1,Zj=typeof setTimeout=="function"?setTimeout:null,Jj=typeof clearTimeout=="function"?clearTimeout:null,Yj=typeof setImmediate<"u"?setImmediate:null;function Sb(e){for(var t=Qs(Vu);t!==null;){if(t.callback===null)kb(Vu);else if(t.startTime<=e)kb(Vu),t.sortIndex=t.expirationTime,FA(Dl,t);else break;t=Qs(Vu)}}function HA(e){if(ty=!1,Sb(e),!ey)if(Qs(Dl)!==null)ey=!0,jf||(jf=!0,Df());else{var t=Qs(Vu);t!==null&&qA(HA,t.startTime-e)}}var jf=!1,ry=-1,Qj=5,Rj=-1;function e4(){return WA?!0:!(_n.unstable_now()-Rje&&e4());){var n=ji.callback;if(typeof n=="function"){ji.callback=null,oa=ji.priorityLevel;var o=n(ji.expirationTime<=e);if(e=_n.unstable_now(),typeof o=="function"){ji.callback=o,Sb(e),t=!0;break t}ji===Qs(Dl)&&kb(Dl),Sb(e)}else kb(Dl);ji=Qs(Dl)}if(ji!==null)t=!0;else{var a=Qs(Vu);a!==null&&qA(HA,a.startTime-e),t=!1}}break e}finally{ji=null,oa=r,UA=!1}t=void 0}}finally{t?Df():jf=!1}}}var Df;typeof Yj=="function"?Df=function(){Yj(zA)}:typeof MessageChannel<"u"?(BA=new MessageChannel,Xj=BA.port2,BA.port1.onmessage=zA,Df=function(){Xj.postMessage(null)}):Df=function(){Zj(zA,0)};var BA,Xj;function qA(e,t){ry=Zj(function(){e(_n.unstable_now())},t)}_n.unstable_IdlePriority=5;_n.unstable_ImmediatePriority=1;_n.unstable_LowPriority=4;_n.unstable_NormalPriority=3;_n.unstable_Profiling=null;_n.unstable_UserBlockingPriority=2;_n.unstable_cancelCallback=function(e){e.callback=null};_n.unstable_forceFrameRate=function(e){0>e||125n?(e.sortIndex=r,FA(Vu,e),Qs(Dl)===null&&e===Qs(Vu)&&(ty?(Jj(ry),ry=-1):ty=!0,qA(HA,r-n))):(e.sortIndex=o,FA(Dl,e),ey||UA||(ey=!0,jf||(jf=!0,Df()))),e};_n.unstable_shouldYield=e4;_n.unstable_wrapCallback=function(e){var t=oa;return function(){var r=oa;oa=t;try{return e.apply(this,arguments)}finally{oa=r}}}});var n4=$o((WAe,r4)=>{"use strict";r4.exports=t4()});var a4=$o(ba=>{"use strict";var Qte=Q();function o4(e){var t="https://react.dev/errors/"+e;if(1{"use strict";function i4(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i4)}catch(e){console.error(e)}}i4(),s4.exports=a4()});var x6=$o(X1=>{"use strict";var _o=n4(),I$=Q(),tre=oy();function Ae(e){var t="https://react.dev/errors/"+e;if(1Wf||(e.current=TE[Wf],TE[Wf]=null,Wf--)}function on(e,t){Wf++,TE[Wf]=e.current,e.current=t}var rl=nl(null),Oy=nl(null),ac=nl(null),o1=nl(null);function a1(e,t){switch(on(ac,t),on(Oy,e),on(rl,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?h$(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=h$(t),e=a6(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}Bo(rl),on(rl,e)}function im(){Bo(rl),Bo(Oy),Bo(ac)}function OE(e){e.memoizedState!==null&&on(o1,e);var t=rl.current,r=a6(t,e.type);t!==r&&(on(Oy,e),on(rl,r))}function i1(e){Oy.current===e&&(Bo(rl),Bo(Oy)),o1.current===e&&(Bo(o1),Uy._currentValue=Dd)}var KA,c4;function Od(e){if(KA===void 0)try{throw Error()}catch(r){var t=r.stack.trim().match(/\n( *(at )?)/);KA=t&&t[1]||"",c4=-1)":-1o||l[n]!==u[o]){var c=` -`+l[n].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=n&&0<=o);break}}}finally{KA=!1,Error.prepareStackTrace=r}return(r=e?e.displayName||e.name:"")?Od(r):""}function Jte(e,t){switch(e.tag){case 26:case 27:case 5:return Od(e.type);case 16:return Od("Lazy");case 13:return e.child!==t&&t!==null?Od("Suspense Fallback"):Od("Suspense");case 19:return Od("SuspenseList");case 0:case 15:return VA(e.type,!1);case 11:return VA(e.type.render,!1);case 1:return VA(e.type,!0);case 31:return Od("Activity");default:return""}}function u4(e){try{var t="",r=null;do t+=Jte(e,r),r=e,e=e.return;while(e);return t}catch(n){return` +`+l[n].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=n&&0<=o);break}}}finally{VA=!1,Error.prepareStackTrace=r}return(r=e?e.displayName||e.name:"")?Od(r):""}function ire(e,t){switch(e.tag){case 26:case 27:case 5:return Od(e.type);case 16:return Od("Lazy");case 13:return e.child!==t&&t!==null?Od("Suspense Fallback"):Od("Suspense");case 19:return Od("SuspenseList");case 0:case 15:return GA(e.type,!1);case 11:return GA(e.type.render,!1);case 1:return GA(e.type,!0);case 31:return Od("Activity");default:return""}}function d4(e){try{var t="",r=null;do t+=ire(e,r),r=e,e=e.return;while(e);return t}catch(n){return` Error generating stack: `+n.message+` -`+n.stack}}var OE=Object.prototype.hasOwnProperty,bN=_o.unstable_scheduleCallback,GA=_o.unstable_cancelCallback,Qte=_o.unstable_shouldYield,Rte=_o.unstable_requestPaint,li=_o.unstable_now,ere=_o.unstable_getCurrentPriorityLevel,z$=_o.unstable_ImmediatePriority,B$=_o.unstable_UserBlockingPriority,s1=_o.unstable_NormalPriority,tre=_o.unstable_LowPriority,F$=_o.unstable_IdlePriority,rre=_o.log,nre=_o.unstable_setDisableYieldValue,Ky=null,ui=null;function ec(e){if(typeof rre=="function"&&nre(e),ui&&typeof ui.setStrictMode=="function")try{ui.setStrictMode(Ky,e)}catch{}}var ci=Math.clz32?Math.clz32:ire,ore=Math.log,are=Math.LN2;function ire(e){return e>>>=0,e===0?32:31-(ore(e)/are|0)|0}var Ab=256,Eb=262144,Nb=4194304;function Pd(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function I1(e,t,r){var n=e.pendingLanes;if(n===0)return 0;var o=0,a=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var s=n&134217727;return s!==0?(n=s&~a,n!==0?o=Pd(n):(i&=s,i!==0?o=Pd(i):r||(r=s&~e,r!==0&&(o=Pd(r))))):(s=n&~a,s!==0?o=Pd(s):i!==0?o=Pd(i):r||(r=n&~e,r!==0&&(o=Pd(r)))),o===0?0:t!==0&&t!==o&&(t&a)===0&&(a=o&-o,r=t&-t,a>=r||a===32&&(r&4194048)!==0)?t:o}function Vy(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function sre(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function U$(){var e=Nb;return Nb<<=1,(Nb&62914560)===0&&(Nb=4194304),e}function YA(e){for(var t=[],r=0;31>r;r++)t.push(e);return t}function Gy(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function lre(e,t,r,n,o,a){var i=e.pendingLanes;e.pendingLanes=r,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=r,e.entangledLanes&=r,e.errorRecoveryDisabledLanes&=r,e.shellSuspendCounter=0;var s=e.entanglements,l=e.expirationTimes,u=e.hiddenUpdates;for(r=i&~r;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var mre=/[\n"\\]/g;function zi(e){return e.replace(mre,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function IE(e,t,r,n,o,a,i,s){e.name="",i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?e.type=i:e.removeAttribute("type"),t!=null?i==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+ji(t)):e.value!==""+ji(t)&&(e.value=""+ji(t)):i!=="submit"&&i!=="reset"||e.removeAttribute("value"),t!=null?DE(e,i,ji(t)):r!=null?DE(e,i,ji(r)):n!=null&&e.removeAttribute("value"),o==null&&a!=null&&(e.defaultChecked=!!a),o!=null&&(e.checked=o&&typeof o!="function"&&typeof o!="symbol"),s!=null&&typeof s!="function"&&typeof s!="symbol"&&typeof s!="boolean"?e.name=""+ji(s):e.removeAttribute("name")}function Z$(e,t,r,n,o,a,i,s){if(a!=null&&typeof a!="function"&&typeof a!="symbol"&&typeof a!="boolean"&&(e.type=a),t!=null||r!=null){if(!(a!=="submit"&&a!=="reset"||t!=null)){ME(e);return}r=r!=null?""+ji(r):"",t=t!=null?""+ji(t):r,s||t===e.value||(e.value=t),e.defaultValue=t}n=n??o,n=typeof n!="function"&&typeof n!="symbol"&&!!n,e.checked=s?e.checked:!!n,e.defaultChecked=!!n,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(e.name=i),ME(e)}function DE(e,t,r){t==="number"&&l1(e.ownerDocument)===e||e.defaultValue===""+r||(e.defaultValue=""+r)}function em(e,t,r,n){if(e=e.options,t){t={};for(var o=0;o"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),$E=!1;if(Yl)try{$f={},Object.defineProperty($f,"passive",{get:function(){$E=!0}}),window.addEventListener("test",$f,$f),window.removeEventListener("test",$f,$f)}catch{$E=!1}var $f,tc=null,AN=null,Kb=null;function tL(){if(Kb)return Kb;var e,t=AN,r=t.length,n,o="value"in tc?tc.value:tc.textContent,a=o.length;for(e=0;e=yy),b4=" ",w4=!1;function nL(e,t){switch(e){case"keyup":return Wre.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function oL(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Kf=!1;function qre(e,t){switch(e){case"compositionend":return oL(t);case"keypress":return t.which!==32?null:(w4=!0,b4);case"textInput":return e=t.data,e===b4&&w4?null:e;default:return null}}function Kre(e,t){if(Kf)return e==="compositionend"||!NN&&nL(e,t)?(e=tL(),Kb=AN=tc=null,Kf=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=C4(r)}}function lL(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?lL(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function uL(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=l1(e.document);t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch{r=!1}if(r)e=t.contentWindow;else break;t=l1(e.document)}return t}function TN(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var Rre=Yl&&"documentMode"in document&&11>=document.documentMode,Vf=null,LE=null,xy=null,zE=!1;function E4(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;zE||Vf==null||Vf!==l1(n)||(n=Vf,"selectionStart"in n&&TN(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),xy&&Iy(xy,n)||(xy=n,n=A1(LE,"onSelect"),0>=i,o-=i,Rs=1<<32-ci(t)+o|r<_?(A=w,w=null):A=w.sibling;var C=p(g,w,v[_],x);if(C===null){w===null&&(w=A);break}e&&w&&C.alternate===null&&t(g,w),h=a(C,h,_),k===null?S=C:k.sibling=C,k=C,w=A}if(_===v.length)return r(g,w),gr&&Fl(g,_),S;if(w===null){for(;__?(A=w,w=null):A=w.sibling;var N=p(g,w,C.value,x);if(N===null){w===null&&(w=A);break}e&&w&&N.alternate===null&&t(g,w),h=a(N,h,_),k===null?S=N:k.sibling=N,k=N,w=A}if(C.done)return r(g,w),gr&&Fl(g,_),S;if(w===null){for(;!C.done;_++,C=v.next())C=d(g,C.value,x),C!==null&&(h=a(C,h,_),k===null?S=C:k.sibling=C,k=C);return gr&&Fl(g,_),S}for(w=n(w);!C.done;_++,C=v.next())C=f(w,g,_,C.value,x),C!==null&&(e&&C.alternate!==null&&w.delete(C.key===null?_:C.key),h=a(C,h,_),k===null?S=C:k.sibling=C,k=C);return e&&w.forEach(function(L){return t(g,L)}),gr&&Fl(g,_),S}function b(g,h,v,x){if(typeof v=="object"&&v!==null&&v.type===Uf&&v.key===null&&(v=v.props.children),typeof v=="object"&&v!==null){switch(v.$$typeof){case Cb:e:{for(var S=v.key;h!==null;){if(h.key===S){if(S=v.type,S===Uf){if(h.tag===7){r(g,h.sibling),x=o(h,v.props.children),x.return=g,g=x;break e}}else if(h.elementType===S||typeof S=="object"&&S!==null&&S.$$typeof===Yu&&Md(S)===h.type){r(g,h.sibling),x=o(h,v.props),sy(x,v),x.return=g,g=x;break e}r(g,h);break}else t(g,h);h=h.sibling}v.type===Uf?(x=jd(v.props.children,g.mode,x,v.key),x.return=g,g=x):(x=Gb(v.type,v.key,v.props,null,g.mode,x),sy(x,v),x.return=g,g=x)}return i(g);case py:e:{for(S=v.key;h!==null;){if(h.key===S)if(h.tag===4&&h.stateNode.containerInfo===v.containerInfo&&h.stateNode.implementation===v.implementation){r(g,h.sibling),x=o(h,v.children||[]),x.return=g,g=x;break e}else{r(g,h);break}else t(g,h);h=h.sibling}x=rE(v,g.mode,x),x.return=g,g=x}return i(g);case Yu:return v=Md(v),b(g,h,v,x)}if(fy(v))return m(g,h,v,x);if(ay(v)){if(S=ay(v),typeof S!="function")throw Error(Ae(150));return v=S.call(v),y(g,h,v,x)}if(typeof v.then=="function")return b(g,h,Db(v),x);if(v.$$typeof===Wl)return b(g,h,Ib(g,v),x);jb(g,v)}return typeof v=="string"&&v!==""||typeof v=="number"||typeof v=="bigint"?(v=""+v,h!==null&&h.tag===6?(r(g,h.sibling),x=o(h,v),x.return=g,g=x):(r(g,h),x=tE(v,g.mode,x),x.return=g,g=x),i(g)):r(g,h)}return function(g,h,v,x){try{$y=0;var S=b(g,h,v,x);return nm=null,S}catch(w){if(w===bm||w===B1)throw w;var k=ii(29,w,null,g.mode);return k.lanes=x,k.return=g,k}}}var Ud=_L(!0),CL=_L(!1),Xu=!1;function zN(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function KE(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function sc(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function lc(e,t,r){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,(Tr&2)!==0){var o=n.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),n.pending=t,t=c1(e),hL(e,null,r),t}return z1(e,n,t,r),c1(e)}function wy(e,t,r){if(t=t.updateQueue,t!==null&&(t=t.shared,(r&4194048)!==0)){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,H$(e,r)}}function oE(e,t){var r=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,r===n)){var o=null,a=null;if(r=r.firstBaseUpdate,r!==null){do{var i={lane:r.lane,tag:r.tag,payload:r.payload,callback:null,next:null};a===null?o=a=i:a=a.next=i,r=r.next}while(r!==null);a===null?o=a=t:a=a.next=t}else o=a=t;r={baseState:n.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:n.shared,callbacks:n.callbacks},e.updateQueue=r;return}e=r.lastBaseUpdate,e===null?r.firstBaseUpdate=t:e.next=t,r.lastBaseUpdate=t}var VE=!1;function Sy(){if(VE){var e=rm;if(e!==null)throw e}}function ky(e,t,r,n){VE=!1;var o=e.updateQueue;Xu=!1;var a=o.firstBaseUpdate,i=o.lastBaseUpdate,s=o.shared.pending;if(s!==null){o.shared.pending=null;var l=s,u=l.next;l.next=null,i===null?a=u:i.next=u,i=l;var c=e.alternate;c!==null&&(c=c.updateQueue,s=c.lastBaseUpdate,s!==i&&(s===null?c.firstBaseUpdate=u:s.next=u,c.lastBaseUpdate=l))}if(a!==null){var d=o.baseState;i=0,c=u=l=null,s=a;do{var p=s.lane&-536870913,f=p!==s.lane;if(f?(pr&p)===p:(n&p)===p){p!==0&&p===um&&(VE=!0),c!==null&&(c=c.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});e:{var m=e,y=s;p=t;var b=r;switch(y.tag){case 1:if(m=y.payload,typeof m=="function"){d=m.call(b,d,p);break e}d=m;break e;case 3:m.flags=m.flags&-65537|128;case 0:if(m=y.payload,p=typeof m=="function"?m.call(b,d,p):m,p==null)break e;d=gn({},d,p);break e;case 2:Xu=!0}}p=s.callback,p!==null&&(e.flags|=64,f&&(e.flags|=8192),f=o.callbacks,f===null?o.callbacks=[p]:f.push(p))}else f={lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},c===null?(u=c=f,l=d):c=c.next=f,i|=p;if(s=s.next,s===null){if(s=o.shared.pending,s===null)break;f=s,s=f.next,f.next=null,o.lastBaseUpdate=f,o.shared.pending=null}}while(!0);c===null&&(l=d),o.baseState=l,o.firstBaseUpdate=u,o.lastBaseUpdate=c,a===null&&(o.shared.lanes=0),yc|=i,e.lanes=i,e.memoizedState=d}}function AL(e,t){if(typeof e!="function")throw Error(Ae(191,e));e.call(t)}function EL(e,t){var r=e.callbacks;if(r!==null)for(e.callbacks=null,e=0;ea?a:8;var i=$t.T,s={};$t.T=s,JN(e,!1,t,r);try{var l=o(),u=$t.S;if(u!==null&&u(s,l),l!==null&&typeof l=="object"&&typeof l.then=="function"){var c=lne(l,n);_y(e,t,c,di(e))}else _y(e,t,n,di(e))}catch(d){_y(e,t,{then:function(){},status:"rejected",reason:d},di())}finally{Or.p=a,i!==null&&s.types!==null&&(i.types=s.types),$t.T=i}}function mne(){}function JE(e,t,r,n){if(e.tag!==5)throw Error(Ae(476));var o=QL(e).queue;JL(e,o,t,Dd,r===null?mne:function(){return RL(e),r(n)})}function QL(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:Dd,baseState:Dd,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Zl,lastRenderedState:Dd},next:null};var r={};return t.next={memoizedState:r,baseState:r,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Zl,lastRenderedState:r},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function RL(e){var t=QL(e);t.next===null&&(t=e.alternate.memoizedState),_y(e,t.next.queue,{},di())}function ZN(){return Zo(Uy)}function e8(){return oo().memoizedState}function t8(){return oo().memoizedState}function gne(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var r=di();e=sc(r);var n=lc(t,e,r);n!==null&&(Fa(n,t,r),wy(n,t,r)),t={cache:jN()},e.payload=t;return}t=t.return}}function hne(e,t,r){var n=di();r={lane:n,revertLane:0,gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},H1(e)?n8(t,r):(r=PN(e,t,r,n),r!==null&&(Fa(r,e,n),o8(r,t,n)))}function r8(e,t,r){var n=di();_y(e,t,r,n)}function _y(e,t,r,n){var o={lane:n,revertLane:0,gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null};if(H1(e))n8(t,o);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var i=t.lastRenderedState,s=a(i,r);if(o.hasEagerState=!0,o.eagerState=s,pi(s,i))return z1(e,t,o,0),Xr===null&&L1(),!1}catch{}if(r=PN(e,t,o,n),r!==null)return Fa(r,e,n),o8(r,t,n),!0}return!1}function JN(e,t,r,n){if(n={lane:2,revertLane:iT(),gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},H1(e)){if(t)throw Error(Ae(479))}else t=PN(e,r,n,2),t!==null&&Fa(t,e,2)}function H1(e){var t=e.alternate;return e===Xt||t!==null&&t===Xt}function n8(e,t){om=h1=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function o8(e,t,r){if((r&4194048)!==0){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,H$(e,r)}}var zy={readContext:Zo,use:U1,useCallback:qn,useContext:qn,useEffect:qn,useImperativeHandle:qn,useLayoutEffect:qn,useInsertionEffect:qn,useMemo:qn,useReducer:qn,useRef:qn,useState:qn,useDebugValue:qn,useDeferredValue:qn,useTransition:qn,useSyncExternalStore:qn,useId:qn,useHostTransitionStatus:qn,useFormState:qn,useActionState:qn,useOptimistic:qn,useMemoCache:qn,useCacheRefresh:qn};zy.useEffectEvent=qn;var a8={readContext:Zo,use:U1,useCallback:function(e,t){return ba().memoizedState=[e,t===void 0?null:t],e},useContext:Zo,useEffect:W4,useImperativeHandle:function(e,t,r){r=r!=null?r.concat([e]):null,Zb(4194308,4,VL.bind(null,t,e),r)},useLayoutEffect:function(e,t){return Zb(4194308,4,e,t)},useInsertionEffect:function(e,t){Zb(4,2,e,t)},useMemo:function(e,t){var r=ba();t=t===void 0?null:t;var n=e();if(Wd){ec(!0);try{e()}finally{ec(!1)}}return r.memoizedState=[n,t],n},useReducer:function(e,t,r){var n=ba();if(r!==void 0){var o=r(t);if(Wd){ec(!0);try{r(t)}finally{ec(!1)}}}else o=t;return n.memoizedState=n.baseState=o,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:o},n.queue=e,e=e.dispatch=hne.bind(null,Xt,e),[n.memoizedState,e]},useRef:function(e){var t=ba();return e={current:e},t.memoizedState=e},useState:function(e){e=XE(e);var t=e.queue,r=r8.bind(null,Xt,t);return t.dispatch=r,[e.memoizedState,r]},useDebugValue:YN,useDeferredValue:function(e,t){var r=ba();return XN(r,e,t)},useTransition:function(){var e=XE(!1);return e=JL.bind(null,Xt,e.queue,!0,!1),ba().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,r){var n=Xt,o=ba();if(gr){if(r===void 0)throw Error(Ae(407));r=r()}else{if(r=t(),Xr===null)throw Error(Ae(349));(pr&127)!==0||ML(n,t,r)}o.memoizedState=r;var a={value:r,getSnapshot:t};return o.queue=a,W4(DL.bind(null,n,a,e),[e]),n.flags|=2048,dm(9,{destroy:void 0},IL.bind(null,n,a,r,t),null),r},useId:function(){var e=ba(),t=Xr.identifierPrefix;if(gr){var r=el,n=Rs;r=(n&~(1<<32-ci(n)-1)).toString(32)+r,t="_"+t+"R_"+r,r=y1++,0<\/script>",a=a.removeChild(a.firstChild);break;case"select":a=typeof n.is=="string"?i.createElement("select",{is:n.is}):i.createElement("select"),n.multiple?a.multiple=!0:n.size&&(a.size=n.size);break;default:a=typeof n.is=="string"?i.createElement(o,{is:n.is}):i.createElement(o)}}a[Yo]=t,a[Ua]=n;e:for(i=t.child;i!==null;){if(i.tag===5||i.tag===6)a.appendChild(i.stateNode);else if(i.tag!==4&&i.tag!==27&&i.child!==null){i.child.return=i,i=i.child;continue}if(i===t)break e;for(;i.sibling===null;){if(i.return===null||i.return===t)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}t.stateNode=a;e:switch(Jo(a,o,n),o){case"button":case"input":case"select":case"textarea":n=!!n.autoFocus;break e;case"img":n=!0;break e;default:n=!1}n&&$l(t)}}return fn(t),pE(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,r),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==n&&$l(t);else{if(typeof n!="string"&&t.stateNode===null)throw Error(Ae(166));if(e=ac.current,Lf(t)){if(e=t.stateNode,r=t.memoizedProps,n=null,o=Xo,o!==null)switch(o.tag){case 27:case 5:n=o.memoizedProps}e[Yo]=t,e=!!(e.nodeValue===r||n!==null&&n.suppressHydrationWarning===!0||r6(e.nodeValue,r)),e||gc(t,!0)}else e=E1(e).createTextNode(n),e[Yo]=t,t.stateNode=e}return fn(t),null;case 31:if(r=t.memoizedState,e===null||e.memoizedState!==null){if(n=Lf(t),r!==null){if(e===null){if(!n)throw Error(Ae(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(Ae(557));e[Yo]=t}else Bd(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;fn(t),e=!1}else r=nE(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=r),e=!0;if(!e)return t.flags&256?(ai(t),t):(ai(t),null);if((t.flags&128)!==0)throw Error(Ae(558))}return fn(t),null;case 13:if(n=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(o=Lf(t),n!==null&&n.dehydrated!==null){if(e===null){if(!o)throw Error(Ae(318));if(o=t.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(Ae(317));o[Yo]=t}else Bd(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;fn(t),o=!1}else o=nE(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=o),o=!0;if(!o)return t.flags&256?(ai(t),t):(ai(t),null)}return ai(t),(t.flags&128)!==0?(t.lanes=r,t):(r=n!==null,e=e!==null&&e.memoizedState!==null,r&&(n=t.child,o=null,n.alternate!==null&&n.alternate.memoizedState!==null&&n.alternate.memoizedState.cachePool!==null&&(o=n.alternate.memoizedState.cachePool.pool),a=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(a=n.memoizedState.cachePool.pool),a!==o&&(n.flags|=2048)),r!==e&&r&&(t.child.flags|=8192),$b(t,t.updateQueue),fn(t),null);case 4:return im(),e===null&&sT(t.stateNode.containerInfo),fn(t),null;case 10:return Vl(t.type),fn(t),null;case 19:if(Bo(no),n=t.memoizedState,n===null)return fn(t),null;if(o=(t.flags&128)!==0,a=n.rendering,a===null)if(o)ly(n,!1);else{if(Kn!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(a=g1(e),a!==null){for(t.flags|=128,ly(n,!1),e=a.updateQueue,t.updateQueue=e,$b(t,e),t.subtreeFlags=0,e=r,r=t.child;r!==null;)yL(r,e),r=r.sibling;return on(no,no.current&1|2),gr&&Fl(t,n.treeForkCount),t.child}e=e.sibling}n.tail!==null&&li()>w1&&(t.flags|=128,o=!0,ly(n,!1),t.lanes=4194304)}else{if(!o)if(e=g1(a),e!==null){if(t.flags|=128,o=!0,e=e.updateQueue,t.updateQueue=e,$b(t,e),ly(n,!0),n.tail===null&&n.tailMode==="hidden"&&!a.alternate&&!gr)return fn(t),null}else 2*li()-n.renderingStartTime>w1&&r!==536870912&&(t.flags|=128,o=!0,ly(n,!1),t.lanes=4194304);n.isBackwards?(a.sibling=t.child,t.child=a):(e=n.last,e!==null?e.sibling=a:t.child=a,n.last=a)}return n.tail!==null?(e=n.tail,n.rendering=e,n.tail=e.sibling,n.renderingStartTime=li(),e.sibling=null,r=no.current,on(no,o?r&1|2:r&1),gr&&Fl(t,n.treeForkCount),e):(fn(t),null);case 22:case 23:return ai(t),BN(),n=t.memoizedState!==null,e!==null?e.memoizedState!==null!==n&&(t.flags|=8192):n&&(t.flags|=8192),n?(r&536870912)!==0&&(t.flags&128)===0&&(fn(t),t.subtreeFlags&6&&(t.flags|=8192)):fn(t),r=t.updateQueue,r!==null&&$b(t,r.retryQueue),r=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(r=e.memoizedState.cachePool.pool),n=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(n=t.memoizedState.cachePool.pool),n!==r&&(t.flags|=2048),e!==null&&Bo($d),null;case 24:return r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),Vl(yo),fn(t),null;case 25:return null;case 30:return null}throw Error(Ae(156,t.tag))}function wne(e,t){switch(DN(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Vl(yo),im(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return i1(t),null;case 31:if(t.memoizedState!==null){if(ai(t),t.alternate===null)throw Error(Ae(340));Bd()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(ai(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(Ae(340));Bd()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Bo(no),null;case 4:return im(),null;case 10:return Vl(t.type),null;case 22:case 23:return ai(t),BN(),e!==null&&Bo($d),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Vl(yo),null;case 25:return null;default:return null}}function y8(e,t){switch(DN(t),t.tag){case 3:Vl(yo),im();break;case 26:case 27:case 5:i1(t);break;case 4:im();break;case 31:t.memoizedState!==null&&ai(t);break;case 13:ai(t);break;case 19:Bo(no);break;case 10:Vl(t.type);break;case 22:case 23:ai(t),BN(),e!==null&&Bo($d);break;case 24:Vl(yo)}}function Qy(e,t){try{var r=t.updateQueue,n=r!==null?r.lastEffect:null;if(n!==null){var o=n.next;r=o;do{if((r.tag&e)===e){n=void 0;var a=r.create,i=r.inst;n=a(),i.destroy=n}r=r.next}while(r!==o)}}catch(s){Br(t,t.return,s)}}function hc(e,t,r){try{var n=t.updateQueue,o=n!==null?n.lastEffect:null;if(o!==null){var a=o.next;n=a;do{if((n.tag&e)===e){var i=n.inst,s=i.destroy;if(s!==void 0){i.destroy=void 0,o=t;var l=r,u=s;try{u()}catch(c){Br(o,l,c)}}}n=n.next}while(n!==a)}}catch(c){Br(t,t.return,c)}}function v8(e){var t=e.updateQueue;if(t!==null){var r=e.stateNode;try{EL(t,r)}catch(n){Br(e,e.return,n)}}}function x8(e,t,r){r.props=Hd(e.type,e.memoizedProps),r.state=e.memoizedState;try{r.componentWillUnmount()}catch(n){Br(e,t,n)}}function Cy(e,t){try{var r=e.ref;if(r!==null){switch(e.tag){case 26:case 27:case 5:var n=e.stateNode;break;case 30:n=e.stateNode;break;default:n=e.stateNode}typeof r=="function"?e.refCleanup=r(n):r.current=n}}catch(o){Br(e,t,o)}}function tl(e,t){var r=e.ref,n=e.refCleanup;if(r!==null)if(typeof n=="function")try{n()}catch(o){Br(e,t,o)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof r=="function")try{r(null)}catch(o){Br(e,t,o)}else r.current=null}function b8(e){var t=e.type,r=e.memoizedProps,n=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":r.autoFocus&&n.focus();break e;case"img":r.src?n.src=r.src:r.srcSet&&(n.srcset=r.srcSet)}}catch(o){Br(e,e.return,o)}}function fE(e,t,r){try{var n=e.stateNode;Une(n,e.type,r,t),n[Ua]=t}catch(o){Br(e,e.return,o)}}function w8(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&xc(e.type)||e.tag===4}function mE(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||w8(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&xc(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function rN(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?(r.nodeType===9?r.body:r.nodeName==="HTML"?r.ownerDocument.body:r).insertBefore(e,t):(t=r.nodeType===9?r.body:r.nodeName==="HTML"?r.ownerDocument.body:r,t.appendChild(e),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=Hl));else if(n!==4&&(n===27&&xc(e.type)&&(r=e.stateNode,t=null),e=e.child,e!==null))for(rN(e,t,r),e=e.sibling;e!==null;)rN(e,t,r),e=e.sibling}function b1(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(n===27&&xc(e.type)&&(r=e.stateNode),e=e.child,e!==null))for(b1(e,t,r),e=e.sibling;e!==null;)b1(e,t,r),e=e.sibling}function S8(e){var t=e.stateNode,r=e.memoizedProps;try{for(var n=e.type,o=t.attributes;o.length;)t.removeAttributeNode(o[0]);Jo(t,n,r),t[Yo]=e,t[Ua]=r}catch(a){Br(e,e.return,a)}}var Ul=!1,ho=!1,gE=!1,t$=typeof WeakSet=="function"?WeakSet:Set,Lo=null;function Sne(e,t){if(e=e.containerInfo,uN=P1,e=uL(e),TN(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var o=n.anchorOffset,a=n.focusNode;n=n.focusOffset;try{r.nodeType,a.nodeType}catch{r=null;break e}var i=0,s=-1,l=-1,u=0,c=0,d=e,p=null;t:for(;;){for(var f;d!==r||o!==0&&d.nodeType!==3||(s=i+o),d!==a||n!==0&&d.nodeType!==3||(l=i+n),d.nodeType===3&&(i+=d.nodeValue.length),(f=d.firstChild)!==null;)p=d,d=f;for(;;){if(d===e)break t;if(p===r&&++u===o&&(s=i),p===a&&++c===n&&(l=i),(f=d.nextSibling)!==null)break;d=p,p=d.parentNode}d=f}r=s===-1||l===-1?null:{start:s,end:l}}else r=null}r=r||{start:0,end:0}}else r=null;for(cN={focusedElem:e,selectionRange:r},P1=!1,Lo=t;Lo!==null;)if(t=Lo,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Lo=e;else for(;Lo!==null;){switch(t=Lo,a=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(r=0;r title"))),Jo(a,n,r),a[Yo]=e,zo(a),n=a;break e;case"link":var i=k$("link","href",o).get(n+(r.href||""));if(i){for(var s=0;sb&&(i=b,b=y,y=i);var g=A4(s,y),h=A4(s,b);if(g&&h&&(f.rangeCount!==1||f.anchorNode!==g.node||f.anchorOffset!==g.offset||f.focusNode!==h.node||f.focusOffset!==h.offset)){var v=d.createRange();v.setStart(g.node,g.offset),f.removeAllRanges(),y>b?(f.addRange(v),f.extend(h.node,h.offset)):(v.setEnd(h.node,h.offset),f.addRange(v))}}}}for(d=[],f=s;f=f.parentNode;)f.nodeType===1&&d.push({element:f,left:f.scrollLeft,top:f.scrollTop});for(typeof s.focus=="function"&&s.focus(),s=0;sr?32:r,$t.T=null,r=aN,aN=null;var a=cc,i=Gl;if(ko=0,fm=cc=null,Gl=0,(Tr&6)!==0)throw Error(Ae(331));var s=Tr;if(Tr|=4,I8(a.current),O8(a,a.current,i,r),Tr=s,Ry(0,!1),ui&&typeof ui.onPostCommitFiberRoot=="function")try{ui.onPostCommitFiberRoot(Ky,a)}catch{}return!0}finally{Or.p=o,$t.T=n,Y8(e,t)}}function a$(e,t,r){t=Bi(r,t),t=RE(e.stateNode,t,2),e=lc(e,t,2),e!==null&&(Gy(e,2),ol(e))}function Br(e,t,r){if(e.tag===3)a$(e,e,r);else for(;t!==null;){if(t.tag===3){a$(t,e,r);break}else if(t.tag===1){var n=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof n.componentDidCatch=="function"&&(uc===null||!uc.has(n))){e=Bi(r,e),r=c8(2),n=lc(t,r,2),n!==null&&(d8(r,n,t,e),Gy(n,2),ol(n));break}}t=t.return}}function yE(e,t,r){var n=e.pingCache;if(n===null){n=e.pingCache=new Cne;var o=new Set;n.set(t,o)}else o=n.get(t),o===void 0&&(o=new Set,n.set(t,o));o.has(r)||(nT=!0,o.add(r),e=One.bind(null,e,t,r),t.then(e,e))}function One(e,t,r){var n=e.pingCache;n!==null&&n.delete(t),e.pingedLanes|=e.suspendedLanes&r,e.warmLanes&=~r,Xr===e&&(pr&r)===r&&(Kn===4||Kn===3&&(pr&62914560)===pr&&300>li()-q1?(Tr&2)===0&&mm(e,0):oT|=r,pm===pr&&(pm=0)),ol(e)}function Z8(e,t){t===0&&(t=U$()),e=Gd(e,t),e!==null&&(Gy(e,t),ol(e))}function Pne(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),Z8(e,r)}function Mne(e,t){var r=0;switch(e.tag){case 31:case 13:var n=e.stateNode,o=e.memoizedState;o!==null&&(r=o.retryLane);break;case 19:n=e.stateNode;break;case 22:n=e.stateNode._retryCache;break;default:throw Error(Ae(314))}n!==null&&n.delete(t),Z8(e,r)}function Ine(e,t){return bN(e,t)}var _1=null,Ff=null,sN=!1,C1=!1,vE=!1,oc=0;function ol(e){e!==Ff&&e.next===null&&(Ff===null?_1=Ff=e:Ff=Ff.next=e),C1=!0,sN||(sN=!0,jne())}function Ry(e,t){if(!vE&&C1){vE=!0;do for(var r=!1,n=_1;n!==null;){if(!t)if(e!==0){var o=n.pendingLanes;if(o===0)var a=0;else{var i=n.suspendedLanes,s=n.pingedLanes;a=(1<<31-ci(42|e)+1)-1,a&=o&~(i&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(r=!0,i$(n,a))}else a=pr,a=I1(n,n===Xr?a:0,n.cancelPendingCommit!==null||n.timeoutHandle!==-1),(a&3)===0||Vy(n,a)||(r=!0,i$(n,a));n=n.next}while(r);vE=!1}}function Dne(){J8()}function J8(){C1=sN=!1;var e=0;oc!==0&&Hne()&&(e=oc);for(var t=li(),r=null,n=_1;n!==null;){var o=n.next,a=Q8(n,t);a===0?(n.next=null,r===null?_1=o:r.next=o,o===null&&(Ff=r)):(r=n,(e!==0||(a&3)!==0)&&(C1=!0)),n=o}ko!==0&&ko!==5||Ry(e,!1),oc!==0&&(oc=0)}function Q8(e,t){for(var r=e.suspendedLanes,n=e.pingedLanes,o=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var c=l.transferSize,d=l.initiatorType;c&&f$(d)&&(l=l.responseEnd,i+=c*(l"u"?null:document;function s6(e,t,r){var n=Sm;if(n&&typeof t=="string"&&t){var o=zi(t);o='link[rel="'+e+'"][href="'+o+'"]',typeof r=="string"&&(o+='[crossorigin="'+r+'"]'),b$.has(o)||(b$.add(o),e={rel:e,crossOrigin:r,href:t},n.querySelector(o)===null&&(t=n.createElement("link"),Jo(t,"link",e),zo(t),n.head.appendChild(t)))}}function Qne(e){Rl.D(e),s6("dns-prefetch",e,null)}function Rne(e,t){Rl.C(e,t),s6("preconnect",e,t)}function eoe(e,t,r){Rl.L(e,t,r);var n=Sm;if(n&&e&&t){var o='link[rel="preload"][as="'+zi(t)+'"]';t==="image"&&r&&r.imageSrcSet?(o+='[imagesrcset="'+zi(r.imageSrcSet)+'"]',typeof r.imageSizes=="string"&&(o+='[imagesizes="'+zi(r.imageSizes)+'"]')):o+='[href="'+zi(e)+'"]';var a=o;switch(t){case"style":a=gm(e);break;case"script":a=km(e)}Hi.has(a)||(e=gn({rel:"preload",href:t==="image"&&r&&r.imageSrcSet?void 0:e,as:t},r),Hi.set(a,e),n.querySelector(o)!==null||t==="style"&&n.querySelector(ev(a))||t==="script"&&n.querySelector(tv(a))||(t=n.createElement("link"),Jo(t,"link",e),zo(t),n.head.appendChild(t)))}}function toe(e,t){Rl.m(e,t);var r=Sm;if(r&&e){var n=t&&typeof t.as=="string"?t.as:"script",o='link[rel="modulepreload"][as="'+zi(n)+'"][href="'+zi(e)+'"]',a=o;switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":a=km(e)}if(!Hi.has(a)&&(e=gn({rel:"modulepreload",href:e},t),Hi.set(a,e),r.querySelector(o)===null)){switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(r.querySelector(tv(a)))return}n=r.createElement("link"),Jo(n,"link",e),zo(n),r.head.appendChild(n)}}}function roe(e,t,r){Rl.S(e,t,r);var n=Sm;if(n&&e){var o=Rf(n).hoistableStyles,a=gm(e);t=t||"default";var i=o.get(a);if(!i){var s={loading:0,preload:null};if(i=n.querySelector(ev(a)))s.loading=5;else{e=gn({rel:"stylesheet",href:e,"data-precedence":t},r),(r=Hi.get(a))&&lT(e,r);var l=i=n.createElement("link");zo(l),Jo(l,"link",e),l._p=new Promise(function(u,c){l.onload=u,l.onerror=c}),l.addEventListener("load",function(){s.loading|=1}),l.addEventListener("error",function(){s.loading|=2}),s.loading|=4,e1(i,t,n)}i={type:"stylesheet",instance:i,count:1,state:s},o.set(a,i)}}}function noe(e,t){Rl.X(e,t);var r=Sm;if(r&&e){var n=Rf(r).hoistableScripts,o=km(e),a=n.get(o);a||(a=r.querySelector(tv(o)),a||(e=gn({src:e,async:!0},t),(t=Hi.get(o))&&uT(e,t),a=r.createElement("script"),zo(a),Jo(a,"link",e),r.head.appendChild(a)),a={type:"script",instance:a,count:1,state:null},n.set(o,a))}}function ooe(e,t){Rl.M(e,t);var r=Sm;if(r&&e){var n=Rf(r).hoistableScripts,o=km(e),a=n.get(o);a||(a=r.querySelector(tv(o)),a||(e=gn({src:e,async:!0,type:"module"},t),(t=Hi.get(o))&&uT(e,t),a=r.createElement("script"),zo(a),Jo(a,"link",e),r.head.appendChild(a)),a={type:"script",instance:a,count:1,state:null},n.set(o,a))}}function w$(e,t,r,n){var o=(o=ac.current)?N1(o):null;if(!o)throw Error(Ae(446));switch(e){case"meta":case"title":return null;case"style":return typeof r.precedence=="string"&&typeof r.href=="string"?(t=gm(r.href),r=Rf(o).hoistableStyles,n=r.get(t),n||(n={type:"style",instance:null,count:0,state:null},r.set(t,n)),n):{type:"void",instance:null,count:0,state:null};case"link":if(r.rel==="stylesheet"&&typeof r.href=="string"&&typeof r.precedence=="string"){e=gm(r.href);var a=Rf(o).hoistableStyles,i=a.get(e);if(i||(o=o.ownerDocument||o,i={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},a.set(e,i),(a=o.querySelector(ev(e)))&&!a._p&&(i.instance=a,i.state.loading=5),Hi.has(e)||(r={rel:"preload",as:"style",href:r.href,crossOrigin:r.crossOrigin,integrity:r.integrity,media:r.media,hrefLang:r.hrefLang,referrerPolicy:r.referrerPolicy},Hi.set(e,r),a||aoe(o,e,r,i.state))),t&&n===null)throw Error(Ae(528,""));return i}if(t&&n!==null)throw Error(Ae(529,""));return null;case"script":return t=r.async,r=r.src,typeof r=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=km(r),r=Rf(o).hoistableScripts,n=r.get(t),n||(n={type:"script",instance:null,count:0,state:null},r.set(t,n)),n):{type:"void",instance:null,count:0,state:null};default:throw Error(Ae(444,e))}}function gm(e){return'href="'+zi(e)+'"'}function ev(e){return'link[rel="stylesheet"]['+e+"]"}function l6(e){return gn({},e,{"data-precedence":e.precedence,precedence:null})}function aoe(e,t,r,n){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?n.loading=1:(t=e.createElement("link"),n.preload=t,t.addEventListener("load",function(){return n.loading|=1}),t.addEventListener("error",function(){return n.loading|=2}),Jo(t,"link",r),zo(t),e.head.appendChild(t))}function km(e){return'[src="'+zi(e)+'"]'}function tv(e){return"script[async]"+e}function S$(e,t,r){if(t.count++,t.instance===null)switch(t.type){case"style":var n=e.querySelector('style[data-href~="'+zi(r.href)+'"]');if(n)return t.instance=n,zo(n),n;var o=gn({},r,{"data-href":r.href,"data-precedence":r.precedence,href:null,precedence:null});return n=(e.ownerDocument||e).createElement("style"),zo(n),Jo(n,"style",o),e1(n,r.precedence,e),t.instance=n;case"stylesheet":o=gm(r.href);var a=e.querySelector(ev(o));if(a)return t.state.loading|=4,t.instance=a,zo(a),a;n=l6(r),(o=Hi.get(o))&&lT(n,o),a=(e.ownerDocument||e).createElement("link"),zo(a);var i=a;return i._p=new Promise(function(s,l){i.onload=s,i.onerror=l}),Jo(a,"link",n),t.state.loading|=4,e1(a,r.precedence,e),t.instance=a;case"script":return a=km(r.src),(o=e.querySelector(tv(a)))?(t.instance=o,zo(o),o):(n=r,(o=Hi.get(a))&&(n=gn({},r),uT(n,o)),e=e.ownerDocument||e,o=e.createElement("script"),zo(o),Jo(o,"link",n),e.head.appendChild(o),t.instance=o);case"void":return null;default:throw Error(Ae(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(n=t.instance,t.state.loading|=4,e1(n,r.precedence,e));return t.instance}function e1(e,t,r){for(var n=r.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),o=n.length?n[n.length-1]:null,a=o,i=0;i title"):null)}function ioe(e,t,r){if(r===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;return t.rel==="stylesheet"?(e=t.disabled,typeof t.precedence=="string"&&e==null):!0;case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function u6(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function soe(e,t,r,n){if(r.type==="stylesheet"&&(typeof n.media!="string"||matchMedia(n.media).matches!==!1)&&(r.state.loading&4)===0){if(r.instance===null){var o=gm(n.href),a=t.querySelector(ev(o));if(a){t=a._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=T1.bind(e),t.then(e,e)),r.state.loading|=4,r.instance=a,zo(a);return}a=t.ownerDocument||t,n=l6(n),(o=Hi.get(o))&&lT(n,o),a=a.createElement("link"),zo(a);var i=a;i._p=new Promise(function(s,l){i.onload=s,i.onerror=l}),Jo(a,"link",n),r.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(r,t),(t=r.state.preload)&&(r.state.loading&3)===0&&(e.count++,r=T1.bind(e),t.addEventListener("load",r),t.addEventListener("error",r))}}var SE=0;function loe(e,t){return e.stylesheets&&e.count===0&&r1(e,e.stylesheets),0SE?50:800)+t);return e.unsuspend=r,function(){e.unsuspend=null,clearTimeout(n),clearTimeout(o)}}:null}function T1(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)r1(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var O1=null;function r1(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,O1=new Map,t.forEach(uoe,e),O1=null,T1.call(e))}function uoe(e,t){if(!(t.state.loading&4)){var r=O1.get(e);if(r)var n=r.get(null);else{r=new Map,O1.set(e,r);for(var o=e.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;a{"use strict";function v6(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(v6)}catch(e){console.error(e)}}v6(),x6.exports=y6()});var Kz=$o(qz=>{"use strict";var Vm=J();function Dae(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var jae=typeof Object.is=="function"?Object.is:Dae,$ae=Vm.useState,Lae=Vm.useEffect,zae=Vm.useLayoutEffect,Bae=Vm.useDebugValue;function Fae(e,t){var r=t(),n=$ae({inst:{value:r,getSnapshot:t}}),o=n[0].inst,a=n[1];return zae(function(){o.value=r,o.getSnapshot=t,dO(o)&&a({inst:o})},[e,r,t]),Lae(function(){return dO(o)&&a({inst:o}),e(function(){dO(o)&&a({inst:o})})},[e]),Bae(r),r}function dO(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!jae(e,r)}catch{return!0}}function Uae(e,t){return t()}var Wae=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Uae:Fae;qz.useSyncExternalStore=Vm.useSyncExternalStore!==void 0?Vm.useSyncExternalStore:Wae});var Gz=$o((SPe,Vz)=>{"use strict";Vz.exports=Kz()});var Xz=$o(Yz=>{"use strict";var Gw=J(),Hae=Gz();function qae(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Kae=typeof Object.is=="function"?Object.is:qae,Vae=Hae.useSyncExternalStore,Gae=Gw.useRef,Yae=Gw.useEffect,Xae=Gw.useMemo,Zae=Gw.useDebugValue;Yz.useSyncExternalStoreWithSelector=function(e,t,r,n,o){var a=Gae(null);if(a.current===null){var i={hasValue:!1,value:null};a.current=i}else i=a.current;a=Xae(function(){function l(f){if(!u){if(u=!0,c=f,f=n(f),o!==void 0&&i.hasValue){var m=i.value;if(o(m,f))return d=m}return d=f}if(m=d,Kae(c,f))return m;var y=n(f);return o!==void 0&&o(m,y)?(c=f,m):(c=f,d=y)}var u=!1,c,d,p=r===void 0?null:r;return[function(){return l(t())},p===null?void 0:function(){return l(p())}]},[t,r,n,o]);var s=Vae(e,a[0],a[1]);return Yae(function(){i.hasValue=!0,i.value=s},[s]),Zae(s),s}});var Jz=$o((_Pe,Zz)=>{"use strict";Zz.exports=Xz()});var z7=$o(L7=>{"use strict";var Nv=J();function ele(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var tle=typeof Object.is=="function"?Object.is:ele,rle=Nv.useSyncExternalStore,nle=Nv.useRef,ole=Nv.useEffect,ale=Nv.useMemo,ile=Nv.useDebugValue;L7.useSyncExternalStoreWithSelector=function(e,t,r,n,o){var a=nle(null);if(a.current===null){var i={hasValue:!1,value:null};a.current=i}else i=a.current;a=ale(function(){function l(f){if(!u){if(u=!0,c=f,f=n(f),o!==void 0&&i.hasValue){var m=i.value;if(o(m,f))return d=m}return d=f}if(m=d,tle(c,f))return m;var y=n(f);return o!==void 0&&o(m,y)?(c=f,m):(c=f,d=y)}var u=!1,c,d,p=r===void 0?null:r;return[function(){return l(t())},p===null?void 0:function(){return l(p())}]},[t,r,n,o]);var s=rle(e,a[0],a[1]);return ole(function(){i.hasValue=!0,i.value=s},[s]),ile(s),s}});var F7=$o((k5e,B7)=>{"use strict";B7.exports=z7()});var iP=$o((dF,nk)=>{(function(e){"use strict";var t=1e9,r={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},n=!0,o="[DecimalError] ",a=o+"Invalid argument: ",i=o+"Exponent out of range: ",s=Math.floor,l=Math.pow,u=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,c,d=1e7,p=7,f=9007199254740991,m=s(f/p),y={};y.absoluteValue=y.abs=function(){var T=new this.constructor(this);return T.s&&(T.s=1),T},y.comparedTo=y.cmp=function(T){var O,I,P,j,M=this;if(T=new M.constructor(T),M.s!==T.s)return M.s||-T.s;if(M.e!==T.e)return M.e>T.e^M.s<0?1:-1;for(P=M.d.length,j=T.d.length,O=0,I=PT.d[O]^M.s<0?1:-1;return P===j?0:P>j^M.s<0?1:-1},y.decimalPlaces=y.dp=function(){var T=this,O=T.d.length-1,I=(O-T.e)*p;if(O=T.d[O],O)for(;O%10==0;O/=10)I--;return I<0?0:I},y.dividedBy=y.div=function(T){return v(this,new this.constructor(T))},y.dividedToIntegerBy=y.idiv=function(T){var O=this,I=O.constructor;return C(v(O,new I(T),0,1),I.precision)},y.equals=y.eq=function(T){return!this.cmp(T)},y.exponent=function(){return S(this)},y.greaterThan=y.gt=function(T){return this.cmp(T)>0},y.greaterThanOrEqualTo=y.gte=function(T){return this.cmp(T)>=0},y.isInteger=y.isint=function(){return this.e>this.d.length-2},y.isNegative=y.isneg=function(){return this.s<0},y.isPositive=y.ispos=function(){return this.s>0},y.isZero=function(){return this.s===0},y.lessThan=y.lt=function(T){return this.cmp(T)<0},y.lessThanOrEqualTo=y.lte=function(T){return this.cmp(T)<1},y.logarithm=y.log=function(T){var O,I=this,P=I.constructor,j=P.precision,M=j+5;if(T===void 0)T=new P(10);else if(T=new P(T),T.s<1||T.eq(c))throw Error(o+"NaN");if(I.s<1)throw Error(o+(I.s?"NaN":"-Infinity"));return I.eq(c)?new P(0):(n=!1,O=v(_(I,M),_(T,M),M),n=!0,C(O,j))},y.minus=y.sub=function(T){var O=this;return T=new O.constructor(T),O.s==T.s?N(O,T):b(O,(T.s=-T.s,T))},y.modulo=y.mod=function(T){var O,I=this,P=I.constructor,j=P.precision;if(T=new P(T),!T.s)throw Error(o+"NaN");return I.s?(n=!1,O=v(I,T,0,1).times(T),n=!0,I.minus(O)):C(new P(I),j)},y.naturalExponential=y.exp=function(){return x(this)},y.naturalLogarithm=y.ln=function(){return _(this)},y.negated=y.neg=function(){var T=new this.constructor(this);return T.s=-T.s||0,T},y.plus=y.add=function(T){var O=this;return T=new O.constructor(T),O.s==T.s?b(O,T):N(O,(T.s=-T.s,T))},y.precision=y.sd=function(T){var O,I,P,j=this;if(T!==void 0&&T!==!!T&&T!==1&&T!==0)throw Error(a+T);if(O=S(j)+1,P=j.d.length-1,I=P*p+1,P=j.d[P],P){for(;P%10==0;P/=10)I--;for(P=j.d[0];P>=10;P/=10)I++}return T&&O>I?O:I},y.squareRoot=y.sqrt=function(){var T,O,I,P,j,M,W,Y=this,z=Y.constructor;if(Y.s<1){if(!Y.s)return new z(0);throw Error(o+"NaN")}for(T=S(Y),n=!1,j=Math.sqrt(+Y),j==0||j==1/0?(O=h(Y.d),(O.length+T)%2==0&&(O+="0"),j=Math.sqrt(O),T=s((T+1)/2)-(T<0||T%2),j==1/0?O="5e"+T:(O=j.toExponential(),O=O.slice(0,O.indexOf("e")+1)+T),P=new z(O)):P=new z(j.toString()),I=z.precision,j=W=I+3;;)if(M=P,P=M.plus(v(Y,M,W+2)).times(.5),h(M.d).slice(0,W)===(O=h(P.d)).slice(0,W)){if(O=O.slice(W-3,W+1),j==W&&O=="4999"){if(C(M,I+1,0),M.times(M).eq(Y)){P=M;break}}else if(O!="9999")break;W+=4}return n=!0,C(P,I)},y.times=y.mul=function(T){var O,I,P,j,M,W,Y,z,V,q=this,oe=q.constructor,Me=q.d,fe=(T=new oe(T)).d;if(!q.s||!T.s)return new oe(0);for(T.s*=q.s,I=q.e+T.e,z=Me.length,V=fe.length,z=0;){for(O=0,j=z+P;j>P;)Y=M[j]+fe[P]*Me[j-P-1]+O,M[j--]=Y%d|0,O=Y/d|0;M[j]=(M[j]+O)%d|0}for(;!M[--W];)M.pop();return O?++I:M.shift(),T.d=M,T.e=I,n?C(T,oe.precision):T},y.toDecimalPlaces=y.todp=function(T,O){var I=this,P=I.constructor;return I=new P(I),T===void 0?I:(g(T,0,t),O===void 0?O=P.rounding:g(O,0,8),C(I,T+S(I)+1,O))},y.toExponential=function(T,O){var I,P=this,j=P.constructor;return T===void 0?I=L(P,!0):(g(T,0,t),O===void 0?O=j.rounding:g(O,0,8),P=C(new j(P),T+1,O),I=L(P,!0,T+1)),I},y.toFixed=function(T,O){var I,P,j=this,M=j.constructor;return T===void 0?L(j):(g(T,0,t),O===void 0?O=M.rounding:g(O,0,8),P=C(new M(j),T+S(j)+1,O),I=L(P.abs(),!1,T+S(P)+1),j.isneg()&&!j.isZero()?"-"+I:I)},y.toInteger=y.toint=function(){var T=this,O=T.constructor;return C(new O(T),S(T)+1,O.rounding)},y.toNumber=function(){return+this},y.toPower=y.pow=function(T){var O,I,P,j,M,W,Y=this,z=Y.constructor,V=12,q=+(T=new z(T));if(!T.s)return new z(c);if(Y=new z(Y),!Y.s){if(T.s<1)throw Error(o+"Infinity");return Y}if(Y.eq(c))return Y;if(P=z.precision,T.eq(c))return C(Y,P);if(O=T.e,I=T.d.length-1,W=O>=I,M=Y.s,W){if((I=q<0?-q:q)<=f){for(j=new z(c),O=Math.ceil(P/p+4),n=!1;I%2&&(j=j.times(Y),Q(j.d,O)),I=s(I/2),I!==0;)Y=Y.times(Y),Q(Y.d,O);return n=!0,T.s<0?new z(c).div(j):C(j,P)}}else if(M<0)throw Error(o+"NaN");return M=M<0&&T.d[Math.max(O,I)]&1?-1:1,Y.s=1,n=!1,j=T.times(_(Y,P+V)),n=!0,j=x(j),j.s=M,j},y.toPrecision=function(T,O){var I,P,j=this,M=j.constructor;return T===void 0?(I=S(j),P=L(j,I<=M.toExpNeg||I>=M.toExpPos)):(g(T,1,t),O===void 0?O=M.rounding:g(O,0,8),j=C(new M(j),T,O),I=S(j),P=L(j,T<=I||I<=M.toExpNeg,T)),P},y.toSignificantDigits=y.tosd=function(T,O){var I=this,P=I.constructor;return T===void 0?(T=P.precision,O=P.rounding):(g(T,1,t),O===void 0?O=P.rounding:g(O,0,8)),C(new P(I),T,O)},y.toString=y.valueOf=y.val=y.toJSON=function(){var T=this,O=S(T),I=T.constructor;return L(T,O<=I.toExpNeg||O>=I.toExpPos)};function b(T,O){var I,P,j,M,W,Y,z,V,q=T.constructor,oe=q.precision;if(!T.s||!O.s)return O.s||(O=new q(T)),n?C(O,oe):O;if(z=T.d,V=O.d,W=T.e,j=O.e,z=z.slice(),M=W-j,M){for(M<0?(P=z,M=-M,Y=V.length):(P=V,j=W,Y=z.length),W=Math.ceil(oe/p),Y=W>Y?W+1:Y+1,M>Y&&(M=Y,P.length=1),P.reverse();M--;)P.push(0);P.reverse()}for(Y=z.length,M=V.length,Y-M<0&&(M=Y,P=V,V=z,z=P),I=0;M;)I=(z[--M]=z[M]+V[M]+I)/d|0,z[M]%=d;for(I&&(z.unshift(I),++j),Y=z.length;z[--Y]==0;)z.pop();return O.d=z,O.e=j,n?C(O,oe):O}function g(T,O,I){if(T!==~~T||TI)throw Error(a+T)}function h(T){var O,I,P,j=T.length-1,M="",W=T[0];if(j>0){for(M+=W,O=1;OW?1:-1;else for(Y=z=0;Yj[Y]?1:-1;break}return z}function I(P,j,M){for(var W=0;M--;)P[M]-=W,W=P[M]1;)P.shift()}return function(P,j,M,W){var Y,z,V,q,oe,Me,fe,le,R,te,He,_e,D,G,E,$,ee,F,me=P.constructor,et=P.s==j.s?1:-1,rt=P.d,ge=j.d;if(!P.s)return new me(P);if(!j.s)throw Error(o+"Division by zero");for(z=P.e-j.e,ee=ge.length,E=rt.length,fe=new me(et),le=fe.d=[],V=0;ge[V]==(rt[V]||0);)++V;if(ge[V]>(rt[V]||0)&&--z,M==null?_e=M=me.precision:W?_e=M+(S(P)-S(j))+1:_e=M,_e<0)return new me(0);if(_e=_e/p+2|0,V=0,ee==1)for(q=0,ge=ge[0],_e++;(V1&&(ge=T(ge,q),rt=T(rt,q),ee=ge.length,E=rt.length),G=ee,R=rt.slice(0,ee),te=R.length;te=d/2&&++$;do q=0,Y=O(ge,R,ee,te),Y<0?(He=R[0],ee!=te&&(He=He*d+(R[1]||0)),q=He/$|0,q>1?(q>=d&&(q=d-1),oe=T(ge,q),Me=oe.length,te=R.length,Y=O(oe,R,Me,te),Y==1&&(q--,I(oe,ee16)throw Error(i+S(T));if(!T.s)return new q(c);for(O==null?(n=!1,Y=oe):Y=O,W=new q(.03125);T.abs().gte(.1);)T=T.times(W),V+=5;for(P=Math.log(l(2,V))/Math.LN10*2+5|0,Y+=P,I=j=M=new q(c),q.precision=Y;;){if(j=C(j.times(T),Y),I=I.times(++z),W=M.plus(v(j,I,Y)),h(W.d).slice(0,Y)===h(M.d).slice(0,Y)){for(;V--;)M=C(M.times(M),Y);return q.precision=oe,O==null?(n=!0,C(M,oe)):M}M=W}}function S(T){for(var O=T.e*p,I=T.d[0];I>=10;I/=10)O++;return O}function k(T,O,I){if(O>T.LN10.sd())throw n=!0,I&&(T.precision=I),Error(o+"LN10 precision limit exceeded");return C(new T(T.LN10),O)}function w(T){for(var O="";T--;)O+="0";return O}function _(T,O){var I,P,j,M,W,Y,z,V,q,oe=1,Me=10,fe=T,le=fe.d,R=fe.constructor,te=R.precision;if(fe.s<1)throw Error(o+(fe.s?"NaN":"-Infinity"));if(fe.eq(c))return new R(0);if(O==null?(n=!1,V=te):V=O,fe.eq(10))return O==null&&(n=!0),k(R,V);if(V+=Me,R.precision=V,I=h(le),P=I.charAt(0),M=S(fe),Math.abs(M)<15e14){for(;P<7&&P!=1||P==1&&I.charAt(1)>3;)fe=fe.times(T),I=h(fe.d),P=I.charAt(0),oe++;M=S(fe),P>1?(fe=new R("0."+I),M++):fe=new R(P+"."+I.slice(1))}else return z=k(R,V+2,te).times(M+""),fe=_(new R(P+"."+I.slice(1)),V-Me).plus(z),R.precision=te,O==null?(n=!0,C(fe,te)):fe;for(Y=W=fe=v(fe.minus(c),fe.plus(c),V),q=C(fe.times(fe),V),j=3;;){if(W=C(W.times(q),V),z=Y.plus(v(W,new R(j),V)),h(z.d).slice(0,V)===h(Y.d).slice(0,V))return Y=Y.times(2),M!==0&&(Y=Y.plus(k(R,V+2,te).times(M+""))),Y=v(Y,new R(oe),V),R.precision=te,O==null?(n=!0,C(Y,te)):Y;Y=z,j+=2}}function A(T,O){var I,P,j;for((I=O.indexOf("."))>-1&&(O=O.replace(".","")),(P=O.search(/e/i))>0?(I<0&&(I=P),I+=+O.slice(P+1),O=O.substring(0,P)):I<0&&(I=O.length),P=0;O.charCodeAt(P)===48;)++P;for(j=O.length;O.charCodeAt(j-1)===48;)--j;if(O=O.slice(P,j),O){if(j-=P,I=I-P-1,T.e=s(I/p),T.d=[],P=(I+1)%p,I<0&&(P+=p),Pm||T.e<-m))throw Error(i+I)}else T.s=0,T.e=0,T.d=[0];return T}function C(T,O,I){var P,j,M,W,Y,z,V,q,oe=T.d;for(W=1,M=oe[0];M>=10;M/=10)W++;if(P=O-W,P<0)P+=p,j=O,V=oe[q=0];else{if(q=Math.ceil((P+1)/p),M=oe.length,q>=M)return T;for(V=M=oe[q],W=1;M>=10;M/=10)W++;P%=p,j=P-p+W}if(I!==void 0&&(M=l(10,W-j-1),Y=V/M%10|0,z=O<0||oe[q+1]!==void 0||V%M,z=I<4?(Y||z)&&(I==0||I==(T.s<0?3:2)):Y>5||Y==5&&(I==4||z||I==6&&(P>0?j>0?V/l(10,W-j):0:oe[q-1])%10&1||I==(T.s<0?8:7))),O<1||!oe[0])return z?(M=S(T),oe.length=1,O=O-M-1,oe[0]=l(10,(p-O%p)%p),T.e=s(-O/p)||0):(oe.length=1,oe[0]=T.e=T.s=0),T;if(P==0?(oe.length=q,M=1,q--):(oe.length=q+1,M=l(10,p-P),oe[q]=j>0?(V/l(10,W-j)%l(10,j)|0)*M:0),z)for(;;)if(q==0){(oe[0]+=M)==d&&(oe[0]=1,++T.e);break}else{if(oe[q]+=M,oe[q]!=d)break;oe[q--]=0,M=1}for(P=oe.length;oe[--P]===0;)oe.pop();if(n&&(T.e>m||T.e<-m))throw Error(i+S(T));return T}function N(T,O){var I,P,j,M,W,Y,z,V,q,oe,Me=T.constructor,fe=Me.precision;if(!T.s||!O.s)return O.s?O.s=-O.s:O=new Me(T),n?C(O,fe):O;if(z=T.d,oe=O.d,P=O.e,V=T.e,z=z.slice(),W=V-P,W){for(q=W<0,q?(I=z,W=-W,Y=oe.length):(I=oe,P=V,Y=z.length),j=Math.max(Math.ceil(fe/p),Y)+2,W>j&&(W=j,I.length=1),I.reverse(),j=W;j--;)I.push(0);I.reverse()}else{for(j=z.length,Y=oe.length,q=j0;--j)z[Y++]=0;for(j=oe.length;j>W;){if(z[--j]0?M=M.charAt(0)+"."+M.slice(1)+w(P):W>1&&(M=M.charAt(0)+"."+M.slice(1)),M=M+(j<0?"e":"e+")+j):j<0?(M="0."+w(-j-1)+M,I&&(P=I-W)>0&&(M+=w(P))):j>=W?(M+=w(j+1-W),I&&(P=I-j-1)>0&&(M=M+"."+w(P))):((P=j+1)0&&(j+1===W&&(M+="."),M+=w(P))),T.s<0?"-"+M:M}function Q(T,O){if(T.length>O)return T.length=O,!0}function B(T){var O,I,P;function j(M){var W=this;if(!(W instanceof j))return new j(M);if(W.constructor=j,M instanceof j){W.s=M.s,W.e=M.e,W.d=(M=M.d)?M.slice():M;return}if(typeof M=="number"){if(M*0!==0)throw Error(a+M);if(M>0)W.s=1;else if(M<0)M=-M,W.s=-1;else{W.s=0,W.e=0,W.d=[0];return}if(M===~~M&&M<1e7){W.e=0,W.d=[M];return}return A(W,M.toString())}else if(typeof M!="string")throw Error(a+M);if(M.charCodeAt(0)===45?(M=M.slice(1),W.s=-1):W.s=1,u.test(M))A(W,M);else throw Error(a+M)}if(j.prototype=y,j.ROUND_UP=0,j.ROUND_DOWN=1,j.ROUND_CEIL=2,j.ROUND_FLOOR=3,j.ROUND_HALF_UP=4,j.ROUND_HALF_DOWN=5,j.ROUND_HALF_EVEN=6,j.ROUND_HALF_CEIL=7,j.ROUND_HALF_FLOOR=8,j.clone=B,j.config=j.set=K,T===void 0&&(T={}),T)for(P=["precision","rounding","toExpNeg","toExpPos","LN10"],O=0;O=j[O+1]&&P<=j[O+2])this[I]=P;else throw Error(a+I+": "+P);if((P=T[I="LN10"])!==void 0)if(P==Math.LN10)this[I]=new this(P);else throw Error(a+I+": "+P);return this}r=B(r),r.default=r.Decimal=r,c=new r(1),typeof define=="function"&&define.amd?define(function(){return r}):typeof nk<"u"&&nk.exports?nk.exports=r:(e||(e=typeof self<"u"&&self&&self.self==self?self:Function("return this")()),e.Decimal=r)})(dF)});var iH=$o((dBe,KM)=>{"use strict";var uge=Object.prototype.hasOwnProperty,Ea="~";function xx(){}Object.create&&(xx.prototype=Object.create(null),new xx().__proto__||(Ea=!1));function cge(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function aH(e,t,r,n,o){if(typeof r!="function")throw new TypeError("The listener must be a function");var a=new cge(r,n||e,o),i=Ea?Ea+t:t;return e._events[i]?e._events[i].fn?e._events[i]=[e._events[i],a]:e._events[i].push(a):(e._events[i]=a,e._eventsCount++),e}function E_(e,t){--e._eventsCount===0?e._events=new xx:delete e._events[t]}function la(){this._events=new xx,this._eventsCount=0}la.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)uge.call(r,n)&&t.push(Ea?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};la.prototype.listeners=function(t){var r=Ea?Ea+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var o=0,a=n.length,i=new Array(a);o{"use strict";var t5=Symbol.for("react.transitional.element"),r5=Symbol.for("react.portal"),U_=Symbol.for("react.fragment"),W_=Symbol.for("react.strict_mode"),H_=Symbol.for("react.profiler"),q_=Symbol.for("react.consumer"),K_=Symbol.for("react.context"),V_=Symbol.for("react.forward_ref"),G_=Symbol.for("react.suspense"),Y_=Symbol.for("react.suspense_list"),X_=Symbol.for("react.memo"),Z_=Symbol.for("react.lazy"),Xhe=Symbol.for("react.view_transition"),Zhe=Symbol.for("react.client.reference");function as(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case t5:switch(e=e.type,e){case U_:case H_:case W_:case G_:case Y_:case Xhe:return e;default:switch(e=e&&e.$$typeof,e){case K_:case V_:case Z_:case X_:return e;case q_:return e;default:return t}}case r5:return t}}}en.ContextConsumer=q_;en.ContextProvider=K_;en.Element=t5;en.ForwardRef=V_;en.Fragment=U_;en.Lazy=Z_;en.Memo=X_;en.Portal=r5;en.Profiler=H_;en.StrictMode=W_;en.Suspense=G_;en.SuspenseList=Y_;en.isContextConsumer=function(e){return as(e)===q_};en.isContextProvider=function(e){return as(e)===K_};en.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===t5};en.isForwardRef=function(e){return as(e)===V_};en.isFragment=function(e){return as(e)===U_};en.isLazy=function(e){return as(e)===Z_};en.isMemo=function(e){return as(e)===X_};en.isPortal=function(e){return as(e)===r5};en.isProfiler=function(e){return as(e)===H_};en.isStrictMode=function(e){return as(e)===W_};en.isSuspense=function(e){return as(e)===G_};en.isSuspenseList=function(e){return as(e)===Y_};en.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===U_||e===H_||e===W_||e===G_||e===Y_||typeof e=="object"&&e!==null&&(e.$$typeof===Z_||e.$$typeof===X_||e.$$typeof===K_||e.$$typeof===q_||e.$$typeof===V_||e.$$typeof===Zhe||e.getModuleId!==void 0)};en.typeOf=as});var vq=$o((f9e,yq)=>{"use strict";yq.exports=hq()});var ote=Z(J()),ate=Z(b6());var Nt=Z(J());var ft=Z(J());var kr=Z(J()),Xd={github:{emoji:"\u{1F419}",label:"GitHub"},ruby:{emoji:"\u{1F48E}",label:"Ruby"},rails:{emoji:"\u{1F6E4}\uFE0F",label:"Rails"},aws:{emoji:"\u2601\uFE0F",label:"AWS"},gcp:{emoji:"\u{1F310}",label:"GCP"},python:{emoji:"\u{1F40D}",label:"Python"},typescript:{emoji:"\u{1F4D8}",label:"TypeScript"},docker:{emoji:"\u{1F433}",label:"Docker"},kubernetes:{emoji:"\u2638\uFE0F",label:"Kubernetes"}},rv={terminal:{emoji:"\u{1F4BB}",label:"Terminal"},playwright:{emoji:"\u{1F3AD}",label:"Playwright"},filesystem:{emoji:"\u{1F4C1}",label:"Filesystem"},code:{emoji:"\u{1F468}\u200D\u{1F4BB}",label:"Code"},database:{emoji:"\u{1F5C4}\uFE0F",label:"Database"},slack:{emoji:"\u{1F4AC}",label:"Slack"},fetch:{emoji:"\u{1F310}",label:"Fetch"},search:{emoji:"\u{1F50D}",label:"Search"},edit:{emoji:"\u270F\uFE0F",label:"Edit"},translate:{emoji:"\u{1F30D}",label:"Translate"},memory:{emoji:"\u{1F9E0}",label:"Memory"},ui:{emoji:"\u{1F9E9}",label:"Generative UI"}},_m={terminal:{instructions:["github"],tools:["terminal","code"]},webDeveloper:{instructions:["typescript"],tools:["playwright","fetch"]},documentAnalysis:{instructions:["python"],tools:["database","search","code"]},writing:{instructions:["ruby"],tools:["edit","memory"]},translation:{instructions:["ruby","python","typescript"],tools:["translate","code"]},playwright:{instructions:["typescript"],tools:["playwright","fetch"]},research:{instructions:["github"],tools:["fetch","search","memory"]},imageAnalysis:{instructions:["python"],tools:["filesystem","code"]},computerUse:{instructions:["github"],tools:["terminal","playwright"]},productDesign:{instructions:["typescript"],tools:["playwright","code"]}};var yoe=({id:e="mascot"})=>kr.default.createElement("g",{stroke:"none",fill:"none",fillRule:"evenodd",strokeWidth:"1"},kr.default.createElement("g",{transform:"translate(25, 475) scale(-1, 1) rotate(-180) translate(-25, -475) translate(0, 450)"},kr.default.createElement("g",{fillRule:"nonzero"},kr.default.createElement("path",{d:"M421,271.3 C422.733,265.1 423.667,244.633 423.8,209.9 C423.9,173.4 423.8,142.1 423.5,140.4 C423.1,137.9 412.5,126.8 373.1,87.2 C345.6,59.7 321.7,36.3 319.8,35.3 C316.7,33.6 312.5,33.5 250,33.5 C186.5,33.5 183.3,33.6 178.2,35.4 C173.5,37.2 168.3,42.1 125.2,85.3 C69.3,141.4 75.6,134.9 73.7,138.7 C72.3,141.3 72,147.2 71.8,178.6 C71.3,243.6 71.8,276 73.4,276 C74.067,276 99.6,304.854 150,362.563 L350.015,362.563 L421,271.3 Z",fill:"#EB5555",stroke:"#000000",strokeWidth:"12"})),kr.default.createElement("path",{d:"M216.5,202.5 C213.4,199.5 213.4,198.7 216.5,193.4 C223.2,182 248.2,176 264.5,181.9 C273,185 280.3,190.1 282.4,194.5 C284,197.9 284,198.3 282.5,200.6 C281.6,202 279.8,203.6 278.5,204.2 C276.4,205.1 275.4,204.7 270.1,200.8 C263,195.4 254.7,193.3 244.4,194.4 C236.1,195.3 234.3,196 228.6,200.9 C223.1,205.6 220,206.1 216.5,202.5 Z",fill:"#000000",fillRule:"nonzero"}),kr.default.createElement("path",{d:"M177.8,484.5 C169.1,482.1 162,475.2 157.7,465 C156.2,461.4 151.9,446.6 148.1,432 C144.3,417.4 140.7,404.3 140.1,402.8 L139,400 L94.8,400 C70.4,400 49.5,399.7 48.2,399.4 C45.1,398.5 42.7,393.8 43.9,390.8 C45.1,387.9 49.4,383.3 54,379.9 C68.7,369.2 86.3,364.8 120,363.4 C126.067,363.2 134.065,362.921 143.995,362.563 L350.015,362.563 C367.433,363.767 377.5,364.1 377.5,364.1 C411,365.2 433.1,371.5 446.2,383.8 C453.8,390.9 455.1,394.7 451.3,399 C451,399.3 429.6,399.7 403.7,400 L356.6,400.5 L353.3,412.5 C351.5,419.1 348.2,431.3 346.1,439.5 C339.9,463 336.7,470.5 329.4,477.5 C322.9,483.8 315.7,486.3 305.5,485.8 C298.1,485.4 296.1,484.7 280.5,477.8 C271.2,473.7 261.7,469.7 259.5,468.9 C250.9,466.1 238.1,467.9 224.9,473.8 C197.3,486.1 189.8,487.8 177.8,484.5 Z",stroke:"#000000",strokeWidth:"11",fill:"#000000",fillRule:"nonzero"}),kr.default.createElement("g",{transform:"translate(75.105, 196.182)"},kr.default.createElement("ellipse",{fill:"#F5E6D3",cx:"87",cy:"55",rx:"35",ry:"29"}),kr.default.createElement("ellipse",{fill:"#5D4037",cx:"87",cy:"57",rx:"20",ry:"20"}),kr.default.createElement("ellipse",{fill:"#2D1F1F",cx:"87",cy:"57",rx:"12",ry:"12"}),kr.default.createElement("ellipse",{fill:"#FFFFFF",cx:"80",cy:"51",rx:"5",ry:"5"}),kr.default.createElement("ellipse",{fill:"#F5E6D3",cx:"259",cy:"55",rx:"35",ry:"29"}),kr.default.createElement("ellipse",{fill:"#5D4037",cx:"259",cy:"57",rx:"20",ry:"20"}),kr.default.createElement("ellipse",{fill:"#2D1F1F",cx:"259",cy:"57",rx:"12",ry:"12"}),kr.default.createElement("ellipse",{fill:"#FFFFFF",cx:"252",cy:"51",rx:"5",ry:"5"})),kr.default.createElement("g",{transform:"translate(75.105, 196.182)",fillRule:"nonzero"},kr.default.createElement("g",{transform:"translate(267.395, 54.835) scale(-1, 1) translate(-267.395, -54.835)"},kr.default.createElement("path",{d:"M346.895,99.881 L335.287,108.67 L292.495,108.67 L211.805,108.67 C194.861,92.394 186.922,84.257 187.99,84.257 C188.99,84.257 187.689,77.518 187.99,71.118 C188.99,54.518 196.996,38.618 211.805,23.818 C219.711,15.918 222.813,13.518 230.118,10.018 C242.025,4.118 250.431,1.818 262.839,1.118 C274.147,0.518 285.354,2.218 295.561,6.018 C308.67,10.918 327.482,26.818 335.287,39.618 C342.092,50.918 346.895,65.818 346.895,76.018 C346.895,82.818 346.895,90.772 346.895,99.881 Z",stroke:"#000000",strokeWidth:"8",fill:"#000000",fillOpacity:"0.92"})),kr.default.createElement("path",{d:"M158.895,99.881 L147.295,108.67 L104.531,108.67 L23.895,108.67 C6.961,92.394 -0.972,84.257 0.095,84.257 C1.095,84.257 -0.205,77.518 0.095,71.118 C1.095,54.518 9.095,38.618 23.895,23.818 C31.795,15.918 34.895,13.518 42.195,10.018 C54.095,4.118 62.495,1.818 74.895,1.118 C86.195,0.518 97.395,2.218 107.595,6.018 C120.695,10.918 139.495,26.818 147.295,39.618 C154.095,50.918 158.895,65.818 158.895,76.018 C158.895,82.818 158.895,90.772 158.895,99.881 Z",stroke:"#000000",strokeWidth:"8",fill:"#000000",fillOpacity:"0.92"})),kr.default.createElement("g",{transform:"translate(75.105, 196.182)",fillRule:"nonzero"},kr.default.createElement("path",{d:"M187.895,73.418 C187.895,60.818 195.095,43.418 205.495,30.818 C213.379,21.259 220.29,15.351 230.066,10.615 C233.275,8.66 236.386,7.08 239.229,6.018 C246.892,3.165 255.119,1.496 263.529,1.095 C267.063,0.859 270.58,0.912 274.131,1.261 C285.374,2.105 293.475,4.47 304.672,10.018 C311.734,13.402 314.868,15.757 322.213,23.049 L322.795,23.618 C326.306,27.085 329.397,30.586 332.082,34.15 L332.148,34.235 C341.116,45.994 346.03,58.349 346.8,71.118 C346.957,74.467 346.676,77.909 346.515,80.429 C346.693,80.646 346.917,80.701 347.195,80.618 C347.366,80.542 348.039,80.501 349.213,80.495 L349.775,80.495 C352.888,80.507 358.769,80.715 367.418,81.118 C374.646,86.469 378.26,91.703 378.26,96.818 C378.26,101.933 374.646,107.042 367.418,112.146 L15.403,112.146 L-20.38,113.348 C-27.807,110.322 -31.52,105.629 -31.52,99.27 C-31.52,92.911 -27.807,88.087 -20.38,84.798 C-13.63,84.605 -8.537,84.463 -5.101,84.373 C-5.115,84.296 -5.084,84.257 -5.01,84.257 C-4.01,84.257 -5.311,77.518 -5.01,71.118 C-4.01,54.518 3.996,38.618 18.805,23.818 C26.711,15.918 29.813,13.518 37.118,10.018 C49.025,4.118 57.431,1.818 69.839,1.118 C72.166,0.994 74.489,0.968 76.8,1.038 C76.165,1.058 75.53,1.084 74.895,1.118 C62.495,1.818 54.095,4.118 42.195,10.018 C34.895,13.518 31.795,15.918 23.895,23.818 C9.095,38.618 1.095,54.518 0.095,71.118 C-0.205,77.518 1.095,84.257 0.095,84.257 C-0.4,84.257 -2.131,84.296 -5.101,84.373 C-4.938,85.42 3.031,93.518 18.805,108.67 L142.287,108.67 L153.895,99.881 L153.895,76.018 C153.895,65.818 149.092,50.918 142.287,39.618 C134.482,26.818 115.67,10.918 102.561,6.018 C94.455,3 85.717,1.307 76.8,1.038 C87.451,0.716 97.968,2.432 107.595,6.018 C120.695,10.918 139.495,26.818 147.295,39.618 C154.095,50.918 158.895,65.818 158.895,76.018 L158.895,80.418 L164.995,80.418 C168.395,80.118 174.995,79.818 179.495,79.818 L187.895,79.818 L187.895,99.881 L199.502,108.67 L322.984,108.67 C339.929,92.394 347.867,84.257 346.8,84.257 C346.323,84.257 346.369,82.725 346.515,80.429 C346.051,79.868 345.895,78.223 345.895,75.118 C345.895,59.873 341.479,46.625 332.082,34.15 L331.696,33.647 C329.117,30.321 326.212,27.043 322.984,23.818 C322.722,23.556 322.465,23.299 322.213,23.049 C316.441,17.437 312.579,14.708 306.095,11.418 C294.424,5.583 284.144,2.245 274.131,1.261 C273.417,1.207 272.691,1.16 271.95,1.118 C269.132,0.968 266.321,0.962 263.529,1.095 C257.389,1.506 251.198,2.792 244.695,4.918 C239.073,6.731 234.301,8.563 230.066,10.615 C218.478,17.668 205.615,29.594 199.502,39.618 C192.698,50.917 187.895,65.817 187.895,76.017 L187.895,73.418 Z",stroke:"#000000",strokeWidth:"8",fill:"#000000"})),kr.default.createElement("g",{transform:"translate(83.563, 252.212)",fill:"#FFFFFF",fillRule:"nonzero"},kr.default.createElement("path",{d:"M12.837,35.288 C13.137,33.988 14.437,31.888 15.637,30.788 L17.837,28.788 L15.637,26.788 C14.437,25.688 13.137,23.588 12.837,22.288 C12.037,19.088 10.637,19.088 9.437,22.188 C8.937,23.488 7.537,25.588 6.237,26.788 C4.037,28.788 4.037,28.988 5.737,29.988 C6.837,30.488 8.237,32.488 9.037,34.388 C10.737,38.388 11.937,38.688 12.837,35.288 Z M29.237,33.088 C30.137,29.688 31.837,27.088 34.937,24.088 L39.337,19.888 L36.337,17.788 C33.437,15.588 28.437,7.288 28.437,4.288 C28.437,2.188 26.537,2.388 25.837,4.588 C23.937,10.388 21.637,14.388 18.337,17.188 L14.537,20.388 L17.337,22.088 C19.837,23.588 24.337,30.988 25.837,36.088 C26.737,39.088 27.937,37.988 29.237,33.088 Z M10.937,12.488 L13.037,9.288 L10.937,6.088 C8.837,2.788 7.437,1.888 7.437,3.988 C7.437,4.588 6.537,6.088 5.437,7.288 L3.437,9.488 L5.437,11.288 C6.537,12.288 7.437,13.688 7.437,14.488 C7.437,16.688 8.837,15.888 10.937,12.488 Z"}),kr.default.createElement("path",{d:"M203.437,36.388 C203.437,35.588 204.637,33.588 206.037,31.888 L208.637,28.788 L206.037,25.688 C204.637,23.988 203.437,21.988 203.437,21.188 C203.437,18.588 201.437,19.788 200.037,23.188 C199.237,25.088 197.837,27.088 196.737,27.688 C195.037,28.688 195.037,28.788 197.037,30.188 C198.237,30.988 199.737,33.088 200.437,34.788 C201.737,37.888 203.437,38.788 203.437,36.388 Z M220.837,32.588 C221.937,29.288 224.237,25.788 226.737,23.388 C229.737,20.488 230.537,19.288 229.437,18.988 C226.637,17.988 222.437,12.588 220.737,7.688 C219.737,4.988 218.737,2.788 218.337,2.788 C218.037,2.788 216.737,5.288 215.537,8.288 C214.337,11.288 211.737,15.088 209.837,16.688 C205.937,20.188 205.637,21.388 208.437,22.288 C210.937,23.088 214.737,28.788 216.437,34.088 C217.037,36.088 217.937,37.788 218.237,37.788 C218.637,37.788 219.837,35.388 220.837,32.588 Z M201.137,14.088 C201.437,13.088 202.437,11.488 203.337,10.488 C204.337,9.288 204.537,8.388 203.837,7.988 C203.237,7.588 202.237,6.288 201.537,5.088 C200.137,2.388 198.837,2.188 198.037,4.588 C197.737,5.488 196.937,6.988 196.337,7.888 C195.337,9.288 195.437,9.888 196.737,11.288 C197.637,12.188 198.437,13.588 198.437,14.388 C198.437,16.388 200.337,16.188 201.137,14.088 Z"}))));function In({size:e=200,instructions:t=[],tools:r=[],showDecorations:n=!1,className:o="",hat:a,hatAccessory:i,heldItem:s,theme:l,customColors:u}){return kr.default.createElement("div",{className:`inline-flex flex-col items-center ${o}`},n&&t.length>0&&kr.default.createElement("div",{className:"flex gap-1 mb-1"},t.map(c=>{let d=Xd[c];return d?kr.default.createElement("span",{key:c,className:"text-sm",title:d.label},d.emoji):null})),kr.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 500 500",width:e,height:e,role:"img","aria-label":"Active Agent mascot"},kr.default.createElement("title",null,"ActiveAgent"),kr.default.createElement(yoe,null)),n&&r.length>0&&kr.default.createElement("div",{className:"flex gap-1 mt-1"},r.map(c=>{let d=rv[c];return d?kr.default.createElement("span",{key:c,className:"text-sm",title:d.label},d.emoji):null})))}var Ha=Z(J());var Ns=Z(J()),w6=(0,Ns.createContext)();function S6({children:e}){let[t,r]=(0,Ns.useState)(()=>{let o=localStorage.getItem("dashboard-theme");return o?o==="dark":window.matchMedia("(prefers-color-scheme: dark)").matches});(0,Ns.useEffect)(()=>{localStorage.setItem("dashboard-theme",t?"dark":"light")},[t]),(0,Ns.useEffect)(()=>{let o=window.matchMedia("(prefers-color-scheme: dark)"),a=i=>{localStorage.getItem("dashboard-theme")||r(i.matches)};return o.addEventListener("change",a),()=>o.removeEventListener("change",a)},[]);let n=()=>r(!t);return Ns.default.createElement(w6.Provider,{value:{darkMode:t,toggleDarkMode:n}},e)}function ut(){let e=(0,Ns.useContext)(w6);if(!e)throw new Error("useTheme must be used within a ThemeProvider");return e}function Cm({name:e,subtitle:t,badge:r,accentColor:n,stats:o=[],footer:a,onClick:i,actions:s}){let{darkMode:l}=ut(),[u,c]=Ha.default.useState(!1),d={cardBg:l?"rgba(255,255,255,0.05)":"#ffffff",border:l?"rgba(255,255,255,0.1)":"#e5e7eb",borderHover:l?"rgba(255,255,255,0.2)":"#d1d5db",tileBg:l?"rgba(255,255,255,0.05)":"#f9fafb",textPrimary:l?"#f9fafb":"#111827",textSecondary:l?"#9ca3af":"#6b7280",textMuted:l?"#6b7280":"#9ca3af"},p=f=>f==="good"?l?"#4ade80":"#16a34a":f==="warn"?l?"#facc15":"#ca8a04":f==="bad"?l?"#f87171":"#dc2626":f==="muted"?d.textMuted:d.textPrimary;return Ha.default.createElement("div",{"data-testid":"agent-card","data-agent-name":typeof e=="string"?e:void 0,onClick:i,onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),role:i?"button":void 0,tabIndex:i?0:void 0,onKeyDown:f=>{i&&(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),i(f))},style:{background:d.cardBg,borderTop:`1px solid ${u?d.borderHover:d.border}`,borderRight:`1px solid ${u?d.borderHover:d.border}`,borderBottom:`1px solid ${u?d.borderHover:d.border}`,borderLeft:n?`4px solid ${n}`:`1px solid ${u?d.borderHover:d.border}`,borderRadius:"12px",padding:"16px",cursor:i?"pointer":"default",transition:"border-color 0.15s ease, box-shadow 0.15s ease",boxShadow:u&&i?"0 4px 16px rgba(0,0,0,0.08)":"none",display:"flex",flexDirection:"column",gap:"12px"}},Ha.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"8px"}},Ha.default.createElement("div",{style:{minWidth:0}},Ha.default.createElement("div",{style:{fontWeight:600,fontSize:"15px",color:u&&i?"#ef4444":d.textPrimary,transition:"color 0.15s ease",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e},e),t&&Ha.default.createElement("div",{style:{fontSize:"13px",color:d.textSecondary,marginTop:"2px",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"}},t)),r&&Ha.default.createElement("div",{style:{flexShrink:0}},r)),o.length>0&&Ha.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:"6px"}},o.map(f=>Ha.default.createElement("div",{key:f.label,title:f.title,style:{background:d.tileBg,borderRadius:"8px",padding:"6px 8px",textAlign:"center"}},Ha.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,lineHeight:1.2,color:p(f.tone)}},f.value),Ha.default.createElement("div",{style:{fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.04em",color:d.textMuted,whiteSpace:"nowrap"}},f.label)))),a&&Ha.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"8px",fontSize:"12px",color:d.textMuted}},a),s&&Ha.default.createElement("div",{style:{opacity:u?1:0,transition:"opacity 0.15s ease"}},s))}function mT(e){return e==null?"muted":e>=.85?"good":e>=.7?"warn":"bad"}var Vr=Z(J());var Fo={chevronRight:">",chevronDown:"v",chevronUp:"^",arrow:"->",arrowLeft:"<-",pipe:"|",corner:"+",branch:"|-",success:"[+]",error:"[!]",warning:"[?]",info:"[i]",pending:"[ ]",active:"[*]",add:"+",remove:"-",edit:"*",view:"@",run:">",stop:"x",refresh:"~",trace:"->",span:"|",metric:"#",log:">",agent:"@",action:"#",time:":",cost:"$",tokens:"T",memory:"M",nav:{agents:"@",newAgent:"+",demo:">",traces:"->",metrics:"#",evaluations:"=",interactions:"<>",benchmarks:"%%",replay:"[>]",tools:"[]",mcp:"{}",docs:"?",github:"*"},spans:{root:">",prompt:"*",generate:"|>",llm:">>",thinking:"..",tool:"[]",response:"<|"}};var Pt={mono:"'SF Mono', 'Fira Code', 'Consolas', monospace",sizes:{xs:"10px",sm:"11px",base:"13px",md:"14px",lg:"16px",xl:"20px",xxl:"24px"},weights:{normal:400,medium:500,semibold:600,bold:700}};var U="var(--font-mono)",eu=e=>e>=1?"success":e>=.7?"warning":"error",Dn={success:{strong:"var(--color-success)",soft:"var(--color-success-soft)",text:"var(--color-success-text)"},warning:{strong:"var(--color-warning)",soft:"var(--color-warning-soft)",text:"var(--color-warning-text)"},error:{strong:"var(--color-error)",soft:"var(--color-error-soft)",text:"var(--color-error-text)"},info:{strong:"var(--color-info)",soft:"var(--color-info-soft)",text:"var(--color-info-text)"},muted:{strong:"var(--color-text-muted)",soft:"var(--color-muted)",text:"var(--color-text-secondary)"},accent:{strong:"var(--color-accent-ui)",soft:"var(--color-accent-ui-tint)",text:"var(--color-accent-ui)"},system:{strong:"var(--color-system)",soft:"var(--color-system-soft)",text:"var(--color-system-text)"},dev:{strong:"var(--color-dev)",soft:"var(--color-dev-soft)",text:"var(--color-dev-text)"}},voe={active:"success",complete:"success",completed:"success",ready:"success",passed:"success",draft:"warning",pending:"warning",queued:"warning",waiting:"warning",running:"info",in_progress:"info",failed:"error",error:"error",expired:"error",archived:"muted",cancelled:"muted",canceled:"muted",skipped:"muted"},al=e=>voe[String(e||"").toLowerCase()]||"muted",xoe={user:{tone:"info",label:"User"},assistant:{tone:"accent",label:"Assistant"},tool:{tone:"warning",label:"Tool"},system:{tone:"system",label:"System"},developer:{tone:"dev",label:"Dev"}},k6=e=>xoe[e]||{tone:"muted",label:e},nv={object:"=",sample:"~",pass:Fo.success,fault:Fo.error,info:Fo.info,on:"[x]",off:"[ ]",link:Fo.arrow,chevron:Fo.chevronRight};function wa({kind:e="pass",open:t=!1,color:r,size:n=12,weight:o=700,style:a,title:i}){return e==="chevron"?Vr.default.createElement("span",{className:"aa-chevron","data-open":t?"true":"false",title:i,style:{fontFamily:U,fontSize:n,color:r||"var(--color-text-muted)",flexShrink:0,...a}},nv.chevron):Vr.default.createElement("span",{title:i,style:{fontFamily:U,fontSize:n,fontWeight:o,color:r||(e==="fault"?"var(--color-error)":e==="info"?"var(--color-info)":e==="pass"?"var(--color-success)":"var(--color-text-muted)"),flexShrink:0,...a}},nv[e]||e)}function ke({tone:e="muted",size:t=11,children:r,title:n,style:o,testId:a}){let i=Dn[e]||Dn.muted;return Vr.default.createElement("span",{"data-testid":a,title:n,style:{display:"inline-flex",alignItems:"center",padding:"2px 7px",borderRadius:4,fontFamily:U,fontSize:t,fontWeight:600,whiteSpace:"nowrap",background:i.soft,color:i.text,...o}},r)}function Ue({children:e,size:t=11,color:r="var(--color-text-secondary)",spacing:n="0.06em",style:o,as:a="span",htmlFor:i}){return Vr.default.createElement(a,{htmlFor:i,style:{fontFamily:U,fontSize:t,fontWeight:600,letterSpacing:n,textTransform:"uppercase",color:r,...o}},e)}function jn({selected:e=!1,onClick:t,children:r,square:n=!1,mono:o=!1,disabled:a=!1,title:i,style:s,testId:l}){return Vr.default.createElement("button",{type:"button","data-testid":l,onClick:a?void 0:t,disabled:a,"aria-disabled":a||void 0,title:i,style:{padding:"4px 10px",borderRadius:n?6:999,cursor:t&&!a?"pointer":"default",fontFamily:o?U:"inherit",fontSize:o?11:12,fontWeight:o?400:500,background:e?"var(--color-accent-ui-tint)":"var(--color-card)",border:`1px solid ${e?"var(--color-accent-ui)":"var(--color-border)"}`,color:e?"var(--color-accent-ui)":o?"var(--color-text-muted)":"var(--color-text-cell)",opacity:a?.5:void 0,...s}},r)}function qi({options:e,value:t,onChange:r,style:n}){return Vr.default.createElement("div",{style:{display:"flex",gap:4,...n},role:"group"},e.map(o=>{let a=o.value===t;return Vr.default.createElement("button",{key:o.value,type:"button",onClick:()=>r(o.value),"aria-pressed":a,style:{padding:"6px 12px",borderRadius:8,cursor:"pointer",fontSize:13,fontWeight:500,background:"var(--color-card)",border:`1px solid ${a?"var(--color-accent-ui)":"var(--color-border)"}`,color:a?"var(--color-accent-ui)":"var(--color-text-cell)"}},o.label)}))}function ce({variant:e="secondary",size:t="md",children:r,onClick:n,disabled:o=!1,title:a,type:i="button",style:s,testId:l}){let c={padding:t==="sm"?"6px 12px":"8px 14px",borderRadius:8,cursor:o?"not-allowed":"pointer",fontSize:13,fontWeight:500,opacity:o?.5:1,whiteSpace:"nowrap",fontFamily:"inherit"},d={primary:{background:"var(--color-accent-ui)",color:"var(--color-on-accent)",border:"1px solid transparent"},secondary:{background:"transparent",color:"var(--color-text-cell)",border:"1px solid var(--color-border-strong)"},danger:{background:"transparent",color:"var(--color-error)",border:"1px solid transparent"},ghost:{background:"transparent",color:"var(--color-text-secondary)",border:"1px solid transparent"}};return Vr.default.createElement("button",{type:i,"data-testid":l,onClick:n,disabled:o,title:a,style:{...c,...d[e]||d.secondary,...s}},r)}function je({children:e,padding:t=20,style:r,className:n,testId:o,...a}){return Vr.default.createElement("div",{"data-testid":o,className:n,style:{background:"var(--color-card)",border:"1px solid var(--color-border)",borderRadius:12,padding:t,...r},...a},e)}function Am({label:e,value:t,sub:r,valueColor:n,valueSize:o=32,testId:a}){return Vr.default.createElement(je,{testId:a},Vr.default.createElement(Ue,{size:11,spacing:"0.05em"},e),Vr.default.createElement("div",{style:{marginTop:8,fontFamily:U,fontSize:o,fontWeight:700,lineHeight:1.1,color:n||"var(--color-text-primary)"}},t),r!=null&&Vr.default.createElement("div",{style:{marginTop:8,fontSize:13,color:"var(--color-text-secondary)"}},r))}function Zr({title:e,meta:t,children:r,style:n,testId:o,bodyStyle:a}){return Vr.default.createElement("div",{"data-testid":o,style:{border:"1px solid var(--color-border-light)",borderRadius:10,overflow:"hidden",minWidth:0,...n}},(e||t)&&Vr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"8px 12px",background:"var(--color-muted)"}},e&&Vr.default.createElement(Ue,null,e),t&&Vr.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},t)),Vr.default.createElement("div",{style:a},r))}function tu({passed:e,total:t,label:r,labelWidth:n=128,width:o,height:a=6,color:i,valueWidth:s=38,style:l}){let u=t?e/t:0,c=i||Dn[eu(u)].strong;return Vr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,...l}},r!=null&&Vr.default.createElement("span",{style:{fontFamily:U,fontSize:10,color:"var(--color-text-muted)",width:n,flexShrink:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:r},r),Vr.default.createElement("span",{style:{flex:o?void 0:1,width:o,height:a,borderRadius:999,background:"var(--color-muted)",overflow:"hidden",flexShrink:0}},Vr.default.createElement("span",{style:{display:"block",width:`${Math.round(u*100)}%`,height:"100%",borderRadius:999,background:c}})),Vr.default.createElement("span",{style:{fontFamily:U,fontSize:11,fontWeight:600,width:s,textAlign:"right",color:c}},e,"/",t))}function Z1({parts:e=[],total:t=0,height:r=4,radius:n=2,style:o,testId:a,title:i,...s}){return Vr.default.createElement("div",{"data-testid":a,title:i,style:{display:"flex",height:r,borderRadius:n,overflow:"hidden",background:"var(--color-border-light)",...o},...s},e.map((l,u)=>Vr.default.createElement("span",{key:u,style:{width:`${t>0?100*(Number(l.value)||0)/t:0}%`,background:(Dn[l.tone]||Dn.muted).strong,transition:"width 300ms"}})))}function Gr({children:e,onClick:t,href:r="#",color:n="var(--color-info)",size:o=11,style:a,title:i,testId:s}){return Vr.default.createElement("a",{href:r,"data-testid":s,title:i,onClick:l=>{t&&(l.preventDefault(),t(l))},style:{fontFamily:U,fontSize:o,color:n,textDecoration:"none",...a}},e," ",nv.link)}function Jr({children:e,style:t}){return Vr.default.createElement("div",{style:{padding:"20px 12px",fontFamily:U,fontSize:11,color:"var(--color-text-muted)",textAlign:"center",...t}},e)}var il="~ estimated from tokens \xD7 model rates",J1=e=>e!=null&&e!==""&&Number.isFinite(Number(e)),A6=e=>Math.sign(e)*Math.round(Number(Math.abs(e).toFixed(9))),Ts=e=>J1(e)?`${A6(Number(e)*100)}%`:"\u2014",Vn=(e,t)=>{let r=Number(t)||0;if(r<=0)return"\u2014";let n=Number(e)||0;return`${n}/${r} \xB7 ${A6(n*100/r)}%`},aa=e=>Ts(e),Q1=e=>`pass \u2265 ${Ts(e)}`,Pr=(e,{estimated:t=!1}={})=>{if(!J1(e))return"\u2014";let r=Number(e),n=r===0?2:Math.abs(r)<.001?6:4;return`${t?"~":""}$${r.toFixed(n)}`},_6=e=>Math.round(Number(e)||0).toLocaleString("en-US"),C6=e=>{let[t,r=""]=String(Number(Number(e).toFixed(4))).split(".");return`$${t}.${r.padEnd(2,"0")}/M`},boe=["pattern","default"],Em=({inputTokens:e,outputTokens:t,rate:r}={})=>{if(!r||!J1(r.input)||!J1(r.output))return"estimated from tokens \xD7 model rates";let n=r.source||"catalog";return`estimated: ${_6(e)} in \xD7 ${C6(r.input)} + ${_6(t)} out \xD7 ${C6(r.output)} \xB7 ${n} rate${boe.includes(n)?" (fallback rate)":""}`};var woe=[{value:"recent",label:"Recently updated"},{value:"popular",label:"Most runs"},{value:"longest",label:"Longest average"},{value:"cost",label:"Highest cost"},{value:"tokens",label:"Most tokens"}];function gT({agents:e,meta:t,onSelect:r,onNew:n,onBrowseTemplates:o,onDuplicate:a,onDelete:i,onRefresh:s,sort:l="recent",onSortChange:u,isLoading:c}){let[d,p]=(0,ft.useState)(""),[f,m]=(0,ft.useState)(""),[y,b]=(0,ft.useState)(""),g=e.filter(w=>{let _=!d||w.name.toLowerCase().includes(d.toLowerCase())||w.description?.toLowerCase().includes(d.toLowerCase()),A=!f||w.provider===f,C=!y||w.status===y;return _&&A&&C}),h=w=>{let _=new Date(w),C=new Date-_,N=Math.floor(C/(1e3*60*60*24));return N===0?"Today":N===1?"Yesterday":N<7?`${N} days ago`:_.toLocaleDateString()},v=w=>w==null?"\u2014":w<1e3?`${Math.round(w)}ms`:`${(w/1e3).toFixed(1)}s`,x=w=>w==null?"\u2014":w>=1e6?`${(w/1e6).toFixed(1)}M`:w>=1e3?`${(w/1e3).toFixed(1)}k`:`${w}`,S=w=>w==null?"\u2014":w>0&&w<.01?"<$0.01":`$${w.toFixed(2)}`,k=w=>{if(!w)return"\u2014";let _=Math.floor((new Date-new Date(w))/(1e3*60*60*24));return _<=0?"Today":_<30?`${_}d ago`:new Date(w).toLocaleDateString()};return ft.default.createElement("div",{className:"space-y-6"},ft.default.createElement("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4"},ft.default.createElement("div",{className:"flex-1 flex items-center space-x-4"},ft.default.createElement("div",{className:"relative flex-1 max-w-md"},ft.default.createElement("input",{type:"text",placeholder:"Search agents...",value:d,onChange:w=>p(w.target.value),className:"w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent"}),ft.default.createElement("svg",{className:"absolute left-3 top-2.5 h-5 w-5 text-gray-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"}))),ft.default.createElement("select",{value:f,onChange:w=>m(w.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},ft.default.createElement("option",{value:""},"All Providers"),t.providers?.map(w=>ft.default.createElement("option",{key:w,value:w},w.charAt(0).toUpperCase()+w.slice(1)))),ft.default.createElement("select",{value:y,onChange:w=>b(w.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},ft.default.createElement("option",{value:""},"All Status"),ft.default.createElement("option",{value:"active"},"Active"),ft.default.createElement("option",{value:"draft"},"Draft"),ft.default.createElement("option",{value:"archived"},"Archived")),ft.default.createElement("select",{value:l,onChange:w=>u?.(w.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500",title:"Rank agents by their scorecard"},woe.map(w=>ft.default.createElement("option",{key:w.value,value:w.value},w.label)))),ft.default.createElement("div",{className:"flex items-center space-x-3"},ft.default.createElement("button",{onClick:s,disabled:c,className:"p-2 text-gray-500 hover:text-gray-700 hover:bg-gray-100 rounded-lg transition-colors"},ft.default.createElement("svg",{className:`h-5 w-5 ${c?"animate-spin":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"}))),ft.default.createElement("button",{onClick:o,className:"flex items-center space-x-2 px-4 py-2 border border-gray-300 text-gray-700 rounded-lg hover:bg-gray-50 transition-colors"},ft.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"})),ft.default.createElement("span",null,"Browse Templates")),ft.default.createElement("button",{onClick:n,className:"flex items-center space-x-2 px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors"},ft.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})),ft.default.createElement("span",null,"New Agent")))),g.length>0?ft.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6"},g.map(w=>{let _=w.stats||{},A=_.run_sources||[],C=A.length?`Counted from ${A.map(N=>N==="platform"?"dashboard runs":"reported telemetry").join(" + ")}`:void 0;return ft.default.createElement(Cm,{key:w.id,name:w.name,subtitle:w.description||"No description",badge:ft.default.createElement(ke,{tone:al(w.status)},w.status),onClick:()=>r(w),stats:[{label:`Runs ${_.window_days||30}d`,value:_.runs??0,title:C},{label:"Success",value:_.success_rate!=null?`${Math.round(_.success_rate)}%`:"\u2014",tone:mT(_.success_rate!=null?_.success_rate/100:null)},{label:"Avg time",value:v(_.avg_duration_ms)},{label:"Eval",title:_.eval_samples_evaluated?`${Vn(_.eval_samples_passed,_.eval_samples_evaluated)} passed over ${_.eval_runs??"the"} current evaluation${_.eval_runs===1?"":"s"}${_.eval_not_counted?` \xB7 ${_.eval_not_counted} stale or archived not counted`:""}`:_.eval_not_counted?`${_.eval_not_counted} evaluation${_.eval_not_counted===1?"":"s"} stale or archived, none counted`:"No evaluation counted yet",value:Ts(_.eval_score),tone:mT(_.eval_score)},{label:"Tokens",value:x(_.tokens)},{label:"Cost",value:S(_.cost),title:"Estimated from token counts at each model's published rates",tone:_.cost==null?"muted":void 0}],footer:ft.default.createElement(ft.default.Fragment,null,ft.default.createElement("span",{style:{display:"flex",alignItems:"center",gap:"6px",minWidth:0}},ft.default.createElement(ke,{tone:"muted",style:{flexShrink:0}},w.provider),ft.default.createElement("span",{title:w.model,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},w.model)),ft.default.createElement("span",{style:{whiteSpace:"nowrap"},title:`Updated ${h(w.updatedAt||w.updated_at)}`},_.last_run_at?`Last run ${k(_.last_run_at)}`:`Updated ${h(w.updatedAt||w.updated_at)}`)),actions:ft.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",fontSize:"13px"}},ft.default.createElement("button",{onClick:N=>{N.stopPropagation(),a(w.id)},className:"text-gray-500 hover:text-red-600 transition-colors"},"Duplicate"),ft.default.createElement("button",{onClick:N=>{N.stopPropagation(),i(w.id)},className:"text-red-500 hover:text-red-700 transition-colors"},"Delete"))})})):ft.default.createElement("div",{className:"text-center py-16"},ft.default.createElement("div",{className:"inline-block mb-4"},ft.default.createElement(In,{size:100})),ft.default.createElement("h3",{className:"text-lg font-medium text-gray-900 mb-2"},e.length===0?"No agents yet":"No matching agents"),ft.default.createElement("p",{className:"text-gray-500 mb-6"},e.length===0?"Create your first AI agent to get started":"Try adjusting your search or filters"),e.length===0&&ft.default.createElement("div",{className:"flex items-center justify-center space-x-4"},ft.default.createElement("button",{onClick:o,className:"inline-flex items-center space-x-2 px-6 py-3 border-2 border-red-500 text-red-600 rounded-lg hover:bg-red-50 transition-colors"},ft.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"})),ft.default.createElement("span",null,"Browse Templates")),ft.default.createElement("span",{className:"text-gray-400"},"or"),ft.default.createElement("button",{onClick:n,className:"inline-flex items-center space-x-2 px-6 py-3 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors"},ft.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})),ft.default.createElement("span",null,"Create From Scratch")))))}var ye=Z(J());function E6(e,{ttlMs:t,keep:r=()=>!0,now:n=Date.now}){let o=new Map,a=i=>{let s=o.get(i);if(s&&(s.expiresAt===null||n()(o.get(i)===l&&(r(u)?l.expiresAt=n()+t:o.delete(i)),u),u=>{throw o.get(i)===l&&o.delete(i),u}),o.set(i,l),l.promise};return a.clear=()=>o.clear(),a}var Nm={openai:["gpt-5.1","gpt-5","gpt-5-mini","gpt-5-nano"],anthropic:["claude-opus-5","claude-fable-5","claude-sonnet-5","claude-opus-4-8","claude-haiku-4-5"],ollama:["qwen3:8b","llama3.2","mistral","gemma3"],openrouter:["anthropic/claude-sonnet-4.5","openai/gpt-5.1","meta-llama/llama-3.3-70b-instruct"]},R1=Object.keys(Nm),Soe=300*1e3,N6=E6(koe,{ttlMs:Soe,keep:e=>e!==null});async function T6(e){return await N6(e)??(Nm[e]||[])}function hT(){N6.clear()}async function koe(e){try{let t=await fetch(`/api/provider_models?provider=${encodeURIComponent(e)}`);if(t.ok){let r=await t.json();if(Array.isArray(r.models)&&r.models.length>0)return r.models}}catch{}return null}var ew=Z(J());function bc(e){let[t,r]=(0,ew.useState)(Nm),n=e.join(",");return(0,ew.useEffect)(()=>{let o=!1;return e.forEach(a=>{T6(a).then(i=>{o||i.length===0||r(s=>({...s,[a]:i}))})}),()=>{o=!0}},[n]),t}var wc=Z(J());function ru({value:e,models:t=[],onChange:r,className:n,style:o,placeholder:a="Type to search models",inputRef:i,...s}){let l=(0,wc.useId)();return wc.default.createElement(wc.default.Fragment,null,wc.default.createElement("input",{...s,ref:i,type:"text",list:l,value:e||"",onChange:u=>r(u.target.value,u),placeholder:a,autoComplete:"off",spellCheck:!1,className:n,style:o}),wc.default.createElement("datalist",{id:l},t.filter(Boolean).map(u=>wc.default.createElement("option",{key:u,value:u}))))}var _oe=["agent_defined","dashboard","mcp"],yT={agent_defined:"Agent-defined",dashboard:"Dashboard",mcp:"MCP"},Coe={agent_defined:"the host's schema tools, and what the agent class declares",dashboard:"built into the dashboard",mcp:"offered by the services above"},rw=[{value:"24h",label:"24h",hours:24},{value:"7d",label:"7d",hours:168},{value:"30d",label:"30d",hours:720}],vT=e=>{if(e==null||Number.isNaN(Number(e)))return"\u2014";let t=Number(e);return t>=1e3?`${(t/1e3).toFixed(1)}s`:`${Math.round(t)}ms`},ov=(e,t=Date.now())=>{if(!e)return"never";let r=new Date(e).getTime();if(Number.isNaN(r))return"never";let n=Math.floor((t-r)/6e4);if(n<1)return"just now";if(n<60)return`${n}m ago`;let o=Math.floor(n/60);return o<24?`${o}h ago`:`${Math.floor(o/24)}d ago`},Aoe="sandbox:",Zd=e=>!!(e&&(e.runtime===!0||String(e.key||"").startsWith(Aoe))),av=e=>Zd(e)&&!e.known,nw=e=>!!e&&!e.known&&!Zd(e);function O6(e){return av(e)?"this sandbox is no longer running, so it offers no tools \u2014 switch it off, and start a new sandbox from Settings \u2192 Integrations to enable its runtime":Zd(e)?"tools are listed by the running app each time the agent runs":"no tools recorded for this service yet"}var Tm=e=>{if(typeof e=="string")return e.trim()||null;if(!e||typeof e!="object")return null;let t=e.key||e.name;return t&&String(t).trim()||null};function tw(e,t=[]){let r=new Map;(t||[]).forEach(o=>{let a=Tm(o);a&&r.set(a,o)});let n={};return(e.services||[]).forEach(o=>{let a=r.get(o.key),i=a&&typeof a=="object"&&Array.isArray(a.tools)?a.tools.map(s=>String(s&&s.name?s.name:s)):null;n[o.key]={on:r.has(o.key),tools:Object.fromEntries((o.tools||[]).map(s=>[s.name,i===null||i.includes(s.name)]))}}),n}var P6=e=>{let t=String(e||"").trim().toLowerCase();return(...r)=>!t||r.some(n=>String(n||"").toLowerCase().includes(t))};function M6(e,t,{query:r="",filter:n=null}={}){let o=P6(r);return(e.services||[]).filter(a=>n?n==="enabled"?t[a.key]?.on:a.status===n:!0).filter(a=>o(a.name,a.description)||(a.tools||[]).some(i=>o(i.name))).map(a=>{let i=t[a.key]||{on:!1,tools:{}},s=a.tools||[],l=s.map(c=>({...c,on:!!i.tools[c.name]})),u=l.filter(c=>c.on);return{...a,on:i.on,tools:l,offeredCount:s.length,enabledCount:u.length,toolsLabel:`${u.length}/${s.length}`,partial:i.on&&u.length{let o=t[n.key];!o||!o.on||(n.tools||[]).forEach(a=>{o.tools[a.name]&&r.push({...a,key:`${n.key}:${a.name}`,source:"mcp",editable:!1,enabled:!0,server:n.name,serverKey:n.key})})}),r}function I6(e,t,r=[]){let n=new Set((r||[]).map(String));return(e.tools||[]).map(o=>({...o,on:o.editable?n.has(o.key):o.enabled!==!1})).concat(Eoe(e,t).map(o=>({...o,on:!0})))}function D6(e,t,r,{query:n="",source:o=null,enabledOnly:a=!1}={}){let i=P6(n),s=I6(e,t,r),l=s.filter(u=>!o||u.source===o).filter(u=>!a||u.on).filter(u=>i(u.name,u.description));return _oe.map(u=>{let c=s.filter(f=>f.source===u),d=c.some(f=>f.editable),p=c.filter(f=>f.on).length;return{source:u,name:yT[u],meta:`${Coe[u]} \xB7 ${c.length} ${c.length===1?"tool":"tools"}`,countLabel:d?`${p}/${c.length} on`:`${c.length} offered`,editable:d,total:c.length,enabledCount:p,keys:c.map(f=>f.key),rows:l.filter(f=>f.source===u)}}).filter(u=>u.total>0)}function j6(e,t,r,{range:n="7d"}={}){let o=I6(e,t,r),a=e.usage_available!==!1,i=e.services||[],s=i.filter(f=>t[f.key]?.on),l=o.filter(f=>f.source!=="mcp"&&f.on),u=o.filter(f=>f.source==="mcp"),c=o.reduce((f,m)=>f+(m.calls||0),0),d=o.reduce((f,m)=>f+(m.errors||0),0),p=o.filter(f=>f.on&&!f.calls).length;return[{key:"tools",label:"Tools enabled",value:String(l.length+u.length),sub:`${l.length} direct \xB7 ${u.length} offered through MCP`},{key:"services",label:"MCP services",value:`${s.length}/${i.length}`,sub:s.length?`on for this agent: ${s.map(f=>f.name).join(", ")}`:"none enabled for this agent"},{key:"calls",label:"Tool calls",value:a?String(c):"\u2014",sub:a?`${d} error${d===1?"":"s"} in the last ${n} \xB7 traced`:"no calls recorded in this window yet"},{key:"unused",label:"Never called",value:a?String(p):"\u2014",sub:"enabled but unused in this window",tone:a&&p>6?"warning":null}]}function $6(e){return e?.on&&Array.isArray(e.approval_names)?e.approval_names.map(String):[]}function xT(e,t=[]){let r=$6(e);if(r.length===0)return null;let n=new Set((t||[]).map(String)),o=r.filter(a=>n.has(a)).length;return o===0?"off":o===r.length?"on":"partial"}function bT(e=[],t=[],r=!0){let n=(e||[]).map(String);return r?n.concat(t.filter(o=>!n.includes(o))):n.filter(o=>!t.includes(o))}function L6(e=[],t,r=[]){let n=(e||[]).map(String),o=xT(t,n);if(!o)return n;let a=new Set(bT(n,$6(t),o==="off")),i=(r||[]).map(String),s=new Set(i);return a.size===s.size&&[...a].every(u=>s.has(u))?i:[...a]}function z6(e,t,r){let n=tw(e,t.mcpServers),o=tw(e,r.mcpServers),a=0;Object.keys(n).forEach(d=>{n[d].on!==o[d].on&&(a+=1),Object.keys(n[d].tools).forEach(p=>{n[d].tools[p]!==o[d].tools[p]&&(a+=1)})});let i=new Set((t.tools||[]).map(String)),s=new Set((r.tools||[]).map(String));(e.tools||[]).forEach(d=>{d.editable&&i.has(d.key)!==s.has(d.key)&&(a+=1)});let l=new Set((t.approvalRequiredTools||[]).map(String)),u=new Set((r.approvalRequiredTools||[]).map(String));return(e.tools||[]).concat((e.services||[]).flatMap(d=>d.tools||[])).forEach(d=>{(d.approval_names||[]).some(p=>l.has(p)!==u.has(p))&&(a+=1)}),a}function B6(e,t,r=[]){let n=new Map;(r||[]).forEach(i=>{let s=Tm(i);s&&n.set(s,i)});let o=[];(e.services||[]).forEach(i=>{let s=t[i.key];if(!s||!s.on)return;let l=(i.tools||[]).map(f=>f.name),u=l.filter(f=>s.tools[f]),c=n.get(i.key),d=l.length>0&&u.lengthi.key));return(r||[]).forEach(i=>{let s=Tm(i);s&&!a.has(s)&&o.push(i)}),o}function F6(e,t=[]){let r=new Set((e.tools||[]).filter(a=>a.editable).map(a=>a.key)),n=(t||[]).map(String).filter(a=>!r.has(a)),o=(e.tools||[]).filter(a=>a.editable&&t.includes(a.key)).map(a=>a.key);return n.concat(o)}function wT(e){return(e?.tools||[]).filter(t=>t.editable&&t.implemented!==!1)}var Noe=["terminal","filesystem","edit","database"],ow=(e=[])=>e.some(t=>Noe.includes(t)),Toe={terminal:["run_command"],filesystem:["write_file"],edit:["edit_file"],slack:["slack_post_message"]},Om=(e=[])=>[...new Set(e.flatMap(t=>Toe[t]||[]))];function U6(e){let t=e?.services||[],r=(n,o)=>(o.workspace_agents||0)-(n.workspace_agents||0)||String(n.name).localeCompare(String(o.name));return{callable:t.filter(n=>n.callable).sort(r),unavailable:t.filter(n=>!n.callable)}}function ST(e,t=[]){if(!e)return[...t];let r=new Set(wT(e).map(n=>n.key));return t.filter(n=>r.has(n))}var kT=(e=[],t)=>e.some(r=>Tm(r)===t);function W6(e=[],t){return kT(e,t.key)?e.filter(r=>Tm(r)!==t.key):[...e,{key:t.key,name:t.name}]}function H6(e){let t=e.workspace_agents||0;return t?`${t} agent${t===1?"":"s"}`:null}var aw=[{id:"basics",label:"Basics",icon:"1"},{id:"configure",label:"Configure",icon:"2"},{id:"review",label:"Review",icon:"3"}],iv={...rv,agents:{emoji:"\u{1F91D}",label:"Delegate to agents"},ask:{emoji:"\u{1F64B}",label:"Ask the user"}},Ooe=["name","slug","description","provider","model"];function _T({meta:e,onSave:t,onCancel:r,isLoading:n,initialDraft:o=null}){let[a,i]=(0,ye.useState)(0),[s,l]=(0,ye.useState)({name:"",description:"",provider:"openai",model:Nm.openai[0],instructions:"",preset_type:"terminal",instruction_sets:["github"],tools:["terminal","code"],mcp_servers:[],model_config:{temperature:.7},...o?{name:o.name,description:o.description||"",instructions:o.instructions,provider:o.provider,model:o.model,tools:o.tools||[],instruction_sets:[],mcp_servers:o.mcp_servers||[]}:{}}),u=bc([s.provider]),c=(0,ye.useMemo)(()=>{let w=o?.model&&o.provider;return!w||!u[w]?u:{...u,[w]:[...new Set([o.model,...u[w]])]}},[u]),d=c[s.provider];(0,ye.useEffect)(()=>{d?.length&&l(w=>d.includes(w.model)?w:{...w,model:d[0]})},[d]);let[p,f]=(0,ye.useState)(null),[m,y]=(0,ye.useState)(null);(0,ye.useEffect)(()=>{fetch("/api/agents/tool_roster").then(w=>{if(!w.ok)throw new Error(`HTTP ${w.status}`);return w.json()}).then(w=>{f(w),l(_=>({..._,tools:ST(w,_.tools)}))}).catch(w=>y(w.message))},[]);let[b,g]=(0,ye.useState)(null),h=(w,_)=>{l(A=>({...A,[w]:_}))},v=(w,_)=>{l(A=>{let C=A[w]||[],N=C.includes(_)?C.filter(L=>L!==_):[...C,_];return{...A,[w]:N}})},x=w=>{if(h("preset_type",w),_m[w]){let _=_m[w];h("instruction_sets",[..._.instructions]),h("tools",ST(p,_.tools))}},S=()=>{switch(a){case 0:return s.name.trim().length>=2;case 1:return!0;case 2:return!0;default:return!1}},k=async()=>{g(null);let w=await t({...s,approval_required_tools:Om(s.tools)});w&&(g(w),Object.keys(w.fieldErrors||{}).some(_=>Ooe.includes(_))&&i(0))};return ye.default.createElement("div",{className:"max-w-4xl mx-auto"},o&&ye.default.createElement("div",{className:"mb-4 p-4 rounded-lg border border-red-200 bg-red-50 text-sm text-gray-700"},"Prepared by your workspace assistant. Review the instructions, model, and tools before creating this agent."),ye.default.createElement("div",{className:"mb-8"},ye.default.createElement("div",{className:"flex items-center justify-between"},aw.map((w,_)=>ye.default.createElement("div",{key:w.id,className:"flex items-center"},ye.default.createElement("div",{className:`flex items-center justify-center w-10 h-10 rounded-full border-2 transition-colors ${_ye.default.createElement("li",{key:w},w)))),ye.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-8"},a===0&&ye.default.createElement(Poe,{formData:s,updateField:h,providerModels:c,fieldErrors:b?.fieldErrors||{}}),a===1&&ye.default.createElement(Moe,{formData:s,meta:e,roster:p,rosterError:m,toggleArrayItem:v,updateField:h,selectPreset:x}),a===2&&ye.default.createElement(Ioe,{formData:s,roster:p})),ye.default.createElement("div",{className:"flex justify-between mt-6"},ye.default.createElement("button",{onClick:a===0?r:()=>i(a-1),className:"px-6 py-2 border border-gray-300 rounded-lg text-gray-700 hover:bg-gray-50 transition-colors"},a===0?"Cancel":"Back"),ye.default.createElement("button",{onClick:a===aw.length-1?k:()=>i(a+1),disabled:!S()||n,className:`px-6 py-2 rounded-lg transition-colors ${S()&&!n?"bg-red-500 text-white hover:bg-red-600":"bg-gray-200 text-gray-400 cursor-not-allowed"}`},a===aw.length-1?"Create Agent":"Continue")))}function iw({messages:e}){return e.length?ye.default.createElement("p",{className:"mt-1 text-sm text-red-600"},e.join(". ")):null}function Poe({formData:e,updateField:t,providerModels:r,fieldErrors:n}){let o=(...a)=>a.flatMap(i=>n[i]||[]);return ye.default.createElement("div",{className:"space-y-6"},ye.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Basic Information"),ye.default.createElement("p",{className:"text-gray-500"},"Give your agent a name and configure its AI provider."),ye.default.createElement("div",{className:"space-y-4"},ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Agent Name *"),ye.default.createElement("input",{type:"text",value:e.name,onChange:a=>t("name",a.target.value),placeholder:"My Awesome Agent",className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent"}),ye.default.createElement(iw,{messages:o("name","slug")})),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Description"),ye.default.createElement("textarea",{value:e.description,onChange:a=>t("description",a.target.value),placeholder:"What does this agent do?",rows:3,className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent"}),ye.default.createElement(iw,{messages:o("description")})),ye.default.createElement("div",{className:"grid grid-cols-2 gap-4"},ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Provider"),ye.default.createElement("select",{value:e.provider,onChange:a=>{t("provider",a.target.value),t("model",r[a.target.value][0])},className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},Object.keys(r).map(a=>ye.default.createElement("option",{key:a,value:a},a.charAt(0).toUpperCase()+a.slice(1)))),ye.default.createElement(iw,{messages:o("provider")})),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Model"),ye.default.createElement(ru,{value:e.model,models:r[e.provider],onChange:a=>t("model",a),className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"}),ye.default.createElement(iw,{messages:o("model")}))),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Temperature: ",e.model_config.temperature),ye.default.createElement("input",{type:"range",min:"0",max:"1",step:"0.1",value:e.model_config.temperature,onChange:a=>t("model_config",{...e.model_config,temperature:parseFloat(a.target.value)}),className:"w-full accent-red-500"}),ye.default.createElement("div",{className:"flex justify-between text-xs text-gray-400"},ye.default.createElement("span",null,"Precise"),ye.default.createElement("span",null,"Creative")))))}function Moe({formData:e,meta:t,roster:r,rosterError:n,toggleArrayItem:o,updateField:a,selectPreset:i}){let s=Object.keys(_m),l=Object.keys(Xd),u=wT(r),{callable:c,unavailable:d}=U6(r);return ye.default.createElement("div",{className:"space-y-6"},ye.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Configure Agent"),ye.default.createElement("p",{className:"text-gray-500"},"Choose a preset or customize instructions and tools."),ye.default.createElement("div",{className:"flex justify-center py-6 bg-gradient-to-br from-gray-50 to-gray-100 rounded-xl"},ye.default.createElement("div",{className:"flex flex-col items-center"},ye.default.createElement("div",{className:"flex gap-2 mb-2"},e.instruction_sets.map(p=>{let f=Xd[p];return f?ye.default.createElement("span",{key:p,className:"text-lg",title:f.label},f.emoji):null})),ye.default.createElement(In,{size:120}),ye.default.createElement("div",{className:"flex gap-2 mt-2"},e.tools.map(p=>{let f=rv[p];return f?ye.default.createElement("span",{key:p,className:"text-lg",title:f.label},f.emoji):null})))),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},"Quick Presets"),ye.default.createElement("div",{className:"flex flex-wrap gap-2"},s.map(p=>ye.default.createElement("button",{key:p,onClick:()=>i(p),className:`px-4 py-2 rounded-lg border-2 text-sm transition-all ${e.preset_type===p?"border-red-500 bg-red-50 text-red-700":"border-gray-200 hover:border-gray-300 text-gray-600"}`},ye.default.createElement("span",{className:"capitalize"},p.replace(/([A-Z])/g," $1").trim()))))),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},ye.default.createElement("strong",null,"Instructions"),ye.default.createElement("span",{className:"text-gray-400 font-normal ml-2"},"System/developer messages")),ye.default.createElement("div",{className:"flex flex-wrap gap-2"},l.map(p=>{let f=Xd[p];return ye.default.createElement("button",{key:p,onClick:()=>o("instruction_sets",p),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-full text-sm transition-colors ${e.instruction_sets.includes(p)?"bg-red-500 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`},ye.default.createElement("span",null,f.emoji),ye.default.createElement("span",null,f.label))}))),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},ye.default.createElement("strong",null,"Tools"),ye.default.createElement("span",{className:"text-gray-400 font-normal ml-2"},"Functions the model can call")),n&&ye.default.createElement("p",{className:"text-sm text-red-600"},"Could not load the tools this workspace offers: ",n),!r&&!n&&ye.default.createElement("p",{className:"text-sm text-gray-400"},"Loading tools\u2026"),ye.default.createElement("div",{className:"flex flex-wrap gap-2","data-testid":"builder-tools"},u.map(p=>ye.default.createElement(q6,{key:p.key,testId:`builder-tool-${p.key}`,on:e.tools.includes(p.key),onClick:()=>o("tools",p.key),emoji:iv[p.key]?.emoji||"\u{1F9F1}",label:iv[p.key]?.label||p.name,title:p.description||p.name}))),ow(e.tools)&&ye.default.createElement("p",{className:"mt-2 text-xs text-gray-500","data-testid":"builder-checkout-hint"},"Terminal, Filesystem, Edit and Database act in a repository checkout: choose one under Checkout when you run the agent.")),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},ye.default.createElement("strong",null,"MCP servers"),ye.default.createElement("span",{className:"text-gray-400 font-normal ml-2"},"Every tool the server serves is offered")),r&&c.length===0&&ye.default.createElement("p",{className:"text-sm text-gray-500"},"No MCP server this workspace can call yet. Register one with its URL in ",ye.default.createElement("code",null,"ActionAgent.mcp_catalog"),", or boot a project's checkout to offer its app runtime."),ye.default.createElement("div",{className:"flex flex-wrap gap-2","data-testid":"builder-mcp-servers"},c.map(p=>ye.default.createElement(q6,{key:p.key,testId:`builder-mcp-${p.key}`,on:kT(e.mcp_servers,p.key),onClick:()=>a("mcp_servers",W6(e.mcp_servers,p)),emoji:p.runtime?"\u{1F4E6}":"\u{1F50C}",label:p.name,hint:H6(p),title:[p.description,p.transport].filter(Boolean).join(" \xB7 ")}))),d.length>0&&ye.default.createElement("details",{className:"mt-3 text-sm","data-testid":"builder-mcp-unavailable"},ye.default.createElement("summary",{className:"cursor-pointer text-gray-500"},d.length," catalog server",d.length===1?"":"s"," a run can't call"),ye.default.createElement("ul",{className:"mt-2 space-y-1"},d.map(p=>ye.default.createElement("li",{key:p.key,className:"text-xs text-gray-500"},ye.default.createElement("span",{className:"font-medium text-gray-700"},p.name)," \u2014 ",p.unavailable_reason))))),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-2"},"System Instructions"),ye.default.createElement("textarea",{value:e.instructions,onChange:p=>a("instructions",p.target.value),placeholder:"You are a helpful AI assistant that...",rows:4,className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent font-mono text-sm"})))}function Ioe({formData:e,roster:t}){let r=n=>{let o=typeof n=="string"?n:n?.key;return t?.services?.find(a=>a.key===o)?.name||n?.name||o};return ye.default.createElement("div",{className:"space-y-6"},ye.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Review Your Agent"),ye.default.createElement("p",{className:"text-gray-500"},"Confirm the configuration before creating your agent."),ye.default.createElement("div",{className:"grid grid-cols-2 gap-8"},ye.default.createElement("div",{className:"flex flex-col items-center py-6 bg-gradient-to-br from-gray-50 to-gray-100 rounded-xl"},ye.default.createElement("div",{className:"flex gap-2 mb-2"},e.instruction_sets.map(n=>{let o=Xd[n];return o?ye.default.createElement("span",{key:n,className:"text-lg",title:o.label},o.emoji):null})),ye.default.createElement(In,{size:100}),ye.default.createElement("div",{className:"flex gap-2 mt-2"},e.tools.map(n=>{let o=rv[n];return o?ye.default.createElement("span",{key:n,className:"text-lg",title:o.label},o.emoji):null})),ye.default.createElement("h3",{className:"mt-4 text-lg font-semibold text-gray-900"},e.name),ye.default.createElement("p",{className:"text-sm text-gray-500"},e.description||"No description")),ye.default.createElement("div",{className:"space-y-4"},ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Provider / Model"),ye.default.createElement("p",{className:"text-gray-900"},e.provider," / ",e.model)),ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Temperature"),ye.default.createElement("p",{className:"text-gray-900"},e.model_config.temperature)),ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Instructions"),ye.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},e.instruction_sets.length>0?e.instruction_sets.map(n=>{let o=Xd[n];return o?ye.default.createElement("span",{key:n,className:"px-2 py-0.5 bg-gray-100 rounded text-xs"},o.emoji," ",o.label):null}):ye.default.createElement("span",{className:"text-gray-400 text-sm"},"None selected"))),ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Tools"),ye.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},e.tools.length>0?e.tools.map(n=>ye.default.createElement("span",{key:n,className:"px-2 py-0.5 bg-red-100 text-red-700 rounded text-xs"},iv[n]?`${iv[n].emoji} ${iv[n].label}`:n)):ye.default.createElement("span",{className:"text-gray-400 text-sm"},"None selected"))),Om(e.tools).length>0&&ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Waits for your approval"),ye.default.createElement("p",{className:"text-gray-900 text-sm font-mono"},Om(e.tools).join(", "))),ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"MCP servers"),ye.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},e.mcp_servers.length>0?e.mcp_servers.map(n=>ye.default.createElement("span",{key:r(n),className:"px-2 py-0.5 bg-red-100 text-red-700 rounded text-xs"},r(n))):ye.default.createElement("span",{className:"text-gray-400 text-sm"},"None selected"))))),e.instructions&&ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"System Instructions"),ye.default.createElement("pre",{className:"mt-2 p-4 bg-gray-50 rounded-lg text-sm text-gray-700 whitespace-pre-wrap font-mono"},e.instructions)))}function q6({on:e,onClick:t,emoji:r,label:n,hint:o,title:a,testId:i}){return ye.default.createElement("button",{type:"button","data-testid":i,"aria-pressed":e,onClick:t,title:a,className:`flex items-center gap-1.5 px-3 py-1.5 rounded-full text-sm transition-colors ${e?"bg-red-500 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`},ye.default.createElement("span",null,r),ye.default.createElement("span",null,n),o&&ye.default.createElement("span",{className:`text-xs ${e?"text-red-100":"text-gray-400"}`},"\xB7 ",o))}var Se=Z(J());var Ki=e=>({cardBg:e?"#1f1f1f":"#ffffff",cardBorder:e?"#2a2a2a":"#e5e7eb",borderStrong:e?"rgba(255,255,255,0.2)":"#d1d5db",mutedBg:e?"rgba(255,255,255,0.06)":"#f3f4f6",innerBg:e?"rgba(255,255,255,0.04)":"#f9fafb",textPrimary:e?"#ffffff":"#111827",textCell:e?"rgba(255,255,255,0.75)":"#4b5563",textSecondary:e?"rgba(255,255,255,0.6)":"#6b7280",textMuted:e?"rgba(255,255,255,0.4)":"#9ca3af",inputBg:e?"rgba(255,255,255,0.06)":"#ffffff",inputBorder:e?"rgba(255,255,255,0.2)":"#d1d5db",trackBg:e?"rgba(255,255,255,0.1)":"#f3f4f6"}),Qo="#ef4444";var H=Z(J());var sw=Z(J()),X6=Z(J());function K6(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t{var r=e.children,n=e.width,o=e.height,a=e.viewBox,i=e.className,s=e.style,l=e.title,u=e.desc,c=zoe(e,Loe),d=a||{width:n,height:o,x:0,y:0},p=bt("recharts-surface",i);return sw.createElement("svg",ET({},yn(c),{className:p,width:n,height:o,style:s,viewBox:"".concat(d.x," ").concat(d.y," ").concat(d.width," ").concat(d.height),ref:t}),sw.createElement("title",null,l),sw.createElement("desc",null,u),r)});var lw=Z(J());var Foe=["children","className"];function NT(){return NT=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=e.children,n=e.className,o=Uoe(e,Foe),a=bt("recharts-layer",n);return lw.createElement("g",NT({className:a},yn(o),{ref:t}),r)});var bi=Z(J()),jS=Z(J()),X7=Z(oy());function uw(e){return e==="__proto__"}var Hoe=/\.|(\[(?:[^[\]]*|(["'])(?:(?!\2)[^\\]|\\.)*?\2)\])/;function cw(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e===""||e.startsWith(".")||e.endsWith(".")?!1:Hoe.test(e);default:return!1}}function Pm(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function TT(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(TT).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function Mm(e){if(Array.isArray(e))return e.map(Pm);if(typeof e=="symbol")return[e];e=TT(e);let t=[],r=e.length;if(r===0)return t;let n=0,o="",a="",i=!1;for(e.charCodeAt(0)===46&&t.push("");n1&&arguments[1]!==void 0?arguments[1]:Koe,r=10**t,n=Math.round(e*r)/r;return Object.is(n,-0)?0:n}function Co(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n{var s=r[i-1];return typeof s=="string"?o+s+a:s!==void 0?o+Vi(s)+a:o+a},"")}var Qr=e=>e===0?0:e>0?1:-1,Wo=e=>typeof e=="number"&&e!=+e,nu=e=>typeof e=="string"&&e.length>1&&e.indexOf("%")===e.length-1,De=e=>(typeof e=="number"||e instanceof Number)&&!Wo(e),Sa=e=>De(e)||typeof e=="string",Voe=0,ou=e=>{var t=++Voe;return"".concat(e||"").concat(t)},$n=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!De(t)&&typeof t!="string")return n;var a;if(nu(t)){if(r==null)return n;var i=t.indexOf("%");a=r*parseFloat(t.slice(0,i))/100}else a=+t;return Wo(a)&&(a=n),o&&r!=null&&a>r&&(a=r),a},OT=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,r={},n=0;nn&&(typeof t=="function"?t(n):Uo(n,t))===r)}var ar=e=>e===null||typeof e>"u",au=e=>ar(e)?e:"".concat(e.charAt(0).toUpperCase()).concat(e.slice(1));function Ao(e){return e!=null}function ka(){}function uv(e){if(e)return{x:e.x,y:e.y,upperWidth:"upperWidth"in e?e.upperWidth:e.width,lowerWidth:"lowerWidth"in e?e.lowerWidth:e.width,width:e.width,height:e.height}}function Z6(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function sl(e){for(var t=1;t{var t=e.viewBox,r=e.position,n=e.offset,o=n===void 0?0:n,a=e.parentViewBox,i=e.clamp,s=uv(t),l=s.x,u=s.y,c=s.height,d=s.upperWidth,p=s.lowerWidth,f=l,m=l+(d-p)/2,y=(f+m)/2,b=(d+p)/2,g=f+d/2,h=c>=0?1:-1,v=h*o,x=h>0?"end":"start",S=h>0?"start":"end",k=d>=0?1:-1,w=k*o,_=k>0?"end":"start",A=k>0?"start":"end",C=a;if(r==="top"){var N={x:f+d/2,y:u-v,horizontalAnchor:"middle",verticalAnchor:x};return i&&C&&(N.height=Math.max(u-C.y,0),N.width=d),N}if(r==="bottom"){var L={x:m+p/2,y:u+c+v,horizontalAnchor:"middle",verticalAnchor:S};return i&&C&&(L.height=Math.max(C.y+C.height-(u+c),0),L.width=p),L}if(r==="left"){var Q={x:y-w,y:u+c/2,horizontalAnchor:_,verticalAnchor:"middle"};return i&&C&&(Q.width=Math.max(Q.x-C.x,0),Q.height=c),Q}if(r==="right"){var B={x:y+b+w,y:u+c/2,horizontalAnchor:A,verticalAnchor:"middle"};return i&&C&&(B.width=Math.max(C.x+C.width-B.x,0),B.height=c),B}var K=i&&C?{width:b,height:c}:{};return r==="insideLeft"?sl({x:y+w,y:u+c/2,horizontalAnchor:A,verticalAnchor:"middle"},K):r==="insideRight"?sl({x:y+b-w,y:u+c/2,horizontalAnchor:_,verticalAnchor:"middle"},K):r==="insideTop"?sl({x:f+d/2,y:u+v,horizontalAnchor:"middle",verticalAnchor:S},K):r==="insideBottom"?sl({x:m+p/2,y:u+c-v,horizontalAnchor:"middle",verticalAnchor:x},K):r==="insideTopLeft"?sl({x:f+w,y:u+v,horizontalAnchor:A,verticalAnchor:S},K):r==="insideTopRight"?sl({x:f+d-w,y:u+v,horizontalAnchor:_,verticalAnchor:S},K):r==="insideBottomLeft"?sl({x:m+w,y:u+c-v,horizontalAnchor:A,verticalAnchor:x},K):r==="insideBottomRight"?sl({x:m+p-w,y:u+c-v,horizontalAnchor:_,verticalAnchor:x},K):r&&typeof r=="object"&&(De(r.x)||nu(r.x))&&(De(r.y)||nu(r.y))?sl({x:l+$n(r.x,b),y:u+$n(r.y,c),horizontalAnchor:"end",verticalAnchor:"end"},K):sl({x:g,y:u+c/2,horizontalAnchor:"middle",verticalAnchor:"middle"},K)},Zoe=["top","left","right","bottom"];function cv(e){return e==null?!1:typeof e=="object"?!0:Zoe.includes(e)}var fw=Z(J()),PT=(0,fw.createContext)(null),J6=()=>(0,fw.useContext)(PT);var _a=Z(J());var hz=Z(J());function Mr(e){return function(){return e}}var MT=Math.cos;var dv=Math.sin,Ho=Math.sqrt;var Jd=Math.PI,ZEe=Jd/2,Im=2*Jd;var IT=Math.PI,DT=2*IT,Qd=1e-6,Joe=DT-Qd;function Q6(e){this._+=e[0];for(let t=1,r=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return Q6;let r=10**t;return function(n){this._+=n[0];for(let o=1,a=n.length;oQd)if(!(Math.abs(d*l-u*c)>Qd)||!a)this._append`L${this._x1=t},${this._y1=r}`;else{let f=n-i,m=o-s,y=l*l+u*u,b=f*f+m*m,g=Math.sqrt(y),h=Math.sqrt(p),v=a*Math.tan((IT-Math.acos((y+p-b)/(2*g*h)))/2),x=v/h,S=v/g;Math.abs(x-1)>Qd&&this._append`L${t+x*c},${r+x*d}`,this._append`A${a},${a},0,0,${+(d*f>c*m)},${this._x1=t+S*l},${this._y1=r+S*u}`}}arc(t,r,n,o,a,i){if(t=+t,r=+r,n=+n,i=!!i,n<0)throw new Error(`negative radius: ${n}`);let s=n*Math.cos(o),l=n*Math.sin(o),u=t+s,c=r+l,d=1^i,p=i?o-a:a-o;this._x1===null?this._append`M${u},${c}`:(Math.abs(this._x1-u)>Qd||Math.abs(this._y1-c)>Qd)&&this._append`L${u},${c}`,n&&(p<0&&(p=p%DT+DT),p>Joe?this._append`A${n},${n},0,1,${d},${t-s},${r-l}A${n},${n},0,1,${d},${this._x1=u},${this._y1=c}`:p>Qd&&this._append`A${n},${n},0,${+(p>=IT)},${d},${this._x1=t+n*Math.cos(a)},${this._y1=r+n*Math.sin(a)}`)}rect(t,r,n,o){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+o}h${-n}Z`}toString(){return this._}};function R6(){return new Rd}R6.prototype=Rd.prototype;function Dm(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{let n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);t=n}return e},()=>new Rd(t)}var oNe=Array.prototype.slice;function jm(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function ez(e){this._context=e}ez.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function Sc(e){return new ez(e)}function mw(e){return e[0]}function gw(e){return e[1]}function pv(e,t){var r=Mr(!0),n=null,o=Sc,a=null,i=Dm(s);e=typeof e=="function"?e:e===void 0?mw:Mr(e),t=typeof t=="function"?t:t===void 0?gw:Mr(t);function s(l){var u,c=(l=jm(l)).length,d,p=!1,f;for(n==null&&(a=o(f=i())),u=0;u<=c;++u)!(u=f;--m)s.point(v[m],x[m]);s.lineEnd(),s.areaEnd()}g&&(v[p]=+e(b,p,d),x[p]=+t(b,p,d),s.point(n?+n(b,p,d):v[p],r?+r(b,p,d):x[p]))}if(h)return s=null,h+""||null}function c(){return pv().defined(o).curve(i).context(a)}return u.x=function(d){return arguments.length?(e=typeof d=="function"?d:Mr(+d),n=null,u):e},u.x0=function(d){return arguments.length?(e=typeof d=="function"?d:Mr(+d),u):e},u.x1=function(d){return arguments.length?(n=d==null?null:typeof d=="function"?d:Mr(+d),u):n},u.y=function(d){return arguments.length?(t=typeof d=="function"?d:Mr(+d),r=null,u):t},u.y0=function(d){return arguments.length?(t=typeof d=="function"?d:Mr(+d),u):t},u.y1=function(d){return arguments.length?(r=d==null?null:typeof d=="function"?d:Mr(+d),u):r},u.lineX0=u.lineY0=function(){return c().x(e).y(t)},u.lineY1=function(){return c().x(e).y(r)},u.lineX1=function(){return c().x(n).y(t)},u.defined=function(d){return arguments.length?(o=typeof d=="function"?d:Mr(!!d),u):o},u.curve=function(d){return arguments.length?(i=d,a!=null&&(s=i(a)),u):i},u.context=function(d){return arguments.length?(d==null?a=s=null:s=i(a=d),u):a},u}var hw=class{constructor(t,r){this._context=t,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,r){switch(t=+t,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,r):this._context.moveTo(t,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,r,t,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,t,this._y0,t,r);break}}this._x0=t,this._y0=r}};function jT(e){return new hw(e,!0)}function $T(e){return new hw(e,!1)}var Lm={draw(e,t){let r=Ho(t/Jd);e.moveTo(r,0),e.arc(0,0,r,0,Im)}};var LT={draw(e,t){let r=Ho(t/5)/2;e.moveTo(-3*r,-r),e.lineTo(-r,-r),e.lineTo(-r,-3*r),e.lineTo(r,-3*r),e.lineTo(r,-r),e.lineTo(3*r,-r),e.lineTo(3*r,r),e.lineTo(r,r),e.lineTo(r,3*r),e.lineTo(-r,3*r),e.lineTo(-r,r),e.lineTo(-3*r,r),e.closePath()}};var tz=Ho(1/3),Roe=tz*2,zT={draw(e,t){let r=Ho(t/Roe),n=r*tz;e.moveTo(0,-r),e.lineTo(n,0),e.lineTo(0,r),e.lineTo(-n,0),e.closePath()}};var BT={draw(e,t){let r=Ho(t),n=-r/2;e.rect(n,n,r,r)}};var eae=.8908130915292852,rz=dv(Jd/10)/dv(7*Jd/10),tae=dv(Im/10)*rz,rae=-MT(Im/10)*rz,FT={draw(e,t){let r=Ho(t*eae),n=tae*r,o=rae*r;e.moveTo(0,-r),e.lineTo(n,o);for(let a=1;a<5;++a){let i=Im*a/5,s=MT(i),l=dv(i);e.lineTo(l*r,-s*r),e.lineTo(s*n-l*o,l*n+s*o)}e.closePath()}};var UT=Ho(3),WT={draw(e,t){let r=-Ho(t/(UT*3));e.moveTo(0,r*2),e.lineTo(-UT*r,-r),e.lineTo(UT*r,-r),e.closePath()}};var Gi=-.5,Yi=Ho(3)/2,HT=1/Ho(12),nae=(HT/2+1)*3,qT={draw(e,t){let r=Ho(t/nae),n=r/2,o=r*HT,a=n,i=r*HT+r,s=-a,l=i;e.moveTo(n,o),e.lineTo(a,i),e.lineTo(s,l),e.lineTo(Gi*n-Yi*o,Yi*n+Gi*o),e.lineTo(Gi*a-Yi*i,Yi*a+Gi*i),e.lineTo(Gi*s-Yi*l,Yi*s+Gi*l),e.lineTo(Gi*n+Yi*o,Gi*o-Yi*n),e.lineTo(Gi*a+Yi*i,Gi*i-Yi*a),e.lineTo(Gi*s+Yi*l,Gi*l-Yi*s),e.closePath()}};function yw(e,t){let r=null,n=Dm(o);e=typeof e=="function"?e:Mr(e||Lm),t=typeof t=="function"?t:Mr(t===void 0?64:+t);function o(){let a;if(r||(r=a=n()),e.apply(this,arguments).draw(r,+t.apply(this,arguments)),a)return r=null,a+""||null}return o.type=function(a){return arguments.length?(e=typeof a=="function"?a:Mr(a),o):e},o.size=function(a){return arguments.length?(t=typeof a=="function"?a:Mr(+a),o):t},o.context=function(a){return arguments.length?(r=a??null,o):r},o}function zm(){}function Bm(e,t,r){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+r)/6)}function nz(e){this._context=e}nz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Bm(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Bm(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function KT(e){return new nz(e)}function oz(e){this._context=e}oz.prototype={areaStart:zm,areaEnd:zm,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:Bm(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function VT(e){return new oz(e)}function az(e){this._context=e}az.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+e)/6,n=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:Bm(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function GT(e){return new az(e)}function iz(e){this._context=e}iz.prototype={areaStart:zm,areaEnd:zm,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function YT(e){return new iz(e)}function sz(e){return e<0?-1:1}function lz(e,t,r){var n=e._x1-e._x0,o=t-e._x1,a=(e._y1-e._y0)/(n||o<0&&-0),i=(r-e._y1)/(o||n<0&&-0),s=(a*o+i*n)/(n+o);return(sz(a)+sz(i))*Math.min(Math.abs(a),Math.abs(i),.5*Math.abs(s))||0}function uz(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function XT(e,t,r){var n=e._x0,o=e._y0,a=e._x1,i=e._y1,s=(a-n)/3;e._context.bezierCurveTo(n+s,o+s*t,a-s,i-s*r,a,i)}function vw(e){this._context=e}vw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:XT(this,this._t0,uz(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,XT(this,uz(this,r=lz(this,e,t)),r);break;default:XT(this,this._t0,r=lz(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function cz(e){this._context=new dz(e)}(cz.prototype=Object.create(vw.prototype)).point=function(e,t){vw.prototype.point.call(this,t,e)};function dz(e){this._context=e}dz.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,n,o,a){this._context.bezierCurveTo(t,e,n,r,a,o)}};function ZT(e){return new vw(e)}function JT(e){return new cz(e)}function fz(e){this._context=e}fz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,r=e.length;if(r)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),r===2)this._context.lineTo(e[1],t[1]);else for(var n=pz(e),o=pz(t),a=0,i=1;i=0;--t)o[t]=(i[t]-o[t+1])/a[t];for(a[r-1]=(e[r]+o[r-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t}};function RT(e){return new xw(e,.5)}function eO(e){return new xw(e,0)}function tO(e){return new xw(e,1)}function gi(e,t){if((i=e.length)>1)for(var r=1,n,o,a=e[t[0]],i,s=a.length;r=0;)r[t]=t;return r}function oae(e,t){return e[t]}function aae(e){let t=[];return t.key=e,t}function rO(){var e=Mr([]),t=Fm,r=gi,n=oae;function o(a){var i=Array.from(e.apply(this,arguments),aae),s,l=i.length,u=-1,c;for(let d of a)for(s=0,++u;s0){for(var r,n,o=0,a=e[0].length,i;o0){for(var r=0,n=e[t[0]],o,a=n.length;r0)||!((a=(o=e[t[0]]).length)>0))){for(var r=0,n=1,o,a,i;n{var t="symbol".concat(au(e));return yz[t]||Lm},gae=(e,t,r)=>{if(t==="area")return e;switch(r){case"cross":return 5*e*e/9;case"diamond":return .5*e*e/Math.sqrt(3);case"square":return e*e;case"star":{var n=18*fae;return 1.25*e*e*(Math.tan(n)-Math.tan(n*2)*Math.tan(n)**2)}case"triangle":return Math.sqrt(3)*e*e/4;case"wye":return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},hae=(e,t)=>{yz["symbol".concat(au(e))]=t},sO=e=>{var t=e.type,r=t===void 0?"circle":t,n=e.size,o=n===void 0?64:n,a=e.sizeType,i=a===void 0?"area":a,s=dae(e,sae),l=gz(gz({},s),{},{type:r,size:o,sizeType:i}),u="circle";typeof r=="string"&&(u=r);var c=()=>{var y=mae(u),b=yw().type(y).size(gae(o,i,u)),g=b();if(g!==null)return g},d=l.className,p=l.cx,f=l.cy,m=yn(l);return De(p)&&De(f)&&De(o)?hz.createElement("path",iO({},m,{className:bt("recharts-symbols",d),transform:"translate(".concat(p,", ").concat(f,")"),d:c()})):null};sO.registerSymbol=hae;var vz=Z(J());var bw=e=>"radius"in e&&"startAngle"in e&&"endAngle"in e,Um=(e,t)=>{if(!e||typeof e=="function"||typeof e=="boolean")return null;var r=e;if((0,vz.isValidElement)(e)&&(r=e.props),typeof r!="object"&&typeof r!="function")return null;var n={};return Object.keys(r).forEach(o=>{sv(o)&&typeof r[o]=="function"&&(n[o]=t||(a=>r[o](r,a)))}),n},yae=(e,t,r)=>n=>(e(t,r,n),null),iu=(e,t,r)=>{if(e===null||typeof e!="object"&&typeof e!="function")return null;var n=null;return Object.keys(e).forEach(o=>{var a=e[o];sv(o)&&typeof a=="function"&&(n||(n={}),n[o]=yae(a,t,r))}),n};function xz(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function vae(e){for(var t=1;t(i[s]===void 0&&n[s]!==void 0&&(i[s]=n[s]),i),r);return a}function ww(){return ww=Object.assign?Object.assign.bind():function(e){for(var t=1;t>>=0,e===0?32:31-(fre(e)/mre|0)|0}var Ab=256,Eb=262144,Nb=4194304;function Pd(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function I1(e,t,r){var n=e.pendingLanes;if(n===0)return 0;var o=0,a=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var s=n&134217727;return s!==0?(n=s&~a,n!==0?o=Pd(n):(i&=s,i!==0?o=Pd(i):r||(r=s&~e,r!==0&&(o=Pd(r))))):(s=n&~a,s!==0?o=Pd(s):i!==0?o=Pd(i):r||(r=n&~e,r!==0&&(o=Pd(r)))),o===0?0:t!==0&&t!==o&&(t&a)===0&&(a=o&-o,r=t&-t,a>=r||a===32&&(r&4194048)!==0)?t:o}function Vy(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function hre(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function H$(){var e=Nb;return Nb<<=1,(Nb&62914560)===0&&(Nb=4194304),e}function XA(e){for(var t=[],r=0;31>r;r++)t.push(e);return t}function Gy(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function yre(e,t,r,n,o,a){var i=e.pendingLanes;e.pendingLanes=r,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=r,e.entangledLanes&=r,e.errorRecoveryDisabledLanes&=r,e.shellSuspendCounter=0;var s=e.entanglements,l=e.expirationTimes,u=e.hiddenUpdates;for(r=i&~r;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var kre=/[\n"\\]/g;function Fi(e){return e.replace(kre,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function DE(e,t,r,n,o,a,i,s){e.name="",i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?e.type=i:e.removeAttribute("type"),t!=null?i==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Li(t)):e.value!==""+Li(t)&&(e.value=""+Li(t)):i!=="submit"&&i!=="reset"||e.removeAttribute("value"),t!=null?jE(e,i,Li(t)):r!=null?jE(e,i,Li(r)):n!=null&&e.removeAttribute("value"),o==null&&a!=null&&(e.defaultChecked=!!a),o!=null&&(e.checked=o&&typeof o!="function"&&typeof o!="symbol"),s!=null&&typeof s!="function"&&typeof s!="symbol"&&typeof s!="boolean"?e.name=""+Li(s):e.removeAttribute("name")}function Q$(e,t,r,n,o,a,i,s){if(a!=null&&typeof a!="function"&&typeof a!="symbol"&&typeof a!="boolean"&&(e.type=a),t!=null||r!=null){if(!(a!=="submit"&&a!=="reset"||t!=null)){IE(e);return}r=r!=null?""+Li(r):"",t=t!=null?""+Li(t):r,s||t===e.value||(e.value=t),e.defaultValue=t}n=n??o,n=typeof n!="function"&&typeof n!="symbol"&&!!n,e.checked=s?e.checked:!!n,e.defaultChecked=!!n,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(e.name=i),IE(e)}function jE(e,t,r){t==="number"&&l1(e.ownerDocument)===e||e.defaultValue===""+r||(e.defaultValue=""+r)}function em(e,t,r,n){if(e=e.options,t){t={};for(var o=0;o"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),LE=!1;if(Yl)try{$f={},Object.defineProperty($f,"passive",{get:function(){LE=!0}}),window.addEventListener("test",$f,$f),window.removeEventListener("test",$f,$f)}catch{LE=!1}var $f,tc=null,EN=null,Kb=null;function nL(){if(Kb)return Kb;var e,t=EN,r=t.length,n,o="value"in tc?tc.value:tc.textContent,a=o.length;for(e=0;e=yy),S4=" ",k4=!1;function aL(e,t){switch(e){case"keyup":return Jre.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function iL(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Kf=!1;function Rre(e,t){switch(e){case"compositionend":return iL(t);case"keypress":return t.which!==32?null:(k4=!0,S4);case"textInput":return e=t.data,e===S4&&k4?null:e;default:return null}}function ene(e,t){if(Kf)return e==="compositionend"||!TN&&aL(e,t)?(e=nL(),Kb=EN=tc=null,Kf=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=E4(r)}}function cL(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?cL(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function dL(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=l1(e.document);t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch{r=!1}if(r)e=t.contentWindow;else break;t=l1(e.document)}return t}function ON(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var lne=Yl&&"documentMode"in document&&11>=document.documentMode,Vf=null,zE=null,xy=null,BE=!1;function T4(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;BE||Vf==null||Vf!==l1(n)||(n=Vf,"selectionStart"in n&&ON(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),xy&&Iy(xy,n)||(xy=n,n=A1(zE,"onSelect"),0>=i,o-=i,Rs=1<<32-pi(t)+o|r<_?(A=w,w=null):A=w.sibling;var C=p(g,w,v[_],x);if(C===null){w===null&&(w=A);break}e&&w&&C.alternate===null&&t(g,w),h=a(C,h,_),k===null?S=C:k.sibling=C,k=C,w=A}if(_===v.length)return r(g,w),gr&&Fl(g,_),S;if(w===null){for(;__?(A=w,w=null):A=w.sibling;var N=p(g,w,C.value,x);if(N===null){w===null&&(w=A);break}e&&w&&N.alternate===null&&t(g,w),h=a(N,h,_),k===null?S=N:k.sibling=N,k=N,w=A}if(C.done)return r(g,w),gr&&Fl(g,_),S;if(w===null){for(;!C.done;_++,C=v.next())C=d(g,C.value,x),C!==null&&(h=a(C,h,_),k===null?S=C:k.sibling=C,k=C);return gr&&Fl(g,_),S}for(w=n(w);!C.done;_++,C=v.next())C=f(w,g,_,C.value,x),C!==null&&(e&&C.alternate!==null&&w.delete(C.key===null?_:C.key),h=a(C,h,_),k===null?S=C:k.sibling=C,k=C);return e&&w.forEach(function(L){return t(g,L)}),gr&&Fl(g,_),S}function b(g,h,v,x){if(typeof v=="object"&&v!==null&&v.type===Uf&&v.key===null&&(v=v.props.children),typeof v=="object"&&v!==null){switch(v.$$typeof){case Cb:e:{for(var S=v.key;h!==null;){if(h.key===S){if(S=v.type,S===Uf){if(h.tag===7){r(g,h.sibling),x=o(h,v.props.children),x.return=g,g=x;break e}}else if(h.elementType===S||typeof S=="object"&&S!==null&&S.$$typeof===Yu&&Md(S)===h.type){r(g,h.sibling),x=o(h,v.props),sy(x,v),x.return=g,g=x;break e}r(g,h);break}else t(g,h);h=h.sibling}v.type===Uf?(x=jd(v.props.children,g.mode,x,v.key),x.return=g,g=x):(x=Gb(v.type,v.key,v.props,null,g.mode,x),sy(x,v),x.return=g,g=x)}return i(g);case py:e:{for(S=v.key;h!==null;){if(h.key===S)if(h.tag===4&&h.stateNode.containerInfo===v.containerInfo&&h.stateNode.implementation===v.implementation){r(g,h.sibling),x=o(h,v.children||[]),x.return=g,g=x;break e}else{r(g,h);break}else t(g,h);h=h.sibling}x=nE(v,g.mode,x),x.return=g,g=x}return i(g);case Yu:return v=Md(v),b(g,h,v,x)}if(fy(v))return m(g,h,v,x);if(ay(v)){if(S=ay(v),typeof S!="function")throw Error(Ae(150));return v=S.call(v),y(g,h,v,x)}if(typeof v.then=="function")return b(g,h,Db(v),x);if(v.$$typeof===Wl)return b(g,h,Ib(g,v),x);jb(g,v)}return typeof v=="string"&&v!==""||typeof v=="number"||typeof v=="bigint"?(v=""+v,h!==null&&h.tag===6?(r(g,h.sibling),x=o(h,v),x.return=g,g=x):(r(g,h),x=rE(v,g.mode,x),x.return=g,g=x),i(g)):r(g,h)}return function(g,h,v,x){try{$y=0;var S=b(g,h,v,x);return nm=null,S}catch(w){if(w===bm||w===B1)throw w;var k=li(29,w,null,g.mode);return k.lanes=x,k.return=g,k}}}var Ud=AL(!0),EL=AL(!1),Xu=!1;function BN(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function VE(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function sc(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function lc(e,t,r){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,(Tr&2)!==0){var o=n.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),n.pending=t,t=c1(e),vL(e,null,r),t}return z1(e,n,t,r),c1(e)}function wy(e,t,r){if(t=t.updateQueue,t!==null&&(t=t.shared,(r&4194048)!==0)){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,K$(e,r)}}function aE(e,t){var r=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,r===n)){var o=null,a=null;if(r=r.firstBaseUpdate,r!==null){do{var i={lane:r.lane,tag:r.tag,payload:r.payload,callback:null,next:null};a===null?o=a=i:a=a.next=i,r=r.next}while(r!==null);a===null?o=a=t:a=a.next=t}else o=a=t;r={baseState:n.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:n.shared,callbacks:n.callbacks},e.updateQueue=r;return}e=r.lastBaseUpdate,e===null?r.firstBaseUpdate=t:e.next=t,r.lastBaseUpdate=t}var GE=!1;function Sy(){if(GE){var e=rm;if(e!==null)throw e}}function ky(e,t,r,n){GE=!1;var o=e.updateQueue;Xu=!1;var a=o.firstBaseUpdate,i=o.lastBaseUpdate,s=o.shared.pending;if(s!==null){o.shared.pending=null;var l=s,u=l.next;l.next=null,i===null?a=u:i.next=u,i=l;var c=e.alternate;c!==null&&(c=c.updateQueue,s=c.lastBaseUpdate,s!==i&&(s===null?c.firstBaseUpdate=u:s.next=u,c.lastBaseUpdate=l))}if(a!==null){var d=o.baseState;i=0,c=u=l=null,s=a;do{var p=s.lane&-536870913,f=p!==s.lane;if(f?(pr&p)===p:(n&p)===p){p!==0&&p===um&&(GE=!0),c!==null&&(c=c.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});e:{var m=e,y=s;p=t;var b=r;switch(y.tag){case 1:if(m=y.payload,typeof m=="function"){d=m.call(b,d,p);break e}d=m;break e;case 3:m.flags=m.flags&-65537|128;case 0:if(m=y.payload,p=typeof m=="function"?m.call(b,d,p):m,p==null)break e;d=gn({},d,p);break e;case 2:Xu=!0}}p=s.callback,p!==null&&(e.flags|=64,f&&(e.flags|=8192),f=o.callbacks,f===null?o.callbacks=[p]:f.push(p))}else f={lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},c===null?(u=c=f,l=d):c=c.next=f,i|=p;if(s=s.next,s===null){if(s=o.shared.pending,s===null)break;f=s,s=f.next,f.next=null,o.lastBaseUpdate=f,o.shared.pending=null}}while(!0);c===null&&(l=d),o.baseState=l,o.firstBaseUpdate=u,o.lastBaseUpdate=c,a===null&&(o.shared.lanes=0),yc|=i,e.lanes=i,e.memoizedState=d}}function NL(e,t){if(typeof e!="function")throw Error(Ae(191,e));e.call(t)}function TL(e,t){var r=e.callbacks;if(r!==null)for(e.callbacks=null,e=0;ea?a:8;var i=$t.T,s={};$t.T=s,QN(e,!1,t,r);try{var l=o(),u=$t.S;if(u!==null&&u(s,l),l!==null&&typeof l=="object"&&typeof l.then=="function"){var c=yne(l,n);_y(e,t,c,fi(e))}else _y(e,t,n,fi(e))}catch(d){_y(e,t,{then:function(){},status:"rejected",reason:d},fi())}finally{Or.p=a,i!==null&&s.types!==null&&(i.types=s.types),$t.T=i}}function kne(){}function QE(e,t,r,n){if(e.tag!==5)throw Error(Ae(476));var o=e8(e).queue;RL(e,o,t,Dd,r===null?kne:function(){return t8(e),r(n)})}function e8(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:Dd,baseState:Dd,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Zl,lastRenderedState:Dd},next:null};var r={};return t.next={memoizedState:r,baseState:r,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Zl,lastRenderedState:r},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function t8(e){var t=e8(e);t.next===null&&(t=e.alternate.memoizedState),_y(e,t.next.queue,{},fi())}function JN(){return Zo(Uy)}function r8(){return oo().memoizedState}function n8(){return oo().memoizedState}function _ne(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var r=fi();e=sc(r);var n=lc(t,e,r);n!==null&&(Ua(n,t,r),wy(n,t,r)),t={cache:$N()},e.payload=t;return}t=t.return}}function Cne(e,t,r){var n=fi();r={lane:n,revertLane:0,gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},H1(e)?a8(t,r):(r=MN(e,t,r,n),r!==null&&(Ua(r,e,n),i8(r,t,n)))}function o8(e,t,r){var n=fi();_y(e,t,r,n)}function _y(e,t,r,n){var o={lane:n,revertLane:0,gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null};if(H1(e))a8(t,o);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var i=t.lastRenderedState,s=a(i,r);if(o.hasEagerState=!0,o.eagerState=s,mi(s,i))return z1(e,t,o,0),Xr===null&&L1(),!1}catch{}if(r=MN(e,t,o,n),r!==null)return Ua(r,e,n),i8(r,t,n),!0}return!1}function QN(e,t,r,n){if(n={lane:2,revertLane:sT(),gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},H1(e)){if(t)throw Error(Ae(479))}else t=MN(e,r,n,2),t!==null&&Ua(t,e,2)}function H1(e){var t=e.alternate;return e===Xt||t!==null&&t===Xt}function a8(e,t){om=h1=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function i8(e,t,r){if((r&4194048)!==0){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,K$(e,r)}}var zy={readContext:Zo,use:U1,useCallback:qn,useContext:qn,useEffect:qn,useImperativeHandle:qn,useLayoutEffect:qn,useInsertionEffect:qn,useMemo:qn,useReducer:qn,useRef:qn,useState:qn,useDebugValue:qn,useDeferredValue:qn,useTransition:qn,useSyncExternalStore:qn,useId:qn,useHostTransitionStatus:qn,useFormState:qn,useActionState:qn,useOptimistic:qn,useMemoCache:qn,useCacheRefresh:qn};zy.useEffectEvent=qn;var s8={readContext:Zo,use:U1,useCallback:function(e,t){return wa().memoizedState=[e,t===void 0?null:t],e},useContext:Zo,useEffect:q4,useImperativeHandle:function(e,t,r){r=r!=null?r.concat([e]):null,Zb(4194308,4,YL.bind(null,t,e),r)},useLayoutEffect:function(e,t){return Zb(4194308,4,e,t)},useInsertionEffect:function(e,t){Zb(4,2,e,t)},useMemo:function(e,t){var r=wa();t=t===void 0?null:t;var n=e();if(Wd){ec(!0);try{e()}finally{ec(!1)}}return r.memoizedState=[n,t],n},useReducer:function(e,t,r){var n=wa();if(r!==void 0){var o=r(t);if(Wd){ec(!0);try{r(t)}finally{ec(!1)}}}else o=t;return n.memoizedState=n.baseState=o,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:o},n.queue=e,e=e.dispatch=Cne.bind(null,Xt,e),[n.memoizedState,e]},useRef:function(e){var t=wa();return e={current:e},t.memoizedState=e},useState:function(e){e=ZE(e);var t=e.queue,r=o8.bind(null,Xt,t);return t.dispatch=r,[e.memoizedState,r]},useDebugValue:XN,useDeferredValue:function(e,t){var r=wa();return ZN(r,e,t)},useTransition:function(){var e=ZE(!1);return e=RL.bind(null,Xt,e.queue,!0,!1),wa().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,r){var n=Xt,o=wa();if(gr){if(r===void 0)throw Error(Ae(407));r=r()}else{if(r=t(),Xr===null)throw Error(Ae(349));(pr&127)!==0||DL(n,t,r)}o.memoizedState=r;var a={value:r,getSnapshot:t};return o.queue=a,q4($L.bind(null,n,a,e),[e]),n.flags|=2048,dm(9,{destroy:void 0},jL.bind(null,n,a,r,t),null),r},useId:function(){var e=wa(),t=Xr.identifierPrefix;if(gr){var r=el,n=Rs;r=(n&~(1<<32-pi(n)-1)).toString(32)+r,t="_"+t+"R_"+r,r=y1++,0<\/script>",a=a.removeChild(a.firstChild);break;case"select":a=typeof n.is=="string"?i.createElement("select",{is:n.is}):i.createElement("select"),n.multiple?a.multiple=!0:n.size&&(a.size=n.size);break;default:a=typeof n.is=="string"?i.createElement(o,{is:n.is}):i.createElement(o)}}a[Yo]=t,a[Wa]=n;e:for(i=t.child;i!==null;){if(i.tag===5||i.tag===6)a.appendChild(i.stateNode);else if(i.tag!==4&&i.tag!==27&&i.child!==null){i.child.return=i,i=i.child;continue}if(i===t)break e;for(;i.sibling===null;){if(i.return===null||i.return===t)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}t.stateNode=a;e:switch(Jo(a,o,n),o){case"button":case"input":case"select":case"textarea":n=!!n.autoFocus;break e;case"img":n=!0;break e;default:n=!1}n&&$l(t)}}return fn(t),fE(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,r),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==n&&$l(t);else{if(typeof n!="string"&&t.stateNode===null)throw Error(Ae(166));if(e=ac.current,Lf(t)){if(e=t.stateNode,r=t.memoizedProps,n=null,o=Xo,o!==null)switch(o.tag){case 27:case 5:n=o.memoizedProps}e[Yo]=t,e=!!(e.nodeValue===r||n!==null&&n.suppressHydrationWarning===!0||o6(e.nodeValue,r)),e||gc(t,!0)}else e=E1(e).createTextNode(n),e[Yo]=t,t.stateNode=e}return fn(t),null;case 31:if(r=t.memoizedState,e===null||e.memoizedState!==null){if(n=Lf(t),r!==null){if(e===null){if(!n)throw Error(Ae(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(Ae(557));e[Yo]=t}else Bd(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;fn(t),e=!1}else r=oE(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=r),e=!0;if(!e)return t.flags&256?(si(t),t):(si(t),null);if((t.flags&128)!==0)throw Error(Ae(558))}return fn(t),null;case 13:if(n=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(o=Lf(t),n!==null&&n.dehydrated!==null){if(e===null){if(!o)throw Error(Ae(318));if(o=t.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(Ae(317));o[Yo]=t}else Bd(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;fn(t),o=!1}else o=oE(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=o),o=!0;if(!o)return t.flags&256?(si(t),t):(si(t),null)}return si(t),(t.flags&128)!==0?(t.lanes=r,t):(r=n!==null,e=e!==null&&e.memoizedState!==null,r&&(n=t.child,o=null,n.alternate!==null&&n.alternate.memoizedState!==null&&n.alternate.memoizedState.cachePool!==null&&(o=n.alternate.memoizedState.cachePool.pool),a=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(a=n.memoizedState.cachePool.pool),a!==o&&(n.flags|=2048)),r!==e&&r&&(t.child.flags|=8192),$b(t,t.updateQueue),fn(t),null);case 4:return im(),e===null&&lT(t.stateNode.containerInfo),fn(t),null;case 10:return Vl(t.type),fn(t),null;case 19:if(Bo(no),n=t.memoizedState,n===null)return fn(t),null;if(o=(t.flags&128)!==0,a=n.rendering,a===null)if(o)ly(n,!1);else{if(Kn!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(a=g1(e),a!==null){for(t.flags|=128,ly(n,!1),e=a.updateQueue,t.updateQueue=e,$b(t,e),t.subtreeFlags=0,e=r,r=t.child;r!==null;)xL(r,e),r=r.sibling;return on(no,no.current&1|2),gr&&Fl(t,n.treeForkCount),t.child}e=e.sibling}n.tail!==null&&ci()>w1&&(t.flags|=128,o=!0,ly(n,!1),t.lanes=4194304)}else{if(!o)if(e=g1(a),e!==null){if(t.flags|=128,o=!0,e=e.updateQueue,t.updateQueue=e,$b(t,e),ly(n,!0),n.tail===null&&n.tailMode==="hidden"&&!a.alternate&&!gr)return fn(t),null}else 2*ci()-n.renderingStartTime>w1&&r!==536870912&&(t.flags|=128,o=!0,ly(n,!1),t.lanes=4194304);n.isBackwards?(a.sibling=t.child,t.child=a):(e=n.last,e!==null?e.sibling=a:t.child=a,n.last=a)}return n.tail!==null?(e=n.tail,n.rendering=e,n.tail=e.sibling,n.renderingStartTime=ci(),e.sibling=null,r=no.current,on(no,o?r&1|2:r&1),gr&&Fl(t,n.treeForkCount),e):(fn(t),null);case 22:case 23:return si(t),FN(),n=t.memoizedState!==null,e!==null?e.memoizedState!==null!==n&&(t.flags|=8192):n&&(t.flags|=8192),n?(r&536870912)!==0&&(t.flags&128)===0&&(fn(t),t.subtreeFlags&6&&(t.flags|=8192)):fn(t),r=t.updateQueue,r!==null&&$b(t,r.retryQueue),r=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(r=e.memoizedState.cachePool.pool),n=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(n=t.memoizedState.cachePool.pool),n!==r&&(t.flags|=2048),e!==null&&Bo($d),null;case 24:return r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),Vl(yo),fn(t),null;case 25:return null;case 30:return null}throw Error(Ae(156,t.tag))}function One(e,t){switch(jN(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Vl(yo),im(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return i1(t),null;case 31:if(t.memoizedState!==null){if(si(t),t.alternate===null)throw Error(Ae(340));Bd()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(si(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(Ae(340));Bd()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Bo(no),null;case 4:return im(),null;case 10:return Vl(t.type),null;case 22:case 23:return si(t),FN(),e!==null&&Bo($d),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Vl(yo),null;case 25:return null;default:return null}}function x8(e,t){switch(jN(t),t.tag){case 3:Vl(yo),im();break;case 26:case 27:case 5:i1(t);break;case 4:im();break;case 31:t.memoizedState!==null&&si(t);break;case 13:si(t);break;case 19:Bo(no);break;case 10:Vl(t.type);break;case 22:case 23:si(t),FN(),e!==null&&Bo($d);break;case 24:Vl(yo)}}function Qy(e,t){try{var r=t.updateQueue,n=r!==null?r.lastEffect:null;if(n!==null){var o=n.next;r=o;do{if((r.tag&e)===e){n=void 0;var a=r.create,i=r.inst;n=a(),i.destroy=n}r=r.next}while(r!==o)}}catch(s){Br(t,t.return,s)}}function hc(e,t,r){try{var n=t.updateQueue,o=n!==null?n.lastEffect:null;if(o!==null){var a=o.next;n=a;do{if((n.tag&e)===e){var i=n.inst,s=i.destroy;if(s!==void 0){i.destroy=void 0,o=t;var l=r,u=s;try{u()}catch(c){Br(o,l,c)}}}n=n.next}while(n!==a)}}catch(c){Br(t,t.return,c)}}function b8(e){var t=e.updateQueue;if(t!==null){var r=e.stateNode;try{TL(t,r)}catch(n){Br(e,e.return,n)}}}function w8(e,t,r){r.props=Hd(e.type,e.memoizedProps),r.state=e.memoizedState;try{r.componentWillUnmount()}catch(n){Br(e,t,n)}}function Cy(e,t){try{var r=e.ref;if(r!==null){switch(e.tag){case 26:case 27:case 5:var n=e.stateNode;break;case 30:n=e.stateNode;break;default:n=e.stateNode}typeof r=="function"?e.refCleanup=r(n):r.current=n}}catch(o){Br(e,t,o)}}function tl(e,t){var r=e.ref,n=e.refCleanup;if(r!==null)if(typeof n=="function")try{n()}catch(o){Br(e,t,o)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof r=="function")try{r(null)}catch(o){Br(e,t,o)}else r.current=null}function S8(e){var t=e.type,r=e.memoizedProps,n=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":r.autoFocus&&n.focus();break e;case"img":r.src?n.src=r.src:r.srcSet&&(n.srcset=r.srcSet)}}catch(o){Br(e,e.return,o)}}function mE(e,t,r){try{var n=e.stateNode;Zne(n,e.type,r,t),n[Wa]=t}catch(o){Br(e,e.return,o)}}function k8(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&xc(e.type)||e.tag===4}function gE(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||k8(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&xc(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function nN(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?(r.nodeType===9?r.body:r.nodeName==="HTML"?r.ownerDocument.body:r).insertBefore(e,t):(t=r.nodeType===9?r.body:r.nodeName==="HTML"?r.ownerDocument.body:r,t.appendChild(e),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=Hl));else if(n!==4&&(n===27&&xc(e.type)&&(r=e.stateNode,t=null),e=e.child,e!==null))for(nN(e,t,r),e=e.sibling;e!==null;)nN(e,t,r),e=e.sibling}function b1(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(n===27&&xc(e.type)&&(r=e.stateNode),e=e.child,e!==null))for(b1(e,t,r),e=e.sibling;e!==null;)b1(e,t,r),e=e.sibling}function _8(e){var t=e.stateNode,r=e.memoizedProps;try{for(var n=e.type,o=t.attributes;o.length;)t.removeAttributeNode(o[0]);Jo(t,n,r),t[Yo]=e,t[Wa]=r}catch(a){Br(e,e.return,a)}}var Ul=!1,ho=!1,hE=!1,n$=typeof WeakSet=="function"?WeakSet:Set,Lo=null;function Pne(e,t){if(e=e.containerInfo,cN=P1,e=dL(e),ON(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var o=n.anchorOffset,a=n.focusNode;n=n.focusOffset;try{r.nodeType,a.nodeType}catch{r=null;break e}var i=0,s=-1,l=-1,u=0,c=0,d=e,p=null;t:for(;;){for(var f;d!==r||o!==0&&d.nodeType!==3||(s=i+o),d!==a||n!==0&&d.nodeType!==3||(l=i+n),d.nodeType===3&&(i+=d.nodeValue.length),(f=d.firstChild)!==null;)p=d,d=f;for(;;){if(d===e)break t;if(p===r&&++u===o&&(s=i),p===a&&++c===n&&(l=i),(f=d.nextSibling)!==null)break;d=p,p=d.parentNode}d=f}r=s===-1||l===-1?null:{start:s,end:l}}else r=null}r=r||{start:0,end:0}}else r=null;for(dN={focusedElem:e,selectionRange:r},P1=!1,Lo=t;Lo!==null;)if(t=Lo,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Lo=e;else for(;Lo!==null;){switch(t=Lo,a=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(r=0;r title"))),Jo(a,n,r),a[Yo]=e,zo(a),n=a;break e;case"link":var i=C$("link","href",o).get(n+(r.href||""));if(i){for(var s=0;sb&&(i=b,b=y,y=i);var g=N4(s,y),h=N4(s,b);if(g&&h&&(f.rangeCount!==1||f.anchorNode!==g.node||f.anchorOffset!==g.offset||f.focusNode!==h.node||f.focusOffset!==h.offset)){var v=d.createRange();v.setStart(g.node,g.offset),f.removeAllRanges(),y>b?(f.addRange(v),f.extend(h.node,h.offset)):(v.setEnd(h.node,h.offset),f.addRange(v))}}}}for(d=[],f=s;f=f.parentNode;)f.nodeType===1&&d.push({element:f,left:f.scrollLeft,top:f.scrollTop});for(typeof s.focus=="function"&&s.focus(),s=0;sr?32:r,$t.T=null,r=iN,iN=null;var a=cc,i=Gl;if(ko=0,fm=cc=null,Gl=0,(Tr&6)!==0)throw Error(Ae(331));var s=Tr;if(Tr|=4,j8(a.current),M8(a,a.current,i,r),Tr=s,Ry(0,!1),di&&typeof di.onPostCommitFiberRoot=="function")try{di.onPostCommitFiberRoot(Ky,a)}catch{}return!0}finally{Or.p=o,$t.T=n,Z8(e,t)}}function s$(e,t,r){t=Ui(r,t),t=eN(e.stateNode,t,2),e=lc(e,t,2),e!==null&&(Gy(e,2),ol(e))}function Br(e,t,r){if(e.tag===3)s$(e,e,r);else for(;t!==null;){if(t.tag===3){s$(t,e,r);break}else if(t.tag===1){var n=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof n.componentDidCatch=="function"&&(uc===null||!uc.has(n))){e=Ui(r,e),r=p8(2),n=lc(t,r,2),n!==null&&(f8(r,n,t,e),Gy(n,2),ol(n));break}}t=t.return}}function vE(e,t,r){var n=e.pingCache;if(n===null){n=e.pingCache=new Dne;var o=new Set;n.set(t,o)}else o=n.get(t),o===void 0&&(o=new Set,n.set(t,o));o.has(r)||(oT=!0,o.add(r),e=Bne.bind(null,e,t,r),t.then(e,e))}function Bne(e,t,r){var n=e.pingCache;n!==null&&n.delete(t),e.pingedLanes|=e.suspendedLanes&r,e.warmLanes&=~r,Xr===e&&(pr&r)===r&&(Kn===4||Kn===3&&(pr&62914560)===pr&&300>ci()-q1?(Tr&2)===0&&mm(e,0):aT|=r,pm===pr&&(pm=0)),ol(e)}function Q8(e,t){t===0&&(t=H$()),e=Gd(e,t),e!==null&&(Gy(e,t),ol(e))}function Fne(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),Q8(e,r)}function Une(e,t){var r=0;switch(e.tag){case 31:case 13:var n=e.stateNode,o=e.memoizedState;o!==null&&(r=o.retryLane);break;case 19:n=e.stateNode;break;case 22:n=e.stateNode._retryCache;break;default:throw Error(Ae(314))}n!==null&&n.delete(t),Q8(e,r)}function Wne(e,t){return wN(e,t)}var _1=null,Ff=null,lN=!1,C1=!1,xE=!1,oc=0;function ol(e){e!==Ff&&e.next===null&&(Ff===null?_1=Ff=e:Ff=Ff.next=e),C1=!0,lN||(lN=!0,qne())}function Ry(e,t){if(!xE&&C1){xE=!0;do for(var r=!1,n=_1;n!==null;){if(!t)if(e!==0){var o=n.pendingLanes;if(o===0)var a=0;else{var i=n.suspendedLanes,s=n.pingedLanes;a=(1<<31-pi(42|e)+1)-1,a&=o&~(i&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(r=!0,l$(n,a))}else a=pr,a=I1(n,n===Xr?a:0,n.cancelPendingCommit!==null||n.timeoutHandle!==-1),(a&3)===0||Vy(n,a)||(r=!0,l$(n,a));n=n.next}while(r);xE=!1}}function Hne(){R8()}function R8(){C1=lN=!1;var e=0;oc!==0&&Qne()&&(e=oc);for(var t=ci(),r=null,n=_1;n!==null;){var o=n.next,a=e6(n,t);a===0?(n.next=null,r===null?_1=o:r.next=o,o===null&&(Ff=r)):(r=n,(e!==0||(a&3)!==0)&&(C1=!0)),n=o}ko!==0&&ko!==5||Ry(e,!1),oc!==0&&(oc=0)}function e6(e,t){for(var r=e.suspendedLanes,n=e.pingedLanes,o=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var c=l.transferSize,d=l.initiatorType;c&&g$(d)&&(l=l.responseEnd,i+=c*(l"u"?null:document;function u6(e,t,r){var n=Sm;if(n&&typeof t=="string"&&t){var o=Fi(t);o='link[rel="'+e+'"][href="'+o+'"]',typeof r=="string"&&(o+='[crossorigin="'+r+'"]'),S$.has(o)||(S$.add(o),e={rel:e,crossOrigin:r,href:t},n.querySelector(o)===null&&(t=n.createElement("link"),Jo(t,"link",e),zo(t),n.head.appendChild(t)))}}function soe(e){Rl.D(e),u6("dns-prefetch",e,null)}function loe(e,t){Rl.C(e,t),u6("preconnect",e,t)}function uoe(e,t,r){Rl.L(e,t,r);var n=Sm;if(n&&e&&t){var o='link[rel="preload"][as="'+Fi(t)+'"]';t==="image"&&r&&r.imageSrcSet?(o+='[imagesrcset="'+Fi(r.imageSrcSet)+'"]',typeof r.imageSizes=="string"&&(o+='[imagesizes="'+Fi(r.imageSizes)+'"]')):o+='[href="'+Fi(e)+'"]';var a=o;switch(t){case"style":a=gm(e);break;case"script":a=km(e)}Ki.has(a)||(e=gn({rel:"preload",href:t==="image"&&r&&r.imageSrcSet?void 0:e,as:t},r),Ki.set(a,e),n.querySelector(o)!==null||t==="style"&&n.querySelector(ev(a))||t==="script"&&n.querySelector(tv(a))||(t=n.createElement("link"),Jo(t,"link",e),zo(t),n.head.appendChild(t)))}}function coe(e,t){Rl.m(e,t);var r=Sm;if(r&&e){var n=t&&typeof t.as=="string"?t.as:"script",o='link[rel="modulepreload"][as="'+Fi(n)+'"][href="'+Fi(e)+'"]',a=o;switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":a=km(e)}if(!Ki.has(a)&&(e=gn({rel:"modulepreload",href:e},t),Ki.set(a,e),r.querySelector(o)===null)){switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(r.querySelector(tv(a)))return}n=r.createElement("link"),Jo(n,"link",e),zo(n),r.head.appendChild(n)}}}function doe(e,t,r){Rl.S(e,t,r);var n=Sm;if(n&&e){var o=Rf(n).hoistableStyles,a=gm(e);t=t||"default";var i=o.get(a);if(!i){var s={loading:0,preload:null};if(i=n.querySelector(ev(a)))s.loading=5;else{e=gn({rel:"stylesheet",href:e,"data-precedence":t},r),(r=Ki.get(a))&&uT(e,r);var l=i=n.createElement("link");zo(l),Jo(l,"link",e),l._p=new Promise(function(u,c){l.onload=u,l.onerror=c}),l.addEventListener("load",function(){s.loading|=1}),l.addEventListener("error",function(){s.loading|=2}),s.loading|=4,e1(i,t,n)}i={type:"stylesheet",instance:i,count:1,state:s},o.set(a,i)}}}function poe(e,t){Rl.X(e,t);var r=Sm;if(r&&e){var n=Rf(r).hoistableScripts,o=km(e),a=n.get(o);a||(a=r.querySelector(tv(o)),a||(e=gn({src:e,async:!0},t),(t=Ki.get(o))&&cT(e,t),a=r.createElement("script"),zo(a),Jo(a,"link",e),r.head.appendChild(a)),a={type:"script",instance:a,count:1,state:null},n.set(o,a))}}function foe(e,t){Rl.M(e,t);var r=Sm;if(r&&e){var n=Rf(r).hoistableScripts,o=km(e),a=n.get(o);a||(a=r.querySelector(tv(o)),a||(e=gn({src:e,async:!0,type:"module"},t),(t=Ki.get(o))&&cT(e,t),a=r.createElement("script"),zo(a),Jo(a,"link",e),r.head.appendChild(a)),a={type:"script",instance:a,count:1,state:null},n.set(o,a))}}function k$(e,t,r,n){var o=(o=ac.current)?N1(o):null;if(!o)throw Error(Ae(446));switch(e){case"meta":case"title":return null;case"style":return typeof r.precedence=="string"&&typeof r.href=="string"?(t=gm(r.href),r=Rf(o).hoistableStyles,n=r.get(t),n||(n={type:"style",instance:null,count:0,state:null},r.set(t,n)),n):{type:"void",instance:null,count:0,state:null};case"link":if(r.rel==="stylesheet"&&typeof r.href=="string"&&typeof r.precedence=="string"){e=gm(r.href);var a=Rf(o).hoistableStyles,i=a.get(e);if(i||(o=o.ownerDocument||o,i={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},a.set(e,i),(a=o.querySelector(ev(e)))&&!a._p&&(i.instance=a,i.state.loading=5),Ki.has(e)||(r={rel:"preload",as:"style",href:r.href,crossOrigin:r.crossOrigin,integrity:r.integrity,media:r.media,hrefLang:r.hrefLang,referrerPolicy:r.referrerPolicy},Ki.set(e,r),a||moe(o,e,r,i.state))),t&&n===null)throw Error(Ae(528,""));return i}if(t&&n!==null)throw Error(Ae(529,""));return null;case"script":return t=r.async,r=r.src,typeof r=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=km(r),r=Rf(o).hoistableScripts,n=r.get(t),n||(n={type:"script",instance:null,count:0,state:null},r.set(t,n)),n):{type:"void",instance:null,count:0,state:null};default:throw Error(Ae(444,e))}}function gm(e){return'href="'+Fi(e)+'"'}function ev(e){return'link[rel="stylesheet"]['+e+"]"}function c6(e){return gn({},e,{"data-precedence":e.precedence,precedence:null})}function moe(e,t,r,n){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?n.loading=1:(t=e.createElement("link"),n.preload=t,t.addEventListener("load",function(){return n.loading|=1}),t.addEventListener("error",function(){return n.loading|=2}),Jo(t,"link",r),zo(t),e.head.appendChild(t))}function km(e){return'[src="'+Fi(e)+'"]'}function tv(e){return"script[async]"+e}function _$(e,t,r){if(t.count++,t.instance===null)switch(t.type){case"style":var n=e.querySelector('style[data-href~="'+Fi(r.href)+'"]');if(n)return t.instance=n,zo(n),n;var o=gn({},r,{"data-href":r.href,"data-precedence":r.precedence,href:null,precedence:null});return n=(e.ownerDocument||e).createElement("style"),zo(n),Jo(n,"style",o),e1(n,r.precedence,e),t.instance=n;case"stylesheet":o=gm(r.href);var a=e.querySelector(ev(o));if(a)return t.state.loading|=4,t.instance=a,zo(a),a;n=c6(r),(o=Ki.get(o))&&uT(n,o),a=(e.ownerDocument||e).createElement("link"),zo(a);var i=a;return i._p=new Promise(function(s,l){i.onload=s,i.onerror=l}),Jo(a,"link",n),t.state.loading|=4,e1(a,r.precedence,e),t.instance=a;case"script":return a=km(r.src),(o=e.querySelector(tv(a)))?(t.instance=o,zo(o),o):(n=r,(o=Ki.get(a))&&(n=gn({},r),cT(n,o)),e=e.ownerDocument||e,o=e.createElement("script"),zo(o),Jo(o,"link",n),e.head.appendChild(o),t.instance=o);case"void":return null;default:throw Error(Ae(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(n=t.instance,t.state.loading|=4,e1(n,r.precedence,e));return t.instance}function e1(e,t,r){for(var n=r.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),o=n.length?n[n.length-1]:null,a=o,i=0;i title"):null)}function goe(e,t,r){if(r===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;return t.rel==="stylesheet"?(e=t.disabled,typeof t.precedence=="string"&&e==null):!0;case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function d6(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function hoe(e,t,r,n){if(r.type==="stylesheet"&&(typeof n.media!="string"||matchMedia(n.media).matches!==!1)&&(r.state.loading&4)===0){if(r.instance===null){var o=gm(n.href),a=t.querySelector(ev(o));if(a){t=a._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=T1.bind(e),t.then(e,e)),r.state.loading|=4,r.instance=a,zo(a);return}a=t.ownerDocument||t,n=c6(n),(o=Ki.get(o))&&uT(n,o),a=a.createElement("link"),zo(a);var i=a;i._p=new Promise(function(s,l){i.onload=s,i.onerror=l}),Jo(a,"link",n),r.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(r,t),(t=r.state.preload)&&(r.state.loading&3)===0&&(e.count++,r=T1.bind(e),t.addEventListener("load",r),t.addEventListener("error",r))}}var kE=0;function yoe(e,t){return e.stylesheets&&e.count===0&&r1(e,e.stylesheets),0kE?50:800)+t);return e.unsuspend=r,function(){e.unsuspend=null,clearTimeout(n),clearTimeout(o)}}:null}function T1(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)r1(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var O1=null;function r1(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,O1=new Map,t.forEach(voe,e),O1=null,T1.call(e))}function voe(e,t){if(!(t.state.loading&4)){var r=O1.get(e);if(r)var n=r.get(null);else{r=new Map,O1.set(e,r);for(var o=e.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;a{"use strict";function b6(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(b6)}catch(e){console.error(e)}}b6(),w6.exports=x6()});var eB=$o(Rz=>{"use strict";var Vm=Q();function qae(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Kae=typeof Object.is=="function"?Object.is:qae,Vae=Vm.useState,Gae=Vm.useEffect,Yae=Vm.useLayoutEffect,Xae=Vm.useDebugValue;function Zae(e,t){var r=t(),n=Vae({inst:{value:r,getSnapshot:t}}),o=n[0].inst,a=n[1];return Yae(function(){o.value=r,o.getSnapshot=t,fO(o)&&a({inst:o})},[e,r,t]),Gae(function(){return fO(o)&&a({inst:o}),e(function(){fO(o)&&a({inst:o})})},[e]),Xae(r),r}function fO(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!Kae(e,r)}catch{return!0}}function Jae(e,t){return t()}var Qae=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Jae:Zae;Rz.useSyncExternalStore=Vm.useSyncExternalStore!==void 0?Vm.useSyncExternalStore:Qae});var rB=$o((DPe,tB)=>{"use strict";tB.exports=eB()});var oB=$o(nB=>{"use strict";var Yw=Q(),Rae=rB();function eie(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var tie=typeof Object.is=="function"?Object.is:eie,rie=Rae.useSyncExternalStore,nie=Yw.useRef,oie=Yw.useEffect,aie=Yw.useMemo,iie=Yw.useDebugValue;nB.useSyncExternalStoreWithSelector=function(e,t,r,n,o){var a=nie(null);if(a.current===null){var i={hasValue:!1,value:null};a.current=i}else i=a.current;a=aie(function(){function l(f){if(!u){if(u=!0,c=f,f=n(f),o!==void 0&&i.hasValue){var m=i.value;if(o(m,f))return d=m}return d=f}if(m=d,tie(c,f))return m;var y=n(f);return o!==void 0&&o(m,y)?(c=f,m):(c=f,d=y)}var u=!1,c,d,p=r===void 0?null:r;return[function(){return l(t())},p===null?void 0:function(){return l(p())}]},[t,r,n,o]);var s=rie(e,a[0],a[1]);return oie(function(){i.hasValue=!0,i.value=s},[s]),iie(s),s}});var iB=$o(($Pe,aB)=>{"use strict";aB.exports=oB()});var G7=$o(V7=>{"use strict";var Nv=Q();function cle(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var dle=typeof Object.is=="function"?Object.is:cle,ple=Nv.useSyncExternalStore,fle=Nv.useRef,mle=Nv.useEffect,gle=Nv.useMemo,hle=Nv.useDebugValue;V7.useSyncExternalStoreWithSelector=function(e,t,r,n,o){var a=fle(null);if(a.current===null){var i={hasValue:!1,value:null};a.current=i}else i=a.current;a=gle(function(){function l(f){if(!u){if(u=!0,c=f,f=n(f),o!==void 0&&i.hasValue){var m=i.value;if(o(m,f))return d=m}return d=f}if(m=d,dle(c,f))return m;var y=n(f);return o!==void 0&&o(m,y)?(c=f,m):(c=f,d=y)}var u=!1,c,d,p=r===void 0?null:r;return[function(){return l(t())},p===null?void 0:function(){return l(p())}]},[t,r,n,o]);var s=ple(e,a[0],a[1]);return mle(function(){i.hasValue=!0,i.value=s},[s]),hle(s),s}});var X7=$o((j5e,Y7)=>{"use strict";Y7.exports=G7()});var lP=$o((bF,ok)=>{(function(e){"use strict";var t=1e9,r={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},n=!0,o="[DecimalError] ",a=o+"Invalid argument: ",i=o+"Exponent out of range: ",s=Math.floor,l=Math.pow,u=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,c,d=1e7,p=7,f=9007199254740991,m=s(f/p),y={};y.absoluteValue=y.abs=function(){var T=new this.constructor(this);return T.s&&(T.s=1),T},y.comparedTo=y.cmp=function(T){var P,I,M,j,O=this;if(T=new O.constructor(T),O.s!==T.s)return O.s||-T.s;if(O.e!==T.e)return O.e>T.e^O.s<0?1:-1;for(M=O.d.length,j=T.d.length,P=0,I=MT.d[P]^O.s<0?1:-1;return M===j?0:M>j^O.s<0?1:-1},y.decimalPlaces=y.dp=function(){var T=this,P=T.d.length-1,I=(P-T.e)*p;if(P=T.d[P],P)for(;P%10==0;P/=10)I--;return I<0?0:I},y.dividedBy=y.div=function(T){return v(this,new this.constructor(T))},y.dividedToIntegerBy=y.idiv=function(T){var P=this,I=P.constructor;return C(v(P,new I(T),0,1),I.precision)},y.equals=y.eq=function(T){return!this.cmp(T)},y.exponent=function(){return S(this)},y.greaterThan=y.gt=function(T){return this.cmp(T)>0},y.greaterThanOrEqualTo=y.gte=function(T){return this.cmp(T)>=0},y.isInteger=y.isint=function(){return this.e>this.d.length-2},y.isNegative=y.isneg=function(){return this.s<0},y.isPositive=y.ispos=function(){return this.s>0},y.isZero=function(){return this.s===0},y.lessThan=y.lt=function(T){return this.cmp(T)<0},y.lessThanOrEqualTo=y.lte=function(T){return this.cmp(T)<1},y.logarithm=y.log=function(T){var P,I=this,M=I.constructor,j=M.precision,O=j+5;if(T===void 0)T=new M(10);else if(T=new M(T),T.s<1||T.eq(c))throw Error(o+"NaN");if(I.s<1)throw Error(o+(I.s?"NaN":"-Infinity"));return I.eq(c)?new M(0):(n=!1,P=v(_(I,O),_(T,O),O),n=!0,C(P,j))},y.minus=y.sub=function(T){var P=this;return T=new P.constructor(T),P.s==T.s?N(P,T):b(P,(T.s=-T.s,T))},y.modulo=y.mod=function(T){var P,I=this,M=I.constructor,j=M.precision;if(T=new M(T),!T.s)throw Error(o+"NaN");return I.s?(n=!1,P=v(I,T,0,1).times(T),n=!0,I.minus(P)):C(new M(I),j)},y.naturalExponential=y.exp=function(){return x(this)},y.naturalLogarithm=y.ln=function(){return _(this)},y.negated=y.neg=function(){var T=new this.constructor(this);return T.s=-T.s||0,T},y.plus=y.add=function(T){var P=this;return T=new P.constructor(T),P.s==T.s?b(P,T):N(P,(T.s=-T.s,T))},y.precision=y.sd=function(T){var P,I,M,j=this;if(T!==void 0&&T!==!!T&&T!==1&&T!==0)throw Error(a+T);if(P=S(j)+1,M=j.d.length-1,I=M*p+1,M=j.d[M],M){for(;M%10==0;M/=10)I--;for(M=j.d[0];M>=10;M/=10)I++}return T&&P>I?P:I},y.squareRoot=y.sqrt=function(){var T,P,I,M,j,O,F,V=this,z=V.constructor;if(V.s<1){if(!V.s)return new z(0);throw Error(o+"NaN")}for(T=S(V),n=!1,j=Math.sqrt(+V),j==0||j==1/0?(P=h(V.d),(P.length+T)%2==0&&(P+="0"),j=Math.sqrt(P),T=s((T+1)/2)-(T<0||T%2),j==1/0?P="5e"+T:(P=j.toExponential(),P=P.slice(0,P.indexOf("e")+1)+T),M=new z(P)):M=new z(j.toString()),I=z.precision,j=F=I+3;;)if(O=M,M=O.plus(v(V,O,F+2)).times(.5),h(O.d).slice(0,F)===(P=h(M.d)).slice(0,F)){if(P=P.slice(F-3,F+1),j==F&&P=="4999"){if(C(O,I+1,0),O.times(O).eq(V)){M=O;break}}else if(P!="9999")break;F+=4}return n=!0,C(M,I)},y.times=y.mul=function(T){var P,I,M,j,O,F,V,z,G,q=this,oe=q.constructor,Me=q.d,fe=(T=new oe(T)).d;if(!q.s||!T.s)return new oe(0);for(T.s*=q.s,I=q.e+T.e,z=Me.length,G=fe.length,z=0;){for(P=0,j=z+M;j>M;)V=O[j]+fe[M]*Me[j-M-1]+P,O[j--]=V%d|0,P=V/d|0;O[j]=(O[j]+P)%d|0}for(;!O[--F];)O.pop();return P?++I:O.shift(),T.d=O,T.e=I,n?C(T,oe.precision):T},y.toDecimalPlaces=y.todp=function(T,P){var I=this,M=I.constructor;return I=new M(I),T===void 0?I:(g(T,0,t),P===void 0?P=M.rounding:g(P,0,8),C(I,T+S(I)+1,P))},y.toExponential=function(T,P){var I,M=this,j=M.constructor;return T===void 0?I=L(M,!0):(g(T,0,t),P===void 0?P=j.rounding:g(P,0,8),M=C(new j(M),T+1,P),I=L(M,!0,T+1)),I},y.toFixed=function(T,P){var I,M,j=this,O=j.constructor;return T===void 0?L(j):(g(T,0,t),P===void 0?P=O.rounding:g(P,0,8),M=C(new O(j),T+S(j)+1,P),I=L(M.abs(),!1,T+S(M)+1),j.isneg()&&!j.isZero()?"-"+I:I)},y.toInteger=y.toint=function(){var T=this,P=T.constructor;return C(new P(T),S(T)+1,P.rounding)},y.toNumber=function(){return+this},y.toPower=y.pow=function(T){var P,I,M,j,O,F,V=this,z=V.constructor,G=12,q=+(T=new z(T));if(!T.s)return new z(c);if(V=new z(V),!V.s){if(T.s<1)throw Error(o+"Infinity");return V}if(V.eq(c))return V;if(M=z.precision,T.eq(c))return C(V,M);if(P=T.e,I=T.d.length-1,F=P>=I,O=V.s,F){if((I=q<0?-q:q)<=f){for(j=new z(c),P=Math.ceil(M/p+4),n=!1;I%2&&(j=j.times(V),J(j.d,P)),I=s(I/2),I!==0;)V=V.times(V),J(V.d,P);return n=!0,T.s<0?new z(c).div(j):C(j,M)}}else if(O<0)throw Error(o+"NaN");return O=O<0&&T.d[Math.max(P,I)]&1?-1:1,V.s=1,n=!1,j=T.times(_(V,M+G)),n=!0,j=x(j),j.s=O,j},y.toPrecision=function(T,P){var I,M,j=this,O=j.constructor;return T===void 0?(I=S(j),M=L(j,I<=O.toExpNeg||I>=O.toExpPos)):(g(T,1,t),P===void 0?P=O.rounding:g(P,0,8),j=C(new O(j),T,P),I=S(j),M=L(j,T<=I||I<=O.toExpNeg,T)),M},y.toSignificantDigits=y.tosd=function(T,P){var I=this,M=I.constructor;return T===void 0?(T=M.precision,P=M.rounding):(g(T,1,t),P===void 0?P=M.rounding:g(P,0,8)),C(new M(I),T,P)},y.toString=y.valueOf=y.val=y.toJSON=function(){var T=this,P=S(T),I=T.constructor;return L(T,P<=I.toExpNeg||P>=I.toExpPos)};function b(T,P){var I,M,j,O,F,V,z,G,q=T.constructor,oe=q.precision;if(!T.s||!P.s)return P.s||(P=new q(T)),n?C(P,oe):P;if(z=T.d,G=P.d,F=T.e,j=P.e,z=z.slice(),O=F-j,O){for(O<0?(M=z,O=-O,V=G.length):(M=G,j=F,V=z.length),F=Math.ceil(oe/p),V=F>V?F+1:V+1,O>V&&(O=V,M.length=1),M.reverse();O--;)M.push(0);M.reverse()}for(V=z.length,O=G.length,V-O<0&&(O=V,M=G,G=z,z=M),I=0;O;)I=(z[--O]=z[O]+G[O]+I)/d|0,z[O]%=d;for(I&&(z.unshift(I),++j),V=z.length;z[--V]==0;)z.pop();return P.d=z,P.e=j,n?C(P,oe):P}function g(T,P,I){if(T!==~~T||TI)throw Error(a+T)}function h(T){var P,I,M,j=T.length-1,O="",F=T[0];if(j>0){for(O+=F,P=1;PF?1:-1;else for(V=z=0;Vj[V]?1:-1;break}return z}function I(M,j,O){for(var F=0;O--;)M[O]-=F,F=M[O]1;)M.shift()}return function(M,j,O,F){var V,z,G,q,oe,Me,fe,le,R,te,He,_e,D,Y,E,$,ee,U,me=M.constructor,et=M.s==j.s?1:-1,rt=M.d,ge=j.d;if(!M.s)return new me(M);if(!j.s)throw Error(o+"Division by zero");for(z=M.e-j.e,ee=ge.length,E=rt.length,fe=new me(et),le=fe.d=[],G=0;ge[G]==(rt[G]||0);)++G;if(ge[G]>(rt[G]||0)&&--z,O==null?_e=O=me.precision:F?_e=O+(S(M)-S(j))+1:_e=O,_e<0)return new me(0);if(_e=_e/p+2|0,G=0,ee==1)for(q=0,ge=ge[0],_e++;(G1&&(ge=T(ge,q),rt=T(rt,q),ee=ge.length,E=rt.length),Y=ee,R=rt.slice(0,ee),te=R.length;te=d/2&&++$;do q=0,V=P(ge,R,ee,te),V<0?(He=R[0],ee!=te&&(He=He*d+(R[1]||0)),q=He/$|0,q>1?(q>=d&&(q=d-1),oe=T(ge,q),Me=oe.length,te=R.length,V=P(oe,R,Me,te),V==1&&(q--,I(oe,ee16)throw Error(i+S(T));if(!T.s)return new q(c);for(P==null?(n=!1,V=oe):V=P,F=new q(.03125);T.abs().gte(.1);)T=T.times(F),G+=5;for(M=Math.log(l(2,G))/Math.LN10*2+5|0,V+=M,I=j=O=new q(c),q.precision=V;;){if(j=C(j.times(T),V),I=I.times(++z),F=O.plus(v(j,I,V)),h(F.d).slice(0,V)===h(O.d).slice(0,V)){for(;G--;)O=C(O.times(O),V);return q.precision=oe,P==null?(n=!0,C(O,oe)):O}O=F}}function S(T){for(var P=T.e*p,I=T.d[0];I>=10;I/=10)P++;return P}function k(T,P,I){if(P>T.LN10.sd())throw n=!0,I&&(T.precision=I),Error(o+"LN10 precision limit exceeded");return C(new T(T.LN10),P)}function w(T){for(var P="";T--;)P+="0";return P}function _(T,P){var I,M,j,O,F,V,z,G,q,oe=1,Me=10,fe=T,le=fe.d,R=fe.constructor,te=R.precision;if(fe.s<1)throw Error(o+(fe.s?"NaN":"-Infinity"));if(fe.eq(c))return new R(0);if(P==null?(n=!1,G=te):G=P,fe.eq(10))return P==null&&(n=!0),k(R,G);if(G+=Me,R.precision=G,I=h(le),M=I.charAt(0),O=S(fe),Math.abs(O)<15e14){for(;M<7&&M!=1||M==1&&I.charAt(1)>3;)fe=fe.times(T),I=h(fe.d),M=I.charAt(0),oe++;O=S(fe),M>1?(fe=new R("0."+I),O++):fe=new R(M+"."+I.slice(1))}else return z=k(R,G+2,te).times(O+""),fe=_(new R(M+"."+I.slice(1)),G-Me).plus(z),R.precision=te,P==null?(n=!0,C(fe,te)):fe;for(V=F=fe=v(fe.minus(c),fe.plus(c),G),q=C(fe.times(fe),G),j=3;;){if(F=C(F.times(q),G),z=V.plus(v(F,new R(j),G)),h(z.d).slice(0,G)===h(V.d).slice(0,G))return V=V.times(2),O!==0&&(V=V.plus(k(R,G+2,te).times(O+""))),V=v(V,new R(oe),G),R.precision=te,P==null?(n=!0,C(V,te)):V;V=z,j+=2}}function A(T,P){var I,M,j;for((I=P.indexOf("."))>-1&&(P=P.replace(".","")),(M=P.search(/e/i))>0?(I<0&&(I=M),I+=+P.slice(M+1),P=P.substring(0,M)):I<0&&(I=P.length),M=0;P.charCodeAt(M)===48;)++M;for(j=P.length;P.charCodeAt(j-1)===48;)--j;if(P=P.slice(M,j),P){if(j-=M,I=I-M-1,T.e=s(I/p),T.d=[],M=(I+1)%p,I<0&&(M+=p),Mm||T.e<-m))throw Error(i+I)}else T.s=0,T.e=0,T.d=[0];return T}function C(T,P,I){var M,j,O,F,V,z,G,q,oe=T.d;for(F=1,O=oe[0];O>=10;O/=10)F++;if(M=P-F,M<0)M+=p,j=P,G=oe[q=0];else{if(q=Math.ceil((M+1)/p),O=oe.length,q>=O)return T;for(G=O=oe[q],F=1;O>=10;O/=10)F++;M%=p,j=M-p+F}if(I!==void 0&&(O=l(10,F-j-1),V=G/O%10|0,z=P<0||oe[q+1]!==void 0||G%O,z=I<4?(V||z)&&(I==0||I==(T.s<0?3:2)):V>5||V==5&&(I==4||z||I==6&&(M>0?j>0?G/l(10,F-j):0:oe[q-1])%10&1||I==(T.s<0?8:7))),P<1||!oe[0])return z?(O=S(T),oe.length=1,P=P-O-1,oe[0]=l(10,(p-P%p)%p),T.e=s(-P/p)||0):(oe.length=1,oe[0]=T.e=T.s=0),T;if(M==0?(oe.length=q,O=1,q--):(oe.length=q+1,O=l(10,p-M),oe[q]=j>0?(G/l(10,F-j)%l(10,j)|0)*O:0),z)for(;;)if(q==0){(oe[0]+=O)==d&&(oe[0]=1,++T.e);break}else{if(oe[q]+=O,oe[q]!=d)break;oe[q--]=0,O=1}for(M=oe.length;oe[--M]===0;)oe.pop();if(n&&(T.e>m||T.e<-m))throw Error(i+S(T));return T}function N(T,P){var I,M,j,O,F,V,z,G,q,oe,Me=T.constructor,fe=Me.precision;if(!T.s||!P.s)return P.s?P.s=-P.s:P=new Me(T),n?C(P,fe):P;if(z=T.d,oe=P.d,M=P.e,G=T.e,z=z.slice(),F=G-M,F){for(q=F<0,q?(I=z,F=-F,V=oe.length):(I=oe,M=G,V=z.length),j=Math.max(Math.ceil(fe/p),V)+2,F>j&&(F=j,I.length=1),I.reverse(),j=F;j--;)I.push(0);I.reverse()}else{for(j=z.length,V=oe.length,q=j0;--j)z[V++]=0;for(j=oe.length;j>F;){if(z[--j]0?O=O.charAt(0)+"."+O.slice(1)+w(M):F>1&&(O=O.charAt(0)+"."+O.slice(1)),O=O+(j<0?"e":"e+")+j):j<0?(O="0."+w(-j-1)+O,I&&(M=I-F)>0&&(O+=w(M))):j>=F?(O+=w(j+1-F),I&&(M=I-j-1)>0&&(O=O+"."+w(M))):((M=j+1)0&&(j+1===F&&(O+="."),O+=w(M))),T.s<0?"-"+O:O}function J(T,P){if(T.length>P)return T.length=P,!0}function B(T){var P,I,M;function j(O){var F=this;if(!(F instanceof j))return new j(O);if(F.constructor=j,O instanceof j){F.s=O.s,F.e=O.e,F.d=(O=O.d)?O.slice():O;return}if(typeof O=="number"){if(O*0!==0)throw Error(a+O);if(O>0)F.s=1;else if(O<0)O=-O,F.s=-1;else{F.s=0,F.e=0,F.d=[0];return}if(O===~~O&&O<1e7){F.e=0,F.d=[O];return}return A(F,O.toString())}else if(typeof O!="string")throw Error(a+O);if(O.charCodeAt(0)===45?(O=O.slice(1),F.s=-1):F.s=1,u.test(O))A(F,O);else throw Error(a+O)}if(j.prototype=y,j.ROUND_UP=0,j.ROUND_DOWN=1,j.ROUND_CEIL=2,j.ROUND_FLOOR=3,j.ROUND_HALF_UP=4,j.ROUND_HALF_DOWN=5,j.ROUND_HALF_EVEN=6,j.ROUND_HALF_CEIL=7,j.ROUND_HALF_FLOOR=8,j.clone=B,j.config=j.set=K,T===void 0&&(T={}),T)for(M=["precision","rounding","toExpNeg","toExpPos","LN10"],P=0;P=j[P+1]&&M<=j[P+2])this[I]=M;else throw Error(a+I+": "+M);if((M=T[I="LN10"])!==void 0)if(M==Math.LN10)this[I]=new this(M);else throw Error(a+I+": "+M);return this}r=B(r),r.default=r.Decimal=r,c=new r(1),typeof define=="function"&&define.amd?define(function(){return r}):typeof ok<"u"&&ok.exports?ok.exports=r:(e||(e=typeof self<"u"&&self&&self.self==self?self:Function("return this")()),e.Decimal=r)})(bF)});var gH=$o((kBe,GM)=>{"use strict";var xge=Object.prototype.hasOwnProperty,Na="~";function xx(){}Object.create&&(xx.prototype=Object.create(null),new xx().__proto__||(Na=!1));function bge(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function mH(e,t,r,n,o){if(typeof r!="function")throw new TypeError("The listener must be a function");var a=new bge(r,n||e,o),i=Na?Na+t:t;return e._events[i]?e._events[i].fn?e._events[i]=[e._events[i],a]:e._events[i].push(a):(e._events[i]=a,e._eventsCount++),e}function N_(e,t){--e._eventsCount===0?e._events=new xx:delete e._events[t]}function ua(){this._events=new xx,this._eventsCount=0}ua.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)xge.call(r,n)&&t.push(Na?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};ua.prototype.listeners=function(t){var r=Na?Na+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var o=0,a=n.length,i=new Array(a);o{"use strict";var n5=Symbol.for("react.transitional.element"),o5=Symbol.for("react.portal"),W_=Symbol.for("react.fragment"),H_=Symbol.for("react.strict_mode"),q_=Symbol.for("react.profiler"),K_=Symbol.for("react.consumer"),V_=Symbol.for("react.context"),G_=Symbol.for("react.forward_ref"),Y_=Symbol.for("react.suspense"),X_=Symbol.for("react.suspense_list"),Z_=Symbol.for("react.memo"),J_=Symbol.for("react.lazy"),aye=Symbol.for("react.view_transition"),iye=Symbol.for("react.client.reference");function is(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case n5:switch(e=e.type,e){case W_:case q_:case H_:case Y_:case X_:case aye:return e;default:switch(e=e&&e.$$typeof,e){case V_:case G_:case J_:case Z_:return e;case K_:return e;default:return t}}case o5:return t}}}en.ContextConsumer=K_;en.ContextProvider=V_;en.Element=n5;en.ForwardRef=G_;en.Fragment=W_;en.Lazy=J_;en.Memo=Z_;en.Portal=o5;en.Profiler=q_;en.StrictMode=H_;en.Suspense=Y_;en.SuspenseList=X_;en.isContextConsumer=function(e){return is(e)===K_};en.isContextProvider=function(e){return is(e)===V_};en.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===n5};en.isForwardRef=function(e){return is(e)===G_};en.isFragment=function(e){return is(e)===W_};en.isLazy=function(e){return is(e)===J_};en.isMemo=function(e){return is(e)===Z_};en.isPortal=function(e){return is(e)===o5};en.isProfiler=function(e){return is(e)===q_};en.isStrictMode=function(e){return is(e)===H_};en.isSuspense=function(e){return is(e)===Y_};en.isSuspenseList=function(e){return is(e)===X_};en.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===W_||e===q_||e===H_||e===Y_||e===X_||typeof e=="object"&&e!==null&&(e.$$typeof===J_||e.$$typeof===Z_||e.$$typeof===V_||e.$$typeof===K_||e.$$typeof===G_||e.$$typeof===iye||e.getModuleId!==void 0)};en.typeOf=is});var Eq=$o((C9e,Aq)=>{"use strict";Aq.exports=Cq()});var fte=Z(Q()),mte=Z(S6());var Nt=Z(Q());var ft=Z(Q());var kr=Z(Q()),Xd={github:{emoji:"\u{1F419}",label:"GitHub"},ruby:{emoji:"\u{1F48E}",label:"Ruby"},rails:{emoji:"\u{1F6E4}\uFE0F",label:"Rails"},aws:{emoji:"\u2601\uFE0F",label:"AWS"},gcp:{emoji:"\u{1F310}",label:"GCP"},python:{emoji:"\u{1F40D}",label:"Python"},typescript:{emoji:"\u{1F4D8}",label:"TypeScript"},docker:{emoji:"\u{1F433}",label:"Docker"},kubernetes:{emoji:"\u2638\uFE0F",label:"Kubernetes"}},rv={terminal:{emoji:"\u{1F4BB}",label:"Terminal"},playwright:{emoji:"\u{1F3AD}",label:"Playwright"},filesystem:{emoji:"\u{1F4C1}",label:"Filesystem"},code:{emoji:"\u{1F468}\u200D\u{1F4BB}",label:"Code"},database:{emoji:"\u{1F5C4}\uFE0F",label:"Database"},slack:{emoji:"\u{1F4AC}",label:"Slack"},fetch:{emoji:"\u{1F310}",label:"Fetch"},search:{emoji:"\u{1F50D}",label:"Search"},edit:{emoji:"\u270F\uFE0F",label:"Edit"},translate:{emoji:"\u{1F30D}",label:"Translate"},memory:{emoji:"\u{1F9E0}",label:"Memory"},ui:{emoji:"\u{1F9E9}",label:"Generative UI"}},_m={terminal:{instructions:["github"],tools:["terminal","code"]},webDeveloper:{instructions:["typescript"],tools:["playwright","fetch"]},documentAnalysis:{instructions:["python"],tools:["database","search","code"]},writing:{instructions:["ruby"],tools:["edit","memory"]},translation:{instructions:["ruby","python","typescript"],tools:["translate","code"]},playwright:{instructions:["typescript"],tools:["playwright","fetch"]},research:{instructions:["github"],tools:["fetch","search","memory"]},imageAnalysis:{instructions:["python"],tools:["filesystem","code"]},computerUse:{instructions:["github"],tools:["terminal","playwright"]},productDesign:{instructions:["typescript"],tools:["playwright","code"]}};var Aoe=({id:e="mascot"})=>kr.default.createElement("g",{stroke:"none",fill:"none",fillRule:"evenodd",strokeWidth:"1"},kr.default.createElement("g",{transform:"translate(25, 475) scale(-1, 1) rotate(-180) translate(-25, -475) translate(0, 450)"},kr.default.createElement("g",{fillRule:"nonzero"},kr.default.createElement("path",{d:"M421,271.3 C422.733,265.1 423.667,244.633 423.8,209.9 C423.9,173.4 423.8,142.1 423.5,140.4 C423.1,137.9 412.5,126.8 373.1,87.2 C345.6,59.7 321.7,36.3 319.8,35.3 C316.7,33.6 312.5,33.5 250,33.5 C186.5,33.5 183.3,33.6 178.2,35.4 C173.5,37.2 168.3,42.1 125.2,85.3 C69.3,141.4 75.6,134.9 73.7,138.7 C72.3,141.3 72,147.2 71.8,178.6 C71.3,243.6 71.8,276 73.4,276 C74.067,276 99.6,304.854 150,362.563 L350.015,362.563 L421,271.3 Z",fill:"#EB5555",stroke:"#000000",strokeWidth:"12"})),kr.default.createElement("path",{d:"M216.5,202.5 C213.4,199.5 213.4,198.7 216.5,193.4 C223.2,182 248.2,176 264.5,181.9 C273,185 280.3,190.1 282.4,194.5 C284,197.9 284,198.3 282.5,200.6 C281.6,202 279.8,203.6 278.5,204.2 C276.4,205.1 275.4,204.7 270.1,200.8 C263,195.4 254.7,193.3 244.4,194.4 C236.1,195.3 234.3,196 228.6,200.9 C223.1,205.6 220,206.1 216.5,202.5 Z",fill:"#000000",fillRule:"nonzero"}),kr.default.createElement("path",{d:"M177.8,484.5 C169.1,482.1 162,475.2 157.7,465 C156.2,461.4 151.9,446.6 148.1,432 C144.3,417.4 140.7,404.3 140.1,402.8 L139,400 L94.8,400 C70.4,400 49.5,399.7 48.2,399.4 C45.1,398.5 42.7,393.8 43.9,390.8 C45.1,387.9 49.4,383.3 54,379.9 C68.7,369.2 86.3,364.8 120,363.4 C126.067,363.2 134.065,362.921 143.995,362.563 L350.015,362.563 C367.433,363.767 377.5,364.1 377.5,364.1 C411,365.2 433.1,371.5 446.2,383.8 C453.8,390.9 455.1,394.7 451.3,399 C451,399.3 429.6,399.7 403.7,400 L356.6,400.5 L353.3,412.5 C351.5,419.1 348.2,431.3 346.1,439.5 C339.9,463 336.7,470.5 329.4,477.5 C322.9,483.8 315.7,486.3 305.5,485.8 C298.1,485.4 296.1,484.7 280.5,477.8 C271.2,473.7 261.7,469.7 259.5,468.9 C250.9,466.1 238.1,467.9 224.9,473.8 C197.3,486.1 189.8,487.8 177.8,484.5 Z",stroke:"#000000",strokeWidth:"11",fill:"#000000",fillRule:"nonzero"}),kr.default.createElement("g",{transform:"translate(75.105, 196.182)"},kr.default.createElement("ellipse",{fill:"#F5E6D3",cx:"87",cy:"55",rx:"35",ry:"29"}),kr.default.createElement("ellipse",{fill:"#5D4037",cx:"87",cy:"57",rx:"20",ry:"20"}),kr.default.createElement("ellipse",{fill:"#2D1F1F",cx:"87",cy:"57",rx:"12",ry:"12"}),kr.default.createElement("ellipse",{fill:"#FFFFFF",cx:"80",cy:"51",rx:"5",ry:"5"}),kr.default.createElement("ellipse",{fill:"#F5E6D3",cx:"259",cy:"55",rx:"35",ry:"29"}),kr.default.createElement("ellipse",{fill:"#5D4037",cx:"259",cy:"57",rx:"20",ry:"20"}),kr.default.createElement("ellipse",{fill:"#2D1F1F",cx:"259",cy:"57",rx:"12",ry:"12"}),kr.default.createElement("ellipse",{fill:"#FFFFFF",cx:"252",cy:"51",rx:"5",ry:"5"})),kr.default.createElement("g",{transform:"translate(75.105, 196.182)",fillRule:"nonzero"},kr.default.createElement("g",{transform:"translate(267.395, 54.835) scale(-1, 1) translate(-267.395, -54.835)"},kr.default.createElement("path",{d:"M346.895,99.881 L335.287,108.67 L292.495,108.67 L211.805,108.67 C194.861,92.394 186.922,84.257 187.99,84.257 C188.99,84.257 187.689,77.518 187.99,71.118 C188.99,54.518 196.996,38.618 211.805,23.818 C219.711,15.918 222.813,13.518 230.118,10.018 C242.025,4.118 250.431,1.818 262.839,1.118 C274.147,0.518 285.354,2.218 295.561,6.018 C308.67,10.918 327.482,26.818 335.287,39.618 C342.092,50.918 346.895,65.818 346.895,76.018 C346.895,82.818 346.895,90.772 346.895,99.881 Z",stroke:"#000000",strokeWidth:"8",fill:"#000000",fillOpacity:"0.92"})),kr.default.createElement("path",{d:"M158.895,99.881 L147.295,108.67 L104.531,108.67 L23.895,108.67 C6.961,92.394 -0.972,84.257 0.095,84.257 C1.095,84.257 -0.205,77.518 0.095,71.118 C1.095,54.518 9.095,38.618 23.895,23.818 C31.795,15.918 34.895,13.518 42.195,10.018 C54.095,4.118 62.495,1.818 74.895,1.118 C86.195,0.518 97.395,2.218 107.595,6.018 C120.695,10.918 139.495,26.818 147.295,39.618 C154.095,50.918 158.895,65.818 158.895,76.018 C158.895,82.818 158.895,90.772 158.895,99.881 Z",stroke:"#000000",strokeWidth:"8",fill:"#000000",fillOpacity:"0.92"})),kr.default.createElement("g",{transform:"translate(75.105, 196.182)",fillRule:"nonzero"},kr.default.createElement("path",{d:"M187.895,73.418 C187.895,60.818 195.095,43.418 205.495,30.818 C213.379,21.259 220.29,15.351 230.066,10.615 C233.275,8.66 236.386,7.08 239.229,6.018 C246.892,3.165 255.119,1.496 263.529,1.095 C267.063,0.859 270.58,0.912 274.131,1.261 C285.374,2.105 293.475,4.47 304.672,10.018 C311.734,13.402 314.868,15.757 322.213,23.049 L322.795,23.618 C326.306,27.085 329.397,30.586 332.082,34.15 L332.148,34.235 C341.116,45.994 346.03,58.349 346.8,71.118 C346.957,74.467 346.676,77.909 346.515,80.429 C346.693,80.646 346.917,80.701 347.195,80.618 C347.366,80.542 348.039,80.501 349.213,80.495 L349.775,80.495 C352.888,80.507 358.769,80.715 367.418,81.118 C374.646,86.469 378.26,91.703 378.26,96.818 C378.26,101.933 374.646,107.042 367.418,112.146 L15.403,112.146 L-20.38,113.348 C-27.807,110.322 -31.52,105.629 -31.52,99.27 C-31.52,92.911 -27.807,88.087 -20.38,84.798 C-13.63,84.605 -8.537,84.463 -5.101,84.373 C-5.115,84.296 -5.084,84.257 -5.01,84.257 C-4.01,84.257 -5.311,77.518 -5.01,71.118 C-4.01,54.518 3.996,38.618 18.805,23.818 C26.711,15.918 29.813,13.518 37.118,10.018 C49.025,4.118 57.431,1.818 69.839,1.118 C72.166,0.994 74.489,0.968 76.8,1.038 C76.165,1.058 75.53,1.084 74.895,1.118 C62.495,1.818 54.095,4.118 42.195,10.018 C34.895,13.518 31.795,15.918 23.895,23.818 C9.095,38.618 1.095,54.518 0.095,71.118 C-0.205,77.518 1.095,84.257 0.095,84.257 C-0.4,84.257 -2.131,84.296 -5.101,84.373 C-4.938,85.42 3.031,93.518 18.805,108.67 L142.287,108.67 L153.895,99.881 L153.895,76.018 C153.895,65.818 149.092,50.918 142.287,39.618 C134.482,26.818 115.67,10.918 102.561,6.018 C94.455,3 85.717,1.307 76.8,1.038 C87.451,0.716 97.968,2.432 107.595,6.018 C120.695,10.918 139.495,26.818 147.295,39.618 C154.095,50.918 158.895,65.818 158.895,76.018 L158.895,80.418 L164.995,80.418 C168.395,80.118 174.995,79.818 179.495,79.818 L187.895,79.818 L187.895,99.881 L199.502,108.67 L322.984,108.67 C339.929,92.394 347.867,84.257 346.8,84.257 C346.323,84.257 346.369,82.725 346.515,80.429 C346.051,79.868 345.895,78.223 345.895,75.118 C345.895,59.873 341.479,46.625 332.082,34.15 L331.696,33.647 C329.117,30.321 326.212,27.043 322.984,23.818 C322.722,23.556 322.465,23.299 322.213,23.049 C316.441,17.437 312.579,14.708 306.095,11.418 C294.424,5.583 284.144,2.245 274.131,1.261 C273.417,1.207 272.691,1.16 271.95,1.118 C269.132,0.968 266.321,0.962 263.529,1.095 C257.389,1.506 251.198,2.792 244.695,4.918 C239.073,6.731 234.301,8.563 230.066,10.615 C218.478,17.668 205.615,29.594 199.502,39.618 C192.698,50.917 187.895,65.817 187.895,76.017 L187.895,73.418 Z",stroke:"#000000",strokeWidth:"8",fill:"#000000"})),kr.default.createElement("g",{transform:"translate(83.563, 252.212)",fill:"#FFFFFF",fillRule:"nonzero"},kr.default.createElement("path",{d:"M12.837,35.288 C13.137,33.988 14.437,31.888 15.637,30.788 L17.837,28.788 L15.637,26.788 C14.437,25.688 13.137,23.588 12.837,22.288 C12.037,19.088 10.637,19.088 9.437,22.188 C8.937,23.488 7.537,25.588 6.237,26.788 C4.037,28.788 4.037,28.988 5.737,29.988 C6.837,30.488 8.237,32.488 9.037,34.388 C10.737,38.388 11.937,38.688 12.837,35.288 Z M29.237,33.088 C30.137,29.688 31.837,27.088 34.937,24.088 L39.337,19.888 L36.337,17.788 C33.437,15.588 28.437,7.288 28.437,4.288 C28.437,2.188 26.537,2.388 25.837,4.588 C23.937,10.388 21.637,14.388 18.337,17.188 L14.537,20.388 L17.337,22.088 C19.837,23.588 24.337,30.988 25.837,36.088 C26.737,39.088 27.937,37.988 29.237,33.088 Z M10.937,12.488 L13.037,9.288 L10.937,6.088 C8.837,2.788 7.437,1.888 7.437,3.988 C7.437,4.588 6.537,6.088 5.437,7.288 L3.437,9.488 L5.437,11.288 C6.537,12.288 7.437,13.688 7.437,14.488 C7.437,16.688 8.837,15.888 10.937,12.488 Z"}),kr.default.createElement("path",{d:"M203.437,36.388 C203.437,35.588 204.637,33.588 206.037,31.888 L208.637,28.788 L206.037,25.688 C204.637,23.988 203.437,21.988 203.437,21.188 C203.437,18.588 201.437,19.788 200.037,23.188 C199.237,25.088 197.837,27.088 196.737,27.688 C195.037,28.688 195.037,28.788 197.037,30.188 C198.237,30.988 199.737,33.088 200.437,34.788 C201.737,37.888 203.437,38.788 203.437,36.388 Z M220.837,32.588 C221.937,29.288 224.237,25.788 226.737,23.388 C229.737,20.488 230.537,19.288 229.437,18.988 C226.637,17.988 222.437,12.588 220.737,7.688 C219.737,4.988 218.737,2.788 218.337,2.788 C218.037,2.788 216.737,5.288 215.537,8.288 C214.337,11.288 211.737,15.088 209.837,16.688 C205.937,20.188 205.637,21.388 208.437,22.288 C210.937,23.088 214.737,28.788 216.437,34.088 C217.037,36.088 217.937,37.788 218.237,37.788 C218.637,37.788 219.837,35.388 220.837,32.588 Z M201.137,14.088 C201.437,13.088 202.437,11.488 203.337,10.488 C204.337,9.288 204.537,8.388 203.837,7.988 C203.237,7.588 202.237,6.288 201.537,5.088 C200.137,2.388 198.837,2.188 198.037,4.588 C197.737,5.488 196.937,6.988 196.337,7.888 C195.337,9.288 195.437,9.888 196.737,11.288 C197.637,12.188 198.437,13.588 198.437,14.388 C198.437,16.388 200.337,16.188 201.137,14.088 Z"}))));function In({size:e=200,instructions:t=[],tools:r=[],showDecorations:n=!1,className:o="",hat:a,hatAccessory:i,heldItem:s,theme:l,customColors:u}){return kr.default.createElement("div",{className:`inline-flex flex-col items-center ${o}`},n&&t.length>0&&kr.default.createElement("div",{className:"flex gap-1 mb-1"},t.map(c=>{let d=Xd[c];return d?kr.default.createElement("span",{key:c,className:"text-sm",title:d.label},d.emoji):null})),kr.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 500 500",width:e,height:e,role:"img","aria-label":"Active Agent mascot"},kr.default.createElement("title",null,"ActiveAgent"),kr.default.createElement(Aoe,null)),n&&r.length>0&&kr.default.createElement("div",{className:"flex gap-1 mt-1"},r.map(c=>{let d=rv[c];return d?kr.default.createElement("span",{key:c,className:"text-sm",title:d.label},d.emoji):null})))}var qa=Z(Q());var aa=Z(Q());var k6="dashboard-theme",Z1=["system","light","dark"],_6=[{value:"system",label:"System"},{value:"light",label:"Light"},{value:"dark",label:"Dark"}],Eoe="(prefers-color-scheme: dark)";function C6(e){try{let t=e?.getItem?.(k6);return Z1.includes(t)?t:"system"}catch{return"system"}}function A6(e,t){try{e?.setItem?.(k6,Z1.includes(t)?t:"system")}catch{}}function E6(e,t){return e==="system"?!!t:e==="dark"}function N6(e){return e?"light":"dark"}function T6(e,t){return e==="system"?`Follows your system's appearance, ${t?"dark":"light"} right now`:e==="dark"?"Dark across the dashboard":"Light across the dashboard"}function gT(e=globalThis.window){return typeof e?.matchMedia=="function"?e.matchMedia(Eoe):null}var O6=(0,aa.createContext)();function P6({children:e}){let[t,r]=(0,aa.useState)(()=>C6(globalThis.localStorage)),[n,o]=(0,aa.useState)(()=>!!gT()?.matches);(0,aa.useEffect)(()=>{let u=gT();if(!u)return;let c=d=>o(d.matches);return o(u.matches),u.addEventListener("change",c),()=>u.removeEventListener("change",c)},[]);let a=(0,aa.useCallback)(u=>{let c=Z1.includes(u)?u:"system";r(c),A6(globalThis.localStorage,c)},[]),i=E6(t,n),s=(0,aa.useCallback)(()=>a(N6(i)),[i,a]),l=(0,aa.useMemo)(()=>({darkMode:i,theme:t,systemDark:n,setTheme:a,toggleDarkMode:s}),[i,t,n,a,s]);return aa.default.createElement(O6.Provider,{value:l},e)}function ut(){let e=(0,aa.useContext)(O6);if(!e)throw new Error("useTheme must be used within a ThemeProvider");return e}function Cm({name:e,subtitle:t,badge:r,accentColor:n,stats:o=[],footer:a,onClick:i,actions:s}){let{darkMode:l}=ut(),[u,c]=qa.default.useState(!1),d={cardBg:l?"rgba(255,255,255,0.05)":"#ffffff",border:l?"rgba(255,255,255,0.1)":"#e5e7eb",borderHover:l?"rgba(255,255,255,0.2)":"#d1d5db",tileBg:l?"rgba(255,255,255,0.05)":"#f9fafb",textPrimary:l?"#f9fafb":"#111827",textSecondary:l?"#9ca3af":"#6b7280",textMuted:l?"#6b7280":"#9ca3af"},p=f=>f==="good"?l?"#4ade80":"#16a34a":f==="warn"?l?"#facc15":"#ca8a04":f==="bad"?l?"#f87171":"#dc2626":f==="muted"?d.textMuted:d.textPrimary;return qa.default.createElement("div",{"data-testid":"agent-card","data-agent-name":typeof e=="string"?e:void 0,onClick:i,onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),role:i?"button":void 0,tabIndex:i?0:void 0,onKeyDown:f=>{i&&(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),i(f))},style:{background:d.cardBg,borderTop:`1px solid ${u?d.borderHover:d.border}`,borderRight:`1px solid ${u?d.borderHover:d.border}`,borderBottom:`1px solid ${u?d.borderHover:d.border}`,borderLeft:n?`4px solid ${n}`:`1px solid ${u?d.borderHover:d.border}`,borderRadius:"12px",padding:"16px",cursor:i?"pointer":"default",transition:"border-color 0.15s ease, box-shadow 0.15s ease",boxShadow:u&&i?"0 4px 16px rgba(0,0,0,0.08)":"none",display:"flex",flexDirection:"column",gap:"12px"}},qa.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"8px"}},qa.default.createElement("div",{style:{minWidth:0}},qa.default.createElement("div",{style:{fontWeight:600,fontSize:"15px",color:u&&i?"#ef4444":d.textPrimary,transition:"color 0.15s ease",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e},e),t&&qa.default.createElement("div",{style:{fontSize:"13px",color:d.textSecondary,marginTop:"2px",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"}},t)),r&&qa.default.createElement("div",{style:{flexShrink:0}},r)),o.length>0&&qa.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:"6px"}},o.map(f=>qa.default.createElement("div",{key:f.label,title:f.title,style:{background:d.tileBg,borderRadius:"8px",padding:"6px 8px",textAlign:"center"}},qa.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,lineHeight:1.2,color:p(f.tone)}},f.value),qa.default.createElement("div",{style:{fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.04em",color:d.textMuted,whiteSpace:"nowrap"}},f.label)))),a&&qa.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"8px",fontSize:"12px",color:d.textMuted}},a),s&&qa.default.createElement("div",{style:{opacity:u?1:0,transition:"opacity 0.15s ease"}},s))}function hT(e){return e==null?"muted":e>=.85?"good":e>=.7?"warn":"bad"}var Vr=Z(Q());var Fo={chevronRight:">",chevronDown:"v",chevronUp:"^",arrow:"->",arrowLeft:"<-",pipe:"|",corner:"+",branch:"|-",success:"[+]",error:"[!]",warning:"[?]",info:"[i]",pending:"[ ]",active:"[*]",add:"+",remove:"-",edit:"*",view:"@",run:">",stop:"x",refresh:"~",trace:"->",span:"|",metric:"#",log:">",agent:"@",action:"#",time:":",cost:"$",tokens:"T",memory:"M",nav:{agents:"@",newAgent:"+",demo:">",traces:"->",metrics:"#",evaluations:"=",interactions:"<>",benchmarks:"%%",replay:"[>]",tools:"[]",mcp:"{}",docs:"?",github:"*"},spans:{root:">",prompt:"*",generate:"|>",llm:">>",thinking:"..",tool:"[]",response:"<|"}};var Pt={mono:"'SF Mono', 'Fira Code', 'Consolas', monospace",sizes:{xs:"10px",sm:"11px",base:"13px",md:"14px",lg:"16px",xl:"20px",xxl:"24px"},weights:{normal:400,medium:500,semibold:600,bold:700}};var W="var(--font-mono)",eu=e=>e>=1?"success":e>=.7?"warning":"error",Dn={success:{strong:"var(--color-success)",soft:"var(--color-success-soft)",text:"var(--color-success-text)"},warning:{strong:"var(--color-warning)",soft:"var(--color-warning-soft)",text:"var(--color-warning-text)"},error:{strong:"var(--color-error)",soft:"var(--color-error-soft)",text:"var(--color-error-text)"},info:{strong:"var(--color-info)",soft:"var(--color-info-soft)",text:"var(--color-info-text)"},muted:{strong:"var(--color-text-muted)",soft:"var(--color-muted)",text:"var(--color-text-secondary)"},accent:{strong:"var(--color-accent-ui)",soft:"var(--color-accent-ui-tint)",text:"var(--color-accent-ui)"},system:{strong:"var(--color-system)",soft:"var(--color-system-soft)",text:"var(--color-system-text)"},dev:{strong:"var(--color-dev)",soft:"var(--color-dev-soft)",text:"var(--color-dev-text)"}},Noe={active:"success",complete:"success",completed:"success",ready:"success",passed:"success",draft:"warning",pending:"warning",queued:"warning",waiting:"warning",running:"info",in_progress:"info",failed:"error",error:"error",expired:"error",archived:"muted",cancelled:"muted",canceled:"muted",skipped:"muted"},al=e=>Noe[String(e||"").toLowerCase()]||"muted",Toe={user:{tone:"info",label:"User"},assistant:{tone:"accent",label:"Assistant"},tool:{tone:"warning",label:"Tool"},system:{tone:"system",label:"System"},developer:{tone:"dev",label:"Dev"}},M6=e=>Toe[e]||{tone:"muted",label:e},nv={object:"=",sample:"~",pass:Fo.success,fault:Fo.error,info:Fo.info,on:"[x]",off:"[ ]",link:Fo.arrow,chevron:Fo.chevronRight};function Sa({kind:e="pass",open:t=!1,color:r,size:n=12,weight:o=700,style:a,title:i}){return e==="chevron"?Vr.default.createElement("span",{className:"aa-chevron","data-open":t?"true":"false",title:i,style:{fontFamily:W,fontSize:n,color:r||"var(--color-text-muted)",flexShrink:0,...a}},nv.chevron):Vr.default.createElement("span",{title:i,style:{fontFamily:W,fontSize:n,fontWeight:o,color:r||(e==="fault"?"var(--color-error)":e==="info"?"var(--color-info)":e==="pass"?"var(--color-success)":"var(--color-text-muted)"),flexShrink:0,...a}},nv[e]||e)}function ke({tone:e="muted",size:t=11,children:r,title:n,style:o,testId:a}){let i=Dn[e]||Dn.muted;return Vr.default.createElement("span",{"data-testid":a,title:n,style:{display:"inline-flex",alignItems:"center",padding:"2px 7px",borderRadius:4,fontFamily:W,fontSize:t,fontWeight:600,whiteSpace:"nowrap",background:i.soft,color:i.text,...o}},r)}function Ue({children:e,size:t=11,color:r="var(--color-text-secondary)",spacing:n="0.06em",style:o,as:a="span",htmlFor:i}){return Vr.default.createElement(a,{htmlFor:i,style:{fontFamily:W,fontSize:t,fontWeight:600,letterSpacing:n,textTransform:"uppercase",color:r,...o}},e)}function jn({selected:e=!1,onClick:t,children:r,square:n=!1,mono:o=!1,disabled:a=!1,title:i,style:s,testId:l}){return Vr.default.createElement("button",{type:"button","data-testid":l,onClick:a?void 0:t,disabled:a,"aria-disabled":a||void 0,title:i,style:{padding:"4px 10px",borderRadius:n?6:999,cursor:t&&!a?"pointer":"default",fontFamily:o?W:"inherit",fontSize:o?11:12,fontWeight:o?400:500,background:e?"var(--color-accent-ui-tint)":"var(--color-card)",border:`1px solid ${e?"var(--color-accent-ui)":"var(--color-border)"}`,color:e?"var(--color-accent-ui)":o?"var(--color-text-muted)":"var(--color-text-cell)",opacity:a?.5:void 0,...s}},r)}function Ka({options:e,value:t,onChange:r,style:n}){return Vr.default.createElement("div",{style:{display:"flex",gap:4,...n},role:"group"},e.map(o=>{let a=o.value===t;return Vr.default.createElement("button",{key:o.value,type:"button",onClick:()=>r(o.value),"aria-pressed":a,style:{padding:"6px 12px",borderRadius:8,cursor:"pointer",fontSize:13,fontWeight:500,background:"var(--color-card)",border:`1px solid ${a?"var(--color-accent-ui)":"var(--color-border)"}`,color:a?"var(--color-accent-ui)":"var(--color-text-cell)"}},o.label)}))}function ce({variant:e="secondary",size:t="md",children:r,onClick:n,disabled:o=!1,title:a,type:i="button",style:s,testId:l}){let c={padding:t==="sm"?"6px 12px":"8px 14px",borderRadius:8,cursor:o?"not-allowed":"pointer",fontSize:13,fontWeight:500,opacity:o?.5:1,whiteSpace:"nowrap",fontFamily:"inherit"},d={primary:{background:"var(--color-accent-ui)",color:"var(--color-on-accent)",border:"1px solid transparent"},secondary:{background:"transparent",color:"var(--color-text-cell)",border:"1px solid var(--color-border-strong)"},danger:{background:"transparent",color:"var(--color-error)",border:"1px solid transparent"},ghost:{background:"transparent",color:"var(--color-text-secondary)",border:"1px solid transparent"}};return Vr.default.createElement("button",{type:i,"data-testid":l,onClick:n,disabled:o,title:a,style:{...c,...d[e]||d.secondary,...s}},r)}function je({children:e,padding:t=20,style:r,className:n,testId:o,...a}){return Vr.default.createElement("div",{"data-testid":o,className:n,style:{background:"var(--color-card)",border:"1px solid var(--color-border)",borderRadius:12,padding:t,...r},...a},e)}function Am({label:e,value:t,sub:r,valueColor:n,valueSize:o=32,testId:a}){return Vr.default.createElement(je,{testId:a},Vr.default.createElement(Ue,{size:11,spacing:"0.05em"},e),Vr.default.createElement("div",{style:{marginTop:8,fontFamily:W,fontSize:o,fontWeight:700,lineHeight:1.1,color:n||"var(--color-text-primary)"}},t),r!=null&&Vr.default.createElement("div",{style:{marginTop:8,fontSize:13,color:"var(--color-text-secondary)"}},r))}function Zr({title:e,meta:t,children:r,style:n,testId:o,bodyStyle:a}){return Vr.default.createElement("div",{"data-testid":o,style:{border:"1px solid var(--color-border-light)",borderRadius:10,overflow:"hidden",minWidth:0,...n}},(e||t)&&Vr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"8px 12px",background:"var(--color-muted)"}},e&&Vr.default.createElement(Ue,null,e),t&&Vr.default.createElement("span",{style:{marginLeft:"auto",fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},t)),Vr.default.createElement("div",{style:a},r))}function tu({passed:e,total:t,label:r,labelWidth:n=128,width:o,height:a=6,color:i,valueWidth:s=38,style:l}){let u=t?e/t:0,c=i||Dn[eu(u)].strong;return Vr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,...l}},r!=null&&Vr.default.createElement("span",{style:{fontFamily:W,fontSize:10,color:"var(--color-text-muted)",width:n,flexShrink:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:r},r),Vr.default.createElement("span",{style:{flex:o?void 0:1,width:o,height:a,borderRadius:999,background:"var(--color-muted)",overflow:"hidden",flexShrink:0}},Vr.default.createElement("span",{style:{display:"block",width:`${Math.round(u*100)}%`,height:"100%",borderRadius:999,background:c}})),Vr.default.createElement("span",{style:{fontFamily:W,fontSize:11,fontWeight:600,width:s,textAlign:"right",color:c}},e,"/",t))}function J1({parts:e=[],total:t=0,height:r=4,radius:n=2,style:o,testId:a,title:i,...s}){return Vr.default.createElement("div",{"data-testid":a,title:i,style:{display:"flex",height:r,borderRadius:n,overflow:"hidden",background:"var(--color-border-light)",...o},...s},e.map((l,u)=>Vr.default.createElement("span",{key:u,style:{width:`${t>0?100*(Number(l.value)||0)/t:0}%`,background:(Dn[l.tone]||Dn.muted).strong,transition:"width 300ms"}})))}function Gr({children:e,onClick:t,href:r="#",color:n="var(--color-info)",size:o=11,style:a,title:i,testId:s}){return Vr.default.createElement("a",{href:r,"data-testid":s,title:i,onClick:l=>{t&&(l.preventDefault(),t(l))},style:{fontFamily:W,fontSize:o,color:n,textDecoration:"none",...a}},e," ",nv.link)}function Jr({children:e,style:t}){return Vr.default.createElement("div",{style:{padding:"20px 12px",fontFamily:W,fontSize:11,color:"var(--color-text-muted)",textAlign:"center",...t}},e)}var il="~ estimated from tokens \xD7 model rates",Q1=e=>e!=null&&e!==""&&Number.isFinite(Number(e)),j6=e=>Math.sign(e)*Math.round(Number(Math.abs(e).toFixed(9))),Ts=e=>Q1(e)?`${j6(Number(e)*100)}%`:"\u2014",Vn=(e,t)=>{let r=Number(t)||0;if(r<=0)return"\u2014";let n=Number(e)||0;return`${n}/${r} \xB7 ${j6(n*100/r)}%`},ia=e=>Ts(e),R1=e=>`pass \u2265 ${Ts(e)}`,Pr=(e,{estimated:t=!1}={})=>{if(!Q1(e))return"\u2014";let r=Number(e),n=r===0?2:Math.abs(r)<.001?6:4;return`${t?"~":""}$${r.toFixed(n)}`},I6=e=>Math.round(Number(e)||0).toLocaleString("en-US"),D6=e=>{let[t,r=""]=String(Number(Number(e).toFixed(4))).split(".");return`$${t}.${r.padEnd(2,"0")}/M`},Ooe=["pattern","default"],Em=({inputTokens:e,outputTokens:t,rate:r}={})=>{if(!r||!Q1(r.input)||!Q1(r.output))return"estimated from tokens \xD7 model rates";let n=r.source||"catalog";return`estimated: ${I6(e)} in \xD7 ${D6(r.input)} + ${I6(t)} out \xD7 ${D6(r.output)} \xB7 ${n} rate${Ooe.includes(n)?" (fallback rate)":""}`};var Poe=[{value:"recent",label:"Recently updated"},{value:"popular",label:"Most runs"},{value:"longest",label:"Longest average"},{value:"cost",label:"Highest cost"},{value:"tokens",label:"Most tokens"}];function yT({agents:e,meta:t,onSelect:r,onNew:n,onBrowseTemplates:o,onDuplicate:a,onDelete:i,onRefresh:s,sort:l="recent",onSortChange:u,isLoading:c}){let[d,p]=(0,ft.useState)(""),[f,m]=(0,ft.useState)(""),[y,b]=(0,ft.useState)(""),g=e.filter(w=>{let _=!d||w.name.toLowerCase().includes(d.toLowerCase())||w.description?.toLowerCase().includes(d.toLowerCase()),A=!f||w.provider===f,C=!y||w.status===y;return _&&A&&C}),h=w=>{let _=new Date(w),C=new Date-_,N=Math.floor(C/(1e3*60*60*24));return N===0?"Today":N===1?"Yesterday":N<7?`${N} days ago`:_.toLocaleDateString()},v=w=>w==null?"\u2014":w<1e3?`${Math.round(w)}ms`:`${(w/1e3).toFixed(1)}s`,x=w=>w==null?"\u2014":w>=1e6?`${(w/1e6).toFixed(1)}M`:w>=1e3?`${(w/1e3).toFixed(1)}k`:`${w}`,S=w=>w==null?"\u2014":w>0&&w<.01?"<$0.01":`$${w.toFixed(2)}`,k=w=>{if(!w)return"\u2014";let _=Math.floor((new Date-new Date(w))/(1e3*60*60*24));return _<=0?"Today":_<30?`${_}d ago`:new Date(w).toLocaleDateString()};return ft.default.createElement("div",{className:"space-y-6"},ft.default.createElement("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4"},ft.default.createElement("div",{className:"flex-1 flex items-center space-x-4"},ft.default.createElement("div",{className:"relative flex-1 max-w-md"},ft.default.createElement("input",{type:"text",placeholder:"Search agents...",value:d,onChange:w=>p(w.target.value),className:"w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent"}),ft.default.createElement("svg",{className:"absolute left-3 top-2.5 h-5 w-5 text-gray-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"}))),ft.default.createElement("select",{value:f,onChange:w=>m(w.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},ft.default.createElement("option",{value:""},"All Providers"),t.providers?.map(w=>ft.default.createElement("option",{key:w,value:w},w.charAt(0).toUpperCase()+w.slice(1)))),ft.default.createElement("select",{value:y,onChange:w=>b(w.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},ft.default.createElement("option",{value:""},"All Status"),ft.default.createElement("option",{value:"active"},"Active"),ft.default.createElement("option",{value:"draft"},"Draft"),ft.default.createElement("option",{value:"archived"},"Archived")),ft.default.createElement("select",{value:l,onChange:w=>u?.(w.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500",title:"Rank agents by their scorecard"},Poe.map(w=>ft.default.createElement("option",{key:w.value,value:w.value},w.label)))),ft.default.createElement("div",{className:"flex items-center space-x-3"},ft.default.createElement("button",{onClick:s,disabled:c,className:"p-2 text-gray-500 hover:text-gray-700 hover:bg-gray-100 rounded-lg transition-colors"},ft.default.createElement("svg",{className:`h-5 w-5 ${c?"animate-spin":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"}))),ft.default.createElement("button",{onClick:o,className:"flex items-center space-x-2 px-4 py-2 border border-gray-300 text-gray-700 rounded-lg hover:bg-gray-50 transition-colors"},ft.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"})),ft.default.createElement("span",null,"Browse Templates")),ft.default.createElement("button",{onClick:n,className:"flex items-center space-x-2 px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors"},ft.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})),ft.default.createElement("span",null,"New Agent")))),g.length>0?ft.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6"},g.map(w=>{let _=w.stats||{},A=_.run_sources||[],C=A.length?`Counted from ${A.map(N=>N==="platform"?"dashboard runs":"reported telemetry").join(" + ")}`:void 0;return ft.default.createElement(Cm,{key:w.id,name:w.name,subtitle:w.description||"No description",badge:ft.default.createElement(ke,{tone:al(w.status)},w.status),onClick:()=>r(w),stats:[{label:`Runs ${_.window_days||30}d`,value:_.runs??0,title:C},{label:"Success",value:_.success_rate!=null?`${Math.round(_.success_rate)}%`:"\u2014",tone:hT(_.success_rate!=null?_.success_rate/100:null)},{label:"Avg time",value:v(_.avg_duration_ms)},{label:"Eval",title:_.eval_samples_evaluated?`${Vn(_.eval_samples_passed,_.eval_samples_evaluated)} passed over ${_.eval_runs??"the"} current evaluation${_.eval_runs===1?"":"s"}${_.eval_not_counted?` \xB7 ${_.eval_not_counted} stale or archived not counted`:""}`:_.eval_not_counted?`${_.eval_not_counted} evaluation${_.eval_not_counted===1?"":"s"} stale or archived, none counted`:"No evaluation counted yet",value:Ts(_.eval_score),tone:hT(_.eval_score)},{label:"Tokens",value:x(_.tokens)},{label:"Cost",value:S(_.cost),title:"Estimated from token counts at each model's published rates",tone:_.cost==null?"muted":void 0}],footer:ft.default.createElement(ft.default.Fragment,null,ft.default.createElement("span",{style:{display:"flex",alignItems:"center",gap:"6px",minWidth:0}},ft.default.createElement(ke,{tone:"muted",style:{flexShrink:0}},w.provider),ft.default.createElement("span",{title:w.model,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},w.model)),ft.default.createElement("span",{style:{whiteSpace:"nowrap"},title:`Updated ${h(w.updatedAt||w.updated_at)}`},_.last_run_at?`Last run ${k(_.last_run_at)}`:`Updated ${h(w.updatedAt||w.updated_at)}`)),actions:ft.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",fontSize:"13px"}},ft.default.createElement("button",{onClick:N=>{N.stopPropagation(),a(w.id)},className:"text-gray-500 hover:text-red-600 transition-colors"},"Duplicate"),ft.default.createElement("button",{onClick:N=>{N.stopPropagation(),i(w.id)},className:"text-red-500 hover:text-red-700 transition-colors"},"Delete"))})})):ft.default.createElement("div",{className:"text-center py-16"},ft.default.createElement("div",{className:"inline-block mb-4"},ft.default.createElement(In,{size:100})),ft.default.createElement("h3",{className:"text-lg font-medium text-gray-900 mb-2"},e.length===0?"No agents yet":"No matching agents"),ft.default.createElement("p",{className:"text-gray-500 mb-6"},e.length===0?"Create your first AI agent to get started":"Try adjusting your search or filters"),e.length===0&&ft.default.createElement("div",{className:"flex items-center justify-center space-x-4"},ft.default.createElement("button",{onClick:o,className:"inline-flex items-center space-x-2 px-6 py-3 border-2 border-red-500 text-red-600 rounded-lg hover:bg-red-50 transition-colors"},ft.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"})),ft.default.createElement("span",null,"Browse Templates")),ft.default.createElement("span",{className:"text-gray-400"},"or"),ft.default.createElement("button",{onClick:n,className:"inline-flex items-center space-x-2 px-6 py-3 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors"},ft.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ft.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})),ft.default.createElement("span",null,"Create From Scratch")))))}var ye=Z(Q());function $6(e,{ttlMs:t,keep:r=()=>!0,now:n=Date.now}){let o=new Map,a=i=>{let s=o.get(i);if(s&&(s.expiresAt===null||n()(o.get(i)===l&&(r(u)?l.expiresAt=n()+t:o.delete(i)),u),u=>{throw o.get(i)===l&&o.delete(i),u}),o.set(i,l),l.promise};return a.clear=()=>o.clear(),a}var Nm={openai:["gpt-5.1","gpt-5","gpt-5-mini","gpt-5-nano"],anthropic:["claude-opus-5","claude-fable-5","claude-sonnet-5","claude-opus-4-8","claude-haiku-4-5"],ollama:["qwen3:8b","llama3.2","mistral","gemma3"],openrouter:["anthropic/claude-sonnet-4.5","openai/gpt-5.1","meta-llama/llama-3.3-70b-instruct"]},ew=Object.keys(Nm),Moe=300*1e3,L6=$6(Ioe,{ttlMs:Moe,keep:e=>e!==null});async function z6(e){return await L6(e)??(Nm[e]||[])}function vT(){L6.clear()}async function Ioe(e){try{let t=await fetch(`/api/provider_models?provider=${encodeURIComponent(e)}`);if(t.ok){let r=await t.json();if(Array.isArray(r.models)&&r.models.length>0)return r.models}}catch{}return null}var tw=Z(Q());function bc(e){let[t,r]=(0,tw.useState)(Nm),n=e.join(",");return(0,tw.useEffect)(()=>{let o=!1;return e.forEach(a=>{z6(a).then(i=>{o||i.length===0||r(s=>({...s,[a]:i}))})}),()=>{o=!0}},[n]),t}var wc=Z(Q());function ru({value:e,models:t=[],onChange:r,className:n,style:o,placeholder:a="Type to search models",inputRef:i,...s}){let l=(0,wc.useId)();return wc.default.createElement(wc.default.Fragment,null,wc.default.createElement("input",{...s,ref:i,type:"text",list:l,value:e||"",onChange:u=>r(u.target.value,u),placeholder:a,autoComplete:"off",spellCheck:!1,className:n,style:o}),wc.default.createElement("datalist",{id:l},t.filter(Boolean).map(u=>wc.default.createElement("option",{key:u,value:u}))))}var Doe=["agent_defined","dashboard","mcp"],xT={agent_defined:"Agent-defined",dashboard:"Dashboard",mcp:"MCP"},joe={agent_defined:"the host's schema tools, and what the agent class declares",dashboard:"built into the dashboard",mcp:"offered by the services above"},nw=[{value:"24h",label:"24h",hours:24},{value:"7d",label:"7d",hours:168},{value:"30d",label:"30d",hours:720}],bT=e=>{if(e==null||Number.isNaN(Number(e)))return"\u2014";let t=Number(e);return t>=1e3?`${(t/1e3).toFixed(1)}s`:`${Math.round(t)}ms`},ov=(e,t=Date.now())=>{if(!e)return"never";let r=new Date(e).getTime();if(Number.isNaN(r))return"never";let n=Math.floor((t-r)/6e4);if(n<1)return"just now";if(n<60)return`${n}m ago`;let o=Math.floor(n/60);return o<24?`${o}h ago`:`${Math.floor(o/24)}d ago`},$oe="sandbox:",Zd=e=>!!(e&&(e.runtime===!0||String(e.key||"").startsWith($oe))),av=e=>Zd(e)&&!e.known,ow=e=>!!e&&!e.known&&!Zd(e);function B6(e){return av(e)?"this sandbox is no longer running, so it offers no tools \u2014 switch it off, and start a new sandbox from Settings \u2192 Integrations to enable its runtime":Zd(e)?"tools are listed by the running app each time the agent runs":"no tools recorded for this service yet"}var Tm=e=>{if(typeof e=="string")return e.trim()||null;if(!e||typeof e!="object")return null;let t=e.key||e.name;return t&&String(t).trim()||null};function rw(e,t=[]){let r=new Map;(t||[]).forEach(o=>{let a=Tm(o);a&&r.set(a,o)});let n={};return(e.services||[]).forEach(o=>{let a=r.get(o.key),i=a&&typeof a=="object"&&Array.isArray(a.tools)?a.tools.map(s=>String(s&&s.name?s.name:s)):null;n[o.key]={on:r.has(o.key),tools:Object.fromEntries((o.tools||[]).map(s=>[s.name,i===null||i.includes(s.name)]))}}),n}var F6=e=>{let t=String(e||"").trim().toLowerCase();return(...r)=>!t||r.some(n=>String(n||"").toLowerCase().includes(t))};function U6(e,t,{query:r="",filter:n=null}={}){let o=F6(r);return(e.services||[]).filter(a=>n?n==="enabled"?t[a.key]?.on:a.status===n:!0).filter(a=>o(a.name,a.description)||(a.tools||[]).some(i=>o(i.name))).map(a=>{let i=t[a.key]||{on:!1,tools:{}},s=a.tools||[],l=s.map(c=>({...c,on:!!i.tools[c.name]})),u=l.filter(c=>c.on);return{...a,on:i.on,tools:l,offeredCount:s.length,enabledCount:u.length,toolsLabel:`${u.length}/${s.length}`,partial:i.on&&u.length{let o=t[n.key];!o||!o.on||(n.tools||[]).forEach(a=>{o.tools[a.name]&&r.push({...a,key:`${n.key}:${a.name}`,source:"mcp",editable:!1,enabled:!0,server:n.name,serverKey:n.key})})}),r}function W6(e,t,r=[]){let n=new Set((r||[]).map(String));return(e.tools||[]).map(o=>({...o,on:o.editable?n.has(o.key):o.enabled!==!1})).concat(Loe(e,t).map(o=>({...o,on:!0})))}function H6(e,t,r,{query:n="",source:o=null,enabledOnly:a=!1}={}){let i=F6(n),s=W6(e,t,r),l=s.filter(u=>!o||u.source===o).filter(u=>!a||u.on).filter(u=>i(u.name,u.description));return Doe.map(u=>{let c=s.filter(f=>f.source===u),d=c.some(f=>f.editable),p=c.filter(f=>f.on).length;return{source:u,name:xT[u],meta:`${joe[u]} \xB7 ${c.length} ${c.length===1?"tool":"tools"}`,countLabel:d?`${p}/${c.length} on`:`${c.length} offered`,editable:d,total:c.length,enabledCount:p,keys:c.map(f=>f.key),rows:l.filter(f=>f.source===u)}}).filter(u=>u.total>0)}function q6(e,t,r,{range:n="7d"}={}){let o=W6(e,t,r),a=e.usage_available!==!1,i=e.services||[],s=i.filter(f=>t[f.key]?.on),l=o.filter(f=>f.source!=="mcp"&&f.on),u=o.filter(f=>f.source==="mcp"),c=o.reduce((f,m)=>f+(m.calls||0),0),d=o.reduce((f,m)=>f+(m.errors||0),0),p=o.filter(f=>f.on&&!f.calls).length;return[{key:"tools",label:"Tools enabled",value:String(l.length+u.length),sub:`${l.length} direct \xB7 ${u.length} offered through MCP`},{key:"services",label:"MCP services",value:`${s.length}/${i.length}`,sub:s.length?`on for this agent: ${s.map(f=>f.name).join(", ")}`:"none enabled for this agent"},{key:"calls",label:"Tool calls",value:a?String(c):"\u2014",sub:a?`${d} error${d===1?"":"s"} in the last ${n} \xB7 traced`:"no calls recorded in this window yet"},{key:"unused",label:"Never called",value:a?String(p):"\u2014",sub:"enabled but unused in this window",tone:a&&p>6?"warning":null}]}function K6(e){return e?.on&&Array.isArray(e.approval_names)?e.approval_names.map(String):[]}function wT(e,t=[]){let r=K6(e);if(r.length===0)return null;let n=new Set((t||[]).map(String)),o=r.filter(a=>n.has(a)).length;return o===0?"off":o===r.length?"on":"partial"}function ST(e=[],t=[],r=!0){let n=(e||[]).map(String);return r?n.concat(t.filter(o=>!n.includes(o))):n.filter(o=>!t.includes(o))}function V6(e=[],t,r=[]){let n=(e||[]).map(String),o=wT(t,n);if(!o)return n;let a=new Set(ST(n,K6(t),o==="off")),i=(r||[]).map(String),s=new Set(i);return a.size===s.size&&[...a].every(u=>s.has(u))?i:[...a]}function G6(e,t,r){let n=rw(e,t.mcpServers),o=rw(e,r.mcpServers),a=0;Object.keys(n).forEach(d=>{n[d].on!==o[d].on&&(a+=1),Object.keys(n[d].tools).forEach(p=>{n[d].tools[p]!==o[d].tools[p]&&(a+=1)})});let i=new Set((t.tools||[]).map(String)),s=new Set((r.tools||[]).map(String));(e.tools||[]).forEach(d=>{d.editable&&i.has(d.key)!==s.has(d.key)&&(a+=1)});let l=new Set((t.approvalRequiredTools||[]).map(String)),u=new Set((r.approvalRequiredTools||[]).map(String));return(e.tools||[]).concat((e.services||[]).flatMap(d=>d.tools||[])).forEach(d=>{(d.approval_names||[]).some(p=>l.has(p)!==u.has(p))&&(a+=1)}),a}function Y6(e,t,r=[]){let n=new Map;(r||[]).forEach(i=>{let s=Tm(i);s&&n.set(s,i)});let o=[];(e.services||[]).forEach(i=>{let s=t[i.key];if(!s||!s.on)return;let l=(i.tools||[]).map(f=>f.name),u=l.filter(f=>s.tools[f]),c=n.get(i.key),d=l.length>0&&u.lengthi.key));return(r||[]).forEach(i=>{let s=Tm(i);s&&!a.has(s)&&o.push(i)}),o}function X6(e,t=[]){let r=new Set((e.tools||[]).filter(a=>a.editable).map(a=>a.key)),n=(t||[]).map(String).filter(a=>!r.has(a)),o=(e.tools||[]).filter(a=>a.editable&&t.includes(a.key)).map(a=>a.key);return n.concat(o)}function kT(e){return(e?.tools||[]).filter(t=>t.editable&&t.implemented!==!1)}var zoe=["terminal","filesystem","edit","database"],aw=(e=[])=>e.some(t=>zoe.includes(t)),Boe={terminal:["run_command"],filesystem:["write_file"],edit:["edit_file"],slack:["slack_post_message"]},Om=(e=[])=>[...new Set(e.flatMap(t=>Boe[t]||[]))];function Z6(e){let t=e?.services||[],r=(n,o)=>(o.workspace_agents||0)-(n.workspace_agents||0)||String(n.name).localeCompare(String(o.name));return{callable:t.filter(n=>n.callable).sort(r),unavailable:t.filter(n=>!n.callable)}}function _T(e,t=[]){if(!e)return[...t];let r=new Set(kT(e).map(n=>n.key));return t.filter(n=>r.has(n))}var CT=(e=[],t)=>e.some(r=>Tm(r)===t);function J6(e=[],t){return CT(e,t.key)?e.filter(r=>Tm(r)!==t.key):[...e,{key:t.key,name:t.name}]}function Q6(e){let t=e.workspace_agents||0;return t?`${t} agent${t===1?"":"s"}`:null}var iw=[{id:"basics",label:"Basics",icon:"1"},{id:"configure",label:"Configure",icon:"2"},{id:"review",label:"Review",icon:"3"}],iv={...rv,agents:{emoji:"\u{1F91D}",label:"Delegate to agents"},ask:{emoji:"\u{1F64B}",label:"Ask the user"}},Foe=["name","slug","description","provider","model"];function AT({meta:e,onSave:t,onCancel:r,isLoading:n,initialDraft:o=null}){let[a,i]=(0,ye.useState)(0),[s,l]=(0,ye.useState)({name:"",description:"",provider:"openai",model:Nm.openai[0],instructions:"",preset_type:"terminal",instruction_sets:["github"],tools:["terminal","code"],mcp_servers:[],model_config:{temperature:.7},...o?{name:o.name,description:o.description||"",instructions:o.instructions,provider:o.provider,model:o.model,tools:o.tools||[],instruction_sets:[],mcp_servers:o.mcp_servers||[]}:{}}),u=bc([s.provider]),c=(0,ye.useMemo)(()=>{let w=o?.model&&o.provider;return!w||!u[w]?u:{...u,[w]:[...new Set([o.model,...u[w]])]}},[u]),d=c[s.provider];(0,ye.useEffect)(()=>{d?.length&&l(w=>d.includes(w.model)?w:{...w,model:d[0]})},[d]);let[p,f]=(0,ye.useState)(null),[m,y]=(0,ye.useState)(null);(0,ye.useEffect)(()=>{fetch("/api/agents/tool_roster").then(w=>{if(!w.ok)throw new Error(`HTTP ${w.status}`);return w.json()}).then(w=>{f(w),l(_=>({..._,tools:_T(w,_.tools)}))}).catch(w=>y(w.message))},[]);let[b,g]=(0,ye.useState)(null),h=(w,_)=>{l(A=>({...A,[w]:_}))},v=(w,_)=>{l(A=>{let C=A[w]||[],N=C.includes(_)?C.filter(L=>L!==_):[...C,_];return{...A,[w]:N}})},x=w=>{if(h("preset_type",w),_m[w]){let _=_m[w];h("instruction_sets",[..._.instructions]),h("tools",_T(p,_.tools))}},S=()=>{switch(a){case 0:return s.name.trim().length>=2;case 1:return!0;case 2:return!0;default:return!1}},k=async()=>{g(null);let w=await t({...s,approval_required_tools:Om(s.tools)});w&&(g(w),Object.keys(w.fieldErrors||{}).some(_=>Foe.includes(_))&&i(0))};return ye.default.createElement("div",{className:"max-w-4xl mx-auto"},o&&ye.default.createElement("div",{className:"mb-4 p-4 rounded-lg border border-red-200 bg-red-50 text-sm text-gray-700"},"Prepared by your workspace assistant. Review the instructions, model, and tools before creating this agent."),ye.default.createElement("div",{className:"mb-8"},ye.default.createElement("div",{className:"flex items-center justify-between"},iw.map((w,_)=>ye.default.createElement("div",{key:w.id,className:"flex items-center"},ye.default.createElement("div",{className:`flex items-center justify-center w-10 h-10 rounded-full border-2 transition-colors ${_ye.default.createElement("li",{key:w},w)))),ye.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-8"},a===0&&ye.default.createElement(Uoe,{formData:s,updateField:h,providerModels:c,fieldErrors:b?.fieldErrors||{}}),a===1&&ye.default.createElement(Woe,{formData:s,meta:e,roster:p,rosterError:m,toggleArrayItem:v,updateField:h,selectPreset:x}),a===2&&ye.default.createElement(Hoe,{formData:s,roster:p})),ye.default.createElement("div",{className:"flex justify-between mt-6"},ye.default.createElement("button",{onClick:a===0?r:()=>i(a-1),className:"px-6 py-2 border border-gray-300 rounded-lg text-gray-700 hover:bg-gray-50 transition-colors"},a===0?"Cancel":"Back"),ye.default.createElement("button",{onClick:a===iw.length-1?k:()=>i(a+1),disabled:!S()||n,className:`px-6 py-2 rounded-lg transition-colors ${S()&&!n?"bg-red-500 text-white hover:bg-red-600":"bg-gray-200 text-gray-400 cursor-not-allowed"}`},a===iw.length-1?"Create Agent":"Continue")))}function sw({messages:e}){return e.length?ye.default.createElement("p",{className:"mt-1 text-sm text-red-600"},e.join(". ")):null}function Uoe({formData:e,updateField:t,providerModels:r,fieldErrors:n}){let o=(...a)=>a.flatMap(i=>n[i]||[]);return ye.default.createElement("div",{className:"space-y-6"},ye.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Basic Information"),ye.default.createElement("p",{className:"text-gray-500"},"Give your agent a name and configure its AI provider."),ye.default.createElement("div",{className:"space-y-4"},ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Agent Name *"),ye.default.createElement("input",{type:"text",value:e.name,onChange:a=>t("name",a.target.value),placeholder:"My Awesome Agent",className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent"}),ye.default.createElement(sw,{messages:o("name","slug")})),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Description"),ye.default.createElement("textarea",{value:e.description,onChange:a=>t("description",a.target.value),placeholder:"What does this agent do?",rows:3,className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent"}),ye.default.createElement(sw,{messages:o("description")})),ye.default.createElement("div",{className:"grid grid-cols-2 gap-4"},ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Provider"),ye.default.createElement("select",{value:e.provider,onChange:a=>{t("provider",a.target.value),t("model",r[a.target.value][0])},className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},Object.keys(r).map(a=>ye.default.createElement("option",{key:a,value:a},a.charAt(0).toUpperCase()+a.slice(1)))),ye.default.createElement(sw,{messages:o("provider")})),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Model"),ye.default.createElement(ru,{value:e.model,models:r[e.provider],onChange:a=>t("model",a),className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"}),ye.default.createElement(sw,{messages:o("model")}))),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Temperature: ",e.model_config.temperature),ye.default.createElement("input",{type:"range",min:"0",max:"1",step:"0.1",value:e.model_config.temperature,onChange:a=>t("model_config",{...e.model_config,temperature:parseFloat(a.target.value)}),className:"w-full accent-red-500"}),ye.default.createElement("div",{className:"flex justify-between text-xs text-gray-400"},ye.default.createElement("span",null,"Precise"),ye.default.createElement("span",null,"Creative")))))}function Woe({formData:e,meta:t,roster:r,rosterError:n,toggleArrayItem:o,updateField:a,selectPreset:i}){let s=Object.keys(_m),l=Object.keys(Xd),u=kT(r),{callable:c,unavailable:d}=Z6(r);return ye.default.createElement("div",{className:"space-y-6"},ye.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Configure Agent"),ye.default.createElement("p",{className:"text-gray-500"},"Choose a preset or customize instructions and tools."),ye.default.createElement("div",{className:"flex justify-center py-6 bg-gradient-to-br from-gray-50 to-gray-100 rounded-xl"},ye.default.createElement("div",{className:"flex flex-col items-center"},ye.default.createElement("div",{className:"flex gap-2 mb-2"},e.instruction_sets.map(p=>{let f=Xd[p];return f?ye.default.createElement("span",{key:p,className:"text-lg",title:f.label},f.emoji):null})),ye.default.createElement(In,{size:120}),ye.default.createElement("div",{className:"flex gap-2 mt-2"},e.tools.map(p=>{let f=rv[p];return f?ye.default.createElement("span",{key:p,className:"text-lg",title:f.label},f.emoji):null})))),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},"Quick Presets"),ye.default.createElement("div",{className:"flex flex-wrap gap-2"},s.map(p=>ye.default.createElement("button",{key:p,onClick:()=>i(p),className:`px-4 py-2 rounded-lg border-2 text-sm transition-all ${e.preset_type===p?"border-red-500 bg-red-50 text-red-700":"border-gray-200 hover:border-gray-300 text-gray-600"}`},ye.default.createElement("span",{className:"capitalize"},p.replace(/([A-Z])/g," $1").trim()))))),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},ye.default.createElement("strong",null,"Instructions"),ye.default.createElement("span",{className:"text-gray-400 font-normal ml-2"},"System/developer messages")),ye.default.createElement("div",{className:"flex flex-wrap gap-2"},l.map(p=>{let f=Xd[p];return ye.default.createElement("button",{key:p,onClick:()=>o("instruction_sets",p),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-full text-sm transition-colors ${e.instruction_sets.includes(p)?"bg-red-500 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`},ye.default.createElement("span",null,f.emoji),ye.default.createElement("span",null,f.label))}))),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},ye.default.createElement("strong",null,"Tools"),ye.default.createElement("span",{className:"text-gray-400 font-normal ml-2"},"Functions the model can call")),n&&ye.default.createElement("p",{className:"text-sm text-red-600"},"Could not load the tools this workspace offers: ",n),!r&&!n&&ye.default.createElement("p",{className:"text-sm text-gray-400"},"Loading tools\u2026"),ye.default.createElement("div",{className:"flex flex-wrap gap-2","data-testid":"builder-tools"},u.map(p=>ye.default.createElement(R6,{key:p.key,testId:`builder-tool-${p.key}`,on:e.tools.includes(p.key),onClick:()=>o("tools",p.key),emoji:iv[p.key]?.emoji||"\u{1F9F1}",label:iv[p.key]?.label||p.name,title:p.description||p.name}))),aw(e.tools)&&ye.default.createElement("p",{className:"mt-2 text-xs text-gray-500","data-testid":"builder-checkout-hint"},"Terminal, Filesystem, Edit and Database act in a repository checkout: choose one under Checkout when you run the agent.")),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},ye.default.createElement("strong",null,"MCP servers"),ye.default.createElement("span",{className:"text-gray-400 font-normal ml-2"},"Every tool the server serves is offered")),r&&c.length===0&&ye.default.createElement("p",{className:"text-sm text-gray-500"},"No MCP server this workspace can call yet. Register one with its URL in ",ye.default.createElement("code",null,"ActionAgent.mcp_catalog"),", or boot a project's checkout to offer its app runtime."),ye.default.createElement("div",{className:"flex flex-wrap gap-2","data-testid":"builder-mcp-servers"},c.map(p=>ye.default.createElement(R6,{key:p.key,testId:`builder-mcp-${p.key}`,on:CT(e.mcp_servers,p.key),onClick:()=>a("mcp_servers",J6(e.mcp_servers,p)),emoji:p.runtime?"\u{1F4E6}":"\u{1F50C}",label:p.name,hint:Q6(p),title:[p.description,p.transport].filter(Boolean).join(" \xB7 ")}))),d.length>0&&ye.default.createElement("details",{className:"mt-3 text-sm","data-testid":"builder-mcp-unavailable"},ye.default.createElement("summary",{className:"cursor-pointer text-gray-500"},d.length," catalog server",d.length===1?"":"s"," a run can't call"),ye.default.createElement("ul",{className:"mt-2 space-y-1"},d.map(p=>ye.default.createElement("li",{key:p.key,className:"text-xs text-gray-500"},ye.default.createElement("span",{className:"font-medium text-gray-700"},p.name)," \u2014 ",p.unavailable_reason))))),ye.default.createElement("div",null,ye.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-2"},"System Instructions"),ye.default.createElement("textarea",{value:e.instructions,onChange:p=>a("instructions",p.target.value),placeholder:"You are a helpful AI assistant that...",rows:4,className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent font-mono text-sm"})))}function Hoe({formData:e,roster:t}){let r=n=>{let o=typeof n=="string"?n:n?.key;return t?.services?.find(a=>a.key===o)?.name||n?.name||o};return ye.default.createElement("div",{className:"space-y-6"},ye.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Review Your Agent"),ye.default.createElement("p",{className:"text-gray-500"},"Confirm the configuration before creating your agent."),ye.default.createElement("div",{className:"grid grid-cols-2 gap-8"},ye.default.createElement("div",{className:"flex flex-col items-center py-6 bg-gradient-to-br from-gray-50 to-gray-100 rounded-xl"},ye.default.createElement("div",{className:"flex gap-2 mb-2"},e.instruction_sets.map(n=>{let o=Xd[n];return o?ye.default.createElement("span",{key:n,className:"text-lg",title:o.label},o.emoji):null})),ye.default.createElement(In,{size:100}),ye.default.createElement("div",{className:"flex gap-2 mt-2"},e.tools.map(n=>{let o=rv[n];return o?ye.default.createElement("span",{key:n,className:"text-lg",title:o.label},o.emoji):null})),ye.default.createElement("h3",{className:"mt-4 text-lg font-semibold text-gray-900"},e.name),ye.default.createElement("p",{className:"text-sm text-gray-500"},e.description||"No description")),ye.default.createElement("div",{className:"space-y-4"},ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Provider / Model"),ye.default.createElement("p",{className:"text-gray-900"},e.provider," / ",e.model)),ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Temperature"),ye.default.createElement("p",{className:"text-gray-900"},e.model_config.temperature)),ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Instructions"),ye.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},e.instruction_sets.length>0?e.instruction_sets.map(n=>{let o=Xd[n];return o?ye.default.createElement("span",{key:n,className:"px-2 py-0.5 bg-gray-100 rounded text-xs"},o.emoji," ",o.label):null}):ye.default.createElement("span",{className:"text-gray-400 text-sm"},"None selected"))),ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Tools"),ye.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},e.tools.length>0?e.tools.map(n=>ye.default.createElement("span",{key:n,className:"px-2 py-0.5 bg-red-100 text-red-700 rounded text-xs"},iv[n]?`${iv[n].emoji} ${iv[n].label}`:n)):ye.default.createElement("span",{className:"text-gray-400 text-sm"},"None selected"))),Om(e.tools).length>0&&ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Waits for your approval"),ye.default.createElement("p",{className:"text-gray-900 text-sm font-mono"},Om(e.tools).join(", "))),ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"MCP servers"),ye.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},e.mcp_servers.length>0?e.mcp_servers.map(n=>ye.default.createElement("span",{key:r(n),className:"px-2 py-0.5 bg-red-100 text-red-700 rounded text-xs"},r(n))):ye.default.createElement("span",{className:"text-gray-400 text-sm"},"None selected"))))),e.instructions&&ye.default.createElement("div",null,ye.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"System Instructions"),ye.default.createElement("pre",{className:"mt-2 p-4 bg-gray-50 rounded-lg text-sm text-gray-700 whitespace-pre-wrap font-mono"},e.instructions)))}function R6({on:e,onClick:t,emoji:r,label:n,hint:o,title:a,testId:i}){return ye.default.createElement("button",{type:"button","data-testid":i,"aria-pressed":e,onClick:t,title:a,className:`flex items-center gap-1.5 px-3 py-1.5 rounded-full text-sm transition-colors ${e?"bg-red-500 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`},ye.default.createElement("span",null,r),ye.default.createElement("span",null,n),o&&ye.default.createElement("span",{className:`text-xs ${e?"text-red-100":"text-gray-400"}`},"\xB7 ",o))}var Se=Z(Q());var Vi=e=>({cardBg:e?"#1f1f1f":"#ffffff",cardBorder:e?"#2a2a2a":"#e5e7eb",borderStrong:e?"rgba(255,255,255,0.2)":"#d1d5db",mutedBg:e?"rgba(255,255,255,0.06)":"#f3f4f6",innerBg:e?"rgba(255,255,255,0.04)":"#f9fafb",textPrimary:e?"#ffffff":"#111827",textCell:e?"rgba(255,255,255,0.75)":"#4b5563",textSecondary:e?"rgba(255,255,255,0.6)":"#6b7280",textMuted:e?"rgba(255,255,255,0.4)":"#9ca3af",inputBg:e?"rgba(255,255,255,0.06)":"#ffffff",inputBorder:e?"rgba(255,255,255,0.2)":"#d1d5db",trackBg:e?"rgba(255,255,255,0.1)":"#f3f4f6"}),Qo="#ef4444";var H=Z(Q());var lw=Z(Q()),oz=Z(Q());function ez(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t{var r=e.children,n=e.width,o=e.height,a=e.viewBox,i=e.className,s=e.style,l=e.title,u=e.desc,c=Yoe(e,Goe),d=a||{width:n,height:o,x:0,y:0},p=bt("recharts-surface",i);return lw.createElement("svg",TT({},yn(c),{className:p,width:n,height:o,style:s,viewBox:"".concat(d.x," ").concat(d.y," ").concat(d.width," ").concat(d.height),ref:t}),lw.createElement("title",null,l),lw.createElement("desc",null,u),r)});var uw=Z(Q());var Zoe=["children","className"];function OT(){return OT=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=e.children,n=e.className,o=Joe(e,Zoe),a=bt("recharts-layer",n);return uw.createElement("g",OT({className:a},yn(o),{ref:t}),r)});var Si=Z(Q()),$S=Z(Q()),o9=Z(oy());function cw(e){return e==="__proto__"}var Roe=/\.|(\[(?:[^[\]]*|(["'])(?:(?!\2)[^\\]|\\.)*?\2)\])/;function dw(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e===""||e.startsWith(".")||e.endsWith(".")?!1:Roe.test(e);default:return!1}}function Pm(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function PT(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(PT).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function Mm(e){if(Array.isArray(e))return e.map(Pm);if(typeof e=="symbol")return[e];e=PT(e);let t=[],r=e.length;if(r===0)return t;let n=0,o="",a="",i=!1;for(e.charCodeAt(0)===46&&t.push("");n1&&arguments[1]!==void 0?arguments[1]:tae,r=10**t,n=Math.round(e*r)/r;return Object.is(n,-0)?0:n}function Co(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n{var s=r[i-1];return typeof s=="string"?o+s+a:s!==void 0?o+Gi(s)+a:o+a},"")}var Qr=e=>e===0?0:e>0?1:-1,Wo=e=>typeof e=="number"&&e!=+e,nu=e=>typeof e=="string"&&e.length>1&&e.indexOf("%")===e.length-1,De=e=>(typeof e=="number"||e instanceof Number)&&!Wo(e),ka=e=>De(e)||typeof e=="string",rae=0,ou=e=>{var t=++rae;return"".concat(e||"").concat(t)},$n=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!De(t)&&typeof t!="string")return n;var a;if(nu(t)){if(r==null)return n;var i=t.indexOf("%");a=r*parseFloat(t.slice(0,i))/100}else a=+t;return Wo(a)&&(a=n),o&&r!=null&&a>r&&(a=r),a},MT=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,r={},n=0;nn&&(typeof t=="function"?t(n):Uo(n,t))===r)}var ar=e=>e===null||typeof e>"u",au=e=>ar(e)?e:"".concat(e.charAt(0).toUpperCase()).concat(e.slice(1));function Ao(e){return e!=null}function _a(){}function uv(e){if(e)return{x:e.x,y:e.y,upperWidth:"upperWidth"in e?e.upperWidth:e.width,lowerWidth:"lowerWidth"in e?e.lowerWidth:e.width,width:e.width,height:e.height}}function az(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function sl(e){for(var t=1;t{var t=e.viewBox,r=e.position,n=e.offset,o=n===void 0?0:n,a=e.parentViewBox,i=e.clamp,s=uv(t),l=s.x,u=s.y,c=s.height,d=s.upperWidth,p=s.lowerWidth,f=l,m=l+(d-p)/2,y=(f+m)/2,b=(d+p)/2,g=f+d/2,h=c>=0?1:-1,v=h*o,x=h>0?"end":"start",S=h>0?"start":"end",k=d>=0?1:-1,w=k*o,_=k>0?"end":"start",A=k>0?"start":"end",C=a;if(r==="top"){var N={x:f+d/2,y:u-v,horizontalAnchor:"middle",verticalAnchor:x};return i&&C&&(N.height=Math.max(u-C.y,0),N.width=d),N}if(r==="bottom"){var L={x:m+p/2,y:u+c+v,horizontalAnchor:"middle",verticalAnchor:S};return i&&C&&(L.height=Math.max(C.y+C.height-(u+c),0),L.width=p),L}if(r==="left"){var J={x:y-w,y:u+c/2,horizontalAnchor:_,verticalAnchor:"middle"};return i&&C&&(J.width=Math.max(J.x-C.x,0),J.height=c),J}if(r==="right"){var B={x:y+b+w,y:u+c/2,horizontalAnchor:A,verticalAnchor:"middle"};return i&&C&&(B.width=Math.max(C.x+C.width-B.x,0),B.height=c),B}var K=i&&C?{width:b,height:c}:{};return r==="insideLeft"?sl({x:y+w,y:u+c/2,horizontalAnchor:A,verticalAnchor:"middle"},K):r==="insideRight"?sl({x:y+b-w,y:u+c/2,horizontalAnchor:_,verticalAnchor:"middle"},K):r==="insideTop"?sl({x:f+d/2,y:u+v,horizontalAnchor:"middle",verticalAnchor:S},K):r==="insideBottom"?sl({x:m+p/2,y:u+c-v,horizontalAnchor:"middle",verticalAnchor:x},K):r==="insideTopLeft"?sl({x:f+w,y:u+v,horizontalAnchor:A,verticalAnchor:S},K):r==="insideTopRight"?sl({x:f+d-w,y:u+v,horizontalAnchor:_,verticalAnchor:S},K):r==="insideBottomLeft"?sl({x:m+w,y:u+c-v,horizontalAnchor:A,verticalAnchor:x},K):r==="insideBottomRight"?sl({x:m+p-w,y:u+c-v,horizontalAnchor:_,verticalAnchor:x},K):r&&typeof r=="object"&&(De(r.x)||nu(r.x))&&(De(r.y)||nu(r.y))?sl({x:l+$n(r.x,b),y:u+$n(r.y,c),horizontalAnchor:"end",verticalAnchor:"end"},K):sl({x:g,y:u+c/2,horizontalAnchor:"middle",verticalAnchor:"middle"},K)},iae=["top","left","right","bottom"];function cv(e){return e==null?!1:typeof e=="object"?!0:iae.includes(e)}var mw=Z(Q()),IT=(0,mw.createContext)(null),iz=()=>(0,mw.useContext)(IT);var Ca=Z(Q());var Cz=Z(Q());function Mr(e){return function(){return e}}var DT=Math.cos;var dv=Math.sin,Ho=Math.sqrt;var Jd=Math.PI,lNe=Jd/2,Im=2*Jd;var jT=Math.PI,$T=2*jT,Qd=1e-6,sae=$T-Qd;function sz(e){this._+=e[0];for(let t=1,r=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return sz;let r=10**t;return function(n){this._+=n[0];for(let o=1,a=n.length;oQd)if(!(Math.abs(d*l-u*c)>Qd)||!a)this._append`L${this._x1=t},${this._y1=r}`;else{let f=n-i,m=o-s,y=l*l+u*u,b=f*f+m*m,g=Math.sqrt(y),h=Math.sqrt(p),v=a*Math.tan((jT-Math.acos((y+p-b)/(2*g*h)))/2),x=v/h,S=v/g;Math.abs(x-1)>Qd&&this._append`L${t+x*c},${r+x*d}`,this._append`A${a},${a},0,0,${+(d*f>c*m)},${this._x1=t+S*l},${this._y1=r+S*u}`}}arc(t,r,n,o,a,i){if(t=+t,r=+r,n=+n,i=!!i,n<0)throw new Error(`negative radius: ${n}`);let s=n*Math.cos(o),l=n*Math.sin(o),u=t+s,c=r+l,d=1^i,p=i?o-a:a-o;this._x1===null?this._append`M${u},${c}`:(Math.abs(this._x1-u)>Qd||Math.abs(this._y1-c)>Qd)&&this._append`L${u},${c}`,n&&(p<0&&(p=p%$T+$T),p>sae?this._append`A${n},${n},0,1,${d},${t-s},${r-l}A${n},${n},0,1,${d},${this._x1=u},${this._y1=c}`:p>Qd&&this._append`A${n},${n},0,${+(p>=jT)},${d},${this._x1=t+n*Math.cos(a)},${this._y1=r+n*Math.sin(a)}`)}rect(t,r,n,o){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+o}h${-n}Z`}toString(){return this._}};function lz(){return new Rd}lz.prototype=Rd.prototype;function Dm(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{let n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);t=n}return e},()=>new Rd(t)}var hNe=Array.prototype.slice;function jm(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function uz(e){this._context=e}uz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function Sc(e){return new uz(e)}function gw(e){return e[0]}function hw(e){return e[1]}function pv(e,t){var r=Mr(!0),n=null,o=Sc,a=null,i=Dm(s);e=typeof e=="function"?e:e===void 0?gw:Mr(e),t=typeof t=="function"?t:t===void 0?hw:Mr(t);function s(l){var u,c=(l=jm(l)).length,d,p=!1,f;for(n==null&&(a=o(f=i())),u=0;u<=c;++u)!(u=f;--m)s.point(v[m],x[m]);s.lineEnd(),s.areaEnd()}g&&(v[p]=+e(b,p,d),x[p]=+t(b,p,d),s.point(n?+n(b,p,d):v[p],r?+r(b,p,d):x[p]))}if(h)return s=null,h+""||null}function c(){return pv().defined(o).curve(i).context(a)}return u.x=function(d){return arguments.length?(e=typeof d=="function"?d:Mr(+d),n=null,u):e},u.x0=function(d){return arguments.length?(e=typeof d=="function"?d:Mr(+d),u):e},u.x1=function(d){return arguments.length?(n=d==null?null:typeof d=="function"?d:Mr(+d),u):n},u.y=function(d){return arguments.length?(t=typeof d=="function"?d:Mr(+d),r=null,u):t},u.y0=function(d){return arguments.length?(t=typeof d=="function"?d:Mr(+d),u):t},u.y1=function(d){return arguments.length?(r=d==null?null:typeof d=="function"?d:Mr(+d),u):r},u.lineX0=u.lineY0=function(){return c().x(e).y(t)},u.lineY1=function(){return c().x(e).y(r)},u.lineX1=function(){return c().x(n).y(t)},u.defined=function(d){return arguments.length?(o=typeof d=="function"?d:Mr(!!d),u):o},u.curve=function(d){return arguments.length?(i=d,a!=null&&(s=i(a)),u):i},u.context=function(d){return arguments.length?(d==null?a=s=null:s=i(a=d),u):a},u}var yw=class{constructor(t,r){this._context=t,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,r){switch(t=+t,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,r):this._context.moveTo(t,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,r,t,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,t,this._y0,t,r);break}}this._x0=t,this._y0=r}};function LT(e){return new yw(e,!0)}function zT(e){return new yw(e,!1)}var Lm={draw(e,t){let r=Ho(t/Jd);e.moveTo(r,0),e.arc(0,0,r,0,Im)}};var BT={draw(e,t){let r=Ho(t/5)/2;e.moveTo(-3*r,-r),e.lineTo(-r,-r),e.lineTo(-r,-3*r),e.lineTo(r,-3*r),e.lineTo(r,-r),e.lineTo(3*r,-r),e.lineTo(3*r,r),e.lineTo(r,r),e.lineTo(r,3*r),e.lineTo(-r,3*r),e.lineTo(-r,r),e.lineTo(-3*r,r),e.closePath()}};var cz=Ho(1/3),uae=cz*2,FT={draw(e,t){let r=Ho(t/uae),n=r*cz;e.moveTo(0,-r),e.lineTo(n,0),e.lineTo(0,r),e.lineTo(-n,0),e.closePath()}};var UT={draw(e,t){let r=Ho(t),n=-r/2;e.rect(n,n,r,r)}};var cae=.8908130915292852,dz=dv(Jd/10)/dv(7*Jd/10),dae=dv(Im/10)*dz,pae=-DT(Im/10)*dz,WT={draw(e,t){let r=Ho(t*cae),n=dae*r,o=pae*r;e.moveTo(0,-r),e.lineTo(n,o);for(let a=1;a<5;++a){let i=Im*a/5,s=DT(i),l=dv(i);e.lineTo(l*r,-s*r),e.lineTo(s*n-l*o,l*n+s*o)}e.closePath()}};var HT=Ho(3),qT={draw(e,t){let r=-Ho(t/(HT*3));e.moveTo(0,r*2),e.lineTo(-HT*r,-r),e.lineTo(HT*r,-r),e.closePath()}};var Yi=-.5,Xi=Ho(3)/2,KT=1/Ho(12),fae=(KT/2+1)*3,VT={draw(e,t){let r=Ho(t/fae),n=r/2,o=r*KT,a=n,i=r*KT+r,s=-a,l=i;e.moveTo(n,o),e.lineTo(a,i),e.lineTo(s,l),e.lineTo(Yi*n-Xi*o,Xi*n+Yi*o),e.lineTo(Yi*a-Xi*i,Xi*a+Yi*i),e.lineTo(Yi*s-Xi*l,Xi*s+Yi*l),e.lineTo(Yi*n+Xi*o,Yi*o-Xi*n),e.lineTo(Yi*a+Xi*i,Yi*i-Xi*a),e.lineTo(Yi*s+Xi*l,Yi*l-Xi*s),e.closePath()}};function vw(e,t){let r=null,n=Dm(o);e=typeof e=="function"?e:Mr(e||Lm),t=typeof t=="function"?t:Mr(t===void 0?64:+t);function o(){let a;if(r||(r=a=n()),e.apply(this,arguments).draw(r,+t.apply(this,arguments)),a)return r=null,a+""||null}return o.type=function(a){return arguments.length?(e=typeof a=="function"?a:Mr(a),o):e},o.size=function(a){return arguments.length?(t=typeof a=="function"?a:Mr(+a),o):t},o.context=function(a){return arguments.length?(r=a??null,o):r},o}function zm(){}function Bm(e,t,r){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+r)/6)}function pz(e){this._context=e}pz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Bm(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Bm(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function GT(e){return new pz(e)}function fz(e){this._context=e}fz.prototype={areaStart:zm,areaEnd:zm,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:Bm(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function YT(e){return new fz(e)}function mz(e){this._context=e}mz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+e)/6,n=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:Bm(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function XT(e){return new mz(e)}function gz(e){this._context=e}gz.prototype={areaStart:zm,areaEnd:zm,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function ZT(e){return new gz(e)}function hz(e){return e<0?-1:1}function yz(e,t,r){var n=e._x1-e._x0,o=t-e._x1,a=(e._y1-e._y0)/(n||o<0&&-0),i=(r-e._y1)/(o||n<0&&-0),s=(a*o+i*n)/(n+o);return(hz(a)+hz(i))*Math.min(Math.abs(a),Math.abs(i),.5*Math.abs(s))||0}function vz(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function JT(e,t,r){var n=e._x0,o=e._y0,a=e._x1,i=e._y1,s=(a-n)/3;e._context.bezierCurveTo(n+s,o+s*t,a-s,i-s*r,a,i)}function xw(e){this._context=e}xw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:JT(this,this._t0,vz(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,JT(this,vz(this,r=yz(this,e,t)),r);break;default:JT(this,this._t0,r=yz(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function xz(e){this._context=new bz(e)}(xz.prototype=Object.create(xw.prototype)).point=function(e,t){xw.prototype.point.call(this,t,e)};function bz(e){this._context=e}bz.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,n,o,a){this._context.bezierCurveTo(t,e,n,r,a,o)}};function QT(e){return new xw(e)}function RT(e){return new xz(e)}function Sz(e){this._context=e}Sz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,r=e.length;if(r)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),r===2)this._context.lineTo(e[1],t[1]);else for(var n=wz(e),o=wz(t),a=0,i=1;i=0;--t)o[t]=(i[t]-o[t+1])/a[t];for(a[r-1]=(e[r]+o[r-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t}};function tO(e){return new bw(e,.5)}function rO(e){return new bw(e,0)}function nO(e){return new bw(e,1)}function yi(e,t){if((i=e.length)>1)for(var r=1,n,o,a=e[t[0]],i,s=a.length;r=0;)r[t]=t;return r}function mae(e,t){return e[t]}function gae(e){let t=[];return t.key=e,t}function oO(){var e=Mr([]),t=Fm,r=yi,n=mae;function o(a){var i=Array.from(e.apply(this,arguments),gae),s,l=i.length,u=-1,c;for(let d of a)for(s=0,++u;s0){for(var r,n,o=0,a=e[0].length,i;o0){for(var r=0,n=e[t[0]],o,a=n.length;r0)||!((a=(o=e[t[0]]).length)>0))){for(var r=0,n=1,o,a,i;n{var t="symbol".concat(au(e));return Az[t]||Lm},Cae=(e,t,r)=>{if(t==="area")return e;switch(r){case"cross":return 5*e*e/9;case"diamond":return .5*e*e/Math.sqrt(3);case"square":return e*e;case"star":{var n=18*kae;return 1.25*e*e*(Math.tan(n)-Math.tan(n*2)*Math.tan(n)**2)}case"triangle":return Math.sqrt(3)*e*e/4;case"wye":return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},Aae=(e,t)=>{Az["symbol".concat(au(e))]=t},uO=e=>{var t=e.type,r=t===void 0?"circle":t,n=e.size,o=n===void 0?64:n,a=e.sizeType,i=a===void 0?"area":a,s=wae(e,yae),l=_z(_z({},s),{},{type:r,size:o,sizeType:i}),u="circle";typeof r=="string"&&(u=r);var c=()=>{var y=_ae(u),b=vw().type(y).size(Cae(o,i,u)),g=b();if(g!==null)return g},d=l.className,p=l.cx,f=l.cy,m=yn(l);return De(p)&&De(f)&&De(o)?Cz.createElement("path",lO({},m,{className:bt("recharts-symbols",d),transform:"translate(".concat(p,", ").concat(f,")"),d:c()})):null};uO.registerSymbol=Aae;var Ez=Z(Q());var ww=e=>"radius"in e&&"startAngle"in e&&"endAngle"in e,Um=(e,t)=>{if(!e||typeof e=="function"||typeof e=="boolean")return null;var r=e;if((0,Ez.isValidElement)(e)&&(r=e.props),typeof r!="object"&&typeof r!="function")return null;var n={};return Object.keys(r).forEach(o=>{sv(o)&&typeof r[o]=="function"&&(n[o]=t||(a=>r[o](r,a)))}),n},Eae=(e,t,r)=>n=>(e(t,r,n),null),iu=(e,t,r)=>{if(e===null||typeof e!="object"&&typeof e!="function")return null;var n=null;return Object.keys(e).forEach(o=>{var a=e[o];sv(o)&&typeof a=="function"&&(n||(n={}),n[o]=Eae(a,t,r))}),n};function Nz(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Nae(e){for(var t=1;t(i[s]===void 0&&n[s]!==void 0&&(i[s]=n[s]),i),r);return a}function Sw(){return Sw=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var f,m,y=d.formatter||o,b=bt({"recharts-legend-item":!0,["legend-item-".concat(p)]:!0,inactive:d.inactive});if(d.type==="none")return null;var g=typeof s=="object"?wz({},s):{};g.color=d.inactive?a:g.color||d.color,(f=g.whiteSpace)!==null&&f!==void 0||(g.whiteSpace="normal"),(m=g.overflowWrap)!==null&&m!==void 0||(g.overflowWrap="break-word");var h=y?y(d.value,d,p):d.value;return _a.createElement("li",ww({className:b,style:u,key:"legend-item-".concat(p)},iu(e,d,p)),_a.createElement(lv,{width:r,height:r,viewBox:l,style:c,"aria-label":d.value==null?"legend icon":"".concat(d.value," legend icon")},_a.createElement(Eae,{data:d,iconType:i,inactiveColor:a})),_a.createElement("span",{className:"recharts-legend-item-text",style:g},h))})}var Sz=e=>{var t=nr(e,Cae),r=t.payload,n=t.layout,o=t.align;if(!r||!r.length)return null;var a={padding:0,margin:0,textAlign:n==="horizontal"?o:"left"};return _a.createElement("ul",{className:"recharts-default-legend",style:a},_a.createElement(Nae,ww({},t,{payload:r})))};function kz(e,t){let r=new Map;for(let n=0;nObject.prototype.propertyIsEnumerable.call(e,t))}function su(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}var kw="[object RegExp]",Wm="[object String]",Hm="[object Number]",qm="[object Boolean]",_w="[object Arguments]",Cw="[object Symbol]",Aw="[object Date]",Ew="[object Map]",Nw="[object Set]",Tw="[object Array]",Ez="[object Function]",Ow="[object ArrayBuffer]",Km="[object Object]",Nz="[object Error]",Pw="[object DataView]",Mw="[object Uint8Array]",Iw="[object Uint8ClampedArray]",Dw="[object Uint16Array]",jw="[object Uint32Array]",Tz="[object BigUint64Array]",$w="[object Int8Array]",Lw="[object Int16Array]",zw="[object Int32Array]",Oz="[object BigInt64Array]",Bw="[object Float32Array]",Fw="[object Float64Array]";var lO=typeof globalThis=="object"&&globalThis||typeof window=="object"&&window||typeof self=="object"&&self||typeof global=="object"&&global||(function(){return this})();function gv(e){return typeof lO.Buffer<"u"&&lO.Buffer.isBuffer(e)}function Pz(e,t){return kc(e,void 0,e,new Map,t)}function kc(e,t,r,n=new Map,o=void 0){let a=o?.(e,t,r,n);if(a!==void 0)return a;if(fv(e))return e;if(n.has(e))return n.get(e);if(Array.isArray(e)){let i=new Array(e.length);n.set(e,i);for(let s=0;s{}):uO(e,t,function n(o,a,i,s,l,u){let c=r(o,a,i,s,l,u);return c!==void 0?!!c:uO(o,a,n,u,!1)},new Map,!0)}function uO(e,t,r,n,o=!1){if(t===e)return!0;switch(typeof t){case"object":return Oae(e,t,r,n);case"function":return Object.keys(t).length>0?uO(e,{...t},r,n,o):_c(e,t);default:return Uw(e)?o?typeof t=="string"?t==="":!0:_c(e,t):_c(e,t)}}function Oae(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return Iz(e,t,r,n);if(t instanceof Map)return Pae(e,t,r,n);if(t instanceof Set)return Mae(e,t,r,n);let o=Object.keys(t);if(e==null||fv(e))return o.length===0;if(o.length===0)return!0;if(n?.has(t))return n.get(t)===e;n?.set(t,e);try{for(let a=0;a{})}function Dz(e){return e=Mz(e),t=>Ww(t,e)}function jz(e,t){return Pz(e,(r,n,o,a)=>{let i=t?.(r,n,o,a);if(i!==void 0)return i;if(typeof e=="object"){if(su(e)==="[object Object]"&&typeof e.constructor!="function"){let s={};return a.set(e,s),Zi(s,e,o,a),s}switch(Object.prototype.toString.call(e)){case Hm:case Wm:case qm:{let s=new e.constructor(e?.valueOf());return Zi(s,e),s}case _w:{let s={};return Zi(s,e),s.length=e.length,s[Symbol.iterator]=e[Symbol.iterator],s}default:return}}})}function $z(e){return jz(e)}var Iae=/^(?:0|[1-9]\d*)$/;function Hw(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e=0}function qw(e){return e!=null&&typeof e!="function"&&Uz(e.length)}function Wz(e){return typeof e=="object"&&e!==null}function Hz(e){return Wz(e)&&qw(e)}function Kw(e,t=Sw){return Hz(e)?kz(Array.from(e),_z(Fz(t),1)):[]}function Vw(e,t,r){return t===!0?Kw(e,r):typeof t=="function"?Kw(e,t):e}var Rz=Z(Jz()),yv=Z(J());var Qz=Z(J()),hv=(0,Qz.createContext)(null);var Jae=e=>e,jt=()=>{var e=(0,yv.useContext)(hv);return e?e.store.dispatch:Jae},Yw=()=>{},Qae=()=>Yw,Rae=(e,t)=>e===t;function $e(e){var t=(0,yv.useContext)(hv),r=(0,yv.useMemo)(()=>t?n=>{if(n!=null)return e(n)}:Yw,[t,e]);return(0,Rz.useSyncExternalStoreWithSelector)(t?t.subscription.addNestedSub:Qae,t?t.store.getState:Yw,t?t.store.getState:Yw,r,Rae)}function eie(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function tie(e,t="expected all items to be functions, instead received the following types: "){if(!e.every(r=>typeof r=="function")){let r=e.map(n=>typeof n=="function"?`function ${n.name||"unnamed"}()`:typeof n).join(", ");throw new TypeError(`${t}[${r}]`)}}var eB=e=>Array.isArray(e)?e:[e];function rie(e){let t=Array.isArray(e[0])?e[0]:e;return tie(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function nie(e,t){let r=[],{length:n}=e;for(let o=0;otypeof WeakRef>"u"?oie:WeakRef,rB=aie(),iie=0,tB=1;function Xw(){return{s:iie,v:void 0,o:null,p:null}}function sie(e){return e instanceof rB?e.deref():e}function nB(e,t={}){let r=Xw(),{resultEqualityCheck:n}=t,o,a=0;function i(){let s=r,{length:l}=arguments;for(let d=0,p=l;d{r=Xw(),i.resetResultsCount()},i.resultsCount=()=>a,i.resetResultsCount=()=>{a=0},i}function lie(e,...t){let r=typeof e=="function"?{memoize:e,memoizeOptions:t}:e,n=(...o)=>{let a=0,i=0,s,l={},u=o.pop();typeof u=="object"&&(l=u,u=o.pop()),eie(u,`createSelector expects an output function after the inputs, but received: [${typeof u}]`);let c={...r,...l},{memoize:d,memoizeOptions:p=[],argsMemoize:f=nB,argsMemoizeOptions:m=[]}=c,y=eB(p),b=eB(m),g=rie(o),h=d(function(){return a++,u.apply(null,arguments)},...y),v=!0,x=f(function(){i++;let k=nie(g,arguments);return s=h.apply(null,k),s},...b);return Object.assign(x,{resultFunc:u,memoizedResultFunc:h,dependencies:g,dependencyRecomputations:()=>i,resetDependencyRecomputations:()=>{i=0},lastResult:()=>s,recomputations:()=>a,resetRecomputations:()=>{a=0},memoize:d,argsMemoize:f})};return Object.assign(n,{withTypes:()=>n}),n}var ae=lie(nB);function oB(e,t=1){let r=[],n=Math.floor(t),o=(a,i)=>{for(let s=0;s{if(e!==t){let n=aB(e),o=aB(t);if(n===o&&n===0){if(et)return r==="desc"?-1:1}return r==="desc"?o-n:n-o}return 0};function Zw(e){return typeof e=="symbol"||e instanceof Symbol}var uie=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,cie=/^\w*$/;function sB(e,t){return Array.isArray(e)?!1:typeof e=="number"||typeof e=="boolean"||e==null||Zw(e)?!0:typeof e=="string"&&(cie.test(e)||!uie.test(e))||t!=null&&Object.hasOwn(t,e)}function lB(e,t,r,n){if(e==null)return[];r=n?void 0:r,Array.isArray(e)||(e=Object.values(e)),Array.isArray(t)||(t=t==null?[null]:[t]),t.length===0&&(t=[null]),Array.isArray(r)||(r=r==null?[]:[r]),r=r.map(s=>String(s));let o=(s,l)=>{let u=s;for(let c=0;cl==null||s==null?l:typeof s=="object"&&"key"in s?Object.hasOwn(l,s.key)?l[s.key]:o(l,s.path):typeof s=="function"?s(l):Array.isArray(s)?o(l,s):typeof l=="object"?l[s]:l,i=t.map(s=>(Array.isArray(s)&&s.length===1&&(s=s[0]),s==null||typeof s=="function"||Array.isArray(s)||sB(s)?s:{key:s,path:Mm(s)}));return e.map(s=>({original:s,criteria:i.map(l=>a(l,s))})).slice().sort((s,l)=>{for(let u=0;us.original)}function lu(e,...t){let r=t.length;return r>1&&vv(e,t[0],t[1])?t=[]:r>2&&vv(t[0],t[1],t[2])&&(t=[t[0]]),lB(e,oB(t),["asc"])}var pO=e=>e.legend.settings,uB=e=>e.legend.size,die=e=>e.legend.payload,cB=ae([die,pO],(e,t)=>{var r=t.itemSorter,n=e.flat(1);return r?lu(n,r):n});function dB(){return $e(cB)}var uu=Z(J());function pie(e,t){return hie(e)||gie(e,t)||mie(e,t)||fie()}function fie(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function mie(e,t){if(e){if(typeof e=="string")return pB(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?pB(e,t):void 0}}function pB(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rJw||Math.abs(e.left-t.left)>Jw||Math.abs(e.top-t.top)>Jw||Math.abs(e.width-t.width)>Jw}function mB(e){var t=e.getBoundingClientRect();return{height:t.height,left:t.left,top:t.top,width:t.width}}function Qw(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=(0,uu.useState)({height:0,left:0,top:0,width:0}),r=pie(t,2),n=r[0],o=r[1],a=(0,uu.useRef)(null),i=(0,uu.useRef)(n);i.current=n;var s=(0,uu.useCallback)(l=>{if(a.current!=null&&(a.current.disconnect(),a.current=null),l!=null){var u=mB(l);if(fB(u,i.current)&&o(u),typeof ResizeObserver<"u"){var c=new ResizeObserver(()=>{var d=mB(l);fB(d,i.current)&&o(d)});c.observe(l),a.current=c}}},[...e]);return(0,uu.useEffect)(()=>()=>{var l;(l=a.current)===null||l===void 0||l.disconnect()},[]),[n,s]}var O7=Z(J());function Ro(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var yie=typeof Symbol=="function"&&Symbol.observable||"@@observable",gB=yie,fO=()=>Math.random().toString(36).substring(7).split("").join("."),vie={INIT:`@@redux/INIT${fO()}`,REPLACE:`@@redux/REPLACE${fO()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${fO()}`},Rw=vie;function eS(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function mO(e,t,r){if(typeof e!="function")throw new Error(Ro(2));if(typeof t=="function"&&typeof r=="function"||typeof r=="function"&&typeof arguments[3]=="function")throw new Error(Ro(0));if(typeof t=="function"&&typeof r>"u"&&(r=t,t=void 0),typeof r<"u"){if(typeof r!="function")throw new Error(Ro(1));return r(mO)(e,t)}let n=e,o=t,a=new Map,i=a,s=0,l=!1;function u(){i===a&&(i=new Map,a.forEach((b,g)=>{i.set(g,b)}))}function c(){if(l)throw new Error(Ro(3));return o}function d(b){if(typeof b!="function")throw new Error(Ro(4));if(l)throw new Error(Ro(5));let g=!0;u();let h=s++;return i.set(h,b),function(){if(g){if(l)throw new Error(Ro(6));g=!1,u(),i.delete(h),a=null}}}function p(b){if(!eS(b))throw new Error(Ro(7));if(typeof b.type>"u")throw new Error(Ro(8));if(typeof b.type!="string")throw new Error(Ro(17));if(l)throw new Error(Ro(9));try{l=!0,o=n(o,b)}finally{l=!1}return(a=i).forEach(h=>{h()}),b}function f(b){if(typeof b!="function")throw new Error(Ro(10));n=b,p({type:Rw.REPLACE})}function m(){let b=d;return{subscribe(g){if(typeof g!="object"||g===null)throw new Error(Ro(11));function h(){let x=g;x.next&&x.next(c())}return h(),{unsubscribe:b(h)}},[gB](){return this}}}return p({type:Rw.INIT}),{dispatch:p,subscribe:d,getState:c,replaceReducer:f,[gB]:m}}function xie(e){Object.keys(e).forEach(t=>{let r=e[t];if(typeof r(void 0,{type:Rw.INIT})>"u")throw new Error(Ro(12));if(typeof r(void 0,{type:Rw.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(Ro(13))})}function tS(e){let t=Object.keys(e),r={};for(let i=0;i"u"){let b=l&&l.type;throw new Error(Ro(14))}c[p]=y,u=u||y!==m}return u=u||n.length!==Object.keys(s).length,u?c:s}}function xv(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function hB(...e){return t=>(r,n)=>{let o=t(r,n),a=()=>{throw new Error(Ro(15))},i={getState:o.getState,dispatch:(l,...u)=>a(l,...u)},s=e.map(l=>l(i));return a=xv(...s)(o.dispatch),{...o,dispatch:a}}}function gO(e){return eS(e)&&"type"in e&&typeof e.type=="string"}var CB=Symbol.for("immer-nothing"),yB=Symbol.for("immer-draftable"),ia=Symbol.for("immer-state");function Os(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var hi=Object,Ym=hi.getPrototypeOf,aS="constructor",dS="prototype",xO="configurable",iS="enumerable",nS="writable",bv="value",ll=e=>!!e&&!!e[ia];function yi(e){return e?AB(e)||fS(e)||!!e[yB]||!!e[aS]?.[yB]||mS(e)||gS(e):!1}var bie=hi[dS][aS].toString(),vB=new WeakMap;function AB(e){if(!e||!EO(e))return!1;let t=Ym(e);if(t===null||t===hi[dS])return!0;let r=hi.hasOwnProperty.call(t,aS)&&t[aS];if(r===Object)return!0;if(!Gm(r))return!1;let n=vB.get(r);return n===void 0&&(n=Function.toString.call(r),vB.set(r,n)),n===bie}function pS(e,t,r=!0){kv(e)===0?(r?Reflect.ownKeys(e):hi.keys(e)).forEach(o=>{t(o,e[o],e)}):e.forEach((n,o)=>t(o,n,e))}function kv(e){let t=e[ia];return t?t.type_:fS(e)?1:mS(e)?2:gS(e)?3:0}var hO=(e,t,r=kv(e))=>r===2?e.has(t):hi[dS].hasOwnProperty.call(e,t),bO=(e,t,r=kv(e))=>r===2?e.get(t):e[t],sS=(e,t,r,n=kv(e))=>{n===2?e.set(t,r):n===3?e.add(r):e[t]=r};function wie(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var fS=Array.isArray,mS=e=>e instanceof Map,gS=e=>e instanceof Set,EO=e=>typeof e=="object",Gm=e=>typeof e=="function",yO=e=>typeof e=="boolean";function Sie(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var cu=e=>e.copy_||e.base_;var NO=e=>e.modified_?e.copy_:e.base_;function wO(e,t){if(mS(e))return new Map(e);if(gS(e))return new Set(e);if(fS(e))return Array[dS].slice.call(e);let r=AB(e);if(t===!0||t==="class_only"&&!r){let n=hi.getOwnPropertyDescriptors(e);delete n[ia];let o=Reflect.ownKeys(n);for(let a=0;a1&&hi.defineProperties(e,{set:rS,add:rS,clear:rS,delete:rS}),hi.freeze(e),t&&pS(e,(r,n)=>{TO(n,!0)},!1)),e}function kie(){Os(2)}var rS={[bv]:kie};function hS(e){return e===null||!EO(e)?!0:hi.isFrozen(e)}var lS="MapSet",SO="Patches",xB="ArrayMethods",EB={};function ep(e){let t=EB[e];return t||Os(0,e),t}var bB=e=>!!EB[e];var wv,NB=()=>wv,_ie=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:bB(lS)?ep(lS):void 0,arrayMethodsPlugin_:bB(xB)?ep(xB):void 0});function wB(e,t){t&&(e.patchPlugin_=ep(SO),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function kO(e){_O(e),e.drafts_.forEach(Cie),e.drafts_=null}function _O(e){e===wv&&(wv=e.parent_)}var SB=e=>wv=_ie(wv,e);function Cie(e){let t=e[ia];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function kB(e,t){t.unfinalizedDrafts_=t.drafts_.length;let r=t.drafts_[0];if(e!==void 0&&e!==r){r[ia].modified_&&(kO(t),Os(4)),yi(e)&&(e=_B(t,e));let{patchPlugin_:o}=t;o&&o.generateReplacementPatches_(r[ia].base_,e,t)}else e=_B(t,r);return Aie(t,e,!0),kO(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==CB?e:void 0}function _B(e,t){if(hS(t))return t;let r=t[ia];if(!r)return uS(t,e.handledSet_,e);if(!yS(r,e))return t;if(!r.modified_)return r.base_;if(!r.finalized_){let{callbacks_:n}=r;if(n)for(;n.length>0;)n.pop()(e);PB(r,e)}return r.copy_}function Aie(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&TO(t,r)}function TB(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var yS=(e,t)=>e.scope_===t,Eie=[];function OB(e,t,r,n){let o=cu(e),a=e.type_;if(n!==void 0&&bO(o,n,a)===t){sS(o,n,r,a);return}if(!e.draftLocations_){let s=e.draftLocations_=new Map;pS(o,(l,u)=>{if(ll(u)){let c=s.get(u)||[];c.push(l),s.set(u,c)}})}let i=e.draftLocations_.get(t)??Eie;for(let s of i)sS(o,s,r,a)}function Nie(e,t,r){e.callbacks_.push(function(o){let a=t;if(!a||!yS(a,o))return;o.mapSetPlugin_?.fixSetContents(a);let i=NO(a);OB(e,a.draft_??a,i,r),PB(a,o)})}function PB(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 o=n.getPath(e);o&&n.generatePatches_(e,o,t)}TB(e)}}function Tie(e,t,r){let{scope_:n}=e;if(ll(r)){let o=r[ia];yS(o,n)&&o.callbacks_.push(function(){oS(e);let i=NO(o);OB(e,r,i,t)})}else yi(r)&&e.callbacks_.push(function(){let a=cu(e);e.type_===3?a.has(r)&&uS(r,n.handledSet_,n):bO(a,t,e.type_)===r&&n.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&uS(bO(e.copy_,t,e.type_),n.handledSet_,n)})}function uS(e,t,r){return!r.immer_.autoFreeze_&&r.unfinalizedDrafts_<1||ll(e)||t.has(e)||!yi(e)||hS(e)||(t.add(e),pS(e,(n,o)=>{if(ll(o)){let a=o[ia];if(yS(a,r)){let i=NO(a);sS(e,n,i,e.type_),TB(a)}}else yi(o)&&uS(o,t,r)})),e}function Oie(e,t){let r=fS(e),n={type_:r?1:0,scope_:t?t.scope_:NB(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},o=n,a=cS;r&&(o=[n],a=Sv);let{revoke:i,proxy:s}=Proxy.revocable(o,a);return n.draft_=s,n.revoke_=i,[s,n]}var cS={get(e,t){if(t===ia)return e;let r=e.scope_.arrayMethodsPlugin_,n=e.type_===1&&typeof t=="string";if(n&&r?.isArrayOperationMethod(t))return r.createMethodInterceptor(e,t);let o=cu(e);if(!hO(o,t,e.type_))return Mie(e,o,t);let a=o[t];if(e.finalized_||!yi(a)||n&&e.operationMethod&&r?.isMutatingArrayMethod(e.operationMethod)&&Sie(t))return a;if(a===vO(e.base_,t)||Pie(e,t,a)){oS(e);let i=e.type_===1?+t:t,s=AO(e.scope_,a,e,i);return e.copy_[i]=s}return a},has(e,t){return t in cu(e)},ownKeys(e){return Reflect.ownKeys(cu(e))},set(e,t,r){let n=MB(cu(e),t);if(n?.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){let o=vO(cu(e),t),a=o?.[ia];if(a&&a.base_===r)return e.copy_[t]=r,e.assigned_.set(t,!1),!0;if(wie(r,o)&&(r!==void 0||hO(e.base_,t,e.type_)))return!0;oS(e),CO(e)}return e.copy_[t]===r&&(r!==void 0||hO(e.copy_,t,e.type_))||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_.set(t,!0),Tie(e,t,r)),!0},deleteProperty(e,t){return oS(e),vO(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),CO(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let r=cu(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{[nS]:!0,[xO]:e.type_!==1||t!=="length",[iS]:n[iS],[bv]:r[t]}},defineProperty(){Os(11)},getPrototypeOf(e){return Ym(e.base_)},setPrototypeOf(){Os(12)}},Sv={};for(let e in cS){let t=cS[e];Sv[e]=function(){let r=arguments;return r[0]=r[0][0],t.apply(this,r)}}Sv.deleteProperty=function(e,t){return Sv.set.call(this,e,t,void 0)};Sv.set=function(e,t,r){return cS.set.call(this,e[0],t,r,e[0])};function vO(e,t){let r=e[ia];return(r?cu(r):e)[t]}function Pie(e,t,r){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!yi(r)||r[ia]?!1:e.baseRefs_.has(r)}function Mie(e,t,r){let n=MB(t,r);return n?bv in n?n[bv]:n.get?.call(e.draft_):void 0}function MB(e,t){if(!(t in e))return;let r=Ym(e);for(;r;){let n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Ym(r)}}function CO(e){e.modified_||(e.modified_=!0,e.parent_&&CO(e.parent_))}function oS(e){e.copy_||(e.assigned_=new Map,e.copy_=wO(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var Iie=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(t,r,n)=>{if(Gm(t)&&!Gm(r)){let a=r;r=t;let i=this;return function(l=a,...u){return i.produce(l,c=>r.call(this,c,...u))}}Gm(r)||Os(6),n!==void 0&&!Gm(n)&&Os(7);let o;if(yi(t)){let a=SB(this),i=AO(a,t,void 0),s=!0;try{o=r(i),s=!1}finally{s?kO(a):_O(a)}return wB(a,n),kB(o,a)}else if(!t||!EO(t)){if(o=r(t),o===void 0&&(o=t),o===CB&&(o=void 0),this.autoFreeze_&&TO(o,!0),n){let a=[],i=[];ep(SO).generateReplacementPatches_(t,o,{patches_:a,inversePatches_:i}),n(a,i)}return o}else Os(1,t)},this.produceWithPatches=(t,r)=>{if(Gm(t))return(i,...s)=>this.produceWithPatches(i,l=>t(l,...s));let n,o;return[this.produce(t,r,(i,s)=>{n=i,o=s}),n,o]},yO(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),yO(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),yO(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){yi(e)||Os(8),ll(e)&&(e=ea(e));let t=SB(this),r=AO(t,e,void 0);return r[ia].isManual_=!0,_O(t),r}finishDraft(e,t){let r=e&&e[ia];(!r||!r.isManual_)&&Os(9);let{scope_:n}=r;return wB(n,t),kB(void 0,n)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let r;for(r=t.length-1;r>=0;r--){let o=t[r];if(o.path.length===0&&o.op==="replace"){e=o.value;break}}r>-1&&(t=t.slice(r+1));let n=ep(SO).applyPatches_;return ll(e)?n(e,t):this.produce(e,o=>n(o,t))}};function AO(e,t,r,n){let[o,a]=mS(t)?ep(lS).proxyMap_(t,r):gS(t)?ep(lS).proxySet_(t,r):Oie(t,r);return(r?.scope_??NB()).drafts_.push(o),a.callbacks_=r?.callbacks_??[],a.key_=n,r&&n!==void 0?Nie(r,a,n):a.callbacks_.push(function(l){l.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:u}=l;a.modified_&&u&&u.generatePatches_(a,[],l)}),o}function ea(e){return ll(e)||Os(10,e),IB(e)}function IB(e){if(!yi(e)||hS(e))return e;let t=e[ia],r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=wO(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=wO(e,!0);return pS(r,(o,a)=>{sS(r,o,IB(a))},n),t&&(t.finalized_=!1),r}var Die=new Iie,OO=Die.produce;var Zt=e=>e;function DB(e){return({dispatch:r,getState:n})=>o=>a=>typeof a=="function"?a(r,n,e):o(a)}var jB=DB(),$B=DB;var jie=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?xv:xv.apply(null,arguments)},cMe=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION__?window.__REDUX_DEVTOOLS_EXTENSION__:function(){return function(e){return e}},$ie=e=>e&&typeof e.match=="function";function xo(e,t){function r(...n){if(t){let o=t(...n);if(!o)throw new Error(vi(0));return{type:e,payload:o.payload,..."meta"in o&&{meta:o.meta},..."error"in o&&{error:o.error}}}return{type:e,payload:n[0]}}return r.toString=()=>`${e}`,r.type=e,r.match=n=>gO(n)&&n.type===e,r}var qB=class _v extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,_v.prototype)}static get[Symbol.species](){return _v}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new _v(...t[0].concat(this)):new _v(...t.concat(this))}};function LB(e){return yi(e)?OO(e,()=>{}):e}function vS(e,t,r){return e.has(t)?e.get(t):e.set(t,r(t)).get(t)}function Lie(e){return typeof e=="boolean"}var zie=()=>function(t){let{thunk:r=!0,immutableCheck:n=!0,serializableCheck:o=!0,actionCreatorCheck:a=!0}=t??{},i=new qB;return r&&(Lie(r)?i.push(jB):i.push($B(r.extraArgument))),i},KB="RTK_autoBatch",Ir=()=>e=>({payload:e,meta:{[KB]:!0}}),zB=e=>t=>{setTimeout(t,e)},Bie=(e,t)=>r=>{let n=!1,o=()=>{n||(n=!0,cancelAnimationFrame(a),clearTimeout(i),r())},a=e(o),i=setTimeout(o,t)},DO=(e={type:"raf"})=>t=>(...r)=>{let n=t(...r),o=!0,a=!1,i=!1,s=new Set,l=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?Bie(window.requestAnimationFrame,100):zB(10):e.type==="callback"?e.queueNotification:zB(e.timeout),u=()=>{i=!1,a&&(a=!1,s.forEach(c=>c()))};return Object.assign({},n,{subscribe(c){let d=()=>o&&c(),p=n.subscribe(d);return s.add(c),()=>{p(),s.delete(c)}},dispatch(c){try{return o=!c?.meta?.[KB],a=!o,a&&(i||(i=!0,l(u))),n.dispatch(c)}finally{o=!0}}})},Fie=e=>function(r){let{autoBatch:n=!0}=r??{},o=new qB(e);return n&&o.push(DO(typeof n=="object"?n:void 0)),o};function VB(e){let t=zie(),{reducer:r=void 0,middleware:n,devTools:o=!0,duplicateMiddlewareCheck:a=!0,preloadedState:i=void 0,enhancers:s=void 0}=e||{},l;if(typeof r=="function")l=r;else if(eS(r))l=tS(r);else throw new Error(vi(1));let u;typeof n=="function"?u=n(t):u=t();let c=xv;o&&(c=jie({trace:!1,...typeof o=="object"&&o}));let d=hB(...u),p=Fie(d),f=typeof s=="function"?s(p):p(),m=c(...f);return mO(l,i,m)}function GB(e){let t={},r=[],n,o={addCase(a,i){let s=typeof a=="string"?a:a.type;if(!s)throw new Error(vi(28));if(s in t)throw new Error(vi(29));return t[s]=i,o},addAsyncThunk(a,i){return i.pending&&(t[a.pending.type]=i.pending),i.rejected&&(t[a.rejected.type]=i.rejected),i.fulfilled&&(t[a.fulfilled.type]=i.fulfilled),i.settled&&r.push({matcher:a.settled,reducer:i.settled}),o},addMatcher(a,i){return r.push({matcher:a,reducer:i}),o},addDefaultCase(a){return n=a,o}};return e(o),[t,r,n]}function Uie(e){return typeof e=="function"}function Wie(e,t){let[r,n,o]=GB(t),a;if(Uie(e))a=()=>LB(e());else{let s=LB(e);a=()=>s}function i(s=a(),l){let u=[r[l.type],...n.filter(({matcher:c})=>c(l)).map(({reducer:c})=>c)];return u.filter(c=>!!c).length===0&&(u=[o]),u.reduce((c,d)=>{if(d)if(ll(c)){let f=d(c,l);return f===void 0?c:f}else{if(yi(c))return OO(c,p=>d(p,l));{let p=d(c,l);if(p===void 0){if(c===null)return c;throw Error("A case reducer on a non-draftable value must not return undefined")}return p}}return c},s)}return i.getInitialState=a,i}var Hie=(e,t)=>$ie(e)?e.match(t):e(t);function qie(...e){return t=>e.some(r=>Hie(r,t))}var Kie="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",YB=(e=21)=>{let t="",r=e;for(;r--;)t+=Kie[Math.random()*64|0];return t},Vie=["name","message","stack","code"],PO=class{constructor(e,t){this.payload=e,this.meta=t}payload;meta;_type},BB=class{constructor(e,t){this.payload=e,this.meta=t}payload;meta;_type},Gie=e=>{if(typeof e=="object"&&e!==null){let t={};for(let r of Vie)typeof e[r]=="string"&&(t[r]=e[r]);return t}return{message:String(e)}},FB="External signal was aborted",Yie=(()=>{function e(t,r,n){let o=xo(t+"/fulfilled",(l,u,c,d)=>({payload:l,meta:{...d||{},arg:c,requestId:u,requestStatus:"fulfilled"}})),a=xo(t+"/pending",(l,u,c)=>({payload:void 0,meta:{...c||{},arg:u,requestId:l,requestStatus:"pending"}})),i=xo(t+"/rejected",(l,u,c,d,p)=>({payload:d,error:(n&&n.serializeError||Gie)(l||"Rejected"),meta:{...p||{},arg:c,requestId:u,rejectedWithValue:!!d,requestStatus:"rejected",aborted:l?.name==="AbortError",condition:l?.name==="ConditionError"}}));function s(l,{signal:u}={}){return(c,d,p)=>{let f=n?.idGenerator?n.idGenerator(l):YB(),m=new AbortController,y,b;function g(v){b=v,m.abort()}u&&(u.aborted?g(FB):u.addEventListener("abort",()=>g(FB),{once:!0}));let h=(async function(){let v;try{let S=n?.condition?.(l,{getState:d,extra:p});if(Zie(S)&&(S=await S),S===!1||m.signal.aborted)throw{name:"ConditionError",message:"Aborted due to condition callback returning false."};let k=new Promise((w,_)=>{y=()=>{_({name:"AbortError",message:b||"Aborted"})},m.signal.addEventListener("abort",y,{once:!0})});c(a(f,l,n?.getPendingMeta?.({requestId:f,arg:l},{getState:d,extra:p}))),v=await Promise.race([k,Promise.resolve(r(l,{dispatch:c,getState:d,extra:p,requestId:f,signal:m.signal,abort:g,rejectWithValue:((w,_)=>new PO(w,_)),fulfillWithValue:((w,_)=>new BB(w,_))})).then(w=>{if(w instanceof PO)throw w;return w instanceof BB?o(w.payload,f,l,w.meta):o(w,f,l)})])}catch(S){v=S instanceof PO?i(null,f,l,S.payload,S.meta):i(S,f,l)}finally{y&&m.signal.removeEventListener("abort",y)}return n&&!n.dispatchConditionRejection&&i.match(v)&&v.meta.condition||c(v),v})();return Object.assign(h,{abort:g,requestId:f,arg:l,unwrap(){return h.then(Xie)}})}}return Object.assign(s,{pending:a,rejected:i,fulfilled:o,settled:qie(i,o),typePrefix:t})}return e.withTypes=()=>e,e})();function Xie(e){if(e.meta&&e.meta.rejectedWithValue)throw e.payload;if(e.error)throw e.error;return e.payload}function Zie(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}var XB=Symbol.for("rtk-slice-createasyncthunk"),pMe={[XB]:Yie};function Jie(e,t){return`${e}/${t}`}function Qie({creators:e}={}){let t=e?.asyncThunk?.[XB];return function(n){let{name:o,reducerPath:a=o}=n;if(!o)throw new Error(vi(11));typeof process<"u";let i=(typeof n.reducers=="function"?n.reducers(ese()):n.reducers)||{},s=Object.keys(i),l={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},u={addCase(v,x){let S=typeof v=="string"?v:v.type;if(!S)throw new Error(vi(12));if(S in l.sliceCaseReducersByType)throw new Error(vi(13));return l.sliceCaseReducersByType[S]=x,u},addMatcher(v,x){return l.sliceMatchers.push({matcher:v,reducer:x}),u},exposeAction(v,x){return l.actionCreators[v]=x,u},exposeCaseReducer(v,x){return l.sliceCaseReducersByName[v]=x,u}};s.forEach(v=>{let x=i[v],S={reducerName:v,type:Jie(o,v),createNotation:typeof n.reducers=="function"};rse(x)?ose(S,x,u,t):tse(S,x,u)});function c(){let[v={},x=[],S=void 0]=typeof n.extraReducers=="function"?GB(n.extraReducers):[n.extraReducers],k={...v,...l.sliceCaseReducersByType};return Wie(n.initialState,w=>{for(let _ in k)w.addCase(_,k[_]);for(let _ of l.sliceMatchers)w.addMatcher(_.matcher,_.reducer);for(let _ of x)w.addMatcher(_.matcher,_.reducer);S&&w.addDefaultCase(S)})}let d=v=>v,p=new Map,f=new WeakMap,m;function y(v,x){return m||(m=c()),m(v,x)}function b(){return m||(m=c()),m.getInitialState()}function g(v,x=!1){function S(w){let _=w[v];return typeof _>"u"&&x&&(_=vS(f,S,b)),_}function k(w=d){let _=vS(p,x,()=>new WeakMap);return vS(_,w,()=>{let A={};for(let[C,N]of Object.entries(n.selectors??{}))A[C]=Rie(N,w,()=>vS(f,w,b),x);return A})}return{reducerPath:v,getSelectors:k,get selectors(){return k(S)},selectSlice:S}}let h={name:o,reducer:y,actions:l.actionCreators,caseReducers:l.sliceCaseReducersByName,getInitialState:b,...g(a),injectInto(v,{reducerPath:x,...S}={}){let k=x??a;return v.inject({reducerPath:k,reducer:y},S),{...h,...g(k,!0)}}};return h}}function Rie(e,t,r,n){function o(a,...i){let s=t(a);return typeof s>"u"&&n&&(s=r()),e(s,...i)}return o.unwrapped=e,o}var Cr=Qie();function ese(){function e(t,r){return{_reducerDefinitionType:"asyncThunk",payloadCreator:t,...r}}return e.withTypes=()=>e,{reducer(t){return Object.assign({[t.name](...r){return t(...r)}}[t.name],{_reducerDefinitionType:"reducer"})},preparedReducer(t,r){return{_reducerDefinitionType:"reducerWithPrepare",prepare:t,reducer:r}},asyncThunk:e}}function tse({type:e,reducerName:t,createNotation:r},n,o){let a,i;if("reducer"in n){if(r&&!nse(n))throw new Error(vi(17));a=n.reducer,i=n.prepare}else a=n;o.addCase(e,a).exposeCaseReducer(t,a).exposeAction(t,i?xo(e,i):xo(e))}function rse(e){return e._reducerDefinitionType==="asyncThunk"}function nse(e){return e._reducerDefinitionType==="reducerWithPrepare"}function ose({type:e,reducerName:t},r,n,o){if(!o)throw new Error(vi(18));let{payloadCreator:a,fulfilled:i,pending:s,rejected:l,settled:u,options:c}=r,d=o(e,a,c);n.exposeAction(t,d),i&&n.addCase(d.fulfilled,i),s&&n.addCase(d.pending,s),l&&n.addCase(d.rejected,l),u&&n.addMatcher(d.settled,u),n.exposeCaseReducer(t,{fulfilled:i||xS,pending:s||xS,rejected:l||xS,settled:u||xS})}function xS(){}var ase="task",ZB="listener",JB="completed",jO="cancelled",ise=`task-${jO}`,sse=`task-${JB}`,MO=`${ZB}-${jO}`,lse=`${ZB}-${JB}`,SS=class{constructor(e){this.code=e,this.message=`${ase} ${jO} (reason: ${e})`}code;name="TaskAbortError";message},$O=(e,t)=>{if(typeof e!="function")throw new TypeError(vi(32))},bS=()=>{},QB=(e,t=bS)=>(e.catch(t),e),RB=(e,t)=>(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)),tp=e=>{if(e.aborted)throw new SS(e.reason)};function e7(e,t){let r=bS;return new Promise((n,o)=>{let a=()=>o(new SS(e.reason));if(e.aborted){a();return}r=RB(e,a),t.finally(()=>r()).then(n,o)}).finally(()=>{r=bS})}var use=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(r){return{status:r instanceof SS?"cancelled":"rejected",error:r}}finally{t?.()}},wS=e=>t=>QB(e7(e,t).then(r=>(tp(e),r))),t7=e=>{let t=wS(e);return r=>t(new Promise(n=>setTimeout(n,r)))},{assign:Xm}=Object,UB={},kS="listenerMiddleware",cse=(e,t)=>{let r=n=>RB(e,()=>n.abort(e.reason));return(n,o)=>{$O(n,"taskExecutor");let a=new AbortController;r(a);let i=use(async()=>{tp(e),tp(a.signal);let s=await n({pause:wS(a.signal),delay:t7(a.signal),signal:a.signal});return tp(a.signal),s},()=>a.abort(sse));return o?.autoJoin&&t.push(i.catch(bS)),{result:wS(e)(i),cancel(){a.abort(ise)}}}},dse=(e,t)=>{let r=async(n,o)=>{tp(t);let a=()=>{},s=[new Promise((l,u)=>{let c=e({predicate:n,effect:(d,p)=>{p.unsubscribe(),l([d,p.getState(),p.getOriginalState()])}});a=()=>{c(),u()}})];o!=null&&s.push(new Promise(l=>setTimeout(l,o,null)));try{let l=await e7(t,Promise.race(s));return tp(t),l}finally{a()}};return((n,o)=>QB(r(n,o)))},r7=e=>{let{type:t,actionCreator:r,matcher:n,predicate:o,effect:a}=e;if(t)o=xo(t).match;else if(r)t=r.type,o=r.match;else if(n)o=n;else if(!o)throw new Error(vi(21));return $O(a,"options.listener"),{predicate:o,type:t,effect:a}},n7=Xm(e=>{let{type:t,predicate:r,effect:n}=r7(e);return{id:YB(),effect:n,type:t,predicate:r,pending:new Set,unsubscribe:()=>{throw new Error(vi(22))}}},{withTypes:()=>n7}),WB=(e,t)=>{let{type:r,effect:n,predicate:o}=r7(t);return Array.from(e.values()).find(a=>(typeof r=="string"?a.type===r:a.predicate===o)&&a.effect===n)},IO=e=>{e.pending.forEach(t=>{t.abort(MO)})},pse=(e,t)=>()=>{for(let r of t.keys())IO(r);e.clear()},HB=(e,t,r)=>{try{e(t,r)}catch(n){setTimeout(()=>{throw n},0)}},o7=Xm(xo(`${kS}/add`),{withTypes:()=>o7}),fse=xo(`${kS}/removeAll`),a7=Xm(xo(`${kS}/remove`),{withTypes:()=>a7}),mse=(...e)=>{console.error(`${kS}/error`,...e)},du=(e={})=>{let t=new Map,r=new Map,n=f=>{let m=r.get(f)??0;r.set(f,m+1)},o=f=>{let m=r.get(f)??1;m===1?r.delete(f):r.set(f,m-1)},{extra:a,onError:i=mse}=e;$O(i,"onError");let s=f=>(f.unsubscribe=()=>t.delete(f.id),t.set(f.id,f),m=>{f.unsubscribe(),m?.cancelActive&&IO(f)}),l=(f=>{let m=WB(t,f)??n7(f);return s(m)});Xm(l,{withTypes:()=>l});let u=f=>{let m=WB(t,f);return m&&(m.unsubscribe(),f.cancelActive&&IO(m)),!!m};Xm(u,{withTypes:()=>u});let c=async(f,m,y,b)=>{let g=new AbortController,h=dse(l,g.signal),v=[];try{f.pending.add(g),n(f),await Promise.resolve(f.effect(m,Xm({},y,{getOriginalState:b,condition:(x,S)=>h(x,S).then(Boolean),take:h,delay:t7(g.signal),pause:wS(g.signal),extra:a,signal:g.signal,fork:cse(g.signal,v),unsubscribe:f.unsubscribe,subscribe:()=>{t.set(f.id,f)},cancelActiveListeners:()=>{f.pending.forEach((x,S,k)=>{x!==g&&(x.abort(MO),k.delete(x))})},cancel:()=>{g.abort(MO),f.pending.delete(g)},throwIfCancelled:()=>{tp(g.signal)}})))}catch(x){x instanceof SS||HB(i,x,{raisedBy:"effect"})}finally{await Promise.all(v),g.abort(lse),o(f),f.pending.delete(g)}},d=pse(t,r);return{middleware:f=>m=>y=>{if(!gO(y))return m(y);if(o7.match(y))return l(y.payload);if(fse.match(y)){d();return}if(a7.match(y))return u(y.payload);let b=f.getState(),g=()=>{if(b===UB)throw new Error(vi(23));return b},h;try{if(h=m(y),t.size>0){let v=f.getState(),x=Array.from(t.values());for(let S of x){let k=!1;try{k=S.predicate(y,v,b)}catch(w){k=!1,HB(i,w,{raisedBy:"predicate"})}k&&c(S,y,f,g)}}}finally{b=UB}return h},startListening:l,stopListening:u,clearListeners:d}};function vi(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var gse={layoutType:"horizontal",width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},i7=Cr({name:"chartLayout",initialState:gse,reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){var r,n,o,a;e.margin.top=(r=t.payload.top)!==null&&r!==void 0?r:0,e.margin.right=(n=t.payload.right)!==null&&n!==void 0?n:0,e.margin.bottom=(o=t.payload.bottom)!==null&&o!==void 0?o:0,e.margin.left=(a=t.payload.left)!==null&&a!==void 0?a:0},setScale(e,t){e.scale=t.payload}}}),_S=i7.actions,LO=_S.setMargin,s7=_S.setLayout,l7=_S.setChartSize,u7=_S.setScale;var c7=i7.reducer;function CS(e,t,r){return Array.isArray(e)&&e&&t+r!==0?e.slice(t,r+1):e}function Ot(e){return Number.isFinite(e)}function qa(e){return typeof e=="number"&&e>0&&Number.isFinite(e)}function d7(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Ka(e){for(var t=1;t{if(t&&r){var n=r.width,o=r.height,a=t.align,i=t.verticalAlign,s=t.layout,l=t.position,u=t.offset,c=u===void 0?0:u;if(l!=null){if(cv(l)){if(l==="top"&&De(e.top))return Ka(Ka({},e),{},{top:e.top+(o||0)+c});if(l==="bottom"&&De(e.bottom))return Ka(Ka({},e),{},{bottom:e.bottom+(o||0)+c});if(l==="left"&&De(e.left))return Ka(Ka({},e),{},{left:e.left+(n||0)+c});if(l==="right"&&De(e.right))return Ka(Ka({},e),{},{right:e.right+(n||0)+c})}return e}if((s==="vertical"||s==="horizontal"&&i==="middle")&&a!=="center"&&De(e[a]))return Ka(Ka({},e),{},{[a]:e[a]+(n||0)});if((s==="horizontal"||s==="vertical"&&a==="center")&&i!=="middle"&&De(e[i]))return Ka(Ka({},e),{},{[i]:e[i]+(o||0)})}return e},sa=(e,t)=>e==="horizontal"&&t==="xAxis"||e==="vertical"&&t==="yAxis"||e==="centric"&&t==="angleAxis"||e==="radial"&&t==="radiusAxis",zO=(e,t,r,n)=>{if(n)return e.map(s=>s.coordinate);var o,a,i=e.map(s=>(s.coordinate===t&&(o=!0),s.coordinate===r&&(a=!0),s.coordinate));return o||i.push(t),a||i.push(r),i},BO=(e,t,r)=>{if(!e)return null;var n=e.duplicateDomain,o=e.type,a=e.range,i=e.scale,s=e.realScaleType,l=e.isCategorical,u=e.categoricalDomain,c=e.tickCount,d=e.ticks,p=e.niceTicks,f=e.axisType;if(!i)return null;var m=s==="scaleBand"&&i.bandwidth?i.bandwidth()/2:2,y=(t||r)&&o==="category"&&i.bandwidth?i.bandwidth()/m:0;if(y=f==="angleAxis"&&a&&a.length>=2?Qr(a[0]-a[1])*2*y:y,t&&(d||p)){var b=(d||p||[]).map((g,h)=>{var v=n?n.indexOf(g):g,x=i.map(v);return Ot(x)?{coordinate:x+y,value:g,offset:y,index:h}:null}).filter(Ao);return b}return l&&u?u.map((g,h)=>{var v=i.map(g);return Ot(v)?{coordinate:v+y,value:g,index:h,offset:y}:null}).filter(Ao):i.ticks&&!r&&c!=null?i.ticks(c).map((g,h)=>{var v=i.map(g);return Ot(v)?{coordinate:v+y,value:g,index:h,offset:y}:null}).filter(Ao):i.domain().map((g,h)=>{var v=i.map(g);return Ot(v)?{coordinate:v+y,value:n?n[g]:g,index:h,offset:y}:null}).filter(Ao)},f7=(e,t)=>{if(!t||t.length!==2||!De(t[0])||!De(t[1]))return e;var r=Math.min(t[0],t[1]),n=Math.max(t[0],t[1]),o=[e[0],e[1]];return(!De(e[0])||e[0]n)&&(o[1]=n),o[0]>n&&(o[0]=n),o[1]{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var o=0;o=0?(u[0]=a,a+=p,u[1]=a):(u[0]=i,i+=p,u[1]=i)}}}},bse=e=>{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var o=0;o=0?(l[0]=a,a+=u,l[1]=a):(l[0]=0,l[1]=0)}}}},wse={sign:xse,expand:nO,none:gi,silhouette:oO,wiggle:aO,positive:bse},m7=(e,t,r)=>{var n,o=(n=wse[r])!==null&&n!==void 0?n:gi,a=rO().keys(t).value((s,l)=>Number(Ht(s,l,0))).order(Fm).offset(o),i=a(e);return i.forEach((s,l)=>{s.forEach((u,c)=>{var d=Ht(e[c],t[l],0);Array.isArray(d)&&d.length===2&&De(d[0])&&De(d[1])&&(u[0]=d[0],u[1]=d[1])})}),i};function AS(e){return e==null?void 0:String(e)}function Zm(e){var t=e.axis,r=e.ticks,n=e.bandSize,o=e.entry,a=e.index,i=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!ar(o[t.dataKey])){var s=dw(r,"value",o[t.dataKey]);if(s)return s.coordinate+n/2}return r!=null&&r[a]?r[a].coordinate+n/2:null}var l=Ht(o,ar(i)?t.dataKey:i),u=t.scale.map(l);return De(u)?u:null}var FO=e=>{var t=e.axis,r=e.ticks,n=e.offset,o=e.bandSize,a=e.entry,i=e.index;if(t.type==="category")return r[i]?r[i].coordinate+n:null;var s=Ht(a,t.dataKey,t.scale.domain()[i]);if(ar(s))return null;var l=t.scale.map(s);return De(l)?l-o/2+n:null},g7=e=>{var t=e.numericAxis,r=t.scale.domain();if(t.type==="number"){var n=Math.min(r[0],r[1]),o=Math.max(r[0],r[1]);return n<=0&&o>=0?0:o<0?o:n}return r[0]},Sse=e=>{var t=e.flat(2).filter(De);return[Math.min(...t),Math.max(...t)]},kse=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],h7=(e,t,r)=>{if(!(e==null||Object.keys(e).length===0))return kse(Object.keys(e).reduce((n,o)=>{var a=e[o];if(!a)return n;var i=a.stackedData,s=i.reduce((l,u)=>{var c=CS(u,t,r),d=Sse(c);return!Ot(d[0])||!Ot(d[1])?l:[Math.min(l[0],d[0]),Math.max(l[1],d[1])]},[1/0,-1/0]);return[Math.min(s[0],n[0]),Math.max(s[1],n[1])]},[1/0,-1/0]))},UO=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,WO=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Ji=(e,t,r)=>{if(e&&e.scale&&e.scale.bandwidth){var n=e.scale.bandwidth();if(!r||n>0)return n}if(e&&t&&t.length>=2){for(var o=lu(t,y=>y.coordinate),a=[],i=0,s=1,l=o.length;sp&&(f=Math.min(m,f));return f===1/0?0:f}return r?void 0:0};function HO(e){var t=e.tooltipEntrySettings,r=e.dataKey,n=e.payload,o=e.value,a=e.name;return Ka(Ka({},t),{},{dataKey:r,payload:n,value:o,name:a})}function xi(e,t){if(e!=null)return String(e);if(typeof t=="string")return t}var y7=(e,t)=>{if(t==="horizontal")return e.relativeX;if(t==="vertical")return e.relativeY},v7=(e,t)=>t==="centric"?e.angle:e.radius;var qo=e=>e.layout.width,Ko=e=>e.layout.height,x7=e=>e.layout.scale,Jm=e=>e.layout.margin;var Qm=ae(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),Rm=ae(e=>e.cartesianAxis.yAxis,e=>Object.values(e));var ES="data-recharts-item-index",NS="data-recharts-item-id",rp=60,Cv=30;function b7(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function TS(e){for(var t=1;te.brush.height;function Nse(e){var t=Rm(e);return t.reduce((r,n)=>{if(n.orientation==="left"&&!n.mirror&&!n.hide){var o=typeof n.width=="number"?n.width:rp;return r+o}return r},0)}function Tse(e){var t=Rm(e);return t.reduce((r,n)=>{if(n.orientation==="right"&&!n.mirror&&!n.hide){var o=typeof n.width=="number"?n.width:rp;return r+o}return r},0)}function Ose(e){var t=Qm(e);return t.reduce((r,n)=>{if(n.orientation==="top"&&!n.mirror&&!n.hide){var o=typeof n.height=="number"?n.height:Cv;return r+o}return r},0)}function Pse(e){var t=Qm(e);return t.reduce((r,n)=>{if(n.orientation==="bottom"&&!n.mirror&&!n.hide){var o=typeof n.height=="number"?n.height:Cv;return r+o}return r},0)}var Fr=ae([qo,Ko,Jm,Ese,Nse,Tse,Ose,Pse,pO,uB],(e,t,r,n,o,a,i,s,l,u)=>{var c={left:(r.left||0)+o,right:(r.right||0)+a},d={top:(r.top||0)+i,bottom:(r.bottom||0)+s},p=TS(TS({},d),c),f=p.bottom;p.bottom+=n,p=p7(p,l,u);var m=e-p.left-p.right,y=t-p.top-p.bottom;return TS(TS({brushBottom:f},p),{},{width:Math.max(m,0),height:Math.max(y,0)})}),OS=ae(Fr,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),eg=ae(qo,Ko,(e,t)=>({x:0,y:0,width:e,height:t}));var Mse=Z(J()),PS=Z(J()),Ise=(0,PS.createContext)(null),Ar=()=>(0,PS.useContext)(Ise)!=null;var tg=e=>e.brush,np=ae([tg,Fr,Jm],(e,t,r)=>({height:e.height,x:De(e.x)?e.x:t.left,y:De(e.y)?e.y:t.top+t.height+t.brushBottom-(r?.bottom||0),width:De(e.width)?e.width:t.width}));var op=Z(J()),bo=Z(J());function w7(e,t,{signal:r,edges:n}={}){let o,a=null,i=n!=null&&n.includes("leading"),s=n==null||n.includes("trailing"),l=()=>{a!==null&&(e.apply(o,a),o=void 0,a=null)},u=()=>{s&&l(),f()},c=null,d=()=>{c!=null&&clearTimeout(c),c=setTimeout(()=>{c=null,u()},t)},p=()=>{c!==null&&(clearTimeout(c),c=null)},f=()=>{p(),o=void 0,a=null},m=()=>{l()},y=function(...b){if(r?.aborted)return;o=this,a=b;let g=c==null;d(),i&&g&&l()};return y.schedule=d,y.cancel=f,y.flush=m,r?.addEventListener("abort",f,{once:!0}),y}function S7(e,t=0,r={}){typeof r!="object"&&(r={});let{leading:n=!1,trailing:o=!0,maxWait:a}=r,i=Array(2);n&&(i[0]="leading"),o&&(i[1]="trailing");let s,l=null,u=w7(function(...p){s=e.apply(this,p),l=null},t,{edges:i}),c=function(...p){return a!=null&&(l===null&&(l=Date.now()),Date.now()-l>=a)?(s=e.apply(this,p),l=Date.now(),u.cancel(),u.schedule(),s):(u.apply(this,p),s)},d=()=>(u.flush(),s);return c.cancel=u.cancel,c.flush=d,c}function qO(e,t=0,r={}){let{leading:n=!0,trailing:o=!0}=r;return S7(e,t,{leading:n,maxWait:t,trailing:o})}var Dse=!0,rg=function(t,r){for(var n=arguments.length,o=new Array(n>2?n-2:0),a=2;ao[i++]))}};var Ps={width:"100%",height:"100%",debounce:0,minWidth:0,initialDimension:{width:-1,height:-1}},KO=(e,t,r)=>{var n=r.width,o=n===void 0?Ps.width:n,a=r.height,i=a===void 0?Ps.height:a,s=r.aspect,l=r.maxHeight,u=nu(o)?e:Number(o),c=nu(i)?t:Number(i);return s&&s>0&&(u?c=u/s:c&&(u=c*s),l&&c!=null&&c>l&&(c=l)),{calculatedWidth:u,calculatedHeight:c}},jse={width:0,height:0,overflow:"visible"},$se={width:0,overflowX:"visible"},Lse={height:0,overflowY:"visible"},zse={},k7=e=>{var t=e.width,r=e.height,n=nu(t),o=nu(r);return n&&o?jse:n?$se:o?Lse:zse};function _7(e){var t=e.width,r=e.height,n=e.aspect,o=t,a=r;return o===void 0&&a===void 0?(o=Ps.width,a=Ps.height):o===void 0?o=n&&n>0?void 0:Ps.width:a===void 0&&(a=n&&n>0?void 0:Ps.height),{width:o,height:a}}var Bse=["aspect","initialDimension","width","height","minWidth","minHeight","maxHeight","children","debounce","id","className","onResize","style"];function MS(){return MS=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r({width:r,height:n}),[r,n]);return Zse(o)?op.createElement(N7.Provider,{value:o},t):null}var Av=()=>(0,bo.useContext)(N7),Jse=(0,bo.forwardRef)((e,t)=>{var r=e.aspect,n=e.initialDimension,o=n===void 0?Ps.initialDimension:n,a=e.width,i=e.height,s=e.minWidth,l=s===void 0?Ps.minWidth:s,u=e.minHeight,c=e.maxHeight,d=e.children,p=e.debounce,f=p===void 0?Ps.debounce:p,m=e.id,y=e.className,b=e.onResize,g=e.style,h=g===void 0?{}:g,v=Yse(e,Bse),x=(0,bo.useRef)(null),S=(0,bo.useRef)();S.current=b,(0,bo.useImperativeHandle)(t,()=>x.current);var k=(0,bo.useState)({containerWidth:o.width,containerHeight:o.height}),w=Hse(k,2),_=w[0],A=w[1],C=(0,bo.useCallback)((T,O)=>{A(I=>{var P=Math.round(T),j=Math.round(O);return I.containerWidth===P&&I.containerHeight===j?I:{containerWidth:P,containerHeight:j}})},[]);(0,bo.useEffect)(()=>{if(x.current==null||typeof ResizeObserver>"u")return ka;var T=M=>{var W,Y=M[0];if(Y!=null){var z=Y.contentRect,V=z.width,q=z.height;C(V,q),(W=S.current)===null||W===void 0||W.call(S,V,q)}};f>0&&(T=qO(T,f,{trailing:!0,leading:!1}));var O=new ResizeObserver(T),I=x.current.getBoundingClientRect(),P=I.width,j=I.height;return C(P,j),O.observe(x.current),()=>{O.disconnect()}},[C,f]);var N=_.containerWidth,L=_.containerHeight;rg(!r||r>0,"The aspect(%s) must be greater than zero.",r);var Q=KO(N,L,{width:a,height:i,aspect:r,maxHeight:c}),B=Q.calculatedWidth,K=Q.calculatedHeight;return rg(N<0||L<0||B!=null&&B>0||K!=null&&K>0,`The width(%s) and height(%s) of chart should be greater than 0, + H`).concat(Zi,"M").concat(2*i,",").concat(o,` + A`).concat(a,",").concat(a,",0,1,1,").concat(i,",").concat(o),className:"recharts-legend-icon"});if(l==="rect")return Ca.createElement("path",{stroke:"none",fill:s,d:"M0,".concat(Zi/8,"h").concat(Zi,"v").concat(Zi*3/4,"h").concat(-Zi,"z"),className:"recharts-legend-icon"});if(Ca.isValidElement(t.legendIcon)){var u=Oz({},t);return delete u.legendIcon,Ca.cloneElement(t.legendIcon,u)}return Ca.createElement(uO,{fill:s,cx:o,cy:o,size:Zi,sizeType:"diameter",type:l})}function zae(e){var t=e.payload,r=e.iconSize,n=e.layout,o=e.formatter,a=e.inactiveColor,i=e.iconType,s=e.labelStyle,l={x:0,y:0,width:Zi,height:Zi},u={display:n==="horizontal"?"inline-block":"block",marginRight:10,whiteSpace:"nowrap"},c={display:"inline-block",verticalAlign:"middle",marginRight:4};return t.map((d,p)=>{var f,m,y=d.formatter||o,b=bt({"recharts-legend-item":!0,["legend-item-".concat(p)]:!0,inactive:d.inactive});if(d.type==="none")return null;var g=typeof s=="object"?Oz({},s):{};g.color=d.inactive?a:g.color||d.color,(f=g.whiteSpace)!==null&&f!==void 0||(g.whiteSpace="normal"),(m=g.overflowWrap)!==null&&m!==void 0||(g.overflowWrap="break-word");var h=y?y(d.value,d,p):d.value;return Ca.createElement("li",Sw({className:b,style:u,key:"legend-item-".concat(p)},iu(e,d,p)),Ca.createElement(lv,{width:r,height:r,viewBox:l,style:c,"aria-label":d.value==null?"legend icon":"".concat(d.value," legend icon")},Ca.createElement(Lae,{data:d,iconType:i,inactiveColor:a})),Ca.createElement("span",{className:"recharts-legend-item-text",style:g},h))})}var Pz=e=>{var t=nr(e,jae),r=t.payload,n=t.layout,o=t.align;if(!r||!r.length)return null;var a={padding:0,margin:0,textAlign:n==="horizontal"?o:"left"};return Ca.createElement("ul",{className:"recharts-default-legend",style:a},Ca.createElement(zae,Sw({},t,{payload:r})))};function Mz(e,t){let r=new Map;for(let n=0;nObject.prototype.propertyIsEnumerable.call(e,t))}function su(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}var _w="[object RegExp]",Wm="[object String]",Hm="[object Number]",qm="[object Boolean]",Cw="[object Arguments]",Aw="[object Symbol]",Ew="[object Date]",Nw="[object Map]",Tw="[object Set]",Ow="[object Array]",$z="[object Function]",Pw="[object ArrayBuffer]",Km="[object Object]",Lz="[object Error]",Mw="[object DataView]",Iw="[object Uint8Array]",Dw="[object Uint8ClampedArray]",jw="[object Uint16Array]",$w="[object Uint32Array]",zz="[object BigUint64Array]",Lw="[object Int8Array]",zw="[object Int16Array]",Bw="[object Int32Array]",Bz="[object BigInt64Array]",Fw="[object Float32Array]",Uw="[object Float64Array]";var cO=typeof globalThis=="object"&&globalThis||typeof window=="object"&&window||typeof self=="object"&&self||typeof global=="object"&&global||(function(){return this})();function gv(e){return typeof cO.Buffer<"u"&&cO.Buffer.isBuffer(e)}function Fz(e,t){return kc(e,void 0,e,new Map,t)}function kc(e,t,r,n=new Map,o=void 0){let a=o?.(e,t,r,n);if(a!==void 0)return a;if(fv(e))return e;if(n.has(e))return n.get(e);if(Array.isArray(e)){let i=new Array(e.length);n.set(e,i);for(let s=0;s{}):dO(e,t,function n(o,a,i,s,l,u){let c=r(o,a,i,s,l,u);return c!==void 0?!!c:dO(o,a,n,u,!1)},new Map,!0)}function dO(e,t,r,n,o=!1){if(t===e)return!0;switch(typeof t){case"object":return Fae(e,t,r,n);case"function":return Object.keys(t).length>0?dO(e,{...t},r,n,o):_c(e,t);default:return Ww(e)?o?typeof t=="string"?t==="":!0:_c(e,t):_c(e,t)}}function Fae(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return Wz(e,t,r,n);if(t instanceof Map)return Uae(e,t,r,n);if(t instanceof Set)return Wae(e,t,r,n);let o=Object.keys(t);if(e==null||fv(e))return o.length===0;if(o.length===0)return!0;if(n?.has(t))return n.get(t)===e;n?.set(t,e);try{for(let a=0;a{})}function Hz(e){return e=Uz(e),t=>Hw(t,e)}function qz(e,t){return Fz(e,(r,n,o,a)=>{let i=t?.(r,n,o,a);if(i!==void 0)return i;if(typeof e=="object"){if(su(e)==="[object Object]"&&typeof e.constructor!="function"){let s={};return a.set(e,s),Ji(s,e,o,a),s}switch(Object.prototype.toString.call(e)){case Hm:case Wm:case qm:{let s=new e.constructor(e?.valueOf());return Ji(s,e),s}case Cw:{let s={};return Ji(s,e),s.length=e.length,s[Symbol.iterator]=e[Symbol.iterator],s}default:return}}})}function Kz(e){return qz(e)}var Hae=/^(?:0|[1-9]\d*)$/;function qw(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e=0}function Kw(e){return e!=null&&typeof e!="function"&&Zz(e.length)}function Jz(e){return typeof e=="object"&&e!==null}function Qz(e){return Jz(e)&&Kw(e)}function Vw(e,t=kw){return Qz(e)?Mz(Array.from(e),Iz(Xz(t),1)):[]}function Gw(e,t,r){return t===!0?Vw(e,r):typeof t=="function"?Vw(e,t):e}var lB=Z(iB()),yv=Z(Q());var sB=Z(Q()),hv=(0,sB.createContext)(null);var sie=e=>e,jt=()=>{var e=(0,yv.useContext)(hv);return e?e.store.dispatch:sie},Xw=()=>{},lie=()=>Xw,uie=(e,t)=>e===t;function $e(e){var t=(0,yv.useContext)(hv),r=(0,yv.useMemo)(()=>t?n=>{if(n!=null)return e(n)}:Xw,[t,e]);return(0,lB.useSyncExternalStoreWithSelector)(t?t.subscription.addNestedSub:lie,t?t.store.getState:Xw,t?t.store.getState:Xw,r,uie)}function cie(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function die(e,t="expected all items to be functions, instead received the following types: "){if(!e.every(r=>typeof r=="function")){let r=e.map(n=>typeof n=="function"?`function ${n.name||"unnamed"}()`:typeof n).join(", ");throw new TypeError(`${t}[${r}]`)}}var uB=e=>Array.isArray(e)?e:[e];function pie(e){let t=Array.isArray(e[0])?e[0]:e;return die(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function fie(e,t){let r=[],{length:n}=e;for(let o=0;otypeof WeakRef>"u"?mie:WeakRef,dB=gie(),hie=0,cB=1;function Zw(){return{s:hie,v:void 0,o:null,p:null}}function yie(e){return e instanceof dB?e.deref():e}function pB(e,t={}){let r=Zw(),{resultEqualityCheck:n}=t,o,a=0;function i(){let s=r,{length:l}=arguments;for(let d=0,p=l;d{r=Zw(),i.resetResultsCount()},i.resultsCount=()=>a,i.resetResultsCount=()=>{a=0},i}function vie(e,...t){let r=typeof e=="function"?{memoize:e,memoizeOptions:t}:e,n=(...o)=>{let a=0,i=0,s,l={},u=o.pop();typeof u=="object"&&(l=u,u=o.pop()),cie(u,`createSelector expects an output function after the inputs, but received: [${typeof u}]`);let c={...r,...l},{memoize:d,memoizeOptions:p=[],argsMemoize:f=pB,argsMemoizeOptions:m=[]}=c,y=uB(p),b=uB(m),g=pie(o),h=d(function(){return a++,u.apply(null,arguments)},...y),v=!0,x=f(function(){i++;let k=fie(g,arguments);return s=h.apply(null,k),s},...b);return Object.assign(x,{resultFunc:u,memoizedResultFunc:h,dependencies:g,dependencyRecomputations:()=>i,resetDependencyRecomputations:()=>{i=0},lastResult:()=>s,recomputations:()=>a,resetRecomputations:()=>{a=0},memoize:d,argsMemoize:f})};return Object.assign(n,{withTypes:()=>n}),n}var ae=vie(pB);function fB(e,t=1){let r=[],n=Math.floor(t),o=(a,i)=>{for(let s=0;s{if(e!==t){let n=mB(e),o=mB(t);if(n===o&&n===0){if(et)return r==="desc"?-1:1}return r==="desc"?o-n:n-o}return 0};function Jw(e){return typeof e=="symbol"||e instanceof Symbol}var xie=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,bie=/^\w*$/;function hB(e,t){return Array.isArray(e)?!1:typeof e=="number"||typeof e=="boolean"||e==null||Jw(e)?!0:typeof e=="string"&&(bie.test(e)||!xie.test(e))||t!=null&&Object.hasOwn(t,e)}function yB(e,t,r,n){if(e==null)return[];r=n?void 0:r,Array.isArray(e)||(e=Object.values(e)),Array.isArray(t)||(t=t==null?[null]:[t]),t.length===0&&(t=[null]),Array.isArray(r)||(r=r==null?[]:[r]),r=r.map(s=>String(s));let o=(s,l)=>{let u=s;for(let c=0;cl==null||s==null?l:typeof s=="object"&&"key"in s?Object.hasOwn(l,s.key)?l[s.key]:o(l,s.path):typeof s=="function"?s(l):Array.isArray(s)?o(l,s):typeof l=="object"?l[s]:l,i=t.map(s=>(Array.isArray(s)&&s.length===1&&(s=s[0]),s==null||typeof s=="function"||Array.isArray(s)||hB(s)?s:{key:s,path:Mm(s)}));return e.map(s=>({original:s,criteria:i.map(l=>a(l,s))})).slice().sort((s,l)=>{for(let u=0;us.original)}function lu(e,...t){let r=t.length;return r>1&&vv(e,t[0],t[1])?t=[]:r>2&&vv(t[0],t[1],t[2])&&(t=[t[0]]),yB(e,fB(t),["asc"])}var mO=e=>e.legend.settings,vB=e=>e.legend.size,wie=e=>e.legend.payload,xB=ae([wie,mO],(e,t)=>{var r=t.itemSorter,n=e.flat(1);return r?lu(n,r):n});function bB(){return $e(xB)}var uu=Z(Q());function Sie(e,t){return Aie(e)||Cie(e,t)||_ie(e,t)||kie()}function kie(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _ie(e,t){if(e){if(typeof e=="string")return wB(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?wB(e,t):void 0}}function wB(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rQw||Math.abs(e.left-t.left)>Qw||Math.abs(e.top-t.top)>Qw||Math.abs(e.width-t.width)>Qw}function kB(e){var t=e.getBoundingClientRect();return{height:t.height,left:t.left,top:t.top,width:t.width}}function Rw(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=(0,uu.useState)({height:0,left:0,top:0,width:0}),r=Sie(t,2),n=r[0],o=r[1],a=(0,uu.useRef)(null),i=(0,uu.useRef)(n);i.current=n;var s=(0,uu.useCallback)(l=>{if(a.current!=null&&(a.current.disconnect(),a.current=null),l!=null){var u=kB(l);if(SB(u,i.current)&&o(u),typeof ResizeObserver<"u"){var c=new ResizeObserver(()=>{var d=kB(l);SB(d,i.current)&&o(d)});c.observe(l),a.current=c}}},[...e]);return(0,uu.useEffect)(()=>()=>{var l;(l=a.current)===null||l===void 0||l.disconnect()},[]),[n,s]}var B7=Z(Q());function Ro(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var Eie=typeof Symbol=="function"&&Symbol.observable||"@@observable",_B=Eie,gO=()=>Math.random().toString(36).substring(7).split("").join("."),Nie={INIT:`@@redux/INIT${gO()}`,REPLACE:`@@redux/REPLACE${gO()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${gO()}`},eS=Nie;function tS(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function hO(e,t,r){if(typeof e!="function")throw new Error(Ro(2));if(typeof t=="function"&&typeof r=="function"||typeof r=="function"&&typeof arguments[3]=="function")throw new Error(Ro(0));if(typeof t=="function"&&typeof r>"u"&&(r=t,t=void 0),typeof r<"u"){if(typeof r!="function")throw new Error(Ro(1));return r(hO)(e,t)}let n=e,o=t,a=new Map,i=a,s=0,l=!1;function u(){i===a&&(i=new Map,a.forEach((b,g)=>{i.set(g,b)}))}function c(){if(l)throw new Error(Ro(3));return o}function d(b){if(typeof b!="function")throw new Error(Ro(4));if(l)throw new Error(Ro(5));let g=!0;u();let h=s++;return i.set(h,b),function(){if(g){if(l)throw new Error(Ro(6));g=!1,u(),i.delete(h),a=null}}}function p(b){if(!tS(b))throw new Error(Ro(7));if(typeof b.type>"u")throw new Error(Ro(8));if(typeof b.type!="string")throw new Error(Ro(17));if(l)throw new Error(Ro(9));try{l=!0,o=n(o,b)}finally{l=!1}return(a=i).forEach(h=>{h()}),b}function f(b){if(typeof b!="function")throw new Error(Ro(10));n=b,p({type:eS.REPLACE})}function m(){let b=d;return{subscribe(g){if(typeof g!="object"||g===null)throw new Error(Ro(11));function h(){let x=g;x.next&&x.next(c())}return h(),{unsubscribe:b(h)}},[_B](){return this}}}return p({type:eS.INIT}),{dispatch:p,subscribe:d,getState:c,replaceReducer:f,[_B]:m}}function Tie(e){Object.keys(e).forEach(t=>{let r=e[t];if(typeof r(void 0,{type:eS.INIT})>"u")throw new Error(Ro(12));if(typeof r(void 0,{type:eS.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(Ro(13))})}function rS(e){let t=Object.keys(e),r={};for(let i=0;i"u"){let b=l&&l.type;throw new Error(Ro(14))}c[p]=y,u=u||y!==m}return u=u||n.length!==Object.keys(s).length,u?c:s}}function xv(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function CB(...e){return t=>(r,n)=>{let o=t(r,n),a=()=>{throw new Error(Ro(15))},i={getState:o.getState,dispatch:(l,...u)=>a(l,...u)},s=e.map(l=>l(i));return a=xv(...s)(o.dispatch),{...o,dispatch:a}}}function yO(e){return tS(e)&&"type"in e&&typeof e.type=="string"}var DB=Symbol.for("immer-nothing"),AB=Symbol.for("immer-draftable"),sa=Symbol.for("immer-state");function Os(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var vi=Object,Ym=vi.getPrototypeOf,iS="constructor",pS="prototype",wO="configurable",sS="enumerable",oS="writable",bv="value",ll=e=>!!e&&!!e[sa];function xi(e){return e?jB(e)||mS(e)||!!e[AB]||!!e[iS]?.[AB]||gS(e)||hS(e):!1}var Oie=vi[pS][iS].toString(),EB=new WeakMap;function jB(e){if(!e||!TO(e))return!1;let t=Ym(e);if(t===null||t===vi[pS])return!0;let r=vi.hasOwnProperty.call(t,iS)&&t[iS];if(r===Object)return!0;if(!Gm(r))return!1;let n=EB.get(r);return n===void 0&&(n=Function.toString.call(r),EB.set(r,n)),n===Oie}function fS(e,t,r=!0){kv(e)===0?(r?Reflect.ownKeys(e):vi.keys(e)).forEach(o=>{t(o,e[o],e)}):e.forEach((n,o)=>t(o,n,e))}function kv(e){let t=e[sa];return t?t.type_:mS(e)?1:gS(e)?2:hS(e)?3:0}var vO=(e,t,r=kv(e))=>r===2?e.has(t):vi[pS].hasOwnProperty.call(e,t),SO=(e,t,r=kv(e))=>r===2?e.get(t):e[t],lS=(e,t,r,n=kv(e))=>{n===2?e.set(t,r):n===3?e.add(r):e[t]=r};function Pie(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var mS=Array.isArray,gS=e=>e instanceof Map,hS=e=>e instanceof Set,TO=e=>typeof e=="object",Gm=e=>typeof e=="function",xO=e=>typeof e=="boolean";function Mie(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var cu=e=>e.copy_||e.base_;var OO=e=>e.modified_?e.copy_:e.base_;function kO(e,t){if(gS(e))return new Map(e);if(hS(e))return new Set(e);if(mS(e))return Array[pS].slice.call(e);let r=jB(e);if(t===!0||t==="class_only"&&!r){let n=vi.getOwnPropertyDescriptors(e);delete n[sa];let o=Reflect.ownKeys(n);for(let a=0;a1&&vi.defineProperties(e,{set:nS,add:nS,clear:nS,delete:nS}),vi.freeze(e),t&&fS(e,(r,n)=>{PO(n,!0)},!1)),e}function Iie(){Os(2)}var nS={[bv]:Iie};function yS(e){return e===null||!TO(e)?!0:vi.isFrozen(e)}var uS="MapSet",_O="Patches",NB="ArrayMethods",$B={};function ep(e){let t=$B[e];return t||Os(0,e),t}var TB=e=>!!$B[e];var wv,LB=()=>wv,Die=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:TB(uS)?ep(uS):void 0,arrayMethodsPlugin_:TB(NB)?ep(NB):void 0});function OB(e,t){t&&(e.patchPlugin_=ep(_O),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function CO(e){AO(e),e.drafts_.forEach(jie),e.drafts_=null}function AO(e){e===wv&&(wv=e.parent_)}var PB=e=>wv=Die(wv,e);function jie(e){let t=e[sa];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function MB(e,t){t.unfinalizedDrafts_=t.drafts_.length;let r=t.drafts_[0];if(e!==void 0&&e!==r){r[sa].modified_&&(CO(t),Os(4)),xi(e)&&(e=IB(t,e));let{patchPlugin_:o}=t;o&&o.generateReplacementPatches_(r[sa].base_,e,t)}else e=IB(t,r);return $ie(t,e,!0),CO(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==DB?e:void 0}function IB(e,t){if(yS(t))return t;let r=t[sa];if(!r)return cS(t,e.handledSet_,e);if(!vS(r,e))return t;if(!r.modified_)return r.base_;if(!r.finalized_){let{callbacks_:n}=r;if(n)for(;n.length>0;)n.pop()(e);FB(r,e)}return r.copy_}function $ie(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&PO(t,r)}function zB(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var vS=(e,t)=>e.scope_===t,Lie=[];function BB(e,t,r,n){let o=cu(e),a=e.type_;if(n!==void 0&&SO(o,n,a)===t){lS(o,n,r,a);return}if(!e.draftLocations_){let s=e.draftLocations_=new Map;fS(o,(l,u)=>{if(ll(u)){let c=s.get(u)||[];c.push(l),s.set(u,c)}})}let i=e.draftLocations_.get(t)??Lie;for(let s of i)lS(o,s,r,a)}function zie(e,t,r){e.callbacks_.push(function(o){let a=t;if(!a||!vS(a,o))return;o.mapSetPlugin_?.fixSetContents(a);let i=OO(a);BB(e,a.draft_??a,i,r),FB(a,o)})}function FB(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 o=n.getPath(e);o&&n.generatePatches_(e,o,t)}zB(e)}}function Bie(e,t,r){let{scope_:n}=e;if(ll(r)){let o=r[sa];vS(o,n)&&o.callbacks_.push(function(){aS(e);let i=OO(o);BB(e,r,i,t)})}else xi(r)&&e.callbacks_.push(function(){let a=cu(e);e.type_===3?a.has(r)&&cS(r,n.handledSet_,n):SO(a,t,e.type_)===r&&n.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&cS(SO(e.copy_,t,e.type_),n.handledSet_,n)})}function cS(e,t,r){return!r.immer_.autoFreeze_&&r.unfinalizedDrafts_<1||ll(e)||t.has(e)||!xi(e)||yS(e)||(t.add(e),fS(e,(n,o)=>{if(ll(o)){let a=o[sa];if(vS(a,r)){let i=OO(a);lS(e,n,i,e.type_),zB(a)}}else xi(o)&&cS(o,t,r)})),e}function Fie(e,t){let r=mS(e),n={type_:r?1:0,scope_:t?t.scope_:LB(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},o=n,a=dS;r&&(o=[n],a=Sv);let{revoke:i,proxy:s}=Proxy.revocable(o,a);return n.draft_=s,n.revoke_=i,[s,n]}var dS={get(e,t){if(t===sa)return e;let r=e.scope_.arrayMethodsPlugin_,n=e.type_===1&&typeof t=="string";if(n&&r?.isArrayOperationMethod(t))return r.createMethodInterceptor(e,t);let o=cu(e);if(!vO(o,t,e.type_))return Wie(e,o,t);let a=o[t];if(e.finalized_||!xi(a)||n&&e.operationMethod&&r?.isMutatingArrayMethod(e.operationMethod)&&Mie(t))return a;if(a===bO(e.base_,t)||Uie(e,t,a)){aS(e);let i=e.type_===1?+t:t,s=NO(e.scope_,a,e,i);return e.copy_[i]=s}return a},has(e,t){return t in cu(e)},ownKeys(e){return Reflect.ownKeys(cu(e))},set(e,t,r){let n=UB(cu(e),t);if(n?.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){let o=bO(cu(e),t),a=o?.[sa];if(a&&a.base_===r)return e.copy_[t]=r,e.assigned_.set(t,!1),!0;if(Pie(r,o)&&(r!==void 0||vO(e.base_,t,e.type_)))return!0;aS(e),EO(e)}return e.copy_[t]===r&&(r!==void 0||vO(e.copy_,t,e.type_))||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_.set(t,!0),Bie(e,t,r)),!0},deleteProperty(e,t){return aS(e),bO(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),EO(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let r=cu(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{[oS]:!0,[wO]:e.type_!==1||t!=="length",[sS]:n[sS],[bv]:r[t]}},defineProperty(){Os(11)},getPrototypeOf(e){return Ym(e.base_)},setPrototypeOf(){Os(12)}},Sv={};for(let e in dS){let t=dS[e];Sv[e]=function(){let r=arguments;return r[0]=r[0][0],t.apply(this,r)}}Sv.deleteProperty=function(e,t){return Sv.set.call(this,e,t,void 0)};Sv.set=function(e,t,r){return dS.set.call(this,e[0],t,r,e[0])};function bO(e,t){let r=e[sa];return(r?cu(r):e)[t]}function Uie(e,t,r){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!xi(r)||r[sa]?!1:e.baseRefs_.has(r)}function Wie(e,t,r){let n=UB(t,r);return n?bv in n?n[bv]:n.get?.call(e.draft_):void 0}function UB(e,t){if(!(t in e))return;let r=Ym(e);for(;r;){let n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Ym(r)}}function EO(e){e.modified_||(e.modified_=!0,e.parent_&&EO(e.parent_))}function aS(e){e.copy_||(e.assigned_=new Map,e.copy_=kO(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var Hie=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(t,r,n)=>{if(Gm(t)&&!Gm(r)){let a=r;r=t;let i=this;return function(l=a,...u){return i.produce(l,c=>r.call(this,c,...u))}}Gm(r)||Os(6),n!==void 0&&!Gm(n)&&Os(7);let o;if(xi(t)){let a=PB(this),i=NO(a,t,void 0),s=!0;try{o=r(i),s=!1}finally{s?CO(a):AO(a)}return OB(a,n),MB(o,a)}else if(!t||!TO(t)){if(o=r(t),o===void 0&&(o=t),o===DB&&(o=void 0),this.autoFreeze_&&PO(o,!0),n){let a=[],i=[];ep(_O).generateReplacementPatches_(t,o,{patches_:a,inversePatches_:i}),n(a,i)}return o}else Os(1,t)},this.produceWithPatches=(t,r)=>{if(Gm(t))return(i,...s)=>this.produceWithPatches(i,l=>t(l,...s));let n,o;return[this.produce(t,r,(i,s)=>{n=i,o=s}),n,o]},xO(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),xO(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),xO(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){xi(e)||Os(8),ll(e)&&(e=ea(e));let t=PB(this),r=NO(t,e,void 0);return r[sa].isManual_=!0,AO(t),r}finishDraft(e,t){let r=e&&e[sa];(!r||!r.isManual_)&&Os(9);let{scope_:n}=r;return OB(n,t),MB(void 0,n)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let r;for(r=t.length-1;r>=0;r--){let o=t[r];if(o.path.length===0&&o.op==="replace"){e=o.value;break}}r>-1&&(t=t.slice(r+1));let n=ep(_O).applyPatches_;return ll(e)?n(e,t):this.produce(e,o=>n(o,t))}};function NO(e,t,r,n){let[o,a]=gS(t)?ep(uS).proxyMap_(t,r):hS(t)?ep(uS).proxySet_(t,r):Fie(t,r);return(r?.scope_??LB()).drafts_.push(o),a.callbacks_=r?.callbacks_??[],a.key_=n,r&&n!==void 0?zie(r,a,n):a.callbacks_.push(function(l){l.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:u}=l;a.modified_&&u&&u.generatePatches_(a,[],l)}),o}function ea(e){return ll(e)||Os(10,e),WB(e)}function WB(e){if(!xi(e)||yS(e))return e;let t=e[sa],r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=kO(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=kO(e,!0);return fS(r,(o,a)=>{lS(r,o,WB(a))},n),t&&(t.finalized_=!1),r}var qie=new Hie,MO=qie.produce;var Zt=e=>e;function HB(e){return({dispatch:r,getState:n})=>o=>a=>typeof a=="function"?a(r,n,e):o(a)}var qB=HB(),KB=HB;var Kie=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?xv:xv.apply(null,arguments)},SMe=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION__?window.__REDUX_DEVTOOLS_EXTENSION__:function(){return function(e){return e}},Vie=e=>e&&typeof e.match=="function";function xo(e,t){function r(...n){if(t){let o=t(...n);if(!o)throw new Error(bi(0));return{type:e,payload:o.payload,..."meta"in o&&{meta:o.meta},..."error"in o&&{error:o.error}}}return{type:e,payload:n[0]}}return r.toString=()=>`${e}`,r.type=e,r.match=n=>yO(n)&&n.type===e,r}var RB=class _v extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,_v.prototype)}static get[Symbol.species](){return _v}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new _v(...t[0].concat(this)):new _v(...t.concat(this))}};function VB(e){return xi(e)?MO(e,()=>{}):e}function xS(e,t,r){return e.has(t)?e.get(t):e.set(t,r(t)).get(t)}function Gie(e){return typeof e=="boolean"}var Yie=()=>function(t){let{thunk:r=!0,immutableCheck:n=!0,serializableCheck:o=!0,actionCreatorCheck:a=!0}=t??{},i=new RB;return r&&(Gie(r)?i.push(qB):i.push(KB(r.extraArgument))),i},e7="RTK_autoBatch",Ir=()=>e=>({payload:e,meta:{[e7]:!0}}),GB=e=>t=>{setTimeout(t,e)},Xie=(e,t)=>r=>{let n=!1,o=()=>{n||(n=!0,cancelAnimationFrame(a),clearTimeout(i),r())},a=e(o),i=setTimeout(o,t)},$O=(e={type:"raf"})=>t=>(...r)=>{let n=t(...r),o=!0,a=!1,i=!1,s=new Set,l=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?Xie(window.requestAnimationFrame,100):GB(10):e.type==="callback"?e.queueNotification:GB(e.timeout),u=()=>{i=!1,a&&(a=!1,s.forEach(c=>c()))};return Object.assign({},n,{subscribe(c){let d=()=>o&&c(),p=n.subscribe(d);return s.add(c),()=>{p(),s.delete(c)}},dispatch(c){try{return o=!c?.meta?.[e7],a=!o,a&&(i||(i=!0,l(u))),n.dispatch(c)}finally{o=!0}}})},Zie=e=>function(r){let{autoBatch:n=!0}=r??{},o=new RB(e);return n&&o.push($O(typeof n=="object"?n:void 0)),o};function t7(e){let t=Yie(),{reducer:r=void 0,middleware:n,devTools:o=!0,duplicateMiddlewareCheck:a=!0,preloadedState:i=void 0,enhancers:s=void 0}=e||{},l;if(typeof r=="function")l=r;else if(tS(r))l=rS(r);else throw new Error(bi(1));let u;typeof n=="function"?u=n(t):u=t();let c=xv;o&&(c=Kie({trace:!1,...typeof o=="object"&&o}));let d=CB(...u),p=Zie(d),f=typeof s=="function"?s(p):p(),m=c(...f);return hO(l,i,m)}function r7(e){let t={},r=[],n,o={addCase(a,i){let s=typeof a=="string"?a:a.type;if(!s)throw new Error(bi(28));if(s in t)throw new Error(bi(29));return t[s]=i,o},addAsyncThunk(a,i){return i.pending&&(t[a.pending.type]=i.pending),i.rejected&&(t[a.rejected.type]=i.rejected),i.fulfilled&&(t[a.fulfilled.type]=i.fulfilled),i.settled&&r.push({matcher:a.settled,reducer:i.settled}),o},addMatcher(a,i){return r.push({matcher:a,reducer:i}),o},addDefaultCase(a){return n=a,o}};return e(o),[t,r,n]}function Jie(e){return typeof e=="function"}function Qie(e,t){let[r,n,o]=r7(t),a;if(Jie(e))a=()=>VB(e());else{let s=VB(e);a=()=>s}function i(s=a(),l){let u=[r[l.type],...n.filter(({matcher:c})=>c(l)).map(({reducer:c})=>c)];return u.filter(c=>!!c).length===0&&(u=[o]),u.reduce((c,d)=>{if(d)if(ll(c)){let f=d(c,l);return f===void 0?c:f}else{if(xi(c))return MO(c,p=>d(p,l));{let p=d(c,l);if(p===void 0){if(c===null)return c;throw Error("A case reducer on a non-draftable value must not return undefined")}return p}}return c},s)}return i.getInitialState=a,i}var Rie=(e,t)=>Vie(e)?e.match(t):e(t);function ese(...e){return t=>e.some(r=>Rie(r,t))}var tse="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",n7=(e=21)=>{let t="",r=e;for(;r--;)t+=tse[Math.random()*64|0];return t},rse=["name","message","stack","code"],IO=class{constructor(e,t){this.payload=e,this.meta=t}payload;meta;_type},YB=class{constructor(e,t){this.payload=e,this.meta=t}payload;meta;_type},nse=e=>{if(typeof e=="object"&&e!==null){let t={};for(let r of rse)typeof e[r]=="string"&&(t[r]=e[r]);return t}return{message:String(e)}},XB="External signal was aborted",ose=(()=>{function e(t,r,n){let o=xo(t+"/fulfilled",(l,u,c,d)=>({payload:l,meta:{...d||{},arg:c,requestId:u,requestStatus:"fulfilled"}})),a=xo(t+"/pending",(l,u,c)=>({payload:void 0,meta:{...c||{},arg:u,requestId:l,requestStatus:"pending"}})),i=xo(t+"/rejected",(l,u,c,d,p)=>({payload:d,error:(n&&n.serializeError||nse)(l||"Rejected"),meta:{...p||{},arg:c,requestId:u,rejectedWithValue:!!d,requestStatus:"rejected",aborted:l?.name==="AbortError",condition:l?.name==="ConditionError"}}));function s(l,{signal:u}={}){return(c,d,p)=>{let f=n?.idGenerator?n.idGenerator(l):n7(),m=new AbortController,y,b;function g(v){b=v,m.abort()}u&&(u.aborted?g(XB):u.addEventListener("abort",()=>g(XB),{once:!0}));let h=(async function(){let v;try{let S=n?.condition?.(l,{getState:d,extra:p});if(ise(S)&&(S=await S),S===!1||m.signal.aborted)throw{name:"ConditionError",message:"Aborted due to condition callback returning false."};let k=new Promise((w,_)=>{y=()=>{_({name:"AbortError",message:b||"Aborted"})},m.signal.addEventListener("abort",y,{once:!0})});c(a(f,l,n?.getPendingMeta?.({requestId:f,arg:l},{getState:d,extra:p}))),v=await Promise.race([k,Promise.resolve(r(l,{dispatch:c,getState:d,extra:p,requestId:f,signal:m.signal,abort:g,rejectWithValue:((w,_)=>new IO(w,_)),fulfillWithValue:((w,_)=>new YB(w,_))})).then(w=>{if(w instanceof IO)throw w;return w instanceof YB?o(w.payload,f,l,w.meta):o(w,f,l)})])}catch(S){v=S instanceof IO?i(null,f,l,S.payload,S.meta):i(S,f,l)}finally{y&&m.signal.removeEventListener("abort",y)}return n&&!n.dispatchConditionRejection&&i.match(v)&&v.meta.condition||c(v),v})();return Object.assign(h,{abort:g,requestId:f,arg:l,unwrap(){return h.then(ase)}})}}return Object.assign(s,{pending:a,rejected:i,fulfilled:o,settled:ese(i,o),typePrefix:t})}return e.withTypes=()=>e,e})();function ase(e){if(e.meta&&e.meta.rejectedWithValue)throw e.payload;if(e.error)throw e.error;return e.payload}function ise(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}var o7=Symbol.for("rtk-slice-createasyncthunk"),_Me={[o7]:ose};function sse(e,t){return`${e}/${t}`}function lse({creators:e}={}){let t=e?.asyncThunk?.[o7];return function(n){let{name:o,reducerPath:a=o}=n;if(!o)throw new Error(bi(11));typeof process<"u";let i=(typeof n.reducers=="function"?n.reducers(cse()):n.reducers)||{},s=Object.keys(i),l={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},u={addCase(v,x){let S=typeof v=="string"?v:v.type;if(!S)throw new Error(bi(12));if(S in l.sliceCaseReducersByType)throw new Error(bi(13));return l.sliceCaseReducersByType[S]=x,u},addMatcher(v,x){return l.sliceMatchers.push({matcher:v,reducer:x}),u},exposeAction(v,x){return l.actionCreators[v]=x,u},exposeCaseReducer(v,x){return l.sliceCaseReducersByName[v]=x,u}};s.forEach(v=>{let x=i[v],S={reducerName:v,type:sse(o,v),createNotation:typeof n.reducers=="function"};pse(x)?mse(S,x,u,t):dse(S,x,u)});function c(){let[v={},x=[],S=void 0]=typeof n.extraReducers=="function"?r7(n.extraReducers):[n.extraReducers],k={...v,...l.sliceCaseReducersByType};return Qie(n.initialState,w=>{for(let _ in k)w.addCase(_,k[_]);for(let _ of l.sliceMatchers)w.addMatcher(_.matcher,_.reducer);for(let _ of x)w.addMatcher(_.matcher,_.reducer);S&&w.addDefaultCase(S)})}let d=v=>v,p=new Map,f=new WeakMap,m;function y(v,x){return m||(m=c()),m(v,x)}function b(){return m||(m=c()),m.getInitialState()}function g(v,x=!1){function S(w){let _=w[v];return typeof _>"u"&&x&&(_=xS(f,S,b)),_}function k(w=d){let _=xS(p,x,()=>new WeakMap);return xS(_,w,()=>{let A={};for(let[C,N]of Object.entries(n.selectors??{}))A[C]=use(N,w,()=>xS(f,w,b),x);return A})}return{reducerPath:v,getSelectors:k,get selectors(){return k(S)},selectSlice:S}}let h={name:o,reducer:y,actions:l.actionCreators,caseReducers:l.sliceCaseReducersByName,getInitialState:b,...g(a),injectInto(v,{reducerPath:x,...S}={}){let k=x??a;return v.inject({reducerPath:k,reducer:y},S),{...h,...g(k,!0)}}};return h}}function use(e,t,r,n){function o(a,...i){let s=t(a);return typeof s>"u"&&n&&(s=r()),e(s,...i)}return o.unwrapped=e,o}var Cr=lse();function cse(){function e(t,r){return{_reducerDefinitionType:"asyncThunk",payloadCreator:t,...r}}return e.withTypes=()=>e,{reducer(t){return Object.assign({[t.name](...r){return t(...r)}}[t.name],{_reducerDefinitionType:"reducer"})},preparedReducer(t,r){return{_reducerDefinitionType:"reducerWithPrepare",prepare:t,reducer:r}},asyncThunk:e}}function dse({type:e,reducerName:t,createNotation:r},n,o){let a,i;if("reducer"in n){if(r&&!fse(n))throw new Error(bi(17));a=n.reducer,i=n.prepare}else a=n;o.addCase(e,a).exposeCaseReducer(t,a).exposeAction(t,i?xo(e,i):xo(e))}function pse(e){return e._reducerDefinitionType==="asyncThunk"}function fse(e){return e._reducerDefinitionType==="reducerWithPrepare"}function mse({type:e,reducerName:t},r,n,o){if(!o)throw new Error(bi(18));let{payloadCreator:a,fulfilled:i,pending:s,rejected:l,settled:u,options:c}=r,d=o(e,a,c);n.exposeAction(t,d),i&&n.addCase(d.fulfilled,i),s&&n.addCase(d.pending,s),l&&n.addCase(d.rejected,l),u&&n.addMatcher(d.settled,u),n.exposeCaseReducer(t,{fulfilled:i||bS,pending:s||bS,rejected:l||bS,settled:u||bS})}function bS(){}var gse="task",a7="listener",i7="completed",LO="cancelled",hse=`task-${LO}`,yse=`task-${i7}`,DO=`${a7}-${LO}`,vse=`${a7}-${i7}`,kS=class{constructor(e){this.code=e,this.message=`${gse} ${LO} (reason: ${e})`}code;name="TaskAbortError";message},zO=(e,t)=>{if(typeof e!="function")throw new TypeError(bi(32))},wS=()=>{},s7=(e,t=wS)=>(e.catch(t),e),l7=(e,t)=>(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)),tp=e=>{if(e.aborted)throw new kS(e.reason)};function u7(e,t){let r=wS;return new Promise((n,o)=>{let a=()=>o(new kS(e.reason));if(e.aborted){a();return}r=l7(e,a),t.finally(()=>r()).then(n,o)}).finally(()=>{r=wS})}var xse=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(r){return{status:r instanceof kS?"cancelled":"rejected",error:r}}finally{t?.()}},SS=e=>t=>s7(u7(e,t).then(r=>(tp(e),r))),c7=e=>{let t=SS(e);return r=>t(new Promise(n=>setTimeout(n,r)))},{assign:Xm}=Object,ZB={},_S="listenerMiddleware",bse=(e,t)=>{let r=n=>l7(e,()=>n.abort(e.reason));return(n,o)=>{zO(n,"taskExecutor");let a=new AbortController;r(a);let i=xse(async()=>{tp(e),tp(a.signal);let s=await n({pause:SS(a.signal),delay:c7(a.signal),signal:a.signal});return tp(a.signal),s},()=>a.abort(yse));return o?.autoJoin&&t.push(i.catch(wS)),{result:SS(e)(i),cancel(){a.abort(hse)}}}},wse=(e,t)=>{let r=async(n,o)=>{tp(t);let a=()=>{},s=[new Promise((l,u)=>{let c=e({predicate:n,effect:(d,p)=>{p.unsubscribe(),l([d,p.getState(),p.getOriginalState()])}});a=()=>{c(),u()}})];o!=null&&s.push(new Promise(l=>setTimeout(l,o,null)));try{let l=await u7(t,Promise.race(s));return tp(t),l}finally{a()}};return((n,o)=>s7(r(n,o)))},d7=e=>{let{type:t,actionCreator:r,matcher:n,predicate:o,effect:a}=e;if(t)o=xo(t).match;else if(r)t=r.type,o=r.match;else if(n)o=n;else if(!o)throw new Error(bi(21));return zO(a,"options.listener"),{predicate:o,type:t,effect:a}},p7=Xm(e=>{let{type:t,predicate:r,effect:n}=d7(e);return{id:n7(),effect:n,type:t,predicate:r,pending:new Set,unsubscribe:()=>{throw new Error(bi(22))}}},{withTypes:()=>p7}),JB=(e,t)=>{let{type:r,effect:n,predicate:o}=d7(t);return Array.from(e.values()).find(a=>(typeof r=="string"?a.type===r:a.predicate===o)&&a.effect===n)},jO=e=>{e.pending.forEach(t=>{t.abort(DO)})},Sse=(e,t)=>()=>{for(let r of t.keys())jO(r);e.clear()},QB=(e,t,r)=>{try{e(t,r)}catch(n){setTimeout(()=>{throw n},0)}},f7=Xm(xo(`${_S}/add`),{withTypes:()=>f7}),kse=xo(`${_S}/removeAll`),m7=Xm(xo(`${_S}/remove`),{withTypes:()=>m7}),_se=(...e)=>{console.error(`${_S}/error`,...e)},du=(e={})=>{let t=new Map,r=new Map,n=f=>{let m=r.get(f)??0;r.set(f,m+1)},o=f=>{let m=r.get(f)??1;m===1?r.delete(f):r.set(f,m-1)},{extra:a,onError:i=_se}=e;zO(i,"onError");let s=f=>(f.unsubscribe=()=>t.delete(f.id),t.set(f.id,f),m=>{f.unsubscribe(),m?.cancelActive&&jO(f)}),l=(f=>{let m=JB(t,f)??p7(f);return s(m)});Xm(l,{withTypes:()=>l});let u=f=>{let m=JB(t,f);return m&&(m.unsubscribe(),f.cancelActive&&jO(m)),!!m};Xm(u,{withTypes:()=>u});let c=async(f,m,y,b)=>{let g=new AbortController,h=wse(l,g.signal),v=[];try{f.pending.add(g),n(f),await Promise.resolve(f.effect(m,Xm({},y,{getOriginalState:b,condition:(x,S)=>h(x,S).then(Boolean),take:h,delay:c7(g.signal),pause:SS(g.signal),extra:a,signal:g.signal,fork:bse(g.signal,v),unsubscribe:f.unsubscribe,subscribe:()=>{t.set(f.id,f)},cancelActiveListeners:()=>{f.pending.forEach((x,S,k)=>{x!==g&&(x.abort(DO),k.delete(x))})},cancel:()=>{g.abort(DO),f.pending.delete(g)},throwIfCancelled:()=>{tp(g.signal)}})))}catch(x){x instanceof kS||QB(i,x,{raisedBy:"effect"})}finally{await Promise.all(v),g.abort(vse),o(f),f.pending.delete(g)}},d=Sse(t,r);return{middleware:f=>m=>y=>{if(!yO(y))return m(y);if(f7.match(y))return l(y.payload);if(kse.match(y)){d();return}if(m7.match(y))return u(y.payload);let b=f.getState(),g=()=>{if(b===ZB)throw new Error(bi(23));return b},h;try{if(h=m(y),t.size>0){let v=f.getState(),x=Array.from(t.values());for(let S of x){let k=!1;try{k=S.predicate(y,v,b)}catch(w){k=!1,QB(i,w,{raisedBy:"predicate"})}k&&c(S,y,f,g)}}}finally{b=ZB}return h},startListening:l,stopListening:u,clearListeners:d}};function bi(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var Cse={layoutType:"horizontal",width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},g7=Cr({name:"chartLayout",initialState:Cse,reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){var r,n,o,a;e.margin.top=(r=t.payload.top)!==null&&r!==void 0?r:0,e.margin.right=(n=t.payload.right)!==null&&n!==void 0?n:0,e.margin.bottom=(o=t.payload.bottom)!==null&&o!==void 0?o:0,e.margin.left=(a=t.payload.left)!==null&&a!==void 0?a:0},setScale(e,t){e.scale=t.payload}}}),CS=g7.actions,BO=CS.setMargin,h7=CS.setLayout,y7=CS.setChartSize,v7=CS.setScale;var x7=g7.reducer;function AS(e,t,r){return Array.isArray(e)&&e&&t+r!==0?e.slice(t,r+1):e}function Ot(e){return Number.isFinite(e)}function Va(e){return typeof e=="number"&&e>0&&Number.isFinite(e)}function b7(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Ga(e){for(var t=1;t{if(t&&r){var n=r.width,o=r.height,a=t.align,i=t.verticalAlign,s=t.layout,l=t.position,u=t.offset,c=u===void 0?0:u;if(l!=null){if(cv(l)){if(l==="top"&&De(e.top))return Ga(Ga({},e),{},{top:e.top+(o||0)+c});if(l==="bottom"&&De(e.bottom))return Ga(Ga({},e),{},{bottom:e.bottom+(o||0)+c});if(l==="left"&&De(e.left))return Ga(Ga({},e),{},{left:e.left+(n||0)+c});if(l==="right"&&De(e.right))return Ga(Ga({},e),{},{right:e.right+(n||0)+c})}return e}if((s==="vertical"||s==="horizontal"&&i==="middle")&&a!=="center"&&De(e[a]))return Ga(Ga({},e),{},{[a]:e[a]+(n||0)});if((s==="horizontal"||s==="vertical"&&a==="center")&&i!=="middle"&&De(e[i]))return Ga(Ga({},e),{},{[i]:e[i]+(o||0)})}return e},la=(e,t)=>e==="horizontal"&&t==="xAxis"||e==="vertical"&&t==="yAxis"||e==="centric"&&t==="angleAxis"||e==="radial"&&t==="radiusAxis",FO=(e,t,r,n)=>{if(n)return e.map(s=>s.coordinate);var o,a,i=e.map(s=>(s.coordinate===t&&(o=!0),s.coordinate===r&&(a=!0),s.coordinate));return o||i.push(t),a||i.push(r),i},UO=(e,t,r)=>{if(!e)return null;var n=e.duplicateDomain,o=e.type,a=e.range,i=e.scale,s=e.realScaleType,l=e.isCategorical,u=e.categoricalDomain,c=e.tickCount,d=e.ticks,p=e.niceTicks,f=e.axisType;if(!i)return null;var m=s==="scaleBand"&&i.bandwidth?i.bandwidth()/2:2,y=(t||r)&&o==="category"&&i.bandwidth?i.bandwidth()/m:0;if(y=f==="angleAxis"&&a&&a.length>=2?Qr(a[0]-a[1])*2*y:y,t&&(d||p)){var b=(d||p||[]).map((g,h)=>{var v=n?n.indexOf(g):g,x=i.map(v);return Ot(x)?{coordinate:x+y,value:g,offset:y,index:h}:null}).filter(Ao);return b}return l&&u?u.map((g,h)=>{var v=i.map(g);return Ot(v)?{coordinate:v+y,value:g,index:h,offset:y}:null}).filter(Ao):i.ticks&&!r&&c!=null?i.ticks(c).map((g,h)=>{var v=i.map(g);return Ot(v)?{coordinate:v+y,value:g,index:h,offset:y}:null}).filter(Ao):i.domain().map((g,h)=>{var v=i.map(g);return Ot(v)?{coordinate:v+y,value:n?n[g]:g,index:h,offset:y}:null}).filter(Ao)},S7=(e,t)=>{if(!t||t.length!==2||!De(t[0])||!De(t[1]))return e;var r=Math.min(t[0],t[1]),n=Math.max(t[0],t[1]),o=[e[0],e[1]];return(!De(e[0])||e[0]n)&&(o[1]=n),o[0]>n&&(o[0]=n),o[1]{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var o=0;o=0?(u[0]=a,a+=p,u[1]=a):(u[0]=i,i+=p,u[1]=i)}}}},Ose=e=>{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var o=0;o=0?(l[0]=a,a+=u,l[1]=a):(l[0]=0,l[1]=0)}}}},Pse={sign:Tse,expand:aO,none:yi,silhouette:iO,wiggle:sO,positive:Ose},k7=(e,t,r)=>{var n,o=(n=Pse[r])!==null&&n!==void 0?n:yi,a=oO().keys(t).value((s,l)=>Number(Ht(s,l,0))).order(Fm).offset(o),i=a(e);return i.forEach((s,l)=>{s.forEach((u,c)=>{var d=Ht(e[c],t[l],0);Array.isArray(d)&&d.length===2&&De(d[0])&&De(d[1])&&(u[0]=d[0],u[1]=d[1])})}),i};function ES(e){return e==null?void 0:String(e)}function Zm(e){var t=e.axis,r=e.ticks,n=e.bandSize,o=e.entry,a=e.index,i=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!ar(o[t.dataKey])){var s=pw(r,"value",o[t.dataKey]);if(s)return s.coordinate+n/2}return r!=null&&r[a]?r[a].coordinate+n/2:null}var l=Ht(o,ar(i)?t.dataKey:i),u=t.scale.map(l);return De(u)?u:null}var WO=e=>{var t=e.axis,r=e.ticks,n=e.offset,o=e.bandSize,a=e.entry,i=e.index;if(t.type==="category")return r[i]?r[i].coordinate+n:null;var s=Ht(a,t.dataKey,t.scale.domain()[i]);if(ar(s))return null;var l=t.scale.map(s);return De(l)?l-o/2+n:null},_7=e=>{var t=e.numericAxis,r=t.scale.domain();if(t.type==="number"){var n=Math.min(r[0],r[1]),o=Math.max(r[0],r[1]);return n<=0&&o>=0?0:o<0?o:n}return r[0]},Mse=e=>{var t=e.flat(2).filter(De);return[Math.min(...t),Math.max(...t)]},Ise=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],C7=(e,t,r)=>{if(!(e==null||Object.keys(e).length===0))return Ise(Object.keys(e).reduce((n,o)=>{var a=e[o];if(!a)return n;var i=a.stackedData,s=i.reduce((l,u)=>{var c=AS(u,t,r),d=Mse(c);return!Ot(d[0])||!Ot(d[1])?l:[Math.min(l[0],d[0]),Math.max(l[1],d[1])]},[1/0,-1/0]);return[Math.min(s[0],n[0]),Math.max(s[1],n[1])]},[1/0,-1/0]))},HO=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,qO=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Qi=(e,t,r)=>{if(e&&e.scale&&e.scale.bandwidth){var n=e.scale.bandwidth();if(!r||n>0)return n}if(e&&t&&t.length>=2){for(var o=lu(t,y=>y.coordinate),a=[],i=0,s=1,l=o.length;sp&&(f=Math.min(m,f));return f===1/0?0:f}return r?void 0:0};function KO(e){var t=e.tooltipEntrySettings,r=e.dataKey,n=e.payload,o=e.value,a=e.name;return Ga(Ga({},t),{},{dataKey:r,payload:n,value:o,name:a})}function wi(e,t){if(e!=null)return String(e);if(typeof t=="string")return t}var A7=(e,t)=>{if(t==="horizontal")return e.relativeX;if(t==="vertical")return e.relativeY},E7=(e,t)=>t==="centric"?e.angle:e.radius;var qo=e=>e.layout.width,Ko=e=>e.layout.height,N7=e=>e.layout.scale,Jm=e=>e.layout.margin;var Qm=ae(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),Rm=ae(e=>e.cartesianAxis.yAxis,e=>Object.values(e));var NS="data-recharts-item-index",TS="data-recharts-item-id",rp=60,Cv=30;function T7(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function OS(e){for(var t=1;te.brush.height;function zse(e){var t=Rm(e);return t.reduce((r,n)=>{if(n.orientation==="left"&&!n.mirror&&!n.hide){var o=typeof n.width=="number"?n.width:rp;return r+o}return r},0)}function Bse(e){var t=Rm(e);return t.reduce((r,n)=>{if(n.orientation==="right"&&!n.mirror&&!n.hide){var o=typeof n.width=="number"?n.width:rp;return r+o}return r},0)}function Fse(e){var t=Qm(e);return t.reduce((r,n)=>{if(n.orientation==="top"&&!n.mirror&&!n.hide){var o=typeof n.height=="number"?n.height:Cv;return r+o}return r},0)}function Use(e){var t=Qm(e);return t.reduce((r,n)=>{if(n.orientation==="bottom"&&!n.mirror&&!n.hide){var o=typeof n.height=="number"?n.height:Cv;return r+o}return r},0)}var Fr=ae([qo,Ko,Jm,Lse,zse,Bse,Fse,Use,mO,vB],(e,t,r,n,o,a,i,s,l,u)=>{var c={left:(r.left||0)+o,right:(r.right||0)+a},d={top:(r.top||0)+i,bottom:(r.bottom||0)+s},p=OS(OS({},d),c),f=p.bottom;p.bottom+=n,p=w7(p,l,u);var m=e-p.left-p.right,y=t-p.top-p.bottom;return OS(OS({brushBottom:f},p),{},{width:Math.max(m,0),height:Math.max(y,0)})}),PS=ae(Fr,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),eg=ae(qo,Ko,(e,t)=>({x:0,y:0,width:e,height:t}));var Wse=Z(Q()),MS=Z(Q()),Hse=(0,MS.createContext)(null),Ar=()=>(0,MS.useContext)(Hse)!=null;var tg=e=>e.brush,np=ae([tg,Fr,Jm],(e,t,r)=>({height:e.height,x:De(e.x)?e.x:t.left,y:De(e.y)?e.y:t.top+t.height+t.brushBottom-(r?.bottom||0),width:De(e.width)?e.width:t.width}));var op=Z(Q()),bo=Z(Q());function O7(e,t,{signal:r,edges:n}={}){let o,a=null,i=n!=null&&n.includes("leading"),s=n==null||n.includes("trailing"),l=()=>{a!==null&&(e.apply(o,a),o=void 0,a=null)},u=()=>{s&&l(),f()},c=null,d=()=>{c!=null&&clearTimeout(c),c=setTimeout(()=>{c=null,u()},t)},p=()=>{c!==null&&(clearTimeout(c),c=null)},f=()=>{p(),o=void 0,a=null},m=()=>{l()},y=function(...b){if(r?.aborted)return;o=this,a=b;let g=c==null;d(),i&&g&&l()};return y.schedule=d,y.cancel=f,y.flush=m,r?.addEventListener("abort",f,{once:!0}),y}function P7(e,t=0,r={}){typeof r!="object"&&(r={});let{leading:n=!1,trailing:o=!0,maxWait:a}=r,i=Array(2);n&&(i[0]="leading"),o&&(i[1]="trailing");let s,l=null,u=O7(function(...p){s=e.apply(this,p),l=null},t,{edges:i}),c=function(...p){return a!=null&&(l===null&&(l=Date.now()),Date.now()-l>=a)?(s=e.apply(this,p),l=Date.now(),u.cancel(),u.schedule(),s):(u.apply(this,p),s)},d=()=>(u.flush(),s);return c.cancel=u.cancel,c.flush=d,c}function VO(e,t=0,r={}){let{leading:n=!0,trailing:o=!0}=r;return P7(e,t,{leading:n,maxWait:t,trailing:o})}var qse=!0,rg=function(t,r){for(var n=arguments.length,o=new Array(n>2?n-2:0),a=2;ao[i++]))}};var Ps={width:"100%",height:"100%",debounce:0,minWidth:0,initialDimension:{width:-1,height:-1}},GO=(e,t,r)=>{var n=r.width,o=n===void 0?Ps.width:n,a=r.height,i=a===void 0?Ps.height:a,s=r.aspect,l=r.maxHeight,u=nu(o)?e:Number(o),c=nu(i)?t:Number(i);return s&&s>0&&(u?c=u/s:c&&(u=c*s),l&&c!=null&&c>l&&(c=l)),{calculatedWidth:u,calculatedHeight:c}},Kse={width:0,height:0,overflow:"visible"},Vse={width:0,overflowX:"visible"},Gse={height:0,overflowY:"visible"},Yse={},M7=e=>{var t=e.width,r=e.height,n=nu(t),o=nu(r);return n&&o?Kse:n?Vse:o?Gse:Yse};function I7(e){var t=e.width,r=e.height,n=e.aspect,o=t,a=r;return o===void 0&&a===void 0?(o=Ps.width,a=Ps.height):o===void 0?o=n&&n>0?void 0:Ps.width:a===void 0&&(a=n&&n>0?void 0:Ps.height),{width:o,height:a}}var Xse=["aspect","initialDimension","width","height","minWidth","minHeight","maxHeight","children","debounce","id","className","onResize","style"];function IS(){return IS=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r({width:r,height:n}),[r,n]);return ile(o)?op.createElement(L7.Provider,{value:o},t):null}var Av=()=>(0,bo.useContext)(L7),sle=(0,bo.forwardRef)((e,t)=>{var r=e.aspect,n=e.initialDimension,o=n===void 0?Ps.initialDimension:n,a=e.width,i=e.height,s=e.minWidth,l=s===void 0?Ps.minWidth:s,u=e.minHeight,c=e.maxHeight,d=e.children,p=e.debounce,f=p===void 0?Ps.debounce:p,m=e.id,y=e.className,b=e.onResize,g=e.style,h=g===void 0?{}:g,v=ole(e,Xse),x=(0,bo.useRef)(null),S=(0,bo.useRef)();S.current=b,(0,bo.useImperativeHandle)(t,()=>x.current);var k=(0,bo.useState)({containerWidth:o.width,containerHeight:o.height}),w=Rse(k,2),_=w[0],A=w[1],C=(0,bo.useCallback)((T,P)=>{A(I=>{var M=Math.round(T),j=Math.round(P);return I.containerWidth===M&&I.containerHeight===j?I:{containerWidth:M,containerHeight:j}})},[]);(0,bo.useEffect)(()=>{if(x.current==null||typeof ResizeObserver>"u")return _a;var T=O=>{var F,V=O[0];if(V!=null){var z=V.contentRect,G=z.width,q=z.height;C(G,q),(F=S.current)===null||F===void 0||F.call(S,G,q)}};f>0&&(T=VO(T,f,{trailing:!0,leading:!1}));var P=new ResizeObserver(T),I=x.current.getBoundingClientRect(),M=I.width,j=I.height;return C(M,j),P.observe(x.current),()=>{P.disconnect()}},[C,f]);var N=_.containerWidth,L=_.containerHeight;rg(!r||r>0,"The aspect(%s) must be greater than zero.",r);var J=GO(N,L,{width:a,height:i,aspect:r,maxHeight:c}),B=J.calculatedWidth,K=J.calculatedHeight;return rg(N<0||L<0||B!=null&&B>0||K!=null&&K>0,`The width(%s) and height(%s) of chart should be greater than 0, please check the style of container, or the props width(%s) and height(%s), or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the - height and width.`,B,K,a,i,l,u,r),op.createElement("div",MS({id:m?"".concat(m):void 0,className:bt("recharts-responsive-container",y),style:A7(A7({},h),{},{width:a,height:i,minWidth:l,minHeight:u,maxHeight:c}),ref:x},v),op.createElement("div",{style:k7({width:a,height:i})},op.createElement(T7,{width:B,height:K},d)))}),Cc=(0,bo.forwardRef)((e,t)=>{var r=Av();if(qa(r.width)&&qa(r.height))return e.children;var n=_7({width:e.width,height:e.height,aspect:e.aspect}),o=n.width,a=n.height,i=KO(void 0,void 0,{width:o,height:a,aspect:e.aspect,maxHeight:e.maxHeight}),s=i.calculatedWidth,l=i.calculatedHeight;return De(s)&&De(l)?op.createElement(T7,{width:s,height:l},e.children):op.createElement(Jse,MS({},e,{width:o,height:a,ref:t}))});var ap=()=>{var e,t=Ar(),r=$e(OS),n=$e(np),o=(e=$e(tg))===null||e===void 0?void 0:e.padding;return!t||!n||!o?r:{width:n.width-o.left-o.right,height:n.height-o.top-o.bottom,x:o.left,y:o.top}},Qse={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},IS=()=>{var e;return(e=$e(Fr))!==null&&e!==void 0?e:Qse},ng=()=>$e(qo),og=()=>$e(Ko),P7=()=>$e(e=>e.layout.margin),Bt=e=>e.layout.layoutType,Va=()=>$e(Bt),ag=()=>{var e=Va();if(e==="horizontal"||e==="vertical")return e},DS=e=>{var t=e.layout.layoutType;if(t==="centric"||t==="radial")return t},M7=()=>$e(DS),I7=()=>{var e=Va();return e!==void 0},ip=e=>{var t=jt(),r=Ar(),n=e.width,o=e.height,a=Av(),i=n,s=o;return a&&(i=a.width>0?a.width:n,s=a.height>0?a.height:o),(0,O7.useEffect)(()=>{!r&&qa(i)&&qa(s)&&t(l7({width:i,height:s}))},[t,r,i,s]),null};var Rse={settings:{layout:"horizontal",align:"center",verticalAlign:"bottom",itemSorter:"value",position:void 0,offset:0},size:{width:0,height:0},payload:[]},D7=Cr({name:"legend",initialState:Rse,reducers:{setLegendSize(e,t){e.size.width=t.payload.width,e.size.height=t.payload.height},setLegendSettings(e,t){e.settings.align=t.payload.align,e.settings.layout=t.payload.layout,e.settings.verticalAlign=t.payload.verticalAlign,e.settings.itemSorter=t.payload.itemSorter,e.settings.position=t.payload.position,e.settings.offset=t.payload.offset},addLegendPayload:{reducer(e,t){e.payload.push(Zt(t.payload))},prepare:Ir()},replaceLegendPayload:{reducer(e,t){var r=t.payload,n=r.prev,o=r.next,a=ea(e).payload.indexOf(Zt(n));a>-1&&(e.payload[a]=Zt(o))},prepare:Ir()},removeLegendPayload:{reducer(e,t){var r=ea(e).payload.indexOf(Zt(t.payload));r>-1&&e.payload.splice(r,1)},prepare:Ir()}}}),Ev=D7.actions,VO=Ev.setLegendSize,j7=Ev.setLegendSettings,GO=Ev.addLegendPayload,YO=Ev.replaceLegendPayload,XO=Ev.removeLegendPayload;var $7=D7.reducer;var Gn=Z(J(),1),Ele=Z(F7(),1);var sle=Symbol.for("react.forward_ref");var lle=Symbol.for("react.memo");var ule=sle,cle=lle;function dle(e){e()}function ple(){let e=null,t=null;return{clear(){e=null,t=null},notify(){dle(()=>{let r=e;for(;r;)r.callback(),r=r.next})},get(){let r=[],n=e;for(;n;)r.push(n),n=n.next;return r},subscribe(r){let n=!0,o=t={callback:r,next:null,prev:t};return o.prev?o.prev.next=o:e=o,function(){!n||e===null||(n=!1,o.next?o.next.prev=o.prev:t=o.prev,o.prev?o.prev.next=o.next:e=o.next)}}}}var U7={notify(){},get:()=>[]};function fle(e,t){let r,n=U7,o=0,a=!1;function i(y){c();let b=n.subscribe(y),g=!1;return()=>{g||(g=!0,b(),d())}}function s(){n.notify()}function l(){m.onStateChange&&m.onStateChange()}function u(){return a}function c(){o++,r||(r=t?t.addNestedSub(l):e.subscribe(l),n=ple())}function d(){o--,r&&o===0&&(r(),r=void 0,n.clear(),n=U7)}function p(){a||(a=!0,c())}function f(){a&&(a=!1,d())}let m={addNestedSub:i,notifyNestedSubs:s,handleChangeWrapper:l,isSubscribed:u,trySubscribe:p,tryUnsubscribe:f,getListeners:()=>n};return m}var mle=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",gle=mle(),hle=()=>typeof navigator<"u"&&navigator.product==="ReactNative",yle=hle(),vle=()=>gle||yle?Gn.useLayoutEffect:Gn.useEffect,xle=vle();function W7(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function H7(e,t){if(W7(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let o=0;o{let l=fle(o);return{store:o,subscription:l,getServerState:n?()=>n:void 0}},[o,n]),i=Gn.useMemo(()=>o.getState(),[o]);return xle(()=>{let{subscription:l}=a;return l.onStateChange=l.notifyNestedSubs,l.trySubscribe(),i!==o.getState()&&l.notifyNestedSubs(),()=>{l.tryUnsubscribe(),l.onStateChange=void 0}},[a,i]),Gn.createElement((r||Cle).Provider,{value:a},t)}var q7=Ale;var Nle=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius","throttledEvents"]);function Tle(e,t){return e==null&&t==null?!0:typeof e=="number"&&typeof t=="number"?e===t||e!==e&&t!==t:e===t}function Ga(e,t){var r=new Set([...Object.keys(e),...Object.keys(t)]);for(var n of r)if(Nle.has(n)){if(e[n]==null&&t[n]==null)continue;if(!H7(e[n],t[n]))return!1}else if(!Tle(e[n],t[n]))return!1;return!0}var K7=ae([qo,Ko,Jm],(e,t,r)=>({x:r.left||0,y:r.top||0,width:Math.max(e-(r.left||0)-(r.right||0),0),height:Math.max(t-(r.top||0)-(r.bottom||0),0)}));function V7(e,t){var r;if(e==="start"&&t==="start")return"";var n={start:"0",middle:"-50%",end:"-100%"},o={start:"0",middle:"-50%",end:"-100%"},a=e==="inherit"?"0":n[e],i=(r=o[t])!==null&&r!==void 0?r:"0";return"translate(".concat(a,", ").concat(i,")")}var Ole=["contextPayload"];function ZO(){return ZO=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{s(j7({align:t,layout:r,verticalAlign:n,itemSorter:o,position:a,offset:i}))},[s,t,r,n,o,a,i]),null}function Yle(e){var t=e.width,r=e.height,n=jt();return(0,jS.useLayoutEffect)(()=>{n(VO({width:t,height:r}))},[n,t,r]),(0,jS.useLayoutEffect)(()=>()=>{n(VO({width:0,height:0}))},[n]),null}function Xle(e,t,r,n){return e==="vertical"&&t!=null?{height:t}:e==="horizontal"?{width:r||n}:null}var Zle={align:"center",iconSize:14,inactiveColor:"#ccc",itemSorter:"value",labelStyle:{},layout:"auto",verticalAlign:"bottom",offset:0};function Jle(e){var t,r,n,o,a,i,s,l,u=nr(e,Zle),c=e.layout&&e.layout!=="auto"?e.layout:Hle(u.position),d=dB(),p=J6(),f=P7(),m=$e(j=>qle(j,u.position)),y=u.width,b=u.height,g=u.wrapperStyle,h=u.portal,v=h==null&&(u.position==null||cv(u.position)),x=Qw([d]),S=Ple(x,2),k=S[0],w=S[1],_=ng(),A=og();if(_==null||A==null||u.position!=null&&m==null)return null;var C=_-(f?.left||0)-(f?.right||0),N=Xle(c,b,y,C),L=u.position==null?null:pw({viewBox:m??{x:0,y:0,width:_,height:A},position:u.position,offset:(t=u.offset)!==null&&t!==void 0?t:0}),Q=Kle(u.position,(r=u.offset)!==null&&r!==void 0?r:0,k),B=c==="vertical"?((n=m?.width)!==null&&n!==void 0?n:0)/2:(o=m?.width)!==null&&o!==void 0?o:0,K=c==="horizontal"?((a=m?.height)!==null&&a!==void 0?a:0)/2:(i=m?.height)!==null&&i!==void 0?i:0,T=L?{width:"max-content",height:"max-content",maxWidth:B,maxHeight:K,overflowY:"auto",top:L.y+((s=Q.top)!==null&&s!==void 0?s:0),left:L.x+((l=Q.left)!==null&&l!==void 0?l:0),transform:V7(L.horizontalAnchor,L.verticalAnchor)}:Vle(g,u,f,_,A,k),O=h?g:ig(ig({position:"absolute",width:N?.width||y||"auto",height:N?.height||b||"auto"},T),g),I=h??p;if(I==null||d==null)return null;var P=bi.createElement("div",{className:"recharts-legend-wrapper",style:O,ref:w},bi.createElement(Gle,{layout:c,align:u.align,verticalAlign:u.verticalAlign,itemSorter:u.itemSorter,position:u.position,offset:u.offset}),v&&bi.createElement(Yle,k),bi.createElement(Wle,ZO({},u,{layout:c},N,{margin:f,chartWidth:_,chartHeight:A,contextPayload:d})));return(0,X7.createPortal)(P,I)}var $S=bi.memo(Jle,Ga);$S.displayName="Legend";var os=Z(J()),kH=Z(J()),_H=Z(oy());var Ms=Z(J());function JO(){return JO=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.separator,r=t===void 0?sg.separator:t,n=e.contentStyle,o=e.itemStyle,a=e.labelStyle,i=a===void 0?sg.labelStyle:a,s=e.payload,l=e.formatter,u=e.itemSorter,c=e.wrapperClassName,d=e.labelClassName,p=e.label,f=e.labelFormatter,m=e.accessibilityLayer,y=m===void 0?sg.accessibilityLayer:m,b=()=>{if(s&&s.length){var _={padding:0,margin:0},A=sue(s,u),C=A.map((N,L)=>{if(!N||N.type==="none")return null;var Q=N.formatter||l||iue,B=N.value,K=N.name,T=B,O=K;if(Q){var I=Q(B,K,N,L,s);if(Array.isArray(I)){var P=tue(I,2);T=P[0],O=P[1]}else if(I!=null)T=I;else return null}var j=Tv(Tv({},sg.itemStyle),{},{color:N.color||sg.itemStyle.color},o);return Ms.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(L),style:j},Sa(O)?Ms.createElement("span",{className:"recharts-tooltip-item-name"},O):null,Sa(O)?Ms.createElement("span",{className:"recharts-tooltip-item-separator"},r):null,Ms.createElement("span",{className:"recharts-tooltip-item-value"},T),Ms.createElement("span",{className:"recharts-tooltip-item-unit"},N.unit||""))});return Ms.createElement("ul",{className:"recharts-tooltip-item-list",style:_},C)}return null},g=Tv(Tv({},sg.contentStyle),n),h=Tv({margin:0},i),v=!ar(p),x=v?p:"",S=bt("recharts-default-tooltip",c),k=bt("recharts-tooltip-label",d);v&&f&&s!==void 0&&s!==null&&(x=f(p,s));var w=y?{role:"status","aria-live":"assertive"}:{};return Ms.createElement("div",JO({className:S,style:g},w),Ms.createElement("p",{className:k,style:h},Ms.isValidElement(x)?x:"".concat(x)),b())};var Ac=Z(J());var Ov="recharts-tooltip-wrapper",lue={visibility:"hidden"};function uue(e){var t=e.coordinate,r=e.translateX,n=e.translateY;return bt(Ov,{["".concat(Ov,"-right")]:De(r)&&t&&De(t.x)&&r>=t.x,["".concat(Ov,"-left")]:De(r)&&t&&De(t.x)&&r=t.y,["".concat(Ov,"-top")]:De(n)&&t&&De(t.y)&&n0?o:0),d=r[n]+o;if(t[n])return i[n]?c:d;var p=l[n];if(p==null)return 0;if(i[n]){var f=c,m=p;return fb?Math.max(c,p):Math.max(d,p)}function cue(e){var t=e.translateX,r=e.translateY,n=e.useTranslate3d;return{transform:n?"translate3d(".concat(t,"px, ").concat(r,"px, 0)"):"translate(".concat(t,"px, ").concat(r,"px)")}}function e9(e){var t=e.allowEscapeViewBox,r=e.coordinate,n=e.offsetTop,o=e.offsetLeft,a=e.position,i=e.reverseDirection,s=e.tooltipBox,l=e.useTranslate3d,u=e.viewBox,c,d,p;return s&&s.height>0&&s.width>0&&r?(d=R7({allowEscapeViewBox:t,coordinate:r,key:"x",offset:o,position:a,reverseDirection:i,tooltipDimension:s.width,viewBox:u,viewBoxDimension:u.width}),p=R7({allowEscapeViewBox:t,coordinate:r,key:"y",offset:n,position:a,reverseDirection:i,tooltipDimension:s.height,viewBox:u,viewBoxDimension:u.height}),c=cue({translateX:d,translateY:p,useTranslate3d:l})):c=lue,{cssProperties:c,cssClasses:uue({translateX:d,translateY:p,coordinate:r})}}var LS=Z(J());var due=()=>!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout),Qi={devToolsEnabled:!0,isSsr:due()};function pue(e,t){return hue(e)||gue(e,t)||mue(e,t)||fue()}function fue(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function mue(e,t){if(e){if(typeof e=="string")return t9(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t9(e,t):void 0}}function t9(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rQi.isSsr||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches),t=pue(e,2),r=t[0],n=t[1];return(0,LS.useEffect)(()=>{if(window.matchMedia){var o=window.matchMedia("(prefers-reduced-motion: reduce)"),a=()=>{n(o.matches)};return o.addEventListener("change",a),()=>{o.removeEventListener("change",a)}}},[]),r}function r9(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function lg(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r({dismissed:!1,dismissedAtCoordinate:{x:0,y:0}})),u=bue(l,2),c=u[0],d=u[1];Ac.useEffect(()=>{var g=h=>{if(h.key==="Escape"){var v,x,S,k;d({dismissed:!0,dismissedAtCoordinate:{x:(v=(x=e.coordinate)===null||x===void 0?void 0:x.x)!==null&&v!==void 0?v:0,y:(S=(k=e.coordinate)===null||k===void 0?void 0:k.y)!==null&&S!==void 0?S:0}})}};return document.addEventListener("keydown",g),()=>{document.removeEventListener("keydown",g)}},[(t=e.coordinate)===null||t===void 0?void 0:t.x,(r=e.coordinate)===null||r===void 0?void 0:r.y]),c.dismissed&&(((n=(o=e.coordinate)===null||o===void 0?void 0:o.x)!==null&&n!==void 0?n:0)!==c.dismissedAtCoordinate.x||((a=(i=e.coordinate)===null||i===void 0?void 0:i.y)!==null&&a!==void 0?a:0)!==c.dismissedAtCoordinate.y)&&d(lg(lg({},c),{},{dismissed:!1}));var p=e9({allowEscapeViewBox:e.allowEscapeViewBox,coordinate:e.coordinate,offsetLeft:typeof e.offset=="number"?e.offset:e.offset.x,offsetTop:typeof e.offset=="number"?e.offset:e.offset.y,position:e.position,reverseDirection:e.reverseDirection,tooltipBox:e.lastBoundingBox,useTranslate3d:e.useTranslate3d,viewBox:e.viewBox}),f=p.cssClasses,m=p.cssProperties,y=e.hasPortalFromProps?{}:lg(lg({transition:Cue({prefersReducedMotion:s,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},m),{},{pointerEvents:"none",position:"absolute",top:0,left:0}),b=lg(lg({},y),{},{visibility:!c.dismissed&&e.active&&e.hasPayload?"visible":"hidden"},e.wrapperStyle);return Ac.createElement("div",{xmlns:"http://www.w3.org/1999/xhtml",tabIndex:-1,className:f,style:b,ref:e.innerRef},e.children)}var o9=Ac.memo(Aue);var BS=()=>{var e;return(e=$e(t=>t.rootProps.accessibilityLayer))!==null&&e!==void 0?e:!0};var C_=Z(J()),$g=Z(J());var c9=Z(J());function QO(){return QO=Object.assign?Object.assign.bind():function(e){for(var t=1;tOt(e.x)&&Ot(e.y),l9=e=>e.base!=null&&FS(e.base)&&FS(e),Pv=e=>e.x,Mv=e=>e.y,Oue=(e,t)=>{if(typeof e=="function")return e;var r="curve".concat(au(e));if((r==="curveMonotone"||r==="curveBump")&&t){var n=s9["".concat(r).concat(t==="vertical"?"Y":"X")];if(n)return n}return s9[r]||Sc},u9={connectNulls:!1,type:"linear"},Pue=e=>{var t=e.type,r=t===void 0?u9.type:t,n=e.points,o=n===void 0?[]:n,a=e.baseLine,i=e.layout,s=e.connectNulls,l=s===void 0?u9.connectNulls:s,u=Oue(r,i),c=l?o.filter(FS):o;if(Array.isArray(a)){var d,p=o.map((g,h)=>i9(i9({},g),{},{base:a[h]}));i==="vertical"?d=$m().y(Mv).x1(Pv).x0(g=>g.base.x):d=$m().x(Pv).y1(Mv).y0(g=>g.base.y);var f=d.defined(l9).curve(u),m=l?p.filter(l9):p;return f(m)}var y;i==="vertical"&&De(a)?y=$m().y(Mv).x1(Pv).x0(a):De(a)?y=$m().x(Pv).y1(Mv).y0(a):y=pv().x(Pv).y(Mv);var b=y.defined(FS).curve(u);return b(c)},ul=e=>{var t=e.className,r=e.points,n=e.path,o=e.pathRef,a=Va();if((!r||!r.length)&&!n)return null;var i={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||a,connectNulls:e.connectNulls},s=r&&r.length?Pue(i):n;return c9.createElement("path",QO({},hn(e),Um(e),{className:bt("recharts-curve",t),d:s===null?void 0:s,ref:o}))};var p9=Z(J());var Mue=["x","y","top","left","width","height","className"];function RO(){return RO=Object.assign?Object.assign.bind():function(e){for(var t=1;t"M".concat(e,",").concat(o,"v").concat(n,"M").concat(a,",").concat(t,"h").concat(r),f9=e=>{var t=e.x,r=t===void 0?0:t,n=e.y,o=n===void 0?0:n,a=e.top,i=a===void 0?0:a,s=e.left,l=s===void 0?0:s,u=e.width,c=u===void 0?0:u,d=e.height,p=d===void 0?0:d,f=e.className,m=Lue(e,Mue),y=Iue({x:r,y:o,top:i,left:l,width:c,height:p},m);return!De(r)||!De(o)||!De(c)||!De(p)||!De(i)||!De(l)?null:p9.createElement("path",RO({},yn(y),{className:bt("recharts-cross",f),d:Bue(r,o,c,p,i,l)}))};function m9(e,t,r,n){var o=n/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-o:r.left+.5,y:e==="horizontal"?r.top+.5:t.y-o,width:e==="horizontal"?n:r.width-1,height:e==="horizontal"?r.height-1:n}}var VS=Z(J()),Ri=Z(J());var Iv=Z(J());var US=1e-4,y9=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],v9=(e,t)=>e.map((r,n)=>r*t**n).reduce((r,n)=>r+n),g9=(e,t)=>r=>{var n=y9(e,t);return v9(n,r)},Fue=(e,t)=>r=>{var n=y9(e,t),o=[...n.map((a,i)=>a*i).slice(1),0];return v9(o,r)},Uue=e=>{var t,r=e.split("(");if(r.length!==2||r[0]!=="cubic-bezier")return null;var n=(t=r[1])===null||t===void 0||(t=t.split(")")[0])===null||t===void 0?void 0:t.split(",");if(n==null||n.length!==4)return null;var o=n.map(a=>parseFloat(a));return[o[0],o[1],o[2],o[3]]},Wue=function(){for(var t=arguments.length,r=new Array(t),n=0;n{var o=g9(e,r),a=g9(t,n),i=Fue(e,r),s=u=>u>1?1:u<0?0:u,l=u=>{for(var c=u>1?1:u,d=c,p=0;p<8;++p){var f=o(d)-c,m=i(d);if(Math.abs(f-c)0&&arguments[0]!==void 0?arguments[0]:{},r=t.stiff,n=r===void 0?100:r,o=t.damping,a=o===void 0?8:o,i=t.dt,s=i===void 0?16.67:i,l=1,u=[0],c=0,d=0,p=1e4,f=0;f{var h,v,x;if(g<=0)return 0;if(g>=1)return l;var S=g*b,k=Math.floor(S),w=S-k;return((h=u[k])!==null&&h!==void 0?h:0)+(((v=u[k+1])!==null&&v!==void 0?v:0)-((x=u[k])!==null&&x!==void 0?x:0))*w}},x9=e=>{if(typeof e=="string")switch(e){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return h9(e);case"spring":return que();default:if(e.split("(")[0]==="cubic-bezier")return h9(e)}return typeof e=="function"?e:null};var ug=Z(J());var b9=(e,t,r)=>{var n,o=a=>{var i=t.tick(a);if(t.getState()==="active"){if(r(t.getInterpolated()),t.getProgress()===1){t.complete(),n=void 0;return}n=e.setTimeout(o,i);return}n=e.setTimeout(o,i)};return n=e.setTimeout(o,0),()=>{var a;return(a=n)===null||a===void 0?void 0:a()}};var w9=(0,ug.createContext)(b9),CIe=w9.Provider;function S9(e){var t=(0,ug.useContext)(w9);return(0,ug.useMemo)(()=>e??t,[e,t])}function Kue(e,t,r){return(t=Vue(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Vue(e){var t=Gue(e,"string");return typeof t=="symbol"?t:t+""}function Gue(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var k9="init",_9="pending",C9="active",Yue="completed";function eP(e){return Math.max(0,e)}var tP=class{getAnimationStartedTime(){return this.animationStartedTime}getBeginStartedTime(){return this.beginStartedTime}constructor(t){var r;Kue(this,"state",k9),this.animationId=t.animationId,this.onAnimationEnd=t.onAnimationEnd,this.animationDuration=eP(t.animationDuration),this.animationBegin=eP(t.animationBegin),this.progress=0,this.from=t.from,this.to=t.to,this.easing=t.easing,(r=t.onAnimationStart)===null||r===void 0||r.call(t)}getState(){return this.state}getEasing(){return this.easing}getAnimationDuration(){return this.animationDuration}tick(t){if(this.getState()===k9)return this.state=_9,this.beginStartedTime=t,this.animationBegin;if(this.getState()===_9){if(this.beginStartedTime==null)throw new Error;var r=t-this.beginStartedTime;return r>=this.animationBegin?(this.state=C9,this.animationStartedTime=t,this.nextAnimationUpdate(0)):eP(this.animationBegin-r)}if(this.getState()===C9){if(this.animationStartedTime==null)throw new Error;var n=t-this.animationStartedTime;return this.setProgress(n/this.animationDuration),this.nextAnimationUpdate(n)}return 0}setProgress(t){this.progress=Math.min(1,Math.max(0,t))}getProgress(){return this.progress}complete(){if(this.progress=1,this.state==="active"){var t;(t=this.onAnimationEnd)===null||t===void 0||t.call(this)}this.state=Yue}getFrom(){return this.from}getTo(){return this.to}getAnimationId(){return this.animationId}getAnimationBegin(){return this.animationBegin}},WS=class extends tP{nextAnimationUpdate(){return 0}getInterpolated(){return this.easing(_r(this.getFrom(),this.getTo(),this.getProgress()))}};var HS=class{setTimeout(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=performance.now(),o=null,a=i=>{i-n>=r?t(i):o=requestAnimationFrame(a)};return o=requestAnimationFrame(a),()=>{o!=null&&cancelAnimationFrame(o)}}};function Xue(e,t){return Rue(e)||Que(e,t)||Jue(e,t)||Zue()}function Zue(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Jue(e,t){if(e){if(typeof e=="string")return A9(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?A9(e,t):void 0}}function A9(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{},onAnimationStart:()=>{}},E9=0,rP=1;function qS(e){var t=nr(e,ece),r=t.animationId,n=t.isActive,o=t.canBegin,a=t.duration,i=t.easing,s=t.begin,l=t.onAnimationEnd,u=t.onAnimationStart,c=t.children,d=zS(),p=n==="auto"?!Qi.isSsr&&!d:n,f=S9(t.animationController),m=(0,Iv.useState)(p?E9:rP),y=Xue(m,2),b=y[0],g=y[1];return(0,Iv.useEffect)(()=>{p||g(rP)},[p]),(0,Iv.useEffect)(()=>{var h=x9(i);if(!p||!o||h==null)return ka;var v=new HS,x=new WS({animationId:r,easing:h,animationDuration:a,animationBegin:s,onAnimationStart:u,onAnimationEnd:l,from:E9,to:rP});return f(v,x,g)},[f,r,p,o,a,i,s,u,l]),c(Number(b))}var nP=Z(J());function KS(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"animation-",r=(0,nP.useRef)(ou(t)),n=(0,nP.useRef)(e);return n.current!==e&&(r.current=ou(t),n.current=e),r.current}var tce=e=>e.replace(/([A-Z])/g,t=>"-".concat(t.toLowerCase())),N9=(e,t,r)=>e.map(n=>"".concat(tce(n)," ").concat(t,"ms ").concat(r)).join(",");var rce=["radius"],nce=["radius"],T9,O9,P9,M9,I9,D9,j9,$9,L9,z9;function B9(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function F9(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{var a=Vi(r),i=Vi(n),s=Math.min(Math.abs(a)/2,Math.abs(i)/2),l=i>=0?1:-1,u=a>=0?1:-1,c=i>=0&&a>=0||i<0&&a<0?1:0,d;if(s>0&&Array.isArray(o)){for(var p=[0,0,0,0],f=0,m=4;fs?s:b}d=Co(T9||(T9=cl(["M",",",""])),e,t+l*p[0]),p[0]>0&&(d+=Co(O9||(O9=cl(["A ",",",",0,0,",",",",",""])),p[0],p[0],c,e+u*p[0],t)),d+=Co(P9||(P9=cl(["L ",",",""])),e+r-u*p[1],t),p[1]>0&&(d+=Co(M9||(M9=cl(["A ",",",",0,0,",`, - `,",",""])),p[1],p[1],c,e+r,t+l*p[1])),d+=Co(I9||(I9=cl(["L ",",",""])),e+r,t+n-l*p[2]),p[2]>0&&(d+=Co(D9||(D9=cl(["A ",",",",0,0,",`, - `,",",""])),p[2],p[2],c,e+r-u*p[2],t+n)),d+=Co(j9||(j9=cl(["L ",",",""])),e+u*p[3],t+n),p[3]>0&&(d+=Co($9||($9=cl(["A ",",",",0,0,",`, - `,",",""])),p[3],p[3],c,e,t+n-l*p[3])),d+="Z"}else if(s>0&&o===+o&&o>0){var g=Math.min(s,o);d=Co(L9||(L9=cl(["M ",",",` + height and width.`,B,K,a,i,l,u,r),op.createElement("div",IS({id:m?"".concat(m):void 0,className:bt("recharts-responsive-container",y),style:j7(j7({},h),{},{width:a,height:i,minWidth:l,minHeight:u,maxHeight:c}),ref:x},v),op.createElement("div",{style:M7({width:a,height:i})},op.createElement(z7,{width:B,height:K},d)))}),Cc=(0,bo.forwardRef)((e,t)=>{var r=Av();if(Va(r.width)&&Va(r.height))return e.children;var n=I7({width:e.width,height:e.height,aspect:e.aspect}),o=n.width,a=n.height,i=GO(void 0,void 0,{width:o,height:a,aspect:e.aspect,maxHeight:e.maxHeight}),s=i.calculatedWidth,l=i.calculatedHeight;return De(s)&&De(l)?op.createElement(z7,{width:s,height:l},e.children):op.createElement(sle,IS({},e,{width:o,height:a,ref:t}))});var ap=()=>{var e,t=Ar(),r=$e(PS),n=$e(np),o=(e=$e(tg))===null||e===void 0?void 0:e.padding;return!t||!n||!o?r:{width:n.width-o.left-o.right,height:n.height-o.top-o.bottom,x:o.left,y:o.top}},lle={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},DS=()=>{var e;return(e=$e(Fr))!==null&&e!==void 0?e:lle},ng=()=>$e(qo),og=()=>$e(Ko),F7=()=>$e(e=>e.layout.margin),Bt=e=>e.layout.layoutType,Ya=()=>$e(Bt),ag=()=>{var e=Ya();if(e==="horizontal"||e==="vertical")return e},jS=e=>{var t=e.layout.layoutType;if(t==="centric"||t==="radial")return t},U7=()=>$e(jS),W7=()=>{var e=Ya();return e!==void 0},ip=e=>{var t=jt(),r=Ar(),n=e.width,o=e.height,a=Av(),i=n,s=o;return a&&(i=a.width>0?a.width:n,s=a.height>0?a.height:o),(0,B7.useEffect)(()=>{!r&&Va(i)&&Va(s)&&t(y7({width:i,height:s}))},[t,r,i,s]),null};var ule={settings:{layout:"horizontal",align:"center",verticalAlign:"bottom",itemSorter:"value",position:void 0,offset:0},size:{width:0,height:0},payload:[]},H7=Cr({name:"legend",initialState:ule,reducers:{setLegendSize(e,t){e.size.width=t.payload.width,e.size.height=t.payload.height},setLegendSettings(e,t){e.settings.align=t.payload.align,e.settings.layout=t.payload.layout,e.settings.verticalAlign=t.payload.verticalAlign,e.settings.itemSorter=t.payload.itemSorter,e.settings.position=t.payload.position,e.settings.offset=t.payload.offset},addLegendPayload:{reducer(e,t){e.payload.push(Zt(t.payload))},prepare:Ir()},replaceLegendPayload:{reducer(e,t){var r=t.payload,n=r.prev,o=r.next,a=ea(e).payload.indexOf(Zt(n));a>-1&&(e.payload[a]=Zt(o))},prepare:Ir()},removeLegendPayload:{reducer(e,t){var r=ea(e).payload.indexOf(Zt(t.payload));r>-1&&e.payload.splice(r,1)},prepare:Ir()}}}),Ev=H7.actions,YO=Ev.setLegendSize,q7=Ev.setLegendSettings,XO=Ev.addLegendPayload,ZO=Ev.replaceLegendPayload,JO=Ev.removeLegendPayload;var K7=H7.reducer;var Gn=Z(Q(),1),Lle=Z(X7(),1);var yle=Symbol.for("react.forward_ref");var vle=Symbol.for("react.memo");var xle=yle,ble=vle;function wle(e){e()}function Sle(){let e=null,t=null;return{clear(){e=null,t=null},notify(){wle(()=>{let r=e;for(;r;)r.callback(),r=r.next})},get(){let r=[],n=e;for(;n;)r.push(n),n=n.next;return r},subscribe(r){let n=!0,o=t={callback:r,next:null,prev:t};return o.prev?o.prev.next=o:e=o,function(){!n||e===null||(n=!1,o.next?o.next.prev=o.prev:t=o.prev,o.prev?o.prev.next=o.next:e=o.next)}}}}var Z7={notify(){},get:()=>[]};function kle(e,t){let r,n=Z7,o=0,a=!1;function i(y){c();let b=n.subscribe(y),g=!1;return()=>{g||(g=!0,b(),d())}}function s(){n.notify()}function l(){m.onStateChange&&m.onStateChange()}function u(){return a}function c(){o++,r||(r=t?t.addNestedSub(l):e.subscribe(l),n=Sle())}function d(){o--,r&&o===0&&(r(),r=void 0,n.clear(),n=Z7)}function p(){a||(a=!0,c())}function f(){a&&(a=!1,d())}let m={addNestedSub:i,notifyNestedSubs:s,handleChangeWrapper:l,isSubscribed:u,trySubscribe:p,tryUnsubscribe:f,getListeners:()=>n};return m}var _le=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Cle=_le(),Ale=()=>typeof navigator<"u"&&navigator.product==="ReactNative",Ele=Ale(),Nle=()=>Cle||Ele?Gn.useLayoutEffect:Gn.useEffect,Tle=Nle();function J7(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function Q7(e,t){if(J7(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let o=0;o{let l=kle(o);return{store:o,subscription:l,getServerState:n?()=>n:void 0}},[o,n]),i=Gn.useMemo(()=>o.getState(),[o]);return Tle(()=>{let{subscription:l}=a;return l.onStateChange=l.notifyNestedSubs,l.trySubscribe(),i!==o.getState()&&l.notifyNestedSubs(),()=>{l.tryUnsubscribe(),l.onStateChange=void 0}},[a,i]),Gn.createElement((r||jle).Provider,{value:a},t)}var R7=$le;var zle=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius","throttledEvents"]);function Ble(e,t){return e==null&&t==null?!0:typeof e=="number"&&typeof t=="number"?e===t||e!==e&&t!==t:e===t}function Xa(e,t){var r=new Set([...Object.keys(e),...Object.keys(t)]);for(var n of r)if(zle.has(n)){if(e[n]==null&&t[n]==null)continue;if(!Q7(e[n],t[n]))return!1}else if(!Ble(e[n],t[n]))return!1;return!0}var e9=ae([qo,Ko,Jm],(e,t,r)=>({x:r.left||0,y:r.top||0,width:Math.max(e-(r.left||0)-(r.right||0),0),height:Math.max(t-(r.top||0)-(r.bottom||0),0)}));function t9(e,t){var r;if(e==="start"&&t==="start")return"";var n={start:"0",middle:"-50%",end:"-100%"},o={start:"0",middle:"-50%",end:"-100%"},a=e==="inherit"?"0":n[e],i=(r=o[t])!==null&&r!==void 0?r:"0";return"translate(".concat(a,", ").concat(i,")")}var Fle=["contextPayload"];function QO(){return QO=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{s(q7({align:t,layout:r,verticalAlign:n,itemSorter:o,position:a,offset:i}))},[s,t,r,n,o,a,i]),null}function oue(e){var t=e.width,r=e.height,n=jt();return(0,$S.useLayoutEffect)(()=>{n(YO({width:t,height:r}))},[n,t,r]),(0,$S.useLayoutEffect)(()=>()=>{n(YO({width:0,height:0}))},[n]),null}function aue(e,t,r,n){return e==="vertical"&&t!=null?{height:t}:e==="horizontal"?{width:r||n}:null}var iue={align:"center",iconSize:14,inactiveColor:"#ccc",itemSorter:"value",labelStyle:{},layout:"auto",verticalAlign:"bottom",offset:0};function sue(e){var t,r,n,o,a,i,s,l,u=nr(e,iue),c=e.layout&&e.layout!=="auto"?e.layout:Rle(u.position),d=bB(),p=iz(),f=F7(),m=$e(j=>eue(j,u.position)),y=u.width,b=u.height,g=u.wrapperStyle,h=u.portal,v=h==null&&(u.position==null||cv(u.position)),x=Rw([d]),S=Ule(x,2),k=S[0],w=S[1],_=ng(),A=og();if(_==null||A==null||u.position!=null&&m==null)return null;var C=_-(f?.left||0)-(f?.right||0),N=aue(c,b,y,C),L=u.position==null?null:fw({viewBox:m??{x:0,y:0,width:_,height:A},position:u.position,offset:(t=u.offset)!==null&&t!==void 0?t:0}),J=tue(u.position,(r=u.offset)!==null&&r!==void 0?r:0,k),B=c==="vertical"?((n=m?.width)!==null&&n!==void 0?n:0)/2:(o=m?.width)!==null&&o!==void 0?o:0,K=c==="horizontal"?((a=m?.height)!==null&&a!==void 0?a:0)/2:(i=m?.height)!==null&&i!==void 0?i:0,T=L?{width:"max-content",height:"max-content",maxWidth:B,maxHeight:K,overflowY:"auto",top:L.y+((s=J.top)!==null&&s!==void 0?s:0),left:L.x+((l=J.left)!==null&&l!==void 0?l:0),transform:t9(L.horizontalAnchor,L.verticalAnchor)}:rue(g,u,f,_,A,k),P=h?g:ig(ig({position:"absolute",width:N?.width||y||"auto",height:N?.height||b||"auto"},T),g),I=h??p;if(I==null||d==null)return null;var M=Si.createElement("div",{className:"recharts-legend-wrapper",style:P,ref:w},Si.createElement(nue,{layout:c,align:u.align,verticalAlign:u.verticalAlign,itemSorter:u.itemSorter,position:u.position,offset:u.offset}),v&&Si.createElement(oue,k),Si.createElement(Qle,QO({},u,{layout:c},N,{margin:f,chartWidth:_,chartHeight:A,contextPayload:d})));return(0,o9.createPortal)(M,I)}var LS=Si.memo(sue,Xa);LS.displayName="Legend";var as=Z(Q()),MH=Z(Q()),IH=Z(oy());var Ms=Z(Q());function RO(){return RO=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.separator,r=t===void 0?sg.separator:t,n=e.contentStyle,o=e.itemStyle,a=e.labelStyle,i=a===void 0?sg.labelStyle:a,s=e.payload,l=e.formatter,u=e.itemSorter,c=e.wrapperClassName,d=e.labelClassName,p=e.label,f=e.labelFormatter,m=e.accessibilityLayer,y=m===void 0?sg.accessibilityLayer:m,b=()=>{if(s&&s.length){var _={padding:0,margin:0},A=yue(s,u),C=A.map((N,L)=>{if(!N||N.type==="none")return null;var J=N.formatter||l||hue,B=N.value,K=N.name,T=B,P=K;if(J){var I=J(B,K,N,L,s);if(Array.isArray(I)){var M=due(I,2);T=M[0],P=M[1]}else if(I!=null)T=I;else return null}var j=Tv(Tv({},sg.itemStyle),{},{color:N.color||sg.itemStyle.color},o);return Ms.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(L),style:j},ka(P)?Ms.createElement("span",{className:"recharts-tooltip-item-name"},P):null,ka(P)?Ms.createElement("span",{className:"recharts-tooltip-item-separator"},r):null,Ms.createElement("span",{className:"recharts-tooltip-item-value"},T),Ms.createElement("span",{className:"recharts-tooltip-item-unit"},N.unit||""))});return Ms.createElement("ul",{className:"recharts-tooltip-item-list",style:_},C)}return null},g=Tv(Tv({},sg.contentStyle),n),h=Tv({margin:0},i),v=!ar(p),x=v?p:"",S=bt("recharts-default-tooltip",c),k=bt("recharts-tooltip-label",d);v&&f&&s!==void 0&&s!==null&&(x=f(p,s));var w=y?{role:"status","aria-live":"assertive"}:{};return Ms.createElement("div",RO({className:S,style:g},w),Ms.createElement("p",{className:k,style:h},Ms.isValidElement(x)?x:"".concat(x)),b())};var Ac=Z(Q());var Ov="recharts-tooltip-wrapper",vue={visibility:"hidden"};function xue(e){var t=e.coordinate,r=e.translateX,n=e.translateY;return bt(Ov,{["".concat(Ov,"-right")]:De(r)&&t&&De(t.x)&&r>=t.x,["".concat(Ov,"-left")]:De(r)&&t&&De(t.x)&&r=t.y,["".concat(Ov,"-top")]:De(n)&&t&&De(t.y)&&n0?o:0),d=r[n]+o;if(t[n])return i[n]?c:d;var p=l[n];if(p==null)return 0;if(i[n]){var f=c,m=p;return fb?Math.max(c,p):Math.max(d,p)}function bue(e){var t=e.translateX,r=e.translateY,n=e.useTranslate3d;return{transform:n?"translate3d(".concat(t,"px, ").concat(r,"px, 0)"):"translate(".concat(t,"px, ").concat(r,"px)")}}function u9(e){var t=e.allowEscapeViewBox,r=e.coordinate,n=e.offsetTop,o=e.offsetLeft,a=e.position,i=e.reverseDirection,s=e.tooltipBox,l=e.useTranslate3d,u=e.viewBox,c,d,p;return s&&s.height>0&&s.width>0&&r?(d=l9({allowEscapeViewBox:t,coordinate:r,key:"x",offset:o,position:a,reverseDirection:i,tooltipDimension:s.width,viewBox:u,viewBoxDimension:u.width}),p=l9({allowEscapeViewBox:t,coordinate:r,key:"y",offset:n,position:a,reverseDirection:i,tooltipDimension:s.height,viewBox:u,viewBoxDimension:u.height}),c=bue({translateX:d,translateY:p,useTranslate3d:l})):c=vue,{cssProperties:c,cssClasses:xue({translateX:d,translateY:p,coordinate:r})}}var zS=Z(Q());var wue=()=>!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout),Ri={devToolsEnabled:!0,isSsr:wue()};function Sue(e,t){return Aue(e)||Cue(e,t)||_ue(e,t)||kue()}function kue(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _ue(e,t){if(e){if(typeof e=="string")return c9(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?c9(e,t):void 0}}function c9(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rRi.isSsr||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches),t=Sue(e,2),r=t[0],n=t[1];return(0,zS.useEffect)(()=>{if(window.matchMedia){var o=window.matchMedia("(prefers-reduced-motion: reduce)"),a=()=>{n(o.matches)};return o.addEventListener("change",a),()=>{o.removeEventListener("change",a)}}},[]),r}function d9(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function lg(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r({dismissed:!1,dismissedAtCoordinate:{x:0,y:0}})),u=Oue(l,2),c=u[0],d=u[1];Ac.useEffect(()=>{var g=h=>{if(h.key==="Escape"){var v,x,S,k;d({dismissed:!0,dismissedAtCoordinate:{x:(v=(x=e.coordinate)===null||x===void 0?void 0:x.x)!==null&&v!==void 0?v:0,y:(S=(k=e.coordinate)===null||k===void 0?void 0:k.y)!==null&&S!==void 0?S:0}})}};return document.addEventListener("keydown",g),()=>{document.removeEventListener("keydown",g)}},[(t=e.coordinate)===null||t===void 0?void 0:t.x,(r=e.coordinate)===null||r===void 0?void 0:r.y]),c.dismissed&&(((n=(o=e.coordinate)===null||o===void 0?void 0:o.x)!==null&&n!==void 0?n:0)!==c.dismissedAtCoordinate.x||((a=(i=e.coordinate)===null||i===void 0?void 0:i.y)!==null&&a!==void 0?a:0)!==c.dismissedAtCoordinate.y)&&d(lg(lg({},c),{},{dismissed:!1}));var p=u9({allowEscapeViewBox:e.allowEscapeViewBox,coordinate:e.coordinate,offsetLeft:typeof e.offset=="number"?e.offset:e.offset.x,offsetTop:typeof e.offset=="number"?e.offset:e.offset.y,position:e.position,reverseDirection:e.reverseDirection,tooltipBox:e.lastBoundingBox,useTranslate3d:e.useTranslate3d,viewBox:e.viewBox}),f=p.cssClasses,m=p.cssProperties,y=e.hasPortalFromProps?{}:lg(lg({transition:jue({prefersReducedMotion:s,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},m),{},{pointerEvents:"none",position:"absolute",top:0,left:0}),b=lg(lg({},y),{},{visibility:!c.dismissed&&e.active&&e.hasPayload?"visible":"hidden"},e.wrapperStyle);return Ac.createElement("div",{xmlns:"http://www.w3.org/1999/xhtml",tabIndex:-1,className:f,style:b,ref:e.innerRef},e.children)}var f9=Ac.memo($ue);var FS=()=>{var e;return(e=$e(t=>t.rootProps.accessibilityLayer))!==null&&e!==void 0?e:!0};var A_=Z(Q()),$g=Z(Q());var x9=Z(Q());function eP(){return eP=Object.assign?Object.assign.bind():function(e){for(var t=1;tOt(e.x)&&Ot(e.y),y9=e=>e.base!=null&&US(e.base)&&US(e),Pv=e=>e.x,Mv=e=>e.y,Fue=(e,t)=>{if(typeof e=="function")return e;var r="curve".concat(au(e));if((r==="curveMonotone"||r==="curveBump")&&t){var n=h9["".concat(r).concat(t==="vertical"?"Y":"X")];if(n)return n}return h9[r]||Sc},v9={connectNulls:!1,type:"linear"},Uue=e=>{var t=e.type,r=t===void 0?v9.type:t,n=e.points,o=n===void 0?[]:n,a=e.baseLine,i=e.layout,s=e.connectNulls,l=s===void 0?v9.connectNulls:s,u=Fue(r,i),c=l?o.filter(US):o;if(Array.isArray(a)){var d,p=o.map((g,h)=>g9(g9({},g),{},{base:a[h]}));i==="vertical"?d=$m().y(Mv).x1(Pv).x0(g=>g.base.x):d=$m().x(Pv).y1(Mv).y0(g=>g.base.y);var f=d.defined(y9).curve(u),m=l?p.filter(y9):p;return f(m)}var y;i==="vertical"&&De(a)?y=$m().y(Mv).x1(Pv).x0(a):De(a)?y=$m().x(Pv).y1(Mv).y0(a):y=pv().x(Pv).y(Mv);var b=y.defined(US).curve(u);return b(c)},ul=e=>{var t=e.className,r=e.points,n=e.path,o=e.pathRef,a=Ya();if((!r||!r.length)&&!n)return null;var i={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||a,connectNulls:e.connectNulls},s=r&&r.length?Uue(i):n;return x9.createElement("path",eP({},hn(e),Um(e),{className:bt("recharts-curve",t),d:s===null?void 0:s,ref:o}))};var w9=Z(Q());var Wue=["x","y","top","left","width","height","className"];function tP(){return tP=Object.assign?Object.assign.bind():function(e){for(var t=1;t"M".concat(e,",").concat(o,"v").concat(n,"M").concat(a,",").concat(t,"h").concat(r),S9=e=>{var t=e.x,r=t===void 0?0:t,n=e.y,o=n===void 0?0:n,a=e.top,i=a===void 0?0:a,s=e.left,l=s===void 0?0:s,u=e.width,c=u===void 0?0:u,d=e.height,p=d===void 0?0:d,f=e.className,m=Gue(e,Wue),y=Hue({x:r,y:o,top:i,left:l,width:c,height:p},m);return!De(r)||!De(o)||!De(c)||!De(p)||!De(i)||!De(l)?null:w9.createElement("path",tP({},yn(y),{className:bt("recharts-cross",f),d:Xue(r,o,c,p,i,l)}))};function k9(e,t,r,n){var o=n/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-o:r.left+.5,y:e==="horizontal"?r.top+.5:t.y-o,width:e==="horizontal"?n:r.width-1,height:e==="horizontal"?r.height-1:n}}var GS=Z(Q()),es=Z(Q());var Iv=Z(Q());var WS=1e-4,A9=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],E9=(e,t)=>e.map((r,n)=>r*t**n).reduce((r,n)=>r+n),_9=(e,t)=>r=>{var n=A9(e,t);return E9(n,r)},Zue=(e,t)=>r=>{var n=A9(e,t),o=[...n.map((a,i)=>a*i).slice(1),0];return E9(o,r)},Jue=e=>{var t,r=e.split("(");if(r.length!==2||r[0]!=="cubic-bezier")return null;var n=(t=r[1])===null||t===void 0||(t=t.split(")")[0])===null||t===void 0?void 0:t.split(",");if(n==null||n.length!==4)return null;var o=n.map(a=>parseFloat(a));return[o[0],o[1],o[2],o[3]]},Que=function(){for(var t=arguments.length,r=new Array(t),n=0;n{var o=_9(e,r),a=_9(t,n),i=Zue(e,r),s=u=>u>1?1:u<0?0:u,l=u=>{for(var c=u>1?1:u,d=c,p=0;p<8;++p){var f=o(d)-c,m=i(d);if(Math.abs(f-c)0&&arguments[0]!==void 0?arguments[0]:{},r=t.stiff,n=r===void 0?100:r,o=t.damping,a=o===void 0?8:o,i=t.dt,s=i===void 0?16.67:i,l=1,u=[0],c=0,d=0,p=1e4,f=0;f{var h,v,x;if(g<=0)return 0;if(g>=1)return l;var S=g*b,k=Math.floor(S),w=S-k;return((h=u[k])!==null&&h!==void 0?h:0)+(((v=u[k+1])!==null&&v!==void 0?v:0)-((x=u[k])!==null&&x!==void 0?x:0))*w}},N9=e=>{if(typeof e=="string")switch(e){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return C9(e);case"spring":return ece();default:if(e.split("(")[0]==="cubic-bezier")return C9(e)}return typeof e=="function"?e:null};var ug=Z(Q());var T9=(e,t,r)=>{var n,o=a=>{var i=t.tick(a);if(t.getState()==="active"){if(r(t.getInterpolated()),t.getProgress()===1){t.complete(),n=void 0;return}n=e.setTimeout(o,i);return}n=e.setTimeout(o,i)};return n=e.setTimeout(o,0),()=>{var a;return(a=n)===null||a===void 0?void 0:a()}};var O9=(0,ug.createContext)(T9),LIe=O9.Provider;function P9(e){var t=(0,ug.useContext)(O9);return(0,ug.useMemo)(()=>e??t,[e,t])}function tce(e,t,r){return(t=rce(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function rce(e){var t=nce(e,"string");return typeof t=="symbol"?t:t+""}function nce(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var M9="init",I9="pending",D9="active",oce="completed";function rP(e){return Math.max(0,e)}var nP=class{getAnimationStartedTime(){return this.animationStartedTime}getBeginStartedTime(){return this.beginStartedTime}constructor(t){var r;tce(this,"state",M9),this.animationId=t.animationId,this.onAnimationEnd=t.onAnimationEnd,this.animationDuration=rP(t.animationDuration),this.animationBegin=rP(t.animationBegin),this.progress=0,this.from=t.from,this.to=t.to,this.easing=t.easing,(r=t.onAnimationStart)===null||r===void 0||r.call(t)}getState(){return this.state}getEasing(){return this.easing}getAnimationDuration(){return this.animationDuration}tick(t){if(this.getState()===M9)return this.state=I9,this.beginStartedTime=t,this.animationBegin;if(this.getState()===I9){if(this.beginStartedTime==null)throw new Error;var r=t-this.beginStartedTime;return r>=this.animationBegin?(this.state=D9,this.animationStartedTime=t,this.nextAnimationUpdate(0)):rP(this.animationBegin-r)}if(this.getState()===D9){if(this.animationStartedTime==null)throw new Error;var n=t-this.animationStartedTime;return this.setProgress(n/this.animationDuration),this.nextAnimationUpdate(n)}return 0}setProgress(t){this.progress=Math.min(1,Math.max(0,t))}getProgress(){return this.progress}complete(){if(this.progress=1,this.state==="active"){var t;(t=this.onAnimationEnd)===null||t===void 0||t.call(this)}this.state=oce}getFrom(){return this.from}getTo(){return this.to}getAnimationId(){return this.animationId}getAnimationBegin(){return this.animationBegin}},HS=class extends nP{nextAnimationUpdate(){return 0}getInterpolated(){return this.easing(_r(this.getFrom(),this.getTo(),this.getProgress()))}};var qS=class{setTimeout(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=performance.now(),o=null,a=i=>{i-n>=r?t(i):o=requestAnimationFrame(a)};return o=requestAnimationFrame(a),()=>{o!=null&&cancelAnimationFrame(o)}}};function ace(e,t){return uce(e)||lce(e,t)||sce(e,t)||ice()}function ice(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function sce(e,t){if(e){if(typeof e=="string")return j9(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?j9(e,t):void 0}}function j9(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{},onAnimationStart:()=>{}},$9=0,oP=1;function KS(e){var t=nr(e,cce),r=t.animationId,n=t.isActive,o=t.canBegin,a=t.duration,i=t.easing,s=t.begin,l=t.onAnimationEnd,u=t.onAnimationStart,c=t.children,d=BS(),p=n==="auto"?!Ri.isSsr&&!d:n,f=P9(t.animationController),m=(0,Iv.useState)(p?$9:oP),y=ace(m,2),b=y[0],g=y[1];return(0,Iv.useEffect)(()=>{p||g(oP)},[p]),(0,Iv.useEffect)(()=>{var h=N9(i);if(!p||!o||h==null)return _a;var v=new qS,x=new HS({animationId:r,easing:h,animationDuration:a,animationBegin:s,onAnimationStart:u,onAnimationEnd:l,from:$9,to:oP});return f(v,x,g)},[f,r,p,o,a,i,s,u,l]),c(Number(b))}var aP=Z(Q());function VS(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"animation-",r=(0,aP.useRef)(ou(t)),n=(0,aP.useRef)(e);return n.current!==e&&(r.current=ou(t),n.current=e),r.current}var dce=e=>e.replace(/([A-Z])/g,t=>"-".concat(t.toLowerCase())),L9=(e,t,r)=>e.map(n=>"".concat(dce(n)," ").concat(t,"ms ").concat(r)).join(",");var pce=["radius"],fce=["radius"],z9,B9,F9,U9,W9,H9,q9,K9,V9,G9;function Y9(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function X9(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{var a=Gi(r),i=Gi(n),s=Math.min(Math.abs(a)/2,Math.abs(i)/2),l=i>=0?1:-1,u=a>=0?1:-1,c=i>=0&&a>=0||i<0&&a<0?1:0,d;if(s>0&&Array.isArray(o)){for(var p=[0,0,0,0],f=0,m=4;fs?s:b}d=Co(z9||(z9=cl(["M",",",""])),e,t+l*p[0]),p[0]>0&&(d+=Co(B9||(B9=cl(["A ",",",",0,0,",",",",",""])),p[0],p[0],c,e+u*p[0],t)),d+=Co(F9||(F9=cl(["L ",",",""])),e+r-u*p[1],t),p[1]>0&&(d+=Co(U9||(U9=cl(["A ",",",",0,0,",`, + `,",",""])),p[1],p[1],c,e+r,t+l*p[1])),d+=Co(W9||(W9=cl(["L ",",",""])),e+r,t+n-l*p[2]),p[2]>0&&(d+=Co(H9||(H9=cl(["A ",",",",0,0,",`, + `,",",""])),p[2],p[2],c,e+r-u*p[2],t+n)),d+=Co(q9||(q9=cl(["L ",",",""])),e+u*p[3],t+n),p[3]>0&&(d+=Co(K9||(K9=cl(["A ",",",",0,0,",`, + `,",",""])),p[3],p[3],c,e,t+n-l*p[3])),d+="Z"}else if(s>0&&o===+o&&o>0){var g=Math.min(s,o);d=Co(V9||(V9=cl(["M ",",",` A `,",",",0,0,",",",",",` L `,",",` A `,",",",0,0,",",",",",` L `,",",` A `,",",",0,0,",",",",",` L `,",",` - A `,",",",0,0,",",",","," Z"])),e,t+l*g,g,g,c,e+u*g,t,e+r-u*g,t,g,g,c,e+r,t+l*g,e+r,t+n-l*g,g,g,c,e+r-u*g,t+n,e+u*g,t+n,g,g,c,e,t+n-l*g)}else d=Co(z9||(z9=cl(["M ",","," h "," v "," h "," Z"])),e,t,r,n,-r);return d},q9={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},YS=e=>{var t=nr(e,q9),r=(0,Ri.useRef)(null),n=(0,Ri.useState)(-1),o=lce(n,2),a=o[0],i=o[1];(0,Ri.useEffect)(()=>{if(r.current&&r.current.getTotalLength)try{var P=r.current.getTotalLength();P&&i(P)}catch{}},[]);var s=t.x,l=t.y,u=t.width,c=t.height,d=t.radius,p=t.className,f=t.animationEasing,m=t.animationDuration,y=t.animationBegin,b=t.isAnimationActive,g=t.isUpdateAnimationActive,h=(0,Ri.useRef)(u),v=(0,Ri.useRef)(c),x=(0,Ri.useRef)(s),S=(0,Ri.useRef)(l),k=(0,Ri.useMemo)(()=>({x:s,y:l,width:u,height:c,radius:d}),[s,l,u,c,d]),w=KS(k,"rectangle-");if(s!==+s||l!==+l||u!==+u||c!==+c||u===0||c===0)return null;var _=bt("recharts-rectangle",p);if(!g){var A=yn(t),C=A.radius,N=U9(A,rce);return VS.createElement("path",GS({},N,{x:Vi(s),y:Vi(l),width:Vi(u),height:Vi(c),radius:typeof d=="number"?d:void 0,className:_,d:H9(s,l,u,c,d)}))}var L=h.current,Q=v.current,B=x.current,K=S.current,T="0px ".concat(a===-1?1:a,"px"),O="".concat(a,"px ").concat(a,"px"),I=N9(["strokeDasharray"],m,typeof f=="string"?f:q9.animationEasing);return VS.createElement(qS,{animationId:w,key:w,canBegin:a>0,duration:m,easing:f,isActive:g,begin:y},P=>{var j=_r(L,u,P),M=_r(Q,c,P),W=_r(B,s,P),Y=_r(K,l,P);r.current&&(h.current=j,v.current=M,x.current=W,S.current=Y);var z;b?P>0?z={transition:I,strokeDasharray:O}:z={strokeDasharray:T}:z={strokeDasharray:O};var V=yn(t),q=V.radius,oe=U9(V,nce);return VS.createElement("path",GS({},oe,{radius:typeof d=="number"?d:void 0,className:_,d:H9(W,Y,j,M,d),ref:r,style:F9(F9({},z),t.style)}))})};function K9(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function V9(e){for(var t=1;te*180/Math.PI,an=(e,t,r,n)=>({x:e+Math.cos(-Dv*n)*r,y:t+Math.sin(-Dv*n)*r}),XS=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0,width:0,height:0,brushBottom:0};return Math.min(Math.abs(t-(n.left||0)-(n.right||0)),Math.abs(r-(n.top||0)-(n.bottom||0)))/2},yce=(e,t)=>{var r=e.x,n=e.y,o=t.x,a=t.y;return Math.sqrt((r-o)**2+(n-a)**2)},vce=(e,t)=>{var r=e.x,n=e.y,o=t.cx,a=t.cy,i=yce({x:r,y:n},{x:o,y:a});if(i<=0)return{radius:i,angle:0};var s=(r-o)/i,l=Math.acos(s);return n>a&&(l=2*Math.PI-l),{radius:i,angle:hce(l),angleInRadian:l}},xce=e=>{var t=e.startAngle,r=e.endAngle,n=Math.floor(t/360),o=Math.floor(r/360),a=Math.min(n,o);return{startAngle:t-a*360,endAngle:r-a*360}},bce=(e,t)=>{var r=t.startAngle,n=t.endAngle,o=Math.floor(r/360),a=Math.floor(n/360),i=Math.min(o,a);return e+i*360},G9=(e,t)=>{var r=e.relativeX,n=e.relativeY,o=vce({x:r,y:n},t),a=o.radius,i=o.angle,s=t.innerRadius,l=t.outerRadius;if(al||a===0)return null;var u=xce(t),c=u.startAngle,d=u.endAngle,p=i,f;if(c<=d){for(;p>d;)p-=360;for(;p=c&&p<=d}else{for(;p>c;)p-=360;for(;p=d&&p<=c}return f?V9(V9({},t),{},{radius:a,angle:bce(p,t)}):null};function ZS(e){var t=e.cx,r=e.cy,n=e.radius,o=e.startAngle,a=e.endAngle,i=an(t,r,n,o),s=an(t,r,n,a);return{points:[i,s],cx:t,cy:r,radius:n,startAngle:o,endAngle:a}}var tF=Z(J());var Y9,X9,Z9,J9,Q9,R9,eF;function oP(){return oP=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=Qr(t-e),n=Math.min(Math.abs(t-e),359.999);return r*n},JS=e=>{var t=e.cx,r=e.cy,n=e.radius,o=e.angle,a=e.sign,i=e.isExternal,s=e.cornerRadius,l=e.cornerIsExternal,u=s*(i?1:-1)+n,c=Math.asin(s/u)/Dv,d=l?o:o+a*c,p=an(t,r,u,d),f=an(t,r,n,d),m=l?o-a*c:o,y=an(t,r,u*Math.cos(c*Dv),m);return{center:p,circleTangency:f,lineTangency:y,theta:c}},rF=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,o=e.outerRadius,a=e.startAngle,i=e.endAngle,s=wce(a,i),l=a+s,u=an(t,r,o,a),c=an(t,r,o,l),d=Co(Y9||(Y9=sp(["M ",",",` + A `,",",",0,0,",",",","," Z"])),e,t+l*g,g,g,c,e+u*g,t,e+r-u*g,t,g,g,c,e+r,t+l*g,e+r,t+n-l*g,g,g,c,e+r-u*g,t+n,e+u*g,t+n,g,g,c,e,t+n-l*g)}else d=Co(G9||(G9=cl(["M ",","," h "," v "," h "," Z"])),e,t,r,n,-r);return d},R9={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},XS=e=>{var t=nr(e,R9),r=(0,es.useRef)(null),n=(0,es.useState)(-1),o=vce(n,2),a=o[0],i=o[1];(0,es.useEffect)(()=>{if(r.current&&r.current.getTotalLength)try{var M=r.current.getTotalLength();M&&i(M)}catch{}},[]);var s=t.x,l=t.y,u=t.width,c=t.height,d=t.radius,p=t.className,f=t.animationEasing,m=t.animationDuration,y=t.animationBegin,b=t.isAnimationActive,g=t.isUpdateAnimationActive,h=(0,es.useRef)(u),v=(0,es.useRef)(c),x=(0,es.useRef)(s),S=(0,es.useRef)(l),k=(0,es.useMemo)(()=>({x:s,y:l,width:u,height:c,radius:d}),[s,l,u,c,d]),w=VS(k,"rectangle-");if(s!==+s||l!==+l||u!==+u||c!==+c||u===0||c===0)return null;var _=bt("recharts-rectangle",p);if(!g){var A=yn(t),C=A.radius,N=Z9(A,pce);return GS.createElement("path",YS({},N,{x:Gi(s),y:Gi(l),width:Gi(u),height:Gi(c),radius:typeof d=="number"?d:void 0,className:_,d:Q9(s,l,u,c,d)}))}var L=h.current,J=v.current,B=x.current,K=S.current,T="0px ".concat(a===-1?1:a,"px"),P="".concat(a,"px ").concat(a,"px"),I=L9(["strokeDasharray"],m,typeof f=="string"?f:R9.animationEasing);return GS.createElement(KS,{animationId:w,key:w,canBegin:a>0,duration:m,easing:f,isActive:g,begin:y},M=>{var j=_r(L,u,M),O=_r(J,c,M),F=_r(B,s,M),V=_r(K,l,M);r.current&&(h.current=j,v.current=O,x.current=F,S.current=V);var z;b?M>0?z={transition:I,strokeDasharray:P}:z={strokeDasharray:T}:z={strokeDasharray:P};var G=yn(t),q=G.radius,oe=Z9(G,fce);return GS.createElement("path",YS({},oe,{radius:typeof d=="number"?d:void 0,className:_,d:Q9(F,V,j,O,d),ref:r,style:X9(X9({},z),t.style)}))})};function eF(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function tF(e){for(var t=1;te*180/Math.PI,an=(e,t,r,n)=>({x:e+Math.cos(-Dv*n)*r,y:t+Math.sin(-Dv*n)*r}),ZS=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0,width:0,height:0,brushBottom:0};return Math.min(Math.abs(t-(n.left||0)-(n.right||0)),Math.abs(r-(n.top||0)-(n.bottom||0)))/2},Ece=(e,t)=>{var r=e.x,n=e.y,o=t.x,a=t.y;return Math.sqrt((r-o)**2+(n-a)**2)},Nce=(e,t)=>{var r=e.x,n=e.y,o=t.cx,a=t.cy,i=Ece({x:r,y:n},{x:o,y:a});if(i<=0)return{radius:i,angle:0};var s=(r-o)/i,l=Math.acos(s);return n>a&&(l=2*Math.PI-l),{radius:i,angle:Ace(l),angleInRadian:l}},Tce=e=>{var t=e.startAngle,r=e.endAngle,n=Math.floor(t/360),o=Math.floor(r/360),a=Math.min(n,o);return{startAngle:t-a*360,endAngle:r-a*360}},Oce=(e,t)=>{var r=t.startAngle,n=t.endAngle,o=Math.floor(r/360),a=Math.floor(n/360),i=Math.min(o,a);return e+i*360},rF=(e,t)=>{var r=e.relativeX,n=e.relativeY,o=Nce({x:r,y:n},t),a=o.radius,i=o.angle,s=t.innerRadius,l=t.outerRadius;if(al||a===0)return null;var u=Tce(t),c=u.startAngle,d=u.endAngle,p=i,f;if(c<=d){for(;p>d;)p-=360;for(;p=c&&p<=d}else{for(;p>c;)p-=360;for(;p=d&&p<=c}return f?tF(tF({},t),{},{radius:a,angle:Oce(p,t)}):null};function JS(e){var t=e.cx,r=e.cy,n=e.radius,o=e.startAngle,a=e.endAngle,i=an(t,r,n,o),s=an(t,r,n,a);return{points:[i,s],cx:t,cy:r,radius:n,startAngle:o,endAngle:a}}var cF=Z(Q());var nF,oF,aF,iF,sF,lF,uF;function iP(){return iP=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=Qr(t-e),n=Math.min(Math.abs(t-e),359.999);return r*n},QS=e=>{var t=e.cx,r=e.cy,n=e.radius,o=e.angle,a=e.sign,i=e.isExternal,s=e.cornerRadius,l=e.cornerIsExternal,u=s*(i?1:-1)+n,c=Math.asin(s/u)/Dv,d=l?o:o+a*c,p=an(t,r,u,d),f=an(t,r,n,d),m=l?o-a*c:o,y=an(t,r,u*Math.cos(c*Dv),m);return{center:p,circleTangency:f,lineTangency:y,theta:c}},dF=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,o=e.outerRadius,a=e.startAngle,i=e.endAngle,s=Pce(a,i),l=a+s,u=an(t,r,o,a),c=an(t,r,o,l),d=Co(nF||(nF=sp(["M ",",",` A `,",",`,0, `,",",`, `,",",` - `])),u.x,u.y,o,o,+(Math.abs(s)>180),+(a>l),c.x,c.y);if(n>0){var p=an(t,r,n,a),f=an(t,r,n,l);d+=Co(X9||(X9=sp(["L ",",",` + `])),u.x,u.y,o,o,+(Math.abs(s)>180),+(a>l),c.x,c.y);if(n>0){var p=an(t,r,n,a),f=an(t,r,n,l);d+=Co(oF||(oF=sp(["L ",",",` A `,",",`,0, `,",",`, - `,","," Z"])),f.x,f.y,n,n,+(Math.abs(s)>180),+(a<=l),p.x,p.y)}else d+=Co(Z9||(Z9=sp(["L ",","," Z"])),t,r);return d},Sce=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,o=e.outerRadius,a=e.cornerRadius,i=e.forceCornerRadius,s=e.cornerIsExternal,l=e.startAngle,u=e.endAngle,c=Qr(u-l),d=JS({cx:t,cy:r,radius:o,angle:l,sign:c,cornerRadius:a,cornerIsExternal:s}),p=d.circleTangency,f=d.lineTangency,m=d.theta,y=JS({cx:t,cy:r,radius:o,angle:u,sign:-c,cornerRadius:a,cornerIsExternal:s}),b=y.circleTangency,g=y.lineTangency,h=y.theta,v=s?Math.abs(l-u):Math.abs(l-u)-m-h;if(v<0)return i?Co(J9||(J9=sp(["M ",",",` + `,","," Z"])),f.x,f.y,n,n,+(Math.abs(s)>180),+(a<=l),p.x,p.y)}else d+=Co(aF||(aF=sp(["L ",","," Z"])),t,r);return d},Mce=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,o=e.outerRadius,a=e.cornerRadius,i=e.forceCornerRadius,s=e.cornerIsExternal,l=e.startAngle,u=e.endAngle,c=Qr(u-l),d=QS({cx:t,cy:r,radius:o,angle:l,sign:c,cornerRadius:a,cornerIsExternal:s}),p=d.circleTangency,f=d.lineTangency,m=d.theta,y=QS({cx:t,cy:r,radius:o,angle:u,sign:-c,cornerRadius:a,cornerIsExternal:s}),b=y.circleTangency,g=y.lineTangency,h=y.theta,v=s?Math.abs(l-u):Math.abs(l-u)-m-h;if(v<0)return i?Co(iF||(iF=sp(["M ",",",` a`,",",",0,0,1,",`,0 a`,",",",0,0,1,",`,0 - `])),f.x,f.y,a,a,a*2,a,a,-a*2):rF({cx:t,cy:r,innerRadius:n,outerRadius:o,startAngle:l,endAngle:u});var x=Co(Q9||(Q9=sp(["M ",",",` + `])),f.x,f.y,a,a,a*2,a,a,-a*2):dF({cx:t,cy:r,innerRadius:n,outerRadius:o,startAngle:l,endAngle:u});var x=Co(sF||(sF=sp(["M ",",",` A`,",",",0,0,",",",",",` A`,",",",0,",",",",",",",` A`,",",",0,0,",",",",",` - `])),f.x,f.y,a,a,+(c<0),p.x,p.y,o,o,+(v>180),+(c<0),b.x,b.y,a,a,+(c<0),g.x,g.y);if(n>0){var S=JS({cx:t,cy:r,radius:n,angle:l,sign:c,isExternal:!0,cornerRadius:a,cornerIsExternal:s}),k=S.circleTangency,w=S.lineTangency,_=S.theta,A=JS({cx:t,cy:r,radius:n,angle:u,sign:-c,isExternal:!0,cornerRadius:a,cornerIsExternal:s}),C=A.circleTangency,N=A.lineTangency,L=A.theta,Q=s?Math.abs(l-u):Math.abs(l-u)-_-L;if(Q<0&&a===0)return"".concat(x,"L").concat(t,",").concat(r,"Z");x+=Co(R9||(R9=sp(["L",",",` + `])),f.x,f.y,a,a,+(c<0),p.x,p.y,o,o,+(v>180),+(c<0),b.x,b.y,a,a,+(c<0),g.x,g.y);if(n>0){var S=QS({cx:t,cy:r,radius:n,angle:l,sign:c,isExternal:!0,cornerRadius:a,cornerIsExternal:s}),k=S.circleTangency,w=S.lineTangency,_=S.theta,A=QS({cx:t,cy:r,radius:n,angle:u,sign:-c,isExternal:!0,cornerRadius:a,cornerIsExternal:s}),C=A.circleTangency,N=A.lineTangency,L=A.theta,J=s?Math.abs(l-u):Math.abs(l-u)-_-L;if(J<0&&a===0)return"".concat(x,"L").concat(t,",").concat(r,"Z");x+=Co(lF||(lF=sp(["L",",",` A`,",",",0,0,",",",",",` A`,",",",0,",",",",",",",` - A`,",",",0,0,",",",",","Z"])),N.x,N.y,a,a,+(c<0),C.x,C.y,n,n,+(Q>180),+(c>0),k.x,k.y,a,a,+(c<0),w.x,w.y)}else x+=Co(eF||(eF=sp(["L",",","Z"])),t,r);return x},kce={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},QS=e=>{var t=nr(e,kce),r=t.cx,n=t.cy,o=t.innerRadius,a=t.outerRadius,i=t.cornerRadius,s=t.forceCornerRadius,l=t.cornerIsExternal,u=t.startAngle,c=t.endAngle,d=t.className;if(a0&&Math.abs(u-c)<360?y=Sce({cx:r,cy:n,innerRadius:o,outerRadius:a,cornerRadius:Math.min(m,f/2),forceCornerRadius:s,cornerIsExternal:l,startAngle:u,endAngle:c}):y=rF({cx:r,cy:n,innerRadius:o,outerRadius:a,startAngle:u,endAngle:c}),tF.createElement("path",oP({},yn(t),{className:p,d:y}))};function nF(e,t,r){if(e==="horizontal")return[{x:t.x,y:r.top},{x:t.x,y:r.top+r.height}];if(e==="vertical")return[{x:r.left,y:t.y},{x:r.left+r.width,y:t.y}];if(bw(t)){if(e==="centric"){var n=t.cx,o=t.cy,a=t.innerRadius,i=t.outerRadius,s=t.angle,l=an(n,o,a,s),u=an(n,o,i,s);return[{x:l.x,y:l.y},{x:u.x,y:u.y}]}return ZS(t)}}function oF(e){return Zw(e)?NaN:Number(e)}function RS(e){return e?(e=oF(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function ek(e,t,r){r&&typeof r!="number"&&vv(e,t,r)&&(t=r=void 0),e=RS(e),t===void 0?(t=e,e=0):t=RS(t),r=r===void 0?ee.chartData,lp=ae([Ya],e=>{var t=e.chartData!=null?e.chartData.length-1:0;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),up=(e,t,r,n)=>n?lp(e):Ya(e),tk=(e,t,r)=>r?lp(e):Ya(e),aF=ae([up],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]}),iF=ae([lp],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]}),sF=ae([Ya],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]});function aP(e,t){return Ece(e)||Ace(e,t)||Cce(e,t)||_ce()}function _ce(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Cce(e,t){if(e){if(typeof e=="string")return lF(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?lF(e,t):void 0}}function lF(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=jv(e,2),r=t[0],n=t[1],o=r,a=n;return r>n&&(o=n,a=r),[o,a]},cP=(e,t,r)=>{if(e.lte(0))return new wr.default(0);var n=lP(e.toNumber()),o=new wr.default(10).pow(n),a=e.div(o),i=n!==1?.05:.1,s=new wr.default(Math.ceil(a.div(i).toNumber())).add(r).mul(i),l=s.mul(o);return t?new wr.default(l.toNumber()):new wr.default(Math.ceil(l.toNumber()))},mF=(e,t,r)=>{var n;if(e.lte(0))return new wr.default(0);var o=[1,2,2.5,5],a=e.toNumber(),i=Math.floor(new wr.default(a).abs().log(10).toNumber()),s=new wr.default(10).pow(i),l=e.div(s).toNumber(),u=o.findIndex(f=>f>=l-1e-10);if(u===-1&&(s=s.mul(10),u=0),u+=r,u>=o.length){var c=Math.floor(u/o.length);u%=o.length,s=s.mul(new wr.default(10).pow(c))}var d=(n=o[u])!==null&&n!==void 0?n:1,p=new wr.default(d).mul(s);return t?p:new wr.default(Math.ceil(p.toNumber()))},Mce=(e,t,r)=>{var n=new wr.default(1),o=new wr.default(e);if(!o.isint()&&r){var a=Math.abs(e);a<1?(n=new wr.default(10).pow(lP(e)-1),o=new wr.default(Math.floor(o.div(n).toNumber())).mul(n)):a>1&&(o=new wr.default(Math.floor(e)))}else e===0?o=new wr.default(Math.floor((t-1)/2)):r||(o=new wr.default(Math.floor(e)));for(var i=Math.floor((t-1)/2),s=[],l=0;l4&&arguments[4]!==void 0?arguments[4]:0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:cP;if(!Number.isFinite((r-t)/(n-1)))return{step:new wr.default(0),tickMin:new wr.default(0),tickMax:new wr.default(0)};var s=i(new wr.default(r).sub(t).div(n-1),o,a),l;t<=0&&r>=0?l=new wr.default(0):(l=new wr.default(t).add(r).div(2),l=l.sub(new wr.default(l).mod(s)));var u=Math.ceil(l.sub(t).div(s).toNumber()),c=Math.ceil(new wr.default(r).sub(l).div(s).toNumber()),d=u+c+1;return d>n?gF(t,r,n,o,a+1,i):(d0?c+(n-d):c,u=r>0?u:u+(n-d)),{step:s,tickMin:l.sub(new wr.default(u).mul(s)),tickMax:l.add(new wr.default(c).mul(s))})};var ok=function(t){var r=jv(t,2),n=r[0],o=r[1],a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",l=Math.max(a,2),u=fF([n,o]),c=jv(u,2),d=c[0],p=c[1];if(d===-1/0||p===1/0){var f=p===1/0?[d,...Array(a-1).fill(1/0)]:[...Array(a-1).fill(-1/0),p];return n>o?f.reverse():f}if(d===p)return Mce(d,a,i);var m=s==="snap125"?mF:cP,y=gF(d,p,l,i,0,m),b=y.step,g=y.tickMin,h=y.tickMax,v=uP(g,h.add(new wr.default(.1).mul(b)),b);return n>o?v.reverse():v},ak=function(t,r){var n=jv(t,2),o=n[0],a=n[1],i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",l=fF([o,a]),u=jv(l,2),c=u[0],d=u[1];if(c===-1/0||d===1/0)return[o,a];if(c===d)return[c];var p=s==="snap125"?mF:cP,f=Math.max(r,2),m=p(new wr.default(d).sub(c).div(f-1),i,0),y=[...uP(new wr.default(c),new wr.default(d),m),d];if(i===!1){y=y.map(g=>Math.round(g));var b=y.length-1;b>0&&y[b]===y[b-1]&&(y=y.slice(0,b))}return o>a?y.reverse():y};var dP=e=>e.rootProps.maxBarSize,hF=e=>e.rootProps.barGap,ik=e=>e.rootProps.barCategoryGap,yF=e=>e.rootProps.barSize,Ec=e=>e.rootProps.stackOffset,sk=e=>e.rootProps.reverseStackOrder,cg=e=>e.options.chartName,lk=e=>e.rootProps.syncId,pP=e=>e.rootProps.syncMethod,uk=e=>e.options.eventEmitter,vF=e=>e.rootProps.baseValue;var ir={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3};var Nc={allowDecimals:!1,allowDuplicatedCategory:!0,allowDataOverflow:!1,angle:0,angleAxisId:0,axisLine:!0,axisLineType:"polygon",cx:0,cy:0,hide:!1,includeHidden:!1,label:!1,niceTicks:"auto",orientation:"outer",reversed:!1,scale:"auto",tick:!0,tickLine:!0,tickSize:8,type:"auto",zIndex:ir.axis};var Is={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!0,angle:0,axisLine:!0,includeHidden:!1,hide:!1,niceTicks:"auto",label:!1,orientation:"right",radiusAxisId:0,reversed:!1,scale:"auto",stroke:"#ccc",tick:!0,tickCount:5,tickLine:!0,type:"auto",zIndex:ir.axis};var cp=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function dp(e,t,r){if(r!=="auto")return r;if(e!=null)return sa(e,t)?"category":"number"}function xF(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function ck(e){for(var t=1;t{if(t!=null)return e.polarAxis.angleAxis[t]},dk=ae([$ce,DS],(e,t)=>{var r;if(e!=null)return e;var n=(r=dp(t,"angleAxis",bF.type))!==null&&r!==void 0?r:"category";return ck(ck({},bF),{},{type:n})}),Lce=(e,t)=>e.polarAxis.radiusAxis[t],pk=ae([Lce,DS],(e,t)=>{var r;if(e!=null)return e;var n=(r=dp(t,"radiusAxis",wF.type))!==null&&r!==void 0?r:"category";return ck(ck({},wF),{},{type:n})}),fk=e=>e.polarOptions,fP=ae([qo,Ko,Fr],XS),SF=ae([fk,fP],(e,t)=>{if(e!=null)return $n(e.innerRadius,t,0)}),kF=ae([fk,fP],(e,t)=>{if(e!=null)return $n(e.outerRadius,t,t*.8)}),zce=e=>{if(e==null)return[0,0];var t=e.startAngle,r=e.endAngle;return[t,r]},mP=ae([fk],zce),ZDe=ae([dk,mP],cp),gP=ae([fP,SF,kF],(e,t,r)=>{if(!(e==null||t==null||r==null))return[t,r]}),JDe=ae([pk,gP],cp),mk=ae([Bt,fk,SF,kF,qo,Ko],(e,t,r,n,o,a)=>{if(!(e!=="centric"&&e!=="radial"||t==null||r==null||n==null)){var i=t.cx,s=t.cy,l=t.startAngle,u=t.endAngle;return{cx:$n(i,o,o/2),cy:$n(s,a,a/2),innerRadius:r,outerRadius:n,startAngle:l,endAngle:u,clockWise:!1}}});var vn=(e,t)=>t;var pp=(e,t,r)=>r;function Tc(e){return e?.id}function gk(e,t,r){var n=t.chartData,o=n===void 0?[]:n,a=r.allowDuplicatedCategory,i=r.dataKey,s=new Map;return e.forEach(l=>{var u,c=(u=l.data)!==null&&u!==void 0?u:o;if(!(c==null||c.length===0)){var d=Tc(l);c.forEach((p,f)=>{var m=i==null||a?f:String(Ht(p,i,null)),y=Ht(p,l.dataKey,0),b;s.has(m)?b=s.get(m):b={},Object.assign(b,{[d]:y}),s.set(m,b)})}}),Array.from(s.values())}function fp(e){return"stackId"in e&&e.stackId!=null&&e.dataKey!=null}var mp=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function dg(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function _F(e,t){if(e.length===t.length){for(var r=0;r{var t=Bt(e);return t==="horizontal"?"xAxis":t==="vertical"?"yAxis":t==="centric"?"angleAxis":"radiusAxis"};var Oc=e=>e.tooltip.settings.axisId;function $v(e){if(e!=null){var t=e.ticks,r=e.bandwidth,n=e.range(),o=[Math.min(...n),Math.max(...n)];return{domain:()=>e.domain(),range:(function(a){function i(){return a.apply(this,arguments)}return i.toString=function(){return a.toString()},i})(()=>o),rangeMin:()=>o[0],rangeMax:()=>o[1],isInRange(a){var i=o[0],s=o[1];return i<=s?a>=i&&a<=s:a>=s&&a<=i},bandwidth:r?()=>r.call(e):void 0,ticks:t?a=>t.call(e,a):void 0,map:(a,i)=>{var s=e(a);if(s!=null){if(e.bandwidth&&i!==null&&i!==void 0&&i.position){var l=e.bandwidth();switch(i.position){case"middle":s+=l/2;break;case"end":s+=l;break;default:break}}return s}}}}}var hk=(e,t)=>{if(t!=null)switch(e){case"linear":{if(!wi(t)){for(var r,n,o=0;on)&&(n=a))}return r!==void 0&&n!==void 0?[r,n]:void 0}return t}default:return t}};var nx={};_te(nx,{scaleBand:()=>Fv,scaleDiverging:()=>Jk,scaleDivergingLog:()=>YP,scaleDivergingPow:()=>Qk,scaleDivergingSqrt:()=>VU,scaleDivergingSymlog:()=>XP,scaleIdentity:()=>jk,scaleImplicit:()=>kk,scaleLinear:()=>Dk,scaleLog:()=>$k,scaleOrdinal:()=>mg,scalePoint:()=>PF,scalePow:()=>Jv,scaleQuantile:()=>Bk,scaleQuantize:()=>Fk,scaleRadial:()=>zk,scaleSequential:()=>Gk,scaleSequentialLog:()=>VP,scaleSequentialPow:()=>Yk,scaleSequentialQuantile:()=>Xk,scaleSequentialSqrt:()=>KU,scaleSequentialSymlog:()=>GP,scaleSqrt:()=>fU,scaleSymlog:()=>Lk,scaleThreshold:()=>Uk,scaleTime:()=>qP,scaleUtc:()=>KP,tickFormat:()=>Vv});function Ca(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function hP(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function gp(e){let t,r,n;e.length!==2?(t=Ca,r=(s,l)=>Ca(e(s),l),n=(s,l)=>e(s)-l):(t=e===Ca||e===hP?e:Bce,r=e,n=e);function o(s,l,u=0,c=s.length){if(u>>1;r(s[d],l)<0?u=d+1:c=d}while(u>>1;r(s[d],l)<=0?u=d+1:c=d}while(uu&&n(s[d-1],l)>-n(s[d],l)?d-1:d}return{left:o,center:i,right:a}}function Bce(){return 0}function Lv(e){return e===null?NaN:+e}function*CF(e,t){if(t===void 0)for(let r of e)r!=null&&(r=+r)>=r&&(yield r);else{let r=-1;for(let n of e)(n=t(n,++r,e))!=null&&(n=+n)>=n&&(yield n)}}var AF=gp(Ca),EF=AF.right,Fce=AF.left,Uce=gp(Lv).center,Ds=EF;var pg=class extends Map{constructor(t,r=qce){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(let[n,o]of t)this.set(n,o)}get(t){return super.get(NF(this,t))}has(t){return super.has(NF(this,t))}set(t,r){return super.set(Wce(this,t),r)}delete(t){return super.delete(Hce(this,t))}};function NF({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):r}function Wce({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function Hce({_intern:e,_key:t},r){let n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function qce(e){return e!==null&&typeof e=="object"?e.valueOf():e}function TF(e=Ca){if(e===Ca)return yP;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,r)=>{let n=e(t,r);return n||n===0?n:(e(r,r)===0)-(e(t,t)===0)}}function yP(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}var Kce=Math.sqrt(50),Vce=Math.sqrt(10),Gce=Math.sqrt(2);function yk(e,t,r){let n=(t-e)/Math.max(0,r),o=Math.floor(Math.log10(n)),a=n/Math.pow(10,o),i=a>=Kce?10:a>=Vce?5:a>=Gce?2:1,s,l,u;return o<0?(u=Math.pow(10,-o)/i,s=Math.round(e*u),l=Math.round(t*u),s/ut&&--l,u=-u):(u=Math.pow(10,o)*i,s=Math.round(e/u),l=Math.round(t/u),s*ut&&--l),l0))return[];if(e===t)return[e];let n=t=o))return[];let s=a-o+1,l=new Array(s);if(n)if(i<0)for(let u=0;u=n)&&(r=n);else{let n=-1;for(let o of e)(o=t(o,++n,e))!=null&&(r=o)&&(r=o)}return r}function xk(e,t){let r;if(t===void 0)for(let n of e)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let o of e)(o=t(o,++n,e))!=null&&(r>o||r===void 0&&o>=o)&&(r=o)}return r}function bk(e,t,r=0,n=1/0,o){if(t=Math.floor(t),r=Math.floor(Math.max(0,r)),n=Math.floor(Math.min(e.length-1,n)),!(r<=t&&t<=n))return e;for(o=o===void 0?yP:TF(o);n>r;){if(n-r>600){let l=n-r+1,u=t-r+1,c=Math.log(l),d=.5*Math.exp(2*c/3),p=.5*Math.sqrt(c*d*(l-d)/l)*(u-l/2<0?-1:1),f=Math.max(r,Math.floor(t-u*d/l+p)),m=Math.min(n,Math.floor(t+(l-u)*d/l+p));bk(e,t,f,m,o)}let a=e[t],i=r,s=n;for(Bv(e,r,t),o(e[n],a)>0&&Bv(e,r,n);i0;)--s}o(e[r],a)===0?Bv(e,r,s):(++s,Bv(e,s,n)),s<=t&&(r=s+1),t<=s&&(n=s-1)}return e}function Bv(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}function wk(e,t,r){if(e=Float64Array.from(CF(e,r)),!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return xk(e);if(t>=1)return vk(e);var n,o=(n-1)*t,a=Math.floor(o),i=vk(bk(e,a).subarray(0,a+1)),s=xk(e.subarray(a+1));return i+(s-i)*(o-a)}}function vP(e,t,r=Lv){if(!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return+r(e[0],0,e);if(t>=1)return+r(e[n-1],n-1,e);var n,o=(n-1)*t,a=Math.floor(o),i=+r(e[a],a,e),s=+r(e[a+1],a+1,e);return i+(s-i)*(o-a)}}function Sk(e,t,r){e=+e,t=+t,r=(o=arguments.length)<2?(t=e,e=0,1):o<3?1:+r;for(var n=-1,o=Math.max(0,Math.ceil((t-e)/r))|0,a=new Array(o);++n>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?Ck(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?Ck(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Xce.exec(e))?new Xa(t[1],t[2],t[3],1):(t=Zce.exec(e))?new Xa(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Jce.exec(e))?Ck(t[1],t[2],t[3],t[4]):(t=Qce.exec(e))?Ck(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Rce.exec(e))?zF(t[1],t[2]/100,t[3]/100,1):(t=ede.exec(e))?zF(t[1],t[2]/100,t[3]/100,t[4]):MF.hasOwnProperty(e)?jF(MF[e]):e==="transparent"?new Xa(NaN,NaN,NaN,0):null}function jF(e){return new Xa(e>>16&255,e>>8&255,e&255,1)}function Ck(e,t,r,n){return n<=0&&(e=t=r=NaN),new Xa(e,t,r,n)}function nde(e){return e instanceof Hv||(e=Pc(e)),e?(e=e.rgb(),new Xa(e.r,e.g,e.b,e.opacity)):new Xa}function hg(e,t,r,n){return arguments.length===1?nde(e):new Xa(e,t,r,n??1)}function Xa(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}_k(Xa,hg,xP(Hv,{brighter(e){return e=e==null?Ek:Math.pow(Ek,e),new Xa(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Uv:Math.pow(Uv,e),new Xa(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Xa(vp(this.r),vp(this.g),vp(this.b),Nk(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:$F,formatHex:$F,formatHex8:ode,formatRgb:LF,toString:LF}));function $F(){return`#${yp(this.r)}${yp(this.g)}${yp(this.b)}`}function ode(){return`#${yp(this.r)}${yp(this.g)}${yp(this.b)}${yp((isNaN(this.opacity)?1:this.opacity)*255)}`}function LF(){let e=Nk(this.opacity);return`${e===1?"rgb(":"rgba("}${vp(this.r)}, ${vp(this.g)}, ${vp(this.b)}${e===1?")":`, ${e})`}`}function Nk(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function vp(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function yp(e){return e=vp(e),(e<16?"0":"")+e.toString(16)}function zF(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new js(e,t,r,n)}function FF(e){if(e instanceof js)return new js(e.h,e.s,e.l,e.opacity);if(e instanceof Hv||(e=Pc(e)),!e)return new js;if(e instanceof js)return e;e=e.rgb();var t=e.r/255,r=e.g/255,n=e.b/255,o=Math.min(t,r,n),a=Math.max(t,r,n),i=NaN,s=a-o,l=(a+o)/2;return s?(t===a?i=(r-n)/s+(r0&&l<1?0:i,new js(i,s,l,e.opacity)}function UF(e,t,r,n){return arguments.length===1?FF(e):new js(e,t,r,n??1)}function js(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}_k(js,UF,xP(Hv,{brighter(e){return e=e==null?Ek:Math.pow(Ek,e),new js(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Uv:Math.pow(Uv,e),new js(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,o=2*r-n;return new Xa(bP(e>=240?e-240:e+120,o,n),bP(e,o,n),bP(e<120?e+240:e-120,o,n),this.opacity)},clamp(){return new js(BF(this.h),Ak(this.s),Ak(this.l),Nk(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=Nk(this.opacity);return`${e===1?"hsl(":"hsla("}${BF(this.h)}, ${Ak(this.s)*100}%, ${Ak(this.l)*100}%${e===1?")":`, ${e})`}`}}));function BF(e){return e=(e||0)%360,e<0?e+360:e}function Ak(e){return Math.max(0,Math.min(1,e||0))}function bP(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}function wP(e,t,r,n,o){var a=e*e,i=a*e;return((1-3*e+3*a-i)*t+(4-6*a+3*i)*r+(1+3*e+3*a-3*i)*n+i*o)/6}function WF(e){var t=e.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,t-1):Math.floor(r*t),o=e[n],a=e[n+1],i=n>0?e[n-1]:2*o-a,s=n()=>e;function ade(e,t){return function(r){return e+r*t}}function ide(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(n){return Math.pow(e+n*t,r)}}function qF(e){return(e=+e)==1?Tk:function(t,r){return r-t?ide(t,r,e):qv(isNaN(t)?r:t)}}function Tk(e,t){var r=t-e;return r?ade(e,r):qv(isNaN(e)?t:e)}var SP=(function e(t){var r=qF(t);function n(o,a){var i=r((o=hg(o)).r,(a=hg(a)).r),s=r(o.g,a.g),l=r(o.b,a.b),u=Tk(o.opacity,a.opacity);return function(c){return o.r=i(c),o.g=s(c),o.b=l(c),o.opacity=u(c),o+""}}return n.gamma=e,n})(1);function KF(e){return function(t){var r=t.length,n=new Array(r),o=new Array(r),a=new Array(r),i,s;for(i=0;ir&&(a=t.slice(r,a),s[i]?s[i]+=a:s[++i]=a),(n=n[0])===(o=o[0])?s[i]?s[i]+=o:s[++i]=o:(s[++i]=null,l.push({i,x:Mc(n,o)})),r=kP.lastIndex;return rt&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function cde(e,t,r){var n=e[0],o=e[1],a=t[0],i=t[1];return o2?dde:cde,l=u=null,d}function d(p){return p==null||isNaN(p=+p)?a:(l||(l=s(e.map(n),t,r)))(n(i(p)))}return d.invert=function(p){return i(o((u||(u=s(t,e.map(n),Mc)))(p)))},d.domain=function(p){return arguments.length?(e=Array.from(p,Ic),c()):e.slice()},d.range=function(p){return arguments.length?(t=Array.from(p),c()):t.slice()},d.rangeRound=function(p){return t=Array.from(p),r=xp,c()},d.clamp=function(p){return arguments.length?(i=p?!0:Eo,c()):i!==Eo},d.interpolate=function(p){return arguments.length?(r=p,c()):r},d.unknown=function(p){return arguments.length?(a=p,d):a},function(p,f){return n=p,o=f,c()}}function wp(){return bp()(Eo,Eo)}function RF(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Sp(e,t){if(!isFinite(e)||e===0)return null;var r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),n=e.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+e.slice(r+1)]}function fl(e){return e=Sp(Math.abs(e)),e?e[1]:NaN}function eU(e,t){return function(r,n){for(var o=r.length,a=[],i=0,s=e[0],l=0;o>0&&s>0&&(l+s+1>n&&(s=Math.max(1,n-l)),a.push(r.substring(o-=s,o+s)),!((l+=s+1)>n));)s=e[i=(i+1)%e.length];return a.reverse().join(t)}}function tU(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var pde=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function ml(e){if(!(t=pde.exec(e)))throw new Error("invalid format: "+e);var t;return new Pk({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}ml.prototype=Pk.prototype;function Pk(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}Pk.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function rU(e){e:for(var t=e.length,r=1,n=-1,o;r0&&(n=0);break}return n>0?e.slice(0,n)+e.slice(o+1):e}var Kv;function nU(e,t){var r=Sp(e,t);if(!r)return Kv=void 0,e.toPrecision(t);var n=r[0],o=r[1],a=o-(Kv=Math.max(-8,Math.min(8,Math.floor(o/3)))*3)+1,i=n.length;return a===i?n:a>i?n+new Array(a-i+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+Sp(e,Math.max(0,t+a-1))[0]}function EP(e,t){var r=Sp(e,t);if(!r)return e+"";var n=r[0],o=r[1];return o<0?"0."+new Array(-o).join("0")+n:n.length>o+1?n.slice(0,o+1)+"."+n.slice(o+1):n+new Array(o-n.length+2).join("0")}var NP={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:RF,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>EP(e*100,t),r:EP,s:nU,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function TP(e){return e}var oU=Array.prototype.map,aU=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function iU(e){var t=e.grouping===void 0||e.thousands===void 0?TP:eU(oU.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",n=e.currency===void 0?"":e.currency[1]+"",o=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?TP:tU(oU.call(e.numerals,String)),i=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"\u2212":e.minus+"",l=e.nan===void 0?"NaN":e.nan+"";function u(d,p){d=ml(d);var f=d.fill,m=d.align,y=d.sign,b=d.symbol,g=d.zero,h=d.width,v=d.comma,x=d.precision,S=d.trim,k=d.type;k==="n"?(v=!0,k="g"):NP[k]||(x===void 0&&(x=12),S=!0,k="g"),(g||f==="0"&&m==="=")&&(g=!0,f="0",m="=");var w=(p&&p.prefix!==void 0?p.prefix:"")+(b==="$"?r:b==="#"&&/[boxX]/.test(k)?"0"+k.toLowerCase():""),_=(b==="$"?n:/[%p]/.test(k)?i:"")+(p&&p.suffix!==void 0?p.suffix:""),A=NP[k],C=/[defgprs%]/.test(k);x=x===void 0?6:/[gprs]/.test(k)?Math.max(1,Math.min(21,x)):Math.max(0,Math.min(20,x));function N(L){var Q=w,B=_,K,T,O;if(k==="c")B=A(L)+B,L="";else{L=+L;var I=L<0||1/L<0;if(L=isNaN(L)?l:A(Math.abs(L),x),S&&(L=rU(L)),I&&+L==0&&y!=="+"&&(I=!1),Q=(I?y==="("?y:s:y==="-"||y==="("?"":y)+Q,B=(k==="s"&&!isNaN(L)&&Kv!==void 0?aU[8+Kv/3]:"")+B+(I&&y==="("?")":""),C){for(K=-1,T=L.length;++KO||O>57){B=(O===46?o+L.slice(K+1):L.slice(K))+B,L=L.slice(0,K);break}}}v&&!g&&(L=t(L,1/0));var P=Q.length+L.length+B.length,j=P>1)+Q+L+B+j.slice(P);break;default:L=j+Q+L+B;break}return a(L)}return N.toString=function(){return d+""},N}function c(d,p){var f=Math.max(-8,Math.min(8,Math.floor(fl(p)/3)))*3,m=Math.pow(10,-f),y=u((d=ml(d),d.type="f",d),{suffix:aU[8+f/3]});return function(b){return y(m*b)}}return{format:u,formatPrefix:c}}var Mk,yg,Ik;OP({thousands:",",grouping:[3],currency:["$",""]});function OP(e){return Mk=iU(e),yg=Mk.format,Ik=Mk.formatPrefix,Mk}function PP(e){return Math.max(0,-fl(Math.abs(e)))}function MP(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(fl(t)/3)))*3-fl(Math.abs(e)))}function IP(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,fl(t)-fl(e))+1}function Vv(e,t,r,n){var o=fg(e,t,r),a;switch(n=ml(n??",f"),n.type){case"s":{var i=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(a=MP(o,i))&&(n.precision=a),Ik(n,i)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(a=IP(o,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=a-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(a=PP(o))&&(n.precision=a-(n.type==="%")*2);break}}return yg(n)}function Aa(e){var t=e.domain;return e.ticks=function(r){var n=t();return hp(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var o=t();return Vv(o[0],o[o.length-1],r??10,n)},e.nice=function(r){r==null&&(r=10);var n=t(),o=0,a=n.length-1,i=n[o],s=n[a],l,u,c=10;for(s0;){if(u=zv(i,s,r),u===l)return n[o]=i,n[a]=s,t(n);if(u>0)i=Math.floor(i/u)*u,s=Math.ceil(s/u)*u;else if(u<0)i=Math.ceil(i*u)/u,s=Math.floor(s*u)/u;else break;l=u}return e},e}function Dk(){var e=wp();return e.copy=function(){return pl(e,Dk())},An.apply(e,arguments),Aa(e)}function jk(e){var t;function r(n){return n==null||isNaN(n=+n)?t:n}return r.invert=r,r.domain=r.range=function(n){return arguments.length?(e=Array.from(n,Ic),r):e.slice()},r.unknown=function(n){return arguments.length?(t=n,r):t},r.copy=function(){return jk(e).unknown(t)},e=arguments.length?Array.from(e,Ic):[0,1],Aa(r)}function Gv(e,t){e=e.slice();var r=0,n=e.length-1,o=e[r],a=e[n],i;return aMath.pow(e,t)}function yde(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function uU(e){return(t,r)=>-e(-t,r)}function Yv(e){let t=e(sU,lU),r=t.domain,n=10,o,a;function i(){return o=yde(n),a=hde(n),r()[0]<0?(o=uU(o),a=uU(a),e(fde,mde)):e(sU,lU),t}return t.base=function(s){return arguments.length?(n=+s,i()):n},t.domain=function(s){return arguments.length?(r(s),i()):r()},t.ticks=s=>{let l=r(),u=l[0],c=l[l.length-1],d=c0){for(;p<=f;++p)for(m=1;mc)break;g.push(y)}}else for(;p<=f;++p)for(m=n-1;m>=1;--m)if(y=p>0?m/a(-p):m*a(p),!(yc)break;g.push(y)}g.length*2{if(s==null&&(s=10),l==null&&(l=n===10?"s":","),typeof l!="function"&&(!(n%1)&&(l=ml(l)).precision==null&&(l.trim=!0),l=yg(l)),s===1/0)return l;let u=Math.max(1,n*s/t.ticks().length);return c=>{let d=c/a(Math.round(o(c)));return d*nr(Gv(r(),{floor:s=>a(Math.floor(o(s))),ceil:s=>a(Math.ceil(o(s)))})),t}function $k(){let e=Yv(bp()).domain([1,10]);return e.copy=()=>pl(e,$k()).base(e.base()),An.apply(e,arguments),e}function cU(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function dU(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Xv(e){var t=1,r=e(cU(t),dU(t));return r.constant=function(n){return arguments.length?e(cU(t=+n),dU(t)):t},Aa(r)}function Lk(){var e=Xv(bp());return e.copy=function(){return pl(e,Lk()).constant(e.constant())},An.apply(e,arguments)}function pU(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function vde(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function xde(e){return e<0?-e*e:e*e}function Zv(e){var t=e(Eo,Eo),r=1;function n(){return r===1?e(Eo,Eo):r===.5?e(vde,xde):e(pU(r),pU(1/r))}return t.exponent=function(o){return arguments.length?(r=+o,n()):r},Aa(t)}function Jv(){var e=Zv(bp());return e.copy=function(){return pl(e,Jv()).exponent(e.exponent())},An.apply(e,arguments),e}function fU(){return Jv.apply(null,arguments).exponent(.5)}function mU(e){return Math.sign(e)*e*e}function bde(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function zk(){var e=wp(),t=[0,1],r=!1,n;function o(a){var i=bde(e(a));return isNaN(i)?n:r?Math.round(i):i}return o.invert=function(a){return e.invert(mU(a))},o.domain=function(a){return arguments.length?(e.domain(a),o):e.domain()},o.range=function(a){return arguments.length?(e.range((t=Array.from(a,Ic)).map(mU)),o):t.slice()},o.rangeRound=function(a){return o.range(a).round(!0)},o.round=function(a){return arguments.length?(r=!!a,o):r},o.clamp=function(a){return arguments.length?(e.clamp(a),o):e.clamp()},o.unknown=function(a){return arguments.length?(n=a,o):n},o.copy=function(){return zk(e.domain(),t).round(r).clamp(e.clamp()).unknown(n)},An.apply(o,arguments),Aa(o)}function Bk(){var e=[],t=[],r=[],n;function o(){var i=0,s=Math.max(1,t.length);for(r=new Array(s-1);++i0?r[s-1]:e[0],s=r?[n[r-1],t]:[n[u-1],n[u]]},i.unknown=function(l){return arguments.length&&(a=l),i},i.thresholds=function(){return n.slice()},i.copy=function(){return Fk().domain([e,t]).range(o).unknown(a)},An.apply(Aa(i),arguments)}function Uk(){var e=[.5],t=[0,1],r,n=1;function o(a){return a!=null&&a<=a?t[Ds(e,a,0,n)]:r}return o.domain=function(a){return arguments.length?(e=Array.from(a),n=Math.min(e.length,t.length-1),o):e.slice()},o.range=function(a){return arguments.length?(t=Array.from(a),n=Math.min(e.length,t.length-1),o):t.slice()},o.invertExtent=function(a){var i=t.indexOf(a);return[e[i-1],e[i]]},o.unknown=function(a){return arguments.length?(r=a,o):r},o.copy=function(){return Uk().domain(e).range(t).unknown(r)},An.apply(o,arguments)}var DP=new Date,jP=new Date;function Rr(e,t,r,n){function o(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return o.floor=a=>(e(a=new Date(+a)),a),o.ceil=a=>(e(a=new Date(a-1)),t(a,1),e(a),a),o.round=a=>{let i=o(a),s=o.ceil(a);return a-i(t(a=new Date(+a),i==null?1:Math.floor(i)),a),o.range=(a,i,s)=>{let l=[];if(a=o.ceil(a),s=s==null?1:Math.floor(s),!(a0))return l;let u;do l.push(u=new Date(+a)),t(a,s),e(a);while(uRr(i=>{if(i>=i)for(;e(i),!a(i);)i.setTime(i-1)},(i,s)=>{if(i>=i)if(s<0)for(;++s<=0;)for(;t(i,-1),!a(i););else for(;--s>=0;)for(;t(i,1),!a(i););}),r&&(o.count=(a,i)=>(DP.setTime(+a),jP.setTime(+i),e(DP),e(jP),Math.floor(r(DP,jP))),o.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?o.filter(n?i=>n(i)%a===0:i=>o.count(0,i)%a===0):o)),o}var Qv=Rr(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Qv.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Rr(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):Qv);var T$e=Qv.range;var ts=Rr(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*1e3)},(e,t)=>(t-e)/1e3,e=>e.getUTCSeconds()),gU=ts.range;var vg=Rr(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getMinutes()),wde=vg.range,xg=Rr(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getUTCMinutes()),Sde=xg.range;var bg=Rr(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3-e.getMinutes()*6e4)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getHours()),kde=bg.range,wg=Rr(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getUTCHours()),_de=wg.range;var pu=Rr(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/864e5,e=>e.getDate()-1),Cde=pu.range,Cp=Rr(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>e.getUTCDate()-1),Ade=Cp.range,Wk=Rr(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>Math.floor(e/864e5)),Ede=Wk.range;function Ap(e){return Rr(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,r)=>{t.setDate(t.getDate()+r*7)},(t,r)=>(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/6048e5)}var fu=Ap(0),Sg=Ap(1),yU=Ap(2),vU=Ap(3),Dc=Ap(4),xU=Ap(5),bU=Ap(6),wU=fu.range,Nde=Sg.range,Tde=yU.range,Ode=vU.range,Pde=Dc.range,Mde=xU.range,Ide=bU.range;function Ep(e){return Rr(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCDate(t.getUTCDate()+r*7)},(t,r)=>(r-t)/6048e5)}var mu=Ep(0),kg=Ep(1),SU=Ep(2),kU=Ep(3),jc=Ep(4),_U=Ep(5),CU=Ep(6),AU=mu.range,Dde=kg.range,jde=SU.range,$de=kU.range,Lde=jc.range,zde=_U.range,Bde=CU.range;var _g=Rr(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth()),Fde=_g.range,Cg=Rr(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth()),Ude=Cg.range;var ki=Rr(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());ki.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Rr(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,r)=>{t.setFullYear(t.getFullYear()+r*e)});var Wde=ki.range,_i=Rr(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());_i.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Rr(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCFullYear(t.getUTCFullYear()+r*e)});var Hde=_i.range;function NU(e,t,r,n,o,a){let i=[[ts,1,1e3],[ts,5,5*1e3],[ts,15,15*1e3],[ts,30,30*1e3],[a,1,6e4],[a,5,5*6e4],[a,15,15*6e4],[a,30,30*6e4],[o,1,36e5],[o,3,3*36e5],[o,6,6*36e5],[o,12,12*36e5],[n,1,864e5],[n,2,2*864e5],[r,1,6048e5],[t,1,2592e6],[t,3,3*2592e6],[e,1,31536e6]];function s(u,c,d){let p=cb).right(i,p);if(f===i.length)return e.every(fg(u/31536e6,c/31536e6,d));if(f===0)return Qv.every(Math.max(fg(u,c,d),1));let[m,y]=i[p/i[f-1][2]53)return null;"w"in te||(te.w=1),"Z"in te?(_e=UP(ex(te.y,0,1)),D=_e.getUTCDay(),_e=D>4||D===0?kg.ceil(_e):kg(_e),_e=Cp.offset(_e,(te.V-1)*7),te.y=_e.getUTCFullYear(),te.m=_e.getUTCMonth(),te.d=_e.getUTCDate()+(te.w+6)%7):(_e=FP(ex(te.y,0,1)),D=_e.getDay(),_e=D>4||D===0?Sg.ceil(_e):Sg(_e),_e=pu.offset(_e,(te.V-1)*7),te.y=_e.getFullYear(),te.m=_e.getMonth(),te.d=_e.getDate()+(te.w+6)%7)}else("W"in te||"U"in te)&&("w"in te||(te.w="u"in te?te.u%7:"W"in te?1:0),D="Z"in te?UP(ex(te.y,0,1)).getUTCDay():FP(ex(te.y,0,1)).getDay(),te.m=0,te.d="W"in te?(te.w+6)%7+te.W*7-(D+5)%7:te.w+te.U*7-(D+6)%7);return"Z"in te?(te.H+=te.Z/100|0,te.M+=te.Z%100,UP(te)):FP(te)}}function _(fe,le,R,te){for(var He=0,_e=le.length,D=R.length,G,E;He<_e;){if(te>=D)return-1;if(G=le.charCodeAt(He++),G===37){if(G=le.charAt(He++),E=S[G in TU?le.charAt(He++):G],!E||(te=E(fe,R,te))<0)return-1}else if(G!=R.charCodeAt(te++))return-1}return te}function A(fe,le,R){var te=u.exec(le.slice(R));return te?(fe.p=c.get(te[0].toLowerCase()),R+te[0].length):-1}function C(fe,le,R){var te=f.exec(le.slice(R));return te?(fe.w=m.get(te[0].toLowerCase()),R+te[0].length):-1}function N(fe,le,R){var te=d.exec(le.slice(R));return te?(fe.w=p.get(te[0].toLowerCase()),R+te[0].length):-1}function L(fe,le,R){var te=g.exec(le.slice(R));return te?(fe.m=h.get(te[0].toLowerCase()),R+te[0].length):-1}function Q(fe,le,R){var te=y.exec(le.slice(R));return te?(fe.m=b.get(te[0].toLowerCase()),R+te[0].length):-1}function B(fe,le,R){return _(fe,t,le,R)}function K(fe,le,R){return _(fe,r,le,R)}function T(fe,le,R){return _(fe,n,le,R)}function O(fe){return i[fe.getDay()]}function I(fe){return a[fe.getDay()]}function P(fe){return l[fe.getMonth()]}function j(fe){return s[fe.getMonth()]}function M(fe){return o[+(fe.getHours()>=12)]}function W(fe){return 1+~~(fe.getMonth()/3)}function Y(fe){return i[fe.getUTCDay()]}function z(fe){return a[fe.getUTCDay()]}function V(fe){return l[fe.getUTCMonth()]}function q(fe){return s[fe.getUTCMonth()]}function oe(fe){return o[+(fe.getUTCHours()>=12)]}function Me(fe){return 1+~~(fe.getUTCMonth()/3)}return{format:function(fe){var le=k(fe+="",v);return le.toString=function(){return fe},le},parse:function(fe){var le=w(fe+="",!1);return le.toString=function(){return fe},le},utcFormat:function(fe){var le=k(fe+="",x);return le.toString=function(){return fe},le},utcParse:function(fe){var le=w(fe+="",!0);return le.toString=function(){return fe},le}}}var TU={"-":"",_:" ",0:"0"},Vo=/^\s*\d+/,Kde=/^%/,Vde=/[\\^$*+?|[\]().{}]/g;function Er(e,t,r){var n=e<0?"-":"",o=(n?-e:e)+"",a=o.length;return n+(a[t.toLowerCase(),r]))}function Yde(e,t,r){var n=Vo.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function Xde(e,t,r){var n=Vo.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function Zde(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function Jde(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function Qde(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function OU(e,t,r){var n=Vo.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function PU(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function Rde(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function epe(e,t,r){var n=Vo.exec(t.slice(r,r+1));return n?(e.q=n[0]*3-3,r+n[0].length):-1}function tpe(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function MU(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function rpe(e,t,r){var n=Vo.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function IU(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function npe(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function ope(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function ape(e,t,r){var n=Vo.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function ipe(e,t,r){var n=Vo.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function spe(e,t,r){var n=Kde.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function lpe(e,t,r){var n=Vo.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function upe(e,t,r){var n=Vo.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function DU(e,t){return Er(e.getDate(),t,2)}function cpe(e,t){return Er(e.getHours(),t,2)}function dpe(e,t){return Er(e.getHours()%12||12,t,2)}function ppe(e,t){return Er(1+pu.count(ki(e),e),t,3)}function BU(e,t){return Er(e.getMilliseconds(),t,3)}function fpe(e,t){return BU(e,t)+"000"}function mpe(e,t){return Er(e.getMonth()+1,t,2)}function gpe(e,t){return Er(e.getMinutes(),t,2)}function hpe(e,t){return Er(e.getSeconds(),t,2)}function ype(e){var t=e.getDay();return t===0?7:t}function vpe(e,t){return Er(fu.count(ki(e)-1,e),t,2)}function FU(e){var t=e.getDay();return t>=4||t===0?Dc(e):Dc.ceil(e)}function xpe(e,t){return e=FU(e),Er(Dc.count(ki(e),e)+(ki(e).getDay()===4),t,2)}function bpe(e){return e.getDay()}function wpe(e,t){return Er(Sg.count(ki(e)-1,e),t,2)}function Spe(e,t){return Er(e.getFullYear()%100,t,2)}function kpe(e,t){return e=FU(e),Er(e.getFullYear()%100,t,2)}function _pe(e,t){return Er(e.getFullYear()%1e4,t,4)}function Cpe(e,t){var r=e.getDay();return e=r>=4||r===0?Dc(e):Dc.ceil(e),Er(e.getFullYear()%1e4,t,4)}function Ape(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Er(t/60|0,"0",2)+Er(t%60,"0",2)}function jU(e,t){return Er(e.getUTCDate(),t,2)}function Epe(e,t){return Er(e.getUTCHours(),t,2)}function Npe(e,t){return Er(e.getUTCHours()%12||12,t,2)}function Tpe(e,t){return Er(1+Cp.count(_i(e),e),t,3)}function UU(e,t){return Er(e.getUTCMilliseconds(),t,3)}function Ope(e,t){return UU(e,t)+"000"}function Ppe(e,t){return Er(e.getUTCMonth()+1,t,2)}function Mpe(e,t){return Er(e.getUTCMinutes(),t,2)}function Ipe(e,t){return Er(e.getUTCSeconds(),t,2)}function Dpe(e){var t=e.getUTCDay();return t===0?7:t}function jpe(e,t){return Er(mu.count(_i(e)-1,e),t,2)}function WU(e){var t=e.getUTCDay();return t>=4||t===0?jc(e):jc.ceil(e)}function $pe(e,t){return e=WU(e),Er(jc.count(_i(e),e)+(_i(e).getUTCDay()===4),t,2)}function Lpe(e){return e.getUTCDay()}function zpe(e,t){return Er(kg.count(_i(e)-1,e),t,2)}function Bpe(e,t){return Er(e.getUTCFullYear()%100,t,2)}function Fpe(e,t){return e=WU(e),Er(e.getUTCFullYear()%100,t,2)}function Upe(e,t){return Er(e.getUTCFullYear()%1e4,t,4)}function Wpe(e,t){var r=e.getUTCDay();return e=r>=4||r===0?jc(e):jc.ceil(e),Er(e.getUTCFullYear()%1e4,t,4)}function Hpe(){return"+0000"}function $U(){return"%"}function LU(e){return+e}function zU(e){return Math.floor(+e/1e3)}var Ag,Hk,HU,qk,qU;HP({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function HP(e){return Ag=WP(e),Hk=Ag.format,HU=Ag.parse,qk=Ag.utcFormat,qU=Ag.utcParse,Ag}function qpe(e){return new Date(e)}function Kpe(e){return e instanceof Date?+e:+new Date(+e)}function Kk(e,t,r,n,o,a,i,s,l,u){var c=wp(),d=c.invert,p=c.domain,f=u(".%L"),m=u(":%S"),y=u("%I:%M"),b=u("%I %p"),g=u("%a %d"),h=u("%b %d"),v=u("%B"),x=u("%Y");function S(k){return(l(k)t(o/(e.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(o,a)=>wk(e,a/n))},r.copy=function(){return Xk(t).domain(e)},es.apply(r,arguments)}function Zk(){var e=0,t=.5,r=1,n=1,o,a,i,s,l,u=Eo,c,d=!1,p;function f(y){return isNaN(y=+y)?p:(y=.5+((y=+c(y))-a)*(n*y{if(e!=null){var n=e.scale,o=e.type;if(n==="auto")return o==="category"&&r&&(r.indexOf("LineChart")>=0||r.indexOf("AreaChart")>=0||r.indexOf("ComposedChart")>=0&&!t)?"point":o==="category"?"band":"linear";if(typeof n=="string")return Ype(n)?n:"point"}};function Xpe(e,t){for(var r=0,n=e.length,o=e[0]t)?r=a+1:n=a}return r}function e_(e,t){if(e){var r=t??e.domain(),n=r.map(a=>{var i;return(i=e(a))!==null&&i!==void 0?i:0}),o=e.range();if(!(r.length===0||o.length<2))return a=>{var i,s,l=Xpe(n,a);if(l<=0)return r[0];if(l>=r.length)return r[r.length-1];var u=(i=n[l-1])!==null&&i!==void 0?i:0,c=(s=n[l])!==null&&s!==void 0?s:0;return Math.abs(a-u)<=Math.abs(a-c)?r[l-1]:r[l]}}}function YU(e){if(e!=null)return"invert"in e&&typeof e.invert=="function"?e.invert.bind(e):e_(e,void 0)}function XU(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function t_(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);re.cartesianAxis.xAxis[t],hl=(e,t)=>{var r=JP(e,t);return r??io},so={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:ZP,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"left",padding:{top:0,bottom:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"number",unit:void 0,niceTicks:"auto",width:rp},QP=(e,t)=>e.cartesianAxis.yAxis[t],yl=(e,t)=>{var r=QP(e,t);return r??so},nfe={domain:[0,"auto"],includeHidden:!1,reversed:!1,allowDataOverflow:!1,allowDuplicatedCategory:!1,dataKey:void 0,id:0,name:"",range:[64,64],scale:"auto",type:"number",unit:""},RP=(e,t)=>{var r=e.cartesianAxis.zAxis[t];return r??nfe},En=(e,t,r)=>{switch(t){case"xAxis":return hl(e,r);case"yAxis":return yl(e,r);case"zAxis":return RP(e,r);case"angleAxis":return dk(e,r);case"radiusAxis":return pk(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},ofe=(e,t,r)=>{switch(t){case"xAxis":return hl(e,r);case"yAxis":return yl(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},Np=(e,t,r)=>{switch(t){case"xAxis":return hl(e,r);case"yAxis":return yl(e,r);case"angleAxis":return dk(e,r);case"radiusAxis":return pk(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},eM=e=>e.graphicalItems.cartesianItems.some(t=>t.type==="bar")||e.graphicalItems.polarItems.some(t=>t.type==="radialBar");function ix(e,t){return r=>{switch(e){case"xAxis":return"xAxisId"in r&&r.xAxisId===t;case"yAxis":return"yAxisId"in r&&r.yAxisId===t;case"zAxis":return"zAxisId"in r&&r.zAxisId===t;case"angleAxis":return"angleAxisId"in r&&r.angleAxisId===t;case"radiusAxis":return"radiusAxisId"in r&&r.radiusAxisId===t;default:return!1}}}var $c=e=>e.graphicalItems.cartesianItems,afe=ae([vn,pp],ix),sx=(e,t,r)=>e.filter(r).filter(n=>t?.includeHidden===!0?!0:!n.hide),Ng=ae([$c,En,afe],sx,{memoizeOptions:{resultEqualityCheck:dg}}),RU=ae([Ng],e=>e.filter(t=>t.type==="area"||t.type==="bar").filter(fp)),tM=e=>e.filter(t=>!("stackId"in t)||t.stackId===void 0),ife=ae([Ng],tM),lx=e=>e.map(t=>t.data).filter(Boolean).flat(1),sfe=ae([Ng],e=>e.some(t=>!t.data)),eW=ae([Ng],lx,{memoizeOptions:{resultEqualityCheck:dg}}),ux=(e,t)=>{var r=t.chartData,n=r===void 0?[]:r,o=t.dataStartIndex,a=t.dataEndIndex;return e.length>0?e:n.slice(o,a+1)},rM=ae([eW,up],ux),nM=(e,t,r)=>t?.dataKey!=null?e.map(n=>({value:Ht(n,t.dataKey)})):r.length>0?r.map(n=>n.dataKey).flatMap(n=>e.map(o=>({value:Ht(o,n)}))):e.map(n=>({value:n})),oM=(e,t,r,n,o,a)=>{var i=n.chartData,s=i===void 0?[]:i,l=n.dataStartIndex,u=n.dataEndIndex,c=nM(e,t,r);if(o&&t?.dataKey!=null&&a.length>0){var d=s.slice(l,u+1),p=d.map(f=>({value:Ht(f,t.dataKey)})).filter(f=>f.value!=null);return[...p,...c]}return c},cx=ae([rM,En,Ng,up,sfe,eW],oM);function Eg(e){if(Sa(e)||e instanceof Date){var t=Number(e);if(Ot(t))return t}}function JU(e){if(Array.isArray(e)){var t=[Eg(e[0]),Eg(e[1])];return wi(t)?t:void 0}var r=Eg(e);if(r!=null)return[r,r]}function $s(e){return e.map(Eg).filter(Ao)}function lfe(e,t){var r=Eg(e),n=Eg(t);return r==null&&n==null?0:r==null?-1:n==null?1:r-n}var ufe=ae([cx],e=>e?.map(t=>t.value).sort(lfe));function tW(e,t){switch(e){case"xAxis":return t.direction==="x";case"yAxis":return t.direction==="y";default:return!1}}function cfe(e,t,r){if(!r)return[];if(!r.length)return[];var n;if(typeof t=="number"&&!Wo(t))n=t;else if(Array.isArray(t)){var o=$s(t);o.length>0&&(n=Math.max(...o))}return n==null?[]:$s(r.flatMap(a=>{var i=Ht(e,a.dataKey),s,l;if(Array.isArray(i)){var u=QU(i,2);s=u[0],l=u[1]}else s=l=i;if(!(!Ot(s)||!Ot(l)))return[n-s,n+l]}))}var lo=e=>{var t=ao(e),r=Oc(e);return Np(e,t,r)},hu=ae([lo],e=>e?.dataKey),dfe=ae([RU,up,lo],gk),aM=(e,t,r,n)=>{var o={},a=t.reduce((i,s)=>{if(s.stackId==null)return i;var l=i[s.stackId];return l==null&&(l=[]),l.push(s),i[s.stackId]=l,i},o);return Object.fromEntries(Object.entries(a).map(i=>{var s=QU(i,2),l=s[0],u=s[1],c=n?[...u].reverse():u,d=c.map(Tc);return[l,{stackedData:m7(e,d,r),graphicalItems:c}]}))},Tg=ae([dfe,RU,Ec,sk],aM),iM=(e,t,r,n)=>{var o=t.dataStartIndex,a=t.dataEndIndex;if(n==null&&r!=="zAxis")return h7(e,o,a)},pfe=ae([En],e=>e.allowDataOverflow),r_=e=>{var t;if(e==null||!("domain"in e))return ZP;if(e.domain!=null)return e.domain;if("ticks"in e&&e.ticks!=null){if(e.type==="number"){var r=$s(e.ticks);return[Math.min(...r),Math.max(...r)]}if(e.type==="category")return e.ticks.map(String)}return(t=e?.domain)!==null&&t!==void 0?t:ZP},n_=ae([En],r_),o_=ae([n_,pfe],rk),ffe=ae([Tg,Ya,vn,o_],iM,{memoizeOptions:{resultEqualityCheck:mp}}),Og=e=>e.errorBars,mfe=(e,t,r)=>e.flatMap(n=>t[n.id]).filter(Boolean).filter(n=>tW(r,n)),ax=function(){for(var t=arguments.length,r=new Array(t),n=0;n5&&arguments[5]!==void 0?arguments[5]:[],s,l;if(n.length>0&&n.forEach(u=>{var c,d=u.data!=null?[...u.data]:i,p=(c=o[u.id])===null||c===void 0?void 0:c.filter(f=>tW(a,f));d.forEach(f=>{var m,y=Ht(f,(m=r.dataKey)!==null&&m!==void 0?m:u.dataKey),b=cfe(f,y,p);if(b.length>=2){var g=Math.min(...b),h=Math.max(...b);(s==null||gl)&&(l=h)}var v=JU(y);v!=null&&(s=s==null?v[0]:Math.min(s,v[0]),l=l==null?v[1]:Math.max(l,v[1]))})}),r?.dataKey!=null&&n.length===0&&t.forEach(u=>{var c=JU(Ht(u,r.dataKey));c!=null&&(s=s==null?c[0]:Math.min(s,c[0]),l=l==null?c[1]:Math.max(l,c[1]))}),Ot(s)&&Ot(l))return[s,l]},gfe=ae([rM,En,ife,Og,vn,aF],dx,{memoizeOptions:{resultEqualityCheck:mp}});function hfe(e){var t=e.value;if(Sa(t)||t instanceof Date)return t}var yfe=(e,t,r)=>{var n=e.map(hfe).filter(o=>o!=null);return r&&(t.dataKey==null||t.allowDuplicatedCategory&&OT(n))?ek(0,e.length):t.allowDuplicatedCategory?n:Array.from(new Set(n))},sM=e=>e.referenceElements.dots,Tp=(e,t,r)=>e.filter(n=>n.ifOverflow==="extendDomain").filter(n=>t==="xAxis"?n.xAxisId===r:n.yAxisId===r),vfe=ae([sM,vn,pp],Tp),lM=e=>e.referenceElements.areas,xfe=ae([lM,vn,pp],Tp),uM=e=>e.referenceElements.lines,bfe=ae([uM,vn,pp],Tp),cM=(e,t)=>{if(e!=null){var r=$s(e.map(n=>t==="xAxis"?n.x:n.y));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},wfe=ae(vfe,vn,cM),dM=(e,t)=>{if(e!=null){var r=$s(e.flatMap(n=>[t==="xAxis"?n.x1:n.y1,t==="xAxis"?n.x2:n.y2]));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},Sfe=ae([xfe,vn],dM);function kfe(e){var t;if(e.x!=null)return $s([e.x]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.x);return r==null||r.length===0?[]:$s(r)}function _fe(e){var t;if(e.y!=null)return $s([e.y]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.y);return r==null||r.length===0?[]:$s(r)}var pM=(e,t)=>{if(e!=null){var r=e.flatMap(n=>t==="xAxis"?kfe(n):_fe(n));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},Cfe=ae([bfe,vn],pM),Afe=ae(wfe,Cfe,Sfe,(e,t,r)=>ax(e,r,t)),px=(e,t,r,n,o,a,i,s,l)=>{if(r!=null)return r;var u=i==="vertical"&&s==="xAxis"||i==="horizontal"&&s==="yAxis",c=u?ax(n,a,o):ax(a,o),d=cF(t,c,e.allowDataOverflow);return d??(e.allowDataOverflow&&c==null&&l!=null?l:d)},Efe=e=>{if(!(e==null||e.type!=="number"||!("ticks"in e)||e.ticks==null)){var t=$s(e.ticks);if(t.length!==0)return[Math.min(...t),Math.max(...t)]}},Nfe=ae([En],Efe,{memoizeOptions:{resultEqualityCheck:mp}}),Tfe=ae([En,n_,o_,ffe,gfe,Afe,Bt,vn,Nfe],px,{memoizeOptions:{resultEqualityCheck:mp}}),Ofe=[0,1],fx=(e,t,r,n,o,a,i)=>{if(!((e==null||r==null||r.length===0)&&i===void 0)){var s=e.dataKey,l=e.type,u=sa(t,a);if(u&&s==null){var c;return ek(0,(c=r?.length)!==null&&c!==void 0?c:0)}return l==="category"?yfe(n,e,u):o==="expand"&&!u?Ofe:i}},fM=ae([En,Bt,rM,cx,Ec,vn,Tfe],fx),yu=ae([En,eM,cg],Rk),mx=(e,t,r)=>{var n=t.niceTicks;if(n!=="none"){var o=r_(t),a=Array.isArray(o)&&(o[0]==="auto"||o[1]==="auto");if((n==="snap125"||n==="adaptive")&&t!=null&&t.tickCount&&wi(e)){if(a)return ok(e,t.tickCount,t.allowDecimals,n);if(t.type==="number")return ak(e,t.tickCount,t.allowDecimals,n)}if(n==="auto"&&r==="linear"&&t!=null&&t.tickCount){if(a&&wi(e))return ok(e,t.tickCount,t.allowDecimals,"adaptive");if(t.type==="number"&&wi(e))return ak(e,t.tickCount,t.allowDecimals,"adaptive")}}},mM=ae([fM,Np,yu],mx),gx=(e,t,r,n)=>{if(n!=="angleAxis"&&e?.type==="number"&&wi(t)&&Array.isArray(r)&&r.length>0){var o,a,i=t[0],s=(o=r[0])!==null&&o!==void 0?o:0,l=t[1],u=(a=r[r.length-1])!==null&&a!==void 0?a:0;return[Math.min(i,s),Math.max(l,u)]}return t},Pfe=ae([En,fM,mM,vn],gx),Mfe=ae(cx,En,(e,t)=>{if(!(!t||t.type!=="number")){var r=1/0,n=Array.from($s(e.map(d=>d.value))).sort((d,p)=>d-p),o=n[0],a=n[n.length-1];if(o==null||a==null)return 1/0;var i=a-o;if(i===0)return 1/0;for(var s=0;so,(e,t,r,n,o)=>{if(!Ot(e))return 0;var a=t==="vertical"?n.height:n.width;if(o==="gap")return e*a/2;if(o==="no-gap"){var i=$n(r,e*a),s=e*a/2;return s-i-(s-i)/a*i}return 0}),Ife=(e,t,r)=>{var n=hl(e,t);return n==null||typeof n.padding!="string"?0:rW(e,"xAxis",t,r,n.padding)},Dfe=(e,t,r)=>{var n=yl(e,t);return n==null||typeof n.padding!="string"?0:rW(e,"yAxis",t,r,n.padding)},jfe=ae(hl,Ife,(e,t)=>{var r,n;if(e==null)return{left:0,right:0};var o=e.padding;return typeof o=="string"?{left:t,right:t}:{left:((r=o.left)!==null&&r!==void 0?r:0)+t,right:((n=o.right)!==null&&n!==void 0?n:0)+t}}),$fe=ae(yl,Dfe,(e,t)=>{var r,n;if(e==null)return{top:0,bottom:0};var o=e.padding;return typeof o=="string"?{top:t,bottom:t}:{top:((r=o.top)!==null&&r!==void 0?r:0)+t,bottom:((n=o.bottom)!==null&&n!==void 0?n:0)+t}}),gM=ae([Fr,jfe,np,tg,(e,t,r)=>r],(e,t,r,n,o)=>{var a=n.padding;return o?[a.left,r.width-a.right]:[e.left+t.left,e.left+e.width-t.right]}),hM=ae([Fr,Bt,$fe,np,tg,(e,t,r)=>r],(e,t,r,n,o,a)=>{var i=o.padding;return a?[n.height-i.bottom,i.top]:t==="horizontal"?[e.top+e.height-r.bottom,e.top+r.top]:[e.top+r.top,e.top+e.height-r.bottom]}),Pg=(e,t,r,n)=>{var o;switch(t){case"xAxis":return gM(e,r,n);case"yAxis":return hM(e,r,n);case"zAxis":return(o=RP(e,r))===null||o===void 0?void 0:o.range;case"angleAxis":return mP(e);case"radiusAxis":return gP(e,r);default:return}},nW=ae([En,Pg],cp),Lfe=ae([yu,Pfe],hk),yM=ae([En,yu,Lfe,nW],ox),vM=(e,t,r,n)=>{if(!(r==null||r.dataKey==null)){var o=r.type,a=r.scale,i=sa(e,n);if(i&&(o==="number"||a!=="auto"))return t.map(s=>s.value)}},xM=ae([Bt,cx,Np,vn],vM),a_=ae([yM],$v),Q8e=ae([yM],YU),R8e=ae([yM,ufe],e_),e6e=ae([Ng,Og,vn],mfe);function oW(e,t){return e.idt.id?1:0}var i_=(e,t)=>t,s_=(e,t,r)=>r,zfe=ae(Qm,i_,s_,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(oW)),Bfe=ae(Rm,i_,s_,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(oW)),aW=(e,t)=>{var r=typeof t.height=="number"?t.height:Cv;return{width:e.width,height:r}},Ffe=(e,t)=>{var r=typeof t.width=="number"?t.width:rp;return{width:r,height:e.height}},bM=ae(Fr,hl,aW),Ufe=(e,t,r)=>{switch(t){case"top":return e.top;case"bottom":return r-e.bottom;default:return 0}},Wfe=(e,t,r)=>{switch(t){case"left":return e.left;case"right":return r-e.right;default:return 0}},Hfe=ae(Ko,Fr,zfe,i_,s_,(e,t,r,n,o)=>{var a={},i;return r.forEach(s=>{var l=aW(t,s);i==null&&(i=Ufe(t,n,e));var u=n==="top"&&!o||n==="bottom"&&o;a[s.id]=i-Number(u)*l.height,i+=(u?-1:1)*l.height}),a}),qfe=ae(qo,Fr,Bfe,i_,s_,(e,t,r,n,o)=>{var a={},i;return r.forEach(s=>{var l=Ffe(t,s);i==null&&(i=Wfe(t,n,e));var u=n==="left"&&!o||n==="right"&&o;a[s.id]=i-Number(u)*l.width,i+=(u?-1:1)*l.width}),a}),Kfe=(e,t)=>{var r=hl(e,t);if(r!=null)return Hfe(e,r.orientation,r.mirror)},iW=ae([Fr,hl,Kfe,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var o=r?.[n];return o==null?{x:e.left,y:0}:{x:e.left,y:o}}}),Vfe=(e,t)=>{var r=yl(e,t);if(r!=null)return qfe(e,r.orientation,r.mirror)},sW=ae([Fr,yl,Vfe,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var o=r?.[n];return o==null?{x:0,y:e.top}:{x:o,y:e.top}}}),wM=ae(Fr,yl,(e,t)=>{var r=typeof t.width=="number"?t.width:rp;return{width:r,height:e.height}}),SM=(e,t,r)=>{switch(t){case"xAxis":return bM(e,r).width;case"yAxis":return wM(e,r).height;default:return}},kM=(e,t,r,n)=>{if(r!=null){var o=r.allowDuplicatedCategory,a=r.type,i=r.dataKey,s=sa(e,n),l=t.map(c=>c.value),u=l.filter(c=>c!=null);if(i&&s&&a==="category"&&o&&OT(u))return l}},_M=ae([Bt,cx,En,vn],kM),CM=ae([Bt,ofe,yu,a_,_M,xM,Pg,mM,vn],(e,t,r,n,o,a,i,s,l)=>{if(t!=null){var u=sa(e,l);return{angle:t.angle,interval:t.interval,minTickGap:t.minTickGap,orientation:t.orientation,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,axisType:l,categoricalDomain:a,duplicateDomain:o,isCategorical:u,niceTicks:s,range:i,realScaleType:r,scale:n}}}),Gfe=(e,t,r,n,o,a,i,s,l)=>{if(!(t==null||n==null)){var u=sa(e,l),c=t.type,d=t.ticks,p=t.tickCount,f=r==="scaleBand"&&typeof n.bandwidth=="function"?n.bandwidth()/2:2,m=c==="category"&&n.bandwidth?n.bandwidth()/f:0;m=l==="angleAxis"&&a!=null&&a.length>=2?Qr(a[0]-a[1])*2*m:m;var y=d||o;return y?y.map((b,g)=>{var h=i?i.indexOf(b):b,v=n.map(h);return Ot(v)?{index:g,coordinate:v+m,value:b,offset:m}:null}).filter(Ao):u&&s?s.map((b,g)=>{var h=n.map(b);return Ot(h)?{coordinate:h+m,value:b,index:g,offset:m}:null}).filter(Ao):n.ticks?n.ticks(p).map((b,g)=>{var h=n.map(b);return Ot(h)?{coordinate:h+m,value:b,index:g,offset:m}:null}).filter(Ao):n.domain().map((b,g)=>{var h=n.map(b);return Ot(h)?{coordinate:h+m,value:i?i[b]:b,index:g,offset:m}:null}).filter(Ao)}},l_=ae([Bt,Np,yu,a_,mM,Pg,_M,xM,vn],Gfe),Yfe=(e,t,r,n,o,a,i)=>{if(!(t==null||r==null||n==null||n[0]===n[1])){var s=sa(e,i),l=t.tickCount,u=0;return u=i==="angleAxis"&&n?.length>=2?Qr(n[0]-n[1])*2*u:u,s&&a?a.map((c,d)=>{var p=r.map(c);return Ot(p)?{coordinate:p+u,value:c,index:d,offset:u}:null}).filter(Ao):r.ticks?r.ticks(l).map((c,d)=>{var p=r.map(c);return Ot(p)?{coordinate:p+u,value:c,index:d,offset:u}:null}).filter(Ao):r.domain().map((c,d)=>{var p=r.map(c);return Ot(p)?{coordinate:p+u,value:o?o[c]:c,index:d,offset:u}:null}).filter(Ao)}},Ci=ae([Bt,Np,a_,Pg,_M,xM,vn],Yfe),Ai=ae(En,a_,(e,t)=>{if(!(e==null||t==null))return t_(t_({},e),{},{scale:t})}),Xfe=ae([En,yu,fM,nW],ox),Zfe=ae([Xfe],$v),t6e=ae((e,t,r)=>RP(e,r),Zfe,(e,t)=>{if(!(e==null||t==null))return t_(t_({},e),{},{scale:t})}),lW=ae([Bt,Qm,Rm],(e,t,r)=>{switch(e){case"horizontal":return t.some(n=>n.reversed)?"right-to-left":"left-to-right";case"vertical":return r.some(n=>n.reversed)?"bottom-to-top":"top-to-bottom";case"centric":case"radial":return"left-to-right";default:return}}),Jfe=(e,t,r)=>{var n;return(n=e.renderedTicks[t])===null||n===void 0?void 0:n[r]},r6e=ae([Jfe],e=>{if(!(!e||e.length===0))return t=>{var r,n=1/0,o=e[0];for(var a of e){var i=Math.abs(a.coordinate-t);ie.options.defaultTooltipEventType,EM=e=>e.options.validateTooltipEventTypes;function NM(e,t,r){if(e==null)return t;var n=e?"axis":"item";return r==null?t:r.includes(n)?n:t}function Lc(e,t){var r=AM(e),n=EM(e);return NM(t,r,n)}function uW(e){return $e(t=>Lc(t,e))}var u_=(e,t)=>{var r,n=Number(t);if(!(Wo(n)||t==null))return n>=0?e==null||(r=e[n])===null||r===void 0?void 0:r.value:void 0};var cW=e=>e.tooltip.settings;var vu={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},Qfe={itemInteraction:{click:vu,hover:vu},axisInteraction:{click:vu,hover:vu},keyboardInteraction:vu,syncInteraction:{active:!1,index:null,dataKey:void 0,label:void 0,coordinate:void 0,sourceViewBox:void 0,graphicalItemId:void 0},tooltipItemPayloads:[],settings:{shared:void 0,trigger:"hover",axisId:0,active:!1,defaultIndex:void 0}},dW=Cr({name:"tooltip",initialState:Qfe,reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(Zt(t.payload))},prepare:Ir()},replaceTooltipEntrySettings:{reducer(e,t){var r=t.payload,n=r.prev,o=r.next,a=ea(e).tooltipItemPayloads.indexOf(Zt(n));a>-1&&(e.tooltipItemPayloads[a]=Zt(o))},prepare:Ir()},removeTooltipEntrySettings:{reducer(e,t){var r=ea(e).tooltipItemPayloads.indexOf(Zt(t.payload));r>-1&&e.tooltipItemPayloads.splice(r,1)},prepare:Ir()},setTooltipSettingsState(e,t){e.settings=t.payload},setActiveMouseOverItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.itemInteraction.hover.active=!0,e.itemInteraction.hover.index=t.payload.activeIndex,e.itemInteraction.hover.dataKey=t.payload.activeDataKey,e.itemInteraction.hover.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.hover.coordinate=t.payload.activeCoordinate},mouseLeaveChart(e){e.itemInteraction.hover.active=!1,e.axisInteraction.hover.active=!1},mouseLeaveItem(e){e.itemInteraction.hover.active=!1},setActiveClickItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.itemInteraction.click.active=!0,e.keyboardInteraction.active=!1,e.itemInteraction.click.index=t.payload.activeIndex,e.itemInteraction.click.dataKey=t.payload.activeDataKey,e.itemInteraction.click.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.click.coordinate=t.payload.activeCoordinate},setMouseOverAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.axisInteraction.hover.active=!0,e.keyboardInteraction.active=!1,e.axisInteraction.hover.index=t.payload.activeIndex,e.axisInteraction.hover.dataKey=t.payload.activeDataKey,e.axisInteraction.hover.coordinate=t.payload.activeCoordinate},setMouseClickAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.axisInteraction.click.active=!0,e.axisInteraction.click.index=t.payload.activeIndex,e.axisInteraction.click.dataKey=t.payload.activeDataKey,e.axisInteraction.click.coordinate=t.payload.activeCoordinate},setSyncInteraction(e,t){e.syncInteraction=t.payload},setKeyboardInteraction(e,t){e.keyboardInteraction.active=t.payload.active,e.keyboardInteraction.index=t.payload.activeIndex,e.keyboardInteraction.coordinate=t.payload.activeCoordinate}}}),rs=dW.actions,pW=rs.addTooltipEntrySettings,fW=rs.replaceTooltipEntrySettings,mW=rs.removeTooltipEntrySettings,gW=rs.setTooltipSettingsState,c_=rs.setActiveMouseOverItemIndex,hW=rs.mouseLeaveItem,d_=rs.mouseLeaveChart,yW=rs.setActiveClickItemIndex,p_=rs.setMouseOverAxisIndex,vW=rs.setMouseClickAxisIndex,Mg=rs.setSyncInteraction,hx=rs.setKeyboardInteraction;var xW=dW.reducer;function bW(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function f_(e){for(var t=1;t{if(t==null)return vu;var o=rme(e,t,r);if(o==null)return vu;if(o.active)return o;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var a=e.settings.active===!0;if(nme(o)){if(a)return f_(f_({},o),{},{active:!0})}else if(n!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:n,graphicalItemId:void 0};return f_(f_({},vu),{},{coordinate:o.coordinate})};function ome(e){if(typeof e=="number")return Number.isFinite(e)?e:void 0;if(e instanceof Date){var t=e.valueOf();return Number.isFinite(t)?t:void 0}var r=Number(e);return Number.isFinite(r)?r:void 0}function ame(e,t){var r=ome(e),n=t[0],o=t[1];if(r===void 0)return!1;var a=Math.min(n,o),i=Math.max(n,o);return r>=a&&r<=i}function ime(e,t,r){if(r==null||t==null)return!0;var n=Ht(e,t);return n==null||!wi(r)?!0:ame(n,r)}var zc=(e,t,r,n)=>{var o=e?.index;if(o==null)return null;var a=Number(o);if(!Ot(a))return o;var i=0,s=1/0;t.length>0&&(s=t.length-1);var l=Math.max(i,Math.min(a,s)),u=t[l];return u==null||ime(u,r,n)?String(l):null};var g_=(e,t,r,n,o,a,i)=>{if(a!=null){var s=i[0],l=s?.getPosition(a);if(l!=null)return l;var u=o?.[Number(a)];if(u)return r==="horizontal"?{x:u.coordinate,y:(n.top+t)/2}:{x:(n.left+e)/2,y:u.coordinate}}};var h_=(e,t,r,n)=>{if(t==="axis")return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var o;if(r==="hover"?o=e.itemInteraction.hover.graphicalItemId:o=e.itemInteraction.click.graphicalItemId,e.syncInteraction.active&&o==null)return e.tooltipItemPayloads;if(o==null&&(n!=null||e.keyboardInteraction.active)){var a=e.tooltipItemPayloads[0];return a!=null?[a]:[]}return e.tooltipItemPayloads.filter(i=>{var s;return((s=i.settings)===null||s===void 0?void 0:s.graphicalItemId)===o})};var y_=e=>e.options.tooltipPayloadSearcher;var xu=e=>e.tooltip;function wW(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function SW(e){for(var t=1;te(t)}function kW(e){if(typeof e=="string")return e}function fme(e){if(!(e==null||typeof e!="object")){var t="name"in e?cme(e.name):void 0,r="unit"in e?dme(e.unit):void 0,n="dataKey"in e?pme(e.dataKey):void 0,o="payload"in e?e.payload:void 0,a="color"in e?kW(e.color):void 0,i="fill"in e?kW(e.fill):void 0;return{name:t,unit:r,dataKey:n,payload:o,color:a,fill:i}}}function mme(e,t){return e??t}var v_=(e,t,r,n,o,a,i)=>{if(!(t==null||a==null)){var s=r.chartData,l=r.computedData,u=r.dataStartIndex,c=r.dataEndIndex,d=[];return e.reduce((p,f)=>{var m,y=f.dataDefinedOnItem,b=f.settings,g=mme(y,s),h=Array.isArray(g)?CS(g,u,c):g,v=(m=b?.dataKey)!==null&&m!==void 0?m:n,x=b?.nameKey,S;if(n&&Array.isArray(h)&&!Array.isArray(h[0])&&i==="axis"?(S=dw(h,n,o),S==null&&(S=a(h,t,l,x))):S=a(h,t,l,x),Array.isArray(S))S.forEach(w=>{var _,A,C=fme(w),N=C?.name,L=C?.dataKey,Q=C?.payload,B=SW(SW({},b),{},{name:N,unit:C?.unit,color:(_=C?.color)!==null&&_!==void 0?_:b?.color,fill:(A=C?.fill)!==null&&A!==void 0?A:b?.fill});p.push(HO({tooltipEntrySettings:B,dataKey:L,payload:Q,value:Ht(Q,L),name:N==null?void 0:String(N)}))});else{var k;p.push(HO({tooltipEntrySettings:b,dataKey:v,payload:S,value:Ht(S,v),name:(k=Ht(S,x))!==null&&k!==void 0?k:b?.name}))}return p},d)}};var TM=ae([lo,eM,cg],Rk),gme=ae([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),hme=ae([ao,Oc],ix),Bc=ae([gme,lo,hme],sx,{memoizeOptions:{resultEqualityCheck:dg}}),yme=ae([Bc],e=>e.filter(fp)),_W=ae([Bc],lx,{memoizeOptions:{resultEqualityCheck:dg}}),vme=ae([Bc],e=>e.some(t=>!t.data)),bu=ae([_W,Ya],ux),xme=ae([yme,Ya,lo],gk),OM=ae([bu,lo,Bc,Ya,vme,_W],oM),CW=ae([lo],r_),bme=ae([lo],e=>e.allowDataOverflow),AW=ae([CW,bme],rk),wme=ae([Bc],e=>e.filter(fp)),Sme=ae([xme,wme,Ec,sk],aM),kme=ae([Sme,Ya,ao,AW],iM),_me=ae([Bc],tM),Cme=ae([bu,lo,_me,Og,ao,sF],dx,{memoizeOptions:{resultEqualityCheck:mp}}),Ame=ae([sM,ao,Oc],Tp),Eme=ae([Ame,ao],cM),Nme=ae([lM,ao,Oc],Tp),Tme=ae([Nme,ao],dM),Ome=ae([uM,ao,Oc],Tp),Pme=ae([Ome,ao],pM),Mme=ae([Eme,Pme,Tme],ax),Ime=ae([lo,CW,AW,kme,Cme,Mme,Bt,ao],px),Fc=ae([lo,Bt,bu,OM,Ec,ao,Ime],fx),Dme=ae([Fc,lo,TM],mx),jme=ae([lo,Fc,Dme,ao],gx),EW=e=>{var t=ao(e),r=Oc(e),n=!1;return Pg(e,t,r,n)},PM=ae([lo,EW],cp),$me=ae([lo,TM,jme,PM],ox),MM=ae([$me],$v),Lme=ae([Bt,OM,lo,ao],kM),zme=ae([Bt,OM,lo,ao],vM),Bme=(e,t,r,n,o,a,i,s)=>{if(t){var l=t.type,u=sa(e,s);if(n){var c=r==="scaleBand"&&n.bandwidth?n.bandwidth()/2:2,d=l==="category"&&n.bandwidth?n.bandwidth()/c:0;return d=s==="angleAxis"&&o!=null&&o?.length>=2?Qr(o[0]-o[1])*2*d:d,u&&i?i.map((p,f)=>{var m=n.map(p);return Ot(m)?{coordinate:m+d,value:p,index:f,offset:d}:null}).filter(Ao):n.domain().map((p,f)=>{var m=n.map(p);return Ot(m)?{coordinate:m+d,value:a?a[p]:p,index:f,offset:d}:null}).filter(Ao)}}},Za=ae([Bt,lo,TM,MM,EW,Lme,zme,ao],Bme),IM=ae([AM,EM,cW],(e,t,r)=>NM(r.shared,e,t)),NW=e=>e.tooltip.settings.trigger,DM=e=>e.tooltip.settings.defaultIndex,yx=ae([xu,IM,NW,DM],m_),ns=ae([yx,bu,hu,Fc],zc),x_=ae([Za,ns],u_),Ig=ae([yx],e=>{if(e)return e.dataKey}),b_=ae([yx],e=>{if(e)return e.graphicalItemId}),TW=ae([xu,IM,NW,DM],h_),Fme=ae([qo,Ko,Bt,Fr,Za,DM,TW],g_),jM=ae([yx,Fme],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),$M=ae([yx],e=>{var t;return(t=e?.active)!==null&&t!==void 0?t:!1}),Ume=ae([TW,ns,Ya,hu,x_,y_,IM],v_),OW=ae([Ume],e=>{if(e!=null){var t=e.map(r=>r.payload).filter(r=>r!=null);return Array.from(new Set(t))}});function PW(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function MW(e){for(var t=1;t$e(lo),IW=()=>{var e=Kme(),t=$e(Za),r=$e(MM);return!e||!r?Ji(void 0,t):Ji(MW(MW({},e),{},{scale:r}),t)};function DW(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Dg(e){for(var t=1;t{var o=t.find(a=>a&&a.index===r);if(o){if(e==="horizontal")return{x:o.coordinate,y:n.relativeY};if(e==="vertical")return{x:n.relativeX,y:o.coordinate}}return{x:0,y:0}},$W=(e,t,r,n)=>{var o=t.find(u=>u&&u.index===r);if(o){if(e==="centric"){var a=o.coordinate,i=n.radius;return Dg(Dg(Dg({},n),an(n.cx,n.cy,i,a)),{},{angle:a,radius:i})}var s=o.coordinate,l=n.angle;return Dg(Dg(Dg({},n),an(n.cx,n.cy,s,l)),{},{angle:l,radius:s})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function LW(e,t){var r=e.relativeX,n=e.relativeY;return r>=t.left&&r<=t.left+t.width&&n>=t.top&&n<=t.top+t.height}var LM=(e,t,r,n,o)=>{var a,i=(a=t?.length)!==null&&a!==void 0?a:0;if(i<=1||e==null)return 0;if(n==="angleAxis"&&o!=null&&Math.abs(Math.abs(o[1]-o[0])-360)<=1e-6)for(var s=o[1]-o[0],l=(K,T,O)=>[e,e+s,e-s].some(I=>(O?I>=K:I>K)&&I<=T),u=0;u0?(c=r[u-1])===null||c===void 0?void 0:c.coordinate:(d=r[i-1])===null||d===void 0?void 0:d.coordinate,b=(p=r[u])===null||p===void 0?void 0:p.coordinate,g=u>=i-1?(f=r[0])===null||f===void 0?void 0:f.coordinate:(m=r[u+1])===null||m===void 0?void 0:m.coordinate,h=void 0;if(!(y==null||b==null||g==null))if(Qr(b-y)!==Qr(g-b)){var v=[];if(Qr(g-b)===Qr(o[1]-o[0])){h=g;var x=b+o[1]-o[0];v[0]=Math.min(x,(x+y)/2),v[1]=Math.max(x,(x+y)/2)}else{h=y;var S=g+o[1]-o[0];v[0]=Math.min(b,(S+b)/2),v[1]=Math.max(b,(S+b)/2)}var k=[Math.min(b,(h+b)/2),Math.max(b,(h+b)/2)];if(l(k[0],k[1],!1)||l(v[0],v[1],!0)){var w;return(w=r[u])===null||w===void 0?void 0:w.index}}else{var _=Math.min(y,g),A=Math.max(y,g);if(l((_+b)/2,(A+b)/2,!1)){var C;return(C=r[u])===null||C===void 0?void 0:C.index}}}else if(t)for(var N=0;N(L.coordinate+B.coordinate)/2||N>0&&N(L.coordinate+B.coordinate)/2&&e<=(L.coordinate+Q.coordinate)/2)return L.index}}return-1};var w_=()=>$e(cg),zM=(e,t)=>t,zW=(e,t,r)=>r,BM=(e,t,r,n)=>n,BW=ae(Za,e=>lu(e,t=>t.coordinate)),FM=ae([xu,zM,zW,BM],m_),UM=ae([FM,bu,hu,Fc],zc),FW=(e,t,r)=>{if(t!=null){var n=xu(e);return t==="axis"?r==="hover"?n.axisInteraction.hover.dataKey:n.axisInteraction.click.dataKey:r==="hover"?n.itemInteraction.hover.dataKey:n.itemInteraction.click.dataKey}},UW=ae([xu,zM,zW,BM],h_),vx=ae([qo,Ko,Bt,Fr,Za,BM,UW],g_),WW=ae([FM,vx],(e,t)=>{var r;return(r=e.coordinate)!==null&&r!==void 0?r:t}),WM=ae([Za,UM],u_),HW=ae([UW,UM,Ya,hu,WM,y_,zM],v_),qW=ae([FM,UM],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),Xme=(e,t,r,n,o,a,i)=>{if(!(!e||!r||!n||!o)&&LW(e,i)){var s=y7(e,t),l=LM(s,a,o,r,n),u=jW(t,o,l,e);return{activeIndex:String(l),activeCoordinate:u}}},Zme=(e,t,r,n,o,a,i)=>{if(!(!e||!n||!o||!a||!r)){var s=G9(e,r);if(s){var l=v7(s,t),u=LM(l,i,a,n,o),c=$W(t,a,u,s);return{activeIndex:String(u),activeCoordinate:c}}}},KW=(e,t,r,n,o,a,i,s)=>{if(!(!e||!t||!n||!o||!a))return t==="horizontal"||t==="vertical"?Xme(e,t,n,o,a,i,s):Zme(e,t,r,n,o,a,i)};var jg=Z(J()),tH=Z(oy());var VW=ae(e=>e.zIndex.zIndexMap,(e,t)=>t,(e,t,r)=>r,(e,t,r)=>{if(t!=null){var n=e[t];if(n!=null)return r?n.panoramaElement:n.element}}),GW=ae(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(n=>parseInt(n,10)).concat(Object.values(ir)),r=Array.from(new Set(t));return r.sort((n,o)=>n-o)},{memoizeOptions:{resultEqualityCheck:_F}});function YW(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function XW(e){for(var t=1;tXW(XW({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),ege)},rge=new Set(Object.values(ir));function nge(e){return rge.has(e)}var ZW=Cr({name:"zIndex",initialState:tge,reducers:{registerZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]?e.zIndexMap[r].consumers+=1:e.zIndexMap[r]={consumers:1,element:void 0,panoramaElement:void 0}},prepare:Ir()},unregisterZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(e.zIndexMap[r].consumers-=1,e.zIndexMap[r].consumers<=0&&!nge(r)&&delete e.zIndexMap[r])},prepare:Ir()},registerZIndexPortalElement:{reducer:(e,t)=>{var r=t.payload,n=r.zIndex,o=r.element,a=r.isPanorama;e.zIndexMap[n]?a?e.zIndexMap[n].panoramaElement=Zt(o):e.zIndexMap[n].element=Zt(o):e.zIndexMap[n]={consumers:0,element:a?void 0:Zt(o),panoramaElement:a?Zt(o):void 0}},prepare:Ir()},unregisterZIndexPortalElement:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(t.payload.isPanorama?e.zIndexMap[r].panoramaElement=void 0:e.zIndexMap[r].element=void 0)},prepare:Ir()}}}),S_=ZW.actions,JW=S_.registerZIndexPortal,k_=S_.unregisterZIndexPortal,QW=S_.registerZIndexPortalElement,RW=S_.unregisterZIndexPortalElement;var eH=ZW.reducer;function sn(e){var t=e.zIndex,r=e.children,n=I7(),o=n&&t!==void 0&&t!==0,a=Ar(),i=(0,jg.useRef)(void 0),s=(0,jg.useRef)(new Set),l=jt(),u=$e(d=>VW(d,t,a));if((0,jg.useLayoutEffect)(()=>{if(!o){var d=s.current;d.forEach(f=>{l(k_({zIndex:f}))}),d.clear(),i.current=void 0;return}if(s.current.has(t)||(l(JW({zIndex:t})),s.current.add(t)),u){i.current=u;var p=s.current;p.forEach(f=>{f!==t&&(l(k_({zIndex:f})),p.delete(f))})}},[l,t,o,u]),(0,jg.useLayoutEffect)(()=>{var d=s.current;return()=>{d.forEach(p=>{l(k_({zIndex:p}))}),d.clear()}},[l]),!o)return r;var c=u??i.current;return c?(0,tH.createPortal)(r,c):null}function HM(){return HM=Object.assign?Object.assign.bind():function(e){for(var t=1;t(0,A_.useContext)(qM);var bx=Z(J());var sH=Z(iH(),1);var lH=sH.default;var Lg=new lH;var N_="recharts.syncEvent.tooltip",VM="recharts.syncEvent.brush";var Uc=(e,t)=>{if(t&&Array.isArray(e)){var r=Number.parseInt(t,10);if(!Wo(r))return e[r]}},dge={chartName:"",tooltipPayloadSearcher:()=>{},eventEmitter:void 0,defaultTooltipEventType:"axis"},uH=Cr({name:"options",initialState:dge,reducers:{createEventEmitter:e=>{e.eventEmitter==null&&(e.eventEmitter=Symbol("rechartsEventEmitter"))}}}),cH=uH.reducer,dH=uH.actions.createEventEmitter;function pH(e){return e.tooltip.syncInteraction}var pge={chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},fH=Cr({name:"chartData",initialState:pge,reducers:{setChartData(e,t){if(e.chartData=Zt(t.payload),t.payload==null){e.dataStartIndex=0,e.dataEndIndex=0;return}t.payload.length>0&&e.dataEndIndex!==t.payload.length-1&&(e.dataEndIndex=t.payload.length-1)},setComputedData(e,t){e.computedData=t.payload},setDataStartEndIndexes(e,t){var r=t.payload,n=r.startIndex,o=r.endIndex;n!=null&&(e.dataStartIndex=n),o!=null&&(e.dataEndIndex=o)}}}),GM=fH.actions,YM=GM.setChartData,mH=GM.setDataStartEndIndexes,fge=GM.setComputedData;var gH=fH.reducer;var mge=["x","y"];function hH(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function zg(e){for(var t=1;tl.rootProps.className);(0,bx.useEffect)(()=>{if(e==null)return ka;var l=(u,c,d)=>{if(t!==d&&e===u){if(c.payload.active===!1){r(Mg({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(n==="index"){var p;if(i&&c!==null&&c!==void 0&&(p=c.payload)!==null&&p!==void 0&&p.coordinate&&c.payload.sourceViewBox){var f=c.payload.coordinate,m=f.x,y=f.y,b=vge(f,mge),g=c.payload.sourceViewBox,h=g.x,v=g.y,x=g.width,S=g.height,k=zg(zg({},b),{},{x:i.x+(x?(m-h)/x:0)*i.width,y:i.y+(S?(y-v)/S:0)*i.height});r(zg(zg({},c),{},{payload:zg(zg({},c.payload),{},{coordinate:k})}))}else r(c);return}if(o!=null){var w;if(typeof n=="function"){var _={activeTooltipIndex:c.payload.index==null?void 0:Number(c.payload.index),isTooltipActive:c.payload.active,activeIndex:c.payload.index==null?void 0:Number(c.payload.index),activeLabel:c.payload.label,activeDataKey:c.payload.dataKey,activeCoordinate:c.payload.coordinate},A=n(o,_);w=o[A]}else n==="value"&&(w=o.find(O=>String(O.value)===c.payload.label));var C=c.payload.coordinate;if(C==null||i==null){r(Mg({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(w==null){r(Mg({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:void 0}));return}var N=C.x,L=C.y,Q=Math.min(N,i.x+i.width),B=Math.min(L,i.y+i.height),K={x:a==="horizontal"?w.coordinate:Q,y:a==="horizontal"?B:w.coordinate},T=Mg({active:c.payload.active,coordinate:K,dataKey:c.payload.dataKey,index:String(w.index),label:c.payload.label,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:c.payload.graphicalItemId});r(T)}}};return Lg.on(N_,l),()=>{Lg.off(N_,l)}},[s,r,t,e,n,o,a,i])}function wge(){var e=$e(lk),t=$e(uk),r=jt();(0,bx.useEffect)(()=>{if(e==null)return ka;var n=(o,a,i)=>{t!==i&&e===o&&r(mH(a))};return Lg.on(VM,n),()=>{Lg.off(VM,n)}},[r,t,e])}function yH(){var e=jt();(0,bx.useEffect)(()=>{e(dH())},[e]),bge(),wge()}function vH(e,t,r,n,o,a){var i=$e(m=>FW(m,e,t)),s=$e(b_),l=$e(uk),u=$e(lk),c=$e(pP),d=$e(pH),p=d?.sourceViewBox!=null,f=ap();(0,bx.useEffect)(()=>{if(!p&&u!=null&&l!=null){var m=Mg({active:a,coordinate:r,dataKey:i,index:o,label:typeof n=="number"?String(n):n,sourceViewBox:f,graphicalItemId:s});Lg.emit(N_,u,m,l)}},[p,r,i,s,o,n,l,u,c,a,f])}function xH(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function bH(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{w(gW({shared:h,trigger:v,axisId:k,active:o,defaultIndex:_}))},[w,h,v,k,o,_]);var A=ap(),C=BS(),N=uW(h),L=(t=$e(R=>qW(R,N,v,_)))!==null&&t!==void 0?t:{},Q=L.activeIndex,B=L.isActive,K=$e(R=>HW(R,N,v,_)),T=$e(R=>WM(R,N,v,_)),O=$e(R=>WW(R,N,v,_)),I=K,P=oH(),j=(r=o??B)!==null&&r!==void 0?r:!1,M=Qw([I,j]),W=Cge(M,2),Y=W[0],z=W[1],V=N==="axis"?T:void 0;vH(N,v,O,V,Q,j);var q=S??P;if(q==null||A==null||N==null)return null;var oe=I??SH;j||(oe=SH),u&&oe.length&&(oe=Vw(oe.filter(R=>R.value!=null&&(R.hide!==!0||n.includeHidden)),p,Oge));var Me=oe.length>0,fe=bH(bH({},n),{},{payload:oe,label:V,active:j,activeIndex:Q,coordinate:O,accessibilityLayer:C}),le=os.createElement(o9,{allowEscapeViewBox:a,animationDuration:i,animationEasing:s,isAnimationActive:c,active:j,coordinate:O,hasPayload:Me,offset:d,position:f,reverseDirection:m,useTranslate3d:y,viewBox:A,wrapperStyle:b,lastBoundingBox:Y,innerRef:z,hasPortalFromProps:!!S},Pge(l,fe));return os.createElement(os.Fragment,null,(0,_H.createPortal)(le,q),j&&os.createElement(nH,{cursor:g,tooltipEventType:N,coordinate:O,payload:oe,index:Q}))}var wu=e=>null;wu.displayName="Cell";var ZM=Z(J()),M_=Z(J());function Ige(e,t,r){return(t=Dge(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Dge(e){var t=jge(e,"string");return typeof t=="symbol"?t:t+""}function jge(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var T_=class{constructor(t){Ige(this,"cache",new Map),this.maxSize=t}get(t){var r=this.cache.get(t);return r!==void 0&&(this.cache.delete(t),this.cache.set(t,r)),r}set(t,r){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxSize){var n=this.cache.keys().next().value;n!=null&&this.cache.delete(n)}this.cache.set(t,r)}clear(){this.cache.clear()}size(){return this.cache.size}};function CH(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function $ge(e){for(var t=1;t{try{var r=document.getElementById(EH);r||(r=document.createElement("span"),r.setAttribute("id",EH),r.setAttribute("aria-hidden","true"),document.body.appendChild(r)),Object.assign(r.style,Uge,t),r.textContent="".concat(e);var n=r.getBoundingClientRect();return{width:n.width,height:n.height}}catch{return{width:0,height:0}}},Op=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Qi.isSsr)return{width:0,height:0};if(!TH.enableCache)return NH(t,r);var n=Wge(t,r),o=AH.get(n);if(o)return o;var a=NH(t,r);return AH.set(n,a),a};var DH;function O_(e,t){return Vge(e)||Kge(e,t)||qge(e,t)||Hge()}function Hge(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function qge(e,t){if(e){if(typeof e=="string")return OH(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?OH(e,t):void 0}}function OH(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.children,r=e.breakAll,n=e.style;try{var o=[];ar(t)||(r?o=t.toString().split(""):o=t.toString().split(UH));var a=o.map(s=>({word:s,width:Op(s,n).width})),i=r?0:Op("\xA0",n).width;return{wordsWithComputedWidth:a,spaceWidth:i}}catch{return null}};function I_(e){return e==="start"||e==="middle"||e==="end"||e==="inherit"}function HH(e){return ar(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var qH=(e,t,r,n)=>e.reduce((o,a)=>{var i=a.word,s=a.width,l=o[o.length-1];if(l&&s!=null&&(t==null||n||l.width+s+re.reduce((t,r)=>t.width>r.width?t:r),phe="\u2026",BH=(e,t,r,n,o,a,i,s)=>{var l=e.slice(0,t),u=WH({breakAll:r,style:n,children:l+phe});if(!u)return[!1,[]];var c=qH(u.wordsWithComputedWidth,a,i,s),d=c.length>o||KH(c).width>Number(a);return[d,c]},fhe=(e,t,r,n,o)=>{var a=e.maxLines,i=e.children,s=e.style,l=e.breakAll,u=De(a),c=String(i),d=qH(t,n,r,o);if(!u||o)return d;var p=d.length>a||KH(d).width>Number(n);if(!p)return d;for(var f=0,m=c.length-1,y=0,b;f<=m&&y<=c.length-1;){var g=Math.floor((f+m)/2),h=g-1,v=BH(c,h,l,s,a,n,r,o),x=LH(v,2),S=x[0],k=x[1],w=BH(c,g,l,s,a,n,r,o),_=LH(w,1),A=_[0];if(!S&&!A&&(f=g+1),S&&A&&(m=g-1),!S&&A){b=k;break}y++}return b||d},FH=e=>{var t=ar(e)?[]:e.toString().split(UH);return[{words:t,width:void 0}]},mhe=e=>{var t=e.width,r=e.scaleToFit,n=e.children,o=e.style,a=e.breakAll,i=e.maxLines;if((t||r)&&!Qi.isSsr){var s,l,u=WH({breakAll:a,children:n,style:o});if(u){var c=u.wordsWithComputedWidth,d=u.spaceWidth;s=c,l=d}else return FH(n);return fhe({breakAll:a,children:n,maxLines:i,style:o},s,l,t,!!r)}return FH(n)},VH="#808080",ghe={angle:0,breakAll:!1,capHeight:"0.71em",fill:VH,lineHeight:"1em",scaleToFit:!1,textAnchor:"start",verticalAnchor:"end",x:0,y:0},Pp=(0,M_.forwardRef)((e,t)=>{var r=nr(e,ghe),n=r.x,o=r.y,a=r.lineHeight,i=r.capHeight,s=r.fill,l=r.scaleToFit,u=r.textAnchor,c=r.verticalAnchor,d=$H(r,ahe),p=(0,M_.useMemo)(()=>mhe({breakAll:d.breakAll,children:d.children,maxLines:d.maxLines,scaleToFit:l,style:d.style,width:d.width}),[d.breakAll,d.children,d.maxLines,l,d.style,d.width]),f=d.dx,m=d.dy,y=d.angle,b=d.className,g=d.breakAll,h=$H(d,ihe);if(!Sa(n)||!Sa(o)||p.length===0)return null;var v=Number(n)+(De(f)?f:0),x=Number(o)+(De(m)?m:0);if(!Ot(v)||!Ot(x))return null;var S;switch(c){case"start":S=P_("calc(".concat(i,")"));break;case"middle":S=P_("calc(".concat((p.length-1)/2," * -").concat(a," + (").concat(i," / 2))"));break;default:S=P_("calc(".concat(p.length-1," * -").concat(a,")"));break}var k=[],w=p[0];if(l&&w!=null){var _=w.width,A=d.width;k.push("scale(".concat(De(A)&&De(_)?A/_:1,")"))}return y&&k.push("rotate(".concat(y,", ").concat(v,", ").concat(x,")")),k.length&&(h.transform=k.join(" ")),ZM.createElement("text",XM({},yn(h),{ref:t,x:v,y:x,className:bt("recharts-text",b),textAnchor:u,fill:s.includes("url")?VH:s}),p.map((C,N)=>{var L=C.words.join(g?"":" ");return ZM.createElement("tspan",{x:v,dy:N===0?S:a,key:"".concat(L,"-").concat(N)},L)}))});Pp.displayName="Text";var Ja=Z(J()),No=Z(J());var hhe=["labelRef"],yhe=["content"];function GH(e,t){if(e==null)return{};var r,n,o=vhe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n{var t=e.x,r=e.y,n=e.upperWidth,o=e.lowerWidth,a=e.width,i=e.height,s=e.children,l=(0,No.useMemo)(()=>({x:t,y:r,upperWidth:n,lowerWidth:o,width:a,height:i}),[t,r,n,o,a,i]);return Ja.createElement(XH.Provider,{value:l},s)},JH=()=>{var e=(0,No.useContext)(XH),t=ap();return e||(t?uv(t):void 0)},QH=(0,No.createContext)(null),RH=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,o=e.outerRadius,a=e.startAngle,i=e.endAngle,s=e.clockWise,l=e.children,u=(0,No.useMemo)(()=>({cx:t,cy:r,innerRadius:n,outerRadius:o,startAngle:a,endAngle:i,clockWise:s}),[t,r,n,o,a,i,s]);return Ja.createElement(QH.Provider,{value:u},l)},She=()=>{var e=(0,No.useContext)(QH),t=$e(mk);return e||t},khe=e=>{var t=e.value,r=e.formatter,n=ar(e.children)?t:e.children;return typeof r=="function"?r(n):n},Ip=e=>e!=null&&typeof e=="function",_he=(e,t)=>{var r=Qr(t-e),n=Math.min(Math.abs(t-e),360);return r*n},Che=(e,t,r,n,o)=>{var a=e.offset,i=e.className,s=o.cx,l=o.cy,u=o.innerRadius,c=o.outerRadius,d=o.startAngle,p=o.endAngle,f=o.clockWise,m=(u+c)/2,y=_he(d,p),b=y>=0?1:-1,g,h;switch(t){case"insideStart":g=d+b*a,h=f;break;case"insideEnd":g=p-b*a,h=!f;break;case"end":g=p+b*a,h=f;break;default:throw new Error("Unsupported position ".concat(t))}h=y<=0?h:!h;var v=an(s,l,m,g),x=an(s,l,m,g+(h?1:-1)*359),S="M".concat(v.x,",").concat(v.y,` + A`,",",",0,0,",",",",","Z"])),N.x,N.y,a,a,+(c<0),C.x,C.y,n,n,+(J>180),+(c>0),k.x,k.y,a,a,+(c<0),w.x,w.y)}else x+=Co(uF||(uF=sp(["L",",","Z"])),t,r);return x},Ice={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},RS=e=>{var t=nr(e,Ice),r=t.cx,n=t.cy,o=t.innerRadius,a=t.outerRadius,i=t.cornerRadius,s=t.forceCornerRadius,l=t.cornerIsExternal,u=t.startAngle,c=t.endAngle,d=t.className;if(a0&&Math.abs(u-c)<360?y=Mce({cx:r,cy:n,innerRadius:o,outerRadius:a,cornerRadius:Math.min(m,f/2),forceCornerRadius:s,cornerIsExternal:l,startAngle:u,endAngle:c}):y=dF({cx:r,cy:n,innerRadius:o,outerRadius:a,startAngle:u,endAngle:c}),cF.createElement("path",iP({},yn(t),{className:p,d:y}))};function pF(e,t,r){if(e==="horizontal")return[{x:t.x,y:r.top},{x:t.x,y:r.top+r.height}];if(e==="vertical")return[{x:r.left,y:t.y},{x:r.left+r.width,y:t.y}];if(ww(t)){if(e==="centric"){var n=t.cx,o=t.cy,a=t.innerRadius,i=t.outerRadius,s=t.angle,l=an(n,o,a,s),u=an(n,o,i,s);return[{x:l.x,y:l.y},{x:u.x,y:u.y}]}return JS(t)}}function fF(e){return Jw(e)?NaN:Number(e)}function ek(e){return e?(e=fF(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function tk(e,t,r){r&&typeof r!="number"&&vv(e,t,r)&&(t=r=void 0),e=ek(e),t===void 0?(t=e,e=0):t=ek(t),r=r===void 0?ee.chartData,lp=ae([Za],e=>{var t=e.chartData!=null?e.chartData.length-1:0;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),up=(e,t,r,n)=>n?lp(e):Za(e),rk=(e,t,r)=>r?lp(e):Za(e),mF=ae([up],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]}),gF=ae([lp],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]}),hF=ae([Za],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]});function sP(e,t){return Lce(e)||$ce(e,t)||jce(e,t)||Dce()}function Dce(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function jce(e,t){if(e){if(typeof e=="string")return yF(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?yF(e,t):void 0}}function yF(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=jv(e,2),r=t[0],n=t[1],o=r,a=n;return r>n&&(o=n,a=r),[o,a]},pP=(e,t,r)=>{if(e.lte(0))return new wr.default(0);var n=cP(e.toNumber()),o=new wr.default(10).pow(n),a=e.div(o),i=n!==1?.05:.1,s=new wr.default(Math.ceil(a.div(i).toNumber())).add(r).mul(i),l=s.mul(o);return t?new wr.default(l.toNumber()):new wr.default(Math.ceil(l.toNumber()))},kF=(e,t,r)=>{var n;if(e.lte(0))return new wr.default(0);var o=[1,2,2.5,5],a=e.toNumber(),i=Math.floor(new wr.default(a).abs().log(10).toNumber()),s=new wr.default(10).pow(i),l=e.div(s).toNumber(),u=o.findIndex(f=>f>=l-1e-10);if(u===-1&&(s=s.mul(10),u=0),u+=r,u>=o.length){var c=Math.floor(u/o.length);u%=o.length,s=s.mul(new wr.default(10).pow(c))}var d=(n=o[u])!==null&&n!==void 0?n:1,p=new wr.default(d).mul(s);return t?p:new wr.default(Math.ceil(p.toNumber()))},Wce=(e,t,r)=>{var n=new wr.default(1),o=new wr.default(e);if(!o.isint()&&r){var a=Math.abs(e);a<1?(n=new wr.default(10).pow(cP(e)-1),o=new wr.default(Math.floor(o.div(n).toNumber())).mul(n)):a>1&&(o=new wr.default(Math.floor(e)))}else e===0?o=new wr.default(Math.floor((t-1)/2)):r||(o=new wr.default(Math.floor(e)));for(var i=Math.floor((t-1)/2),s=[],l=0;l4&&arguments[4]!==void 0?arguments[4]:0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:pP;if(!Number.isFinite((r-t)/(n-1)))return{step:new wr.default(0),tickMin:new wr.default(0),tickMax:new wr.default(0)};var s=i(new wr.default(r).sub(t).div(n-1),o,a),l;t<=0&&r>=0?l=new wr.default(0):(l=new wr.default(t).add(r).div(2),l=l.sub(new wr.default(l).mod(s)));var u=Math.ceil(l.sub(t).div(s).toNumber()),c=Math.ceil(new wr.default(r).sub(l).div(s).toNumber()),d=u+c+1;return d>n?_F(t,r,n,o,a+1,i):(d0?c+(n-d):c,u=r>0?u:u+(n-d)),{step:s,tickMin:l.sub(new wr.default(u).mul(s)),tickMax:l.add(new wr.default(c).mul(s))})};var ak=function(t){var r=jv(t,2),n=r[0],o=r[1],a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",l=Math.max(a,2),u=SF([n,o]),c=jv(u,2),d=c[0],p=c[1];if(d===-1/0||p===1/0){var f=p===1/0?[d,...Array(a-1).fill(1/0)]:[...Array(a-1).fill(-1/0),p];return n>o?f.reverse():f}if(d===p)return Wce(d,a,i);var m=s==="snap125"?kF:pP,y=_F(d,p,l,i,0,m),b=y.step,g=y.tickMin,h=y.tickMax,v=dP(g,h.add(new wr.default(.1).mul(b)),b);return n>o?v.reverse():v},ik=function(t,r){var n=jv(t,2),o=n[0],a=n[1],i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",l=SF([o,a]),u=jv(l,2),c=u[0],d=u[1];if(c===-1/0||d===1/0)return[o,a];if(c===d)return[c];var p=s==="snap125"?kF:pP,f=Math.max(r,2),m=p(new wr.default(d).sub(c).div(f-1),i,0),y=[...dP(new wr.default(c),new wr.default(d),m),d];if(i===!1){y=y.map(g=>Math.round(g));var b=y.length-1;b>0&&y[b]===y[b-1]&&(y=y.slice(0,b))}return o>a?y.reverse():y};var fP=e=>e.rootProps.maxBarSize,CF=e=>e.rootProps.barGap,sk=e=>e.rootProps.barCategoryGap,AF=e=>e.rootProps.barSize,Ec=e=>e.rootProps.stackOffset,lk=e=>e.rootProps.reverseStackOrder,cg=e=>e.options.chartName,uk=e=>e.rootProps.syncId,mP=e=>e.rootProps.syncMethod,ck=e=>e.options.eventEmitter,EF=e=>e.rootProps.baseValue;var ir={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3};var Nc={allowDecimals:!1,allowDuplicatedCategory:!0,allowDataOverflow:!1,angle:0,angleAxisId:0,axisLine:!0,axisLineType:"polygon",cx:0,cy:0,hide:!1,includeHidden:!1,label:!1,niceTicks:"auto",orientation:"outer",reversed:!1,scale:"auto",tick:!0,tickLine:!0,tickSize:8,type:"auto",zIndex:ir.axis};var Is={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!0,angle:0,axisLine:!0,includeHidden:!1,hide:!1,niceTicks:"auto",label:!1,orientation:"right",radiusAxisId:0,reversed:!1,scale:"auto",stroke:"#ccc",tick:!0,tickCount:5,tickLine:!0,type:"auto",zIndex:ir.axis};var cp=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function dp(e,t,r){if(r!=="auto")return r;if(e!=null)return la(e,t)?"category":"number"}function NF(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function dk(e){for(var t=1;t{if(t!=null)return e.polarAxis.angleAxis[t]},pk=ae([Vce,jS],(e,t)=>{var r;if(e!=null)return e;var n=(r=dp(t,"angleAxis",TF.type))!==null&&r!==void 0?r:"category";return dk(dk({},TF),{},{type:n})}),Gce=(e,t)=>e.polarAxis.radiusAxis[t],fk=ae([Gce,jS],(e,t)=>{var r;if(e!=null)return e;var n=(r=dp(t,"radiusAxis",OF.type))!==null&&r!==void 0?r:"category";return dk(dk({},OF),{},{type:n})}),mk=e=>e.polarOptions,gP=ae([qo,Ko,Fr],ZS),PF=ae([mk,gP],(e,t)=>{if(e!=null)return $n(e.innerRadius,t,0)}),MF=ae([mk,gP],(e,t)=>{if(e!=null)return $n(e.outerRadius,t,t*.8)}),Yce=e=>{if(e==null)return[0,0];var t=e.startAngle,r=e.endAngle;return[t,r]},hP=ae([mk],Yce),l3e=ae([pk,hP],cp),yP=ae([gP,PF,MF],(e,t,r)=>{if(!(e==null||t==null||r==null))return[t,r]}),u3e=ae([fk,yP],cp),gk=ae([Bt,mk,PF,MF,qo,Ko],(e,t,r,n,o,a)=>{if(!(e!=="centric"&&e!=="radial"||t==null||r==null||n==null)){var i=t.cx,s=t.cy,l=t.startAngle,u=t.endAngle;return{cx:$n(i,o,o/2),cy:$n(s,a,a/2),innerRadius:r,outerRadius:n,startAngle:l,endAngle:u,clockWise:!1}}});var vn=(e,t)=>t;var pp=(e,t,r)=>r;function Tc(e){return e?.id}function hk(e,t,r){var n=t.chartData,o=n===void 0?[]:n,a=r.allowDuplicatedCategory,i=r.dataKey,s=new Map;return e.forEach(l=>{var u,c=(u=l.data)!==null&&u!==void 0?u:o;if(!(c==null||c.length===0)){var d=Tc(l);c.forEach((p,f)=>{var m=i==null||a?f:String(Ht(p,i,null)),y=Ht(p,l.dataKey,0),b;s.has(m)?b=s.get(m):b={},Object.assign(b,{[d]:y}),s.set(m,b)})}}),Array.from(s.values())}function fp(e){return"stackId"in e&&e.stackId!=null&&e.dataKey!=null}var mp=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function dg(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function IF(e,t){if(e.length===t.length){for(var r=0;r{var t=Bt(e);return t==="horizontal"?"xAxis":t==="vertical"?"yAxis":t==="centric"?"angleAxis":"radiusAxis"};var Oc=e=>e.tooltip.settings.axisId;function $v(e){if(e!=null){var t=e.ticks,r=e.bandwidth,n=e.range(),o=[Math.min(...n),Math.max(...n)];return{domain:()=>e.domain(),range:(function(a){function i(){return a.apply(this,arguments)}return i.toString=function(){return a.toString()},i})(()=>o),rangeMin:()=>o[0],rangeMax:()=>o[1],isInRange(a){var i=o[0],s=o[1];return i<=s?a>=i&&a<=s:a>=s&&a<=i},bandwidth:r?()=>r.call(e):void 0,ticks:t?a=>t.call(e,a):void 0,map:(a,i)=>{var s=e(a);if(s!=null){if(e.bandwidth&&i!==null&&i!==void 0&&i.position){var l=e.bandwidth();switch(i.position){case"middle":s+=l/2;break;case"end":s+=l;break;default:break}}return s}}}}}var yk=(e,t)=>{if(t!=null)switch(e){case"linear":{if(!ki(t)){for(var r,n,o=0;on)&&(n=a))}return r!==void 0&&n!==void 0?[r,n]:void 0}return t}default:return t}};var nx={};Ite(nx,{scaleBand:()=>Fv,scaleDiverging:()=>Qk,scaleDivergingLog:()=>ZP,scaleDivergingPow:()=>Rk,scaleDivergingSqrt:()=>tW,scaleDivergingSymlog:()=>JP,scaleIdentity:()=>$k,scaleImplicit:()=>_k,scaleLinear:()=>jk,scaleLog:()=>Lk,scaleOrdinal:()=>mg,scalePoint:()=>FF,scalePow:()=>Jv,scaleQuantile:()=>Fk,scaleQuantize:()=>Uk,scaleRadial:()=>Bk,scaleSequential:()=>Yk,scaleSequentialLog:()=>YP,scaleSequentialPow:()=>Xk,scaleSequentialQuantile:()=>Zk,scaleSequentialSqrt:()=>eW,scaleSequentialSymlog:()=>XP,scaleSqrt:()=>SU,scaleSymlog:()=>zk,scaleThreshold:()=>Wk,scaleTime:()=>VP,scaleUtc:()=>GP,tickFormat:()=>Vv});function Aa(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function vP(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function gp(e){let t,r,n;e.length!==2?(t=Aa,r=(s,l)=>Aa(e(s),l),n=(s,l)=>e(s)-l):(t=e===Aa||e===vP?e:Xce,r=e,n=e);function o(s,l,u=0,c=s.length){if(u>>1;r(s[d],l)<0?u=d+1:c=d}while(u>>1;r(s[d],l)<=0?u=d+1:c=d}while(uu&&n(s[d-1],l)>-n(s[d],l)?d-1:d}return{left:o,center:i,right:a}}function Xce(){return 0}function Lv(e){return e===null?NaN:+e}function*DF(e,t){if(t===void 0)for(let r of e)r!=null&&(r=+r)>=r&&(yield r);else{let r=-1;for(let n of e)(n=t(n,++r,e))!=null&&(n=+n)>=n&&(yield n)}}var jF=gp(Aa),$F=jF.right,Zce=jF.left,Jce=gp(Lv).center,Ds=$F;var pg=class extends Map{constructor(t,r=ede){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(let[n,o]of t)this.set(n,o)}get(t){return super.get(LF(this,t))}has(t){return super.has(LF(this,t))}set(t,r){return super.set(Qce(this,t),r)}delete(t){return super.delete(Rce(this,t))}};function LF({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):r}function Qce({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function Rce({_intern:e,_key:t},r){let n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function ede(e){return e!==null&&typeof e=="object"?e.valueOf():e}function zF(e=Aa){if(e===Aa)return xP;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,r)=>{let n=e(t,r);return n||n===0?n:(e(r,r)===0)-(e(t,t)===0)}}function xP(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}var tde=Math.sqrt(50),rde=Math.sqrt(10),nde=Math.sqrt(2);function vk(e,t,r){let n=(t-e)/Math.max(0,r),o=Math.floor(Math.log10(n)),a=n/Math.pow(10,o),i=a>=tde?10:a>=rde?5:a>=nde?2:1,s,l,u;return o<0?(u=Math.pow(10,-o)/i,s=Math.round(e*u),l=Math.round(t*u),s/ut&&--l,u=-u):(u=Math.pow(10,o)*i,s=Math.round(e/u),l=Math.round(t/u),s*ut&&--l),l0))return[];if(e===t)return[e];let n=t=o))return[];let s=a-o+1,l=new Array(s);if(n)if(i<0)for(let u=0;u=n)&&(r=n);else{let n=-1;for(let o of e)(o=t(o,++n,e))!=null&&(r=o)&&(r=o)}return r}function bk(e,t){let r;if(t===void 0)for(let n of e)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let o of e)(o=t(o,++n,e))!=null&&(r>o||r===void 0&&o>=o)&&(r=o)}return r}function wk(e,t,r=0,n=1/0,o){if(t=Math.floor(t),r=Math.floor(Math.max(0,r)),n=Math.floor(Math.min(e.length-1,n)),!(r<=t&&t<=n))return e;for(o=o===void 0?xP:zF(o);n>r;){if(n-r>600){let l=n-r+1,u=t-r+1,c=Math.log(l),d=.5*Math.exp(2*c/3),p=.5*Math.sqrt(c*d*(l-d)/l)*(u-l/2<0?-1:1),f=Math.max(r,Math.floor(t-u*d/l+p)),m=Math.min(n,Math.floor(t+(l-u)*d/l+p));wk(e,t,f,m,o)}let a=e[t],i=r,s=n;for(Bv(e,r,t),o(e[n],a)>0&&Bv(e,r,n);i0;)--s}o(e[r],a)===0?Bv(e,r,s):(++s,Bv(e,s,n)),s<=t&&(r=s+1),t<=s&&(n=s-1)}return e}function Bv(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}function Sk(e,t,r){if(e=Float64Array.from(DF(e,r)),!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return bk(e);if(t>=1)return xk(e);var n,o=(n-1)*t,a=Math.floor(o),i=xk(wk(e,a).subarray(0,a+1)),s=bk(e.subarray(a+1));return i+(s-i)*(o-a)}}function bP(e,t,r=Lv){if(!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return+r(e[0],0,e);if(t>=1)return+r(e[n-1],n-1,e);var n,o=(n-1)*t,a=Math.floor(o),i=+r(e[a],a,e),s=+r(e[a+1],a+1,e);return i+(s-i)*(o-a)}}function kk(e,t,r){e=+e,t=+t,r=(o=arguments.length)<2?(t=e,e=0,1):o<3?1:+r;for(var n=-1,o=Math.max(0,Math.ceil((t-e)/r))|0,a=new Array(o);++n>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?Ak(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?Ak(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=ade.exec(e))?new Ja(t[1],t[2],t[3],1):(t=ide.exec(e))?new Ja(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=sde.exec(e))?Ak(t[1],t[2],t[3],t[4]):(t=lde.exec(e))?Ak(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=ude.exec(e))?GF(t[1],t[2]/100,t[3]/100,1):(t=cde.exec(e))?GF(t[1],t[2]/100,t[3]/100,t[4]):UF.hasOwnProperty(e)?qF(UF[e]):e==="transparent"?new Ja(NaN,NaN,NaN,0):null}function qF(e){return new Ja(e>>16&255,e>>8&255,e&255,1)}function Ak(e,t,r,n){return n<=0&&(e=t=r=NaN),new Ja(e,t,r,n)}function fde(e){return e instanceof Hv||(e=Pc(e)),e?(e=e.rgb(),new Ja(e.r,e.g,e.b,e.opacity)):new Ja}function hg(e,t,r,n){return arguments.length===1?fde(e):new Ja(e,t,r,n??1)}function Ja(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}Ck(Ja,hg,wP(Hv,{brighter(e){return e=e==null?Nk:Math.pow(Nk,e),new Ja(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Uv:Math.pow(Uv,e),new Ja(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Ja(vp(this.r),vp(this.g),vp(this.b),Tk(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:KF,formatHex:KF,formatHex8:mde,formatRgb:VF,toString:VF}));function KF(){return`#${yp(this.r)}${yp(this.g)}${yp(this.b)}`}function mde(){return`#${yp(this.r)}${yp(this.g)}${yp(this.b)}${yp((isNaN(this.opacity)?1:this.opacity)*255)}`}function VF(){let e=Tk(this.opacity);return`${e===1?"rgb(":"rgba("}${vp(this.r)}, ${vp(this.g)}, ${vp(this.b)}${e===1?")":`, ${e})`}`}function Tk(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function vp(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function yp(e){return e=vp(e),(e<16?"0":"")+e.toString(16)}function GF(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new js(e,t,r,n)}function XF(e){if(e instanceof js)return new js(e.h,e.s,e.l,e.opacity);if(e instanceof Hv||(e=Pc(e)),!e)return new js;if(e instanceof js)return e;e=e.rgb();var t=e.r/255,r=e.g/255,n=e.b/255,o=Math.min(t,r,n),a=Math.max(t,r,n),i=NaN,s=a-o,l=(a+o)/2;return s?(t===a?i=(r-n)/s+(r0&&l<1?0:i,new js(i,s,l,e.opacity)}function ZF(e,t,r,n){return arguments.length===1?XF(e):new js(e,t,r,n??1)}function js(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}Ck(js,ZF,wP(Hv,{brighter(e){return e=e==null?Nk:Math.pow(Nk,e),new js(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Uv:Math.pow(Uv,e),new js(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,o=2*r-n;return new Ja(SP(e>=240?e-240:e+120,o,n),SP(e,o,n),SP(e<120?e+240:e-120,o,n),this.opacity)},clamp(){return new js(YF(this.h),Ek(this.s),Ek(this.l),Tk(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=Tk(this.opacity);return`${e===1?"hsl(":"hsla("}${YF(this.h)}, ${Ek(this.s)*100}%, ${Ek(this.l)*100}%${e===1?")":`, ${e})`}`}}));function YF(e){return e=(e||0)%360,e<0?e+360:e}function Ek(e){return Math.max(0,Math.min(1,e||0))}function SP(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}function kP(e,t,r,n,o){var a=e*e,i=a*e;return((1-3*e+3*a-i)*t+(4-6*a+3*i)*r+(1+3*e+3*a-3*i)*n+i*o)/6}function JF(e){var t=e.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,t-1):Math.floor(r*t),o=e[n],a=e[n+1],i=n>0?e[n-1]:2*o-a,s=n()=>e;function gde(e,t){return function(r){return e+r*t}}function hde(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(n){return Math.pow(e+n*t,r)}}function RF(e){return(e=+e)==1?Ok:function(t,r){return r-t?hde(t,r,e):qv(isNaN(t)?r:t)}}function Ok(e,t){var r=t-e;return r?gde(e,r):qv(isNaN(e)?t:e)}var _P=(function e(t){var r=RF(t);function n(o,a){var i=r((o=hg(o)).r,(a=hg(a)).r),s=r(o.g,a.g),l=r(o.b,a.b),u=Ok(o.opacity,a.opacity);return function(c){return o.r=i(c),o.g=s(c),o.b=l(c),o.opacity=u(c),o+""}}return n.gamma=e,n})(1);function eU(e){return function(t){var r=t.length,n=new Array(r),o=new Array(r),a=new Array(r),i,s;for(i=0;ir&&(a=t.slice(r,a),s[i]?s[i]+=a:s[++i]=a),(n=n[0])===(o=o[0])?s[i]?s[i]+=o:s[++i]=o:(s[++i]=null,l.push({i,x:Mc(n,o)})),r=CP.lastIndex;return rt&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function bde(e,t,r){var n=e[0],o=e[1],a=t[0],i=t[1];return o2?wde:bde,l=u=null,d}function d(p){return p==null||isNaN(p=+p)?a:(l||(l=s(e.map(n),t,r)))(n(i(p)))}return d.invert=function(p){return i(o((u||(u=s(t,e.map(n),Mc)))(p)))},d.domain=function(p){return arguments.length?(e=Array.from(p,Ic),c()):e.slice()},d.range=function(p){return arguments.length?(t=Array.from(p),c()):t.slice()},d.rangeRound=function(p){return t=Array.from(p),r=xp,c()},d.clamp=function(p){return arguments.length?(i=p?!0:Eo,c()):i!==Eo},d.interpolate=function(p){return arguments.length?(r=p,c()):r},d.unknown=function(p){return arguments.length?(a=p,d):a},function(p,f){return n=p,o=f,c()}}function wp(){return bp()(Eo,Eo)}function lU(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Sp(e,t){if(!isFinite(e)||e===0)return null;var r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),n=e.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+e.slice(r+1)]}function fl(e){return e=Sp(Math.abs(e)),e?e[1]:NaN}function uU(e,t){return function(r,n){for(var o=r.length,a=[],i=0,s=e[0],l=0;o>0&&s>0&&(l+s+1>n&&(s=Math.max(1,n-l)),a.push(r.substring(o-=s,o+s)),!((l+=s+1)>n));)s=e[i=(i+1)%e.length];return a.reverse().join(t)}}function cU(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var Sde=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function ml(e){if(!(t=Sde.exec(e)))throw new Error("invalid format: "+e);var t;return new Mk({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}ml.prototype=Mk.prototype;function Mk(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}Mk.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function dU(e){e:for(var t=e.length,r=1,n=-1,o;r0&&(n=0);break}return n>0?e.slice(0,n)+e.slice(o+1):e}var Kv;function pU(e,t){var r=Sp(e,t);if(!r)return Kv=void 0,e.toPrecision(t);var n=r[0],o=r[1],a=o-(Kv=Math.max(-8,Math.min(8,Math.floor(o/3)))*3)+1,i=n.length;return a===i?n:a>i?n+new Array(a-i+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+Sp(e,Math.max(0,t+a-1))[0]}function TP(e,t){var r=Sp(e,t);if(!r)return e+"";var n=r[0],o=r[1];return o<0?"0."+new Array(-o).join("0")+n:n.length>o+1?n.slice(0,o+1)+"."+n.slice(o+1):n+new Array(o-n.length+2).join("0")}var OP={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:lU,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>TP(e*100,t),r:TP,s:pU,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function PP(e){return e}var fU=Array.prototype.map,mU=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function gU(e){var t=e.grouping===void 0||e.thousands===void 0?PP:uU(fU.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",n=e.currency===void 0?"":e.currency[1]+"",o=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?PP:cU(fU.call(e.numerals,String)),i=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"\u2212":e.minus+"",l=e.nan===void 0?"NaN":e.nan+"";function u(d,p){d=ml(d);var f=d.fill,m=d.align,y=d.sign,b=d.symbol,g=d.zero,h=d.width,v=d.comma,x=d.precision,S=d.trim,k=d.type;k==="n"?(v=!0,k="g"):OP[k]||(x===void 0&&(x=12),S=!0,k="g"),(g||f==="0"&&m==="=")&&(g=!0,f="0",m="=");var w=(p&&p.prefix!==void 0?p.prefix:"")+(b==="$"?r:b==="#"&&/[boxX]/.test(k)?"0"+k.toLowerCase():""),_=(b==="$"?n:/[%p]/.test(k)?i:"")+(p&&p.suffix!==void 0?p.suffix:""),A=OP[k],C=/[defgprs%]/.test(k);x=x===void 0?6:/[gprs]/.test(k)?Math.max(1,Math.min(21,x)):Math.max(0,Math.min(20,x));function N(L){var J=w,B=_,K,T,P;if(k==="c")B=A(L)+B,L="";else{L=+L;var I=L<0||1/L<0;if(L=isNaN(L)?l:A(Math.abs(L),x),S&&(L=dU(L)),I&&+L==0&&y!=="+"&&(I=!1),J=(I?y==="("?y:s:y==="-"||y==="("?"":y)+J,B=(k==="s"&&!isNaN(L)&&Kv!==void 0?mU[8+Kv/3]:"")+B+(I&&y==="("?")":""),C){for(K=-1,T=L.length;++KP||P>57){B=(P===46?o+L.slice(K+1):L.slice(K))+B,L=L.slice(0,K);break}}}v&&!g&&(L=t(L,1/0));var M=J.length+L.length+B.length,j=M>1)+J+L+B+j.slice(M);break;default:L=j+J+L+B;break}return a(L)}return N.toString=function(){return d+""},N}function c(d,p){var f=Math.max(-8,Math.min(8,Math.floor(fl(p)/3)))*3,m=Math.pow(10,-f),y=u((d=ml(d),d.type="f",d),{suffix:mU[8+f/3]});return function(b){return y(m*b)}}return{format:u,formatPrefix:c}}var Ik,yg,Dk;MP({thousands:",",grouping:[3],currency:["$",""]});function MP(e){return Ik=gU(e),yg=Ik.format,Dk=Ik.formatPrefix,Ik}function IP(e){return Math.max(0,-fl(Math.abs(e)))}function DP(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(fl(t)/3)))*3-fl(Math.abs(e)))}function jP(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,fl(t)-fl(e))+1}function Vv(e,t,r,n){var o=fg(e,t,r),a;switch(n=ml(n??",f"),n.type){case"s":{var i=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(a=DP(o,i))&&(n.precision=a),Dk(n,i)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(a=jP(o,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=a-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(a=IP(o))&&(n.precision=a-(n.type==="%")*2);break}}return yg(n)}function Ea(e){var t=e.domain;return e.ticks=function(r){var n=t();return hp(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var o=t();return Vv(o[0],o[o.length-1],r??10,n)},e.nice=function(r){r==null&&(r=10);var n=t(),o=0,a=n.length-1,i=n[o],s=n[a],l,u,c=10;for(s0;){if(u=zv(i,s,r),u===l)return n[o]=i,n[a]=s,t(n);if(u>0)i=Math.floor(i/u)*u,s=Math.ceil(s/u)*u;else if(u<0)i=Math.ceil(i*u)/u,s=Math.floor(s*u)/u;else break;l=u}return e},e}function jk(){var e=wp();return e.copy=function(){return pl(e,jk())},An.apply(e,arguments),Ea(e)}function $k(e){var t;function r(n){return n==null||isNaN(n=+n)?t:n}return r.invert=r,r.domain=r.range=function(n){return arguments.length?(e=Array.from(n,Ic),r):e.slice()},r.unknown=function(n){return arguments.length?(t=n,r):t},r.copy=function(){return $k(e).unknown(t)},e=arguments.length?Array.from(e,Ic):[0,1],Ea(r)}function Gv(e,t){e=e.slice();var r=0,n=e.length-1,o=e[r],a=e[n],i;return aMath.pow(e,t)}function Ede(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function vU(e){return(t,r)=>-e(-t,r)}function Yv(e){let t=e(hU,yU),r=t.domain,n=10,o,a;function i(){return o=Ede(n),a=Ade(n),r()[0]<0?(o=vU(o),a=vU(a),e(kde,_de)):e(hU,yU),t}return t.base=function(s){return arguments.length?(n=+s,i()):n},t.domain=function(s){return arguments.length?(r(s),i()):r()},t.ticks=s=>{let l=r(),u=l[0],c=l[l.length-1],d=c0){for(;p<=f;++p)for(m=1;mc)break;g.push(y)}}else for(;p<=f;++p)for(m=n-1;m>=1;--m)if(y=p>0?m/a(-p):m*a(p),!(yc)break;g.push(y)}g.length*2{if(s==null&&(s=10),l==null&&(l=n===10?"s":","),typeof l!="function"&&(!(n%1)&&(l=ml(l)).precision==null&&(l.trim=!0),l=yg(l)),s===1/0)return l;let u=Math.max(1,n*s/t.ticks().length);return c=>{let d=c/a(Math.round(o(c)));return d*nr(Gv(r(),{floor:s=>a(Math.floor(o(s))),ceil:s=>a(Math.ceil(o(s)))})),t}function Lk(){let e=Yv(bp()).domain([1,10]);return e.copy=()=>pl(e,Lk()).base(e.base()),An.apply(e,arguments),e}function xU(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function bU(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Xv(e){var t=1,r=e(xU(t),bU(t));return r.constant=function(n){return arguments.length?e(xU(t=+n),bU(t)):t},Ea(r)}function zk(){var e=Xv(bp());return e.copy=function(){return pl(e,zk()).constant(e.constant())},An.apply(e,arguments)}function wU(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function Nde(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function Tde(e){return e<0?-e*e:e*e}function Zv(e){var t=e(Eo,Eo),r=1;function n(){return r===1?e(Eo,Eo):r===.5?e(Nde,Tde):e(wU(r),wU(1/r))}return t.exponent=function(o){return arguments.length?(r=+o,n()):r},Ea(t)}function Jv(){var e=Zv(bp());return e.copy=function(){return pl(e,Jv()).exponent(e.exponent())},An.apply(e,arguments),e}function SU(){return Jv.apply(null,arguments).exponent(.5)}function kU(e){return Math.sign(e)*e*e}function Ode(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function Bk(){var e=wp(),t=[0,1],r=!1,n;function o(a){var i=Ode(e(a));return isNaN(i)?n:r?Math.round(i):i}return o.invert=function(a){return e.invert(kU(a))},o.domain=function(a){return arguments.length?(e.domain(a),o):e.domain()},o.range=function(a){return arguments.length?(e.range((t=Array.from(a,Ic)).map(kU)),o):t.slice()},o.rangeRound=function(a){return o.range(a).round(!0)},o.round=function(a){return arguments.length?(r=!!a,o):r},o.clamp=function(a){return arguments.length?(e.clamp(a),o):e.clamp()},o.unknown=function(a){return arguments.length?(n=a,o):n},o.copy=function(){return Bk(e.domain(),t).round(r).clamp(e.clamp()).unknown(n)},An.apply(o,arguments),Ea(o)}function Fk(){var e=[],t=[],r=[],n;function o(){var i=0,s=Math.max(1,t.length);for(r=new Array(s-1);++i0?r[s-1]:e[0],s=r?[n[r-1],t]:[n[u-1],n[u]]},i.unknown=function(l){return arguments.length&&(a=l),i},i.thresholds=function(){return n.slice()},i.copy=function(){return Uk().domain([e,t]).range(o).unknown(a)},An.apply(Ea(i),arguments)}function Wk(){var e=[.5],t=[0,1],r,n=1;function o(a){return a!=null&&a<=a?t[Ds(e,a,0,n)]:r}return o.domain=function(a){return arguments.length?(e=Array.from(a),n=Math.min(e.length,t.length-1),o):e.slice()},o.range=function(a){return arguments.length?(t=Array.from(a),n=Math.min(e.length,t.length-1),o):t.slice()},o.invertExtent=function(a){var i=t.indexOf(a);return[e[i-1],e[i]]},o.unknown=function(a){return arguments.length?(r=a,o):r},o.copy=function(){return Wk().domain(e).range(t).unknown(r)},An.apply(o,arguments)}var $P=new Date,LP=new Date;function Rr(e,t,r,n){function o(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return o.floor=a=>(e(a=new Date(+a)),a),o.ceil=a=>(e(a=new Date(a-1)),t(a,1),e(a),a),o.round=a=>{let i=o(a),s=o.ceil(a);return a-i(t(a=new Date(+a),i==null?1:Math.floor(i)),a),o.range=(a,i,s)=>{let l=[];if(a=o.ceil(a),s=s==null?1:Math.floor(s),!(a0))return l;let u;do l.push(u=new Date(+a)),t(a,s),e(a);while(uRr(i=>{if(i>=i)for(;e(i),!a(i);)i.setTime(i-1)},(i,s)=>{if(i>=i)if(s<0)for(;++s<=0;)for(;t(i,-1),!a(i););else for(;--s>=0;)for(;t(i,1),!a(i););}),r&&(o.count=(a,i)=>($P.setTime(+a),LP.setTime(+i),e($P),e(LP),Math.floor(r($P,LP))),o.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?o.filter(n?i=>n(i)%a===0:i=>o.count(0,i)%a===0):o)),o}var Qv=Rr(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Qv.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Rr(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):Qv);var U$e=Qv.range;var rs=Rr(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*1e3)},(e,t)=>(t-e)/1e3,e=>e.getUTCSeconds()),_U=rs.range;var vg=Rr(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getMinutes()),Pde=vg.range,xg=Rr(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getUTCMinutes()),Mde=xg.range;var bg=Rr(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3-e.getMinutes()*6e4)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getHours()),Ide=bg.range,wg=Rr(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getUTCHours()),Dde=wg.range;var pu=Rr(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/864e5,e=>e.getDate()-1),jde=pu.range,Cp=Rr(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>e.getUTCDate()-1),$de=Cp.range,Hk=Rr(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>Math.floor(e/864e5)),Lde=Hk.range;function Ap(e){return Rr(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,r)=>{t.setDate(t.getDate()+r*7)},(t,r)=>(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/6048e5)}var fu=Ap(0),Sg=Ap(1),AU=Ap(2),EU=Ap(3),Dc=Ap(4),NU=Ap(5),TU=Ap(6),OU=fu.range,zde=Sg.range,Bde=AU.range,Fde=EU.range,Ude=Dc.range,Wde=NU.range,Hde=TU.range;function Ep(e){return Rr(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCDate(t.getUTCDate()+r*7)},(t,r)=>(r-t)/6048e5)}var mu=Ep(0),kg=Ep(1),PU=Ep(2),MU=Ep(3),jc=Ep(4),IU=Ep(5),DU=Ep(6),jU=mu.range,qde=kg.range,Kde=PU.range,Vde=MU.range,Gde=jc.range,Yde=IU.range,Xde=DU.range;var _g=Rr(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth()),Zde=_g.range,Cg=Rr(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth()),Jde=Cg.range;var Ci=Rr(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());Ci.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Rr(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,r)=>{t.setFullYear(t.getFullYear()+r*e)});var Qde=Ci.range,Ai=Rr(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());Ai.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Rr(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCFullYear(t.getUTCFullYear()+r*e)});var Rde=Ai.range;function LU(e,t,r,n,o,a){let i=[[rs,1,1e3],[rs,5,5*1e3],[rs,15,15*1e3],[rs,30,30*1e3],[a,1,6e4],[a,5,5*6e4],[a,15,15*6e4],[a,30,30*6e4],[o,1,36e5],[o,3,3*36e5],[o,6,6*36e5],[o,12,12*36e5],[n,1,864e5],[n,2,2*864e5],[r,1,6048e5],[t,1,2592e6],[t,3,3*2592e6],[e,1,31536e6]];function s(u,c,d){let p=cb).right(i,p);if(f===i.length)return e.every(fg(u/31536e6,c/31536e6,d));if(f===0)return Qv.every(Math.max(fg(u,c,d),1));let[m,y]=i[p/i[f-1][2]53)return null;"w"in te||(te.w=1),"Z"in te?(_e=HP(ex(te.y,0,1)),D=_e.getUTCDay(),_e=D>4||D===0?kg.ceil(_e):kg(_e),_e=Cp.offset(_e,(te.V-1)*7),te.y=_e.getUTCFullYear(),te.m=_e.getUTCMonth(),te.d=_e.getUTCDate()+(te.w+6)%7):(_e=WP(ex(te.y,0,1)),D=_e.getDay(),_e=D>4||D===0?Sg.ceil(_e):Sg(_e),_e=pu.offset(_e,(te.V-1)*7),te.y=_e.getFullYear(),te.m=_e.getMonth(),te.d=_e.getDate()+(te.w+6)%7)}else("W"in te||"U"in te)&&("w"in te||(te.w="u"in te?te.u%7:"W"in te?1:0),D="Z"in te?HP(ex(te.y,0,1)).getUTCDay():WP(ex(te.y,0,1)).getDay(),te.m=0,te.d="W"in te?(te.w+6)%7+te.W*7-(D+5)%7:te.w+te.U*7-(D+6)%7);return"Z"in te?(te.H+=te.Z/100|0,te.M+=te.Z%100,HP(te)):WP(te)}}function _(fe,le,R,te){for(var He=0,_e=le.length,D=R.length,Y,E;He<_e;){if(te>=D)return-1;if(Y=le.charCodeAt(He++),Y===37){if(Y=le.charAt(He++),E=S[Y in zU?le.charAt(He++):Y],!E||(te=E(fe,R,te))<0)return-1}else if(Y!=R.charCodeAt(te++))return-1}return te}function A(fe,le,R){var te=u.exec(le.slice(R));return te?(fe.p=c.get(te[0].toLowerCase()),R+te[0].length):-1}function C(fe,le,R){var te=f.exec(le.slice(R));return te?(fe.w=m.get(te[0].toLowerCase()),R+te[0].length):-1}function N(fe,le,R){var te=d.exec(le.slice(R));return te?(fe.w=p.get(te[0].toLowerCase()),R+te[0].length):-1}function L(fe,le,R){var te=g.exec(le.slice(R));return te?(fe.m=h.get(te[0].toLowerCase()),R+te[0].length):-1}function J(fe,le,R){var te=y.exec(le.slice(R));return te?(fe.m=b.get(te[0].toLowerCase()),R+te[0].length):-1}function B(fe,le,R){return _(fe,t,le,R)}function K(fe,le,R){return _(fe,r,le,R)}function T(fe,le,R){return _(fe,n,le,R)}function P(fe){return i[fe.getDay()]}function I(fe){return a[fe.getDay()]}function M(fe){return l[fe.getMonth()]}function j(fe){return s[fe.getMonth()]}function O(fe){return o[+(fe.getHours()>=12)]}function F(fe){return 1+~~(fe.getMonth()/3)}function V(fe){return i[fe.getUTCDay()]}function z(fe){return a[fe.getUTCDay()]}function G(fe){return l[fe.getUTCMonth()]}function q(fe){return s[fe.getUTCMonth()]}function oe(fe){return o[+(fe.getUTCHours()>=12)]}function Me(fe){return 1+~~(fe.getUTCMonth()/3)}return{format:function(fe){var le=k(fe+="",v);return le.toString=function(){return fe},le},parse:function(fe){var le=w(fe+="",!1);return le.toString=function(){return fe},le},utcFormat:function(fe){var le=k(fe+="",x);return le.toString=function(){return fe},le},utcParse:function(fe){var le=w(fe+="",!0);return le.toString=function(){return fe},le}}}var zU={"-":"",_:" ",0:"0"},Vo=/^\s*\d+/,tpe=/^%/,rpe=/[\\^$*+?|[\]().{}]/g;function Er(e,t,r){var n=e<0?"-":"",o=(n?-e:e)+"",a=o.length;return n+(a[t.toLowerCase(),r]))}function ope(e,t,r){var n=Vo.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function ape(e,t,r){var n=Vo.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function ipe(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function spe(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function lpe(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function BU(e,t,r){var n=Vo.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function FU(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function upe(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function cpe(e,t,r){var n=Vo.exec(t.slice(r,r+1));return n?(e.q=n[0]*3-3,r+n[0].length):-1}function dpe(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function UU(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function ppe(e,t,r){var n=Vo.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function WU(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function fpe(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function mpe(e,t,r){var n=Vo.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function gpe(e,t,r){var n=Vo.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function hpe(e,t,r){var n=Vo.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function ype(e,t,r){var n=tpe.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function vpe(e,t,r){var n=Vo.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function xpe(e,t,r){var n=Vo.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function HU(e,t){return Er(e.getDate(),t,2)}function bpe(e,t){return Er(e.getHours(),t,2)}function wpe(e,t){return Er(e.getHours()%12||12,t,2)}function Spe(e,t){return Er(1+pu.count(Ci(e),e),t,3)}function YU(e,t){return Er(e.getMilliseconds(),t,3)}function kpe(e,t){return YU(e,t)+"000"}function _pe(e,t){return Er(e.getMonth()+1,t,2)}function Cpe(e,t){return Er(e.getMinutes(),t,2)}function Ape(e,t){return Er(e.getSeconds(),t,2)}function Epe(e){var t=e.getDay();return t===0?7:t}function Npe(e,t){return Er(fu.count(Ci(e)-1,e),t,2)}function XU(e){var t=e.getDay();return t>=4||t===0?Dc(e):Dc.ceil(e)}function Tpe(e,t){return e=XU(e),Er(Dc.count(Ci(e),e)+(Ci(e).getDay()===4),t,2)}function Ope(e){return e.getDay()}function Ppe(e,t){return Er(Sg.count(Ci(e)-1,e),t,2)}function Mpe(e,t){return Er(e.getFullYear()%100,t,2)}function Ipe(e,t){return e=XU(e),Er(e.getFullYear()%100,t,2)}function Dpe(e,t){return Er(e.getFullYear()%1e4,t,4)}function jpe(e,t){var r=e.getDay();return e=r>=4||r===0?Dc(e):Dc.ceil(e),Er(e.getFullYear()%1e4,t,4)}function $pe(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Er(t/60|0,"0",2)+Er(t%60,"0",2)}function qU(e,t){return Er(e.getUTCDate(),t,2)}function Lpe(e,t){return Er(e.getUTCHours(),t,2)}function zpe(e,t){return Er(e.getUTCHours()%12||12,t,2)}function Bpe(e,t){return Er(1+Cp.count(Ai(e),e),t,3)}function ZU(e,t){return Er(e.getUTCMilliseconds(),t,3)}function Fpe(e,t){return ZU(e,t)+"000"}function Upe(e,t){return Er(e.getUTCMonth()+1,t,2)}function Wpe(e,t){return Er(e.getUTCMinutes(),t,2)}function Hpe(e,t){return Er(e.getUTCSeconds(),t,2)}function qpe(e){var t=e.getUTCDay();return t===0?7:t}function Kpe(e,t){return Er(mu.count(Ai(e)-1,e),t,2)}function JU(e){var t=e.getUTCDay();return t>=4||t===0?jc(e):jc.ceil(e)}function Vpe(e,t){return e=JU(e),Er(jc.count(Ai(e),e)+(Ai(e).getUTCDay()===4),t,2)}function Gpe(e){return e.getUTCDay()}function Ype(e,t){return Er(kg.count(Ai(e)-1,e),t,2)}function Xpe(e,t){return Er(e.getUTCFullYear()%100,t,2)}function Zpe(e,t){return e=JU(e),Er(e.getUTCFullYear()%100,t,2)}function Jpe(e,t){return Er(e.getUTCFullYear()%1e4,t,4)}function Qpe(e,t){var r=e.getUTCDay();return e=r>=4||r===0?jc(e):jc.ceil(e),Er(e.getUTCFullYear()%1e4,t,4)}function Rpe(){return"+0000"}function KU(){return"%"}function VU(e){return+e}function GU(e){return Math.floor(+e/1e3)}var Ag,qk,QU,Kk,RU;KP({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function KP(e){return Ag=qP(e),qk=Ag.format,QU=Ag.parse,Kk=Ag.utcFormat,RU=Ag.utcParse,Ag}function efe(e){return new Date(e)}function tfe(e){return e instanceof Date?+e:+new Date(+e)}function Vk(e,t,r,n,o,a,i,s,l,u){var c=wp(),d=c.invert,p=c.domain,f=u(".%L"),m=u(":%S"),y=u("%I:%M"),b=u("%I %p"),g=u("%a %d"),h=u("%b %d"),v=u("%B"),x=u("%Y");function S(k){return(l(k)t(o/(e.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(o,a)=>Sk(e,a/n))},r.copy=function(){return Zk(t).domain(e)},ts.apply(r,arguments)}function Jk(){var e=0,t=.5,r=1,n=1,o,a,i,s,l,u=Eo,c,d=!1,p;function f(y){return isNaN(y=+y)?p:(y=.5+((y=+c(y))-a)*(n*y{if(e!=null){var n=e.scale,o=e.type;if(n==="auto")return o==="category"&&r&&(r.indexOf("LineChart")>=0||r.indexOf("AreaChart")>=0||r.indexOf("ComposedChart")>=0&&!t)?"point":o==="category"?"band":"linear";if(typeof n=="string")return ofe(n)?n:"point"}};function afe(e,t){for(var r=0,n=e.length,o=e[0]t)?r=a+1:n=a}return r}function t_(e,t){if(e){var r=t??e.domain(),n=r.map(a=>{var i;return(i=e(a))!==null&&i!==void 0?i:0}),o=e.range();if(!(r.length===0||o.length<2))return a=>{var i,s,l=afe(n,a);if(l<=0)return r[0];if(l>=r.length)return r[r.length-1];var u=(i=n[l-1])!==null&&i!==void 0?i:0,c=(s=n[l])!==null&&s!==void 0?s:0;return Math.abs(a-u)<=Math.abs(a-c)?r[l-1]:r[l]}}}function nW(e){if(e!=null)return"invert"in e&&typeof e.invert=="function"?e.invert.bind(e):t_(e,void 0)}function oW(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function r_(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);re.cartesianAxis.xAxis[t],hl=(e,t)=>{var r=RP(e,t);return r??io},so={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:QP,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"left",padding:{top:0,bottom:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"number",unit:void 0,niceTicks:"auto",width:rp},eM=(e,t)=>e.cartesianAxis.yAxis[t],yl=(e,t)=>{var r=eM(e,t);return r??so},ffe={domain:[0,"auto"],includeHidden:!1,reversed:!1,allowDataOverflow:!1,allowDuplicatedCategory:!1,dataKey:void 0,id:0,name:"",range:[64,64],scale:"auto",type:"number",unit:""},tM=(e,t)=>{var r=e.cartesianAxis.zAxis[t];return r??ffe},En=(e,t,r)=>{switch(t){case"xAxis":return hl(e,r);case"yAxis":return yl(e,r);case"zAxis":return tM(e,r);case"angleAxis":return pk(e,r);case"radiusAxis":return fk(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},mfe=(e,t,r)=>{switch(t){case"xAxis":return hl(e,r);case"yAxis":return yl(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},Np=(e,t,r)=>{switch(t){case"xAxis":return hl(e,r);case"yAxis":return yl(e,r);case"angleAxis":return pk(e,r);case"radiusAxis":return fk(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},rM=e=>e.graphicalItems.cartesianItems.some(t=>t.type==="bar")||e.graphicalItems.polarItems.some(t=>t.type==="radialBar");function ix(e,t){return r=>{switch(e){case"xAxis":return"xAxisId"in r&&r.xAxisId===t;case"yAxis":return"yAxisId"in r&&r.yAxisId===t;case"zAxis":return"zAxisId"in r&&r.zAxisId===t;case"angleAxis":return"angleAxisId"in r&&r.angleAxisId===t;case"radiusAxis":return"radiusAxisId"in r&&r.radiusAxisId===t;default:return!1}}}var $c=e=>e.graphicalItems.cartesianItems,gfe=ae([vn,pp],ix),sx=(e,t,r)=>e.filter(r).filter(n=>t?.includeHidden===!0?!0:!n.hide),Ng=ae([$c,En,gfe],sx,{memoizeOptions:{resultEqualityCheck:dg}}),lW=ae([Ng],e=>e.filter(t=>t.type==="area"||t.type==="bar").filter(fp)),nM=e=>e.filter(t=>!("stackId"in t)||t.stackId===void 0),hfe=ae([Ng],nM),lx=e=>e.map(t=>t.data).filter(Boolean).flat(1),yfe=ae([Ng],e=>e.some(t=>!t.data)),uW=ae([Ng],lx,{memoizeOptions:{resultEqualityCheck:dg}}),ux=(e,t)=>{var r=t.chartData,n=r===void 0?[]:r,o=t.dataStartIndex,a=t.dataEndIndex;return e.length>0?e:n.slice(o,a+1)},oM=ae([uW,up],ux),aM=(e,t,r)=>t?.dataKey!=null?e.map(n=>({value:Ht(n,t.dataKey)})):r.length>0?r.map(n=>n.dataKey).flatMap(n=>e.map(o=>({value:Ht(o,n)}))):e.map(n=>({value:n})),iM=(e,t,r,n,o,a)=>{var i=n.chartData,s=i===void 0?[]:i,l=n.dataStartIndex,u=n.dataEndIndex,c=aM(e,t,r);if(o&&t?.dataKey!=null&&a.length>0){var d=s.slice(l,u+1),p=d.map(f=>({value:Ht(f,t.dataKey)})).filter(f=>f.value!=null);return[...p,...c]}return c},cx=ae([oM,En,Ng,up,yfe,uW],iM);function Eg(e){if(ka(e)||e instanceof Date){var t=Number(e);if(Ot(t))return t}}function iW(e){if(Array.isArray(e)){var t=[Eg(e[0]),Eg(e[1])];return ki(t)?t:void 0}var r=Eg(e);if(r!=null)return[r,r]}function $s(e){return e.map(Eg).filter(Ao)}function vfe(e,t){var r=Eg(e),n=Eg(t);return r==null&&n==null?0:r==null?-1:n==null?1:r-n}var xfe=ae([cx],e=>e?.map(t=>t.value).sort(vfe));function cW(e,t){switch(e){case"xAxis":return t.direction==="x";case"yAxis":return t.direction==="y";default:return!1}}function bfe(e,t,r){if(!r)return[];if(!r.length)return[];var n;if(typeof t=="number"&&!Wo(t))n=t;else if(Array.isArray(t)){var o=$s(t);o.length>0&&(n=Math.max(...o))}return n==null?[]:$s(r.flatMap(a=>{var i=Ht(e,a.dataKey),s,l;if(Array.isArray(i)){var u=sW(i,2);s=u[0],l=u[1]}else s=l=i;if(!(!Ot(s)||!Ot(l)))return[n-s,n+l]}))}var lo=e=>{var t=ao(e),r=Oc(e);return Np(e,t,r)},hu=ae([lo],e=>e?.dataKey),wfe=ae([lW,up,lo],hk),sM=(e,t,r,n)=>{var o={},a=t.reduce((i,s)=>{if(s.stackId==null)return i;var l=i[s.stackId];return l==null&&(l=[]),l.push(s),i[s.stackId]=l,i},o);return Object.fromEntries(Object.entries(a).map(i=>{var s=sW(i,2),l=s[0],u=s[1],c=n?[...u].reverse():u,d=c.map(Tc);return[l,{stackedData:k7(e,d,r),graphicalItems:c}]}))},Tg=ae([wfe,lW,Ec,lk],sM),lM=(e,t,r,n)=>{var o=t.dataStartIndex,a=t.dataEndIndex;if(n==null&&r!=="zAxis")return C7(e,o,a)},Sfe=ae([En],e=>e.allowDataOverflow),n_=e=>{var t;if(e==null||!("domain"in e))return QP;if(e.domain!=null)return e.domain;if("ticks"in e&&e.ticks!=null){if(e.type==="number"){var r=$s(e.ticks);return[Math.min(...r),Math.max(...r)]}if(e.type==="category")return e.ticks.map(String)}return(t=e?.domain)!==null&&t!==void 0?t:QP},o_=ae([En],n_),a_=ae([o_,Sfe],nk),kfe=ae([Tg,Za,vn,a_],lM,{memoizeOptions:{resultEqualityCheck:mp}}),Og=e=>e.errorBars,_fe=(e,t,r)=>e.flatMap(n=>t[n.id]).filter(Boolean).filter(n=>cW(r,n)),ax=function(){for(var t=arguments.length,r=new Array(t),n=0;n5&&arguments[5]!==void 0?arguments[5]:[],s,l;if(n.length>0&&n.forEach(u=>{var c,d=u.data!=null?[...u.data]:i,p=(c=o[u.id])===null||c===void 0?void 0:c.filter(f=>cW(a,f));d.forEach(f=>{var m,y=Ht(f,(m=r.dataKey)!==null&&m!==void 0?m:u.dataKey),b=bfe(f,y,p);if(b.length>=2){var g=Math.min(...b),h=Math.max(...b);(s==null||gl)&&(l=h)}var v=iW(y);v!=null&&(s=s==null?v[0]:Math.min(s,v[0]),l=l==null?v[1]:Math.max(l,v[1]))})}),r?.dataKey!=null&&n.length===0&&t.forEach(u=>{var c=iW(Ht(u,r.dataKey));c!=null&&(s=s==null?c[0]:Math.min(s,c[0]),l=l==null?c[1]:Math.max(l,c[1]))}),Ot(s)&&Ot(l))return[s,l]},Cfe=ae([oM,En,hfe,Og,vn,mF],dx,{memoizeOptions:{resultEqualityCheck:mp}});function Afe(e){var t=e.value;if(ka(t)||t instanceof Date)return t}var Efe=(e,t,r)=>{var n=e.map(Afe).filter(o=>o!=null);return r&&(t.dataKey==null||t.allowDuplicatedCategory&&MT(n))?tk(0,e.length):t.allowDuplicatedCategory?n:Array.from(new Set(n))},uM=e=>e.referenceElements.dots,Tp=(e,t,r)=>e.filter(n=>n.ifOverflow==="extendDomain").filter(n=>t==="xAxis"?n.xAxisId===r:n.yAxisId===r),Nfe=ae([uM,vn,pp],Tp),cM=e=>e.referenceElements.areas,Tfe=ae([cM,vn,pp],Tp),dM=e=>e.referenceElements.lines,Ofe=ae([dM,vn,pp],Tp),pM=(e,t)=>{if(e!=null){var r=$s(e.map(n=>t==="xAxis"?n.x:n.y));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},Pfe=ae(Nfe,vn,pM),fM=(e,t)=>{if(e!=null){var r=$s(e.flatMap(n=>[t==="xAxis"?n.x1:n.y1,t==="xAxis"?n.x2:n.y2]));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},Mfe=ae([Tfe,vn],fM);function Ife(e){var t;if(e.x!=null)return $s([e.x]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.x);return r==null||r.length===0?[]:$s(r)}function Dfe(e){var t;if(e.y!=null)return $s([e.y]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.y);return r==null||r.length===0?[]:$s(r)}var mM=(e,t)=>{if(e!=null){var r=e.flatMap(n=>t==="xAxis"?Ife(n):Dfe(n));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},jfe=ae([Ofe,vn],mM),$fe=ae(Pfe,jfe,Mfe,(e,t,r)=>ax(e,r,t)),px=(e,t,r,n,o,a,i,s,l)=>{if(r!=null)return r;var u=i==="vertical"&&s==="xAxis"||i==="horizontal"&&s==="yAxis",c=u?ax(n,a,o):ax(a,o),d=xF(t,c,e.allowDataOverflow);return d??(e.allowDataOverflow&&c==null&&l!=null?l:d)},Lfe=e=>{if(!(e==null||e.type!=="number"||!("ticks"in e)||e.ticks==null)){var t=$s(e.ticks);if(t.length!==0)return[Math.min(...t),Math.max(...t)]}},zfe=ae([En],Lfe,{memoizeOptions:{resultEqualityCheck:mp}}),Bfe=ae([En,o_,a_,kfe,Cfe,$fe,Bt,vn,zfe],px,{memoizeOptions:{resultEqualityCheck:mp}}),Ffe=[0,1],fx=(e,t,r,n,o,a,i)=>{if(!((e==null||r==null||r.length===0)&&i===void 0)){var s=e.dataKey,l=e.type,u=la(t,a);if(u&&s==null){var c;return tk(0,(c=r?.length)!==null&&c!==void 0?c:0)}return l==="category"?Efe(n,e,u):o==="expand"&&!u?Ffe:i}},gM=ae([En,Bt,oM,cx,Ec,vn,Bfe],fx),yu=ae([En,rM,cg],e_),mx=(e,t,r)=>{var n=t.niceTicks;if(n!=="none"){var o=n_(t),a=Array.isArray(o)&&(o[0]==="auto"||o[1]==="auto");if((n==="snap125"||n==="adaptive")&&t!=null&&t.tickCount&&ki(e)){if(a)return ak(e,t.tickCount,t.allowDecimals,n);if(t.type==="number")return ik(e,t.tickCount,t.allowDecimals,n)}if(n==="auto"&&r==="linear"&&t!=null&&t.tickCount){if(a&&ki(e))return ak(e,t.tickCount,t.allowDecimals,"adaptive");if(t.type==="number"&&ki(e))return ik(e,t.tickCount,t.allowDecimals,"adaptive")}}},hM=ae([gM,Np,yu],mx),gx=(e,t,r,n)=>{if(n!=="angleAxis"&&e?.type==="number"&&ki(t)&&Array.isArray(r)&&r.length>0){var o,a,i=t[0],s=(o=r[0])!==null&&o!==void 0?o:0,l=t[1],u=(a=r[r.length-1])!==null&&a!==void 0?a:0;return[Math.min(i,s),Math.max(l,u)]}return t},Ufe=ae([En,gM,hM,vn],gx),Wfe=ae(cx,En,(e,t)=>{if(!(!t||t.type!=="number")){var r=1/0,n=Array.from($s(e.map(d=>d.value))).sort((d,p)=>d-p),o=n[0],a=n[n.length-1];if(o==null||a==null)return 1/0;var i=a-o;if(i===0)return 1/0;for(var s=0;so,(e,t,r,n,o)=>{if(!Ot(e))return 0;var a=t==="vertical"?n.height:n.width;if(o==="gap")return e*a/2;if(o==="no-gap"){var i=$n(r,e*a),s=e*a/2;return s-i-(s-i)/a*i}return 0}),Hfe=(e,t,r)=>{var n=hl(e,t);return n==null||typeof n.padding!="string"?0:dW(e,"xAxis",t,r,n.padding)},qfe=(e,t,r)=>{var n=yl(e,t);return n==null||typeof n.padding!="string"?0:dW(e,"yAxis",t,r,n.padding)},Kfe=ae(hl,Hfe,(e,t)=>{var r,n;if(e==null)return{left:0,right:0};var o=e.padding;return typeof o=="string"?{left:t,right:t}:{left:((r=o.left)!==null&&r!==void 0?r:0)+t,right:((n=o.right)!==null&&n!==void 0?n:0)+t}}),Vfe=ae(yl,qfe,(e,t)=>{var r,n;if(e==null)return{top:0,bottom:0};var o=e.padding;return typeof o=="string"?{top:t,bottom:t}:{top:((r=o.top)!==null&&r!==void 0?r:0)+t,bottom:((n=o.bottom)!==null&&n!==void 0?n:0)+t}}),yM=ae([Fr,Kfe,np,tg,(e,t,r)=>r],(e,t,r,n,o)=>{var a=n.padding;return o?[a.left,r.width-a.right]:[e.left+t.left,e.left+e.width-t.right]}),vM=ae([Fr,Bt,Vfe,np,tg,(e,t,r)=>r],(e,t,r,n,o,a)=>{var i=o.padding;return a?[n.height-i.bottom,i.top]:t==="horizontal"?[e.top+e.height-r.bottom,e.top+r.top]:[e.top+r.top,e.top+e.height-r.bottom]}),Pg=(e,t,r,n)=>{var o;switch(t){case"xAxis":return yM(e,r,n);case"yAxis":return vM(e,r,n);case"zAxis":return(o=tM(e,r))===null||o===void 0?void 0:o.range;case"angleAxis":return hP(e);case"radiusAxis":return yP(e,r);default:return}},pW=ae([En,Pg],cp),Gfe=ae([yu,Ufe],yk),xM=ae([En,yu,Gfe,pW],ox),bM=(e,t,r,n)=>{if(!(r==null||r.dataKey==null)){var o=r.type,a=r.scale,i=la(e,n);if(i&&(o==="number"||a!=="auto"))return t.map(s=>s.value)}},wM=ae([Bt,cx,Np,vn],bM),i_=ae([xM],$v),c6e=ae([xM],nW),d6e=ae([xM,xfe],t_),p6e=ae([Ng,Og,vn],_fe);function fW(e,t){return e.idt.id?1:0}var s_=(e,t)=>t,l_=(e,t,r)=>r,Yfe=ae(Qm,s_,l_,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(fW)),Xfe=ae(Rm,s_,l_,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(fW)),mW=(e,t)=>{var r=typeof t.height=="number"?t.height:Cv;return{width:e.width,height:r}},Zfe=(e,t)=>{var r=typeof t.width=="number"?t.width:rp;return{width:r,height:e.height}},SM=ae(Fr,hl,mW),Jfe=(e,t,r)=>{switch(t){case"top":return e.top;case"bottom":return r-e.bottom;default:return 0}},Qfe=(e,t,r)=>{switch(t){case"left":return e.left;case"right":return r-e.right;default:return 0}},Rfe=ae(Ko,Fr,Yfe,s_,l_,(e,t,r,n,o)=>{var a={},i;return r.forEach(s=>{var l=mW(t,s);i==null&&(i=Jfe(t,n,e));var u=n==="top"&&!o||n==="bottom"&&o;a[s.id]=i-Number(u)*l.height,i+=(u?-1:1)*l.height}),a}),eme=ae(qo,Fr,Xfe,s_,l_,(e,t,r,n,o)=>{var a={},i;return r.forEach(s=>{var l=Zfe(t,s);i==null&&(i=Qfe(t,n,e));var u=n==="left"&&!o||n==="right"&&o;a[s.id]=i-Number(u)*l.width,i+=(u?-1:1)*l.width}),a}),tme=(e,t)=>{var r=hl(e,t);if(r!=null)return Rfe(e,r.orientation,r.mirror)},gW=ae([Fr,hl,tme,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var o=r?.[n];return o==null?{x:e.left,y:0}:{x:e.left,y:o}}}),rme=(e,t)=>{var r=yl(e,t);if(r!=null)return eme(e,r.orientation,r.mirror)},hW=ae([Fr,yl,rme,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var o=r?.[n];return o==null?{x:0,y:e.top}:{x:o,y:e.top}}}),kM=ae(Fr,yl,(e,t)=>{var r=typeof t.width=="number"?t.width:rp;return{width:r,height:e.height}}),_M=(e,t,r)=>{switch(t){case"xAxis":return SM(e,r).width;case"yAxis":return kM(e,r).height;default:return}},CM=(e,t,r,n)=>{if(r!=null){var o=r.allowDuplicatedCategory,a=r.type,i=r.dataKey,s=la(e,n),l=t.map(c=>c.value),u=l.filter(c=>c!=null);if(i&&s&&a==="category"&&o&&MT(u))return l}},AM=ae([Bt,cx,En,vn],CM),EM=ae([Bt,mfe,yu,i_,AM,wM,Pg,hM,vn],(e,t,r,n,o,a,i,s,l)=>{if(t!=null){var u=la(e,l);return{angle:t.angle,interval:t.interval,minTickGap:t.minTickGap,orientation:t.orientation,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,axisType:l,categoricalDomain:a,duplicateDomain:o,isCategorical:u,niceTicks:s,range:i,realScaleType:r,scale:n}}}),nme=(e,t,r,n,o,a,i,s,l)=>{if(!(t==null||n==null)){var u=la(e,l),c=t.type,d=t.ticks,p=t.tickCount,f=r==="scaleBand"&&typeof n.bandwidth=="function"?n.bandwidth()/2:2,m=c==="category"&&n.bandwidth?n.bandwidth()/f:0;m=l==="angleAxis"&&a!=null&&a.length>=2?Qr(a[0]-a[1])*2*m:m;var y=d||o;return y?y.map((b,g)=>{var h=i?i.indexOf(b):b,v=n.map(h);return Ot(v)?{index:g,coordinate:v+m,value:b,offset:m}:null}).filter(Ao):u&&s?s.map((b,g)=>{var h=n.map(b);return Ot(h)?{coordinate:h+m,value:b,index:g,offset:m}:null}).filter(Ao):n.ticks?n.ticks(p).map((b,g)=>{var h=n.map(b);return Ot(h)?{coordinate:h+m,value:b,index:g,offset:m}:null}).filter(Ao):n.domain().map((b,g)=>{var h=n.map(b);return Ot(h)?{coordinate:h+m,value:i?i[b]:b,index:g,offset:m}:null}).filter(Ao)}},u_=ae([Bt,Np,yu,i_,hM,Pg,AM,wM,vn],nme),ome=(e,t,r,n,o,a,i)=>{if(!(t==null||r==null||n==null||n[0]===n[1])){var s=la(e,i),l=t.tickCount,u=0;return u=i==="angleAxis"&&n?.length>=2?Qr(n[0]-n[1])*2*u:u,s&&a?a.map((c,d)=>{var p=r.map(c);return Ot(p)?{coordinate:p+u,value:c,index:d,offset:u}:null}).filter(Ao):r.ticks?r.ticks(l).map((c,d)=>{var p=r.map(c);return Ot(p)?{coordinate:p+u,value:c,index:d,offset:u}:null}).filter(Ao):r.domain().map((c,d)=>{var p=r.map(c);return Ot(p)?{coordinate:p+u,value:o?o[c]:c,index:d,offset:u}:null}).filter(Ao)}},Ei=ae([Bt,Np,i_,Pg,AM,wM,vn],ome),Ni=ae(En,i_,(e,t)=>{if(!(e==null||t==null))return r_(r_({},e),{},{scale:t})}),ame=ae([En,yu,gM,pW],ox),ime=ae([ame],$v),f6e=ae((e,t,r)=>tM(e,r),ime,(e,t)=>{if(!(e==null||t==null))return r_(r_({},e),{},{scale:t})}),yW=ae([Bt,Qm,Rm],(e,t,r)=>{switch(e){case"horizontal":return t.some(n=>n.reversed)?"right-to-left":"left-to-right";case"vertical":return r.some(n=>n.reversed)?"bottom-to-top":"top-to-bottom";case"centric":case"radial":return"left-to-right";default:return}}),sme=(e,t,r)=>{var n;return(n=e.renderedTicks[t])===null||n===void 0?void 0:n[r]},m6e=ae([sme],e=>{if(!(!e||e.length===0))return t=>{var r,n=1/0,o=e[0];for(var a of e){var i=Math.abs(a.coordinate-t);ie.options.defaultTooltipEventType,TM=e=>e.options.validateTooltipEventTypes;function OM(e,t,r){if(e==null)return t;var n=e?"axis":"item";return r==null?t:r.includes(n)?n:t}function Lc(e,t){var r=NM(e),n=TM(e);return OM(t,r,n)}function vW(e){return $e(t=>Lc(t,e))}var c_=(e,t)=>{var r,n=Number(t);if(!(Wo(n)||t==null))return n>=0?e==null||(r=e[n])===null||r===void 0?void 0:r.value:void 0};var xW=e=>e.tooltip.settings;var vu={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},lme={itemInteraction:{click:vu,hover:vu},axisInteraction:{click:vu,hover:vu},keyboardInteraction:vu,syncInteraction:{active:!1,index:null,dataKey:void 0,label:void 0,coordinate:void 0,sourceViewBox:void 0,graphicalItemId:void 0},tooltipItemPayloads:[],settings:{shared:void 0,trigger:"hover",axisId:0,active:!1,defaultIndex:void 0}},bW=Cr({name:"tooltip",initialState:lme,reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(Zt(t.payload))},prepare:Ir()},replaceTooltipEntrySettings:{reducer(e,t){var r=t.payload,n=r.prev,o=r.next,a=ea(e).tooltipItemPayloads.indexOf(Zt(n));a>-1&&(e.tooltipItemPayloads[a]=Zt(o))},prepare:Ir()},removeTooltipEntrySettings:{reducer(e,t){var r=ea(e).tooltipItemPayloads.indexOf(Zt(t.payload));r>-1&&e.tooltipItemPayloads.splice(r,1)},prepare:Ir()},setTooltipSettingsState(e,t){e.settings=t.payload},setActiveMouseOverItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.itemInteraction.hover.active=!0,e.itemInteraction.hover.index=t.payload.activeIndex,e.itemInteraction.hover.dataKey=t.payload.activeDataKey,e.itemInteraction.hover.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.hover.coordinate=t.payload.activeCoordinate},mouseLeaveChart(e){e.itemInteraction.hover.active=!1,e.axisInteraction.hover.active=!1},mouseLeaveItem(e){e.itemInteraction.hover.active=!1},setActiveClickItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.itemInteraction.click.active=!0,e.keyboardInteraction.active=!1,e.itemInteraction.click.index=t.payload.activeIndex,e.itemInteraction.click.dataKey=t.payload.activeDataKey,e.itemInteraction.click.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.click.coordinate=t.payload.activeCoordinate},setMouseOverAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.axisInteraction.hover.active=!0,e.keyboardInteraction.active=!1,e.axisInteraction.hover.index=t.payload.activeIndex,e.axisInteraction.hover.dataKey=t.payload.activeDataKey,e.axisInteraction.hover.coordinate=t.payload.activeCoordinate},setMouseClickAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.axisInteraction.click.active=!0,e.axisInteraction.click.index=t.payload.activeIndex,e.axisInteraction.click.dataKey=t.payload.activeDataKey,e.axisInteraction.click.coordinate=t.payload.activeCoordinate},setSyncInteraction(e,t){e.syncInteraction=t.payload},setKeyboardInteraction(e,t){e.keyboardInteraction.active=t.payload.active,e.keyboardInteraction.index=t.payload.activeIndex,e.keyboardInteraction.coordinate=t.payload.activeCoordinate}}}),ns=bW.actions,wW=ns.addTooltipEntrySettings,SW=ns.replaceTooltipEntrySettings,kW=ns.removeTooltipEntrySettings,_W=ns.setTooltipSettingsState,d_=ns.setActiveMouseOverItemIndex,CW=ns.mouseLeaveItem,p_=ns.mouseLeaveChart,AW=ns.setActiveClickItemIndex,f_=ns.setMouseOverAxisIndex,EW=ns.setMouseClickAxisIndex,Mg=ns.setSyncInteraction,hx=ns.setKeyboardInteraction;var NW=bW.reducer;function TW(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function m_(e){for(var t=1;t{if(t==null)return vu;var o=pme(e,t,r);if(o==null)return vu;if(o.active)return o;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var a=e.settings.active===!0;if(fme(o)){if(a)return m_(m_({},o),{},{active:!0})}else if(n!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:n,graphicalItemId:void 0};return m_(m_({},vu),{},{coordinate:o.coordinate})};function mme(e){if(typeof e=="number")return Number.isFinite(e)?e:void 0;if(e instanceof Date){var t=e.valueOf();return Number.isFinite(t)?t:void 0}var r=Number(e);return Number.isFinite(r)?r:void 0}function gme(e,t){var r=mme(e),n=t[0],o=t[1];if(r===void 0)return!1;var a=Math.min(n,o),i=Math.max(n,o);return r>=a&&r<=i}function hme(e,t,r){if(r==null||t==null)return!0;var n=Ht(e,t);return n==null||!ki(r)?!0:gme(n,r)}var zc=(e,t,r,n)=>{var o=e?.index;if(o==null)return null;var a=Number(o);if(!Ot(a))return o;var i=0,s=1/0;t.length>0&&(s=t.length-1);var l=Math.max(i,Math.min(a,s)),u=t[l];return u==null||hme(u,r,n)?String(l):null};var h_=(e,t,r,n,o,a,i)=>{if(a!=null){var s=i[0],l=s?.getPosition(a);if(l!=null)return l;var u=o?.[Number(a)];if(u)return r==="horizontal"?{x:u.coordinate,y:(n.top+t)/2}:{x:(n.left+e)/2,y:u.coordinate}}};var y_=(e,t,r,n)=>{if(t==="axis")return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var o;if(r==="hover"?o=e.itemInteraction.hover.graphicalItemId:o=e.itemInteraction.click.graphicalItemId,e.syncInteraction.active&&o==null)return e.tooltipItemPayloads;if(o==null&&(n!=null||e.keyboardInteraction.active)){var a=e.tooltipItemPayloads[0];return a!=null?[a]:[]}return e.tooltipItemPayloads.filter(i=>{var s;return((s=i.settings)===null||s===void 0?void 0:s.graphicalItemId)===o})};var v_=e=>e.options.tooltipPayloadSearcher;var xu=e=>e.tooltip;function OW(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function PW(e){for(var t=1;te(t)}function MW(e){if(typeof e=="string")return e}function kme(e){if(!(e==null||typeof e!="object")){var t="name"in e?bme(e.name):void 0,r="unit"in e?wme(e.unit):void 0,n="dataKey"in e?Sme(e.dataKey):void 0,o="payload"in e?e.payload:void 0,a="color"in e?MW(e.color):void 0,i="fill"in e?MW(e.fill):void 0;return{name:t,unit:r,dataKey:n,payload:o,color:a,fill:i}}}function _me(e,t){return e??t}var x_=(e,t,r,n,o,a,i)=>{if(!(t==null||a==null)){var s=r.chartData,l=r.computedData,u=r.dataStartIndex,c=r.dataEndIndex,d=[];return e.reduce((p,f)=>{var m,y=f.dataDefinedOnItem,b=f.settings,g=_me(y,s),h=Array.isArray(g)?AS(g,u,c):g,v=(m=b?.dataKey)!==null&&m!==void 0?m:n,x=b?.nameKey,S;if(n&&Array.isArray(h)&&!Array.isArray(h[0])&&i==="axis"?(S=pw(h,n,o),S==null&&(S=a(h,t,l,x))):S=a(h,t,l,x),Array.isArray(S))S.forEach(w=>{var _,A,C=kme(w),N=C?.name,L=C?.dataKey,J=C?.payload,B=PW(PW({},b),{},{name:N,unit:C?.unit,color:(_=C?.color)!==null&&_!==void 0?_:b?.color,fill:(A=C?.fill)!==null&&A!==void 0?A:b?.fill});p.push(KO({tooltipEntrySettings:B,dataKey:L,payload:J,value:Ht(J,L),name:N==null?void 0:String(N)}))});else{var k;p.push(KO({tooltipEntrySettings:b,dataKey:v,payload:S,value:Ht(S,v),name:(k=Ht(S,x))!==null&&k!==void 0?k:b?.name}))}return p},d)}};var PM=ae([lo,rM,cg],e_),Cme=ae([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),Ame=ae([ao,Oc],ix),Bc=ae([Cme,lo,Ame],sx,{memoizeOptions:{resultEqualityCheck:dg}}),Eme=ae([Bc],e=>e.filter(fp)),IW=ae([Bc],lx,{memoizeOptions:{resultEqualityCheck:dg}}),Nme=ae([Bc],e=>e.some(t=>!t.data)),bu=ae([IW,Za],ux),Tme=ae([Eme,Za,lo],hk),MM=ae([bu,lo,Bc,Za,Nme,IW],iM),DW=ae([lo],n_),Ome=ae([lo],e=>e.allowDataOverflow),jW=ae([DW,Ome],nk),Pme=ae([Bc],e=>e.filter(fp)),Mme=ae([Tme,Pme,Ec,lk],sM),Ime=ae([Mme,Za,ao,jW],lM),Dme=ae([Bc],nM),jme=ae([bu,lo,Dme,Og,ao,hF],dx,{memoizeOptions:{resultEqualityCheck:mp}}),$me=ae([uM,ao,Oc],Tp),Lme=ae([$me,ao],pM),zme=ae([cM,ao,Oc],Tp),Bme=ae([zme,ao],fM),Fme=ae([dM,ao,Oc],Tp),Ume=ae([Fme,ao],mM),Wme=ae([Lme,Ume,Bme],ax),Hme=ae([lo,DW,jW,Ime,jme,Wme,Bt,ao],px),Fc=ae([lo,Bt,bu,MM,Ec,ao,Hme],fx),qme=ae([Fc,lo,PM],mx),Kme=ae([lo,Fc,qme,ao],gx),$W=e=>{var t=ao(e),r=Oc(e),n=!1;return Pg(e,t,r,n)},IM=ae([lo,$W],cp),Vme=ae([lo,PM,Kme,IM],ox),DM=ae([Vme],$v),Gme=ae([Bt,MM,lo,ao],CM),Yme=ae([Bt,MM,lo,ao],bM),Xme=(e,t,r,n,o,a,i,s)=>{if(t){var l=t.type,u=la(e,s);if(n){var c=r==="scaleBand"&&n.bandwidth?n.bandwidth()/2:2,d=l==="category"&&n.bandwidth?n.bandwidth()/c:0;return d=s==="angleAxis"&&o!=null&&o?.length>=2?Qr(o[0]-o[1])*2*d:d,u&&i?i.map((p,f)=>{var m=n.map(p);return Ot(m)?{coordinate:m+d,value:p,index:f,offset:d}:null}).filter(Ao):n.domain().map((p,f)=>{var m=n.map(p);return Ot(m)?{coordinate:m+d,value:a?a[p]:p,index:f,offset:d}:null}).filter(Ao)}}},Qa=ae([Bt,lo,PM,DM,$W,Gme,Yme,ao],Xme),jM=ae([NM,TM,xW],(e,t,r)=>OM(r.shared,e,t)),LW=e=>e.tooltip.settings.trigger,$M=e=>e.tooltip.settings.defaultIndex,yx=ae([xu,jM,LW,$M],g_),os=ae([yx,bu,hu,Fc],zc),b_=ae([Qa,os],c_),Ig=ae([yx],e=>{if(e)return e.dataKey}),w_=ae([yx],e=>{if(e)return e.graphicalItemId}),zW=ae([xu,jM,LW,$M],y_),Zme=ae([qo,Ko,Bt,Fr,Qa,$M,zW],h_),LM=ae([yx,Zme],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),zM=ae([yx],e=>{var t;return(t=e?.active)!==null&&t!==void 0?t:!1}),Jme=ae([zW,os,Za,hu,b_,v_,jM],x_),BW=ae([Jme],e=>{if(e!=null){var t=e.map(r=>r.payload).filter(r=>r!=null);return Array.from(new Set(t))}});function FW(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function UW(e){for(var t=1;t$e(lo),WW=()=>{var e=tge(),t=$e(Qa),r=$e(DM);return!e||!r?Qi(void 0,t):Qi(UW(UW({},e),{},{scale:r}),t)};function HW(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Dg(e){for(var t=1;t{var o=t.find(a=>a&&a.index===r);if(o){if(e==="horizontal")return{x:o.coordinate,y:n.relativeY};if(e==="vertical")return{x:n.relativeX,y:o.coordinate}}return{x:0,y:0}},KW=(e,t,r,n)=>{var o=t.find(u=>u&&u.index===r);if(o){if(e==="centric"){var a=o.coordinate,i=n.radius;return Dg(Dg(Dg({},n),an(n.cx,n.cy,i,a)),{},{angle:a,radius:i})}var s=o.coordinate,l=n.angle;return Dg(Dg(Dg({},n),an(n.cx,n.cy,s,l)),{},{angle:l,radius:s})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function VW(e,t){var r=e.relativeX,n=e.relativeY;return r>=t.left&&r<=t.left+t.width&&n>=t.top&&n<=t.top+t.height}var BM=(e,t,r,n,o)=>{var a,i=(a=t?.length)!==null&&a!==void 0?a:0;if(i<=1||e==null)return 0;if(n==="angleAxis"&&o!=null&&Math.abs(Math.abs(o[1]-o[0])-360)<=1e-6)for(var s=o[1]-o[0],l=(K,T,P)=>[e,e+s,e-s].some(I=>(P?I>=K:I>K)&&I<=T),u=0;u0?(c=r[u-1])===null||c===void 0?void 0:c.coordinate:(d=r[i-1])===null||d===void 0?void 0:d.coordinate,b=(p=r[u])===null||p===void 0?void 0:p.coordinate,g=u>=i-1?(f=r[0])===null||f===void 0?void 0:f.coordinate:(m=r[u+1])===null||m===void 0?void 0:m.coordinate,h=void 0;if(!(y==null||b==null||g==null))if(Qr(b-y)!==Qr(g-b)){var v=[];if(Qr(g-b)===Qr(o[1]-o[0])){h=g;var x=b+o[1]-o[0];v[0]=Math.min(x,(x+y)/2),v[1]=Math.max(x,(x+y)/2)}else{h=y;var S=g+o[1]-o[0];v[0]=Math.min(b,(S+b)/2),v[1]=Math.max(b,(S+b)/2)}var k=[Math.min(b,(h+b)/2),Math.max(b,(h+b)/2)];if(l(k[0],k[1],!1)||l(v[0],v[1],!0)){var w;return(w=r[u])===null||w===void 0?void 0:w.index}}else{var _=Math.min(y,g),A=Math.max(y,g);if(l((_+b)/2,(A+b)/2,!1)){var C;return(C=r[u])===null||C===void 0?void 0:C.index}}}else if(t)for(var N=0;N(L.coordinate+B.coordinate)/2||N>0&&N(L.coordinate+B.coordinate)/2&&e<=(L.coordinate+J.coordinate)/2)return L.index}}return-1};var S_=()=>$e(cg),FM=(e,t)=>t,GW=(e,t,r)=>r,UM=(e,t,r,n)=>n,YW=ae(Qa,e=>lu(e,t=>t.coordinate)),WM=ae([xu,FM,GW,UM],g_),HM=ae([WM,bu,hu,Fc],zc),XW=(e,t,r)=>{if(t!=null){var n=xu(e);return t==="axis"?r==="hover"?n.axisInteraction.hover.dataKey:n.axisInteraction.click.dataKey:r==="hover"?n.itemInteraction.hover.dataKey:n.itemInteraction.click.dataKey}},ZW=ae([xu,FM,GW,UM],y_),vx=ae([qo,Ko,Bt,Fr,Qa,UM,ZW],h_),JW=ae([WM,vx],(e,t)=>{var r;return(r=e.coordinate)!==null&&r!==void 0?r:t}),qM=ae([Qa,HM],c_),QW=ae([ZW,HM,Za,hu,qM,v_,FM],x_),RW=ae([WM,HM],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),age=(e,t,r,n,o,a,i)=>{if(!(!e||!r||!n||!o)&&VW(e,i)){var s=A7(e,t),l=BM(s,a,o,r,n),u=qW(t,o,l,e);return{activeIndex:String(l),activeCoordinate:u}}},ige=(e,t,r,n,o,a,i)=>{if(!(!e||!n||!o||!a||!r)){var s=rF(e,r);if(s){var l=E7(s,t),u=BM(l,i,a,n,o),c=KW(t,a,u,s);return{activeIndex:String(u),activeCoordinate:c}}}},eH=(e,t,r,n,o,a,i,s)=>{if(!(!e||!t||!n||!o||!a))return t==="horizontal"||t==="vertical"?age(e,t,n,o,a,i,s):ige(e,t,r,n,o,a,i)};var jg=Z(Q()),cH=Z(oy());var tH=ae(e=>e.zIndex.zIndexMap,(e,t)=>t,(e,t,r)=>r,(e,t,r)=>{if(t!=null){var n=e[t];if(n!=null)return r?n.panoramaElement:n.element}}),rH=ae(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(n=>parseInt(n,10)).concat(Object.values(ir)),r=Array.from(new Set(t));return r.sort((n,o)=>n-o)},{memoizeOptions:{resultEqualityCheck:IF}});function nH(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function oH(e){for(var t=1;toH(oH({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),cge)},pge=new Set(Object.values(ir));function fge(e){return pge.has(e)}var aH=Cr({name:"zIndex",initialState:dge,reducers:{registerZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]?e.zIndexMap[r].consumers+=1:e.zIndexMap[r]={consumers:1,element:void 0,panoramaElement:void 0}},prepare:Ir()},unregisterZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(e.zIndexMap[r].consumers-=1,e.zIndexMap[r].consumers<=0&&!fge(r)&&delete e.zIndexMap[r])},prepare:Ir()},registerZIndexPortalElement:{reducer:(e,t)=>{var r=t.payload,n=r.zIndex,o=r.element,a=r.isPanorama;e.zIndexMap[n]?a?e.zIndexMap[n].panoramaElement=Zt(o):e.zIndexMap[n].element=Zt(o):e.zIndexMap[n]={consumers:0,element:a?void 0:Zt(o),panoramaElement:a?Zt(o):void 0}},prepare:Ir()},unregisterZIndexPortalElement:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(t.payload.isPanorama?e.zIndexMap[r].panoramaElement=void 0:e.zIndexMap[r].element=void 0)},prepare:Ir()}}}),k_=aH.actions,iH=k_.registerZIndexPortal,__=k_.unregisterZIndexPortal,sH=k_.registerZIndexPortalElement,lH=k_.unregisterZIndexPortalElement;var uH=aH.reducer;function sn(e){var t=e.zIndex,r=e.children,n=W7(),o=n&&t!==void 0&&t!==0,a=Ar(),i=(0,jg.useRef)(void 0),s=(0,jg.useRef)(new Set),l=jt(),u=$e(d=>tH(d,t,a));if((0,jg.useLayoutEffect)(()=>{if(!o){var d=s.current;d.forEach(f=>{l(__({zIndex:f}))}),d.clear(),i.current=void 0;return}if(s.current.has(t)||(l(iH({zIndex:t})),s.current.add(t)),u){i.current=u;var p=s.current;p.forEach(f=>{f!==t&&(l(__({zIndex:f})),p.delete(f))})}},[l,t,o,u]),(0,jg.useLayoutEffect)(()=>{var d=s.current;return()=>{d.forEach(p=>{l(__({zIndex:p}))}),d.clear()}},[l]),!o)return r;var c=u??i.current;return c?(0,cH.createPortal)(r,c):null}function KM(){return KM=Object.assign?Object.assign.bind():function(e){for(var t=1;t(0,E_.useContext)(VM);var bx=Z(Q());var hH=Z(gH(),1);var yH=hH.default;var Lg=new yH;var T_="recharts.syncEvent.tooltip",YM="recharts.syncEvent.brush";var Uc=(e,t)=>{if(t&&Array.isArray(e)){var r=Number.parseInt(t,10);if(!Wo(r))return e[r]}},wge={chartName:"",tooltipPayloadSearcher:()=>{},eventEmitter:void 0,defaultTooltipEventType:"axis"},vH=Cr({name:"options",initialState:wge,reducers:{createEventEmitter:e=>{e.eventEmitter==null&&(e.eventEmitter=Symbol("rechartsEventEmitter"))}}}),xH=vH.reducer,bH=vH.actions.createEventEmitter;function wH(e){return e.tooltip.syncInteraction}var Sge={chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},SH=Cr({name:"chartData",initialState:Sge,reducers:{setChartData(e,t){if(e.chartData=Zt(t.payload),t.payload==null){e.dataStartIndex=0,e.dataEndIndex=0;return}t.payload.length>0&&e.dataEndIndex!==t.payload.length-1&&(e.dataEndIndex=t.payload.length-1)},setComputedData(e,t){e.computedData=t.payload},setDataStartEndIndexes(e,t){var r=t.payload,n=r.startIndex,o=r.endIndex;n!=null&&(e.dataStartIndex=n),o!=null&&(e.dataEndIndex=o)}}}),XM=SH.actions,ZM=XM.setChartData,kH=XM.setDataStartEndIndexes,kge=XM.setComputedData;var _H=SH.reducer;var _ge=["x","y"];function CH(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function zg(e){for(var t=1;tl.rootProps.className);(0,bx.useEffect)(()=>{if(e==null)return _a;var l=(u,c,d)=>{if(t!==d&&e===u){if(c.payload.active===!1){r(Mg({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(n==="index"){var p;if(i&&c!==null&&c!==void 0&&(p=c.payload)!==null&&p!==void 0&&p.coordinate&&c.payload.sourceViewBox){var f=c.payload.coordinate,m=f.x,y=f.y,b=Nge(f,_ge),g=c.payload.sourceViewBox,h=g.x,v=g.y,x=g.width,S=g.height,k=zg(zg({},b),{},{x:i.x+(x?(m-h)/x:0)*i.width,y:i.y+(S?(y-v)/S:0)*i.height});r(zg(zg({},c),{},{payload:zg(zg({},c.payload),{},{coordinate:k})}))}else r(c);return}if(o!=null){var w;if(typeof n=="function"){var _={activeTooltipIndex:c.payload.index==null?void 0:Number(c.payload.index),isTooltipActive:c.payload.active,activeIndex:c.payload.index==null?void 0:Number(c.payload.index),activeLabel:c.payload.label,activeDataKey:c.payload.dataKey,activeCoordinate:c.payload.coordinate},A=n(o,_);w=o[A]}else n==="value"&&(w=o.find(P=>String(P.value)===c.payload.label));var C=c.payload.coordinate;if(C==null||i==null){r(Mg({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(w==null){r(Mg({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:void 0}));return}var N=C.x,L=C.y,J=Math.min(N,i.x+i.width),B=Math.min(L,i.y+i.height),K={x:a==="horizontal"?w.coordinate:J,y:a==="horizontal"?B:w.coordinate},T=Mg({active:c.payload.active,coordinate:K,dataKey:c.payload.dataKey,index:String(w.index),label:c.payload.label,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:c.payload.graphicalItemId});r(T)}}};return Lg.on(T_,l),()=>{Lg.off(T_,l)}},[s,r,t,e,n,o,a,i])}function Pge(){var e=$e(uk),t=$e(ck),r=jt();(0,bx.useEffect)(()=>{if(e==null)return _a;var n=(o,a,i)=>{t!==i&&e===o&&r(kH(a))};return Lg.on(YM,n),()=>{Lg.off(YM,n)}},[r,t,e])}function AH(){var e=jt();(0,bx.useEffect)(()=>{e(bH())},[e]),Oge(),Pge()}function EH(e,t,r,n,o,a){var i=$e(m=>XW(m,e,t)),s=$e(w_),l=$e(ck),u=$e(uk),c=$e(mP),d=$e(wH),p=d?.sourceViewBox!=null,f=ap();(0,bx.useEffect)(()=>{if(!p&&u!=null&&l!=null){var m=Mg({active:a,coordinate:r,dataKey:i,index:o,label:typeof n=="number"?String(n):n,sourceViewBox:f,graphicalItemId:s});Lg.emit(T_,u,m,l)}},[p,r,i,s,o,n,l,u,c,a,f])}function NH(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function TH(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{w(_W({shared:h,trigger:v,axisId:k,active:o,defaultIndex:_}))},[w,h,v,k,o,_]);var A=ap(),C=FS(),N=vW(h),L=(t=$e(R=>RW(R,N,v,_)))!==null&&t!==void 0?t:{},J=L.activeIndex,B=L.isActive,K=$e(R=>QW(R,N,v,_)),T=$e(R=>qM(R,N,v,_)),P=$e(R=>JW(R,N,v,_)),I=K,M=fH(),j=(r=o??B)!==null&&r!==void 0?r:!1,O=Rw([I,j]),F=jge(O,2),V=F[0],z=F[1],G=N==="axis"?T:void 0;EH(N,v,P,G,J,j);var q=S??M;if(q==null||A==null||N==null)return null;var oe=I??PH;j||(oe=PH),u&&oe.length&&(oe=Gw(oe.filter(R=>R.value!=null&&(R.hide!==!0||n.includeHidden)),p,Fge));var Me=oe.length>0,fe=TH(TH({},n),{},{payload:oe,label:G,active:j,activeIndex:J,coordinate:P,accessibilityLayer:C}),le=as.createElement(f9,{allowEscapeViewBox:a,animationDuration:i,animationEasing:s,isAnimationActive:c,active:j,coordinate:P,hasPayload:Me,offset:d,position:f,reverseDirection:m,useTranslate3d:y,viewBox:A,wrapperStyle:b,lastBoundingBox:V,innerRef:z,hasPortalFromProps:!!S},Uge(l,fe));return as.createElement(as.Fragment,null,(0,IH.createPortal)(le,q),j&&as.createElement(pH,{cursor:g,tooltipEventType:N,coordinate:P,payload:oe,index:J}))}var wu=e=>null;wu.displayName="Cell";var QM=Z(Q()),I_=Z(Q());function Hge(e,t,r){return(t=qge(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function qge(e){var t=Kge(e,"string");return typeof t=="symbol"?t:t+""}function Kge(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var O_=class{constructor(t){Hge(this,"cache",new Map),this.maxSize=t}get(t){var r=this.cache.get(t);return r!==void 0&&(this.cache.delete(t),this.cache.set(t,r)),r}set(t,r){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxSize){var n=this.cache.keys().next().value;n!=null&&this.cache.delete(n)}this.cache.set(t,r)}clear(){this.cache.clear()}size(){return this.cache.size}};function DH(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Vge(e){for(var t=1;t{try{var r=document.getElementById($H);r||(r=document.createElement("span"),r.setAttribute("id",$H),r.setAttribute("aria-hidden","true"),document.body.appendChild(r)),Object.assign(r.style,Jge,t),r.textContent="".concat(e);var n=r.getBoundingClientRect();return{width:n.width,height:n.height}}catch{return{width:0,height:0}}},Op=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Ri.isSsr)return{width:0,height:0};if(!zH.enableCache)return LH(t,r);var n=Qge(t,r),o=jH.get(n);if(o)return o;var a=LH(t,r);return jH.set(n,a),a};var HH;function P_(e,t){return rhe(e)||the(e,t)||ehe(e,t)||Rge()}function Rge(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ehe(e,t){if(e){if(typeof e=="string")return BH(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?BH(e,t):void 0}}function BH(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.children,r=e.breakAll,n=e.style;try{var o=[];ar(t)||(r?o=t.toString().split(""):o=t.toString().split(ZH));var a=o.map(s=>({word:s,width:Op(s,n).width})),i=r?0:Op("\xA0",n).width;return{wordsWithComputedWidth:a,spaceWidth:i}}catch{return null}};function D_(e){return e==="start"||e==="middle"||e==="end"||e==="inherit"}function QH(e){return ar(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var RH=(e,t,r,n)=>e.reduce((o,a)=>{var i=a.word,s=a.width,l=o[o.length-1];if(l&&s!=null&&(t==null||n||l.width+s+re.reduce((t,r)=>t.width>r.width?t:r),She="\u2026",YH=(e,t,r,n,o,a,i,s)=>{var l=e.slice(0,t),u=JH({breakAll:r,style:n,children:l+She});if(!u)return[!1,[]];var c=RH(u.wordsWithComputedWidth,a,i,s),d=c.length>o||eq(c).width>Number(a);return[d,c]},khe=(e,t,r,n,o)=>{var a=e.maxLines,i=e.children,s=e.style,l=e.breakAll,u=De(a),c=String(i),d=RH(t,n,r,o);if(!u||o)return d;var p=d.length>a||eq(d).width>Number(n);if(!p)return d;for(var f=0,m=c.length-1,y=0,b;f<=m&&y<=c.length-1;){var g=Math.floor((f+m)/2),h=g-1,v=YH(c,h,l,s,a,n,r,o),x=VH(v,2),S=x[0],k=x[1],w=YH(c,g,l,s,a,n,r,o),_=VH(w,1),A=_[0];if(!S&&!A&&(f=g+1),S&&A&&(m=g-1),!S&&A){b=k;break}y++}return b||d},XH=e=>{var t=ar(e)?[]:e.toString().split(ZH);return[{words:t,width:void 0}]},_he=e=>{var t=e.width,r=e.scaleToFit,n=e.children,o=e.style,a=e.breakAll,i=e.maxLines;if((t||r)&&!Ri.isSsr){var s,l,u=JH({breakAll:a,children:n,style:o});if(u){var c=u.wordsWithComputedWidth,d=u.spaceWidth;s=c,l=d}else return XH(n);return khe({breakAll:a,children:n,maxLines:i,style:o},s,l,t,!!r)}return XH(n)},tq="#808080",Che={angle:0,breakAll:!1,capHeight:"0.71em",fill:tq,lineHeight:"1em",scaleToFit:!1,textAnchor:"start",verticalAnchor:"end",x:0,y:0},Pp=(0,I_.forwardRef)((e,t)=>{var r=nr(e,Che),n=r.x,o=r.y,a=r.lineHeight,i=r.capHeight,s=r.fill,l=r.scaleToFit,u=r.textAnchor,c=r.verticalAnchor,d=KH(r,ghe),p=(0,I_.useMemo)(()=>_he({breakAll:d.breakAll,children:d.children,maxLines:d.maxLines,scaleToFit:l,style:d.style,width:d.width}),[d.breakAll,d.children,d.maxLines,l,d.style,d.width]),f=d.dx,m=d.dy,y=d.angle,b=d.className,g=d.breakAll,h=KH(d,hhe);if(!ka(n)||!ka(o)||p.length===0)return null;var v=Number(n)+(De(f)?f:0),x=Number(o)+(De(m)?m:0);if(!Ot(v)||!Ot(x))return null;var S;switch(c){case"start":S=M_("calc(".concat(i,")"));break;case"middle":S=M_("calc(".concat((p.length-1)/2," * -").concat(a," + (").concat(i," / 2))"));break;default:S=M_("calc(".concat(p.length-1," * -").concat(a,")"));break}var k=[],w=p[0];if(l&&w!=null){var _=w.width,A=d.width;k.push("scale(".concat(De(A)&&De(_)?A/_:1,")"))}return y&&k.push("rotate(".concat(y,", ").concat(v,", ").concat(x,")")),k.length&&(h.transform=k.join(" ")),QM.createElement("text",JM({},yn(h),{ref:t,x:v,y:x,className:bt("recharts-text",b),textAnchor:u,fill:s.includes("url")?tq:s}),p.map((C,N)=>{var L=C.words.join(g?"":" ");return QM.createElement("tspan",{x:v,dy:N===0?S:a,key:"".concat(L,"-").concat(N)},L)}))});Pp.displayName="Text";var Ra=Z(Q()),No=Z(Q());var Ahe=["labelRef"],Ehe=["content"];function rq(e,t){if(e==null)return{};var r,n,o=Nhe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n{var t=e.x,r=e.y,n=e.upperWidth,o=e.lowerWidth,a=e.width,i=e.height,s=e.children,l=(0,No.useMemo)(()=>({x:t,y:r,upperWidth:n,lowerWidth:o,width:a,height:i}),[t,r,n,o,a,i]);return Ra.createElement(oq.Provider,{value:l},s)},iq=()=>{var e=(0,No.useContext)(oq),t=ap();return e||(t?uv(t):void 0)},sq=(0,No.createContext)(null),lq=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,o=e.outerRadius,a=e.startAngle,i=e.endAngle,s=e.clockWise,l=e.children,u=(0,No.useMemo)(()=>({cx:t,cy:r,innerRadius:n,outerRadius:o,startAngle:a,endAngle:i,clockWise:s}),[t,r,n,o,a,i,s]);return Ra.createElement(sq.Provider,{value:u},l)},Mhe=()=>{var e=(0,No.useContext)(sq),t=$e(gk);return e||t},Ihe=e=>{var t=e.value,r=e.formatter,n=ar(e.children)?t:e.children;return typeof r=="function"?r(n):n},Ip=e=>e!=null&&typeof e=="function",Dhe=(e,t)=>{var r=Qr(t-e),n=Math.min(Math.abs(t-e),360);return r*n},jhe=(e,t,r,n,o)=>{var a=e.offset,i=e.className,s=o.cx,l=o.cy,u=o.innerRadius,c=o.outerRadius,d=o.startAngle,p=o.endAngle,f=o.clockWise,m=(u+c)/2,y=Dhe(d,p),b=y>=0?1:-1,g,h;switch(t){case"insideStart":g=d+b*a,h=f;break;case"insideEnd":g=p-b*a,h=!f;break;case"end":g=p+b*a,h=f;break;default:throw new Error("Unsupported position ".concat(t))}h=y<=0?h:!h;var v=an(s,l,m,g),x=an(s,l,m,g+(h?1:-1)*359),S="M".concat(v.x,",").concat(v.y,` A`).concat(m,",").concat(m,",0,1,").concat(h?0:1,`, - `).concat(x.x,",").concat(x.y),k=ar(e.id)?ou("recharts-radial-line-"):e.id;return Ja.createElement("text",ku({},n,{dominantBaseline:"central",className:bt("recharts-radial-bar-label",i)}),Ja.createElement("defs",null,Ja.createElement("path",{id:k,d:S})),Ja.createElement("textPath",{xlinkHref:"#".concat(k)},r))},Ahe=(e,t,r)=>{var n=e.cx,o=e.cy,a=e.innerRadius,i=e.outerRadius,s=e.startAngle,l=e.endAngle,u=(s+l)/2;if(r==="outside"){var c=an(n,o,i+t,u),d=c.x,p=c.y;return{x:d,y:p,textAnchor:d>=n?"start":"end",verticalAnchor:"middle"}}if(r==="center")return{x:n,y:o,textAnchor:"middle",verticalAnchor:"middle"};if(r==="centerTop")return{x:n,y:o,textAnchor:"middle",verticalAnchor:"start"};if(r==="centerBottom")return{x:n,y:o,textAnchor:"middle",verticalAnchor:"end"};var f=(a+i)/2,m=an(n,o,f,u),y=m.x,b=m.y;return{x:y,y:b,textAnchor:"middle",verticalAnchor:"middle"}},Fg=e=>e!=null&&"cx"in e&&De(e.cx),Ehe={angle:0,offset:5,zIndex:ir.label,position:"middle",textBreakAll:!1};function Nhe(e){if(!Fg(e))return e;var t=e.cx,r=e.cy,n=e.outerRadius,o=n*2;return{x:t-n,y:r-n,width:o,upperWidth:o,lowerWidth:o,height:o}}function Su(e){var t,r,n=nr(e,Ehe),o=n.viewBox,a=n.parentViewBox,i=n.position,s=n.value,l=n.children,u=n.content,c=n.className,d=c===void 0?"":c,p=n.textBreakAll,f=n.labelRef,m=She(),y=JH(),b=i==="center"?y:m??y,g,h,v;o==null?g=b:Fg(o)?g=o:g=uv(o);var x=Nhe(g);if(!g||ar(s)&&ar(l)&&!(0,No.isValidElement)(u)&&typeof u!="function")return null;var S=Fg(g)&&(i==="insideStart"||i==="insideEnd"||i==="end");if(Fg(g))S||(v=Ahe(g,n.offset,n.position));else if(x){var k=pw({viewBox:x,position:i,offset:n.offset,parentViewBox:Fg(a)?void 0:a,clamp:!0});v=Mp(Mp({x:k.x,y:k.y,textAnchor:k.horizontalAnchor,verticalAnchor:k.verticalAnchor},k.width!==void 0?{width:k.width}:{}),k.height!==void 0?{height:k.height}:{})}var w=Mp(Mp(Mp(Mp({},((t=v)===null||t===void 0?void 0:t.x)!==void 0?{x:v.x}:{}),((r=v)===null||r===void 0?void 0:r.y)!==void 0?{y:v.y}:{}),n),{},{viewBox:g});if((0,No.isValidElement)(u)){var _=w.labelRef,A=GH(w,hhe);return(0,No.cloneElement)(u,A)}if(typeof u=="function"){var C=w.content,N=GH(w,yhe);if(h=(0,No.createElement)(u,N),(0,No.isValidElement)(h))return h}else h=khe(n);var L=yn(n);return S&&Fg(g)?Che(n,i,h,L,g):v==null?null:Ja.createElement(sn,{zIndex:n.zIndex},Ja.createElement(Pp,ku({ref:f,className:bt("recharts-label",d)},L,v,{textAnchor:I_(L.textAnchor)?L.textAnchor:v.textAnchor,breakAll:p}),h))}Su.displayName="Label";var The=(e,t,r)=>{if(!e)return null;var n={viewBox:t,labelRef:r};return e===!0?Ja.createElement(Su,ku({key:"label-implicit"},n)):Sa(e)?Ja.createElement(Su,ku({key:"label-implicit",value:e},n)):(0,No.isValidElement)(e)?e.type===Su?(0,No.cloneElement)(e,Mp({key:"label-implicit"},n)):Ja.createElement(Su,ku({key:"label-implicit",content:e},n)):Ip(e)?Ja.createElement(Su,ku({key:"label-implicit",content:e},n)):e&&typeof e=="object"?Ja.createElement(Su,ku({},e,{key:"label-implicit"},n)):null};function eq(e){var t=e.label,r=e.labelRef,n=JH();return The(t,n,r)||null}var _u=Z(J()),Ug=Z(J());var Ohe=["valueAccessor"],Phe=["dataKey","clockWise","id","textBreakAll","zIndex"];function j_(){return j_=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=Array.isArray(e.value)?e.value[e.value.length-1]:e.value;if(HH(t))return t},rq=(0,Ug.createContext)(void 0),Wg=rq.Provider,nq=(0,Ug.createContext)(void 0),oq=nq.Provider;function Dhe(){return(0,Ug.useContext)(rq)}function jhe(){return(0,Ug.useContext)(nq)}function D_(e){var t=e.valueAccessor,r=t===void 0?Ihe:t,n=tq(e,Ohe),o=n.dataKey,a=n.clockWise,i=n.id,s=n.textBreakAll,l=n.zIndex,u=tq(n,Phe),c=Dhe(),d=jhe(),p=c||d;return!p||!p.length?null:_u.createElement(sn,{zIndex:l??ir.label},_u.createElement(br,{className:"recharts-label-list"},p.map((f,m)=>{var y,b=ar(o)?r(f,m):Ht(f.payload,o),g=ar(i)?{}:{id:"".concat(i,"-").concat(m)};return _u.createElement(Su,j_({key:"label-".concat(m)},yn(f),u,g,{fill:(y=n.fill)!==null&&y!==void 0?y:f.fill,parentViewBox:f.parentViewBox,value:b,textBreakAll:s,viewBox:f.viewBox,index:m,zIndex:0}))})))}D_.displayName="LabelList";function qc(e){var t=e.label;return t?t===!0?_u.createElement(D_,{key:"labelList-implicit"}):_u.isValidElement(t)||Ip(t)?_u.createElement(D_,{key:"labelList-implicit",content:t}):typeof t=="object"?_u.createElement(D_,j_({key:"labelList-implicit"},t,{type:String(t.type)})):null:null}var aq=Z(J());function JM(){return JM=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=e.cx,r=e.cy,n=e.r,o=e.className,a=bt("recharts-dot",o);return De(t)&&De(r)&&De(n)?aq.createElement("circle",JM({},hn(e),Um(e),{className:a,cx:t,cy:r,r:n})):null};var QM=e=>e.graphicalItems.polarItems,$he=ae([vn,pp],ix),L_=ae([QM,En,$he],sx),Lhe=ae([L_],lx),z_=ae([Lhe,lp],ux),zhe=ae([z_,En,L_],nM),Y7e=ae([z_,En,L_],(e,t,r)=>r.length>0?e.flatMap(n=>r.flatMap(o=>{var a,i=Ht(n,(a=t.dataKey)!==null&&a!==void 0?a:o.dataKey);return{value:i,errorDomain:[]}})).filter(Boolean):t?.dataKey!=null?e.map(n=>({value:Ht(n,t.dataKey),errorDomain:[]})):e.map(n=>({value:n,errorDomain:[]}))),iq=()=>{},Bhe=ae([z_,En,L_,Og,vn,iF],dx),Fhe=ae([En,n_,o_,iq,Bhe,iq,Bt,vn],px),sq=ae([En,Bt,z_,zhe,Ec,vn,Fhe],fx),Uhe=ae([sq,Np,yu],mx),Whe=ae([En,sq,Uhe,vn],gx),X7e=ae([yu,Whe],hk);var Hhe={radiusAxis:{},angleAxis:{}},lq=Cr({name:"polarAxis",initialState:Hhe,reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=Zt(t.payload)},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=Zt(t.payload)},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),B_=lq.actions,R7e=B_.addRadiusAxis,e9e=B_.removeRadiusAxis,t9e=B_.addAngleAxis,r9e=B_.removeAngleAxis;var uq=lq.reducer;function F_(e){return e&&typeof e=="object"&&"className"in e&&typeof e.className=="string"?e.className:""}var Gt=Z(J()),Xg=Z(J());function cq(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function dq(e){for(var t=1;tt,RM=ae([QM,Ghe],(e,t)=>e.filter(r=>r.type==="pie").find(r=>r.id===t)),Yhe=[],e5=(e,t,r)=>r?.length===0?Yhe:r,pq=ae([lp,RM,e5],(e,t,r)=>{var n=e.chartData;if(t!=null){var o;if(t?.data!=null&&t.data.length>0?o=t.data:o=n,(!o||!o.length)&&r!=null&&(o=r.map(a=>dq(dq({},t.presentationProps),a.props))),o!=null)return o}}),fq=ae([pq,RM,e5],(e,t,r)=>{if(!(e==null||t==null))return e.map((n,o)=>{var a,i=Ht(n,t.nameKey,t.name),s;return r!=null&&(a=r[o])!==null&&a!==void 0&&(a=a.props)!==null&&a!==void 0&&a.fill?s=r[o].props.fill:typeof n=="object"&&n!=null&&"fill"in n?s=n.fill:s=t.fill,{value:xi(i,t.dataKey),dataKey:t.dataKey,color:s,payload:n,type:t.legendType}})}),mq=ae([pq,RM,e5,Fr],(e,t,r,n)=>{if(!(t==null||e==null))return gq({offset:n,pieSettings:t,displayedData:e,cells:r})});var wq=Z(J()),Sq=Z(vq());var xq=e=>typeof e=="string"?e:e?e.displayName||e.name||"Component":"",bq=null,n5=null,kq=e=>{if(e===bq&&Array.isArray(n5))return n5;var t=[];return wq.Children.forEach(e,r=>{ar(r)||((0,Sq.isFragment)(r)?t=t.concat(kq(r.props.children)):t.push(r))}),n5=t,bq=e,t};function wx(e,t){var r=[],n=[];return Array.isArray(t)?n=t.map(o=>xq(o)):n=[xq(t)],kq(e).forEach(o=>{var a=Uo(o,"type.displayName")||Uo(o,"type.name");a&&n.indexOf(a)!==-1&&r.push(o)}),r}var Hg=e=>e&&typeof e=="object"&&"clipDot"in e?!!e.clipDot:!0;var qg=Z(J()),Sx=Z(J());function _q(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Cq(e){for(var t=1;t{var n=jt();return(o,a)=>i=>{e?.(o,a,i),n(c_({activeIndex:String(a),activeDataKey:t,activeCoordinate:o.tooltipPosition,activeGraphicalItemId:r}))}},_x=e=>{var t=jt();return(r,n)=>o=>{e?.(r,n,o),t(hW())}},Cx=(e,t,r)=>{var n=jt();return(o,a)=>i=>{e?.(o,a,i),n(yW({activeIndex:String(a),activeDataKey:t,activeCoordinate:o.tooltipPosition,activeGraphicalItemId:r}))}};var Ax=Z(J());function Vc(e){var t=e.tooltipEntrySettings,r=jt(),n=Ar(),o=(0,Ax.useRef)(null);return(0,Ax.useLayoutEffect)(()=>{n||(o.current===null?r(pW(t)):o.current!==t&&r(fW({prev:o.current,next:t})),o.current=t)},[t,r,n]),(0,Ax.useLayoutEffect)(()=>()=>{o.current&&(r(mW(o.current)),o.current=null)},[r]),null}var Gc=Z(J());function Kg(e){var t=e.legendPayload,r=jt(),n=Ar(),o=(0,Gc.useRef)(null);return(0,Gc.useLayoutEffect)(()=>{n||(o.current===null?r(GO(t)):o.current!==t&&r(YO({prev:o.current,next:t})),o.current=t)},[r,n,t]),(0,Gc.useLayoutEffect)(()=>()=>{o.current&&(r(XO(o.current)),o.current=null)},[r]),null}function Eq(e){var t=e.legendPayload,r=jt(),n=$e(Bt),o=(0,Gc.useRef)(null);return(0,Gc.useLayoutEffect)(()=>{n!=="centric"&&n!=="radial"||(o.current===null?r(GO(t)):o.current!==t&&r(YO({prev:o.current,next:t})),o.current=t)},[r,n,t]),(0,Gc.useLayoutEffect)(()=>()=>{o.current&&(r(XO(o.current)),o.current=null)},[r]),null}var Oq=Z(J()),Tx=Z(J());function oye(e,t){return lye(e)||sye(e,t)||iye(e,t)||aye()}function aye(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function iye(e,t){if(e){if(typeof e=="string")return Nq(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Nq(e,t):void 0}}function Nq(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r2&&arguments[2]!==void 0?arguments[2]:[],n=[];for(var o of r)n.push({status:"removed",prev:o});for(var a=0;ae[Math.floor(a*r)]);return o5(n,t)}function cye(e,t){var r=t.map((n,o)=>e[o]);return o5(r,t)}function dye(e,t){for(var r=new Map,n=0;n{var f=r(d,p);if(f!=null){var m=n.get(f);if(m!==void 0)return o.add(f),m}}),i=[];for(var s of n){var l=oye(s,2),u=l[0],c=l[1];o.has(u)||i.push(c)}return o5(a,t,i)}function Nx(e,t,r){return t==null?null:e==null?t.map(n=>({status:"added",next:n})):r===Dp?uye(e,t):r===Ex?cye(e,t):pye(e,t,r)}var Vg=Z(J());function J_(e,t){var r=(0,Vg.useRef)(e),n=(0,Vg.useRef)(t.current),o=(0,Vg.useRef)(!0);r.current!==e&&(r.current=e,n.current=t.current,o.current=!1);var a=(0,Vg.useCallback)(function(i,s){var l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(s===0){o.current=!0;return}s===1&&(n.current=i),s>0&&o.current&&l&&(t.current=i)},[t]);return{startValue:n.current,syncStepValue:a}}function fye(e,t){return yye(e)||hye(e,t)||gye(e,t)||mye()}function mye(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function gye(e,t){if(e){if(typeof e=="string")return Tq(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Tq(e,t):void 0}}function Tq(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{typeof e=="function"&&e(),a(!0)},[e]),s=(0,Tx.useCallback)(()=>{typeof t=="function"&&t(),a(!1)},[t]);return{isAnimating:o,handleAnimationStart:i,handleAnimationEnd:s}}function Xc(e){var t,r=e.animationInput,n=e.animationIdPrefix,o=e.items,a=e.previousItemsRef,i=e.isAnimationActive,s=e.animationBegin,l=e.animationDuration,u=e.animationEasing,c=e.onAnimationStart,d=e.onAnimationEnd,p=e.animationInterpolateFn,f=e.animationMatchBy,m=e.shouldUpdatePreviousRef,y=e.children,b=e.layout,g=KS(r,n),h=J_(g,a),v=(t=h.startValue)!==null&&t!==void 0?t:null,x=Nx(v,o,f??Dp);return Oq.createElement(qS,{animationId:g,begin:s,duration:l,isActive:i,easing:u,onAnimationEnd:d,onAnimationStart:c,key:g},S=>{var k=v==null,w=o==null?o:p(x,S,b),_=m?m(S):S>0;return h.syncStepValue(w,S,_),w==null?null:y(w,S,k)})}var Iq=Z(J()),i5=Z(J());var Q_=Z(J());var a5;function vye(e,t){return Sye(e)||wye(e,t)||bye(e,t)||xye()}function xye(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function bye(e,t){if(e){if(typeof e=="string")return Pq(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Pq(e,t):void 0}}function Pq(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var e=Q_.useState(()=>ou("uid-")),t=vye(e,1),r=t[0];return r},R_=(a5=Q_.useId)!==null&&a5!==void 0?a5:kye;function Mq(e,t){var r=R_();return t||(e?"".concat(e,"-").concat(r):r)}var _ye=(0,i5.createContext)(void 0),Zc=e=>{var t=e.id,r=e.type,n=e.children,o=Mq("recharts-".concat(r),t);return Iq.createElement(_ye.Provider,{value:o},n(o))};var Ls=Z(J());var Cye={cartesianItems:[],polarItems:[]},Dq=Cr({name:"graphicalItems",initialState:Cye,reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(Zt(t.payload))},prepare:Ir()},replaceCartesianGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,o=r.next,a=ea(e).cartesianItems.indexOf(Zt(n));a>-1&&(e.cartesianItems[a]=Zt(o))},prepare:Ir()},removeCartesianGraphicalItem:{reducer(e,t){var r=ea(e).cartesianItems.indexOf(Zt(t.payload));r>-1&&e.cartesianItems.splice(r,1)},prepare:Ir()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(Zt(t.payload))},prepare:Ir()},removePolarGraphicalItem:{reducer(e,t){var r=ea(e).polarItems.indexOf(Zt(t.payload));r>-1&&e.polarItems.splice(r,1)},prepare:Ir()},replacePolarGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,o=r.next,a=ea(e).polarItems.indexOf(Zt(n));a>-1&&(e.polarItems[a]=Zt(o))},prepare:Ir()}}}),Gg=Dq.actions,jq=Gg.addCartesianGraphicalItem,$q=Gg.replaceCartesianGraphicalItem,Lq=Gg.removeCartesianGraphicalItem,zq=Gg.addPolarGraphicalItem,Bq=Gg.removePolarGraphicalItem,Fq=Gg.replacePolarGraphicalItem;var Uq=Dq.reducer;var Aye=e=>{var t=jt(),r=(0,Ls.useRef)(null);return(0,Ls.useLayoutEffect)(()=>{r.current===null?t(jq(e)):r.current!==e&&t($q({prev:r.current,next:e})),r.current=e},[t,e]),(0,Ls.useLayoutEffect)(()=>()=>{r.current&&(t(Lq(r.current)),r.current=null)},[t]),null},Yg=(0,Ls.memo)(Aye),Eye=e=>{var t=jt(),r=(0,Ls.useRef)(null);return(0,Ls.useLayoutEffect)(()=>{r.current===null?t(zq(e)):r.current!==e&&t(Fq({prev:r.current,next:e})),r.current=e},[t,e]),(0,Ls.useLayoutEffect)(()=>()=>{r.current&&(t(Bq(r.current)),r.current=null)},[t]),null},Wq=(0,Ls.memo)(Eye);var Nye=["key"],Tye=["onMouseEnter","onClick","onMouseLeave"],Oye=["id"],Pye=["id"];function jp(){return jp=Object.assign?Object.assign.bind():function(e){for(var t=1;twx(e.children,wu),[e.children]),r=$e(n=>fq(n,e.id,t));return r==null?null:Gt.createElement(Eq,{legendPayload:r})}function Lye(e){if(!(e==null||typeof e=="boolean"||typeof e=="function")){if(Gt.isValidElement(e)){var t,r=(t=e.props)===null||t===void 0?void 0:t.fill;return typeof r=="string"?r:void 0}var n=e.fill;return typeof n=="string"?n:void 0}}var zye=Gt.memo(e=>{var t=e.dataKey,r=e.nameKey,n=e.sectors,o=e.stroke,a=e.strokeWidth,i=e.fill,s=e.name,l=e.hide,u=e.tooltipType,c=e.formatter,d=e.id,p=e.activeShape,f=Lye(p),m=n.map(b=>{var g=b.tooltipPayload;return f==null||g==null?g:g.map(h=>Nn(Nn({},h),{},{color:f,fill:f}))}),y={dataDefinedOnItem:m,getPosition:b=>{var g;return(g=n[Number(b)])===null||g===void 0?void 0:g.tooltipPosition},settings:{stroke:o,strokeWidth:a,fill:i,dataKey:t,nameKey:r,name:xi(s,t),hide:l,type:u,color:i,unit:"",formatter:c,graphicalItemId:d}};return Gt.createElement(Vc,{tooltipEntrySettings:y})}),Bye=(e,t)=>e>t?"start":etypeof t=="function"?$n(t(e),r,r*.8):$n(t,r,r*.8),Uye=(e,t,r)=>{var n=t.top,o=t.left,a=t.width,i=t.height,s=XS(a,i),l=o+$n(e.cx,a,a/2),u=n+$n(e.cy,i,i/2),c=$n(e.innerRadius,s,0),d=Fye(r,e.outerRadius,s),p=e.maxRadius||Math.sqrt(a*a+i*i)/2;return{cx:l,cy:u,innerRadius:c,outerRadius:d,maxRadius:p}},Wye=(e,t)=>{var r=Qr(t-e),n=Math.min(Math.abs(t-e),360);return r*n},Hye=(e,t)=>{if(Gt.isValidElement(e))return Gt.cloneElement(e,t);if(typeof e=="function")return e(t);var r=bt("recharts-pie-label-line",typeof e!="boolean"?e.className:""),n=t.key,o=eC(t,Nye);return Gt.createElement(ul,jp({},o,{type:"linear",className:r}))},qye=(e,t,r)=>{if(Gt.isValidElement(e))return Gt.cloneElement(e,t);var n=r;if(typeof e=="function"&&(n=e(t),Gt.isValidElement(n)))return n;var o=bt("recharts-pie-label-text",F_(e));return Gt.createElement(Pp,jp({},t,{alignmentBaseline:"middle",className:o}),n)};function Kye(e){var t=e.sectors,r=e.props,n=e.showLabels,o=r.label,a=r.labelLine,i=r.dataKey;if(!n||!o||!t)return null;var s=hn(r),l=mi(o),u=mi(a),c=typeof o=="object"&&"offsetRadius"in o&&typeof o.offsetRadius=="number"&&o.offsetRadius||20,d=t.map((p,f)=>{var m=(p.startAngle+p.endAngle)/2,y=an(p.cx,p.cy,p.outerRadius+c,m),b=Nn(Nn(Nn(Nn({},s),p),{},{stroke:"none"},l),{},{index:f,textAnchor:Bye(y.x,p.cx)},y),g=Nn(Nn(Nn(Nn({},s),p),{},{fill:"none",stroke:p.fill},u),{},{index:f,points:[an(p.cx,p.cy,p.outerRadius,m),y],key:"line"});return Gt.createElement(sn,{zIndex:ir.label,key:"label-".concat(p.startAngle,"-").concat(p.endAngle,"-").concat(p.midAngle,"-").concat(f)},Gt.createElement(br,null,a&&Hye(a,g),qye(o,b,Ht(p,i))))});return Gt.createElement(br,{className:"recharts-pie-labels"},d)}function Vye(e){var t=e.sectors,r=e.props,n=e.showLabels,o=r.label;return typeof o=="object"&&o!=null&&"position"in o?Gt.createElement(qc,{label:o}):Gt.createElement(Kye,{sectors:t,props:r,showLabels:n})}function Gye(e){var t=e.sectors,r=e.activeShape,n=e.inactiveShape,o=e.allOtherPieProps,a=e.shape,i=e.id,s=e.animationElapsedTime,l=e.isAnimating,u=e.isEntrance,c=$e(ns),d=$e(Ig),p=$e(b_),f=o.onMouseEnter,m=o.onClick,y=o.onMouseLeave,b=eC(o,Tye),g=kx(f,o.dataKey,i),h=_x(y),v=Cx(m,o.dataKey,i);return t==null||t.length===0?null:Gt.createElement(Gt.Fragment,null,t.map((x,S)=>{if(x?.startAngle===0&&x?.endAngle===0&&t.length!==1)return null;var k=p==null||p===i,w=String(S)===c&&(d==null||o.dataKey===d)&&k,_=c?n:null,A=r&&w?r:_,C=Nn(Nn({},x),{},{stroke:x.stroke,tabIndex:-1,index:S,isActive:w,animationElapsedTime:s,isAnimating:l,isEntrance:u,[ES]:S,[NS]:i});return Gt.createElement(br,jp({key:"sector-".concat(x?.startAngle,"-").concat(x?.endAngle,"-").concat(x.midAngle,"-").concat(S),tabIndex:-1,className:"recharts-pie-sector"},iu(b,x,S),{onMouseEnter:g(x,S),onMouseLeave:h(x,S),onClick:v(x,S)}),Gt.createElement(Kc,{option:A??a,DefaultShape:qq,shapeProps:C}))}))}function gq(e){var t,r=e.pieSettings,n=e.displayedData,o=e.cells,a=e.offset,i=r.cornerRadius,s=r.startAngle,l=r.endAngle,u=r.dataKey,c=r.nameKey,d=r.tooltipType,p=Math.abs(r.minAngle),f=Wye(s,l),m=Math.abs(f),y=n.length<=1?0:(t=r.paddingAngle)!==null&&t!==void 0?t:0,b=n.filter(_=>Ht(_,u,0)!==0).length,g=(m>=360?b:b-1)*y,h=n.reduce((_,A)=>{var C=Ht(A,u,0);return _+(De(C)?C:0)},0),v=p>0&&h>0&&n.some(_=>{var A=Ht(_,u,0),C=(De(A)?A:0)/h;return A!==0&&C*m0){var w;k=n.map((_,A)=>{var C=Ht(_,u,0),N=Ht(_,c,A),L=Uye(r,a,_),Q=(De(C)?C:0)/h,B,K=Nn(Nn({},_),o&&o[A]&&o[A].props),T=K!=null&&"fill"in K&&typeof K.fill=="string"?K.fill:r.fill;A?B=w.endAngle+Qr(f)*y*(C!==0?1:0):B=s;var O=B+Qr(f)*((C!==0?x:0)+Q*S),I=(B+O)/2,P=(L.innerRadius+L.outerRadius)/2,j=[{name:N,value:C,payload:K,dataKey:u,type:d,color:T,fill:T,graphicalItemId:r.id}],M=an(L.cx,L.cy,P,I);return w=Nn(Nn(Nn(Nn({},r.presentationProps),{},{percent:Q,cornerRadius:typeof i=="string"?parseFloat(i):i,name:N,tooltipPayload:j,midAngle:I,middleRadius:P,tooltipPosition:M},K),L),{},{value:C,dataKey:u,startAngle:B,endAngle:O,payload:K,paddingAngle:C!==0?Qr(f)*y:0}),w})}return k}function Yye(e){var t=e.showLabels,r=e.sectors,n=e.children,o=(0,Xg.useMemo)(()=>!t||!r?[]:r.map(a=>({value:a.value,payload:a.payload,clockWise:!1,parentViewBox:void 0,viewBox:{cx:a.cx,cy:a.cy,innerRadius:a.innerRadius,outerRadius:a.outerRadius,startAngle:a.startAngle,endAngle:a.endAngle,clockWise:!1},fill:a.fill})),[r,t]);return Gt.createElement(oq,{value:t?o:void 0},n)}var Xye=(e,t)=>{if(e==null)return[];var r=[],n=e.find(a=>a.status!=="removed"),o=n?n.next.startAngle:0;return e.forEach((a,i)=>{if(a.status!=="removed"){var s=i>0?Uo(a.next,"paddingAngle",0):0;if(a.status==="matched"){var l=_r(a.prev.endAngle-a.prev.startAngle,a.next.endAngle-a.next.startAngle,t),u=Nn(Nn({},a.next),{},{startAngle:o+s,endAngle:o+l+s});r.push(u),o=u.endAngle}else{var c=_r(0,a.next.endAngle-a.next.startAngle,t),d=Nn(Nn({},a.next),{},{startAngle:o+s,endAngle:o+c+s});r.push(d),o=d.endAngle}}}),r};function Zye(e){var t,r,n,o,a=e.props,i=e.previousSectorsRef,s=e.id,l=a.sectors,u=a.activeShape,c=a.inactiveShape,d=a.animationInterpolateFn,p=Yc(a.onAnimationStart,a.onAnimationEnd),f=p.isAnimating,m=p.handleAnimationStart,y=p.handleAnimationEnd,b=M7();if(b==null)return null;var g=l[0];return Gt.createElement(Yye,{showLabels:!f,sectors:l},Gt.createElement(Xc,{animationInput:a,animationIdPrefix:"recharts-pie-",items:l,previousItemsRef:i,isAnimationActive:a.isAnimationActive,animationBegin:a.animationBegin,animationDuration:a.animationDuration,animationEasing:a.animationEasing,onAnimationStart:m,onAnimationEnd:y,animationInterpolateFn:d,animationMatchBy:a.animationMatchBy,layout:b},(h,v,x)=>Gt.createElement(br,null,Gt.createElement(Gye,{sectors:h,activeShape:u,inactiveShape:c,allOtherPieProps:a,shape:a.shape,id:s,animationElapsedTime:v,isAnimating:f||v<1,isEntrance:x}))),Gt.createElement(Vye,{showLabels:!f,sectors:l,props:a}),Gt.createElement(RH,{cx:(t=g?.cx)!==null&&t!==void 0?t:0,cy:(r=g?.cy)!==null&&r!==void 0?r:0,innerRadius:(n=g?.innerRadius)!==null&&n!==void 0?n:0,outerRadius:(o=g?.outerRadius)!==null&&o!==void 0?o:0,startAngle:a.startAngle,endAngle:a.endAngle,clockWise:!1},a.children))}var Jye={animationBegin:400,animationDuration:1500,animationEasing:"ease",animationInterpolateFn:Xye,animationMatchBy:Ex,cx:"50%",cy:"50%",dataKey:"value",endAngle:360,fill:"#808080",hide:!1,innerRadius:0,isAnimationActive:"auto",label:!1,labelLine:!0,legendType:"rect",minAngle:0,nameKey:"name",outerRadius:"80%",paddingAngle:0,rootTabIndex:0,shape:qq,startAngle:0,stroke:"#fff",zIndex:ir.area};function Qye(e){var t=e.id,r=eC(e,Oye),n=e.hide,o=e.className,a=e.rootTabIndex,i=(0,Xg.useMemo)(()=>wx(e.children,wu),[e.children]),s=$e(c=>mq(c,t,i)),l=(0,Xg.useRef)(null),u=bt("recharts-pie",o);return n||s==null?(l.current=null,Gt.createElement(br,{tabIndex:a,className:u})):Gt.createElement(sn,{zIndex:e.zIndex},Gt.createElement(zye,{dataKey:e.dataKey,nameKey:e.nameKey,sectors:s,stroke:e.stroke,strokeWidth:e.strokeWidth,fill:e.fill,name:e.name,hide:e.hide,tooltipType:e.tooltipType,formatter:e.formatter,id:t,activeShape:e.activeShape}),Gt.createElement(br,{tabIndex:a,className:u},Gt.createElement(Zye,{props:Nn(Nn({},r),{},{sectors:s}),previousSectorsRef:l,id:t})))}function Rye(e){var t=nr(e,Jye),r=t.id,n=eC(t,Pye),o=hn(n);return Gt.createElement(Zc,{id:r,type:"pie"},a=>Gt.createElement(Gt.Fragment,null,Gt.createElement(Wq,{type:"pie",id:a,data:n.data,dataKey:n.dataKey,hide:n.hide,angleAxisId:0,radiusAxisId:0,name:n.name,nameKey:n.nameKey,tooltipType:n.tooltipType,legendType:n.legendType,fill:n.fill,cx:n.cx,cy:n.cy,startAngle:n.startAngle,endAngle:n.endAngle,paddingAngle:n.paddingAngle,minAngle:n.minAngle,innerRadius:n.innerRadius,outerRadius:n.outerRadius,cornerRadius:n.cornerRadius,presentationProps:o,maxRadius:t.maxRadius}),Gt.createElement($ye,jp({},n,{id:a})),Gt.createElement(Qye,jp({},n,{id:a}))))}var tC=Rye;tC.displayName="Pie";var Ox=Z(J()),nC=Z(J());var eve=["points"];function Kq(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function s5(e){for(var t=1;t{var g,h,v=s5(s5(s5({r:3},i),p),{},{index:b,cx:(g=y.x)!==null&&g!==void 0?g:void 0,cy:(h=y.y)!==null&&h!==void 0?h:void 0,dataKey:a,value:y.value,payload:y.payload,points:t});return Ox.createElement(ive,{key:"dot-".concat(b),option:r,dotProps:v,className:o})}),m={};return s&&l!=null&&(m.clipPath="url(#clipPath-".concat(d?"":"dots-").concat(l,")")),Ox.createElement(sn,{zIndex:c},Ox.createElement(br,rC({className:n},m),f))}var Px=Z(J()),iC=Z(J());function Vq(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function aC(e){for(var t=1;t({top:e.top,bottom:e.bottom,left:e.left,right:e.right}));var oK=ae([nK,qo,Ko],(e,t,r)=>{if(!(!e||t==null||r==null))return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,r-e.top-e.bottom)}});var Jc=()=>$e(oK),aK=()=>$e(OW);function iK(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function u5(e){for(var t=1;t{var t=e.point,r=e.childIndex,n=e.mainColor,o=e.activeDot,a=e.dataKey,i=e.clipPath;if(o===!1||t.x==null||t.y==null)return null;var s={index:r,dataKey:a,cx:t.x,cy:t.y,r:4,fill:n??"none",strokeWidth:2,stroke:"#fff",payload:t.payload,value:t.value},l=u5(u5(u5({},s),mi(o)),Um(o)),u;return(0,iC.isValidElement)(o)?u=(0,iC.cloneElement)(o,l):typeof o=="function"?u=o(l):u=Px.createElement($_,l),Px.createElement(br,{className:"recharts-active-dot",clipPath:i},u)};function Mx(e){var t=e.points,r=e.mainColor,n=e.activeDot,o=e.itemDataKey,a=e.clipPath,i=e.zIndex,s=i===void 0?ir.activeDot:i,l=$e(ns),u=aK();if(t==null||u==null)return null;var c=t.find(d=>u.includes(d.payload));return ar(c)?null:Px.createElement(sn,{zIndex:s},Px.createElement(gve,{point:c,childIndex:Number(l),mainColor:r,dataKey:o,activeDot:n,clipPath:a}))}function hve(e,t){return bve(e)||xve(e,t)||vve(e,t)||yve()}function yve(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function vve(e,t){if(e){if(typeof e=="string")return sK(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?sK(e,t):void 0}}function sK(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var n=r??e;if(!ar(n))return $n(n,t,0)},uK=(e,t,r)=>{var n={},o=e.filter(fp),a=e.filter(u=>u.stackId==null),i=o.reduce((u,c)=>{var d=u[c.stackId];return d==null&&(d=[]),d.push(c),u[c.stackId]=d,u},n),s=Object.entries(i).map(u=>{var c,d=hve(u,2),p=d[0],f=d[1],m=f.map(b=>b.dataKey),y=lK(t,r,(c=f[0])===null||c===void 0?void 0:c.barSize);return{stackId:p,dataKeys:m,barSize:y}}),l=a.map(u=>{var c=[u.dataKey].filter(p=>p!=null),d=lK(t,r,u.barSize);return{stackId:void 0,dataKeys:c,barSize:d}});return[...s,...l]};function cK(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function sC(e){for(var t=1;th+(v.barSize||0),0);p+=(i-1)*s,p>=r&&(p-=(i-1)*s,s=0),p>=r&&d>0&&(c=!0,d*=.9,p=i*d);var f=Math.round((r-p)/2),m={offset:f-s,size:0};l=n.reduce((h,v)=>{var x,S={stackId:v.stackId,dataKeys:v.dataKeys,position:{offset:m.offset+m.size+s,size:c?d:(x=v.barSize)!==null&&x!==void 0?x:0}},k=[...h,S];return m=S.position,k},u)}else{var y=$n(t,r,0,!0);r-2*y-(i-1)*s<=0&&(s=0);var b=(r-2*y-(i-1)*s)/i;b>1&&(b=Math.round(b));var g=Ot(o)?Math.min(b,o):b;l=n.reduce((h,v,x)=>[...h,{stackId:v.stackId,dataKeys:v.dataKeys,position:{offset:y+i*(b-g)/2+(g+s)*x,size:g}}],u)}return l}}var dK=(e,t,r,n,o,a,i)=>{var s=ar(i)?t:i,l=_ve(r,n,o!==a?o:a,e,s);return o!==a&&l!=null&&(l=l.map(u=>sC(sC({},u),{},{position:sC(sC({},u.position),{},{offset:u.position.offset-o/2})}))),l};var pK=(e,t)=>{var r=Tc(t);if(!(!e||r==null||t==null)){var n=t.stackId;if(n!=null){var o=e[n];if(o){var a=o.stackedData;if(a)return a.find(i=>i.key===r)}}}};var fK=(e,t)=>{if(!(e==null||t==null)){var r=e.find(n=>n.stackId===t.stackId&&t.dataKey!=null&&n.dataKeys.includes(t.dataKey));if(r!=null)return r.position}};function mK(e,t){return e&&typeof e=="object"&&"zIndex"in e&&typeof e.zIndex=="number"&&Ot(e.zIndex)?e.zIndex:t}var gK=Z(J());var lC=e=>{var t=e.chartData,r=jt(),n=Ar();return(0,gK.useEffect)(()=>n?()=>{}:(r(YM(t)),()=>{r(YM(void 0))}),[t,r,n]),null};var hK={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},yK=Cr({name:"brush",initialState:hK,reducers:{setBrushSettings(e,t){return t.payload==null?hK:t.payload}}}),EUe=yK.actions.setBrushSettings;var vK=yK.reducer;function Cve(e){return(e%180+180)%180}var xK=function(t){var r=t.width,n=t.height,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=Cve(o),i=a*Math.PI/180,s=Math.atan(n/r),l=i>s&&i{e.dots.push(t.payload)},removeDot:(e,t)=>{var r=ea(e).dots.findIndex(n=>n===t.payload);r!==-1&&e.dots.splice(r,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var r=ea(e).areas.findIndex(n=>n===t.payload);r!==-1&&e.areas.splice(r,1)},addLine:(e,t)=>{e.lines.push(Zt(t.payload))},removeLine:(e,t)=>{var r=ea(e).lines.findIndex(n=>n===t.payload);r!==-1&&e.lines.splice(r,1)}}}),Zg=bK.actions,MUe=Zg.addDot,IUe=Zg.removeDot,DUe=Zg.addArea,jUe=Zg.removeArea,$Ue=Zg.addLine,LUe=Zg.removeLine;var wK=bK.reducer;var Ix=Z(J()),Dx=Z(J());function Eve(e,t){return Pve(e)||Ove(e,t)||Tve(e,t)||Nve()}function Nve(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Tve(e,t){if(e){if(typeof e=="string")return SK(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?SK(e,t):void 0}}function SK(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.children,r=(0,Dx.useState)("".concat(ou("recharts"),"-clip")),n=Eve(r,1),o=n[0],a=Jc();if(a==null)return null;var i=a.x,s=a.y,l=a.width,u=a.height;return Ix.createElement(Mve.Provider,{value:o},Ix.createElement("defs",null,Ix.createElement("clipPath",{id:o},Ix.createElement("rect",{x:i,y:s,height:u,width:l}))),t)};var xn=Z(J()),ca=Z(J());function _K(){}function c5(e){if(!e||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype||Object.getPrototypeOf(t)===null?Object.prototype.toString.call(e)==="[object Object]":!1}function CK(e,t,r){return jx(e,t,void 0,void 0,void 0,void 0,r)}function jx(e,t,r,n,o,a,i){let s=i(e,t,r,n,o,a);if(s!==void 0)return s;if(typeof e==typeof t)switch(typeof e){case"bigint":case"string":case"boolean":case"symbol":case"undefined":return e===t;case"number":return e===t||Object.is(e,t);case"function":return e===t;case"object":return $x(e,t,a,i)}return $x(e,t,a,i)}function $x(e,t,r,n){if(Object.is(e,t))return!0;let o=su(e),a=su(t);if(o==="[object Arguments]"&&(o=Km),a==="[object Arguments]"&&(a=Km),o!==a)return!1;switch(o){case Wm:return e.toString()===t.toString();case Hm:return _c(e.valueOf(),t.valueOf());case qm:case Aw:case Cw:return Object.is(e.valueOf(),t.valueOf());case kw:return e.source===t.source&&e.flags===t.flags;case Ez:return e===t}r=r??new Map;let i=r.get(e),s=r.get(t);if(i!=null&&s!=null)return i===t;r.set(e,t),r.set(t,e);try{switch(o){case Ew:if(e.size!==t.size)return!1;for(let[l,u]of e.entries())if(!t.has(l)||!jx(u,t.get(l),l,e,t,r,n))return!1;return!0;case Nw:{if(e.size!==t.size)return!1;let l=Array.from(e.values()),u=Array.from(t.values());for(let c=0;cjx(d,f,void 0,e,t,r,n));if(p===-1)return!1;u.splice(p,1)}return!0}case Tw:case Mw:case Iw:case Dw:case jw:case Tz:case $w:case Lw:case zw:case Oz:case Bw:case Fw:if(gv(e)!==gv(t)||e.length!==t.length)return!1;for(let l=0;le*o)return!1;var a=r();return e*(t-e*a/2-n)>=0&&e*(t+e*a/2-o)<=0}function NK(e,t){return uC(e,t+1)}function TK(e,t,r,n,o){for(var a=(n||[]).slice(),i=t.start,s=t.end,l=0,u=1,c=i,d=function(){var m=n?.[l];if(m===void 0)return{v:uC(n,u)};var y=l,b,g=()=>(b===void 0&&(b=r(m,y)),b),h=m.coordinate,v=l===0||$p(e,h,g,c,s);v||(l=0,c=i,u+=1),v&&(c=h+e*(g()/2+o),l+=u)},p;u<=a.length;)if(p=d(),p)return p.v;return[]}function OK(e,t,r,n,o){var a=(n||[]).slice(),i=a.length;if(i===0)return[];for(var s=t.start,l=t.end,u=1;u<=i;u++){for(var c=(i-1)%u,d=s,p=!0,f=function(){var x=n[y];if(x==null)return 0;var S=y,k,w=()=>(k===void 0&&(k=r(x,S)),k),_=x.coordinate,A=y===c||$p(e,_,w,d,l);if(!A)return p=!1,1;A&&(d=_+e*(w()/2+o))},m,y=c;y(y===void 0&&(y=r(f,p)),y);if(p===i-1){var g=e*(m.coordinate+e*b()/2-l);a[p]=m=ua(ua({},m),{},{tickCoord:g>0?m.coordinate-g*e:m.coordinate})}else a[p]=m=ua(ua({},m),{},{tickCoord:m.coordinate});if(m.tickCoord!=null){var h=$p(e,m.tickCoord,b,s,l);h&&(l=m.tickCoord-e*(b()/2+o),a[p]=ua(ua({},m),{},{isShow:!0}))}},c=i-1;c>=0;c--)u(c);return a}function Lve(e,t,r,n,o,a){var i=(n||[]).slice(),s=i.length,l=t.start,u=t.end;if(a){var c=n[s-1];if(c!=null){var d=r(c,s-1),p=e*(c.coordinate+e*d/2-u);if(i[s-1]=c=ua(ua({},c),{},{tickCoord:p>0?c.coordinate-p*e:c.coordinate}),c.tickCoord!=null){var f=$p(e,c.tickCoord,()=>d,l,u);f&&(u=c.tickCoord-e*(d/2+o),i[s-1]=ua(ua({},c),{},{isShow:!0}))}}}for(var m=a?s-1:s,y=function(h){var v=i[h];if(v==null)return 1;var x=v,S,k=()=>(S===void 0&&(S=r(v,h)),S);if(h===0){var w=e*(x.coordinate-e*k()/2-l);i[h]=x=ua(ua({},x),{},{tickCoord:w<0?x.coordinate-w*e:x.coordinate})}else i[h]=x=ua(ua({},x),{},{tickCoord:x.coordinate});if(x.tickCoord!=null){var _=$p(e,x.tickCoord,k,l,u);_&&(l=x.tickCoord+e*(k()/2+o),i[h]=ua(ua({},x),{},{isShow:!0}))}},b=0;b{var w=typeof u=="function"?u(S.value,k):S.value;return m==="width"?AK(Op(w,{fontSize:t,letterSpacing:r}),y,d):Op(w,{fontSize:t,letterSpacing:r})[m]},g=o[0],h=o[1],v=o.length>=2&&g!=null&&h!=null?Qr(h.coordinate-g.coordinate):1,x=EK(a,v,m);return l==="equidistantPreserveStart"?TK(v,x,b,o,i):l==="equidistantPreserveEnd"?OK(v,x,b,o,i):(l==="preserveStart"||l==="preserveStartEnd"?f=Lve(v,x,b,o,i,l==="preserveStartEnd"):f=$ve(v,x,b,o,i),f.filter(S=>S.isShow))}var MK=e=>{var t=e.ticks,r=e.label,n=e.labelGapWithTick,o=n===void 0?5:n,a=e.tickSize,i=a===void 0?0:a,s=e.tickMargin,l=s===void 0?0:s,u=0;if(t){Array.from(t).forEach(f=>{if(f){var m=f.getBoundingClientRect();m.width>u&&(u=m.width)}});var c=r?r.getBoundingClientRect().width:0,d=i+l,p=u+d+c+(r?o:0);return Math.round(p)}return 0};var IK=e=>{var t=e.ticks,r=e.label,n=e.labelGapWithTick,o=n===void 0?5:n,a=e.tickSize,i=a===void 0?0:a,s=e.tickMargin,l=s===void 0?0:s,u=0;if(t){Array.from(t).forEach(f=>{if(f){var m=f.getBoundingClientRect();m.height>u&&(u=m.height)}});var c=r?r.getBoundingClientRect().height:0,d=i+l,p=u+d+c+(r?o:0);return Math.round(p)}return 0};var zve={xAxis:{},yAxis:{}},DK=Cr({name:"renderedTicks",initialState:zve,reducers:{setRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,o=r.axisId,a=r.ticks;e[n][o]=Zt(a)},removeRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,o=r.axisId;delete e[n][o]}}}),jK=DK.actions,$K=jK.setRenderedTicks,LK=jK.removeRenderedTicks;var zK=DK.reducer;var Bve=["axisLine","width","height","className","hide","ticks","axisType","axisId"];function BK(e,t){return Hve(e)||Wve(e,t)||Uve(e,t)||Fve()}function Fve(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Uve(e,t){if(e){if(typeof e=="string")return FK(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?FK(e,t):void 0}}function FK(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{if(!(n==null||r==null)){var i=t.map(l=>({value:l.value,coordinate:l.coordinate,offset:l.offset,index:l.index})),s=a.current;s!=null&&s.axisId===n&&s.axisType===r&&d5(s.ticks,i)||(a.current={ticks:i,axisId:n,axisType:r},o($K({ticks:i,axisId:n,axisType:r})))}},[o,t,n,r]),(0,ca.useEffect)(()=>n==null||r==null?ka:()=>{o(LK({axisId:n,axisType:r}))},[o,n,r]),null}var txe=(0,ca.forwardRef)((e,t)=>{var r=e.ticks,n=r===void 0?[]:r,o=e.tick,a=e.tickLine,i=e.stroke,s=e.tickFormatter,l=e.unit,u=e.padding,c=e.tickTextProps,d=e.orientation,p=e.mirror,f=e.x,m=e.y,y=e.width,b=e.height,g=e.tickSize,h=e.tickMargin,v=e.fontSize,x=e.letterSpacing,S=e.getTicksConfig,k=e.events,w=e.axisType,_=e.axisId,A=Lx(Yn(Yn({},S),{},{ticks:n}),v,x),C=hn(S),N=mi(o),L=I_(C.textAnchor)?C.textAnchor:Jve(d,p),Q=Qve(d,p),B={};typeof a=="object"&&(B=a);var K=Yn(Yn({},C),{},{fill:"none"},B),T=A.map(P=>Yn({entry:P},Zve(P,f,m,y,b,d,g,p,h))),O=T.map(P=>{var j=P.entry,M=P.line;return xn.createElement(br,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(j.value,"-").concat(j.coordinate,"-").concat(j.tickCoord)},a&&xn.createElement("line",Lp({},K,M,{className:bt("recharts-cartesian-axis-tick-line",Uo(a,"className"))})))}),I=T.map((P,j)=>{var M,W,Y=P.entry,z=P.tick,V=Yn(Yn(Yn(Yn({verticalAnchor:Q},C),{},{textAnchor:L,stroke:"none",fill:i},z),{},{index:j,payload:Y,visibleTicksCount:A.length,tickFormatter:s,padding:u},c),{},{angle:(M=(W=c?.angle)!==null&&W!==void 0?W:C.angle)!==null&&M!==void 0?M:0}),q=Yn(Yn({},V),N);return xn.createElement(br,Lp({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(Y.value,"-").concat(Y.coordinate,"-").concat(Y.tickCoord)},iu(k,Y,j)),o&&xn.createElement(Rve,{option:o,tickProps:q,value:"".concat(typeof s=="function"?s(Y.value,j):Y.value).concat(l||"")}))});return xn.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(w,"-ticks")},xn.createElement(exe,{ticks:A,axisId:_,axisType:w}),I.length>0&&xn.createElement(sn,{zIndex:ir.label},xn.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(w,"-tick-labels"),ref:t},I)),O.length>0&&xn.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(w,"-tick-lines")},O))}),rxe=(0,ca.forwardRef)((e,t)=>{var r=e.axisLine,n=e.width,o=e.height,a=e.className,i=e.hide,s=e.ticks,l=e.axisType,u=e.axisId,c=qve(e,Bve),d=(0,ca.useState)(""),p=BK(d,2),f=p[0],m=p[1],y=(0,ca.useState)(""),b=BK(y,2),g=b[0],h=b[1],v=(0,ca.useRef)(null);(0,ca.useImperativeHandle)(t,()=>({getCalculatedWidth:()=>{var S;return MK({ticks:v.current,label:(S=e.labelRef)===null||S===void 0?void 0:S.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})},getCalculatedHeight:()=>{var S;return IK({ticks:v.current,label:(S=e.labelRef)===null||S===void 0?void 0:S.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}}));var x=(0,ca.useCallback)(S=>{if(S){var k=S.getElementsByClassName("recharts-cartesian-axis-tick-value");v.current=k;var w=k[0];if(w){var _=window.getComputedStyle(w),A=_.fontSize,C=_.letterSpacing;(A!==f||C!==g)&&(m(A),h(C))}}},[f,g]);return i||n!=null&&n<=0||o!=null&&o<=0?null:xn.createElement(sn,{zIndex:e.zIndex},xn.createElement(br,{className:bt("recharts-cartesian-axis",a)},xn.createElement(Xve,{x:e.x,y:e.y,width:n,height:o,orientation:e.orientation,mirror:e.mirror,axisLine:r,otherSvgProps:hn(e)}),xn.createElement(txe,{ref:x,axisType:l,events:c,fontSize:f,getTicksConfig:e,height:e.height,letterSpacing:g,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:s,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:u}),xn.createElement(ZH,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},xn.createElement(eq,{label:e.label,labelRef:e.labelRef}),e.children)))}),zx=xn.forwardRef((e,t)=>{var r=nr(e,is);return xn.createElement(rxe,Lp({},r,{ref:t}))});zx.displayName="CartesianAxis";var Xn=Z(J());var cC=Z(J());var WK={grid:{stroke:"#ccc",fill:"none"}};var HK=(0,cC.createContext)(WK),UWe=HK.Provider,qK=()=>(0,cC.useContext)(HK);var nxe=["x1","y1","x2","y2","key"],oxe=["offset"],axe=["xAxisId","yAxisId"],ixe=["xAxisId","yAxisId"];function KK(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function da(e){for(var t=1;t{var t=e.fill;if(!t||t==="none")return null;var r=e.fillOpacity,n=e.x,o=e.y,a=e.width,i=e.height,s=e.ry;return Xn.createElement("rect",{x:n,y:o,ry:s,width:a,height:i,stroke:"none",fill:t,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function VK(e){var t=e.option,r=e.lineItemProps,n;if(Xn.isValidElement(t))n=Xn.cloneElement(t,r);else if(typeof t=="function")n=t(r);else{var o,a=r.x1,i=r.y1,s=r.x2,l=r.y2,u=r.key,c=dC(r,nxe),d=(o=hn(c))!==null&&o!==void 0?o:{},p=d.offset,f=dC(d,oxe),m=Array.isArray(f.strokeDasharray)?f.strokeDasharray.join(","):f.strokeDasharray;n=Xn.createElement("line",zp({},f,{strokeDasharray:m,x1:a,y1:i,x2:s,y2:l,fill:"none",key:u}))}return n}function pxe(e){var t=e.x,r=e.width,n=e.horizontal,o=n===void 0?!0:n,a=e.horizontalPoints;if(!o||!a||!a.length)return null;var i=e.xAxisId,s=e.yAxisId,l=dC(e,axe),u=a.map((c,d)=>{var p=da(da({},l),{},{x1:t,y1:c,x2:t+r,y2:c,key:"line-".concat(d),index:d});return Xn.createElement(VK,{key:"line-".concat(d),option:o,lineItemProps:p})});return Xn.createElement("g",{className:"recharts-cartesian-grid-horizontal"},u)}function fxe(e){var t=e.y,r=e.height,n=e.vertical,o=n===void 0?!0:n,a=e.verticalPoints;if(!o||!a||!a.length)return null;var i=e.xAxisId,s=e.yAxisId,l=dC(e,ixe),u=a.map((c,d)=>{var p=da(da({},l),{},{x1:c,y1:t,x2:c,y2:t+r,key:"line-".concat(d),index:d});return Xn.createElement(VK,{option:o,lineItemProps:p,key:"line-".concat(d)})});return Xn.createElement("g",{className:"recharts-cartesian-grid-vertical"},u)}function mxe(e){var t=e.horizontalFill,r=e.fillOpacity,n=e.x,o=e.y,a=e.width,i=e.height,s=e.horizontalPoints,l=e.horizontal,u=l===void 0?!0:l;if(!u||!t||!t.length||s==null)return null;var c=s.map(p=>Math.round(p+o-o)).sort((p,f)=>p-f);o!==c[0]&&c.unshift(0);var d=c.map((p,f)=>{var m=c[f+1],y=m==null,b=y?o+i-p:m-p;if(b<=0)return null;var g=f%t.length;return Xn.createElement("rect",{key:"react-".concat(f),y:p,x:n,height:b,width:a,stroke:"none",fill:t[g],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return Xn.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},d)}function gxe(e){var t=e.vertical,r=t===void 0?!0:t,n=e.verticalFill,o=e.fillOpacity,a=e.x,i=e.y,s=e.width,l=e.height,u=e.verticalPoints;if(!r||!n||!n.length)return null;var c=u.map(p=>Math.round(p+a-a)).sort((p,f)=>p-f);a!==c[0]&&c.unshift(0);var d=c.map((p,f)=>{var m=c[f+1],y=m==null,b=y?a+s-p:m-p;if(b<=0)return null;var g=f%n.length;return Xn.createElement("rect",{key:"react-".concat(f),x:p,y:i,width:b,height:l,stroke:"none",fill:n[g],fillOpacity:o,className:"recharts-cartesian-grid-bg"})});return Xn.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},d)}var hxe=(e,t)=>{var r=e.xAxis,n=e.width,o=e.height,a=e.offset;return zO(Lx(da(da(da({},is),r),{},{ticks:BO(r,!0),viewBox:{x:0,y:0,width:n,height:o}})),a.left,a.left+a.width,t)},yxe=(e,t)=>{var r=e.yAxis,n=e.width,o=e.height,a=e.offset;return zO(Lx(da(da(da({},is),r),{},{ticks:BO(r,!0),viewBox:{x:0,y:0,width:n,height:o}})),a.top,a.top+a.height,t)},vxe={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:ir.grid};function Cu(e){var t,r,n,o,a,i,s=ng(),l=og(),u=IS(),c=da(da({},nr(e,vxe)),{},{x:De(e.x)?e.x:u.left,y:De(e.y)?e.y:u.top,width:De(e.width)?e.width:u.width,height:De(e.height)?e.height:u.height}),d=c.xAxisId,p=c.yAxisId,f=c.x,m=c.y,y=c.width,b=c.height,g=c.syncWithTicks,h=c.horizontalValues,v=c.verticalValues,x=Ar(),S=$e(O=>CM(O,"xAxis",d,x)),k=$e(O=>CM(O,"yAxis",p,x)),w=qK(),_={stroke:(t=c.stroke)!==null&&t!==void 0?t:w.grid.stroke,strokeWidth:(r=c.strokeWidth)!==null&&r!==void 0?r:w.grid.strokeWidth,strokeOpacity:(n=c.strokeOpacity)!==null&&n!==void 0?n:w.grid.strokeOpacity,strokeDasharray:(o=c.strokeDasharray)!==null&&o!==void 0?o:w.grid.strokeDasharray};if(!qa(y)||!qa(b)||!De(f)||!De(m))return null;var A=c.verticalCoordinatesGenerator||hxe,C=c.horizontalCoordinatesGenerator||yxe,N=c.horizontalPoints,L=c.verticalPoints;if((!N||!N.length)&&typeof C=="function"){var Q=h&&h.length,B=C({yAxis:k?da(da({},k),{},{ticks:Q?h:k.ticks}):void 0,width:s??y,height:l??b,offset:u},Q?!0:g);rg(Array.isArray(B),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof B,"]")),Array.isArray(B)&&(N=B)}if((!L||!L.length)&&typeof A=="function"){var K=v&&v.length,T=A({xAxis:S?da(da({},S),{},{ticks:K?v:S.ticks}):void 0,width:s??y,height:l??b,offset:u},K?!0:g);rg(Array.isArray(T),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof T,"]")),Array.isArray(T)&&(L=T)}return Xn.createElement(sn,{zIndex:c.zIndex},Xn.createElement("g",{className:"recharts-cartesian-grid"},Xn.createElement(dxe,{fill:(a=c.fill)!==null&&a!==void 0?a:w.grid.fill,fillOpacity:(i=c.fillOpacity)!==null&&i!==void 0?i:w.grid.fillOpacity,x:c.x,y:c.y,width:c.width,height:c.height,ry:c.ry}),Xn.createElement(mxe,zp({},c,{horizontalPoints:N})),Xn.createElement(gxe,zp({},c,{verticalPoints:L})),Xn.createElement(pxe,zp({},c,_,{offset:u,horizontalPoints:N,xAxis:S,yAxis:k})),Xn.createElement(fxe,zp({},c,_,{offset:u,verticalPoints:L,xAxis:S,yAxis:k}))))}Cu.displayName="CartesianGrid";var Sr=Z(J()),Au=Z(J());var GK=Z(J());var xxe=["animationElapsedTime","isAnimating","isEntrance","visibleLength","strokeDasharray","connectNulls"];function p5(){return p5=Object.assign?Object.assign.bind():function(e){for(var t=1;tf+m,0);if(!o)return YK(t,e);for(var a=Math.floor(e/o),i=e%o,s=[],l=0,u=0;li){s=[...n.slice(0,l),i-u];break}}var p=s.length%2===0?[0,t]:[t];return[..._xe(n,a),...s,...p].map(f=>"".concat(f,"px")).join(", ")}function Axe(e,t,r){if(e){var n="".concat(e).split(/[,\s]+/gim).map(o=>parseFloat(o));return Cxe(r,t,n)}return YK(t,r)}function XK(e){var t=e.animationElapsedTime,r=e.isAnimating,n=e.isEntrance,o=e.visibleLength,a=e.strokeDasharray,i=e.connectNulls,s=bxe(e,xxe),l=i??!1,u;if(o!=null){var c,d=s.pathRef,p=Sxe((c=d?.current)!==null&&c!==void 0?c:null);u=Axe(a,p,o)}else a!=null&&(u=String(a));return GK.createElement(ul,p5({},s,{connectNulls:l,strokeDasharray:u}))}var Bp=Z(J());function ZK(e){var t=(0,Bp.useRef)(0),r=(0,Bp.useRef)(0),n=(0,Bp.useRef)(!1),o=(0,Bp.useRef)(e);return o.current!==e&&(t.current=r.current,o.current=e),(0,Bp.useCallback)((a,i)=>{if(n.current)return null;var s=Math.min(Vi(t.current+a*i),i);return a>0&&i>0&&(r.current=Math.max(r.current,s),s>=i)?(n.current=!0,null):s},[])}var RK=Z(J()),Bx=Z(J());var Exe={},JK=Cr({name:"errorBars",initialState:Exe,reducers:{addErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,o=r.errorBar;e[n]||(e[n]=[]),e[n].push(o)},replaceErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,o=r.prev,a=r.next;e[n]&&(e[n]=e[n].map(i=>i.dataKey===o.dataKey&&i.direction===o.direction?a:i))},removeErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,o=r.errorBar;e[n]&&(e[n]=e[n].filter(a=>a.dataKey!==o.dataKey||a.direction!==o.direction))}}}),f5=JK.actions,cHe=f5.addErrorBar,dHe=f5.replaceErrorBar,pHe=f5.removeErrorBar;var QK=JK.reducer;var Nxe=["children"];function Txe(e,t){if(e==null)return{};var r,n,o=Oxe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n({x:0,y:0,value:0}),errorBarOffset:0},Mxe=(0,Bx.createContext)(Pxe);function pC(e){var t=e.children,r=Txe(e,Nxe);return RK.createElement(Mxe.Provider,{value:r},t)}var m5=Z(J());function Fp(e,t){var r,n,o=$e(u=>hl(u,e)),a=$e(u=>yl(u,t)),i=(r=o?.allowDataOverflow)!==null&&r!==void 0?r:io.allowDataOverflow,s=(n=a?.allowDataOverflow)!==null&&n!==void 0?n:so.allowDataOverflow,l=i||s;return{needClip:l,needClipX:i,needClipY:s}}function Jg(e){var t=e.xAxisId,r=e.yAxisId,n=e.clipPathId,o=Jc(),a=Fp(t,r),i=a.needClipX,s=a.needClipY,l=a.needClip,u=$e(v=>gM(v,t,!1)),c=$e(v=>hM(v,r,!1));if(!l||!o)return null;var d=o.x,p=o.y,f=o.width,m=o.height,y=i&&u?Math.min(u[0],u[1]):d-f/2,b=s&&c?Math.min(c[0],c[1]):p-m/2,g=i&&u?Math.abs(u[1]-u[0]):f*2,h=s&&c?Math.abs(c[1]-c[0]):m*2;return m5.createElement("clipPath",{id:"clipPath-".concat(n)},m5.createElement("rect",{x:y,y:b,width:g,height:h}))}var eV=(e,t,r,n)=>Ai(e,"xAxis",t,n),tV=(e,t,r,n)=>Ci(e,"xAxis",t,n),rV=(e,t,r,n)=>Ai(e,"yAxis",r,n),nV=(e,t,r,n)=>Ci(e,"yAxis",r,n),Ixe=ae([Bt,eV,rV,tV,nV],(e,t,r,n,o)=>sa(e,"xAxis")?Ji(t,n,!1):Ji(r,o,!1)),Dxe=(e,t,r,n,o)=>o;function jxe(e){return e.type==="line"}var $xe=ae([$c,Dxe],(e,t)=>e.filter(jxe).find(r=>r.id===t)),oV=ae([Bt,eV,rV,tV,nV,$xe,Ixe,up],(e,t,r,n,o,a,i,s)=>{var l=s.chartData,u=s.dataStartIndex,c=s.dataEndIndex;if(!(a==null||t==null||r==null||n==null||o==null||n.length===0||o.length===0||i==null||e!=="horizontal"&&e!=="vertical")){var d=a.dataKey,p=a.data,f;if(p!=null&&p.length>0?f=p:f=l?.slice(u,c+1),f!=null)return aV({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:o,dataKey:d,bandSize:i,displayedData:f})}});function fC(e){var t=mi(e),r=3,n=2;if(t!=null){var o=t.r,a=t.strokeWidth,i=Number(o),s=Number(a);return(Number.isNaN(i)||i<0)&&(i=r),(Number.isNaN(s)||s<0)&&(s=n),{r:i,strokeWidth:s}}return{r,strokeWidth:n}}var Lxe=["id"],zxe=["type","layout","connectNulls","needClip","shape","strokeDasharray"],Bxe=["activeDot","animateNewValues","animationBegin","animationDuration","animationEasing","connectNulls","dot","hide","isAnimationActive","label","legendType","xAxisId","yAxisId","id"];function mC(){return mC=Object.assign?Object.assign.bind():function(e){for(var t=1;t0?t/r:0}var Vxe=(e,t)=>{if(e==null)return[];if(t===1)return e.flatMap(s=>s.status==="removed"?[]:[s.next]);var r=Kxe(e),n=[];for(var o of e)if(o.status==="matched")n.push(vl(vl({},o.next),{},{x:_r(o.prev.x,o.next.x,t),y:_r(o.prev.y,o.next.y,t)}));else if(o.status==="added")if(o.next.x!=null){var a=o.next.x-r;n.push(vl(vl({},o.next),{},{x:_r(a,o.next.x,t),y:o.next.y}))}else n.push(o.next);else if(o.status==="removed"&&o.prev.x!=null){var i=o.prev.x+r;n.push(vl(vl({},o.prev),{},{x:_r(o.prev.x,i,t),y:o.prev.y}))}return n},y5={activeDot:!0,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",animationInterpolateFn:Vxe,animationMatchBy:Dp,connectNulls:!1,dot:!0,fill:"#fff",hide:!1,isAnimationActive:"auto",label:!1,legendType:"line",shape:XK,stroke:"#3182bd",strokeWidth:1,xAxisId:0,yAxisId:0,zIndex:ir.line,type:"linear"},Gxe=e=>{var t=e.dataKey,r=e.name,n=e.stroke,o=e.legendType,a=e.hide;return[{inactive:a,dataKey:t,type:o,color:n,value:xi(r,t),payload:e}]},Yxe=Sr.memo(e=>{var t=e.dataKey,r=e.data,n=e.stroke,o=e.strokeWidth,a=e.fill,i=e.name,s=e.hide,l=e.unit,u=e.formatter,c=e.tooltipType,d=e.id,p={dataDefinedOnItem:r,getPosition:ka,settings:{stroke:n,strokeWidth:o,fill:a,dataKey:t,nameKey:void 0,name:xi(i,t),hide:s,type:c,color:n,unit:l,formatter:u,graphicalItemId:d}};return Sr.createElement(Vc,{tooltipEntrySettings:p})});function Xxe(e){var t=e.clipPathId,r=e.points,n=e.props,o=n.dot,a=n.dataKey,i=n.needClip,s=n.id,l=h5(n,Lxe),u=hn(l);return Sr.createElement(oC,{points:r,dot:o,className:"recharts-line-dots",dotClassName:"recharts-line-dot",dataKey:a,baseProps:u,needClip:i,clipPathId:t})}function Zxe(e){var t=e.showLabels,r=e.children,n=e.points,o=(0,Au.useMemo)(()=>n?.map(a=>{var i,s,l={x:(i=a.x)!==null&&i!==void 0?i:0,y:(s=a.y)!==null&&s!==void 0?s:0,width:0,lowerWidth:0,upperWidth:0,height:0};return vl(vl({},l),{},{value:a.value,payload:a.payload,viewBox:l,parentViewBox:void 0,fill:void 0})}),[n]);return Sr.createElement(Wg,{value:t?o:void 0},r)}function Jxe(e){var t=e.clipPathId,r=e.pathRef,n=e.points,o=e.props,a=e.animationElapsedTime,i=e.isAnimating,s=e.isEntrance,l=e.visibleLength,u=o.type,c=o.layout,d=o.connectNulls,p=o.needClip,f=o.shape,m=o.strokeDasharray,y=h5(o,zxe),b=vl(vl({},yn(y)),{},{fill:"none",className:"recharts-line-curve",clipPath:p?"url(#clipPath-".concat(t,")"):void 0,points:n,type:u,layout:c,connectNulls:d,strokeDasharray:m??o.strokeDasharray,pathRef:r,animationElapsedTime:a,isAnimating:i,isEntrance:o.animateNewValues?s:!1,visibleLength:l});return Sr.createElement(Sr.Fragment,null,n?.length>1&&Sr.createElement(Kc,{option:f,DefaultShape:y5.shape,shapeProps:b}),Sr.createElement(Xxe,{points:n,clipPathId:t,props:o}))}function Qxe(e){var t=e.clipPathId,r=e.props,n=e.pathRef,o=e.previousPointsRef,a=r.points,i=r.isAnimationActive,s=r.animationBegin,l=r.animationDuration,u=r.animationEasing,c=r.animationMatchBy,d=r.animationInterpolateFn,p=r.layout,f=qxe(n.current),m=Yc(r.onAnimationStart,r.onAnimationEnd),y=m.isAnimating,b=m.handleAnimationStart,g=m.handleAnimationEnd,h=!y,v=ZK(a),x=(0,Au.useCallback)(S=>S>0&&f>0,[f]);return Sr.createElement(Zxe,{points:a,showLabels:h},r.children,Sr.createElement(Xc,{animationInput:a,animationIdPrefix:"recharts-line-",items:a,previousItemsRef:o,isAnimationActive:i,animationBegin:s,animationDuration:l,animationEasing:u,onAnimationStart:b,onAnimationEnd:g,animationInterpolateFn:d,animationMatchBy:c,shouldUpdatePreviousRef:x,layout:p},(S,k,w)=>{var _=y||k<1,A=_?v(k,f):null;return Sr.createElement(Jxe,{props:r,points:S,clipPathId:t,pathRef:n,animationElapsedTime:k,isAnimating:_,isEntrance:w,visibleLength:A})}),Sr.createElement(qc,{label:r.label}))}function Rxe(e){var t=e.clipPathId,r=e.props,n=(0,Au.useRef)(null),o=(0,Au.useRef)(null);return Sr.createElement(Qxe,{props:r,clipPathId:t,previousPointsRef:n,pathRef:o})}var e0e=(e,t)=>{var r,n;return{x:(r=e.x)!==null&&r!==void 0?r:void 0,y:(n=e.y)!==null&&n!==void 0?n:void 0,value:e.value,errorVal:Ht(e.payload,t)}},g5=class extends Au.Component{render(){var t=this.props,r=t.hide,n=t.dot,o=t.points,a=t.className,i=t.xAxisId,s=t.yAxisId,l=t.top,u=t.left,c=t.width,d=t.height,p=t.id,f=t.needClip,m=t.zIndex;if(r)return null;var y=bt("recharts-line",a),b=p,g=fC(n),h=g.r,v=g.strokeWidth,x=Hg(n),S=h*2+v,k=f?"url(#clipPath-".concat(x?"":"dots-").concat(b,")"):void 0;return Sr.createElement(sn,{zIndex:m},Sr.createElement(br,{className:y},f&&Sr.createElement("defs",null,Sr.createElement(Jg,{clipPathId:b,xAxisId:i,yAxisId:s}),!x&&Sr.createElement("clipPath",{id:"clipPath-dots-".concat(b)},Sr.createElement("rect",{x:u-S/2,y:l-S/2,width:c+S,height:d+S}))),Sr.createElement(pC,{xAxisId:i,yAxisId:s,data:o,dataPointFormatter:e0e,errorBarOffset:0},Sr.createElement(Rxe,{props:this.props,clipPathId:b}))),Sr.createElement(Mx,{activeDot:this.props.activeDot,points:o,mainColor:this.props.stroke,itemDataKey:this.props.dataKey,clipPath:k}))}};function t0e(e){var t=nr(e,y5),r=t.activeDot,n=t.animateNewValues,o=t.animationBegin,a=t.animationDuration,i=t.animationEasing,s=t.connectNulls,l=t.dot,u=t.hide,c=t.isAnimationActive,d=t.label,p=t.legendType,f=t.xAxisId,m=t.yAxisId,y=t.id,b=h5(t,Bxe),g=Fp(f,m),h=g.needClip,v=Jc(),x=Va(),S=Ar(),k=$e(N=>oV(N,f,m,S,y));if(x!=="horizontal"&&x!=="vertical"||k==null||v==null)return null;var w=v.height,_=v.width,A=v.x,C=v.y;return Sr.createElement(g5,mC({},b,{id:y,connectNulls:s,dot:l,activeDot:r,animateNewValues:n,animationBegin:o,animationDuration:a,animationEasing:i,isAnimationActive:c,hide:u,label:d,legendType:p,xAxisId:f,yAxisId:m,points:k,layout:x,height:w,width:_,left:A,top:C,needClip:h}))}function aV(e){var t=e.layout,r=e.xAxis,n=e.yAxis,o=e.xAxisTicks,a=e.yAxisTicks,i=e.dataKey,s=e.bandSize,l=e.displayedData;return l.map((u,c)=>{var d=Ht(u,i);if(t==="horizontal"){var p=Zm({axis:r,ticks:o,bandSize:s,entry:u,index:c}),f=ar(d)?null:n.scale.map(d);return{x:p,y:f??null,value:d,payload:u}}var m=ar(d)?null:r.scale.map(d),y=Zm({axis:n,ticks:a,bandSize:s,entry:u,index:c});return m==null||y==null?null:{x:m,y,value:d,payload:u}}).filter(Boolean)}function r0e(e){var t=nr(e,y5),r=Ar();return Sr.createElement(Zc,{id:t.id,type:"line"},n=>Sr.createElement(Sr.Fragment,null,Sr.createElement(Kg,{legendPayload:Gxe(t)}),Sr.createElement(Yxe,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:n}),Sr.createElement(Yg,{type:"line",id:n,data:t.data,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,hide:t.hide,isPanorama:r}),Sr.createElement(t0e,mC({},t,{id:n}))))}var gC=Sr.memo(r0e,Ga);gC.displayName="Line";var hr=Z(J()),Up=Z(J());function ss(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(o=>o.id===t))===null||n===void 0?void 0:n.xAxisId)!==null&&r!==void 0?r:l5}function ls(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(o=>o.id===t))===null||n===void 0?void 0:n.yAxisId)!==null&&r!==void 0?r:l5}var sV=(e,t,r)=>Ai(e,"xAxis",ss(e,t),r),lV=(e,t,r)=>Ci(e,"xAxis",ss(e,t),r),uV=(e,t,r)=>Ai(e,"yAxis",ls(e,t),r),cV=(e,t,r)=>Ci(e,"yAxis",ls(e,t),r),n0e=ae([Bt,sV,uV,lV,cV],(e,t,r,n,o)=>sa(e,"xAxis")?Ji(t,n,!1):Ji(r,o,!1)),o0e=(e,t)=>t,v5=ae([$c,o0e],(e,t)=>e.filter(r=>r.type==="area").find(r=>r.id===t)),dV=e=>{var t=Bt(e),r=sa(t,"xAxis");return r?"yAxis":"xAxis"},a0e=(e,t)=>{var r=dV(e);return r==="yAxis"?ls(e,t):ss(e,t)},pV=(e,t,r)=>Tg(e,dV(e),a0e(e,t),r),i0e=ae([v5,pV],(e,t)=>{var r;if(!(e==null||t==null)){var n=e.stackId,o=Tc(e);if(!(n==null||o==null)){var a=(r=t[n])===null||r===void 0?void 0:r.stackedData,i=a?.find(s=>s.key===o);if(i!=null)return i.map(s=>[s[0],s[1]])}}}),s0e=ae([v5,pV],(e,t)=>{if(!(e==null||e.stackId==null||t==null)){var r=t[e.stackId];if(r!=null)return r.graphicalItems.map(n=>n.dataKey).filter(Ao)}}),fV=ae([Bt,sV,uV,lV,cV,i0e,tk,n0e,v5,vF,s0e],(e,t,r,n,o,a,i,s,l,u,c)=>{var d=i.chartData,p=i.dataStartIndex,f=i.dataEndIndex;if(!(l==null||e!=="horizontal"&&e!=="vertical"||t==null||r==null||n==null||o==null||n.length===0||o.length===0||s==null)){var m=l.data,y;if(m&&m.length>0?y=m:y=d?.slice(p,f+1),y!=null)return mV({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:o,dataStartIndex:p,areaSettings:l,stackedData:a,displayedData:y,chartBaseValue:u,bandSize:s,stackDataKeys:c})}});var pa=Z(J());var l0e=["animationElapsedTime","isAnimating","isEntrance","layout","isRange","stroke","connectNulls"],u0e=["id","baseLine"];function Fx(){return Fx=Object.assign?Object.assign.bind():function(e){for(var t=1;td.y||0));return De(o)?c=Math.max(o,c):o&&Array.isArray(o)&&o.length&&(c=Math.max(...o.map(d=>d.y||0),c)),De(c)?pa.createElement("rect",{x:sd.x||0));return De(o)?c=Math.max(o,c):o&&Array.isArray(o)&&o.length&&(c=Math.max(...o.map(d=>d.x||0),c)),De(c)?pa.createElement("rect",{x:0,y:se==null?[]:t===1?e.flatMap(r=>r.status==="removed"?[]:[r.next]):e.flatMap(r=>r.status==="matched"?[Qg(Qg({},r.next),{},{x:_r(r.prev.x,r.next.x,t),y:_r(r.prev.y,r.next.y,t)})]:r.status==="added"?[r.next]:[]),xV={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",animationMatchBy:Dp,animationInterpolateFn:b0e,connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,shape:hV,xAxisId:0,yAxisId:0,zIndex:ir.area};function yC(e,t){return e&&e!=="none"?e:t}var w0e=e=>{var t=e.dataKey,r=e.name,n=e.stroke,o=e.fill,a=e.legendType,i=e.hide;return[{inactive:i,dataKey:t,type:a,color:yC(n,o),value:xi(r,t),payload:e}]},S0e=hr.memo(e=>{var t=e.dataKey,r=e.data,n=e.stroke,o=e.strokeWidth,a=e.fill,i=e.name,s=e.hide,l=e.unit,u=e.formatter,c=e.tooltipType,d=e.id,p={dataDefinedOnItem:r,getPosition:ka,settings:{stroke:n,strokeWidth:o,fill:a,dataKey:t,nameKey:void 0,name:xi(i,t),hide:s,type:c,color:yC(n,a),unit:l,formatter:u,graphicalItemId:d}};return hr.createElement(Vc,{tooltipEntrySettings:p})});function k0e(e){var t=e.clipPathId,r=e.points,n=e.props,o=n.needClip,a=n.dot,i=n.dataKey,s=hn(n);return hr.createElement(oC,{points:r,dot:a,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:i,baseProps:s,needClip:o,clipPathId:t})}function _0e(e){var t=e.showLabels,r=e.children,n=e.points,o=n.map(a=>{var i,s,l={x:(i=a.x)!==null&&i!==void 0?i:0,y:(s=a.y)!==null&&s!==void 0?s:0,width:0,lowerWidth:0,upperWidth:0,height:0};return Qg(Qg({},l),{},{value:a.value,payload:a.payload,parentViewBox:void 0,viewBox:l,fill:void 0})});return hr.createElement(Wg,{value:t?o:void 0},r)}function C0e(e){var t=e.points,r=e.baseLine,n=e.needClip,o=e.clipPathId,a=e.props,i=e.animationElapsedTime,s=e.isAnimating,l=e.isEntrance,u=a.layout,c=a.type,d=a.stroke,p=a.connectNulls,f=a.isRange,m=a.shape,y=a.id,b=vV(a,m0e),g=yn(b),h=Qg(Qg({},g),{},{id:y,points:t,connectNulls:p,type:c,baseLine:r,layout:u,stroke:d,isRange:f,animationElapsedTime:i,isAnimating:s,isEntrance:l});return hr.createElement(hr.Fragment,null,t?.length>1&&hr.createElement(br,{clipPath:n?"url(#clipPath-".concat(o,")"):void 0},hr.createElement(Kc,{option:m,DefaultShape:xV.shape,shapeProps:h})),hr.createElement(k0e,{points:t,props:b,clipPathId:o}))}function A0e(e,t,r){if(De(e)){var n=De(t)?t:void 0;return _r(n,e,r)}if(ar(e)||Wo(e)){var o=De(t)?t:void 0;return _r(o,0,r)}return e}function E0e(e){var t=e.needClip,r=e.clipPathId,n=e.props,o=e.previousPointsRef,a=e.previousBaselineRef,i=n.points,s=n.baseLine,l=n.isAnimationActive,u=n.animationBegin,c=n.animationDuration,d=n.animationEasing,p=n.animationMatchBy,f=n.animationInterpolateFn,m=(0,Up.useMemo)(()=>({points:i,baseLine:s}),[i,s]),y=J_(m,a),b=ag(),g=Yc(n.onAnimationStart,n.onAnimationEnd),h=g.isAnimating,v=g.handleAnimationStart,x=g.handleAnimationEnd,S=y.startValue;if(b==null)return null;var k;return Array.isArray(s)&&Array.isArray(S)?k=Nx(S,s,p):Array.isArray(s)?k=Nx(null,s,p):k=null,hr.createElement(Xc,{animationInput:m,animationIdPrefix:"recharts-area-",items:i,previousItemsRef:o,isAnimationActive:l,animationBegin:u,animationDuration:c,animationEasing:d,onAnimationStart:v,onAnimationEnd:x,animationInterpolateFn:f,animationMatchBy:p,layout:b},(w,_,A)=>{var C;return _===1?C=s:Array.isArray(s)?C=f(k,_,b):C=A?s:A0e(s,S,_),y.syncStepValue(C,_),hr.createElement(_0e,{showLabels:!h,points:i},n.children,hr.createElement(C0e,{points:w,baseLine:C,needClip:t,clipPathId:r,props:n,animationElapsedTime:_,isAnimating:h||_<1,isEntrance:A}),hr.createElement(qc,{label:n.label}))})}function N0e(e){var t=e.needClip,r=e.clipPathId,n=e.props,o=(0,Up.useRef)(null),a=(0,Up.useRef)();return hr.createElement(E0e,{needClip:t,clipPathId:r,props:n,previousPointsRef:o,previousBaselineRef:a})}var x5=class extends Up.PureComponent{render(){var t=this.props,r=t.hide,n=t.dot,o=t.points,a=t.className,i=t.top,s=t.left,l=t.needClip,u=t.xAxisId,c=t.yAxisId,d=t.width,p=t.height,f=t.id,m=t.baseLine,y=t.zIndex;if(r)return null;var b=bt("recharts-area",a),g=f,h=fC(n),v=h.r,x=h.strokeWidth,S=Hg(n),k=v*2+x,w=l?"url(#clipPath-".concat(S?"":"dots-").concat(g,")"):void 0;return hr.createElement(sn,{zIndex:y},hr.createElement(br,{className:b},l&&hr.createElement("defs",null,hr.createElement(Jg,{clipPathId:g,xAxisId:u,yAxisId:c}),!S&&hr.createElement("clipPath",{id:"clipPath-dots-".concat(g)},hr.createElement("rect",{x:s-k/2,y:i-k/2,width:d+k,height:p+k}))),hr.createElement(N0e,{needClip:l,clipPathId:g,props:this.props})),hr.createElement(Mx,{points:o,mainColor:yC(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:w}),this.props.isRange&&Array.isArray(m)&&hr.createElement(Mx,{points:m,mainColor:yC(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:w}))}};function T0e(e){var t,r=e.activeDot,n=e.animationBegin,o=e.animationDuration,a=e.animationEasing,i=e.connectNulls,s=e.dot,l=e.fill,u=e.fillOpacity,c=e.hide,d=e.isAnimationActive,p=e.legendType,f=e.stroke,m=e.xAxisId,y=e.yAxisId,b=vV(e,g0e),g=Va(),h=w_(),v=Fp(m,y),x=v.needClip,S=Ar(),k=(t=$e(K=>fV(K,e.id,S)))!==null&&t!==void 0?t:{},w=k.points,_=k.isRange,A=k.baseLine,C=Jc();if(g!=="horizontal"&&g!=="vertical"||C==null||h!=="AreaChart"&&h!=="ComposedChart")return null;var N=C.height,L=C.width,Q=C.x,B=C.y;return!w||!w.length?null:hr.createElement(x5,hC({},b,{activeDot:r,animationBegin:n,animationDuration:o,animationEasing:a,baseLine:A,connectNulls:i,dot:s,fill:l,fillOpacity:u,height:N,hide:c,layout:g,isAnimationActive:d,isRange:_,legendType:p,needClip:x,points:w,stroke:f,width:L,left:Q,top:B,xAxisId:m,yAxisId:y}))}var O0e=(e,t,r,n,o)=>{var a=r??t;if(De(a))return a;var i=e==="horizontal"?o:n,s=i.scale.domain();if(i.type==="number"){var l=Math.max(s[0],s[1]),u=Math.min(s[0],s[1]);return a==="dataMin"?u:a==="dataMax"||l<0?l:Math.max(Math.min(s[0],s[1]),0)}return a==="dataMin"?s[0]:a==="dataMax"?s[1]:s[0]};function mV(e){var t=e.areaSettings,r=t.connectNulls,n=t.baseValue,o=t.dataKey,a=e.stackedData,i=e.layout,s=e.chartBaseValue,l=e.xAxis,u=e.yAxis,c=e.displayedData,d=e.dataStartIndex,p=e.xAxisTicks,f=e.yAxisTicks,m=e.bandSize,y=e.stackDataKeys,b=a&&a.length,g=O0e(i,s,n,l,u),h=i==="horizontal",v=!1,x=c.map((k,w)=>{var _,A,C,N;if(b)N=a[d+w];else{var L=Ht(k,o);Array.isArray(L)?(N=L,v=!0):N=[g,L]}var Q=(_=(A=N)===null||A===void 0?void 0:A[1])!==null&&_!==void 0?_:null,B=Ht(k,o),K=b&&B==null&&y!=null&&y.length>0&&y.every(I=>Ht(k,I)==null),T=Q==null||b&&!r&&B==null||K;if(h){var O;return{x:Zm({axis:l,ticks:p,bandSize:m,entry:k,index:w}),y:T?null:(O=u.scale.map(Q))!==null&&O!==void 0?O:null,value:N,payload:k}}return{x:T?null:(C=l.scale.map(Q))!==null&&C!==void 0?C:null,y:Zm({axis:u,ticks:f,bandSize:m,entry:k,index:w}),value:N,payload:k}}),S;return b||v?S=x.map(k=>{var w,_=Array.isArray(k.value)?k.value[0]:null;if(h){var A;return{x:k.x,y:_!=null&&k.y!=null&&(A=u.scale.map(_))!==null&&A!==void 0?A:null,payload:k.payload}}return{x:_!=null&&(w=l.scale.map(_))!==null&&w!==void 0?w:null,y:k.y,payload:k.payload}}):S=h?u.scale.map(g):l.scale.map(g),{points:x,baseLine:S??0,isRange:v}}function P0e(e){var t=nr(e,xV),r=Ar();return hr.createElement(Zc,{id:t.id,type:"area"},n=>hr.createElement(hr.Fragment,null,hr.createElement(Kg,{legendPayload:w0e(t)}),hr.createElement(S0e,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:n}),hr.createElement(Yg,{type:"area",id:n,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:AS(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:r,connectNulls:t.connectNulls}),hr.createElement(T0e,hC({},t,{id:n}))))}var Eu=hr.memo(P0e,Ga);Eu.displayName="Area";var Rt=Z(J()),Bs=Z(J());var wV=Z(J());var M0e=!0,b5="Invariant failed";function bV(e,t){if(!e){if(M0e)throw new Error(b5);var r=typeof t=="function"?t():t,n=r?"".concat(b5,": ").concat(r):b5;throw new Error(n)}}var I0e=["option"];function D0e(e,t){if(e==null)return{};var r,n,o=j0e(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n1&&arguments[1]!==void 0?arguments[1]:0;return(n,o)=>{if(De(t))return t;var a=De(n)||ar(n);return a?t(n,o):(a||bV(!1,"minPointSize callback function received a value with type of ".concat(typeof n,". Currently only numbers or null/undefined are supported.")),r)}};var $0e=(e,t,r)=>r,L0e=(e,t)=>t,Ux=ae([$c,L0e],(e,t)=>e.filter(r=>r.type==="bar").find(r=>r.id===t)),z0e=ae([Ux],e=>e?.maxBarSize),B0e=(e,t,r,n)=>n,F0e=ae([Bt,$c,ss,ls,$0e],(e,t,r,n,o)=>t.filter(a=>e==="horizontal"?a.xAxisId===r:a.yAxisId===n).filter(a=>a.isPanorama===o).filter(a=>a.hide===!1).filter(a=>a.type==="bar")),U0e=(e,t,r)=>{var n=Bt(e),o=ss(e,t),a=ls(e,t);if(!(o==null||a==null))return n==="horizontal"?Tg(e,"yAxis",a,r):Tg(e,"xAxis",o,r)},W0e=(e,t)=>{var r=Bt(e),n=ss(e,t),o=ls(e,t);if(!(n==null||o==null))return r==="horizontal"?SM(e,"xAxis",n):SM(e,"yAxis",o)},H0e=ae([F0e,yF,W0e],uK),q0e=(e,t,r)=>{var n,o,a=Ux(e,t);if(a==null)return 0;var i=ss(e,t),s=ls(e,t);if(i==null||s==null)return 0;var l=Bt(e),u=dP(e),c=a.maxBarSize,d=ar(c)?u:c,p,f;return l==="horizontal"?(p=Ai(e,"xAxis",i,r),f=Ci(e,"xAxis",i,r)):(p=Ai(e,"yAxis",s,r),f=Ci(e,"yAxis",s,r)),(n=(o=Ji(p,f,!0))!==null&&o!==void 0?o:d)!==null&&n!==void 0?n:0},kV=(e,t,r)=>{var n=Bt(e),o=ss(e,t),a=ls(e,t);if(!(o==null||a==null)){var i,s;return n==="horizontal"?(i=Ai(e,"xAxis",o,r),s=Ci(e,"xAxis",o,r)):(i=Ai(e,"yAxis",a,r),s=Ci(e,"yAxis",a,r)),Ji(i,s)}},K0e=ae([H0e,dP,hF,ik,q0e,kV,z0e],dK),V0e=(e,t,r)=>{var n=ss(e,t);if(n!=null)return Ai(e,"xAxis",n,r)},G0e=(e,t,r)=>{var n=ls(e,t);if(n!=null)return Ai(e,"yAxis",n,r)},Y0e=(e,t,r)=>{var n=ss(e,t);if(n!=null)return Ci(e,"xAxis",n,r)},X0e=(e,t,r)=>{var n=ls(e,t);if(n!=null)return Ci(e,"yAxis",n,r)},Z0e=ae([K0e,Ux],fK),J0e=ae([U0e,Ux],pK),_V=ae([Fr,eg,V0e,G0e,Y0e,X0e,Z0e,Bt,tk,kV,J0e,Ux,B0e],(e,t,r,n,o,a,i,s,l,u,c,d,p)=>{var f=l.chartData,m=l.dataStartIndex,y=l.dataEndIndex;if(!(d==null||i==null||t==null||s!=="horizontal"&&s!=="vertical"||r==null||n==null||o==null||a==null||u==null)){var b=d.data,g;if(b!=null&&b.length>0?g=b:g=f?.slice(m,y+1),g!=null)return CV({layout:s,barSettings:d,pos:i,parentViewBox:t,bandSize:u,xAxis:r,yAxis:n,xAxisTicks:o,yAxisTicks:a,stackedData:c,displayedData:g,offset:e,cells:p,dataStartIndex:m})}});var S5=Z(J()),Rg=Z(J());var Q0e=["index"];function w5(){return w5=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=(0,Rg.useContext)(AV);if(t!=null)return t.stackId;if(e!=null)return AS(e)};var tbe=(e,t)=>"recharts-bar-stack-clip-path-".concat(e,"-").concat(t),rbe=e=>{var t=(0,Rg.useContext)(AV);if(t!=null){var r=t.stackId;return"url(#".concat(tbe(r,e),")")}},k5=e=>{var t=e.index,r=R0e(e,Q0e),n=rbe(t);return S5.createElement(br,w5({className:"recharts-bar-stack-layer",clipPath:n},r))};var nbe=["onMouseEnter","onMouseLeave","onClick"],obe=["value","background","tooltipPosition"],abe=["id"],ibe=["onMouseEnter","onClick","onMouseLeave"];function NV(e,t){return cbe(e)||ube(e,t)||lbe(e,t)||sbe()}function sbe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function lbe(e,t){if(e){if(typeof e=="string")return TV(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?TV(e,t):void 0}}function TV(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.dataKey,r=e.name,n=e.fill,o=e.legendType,a=e.hide;return[{inactive:a,dataKey:t,type:o,color:n,value:xi(r,t),payload:e}]},hbe=Rt.memo(e=>{var t=e.dataKey,r=e.stroke,n=e.strokeWidth,o=e.fill,a=e.name,i=e.hide,s=e.unit,l=e.formatter,u=e.tooltipType,c=e.id,d={dataDefinedOnItem:void 0,getPosition:ka,settings:{stroke:r,strokeWidth:n,fill:o,dataKey:t,nameKey:void 0,name:xi(a,t),hide:i,type:u,color:o,unit:s,formatter:l,graphicalItemId:c}};return Rt.createElement(Vc,{tooltipEntrySettings:d})});function ybe(e){var t=$e(ns),r=e.data,n=e.dataKey,o=e.background,a=e.allOtherBarProps,i=a.onMouseEnter,s=a.onMouseLeave,l=a.onClick,u=bC(a,nbe),c=kx(i,n,a.id),d=_x(s),p=Cx(l,n,a.id);if(!o||r==null)return null;var f=mi(o);return Rt.createElement(sn,{zIndex:mK(o,ir.barBackground)},r.map((m,y)=>{var b=m.value,g=m.background,h=m.tooltipPosition,v=bC(m,obe);if(!g)return null;var x=c(m,m.originalDataIndex),S=d(m,m.originalDataIndex),k=p(m,m.originalDataIndex),w=To(To(To(To(To({option:o,isActive:String(m.originalDataIndex)===t},v),{},{fill:"#eee"},g),f),iu(u,m,y)),{},{onMouseEnter:x,onMouseLeave:S,onClick:k,dataKey:n,index:y,className:"recharts-bar-background-rectangle"});return Rt.createElement(xC,Qc({key:"background-bar-".concat(y)},w))}))}function vbe(e){var t=e.showLabels,r=e.children,n=e.rects,o=n?.map(a=>{var i={x:a.x,y:a.y,width:a.width,lowerWidth:a.width,upperWidth:a.width,height:a.height};return To(To({},i),{},{value:a.value,payload:a.payload,parentViewBox:a.parentViewBox,viewBox:i,fill:a.fill})});return Rt.createElement(Wg,{value:t?o:void 0},r)}function xbe(e){var t=e.shape,r=e.activeBar,n=e.baseProps,o=e.entry,a=e.index,i=e.dataKey,s=$e(ns),l=$e(Ig),u=r&&String(o.originalDataIndex)===s&&(l==null||i===l),c=s!=null&&(String(o.originalDataIndex)!==s||l!=null&&i!==l),d=(0,Bs.useState)(!1),p=NV(d,2),f=p[0],m=p[1],y=(0,Bs.useState)(!1),b=NV(y,2),g=b[0],h=b[1];(0,Bs.useEffect)(()=>{var _;return u?(m(!0),_=requestAnimationFrame(()=>{h(!0)})):(h(!1),c&&m(!1)),()=>{cancelAnimationFrame(_)}},[u,c]);var v=(0,Bs.useCallback)(()=>{u||m(!1)},[u]),x=u&&g,S=u||f,k;u?r===!0?k=t:k=r:k=t;var w=Rt.createElement(xC,Qc({},n,{name:String(n.name)},o,{isActive:x,option:k,index:a,dataKey:i,animationElapsedTime:e.animationElapsedTime,isAnimating:e.isAnimating,isEntrance:e.isEntrance,onTransitionEnd:v}));return S?Rt.createElement(sn,{zIndex:ir.activeBar},Rt.createElement(k5,{index:o.originalDataIndex},w)):w}function bbe(e){var t=e.shape,r=e.baseProps,n=e.entry,o=e.index,a=e.dataKey;return Rt.createElement(xC,Qc({},r,{name:String(r.name)},n,{isActive:!1,option:t,index:o,dataKey:a,animationElapsedTime:e.animationElapsedTime,isAnimating:e.isAnimating,isEntrance:e.isEntrance}))}function wbe(e){var t,r=e.data,n=e.props,o=e.animationElapsedTime,a=e.isAnimating,i=e.isEntrance,s=(t=hn(n))!==null&&t!==void 0?t:{},l=s.id,u=bC(s,abe),c=n.shape,d=n.dataKey,p=n.activeBar,f=n.onMouseEnter,m=n.onClick,y=n.onMouseLeave,b=bC(n,ibe),g=kx(f,d,l),h=_x(y),v=Cx(m,d,l);return r?Rt.createElement(Rt.Fragment,null,r.map((x,S)=>Rt.createElement(k5,Qc({index:x.originalDataIndex,key:"rectangle-".concat(x?.x,"-").concat(x?.y,"-").concat(x?.value,"-").concat(S),className:"recharts-bar-rectangle"},iu(b,x,S),{onMouseEnter:g(x,x.originalDataIndex),onMouseLeave:h(x,x.originalDataIndex),onClick:v(x,x.originalDataIndex)}),p?Rt.createElement(xbe,{shape:c,activeBar:p,baseProps:u,entry:x,index:S,dataKey:d,animationElapsedTime:o,isAnimating:a,isEntrance:i}):Rt.createElement(bbe,{shape:c,baseProps:u,entry:x,index:S,dataKey:d,animationElapsedTime:o,isAnimating:a,isEntrance:i})))):null}var Sbe=(e,t,r)=>e==null?[]:t===1?e.flatMap(n=>n.status==="removed"?[]:[n.next]):e.flatMap(n=>{if(n.status==="removed")return r==="horizontal"?[To(To({},n.prev),{},{height:_r(n.prev.height,0,t),y:_r(n.prev.y,n.prev.y+n.prev.height,t)})]:[To(To({},n.prev),{},{width:_r(n.prev.width,0,t)})];if(n.status==="matched")return[To(To({},n.next),{},{x:_r(n.prev.x,n.next.x,t),y:_r(n.prev.y,n.next.y,t),width:_r(n.prev.width,n.next.width,t),height:_r(n.prev.height,n.next.height,t)})];var o=n.next;return r==="horizontal"?[To(To({},o),{},{height:_r(0,o.height,t),y:_r(o.stackedBarStart,o.y,t)})]:[To(To({},o),{},{width:_r(0,o.width,t),x:_r(o.stackedBarStart,o.x,t)})]});function kbe(e){var t=e.props,r=e.previousRectanglesRef,n=t.data,o=t.isAnimationActive,a=t.animationBegin,i=t.animationDuration,s=t.animationEasing,l=t.animationInterpolateFn,u=t.layout,c=Yc(t.onAnimationStart,t.onAnimationEnd),d=c.isAnimating,p=c.handleAnimationStart,f=c.handleAnimationEnd;return Rt.createElement(vbe,{showLabels:!d,rects:n},Rt.createElement(Xc,{animationInput:n,animationIdPrefix:"recharts-bar-",items:n,previousItemsRef:r,isAnimationActive:o,animationBegin:a,animationDuration:i,animationEasing:s,onAnimationStart:p,onAnimationEnd:f,animationInterpolateFn:l,animationMatchBy:t.animationMatchBy,layout:u},(m,y,b)=>Rt.createElement(br,null,Rt.createElement(wbe,{props:t,data:m,animationElapsedTime:y,isAnimating:d||y<1,isEntrance:b}))),Rt.createElement(qc,{label:t.label}),t.children)}function _be(e){var t=(0,Bs.useRef)(null);return Rt.createElement(kbe,{previousRectanglesRef:t,props:e})}var PV=0,Cbe=(e,t)=>{var r=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:r,errorVal:Ht(e,t)}},_5=class extends Bs.PureComponent{render(){var t=this.props,r=t.hide,n=t.data,o=t.dataKey,a=t.className,i=t.xAxisId,s=t.yAxisId,l=t.needClip,u=t.background,c=t.id;if(r||n==null)return null;var d=bt("recharts-bar",a),p=c;return Rt.createElement(br,{className:d,id:c},l&&Rt.createElement("defs",null,Rt.createElement(Jg,{clipPathId:p,xAxisId:i,yAxisId:s})),Rt.createElement(br,{className:"recharts-bar-rectangles",clipPath:l?"url(#clipPath-".concat(p,")"):void 0},Rt.createElement(ybe,{data:n,dataKey:o,background:u,allOtherBarProps:this.props}),Rt.createElement(_be,this.props)))}},Abe={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:"ease",animationInterpolateFn:Sbe,animationMatchBy:Ex,background:!1,hide:!1,isAnimationActive:"auto",label:!1,legendType:"rect",minPointSize:PV,shape:vC,xAxisId:0,yAxisId:0,zIndex:ir.bar};function Ebe(e){var t=e.xAxisId,r=e.yAxisId,n=e.hide,o=e.legendType,a=e.minPointSize,i=e.activeBar,s=e.animationBegin,l=e.animationDuration,u=e.animationEasing,c=e.isAnimationActive,d=Fp(t,r),p=d.needClip,f=Va(),m=Ar(),y=wx(e.children,wu),b=$e(v=>_V(v,e.id,m,y));if(f!=="vertical"&&f!=="horizontal")return null;var g,h=b?.[0];return h==null||h.height==null||h.width==null?g=0:g=f==="vertical"?h.height/2:h.width/2,Rt.createElement(pC,{xAxisId:t,yAxisId:r,data:b,dataPointFormatter:Cbe,errorBarOffset:g},Rt.createElement(_5,Qc({},e,{layout:f,needClip:p,data:b,xAxisId:t,yAxisId:r,hide:n,legendType:o,minPointSize:a,activeBar:i,animationBegin:s,animationDuration:l,animationEasing:u,isAnimationActive:c})))}function CV(e){var t=e.layout,r=e.barSettings,n=r.dataKey,o=r.minPointSize,a=r.hasCustomShape,i=e.pos,s=e.bandSize,l=e.xAxis,u=e.yAxis,c=e.xAxisTicks,d=e.yAxisTicks,p=e.stackedData,f=e.displayedData,m=e.offset,y=e.cells,b=e.parentViewBox,g=e.dataStartIndex,h=t==="horizontal"?u:l,v=p?h.scale.domain():null,x=g7({numericAxis:h}),S=h.scale.map(x);return f.map((k,w)=>{var _,A,C,N,L,Q;if(p){var B=p[w+g];if(B==null)return null;_=f7(B,v)}else _=Ht(k,n),Array.isArray(_)||(_=[x,_]);var K=SV(o,PV)(_[1],w);if(t==="horizontal"){var T,O=u.scale.map(_[0]),I=u.scale.map(_[1]);if(O==null||I==null)return null;A=FO({axis:l,ticks:c,bandSize:s,offset:i.offset,entry:k,index:w}),C=(T=I??O)!==null&&T!==void 0?T:void 0,N=i.size;var P=O-I;if(L=Wo(P)?0:P,Q={x:A,y:m.top,width:N,height:m.height},Math.abs(K)>0&&Math.abs(L)0&&Math.abs(N)Rt.createElement(Rt.Fragment,null,Rt.createElement(Kg,{legendPayload:gbe(t)}),Rt.createElement(hbe,{dataKey:t.dataKey,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:o}),Rt.createElement(Yg,{type:"bar",id:o,data:void 0,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,stackId:r,hide:t.hide,barSize:t.barSize,minPointSize:t.minPointSize,maxBarSize:t.maxBarSize,isPanorama:n,hasCustomShape:t.shape!=null&&t.shape!==vC}),Rt.createElement(sn,{zIndex:t.zIndex},Rt.createElement(Ebe,Qc({},t,{id:o})))))}var wC=Rt.memo(Nbe,Ga);wC.displayName="Bar";var Nu=Z(J()),us=Z(J());var Tbe=["domain","range"],Obe=["domain","range"];function MV(e,t){if(e==null)return{};var r,n,o=Pbe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n{if(i!=null)return jV(jV({},a),{},{type:i})},[a,i]);return(0,us.useLayoutEffect)(()=>{s!=null&&(r.current===null?t(Yq(s)):r.current!==s&&t(Xq({prev:r.current,next:s})),r.current=s)},[s,t]),(0,us.useLayoutEffect)(()=>()=>{r.current&&(t(Zq(r.current)),r.current=null)},[t]),null}var Fbe=e=>{var t=e.xAxisId,r=e.className,n=e.height,o=e.label,a=(0,us.useRef)(null),i=(0,us.useRef)(null),s=$e(eg),l=Ar(),u=jt(),c="xAxis",d=$e(k=>l_(k,c,t,l)),p=$e(k=>bM(k,t)),f=$e(k=>iW(k,t)),m=$e(k=>JP(k,t));if((0,us.useLayoutEffect)(()=>{if(!(n!=="auto"||!p||Ip(o)||(0,us.isValidElement)(o)||m==null)){var k=a.current;if(k){var w=k.getCalculatedHeight();Math.round(p.height)!==Math.round(w)&&u(tK({id:t,height:w}))}}},[d,p,u,o,t,n,m]),p==null||f==null||m==null)return null;var y=e.dangerouslySetInnerHTML,b=e.ticks,g=e.scale,h=A5(e,Ibe),v=m.id,x=m.scale,S=A5(m,Dbe);return Nu.createElement(zx,C5({},h,S,{ref:a,labelRef:i,x:f.x,y:f.y,width:p.width,height:p.height,className:bt("recharts-".concat(c," ").concat(c),r),viewBox:s,ticks:d,axisType:c,axisId:t}))},Ube={allowDataOverflow:io.allowDataOverflow,allowDecimals:io.allowDecimals,allowDuplicatedCategory:io.allowDuplicatedCategory,angle:io.angle,axisLine:is.axisLine,height:io.height,hide:!1,includeHidden:io.includeHidden,interval:io.interval,label:!1,minTickGap:io.minTickGap,mirror:io.mirror,orientation:io.orientation,padding:io.padding,reversed:io.reversed,scale:io.scale,tick:io.tick,tickCount:io.tickCount,tickLine:is.tickLine,tickSize:is.tickSize,type:io.type,niceTicks:io.niceTicks,xAxisId:0},Wbe=e=>{var t=nr(e,Ube);return Nu.createElement(Nu.Fragment,null,Nu.createElement(Bbe,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,niceTicks:t.niceTicks}),Nu.createElement(Fbe,t))},Tu=Nu.memo(Wbe,SC);Tu.displayName="XAxis";var Ou=Z(J()),cs=Z(J());var Hbe=["type"],qbe=["dangerouslySetInnerHTML","ticks","scale"],Kbe=["id","scale"];function E5(){return E5=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(i!=null)return LV(LV({},a),{},{type:i})},[i,a]);return(0,cs.useLayoutEffect)(()=>{s!=null&&(r.current===null?t(Jq(s)):r.current!==s&&t(Qq({prev:r.current,next:s})),r.current=s)},[s,t]),(0,cs.useLayoutEffect)(()=>()=>{r.current&&(t(Rq(r.current)),r.current=null)},[t]),null}function Jbe(e){var t=e.yAxisId,r=e.className,n=e.width,o=e.label,a=(0,cs.useRef)(null),i=(0,cs.useRef)(null),s=$e(eg),l=Ar(),u=jt(),c="yAxis",d=$e(k=>wM(k,t)),p=$e(k=>sW(k,t)),f=$e(k=>l_(k,c,t,l)),m=$e(k=>QP(k,t));if((0,cs.useLayoutEffect)(()=>{if(!(n!=="auto"||!d||Ip(o)||(0,cs.isValidElement)(o)||m==null)){var k=a.current;if(k){var w=k.getCalculatedWidth();Math.round(d.width)!==Math.round(w)&&u(eK({id:t,width:w}))}}},[f,d,u,o,t,n,m]),d==null||p==null||m==null)return null;var y=e.dangerouslySetInnerHTML,b=e.ticks,g=e.scale,h=N5(e,qbe),v=m.id,x=m.scale,S=N5(m,Kbe);return Ou.createElement(zx,E5({},h,S,{ref:a,labelRef:i,x:p.x,y:p.y,tickTextProps:n==="auto"?{width:void 0}:{width:n},width:d.width,height:d.height,className:bt("recharts-".concat(c," ").concat(c),r),viewBox:s,ticks:f,axisType:c,axisId:t}))}var Qbe={allowDataOverflow:so.allowDataOverflow,allowDecimals:so.allowDecimals,allowDuplicatedCategory:so.allowDuplicatedCategory,angle:so.angle,axisLine:is.axisLine,hide:!1,includeHidden:so.includeHidden,interval:so.interval,label:!1,minTickGap:so.minTickGap,mirror:so.mirror,orientation:so.orientation,padding:so.padding,reversed:so.reversed,scale:so.scale,tick:so.tick,tickCount:so.tickCount,tickLine:is.tickLine,tickSize:is.tickSize,type:so.type,niceTicks:so.niceTicks,width:so.width,yAxisId:0},Rbe=e=>{var t=nr(e,Qbe);return Ou.createElement(Ou.Fragment,null,Ou.createElement(Zbe,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter,niceTicks:t.niceTicks}),Ou.createElement(Jbe,t))},Pu=Ou.memo(Rbe,SC);Pu.displayName="YAxis";var cG=Z(J()),dG=Z(J());var Gp=Z(J()),uG=Z(J());var QV=Z(J()),RV=Z(J());var e1e=(e,t)=>t,Wx=ae([e1e,Bt,mk,ao,PM,Za,BW,Fr],KW);function t1e(e){return"getBBox"in e.currentTarget&&typeof e.currentTarget.getBBox=="function"}function Hx(e){var t=e.currentTarget.getBoundingClientRect(),r,n;if(t1e(e)){var o=e.currentTarget.getBBox();r=o.width>0?t.width/o.width:1,n=o.height>0?t.height/o.height:1}else{var a=e.currentTarget;r=a.offsetWidth>0?t.width/a.offsetWidth:1,n=a.offsetHeight>0?t.height/a.offsetHeight:1}var i=(s,l)=>({relativeX:Math.round((s-t.left)/r),relativeY:Math.round((l-t.top)/n)});return"touches"in e?Array.from(e.touches).map(s=>i(s.clientX,s.clientY)):i(e.clientX,e.clientY)}var O5=xo("mouseClick"),P5=du();P5.startListening({actionCreator:O5,effect:(e,t)=>{var r=e.payload,n=Wx(t.getState(),Hx(r));n?.activeIndex!=null&&t.dispatch(vW({activeIndex:n.activeIndex,activeDataKey:void 0,activeCoordinate:n.activeCoordinate}))}});var kC=xo("mouseMove"),M5=du(),eh=null,Wp=null,T5=null;M5.startListening({actionCreator:kC,effect:(e,t)=>{var r=e.payload,n=t.getState(),o=n.eventSettings,a=o.throttleDelay,i=o.throttledEvents,s=i==="all"||i?.includes("mousemove");eh!==null&&(cancelAnimationFrame(eh),eh=null),Wp!==null&&(typeof a!="number"||!s)&&(clearTimeout(Wp),Wp=null),T5=Hx(r);var l=()=>{var u=t.getState(),c=Lc(u,u.tooltip.settings.shared);if(!T5){eh=null,Wp=null;return}if(c==="axis"){var d=Wx(u,T5);d?.activeIndex!=null?t.dispatch(p_({activeIndex:d.activeIndex,activeDataKey:void 0,activeCoordinate:d.activeCoordinate})):t.dispatch(d_())}eh=null,Wp=null};if(!s){l();return}a==="raf"?eh=requestAnimationFrame(l):typeof a=="number"&&Wp===null&&(Wp=setTimeout(l,a))}});function zV(e,t){return t instanceof HTMLElement?"HTMLElement <".concat(t.tagName,' class="').concat(t.className,'">'):t===window?"global.window":e==="children"&&typeof t=="object"&&t!==null?"<>":t}var BV={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:"none",syncId:void 0,syncMethod:"index",baseValue:void 0,reverseStackOrder:!1},FV=Cr({name:"rootProps",initialState:BV,reducers:{updateOptions:(e,t)=>{var r;e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=(r=t.payload.barGap)!==null&&r!==void 0?r:BV.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),UV=FV.reducer,WV=FV.actions.updateOptions;var r1e=null,n1e={updatePolarOptions:(e,t)=>e===null?t.payload:(e.startAngle=t.payload.startAngle,e.endAngle=t.payload.endAngle,e.cx=t.payload.cx,e.cy=t.payload.cy,e.innerRadius=t.payload.innerRadius,e.outerRadius=t.payload.outerRadius,e)},HV=Cr({name:"polarOptions",initialState:r1e,reducers:n1e}),qV=HV.actions.updatePolarOptions;var KV=HV.reducer;var I5=xo("keyDown"),D5=xo("focus"),j5=xo("blur"),qx=du(),th=null,Hp=null,_C=null;qx.startListening({actionCreator:I5,effect:(e,t)=>{_C=e.payload,th!==null&&(cancelAnimationFrame(th),th=null);var r=t.getState(),n=r.eventSettings,o=n.throttleDelay,a=n.throttledEvents,i=a==="all"||a.includes("keydown");Hp!==null&&(typeof o!="number"||!i)&&(clearTimeout(Hp),Hp=null);var s=()=>{try{var l=t.getState(),u=l.rootProps.accessibilityLayer!==!1;if(!u)return;var c=l.tooltip.keyboardInteraction,d=_C;if(d!=="ArrowRight"&&d!=="ArrowLeft"&&d!=="Enter")return;var p=zc(c,bu(l),hu(l),Fc(l)),f=p==null?-1:Number(p),m=!Number.isFinite(f)||f<0,y=Za(l),b=bu(l),g=Lc(l,l.tooltip.settings.shared);if(d==="Enter"){if(m)return;var h=vx(l,g,"hover",String(c.index));t.dispatch(hx({active:!c.active,activeIndex:c.index,activeCoordinate:h}));return}var v=lW(l),x=v==="left-to-right"?1:-1,S=d==="ArrowRight"?1:-1,k;if(m){var w=hu(l),_=Fc(l),A=S*x,C=K=>({active:!1,index:String(K),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(k=-1,A>0){for(var N=0;N=0;L--)if(zc(C(L),b,w,_)!=null){k=L;break}if(k<0)return}else{k=f+S*x;var Q=y?.length||b.length;if(Q===0||k>=Q||k<0)return}var B=vx(l,g,"hover",String(k));t.dispatch(hx({active:!0,activeIndex:k.toString(),activeCoordinate:B}))}finally{th=null,Hp=null}};if(!i){s();return}o==="raf"?th=requestAnimationFrame(s):typeof o=="number"&&Hp===null&&(s(),_C=null,Hp=setTimeout(()=>{_C?s():(Hp=null,th=null)},o))}});qx.startListening({actionCreator:D5,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var o=r.tooltip.keyboardInteraction;if(!o.active&&o.index==null){var a="0",i=Lc(r,r.tooltip.settings.shared),s=vx(r,i,"hover",String(a));t.dispatch(hx({active:!0,activeIndex:a,activeCoordinate:s}))}}}});qx.startListening({actionCreator:j5,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var o=r.tooltip.keyboardInteraction;o.active&&t.dispatch(hx({active:!1,activeIndex:o.index,activeCoordinate:o.coordinate}))}}});function CC(e){e.persist();var t=e.currentTarget;return new Proxy(e,{get:(r,n)=>{if(n==="currentTarget")return t;var o=Reflect.get(r,n);return typeof o=="function"?o.bind(r):o}})}var Ei=xo("externalEvent"),L5=du(),AC=new Map,Kx=new Map,$5=new Map;L5.startListening({actionCreator:Ei,effect:(e,t)=>{var r=e.payload,n=r.handler,o=r.reactEvent;if(n!=null){var a=o.type,i=CC(o);$5.set(a,{handler:n,reactEvent:i});var s=AC.get(a);s!==void 0&&(cancelAnimationFrame(s),AC.delete(a));var l=t.getState(),u=l.eventSettings,c=u.throttleDelay,d=u.throttledEvents,p=d,f=p==="all"||p?.includes(a),m=Kx.get(a);m!==void 0&&(typeof c!="number"||!f)&&(clearTimeout(m),Kx.delete(a));var y=()=>{var h=$5.get(a);try{if(!h)return;var v=h.handler,x=h.reactEvent,S=t.getState(),k={activeCoordinate:jM(S),activeDataKey:Ig(S),activeIndex:ns(S),activeLabel:x_(S),activeTooltipIndex:ns(S),isTooltipActive:$M(S)};v&&v(k,x)}finally{AC.delete(a),Kx.delete(a),$5.delete(a)}};if(!f){y();return}if(c==="raf"){var b=requestAnimationFrame(y);AC.set(a,b)}else if(typeof c=="number"){if(!Kx.has(a)){y();var g=setTimeout(y,c);Kx.set(a,g)}}else y()}}});var o1e=ae([xu],e=>e.tooltipItemPayloads),VV=ae([o1e,(e,t)=>t,(e,t,r)=>r],(e,t,r)=>{if(t!=null){var n=e.find(a=>a.settings.graphicalItemId===r);if(n!=null){var o=n.getPosition;if(o!=null)return o(t)}}});var z5=xo("touchMove"),B5=du(),qp=null,Rc=null,GV=null,Vx=null;B5.startListening({actionCreator:z5,effect:(e,t)=>{var r=e.payload;if(!(r.touches==null||r.touches.length===0)){Vx=CC(r);var n=t.getState(),o=n.eventSettings,a=o.throttleDelay,i=o.throttledEvents,s=i==="all"||i.includes("touchmove");qp!==null&&(cancelAnimationFrame(qp),qp=null),Rc!==null&&(typeof a!="number"||!s)&&(clearTimeout(Rc),Rc=null),GV=Array.from(r.touches).map(u=>Hx({clientX:u.clientX,clientY:u.clientY,currentTarget:r.currentTarget}));var l=()=>{if(Vx!=null){var u=t.getState(),c=Lc(u,u.tooltip.settings.shared);if(c==="axis"){var d,p=(d=GV)===null||d===void 0?void 0:d[0];if(p==null){qp=null,Rc=null;return}var f=Wx(u,p);f?.activeIndex!=null&&t.dispatch(p_({activeIndex:f.activeIndex,activeDataKey:void 0,activeCoordinate:f.activeCoordinate}))}else if(c==="item"){var m,y=Vx.touches[0];if(document.elementFromPoint==null||y==null)return;var b=document.elementFromPoint(y.clientX,y.clientY);if(!b||!b.getAttribute)return;var g=b.getAttribute(ES),h=(m=b.getAttribute(NS))!==null&&m!==void 0?m:void 0,v=Bc(u).find(k=>k.id===h);if(g==null||v==null||h==null)return;var x=v.dataKey,S=VV(u,g,h);t.dispatch(c_({activeDataKey:x,activeIndex:g,activeCoordinate:S,activeGraphicalItemId:h}))}qp=null,Rc=null}};if(!s){l();return}a==="raf"?qp=requestAnimationFrame(l):typeof a=="number"&&Rc===null&&(l(),Vx=null,Rc=setTimeout(()=>{Vx?l():(Rc=null,qp=null)},a))}}});var Gx={throttleDelay:"raf",throttledEvents:["mousemove","touchmove","pointermove","scroll","wheel"]},YV=Cr({name:"eventSettings",initialState:Gx,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=Zt(t.payload.throttledEvents))}}}),XV=YV.actions.setEventSettings;var ZV=YV.reducer;var a1e=tS({brush:vK,cartesianAxis:rK,chartData:gH,errorBars:QK,eventSettings:ZV,graphicalItems:Uq,layout:c7,legend:$7,options:cH,polarAxis:uq,polarOptions:KV,referenceElements:wK,renderedTicks:zK,rootProps:UV,tooltip:xW,zIndex:eH}),JV=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return VB({reducer:a1e,preloadedState:t,middleware:n=>{var o;return n({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((o="es6")!==null&&o!==void 0?o:"")}).concat([P5.middleware,M5.middleware,qx.middleware,L5.middleware,B5.middleware])},enhancers:n=>{var o=n;return typeof n=="function"&&(o=n()),o.concat(DO({type:"raf"}))},devTools:Qi.devToolsEnabled&&{serialize:{replacer:zV},name:"recharts-".concat(r)}})};function EC(e){var t=e.preloadedState,r=e.children,n=e.reduxStoreName,o=Ar(),a=(0,RV.useRef)(null);if(o)return r;a.current==null&&(a.current=JV(t,n));var i=hv;return QV.createElement(q7,{context:i,store:a.current},r)}var NC=Z(J());function i1e(e){var t=e.layout,r=e.margin,n=jt(),o=Ar();return(0,NC.useEffect)(()=>{o||(n(s7(t)),n(LO(r)))},[n,o,t,r]),null}var TC=(0,NC.memo)(i1e,Ga);var eG=Z(J());function OC(e){var t=jt();return(0,eG.useEffect)(()=>{t(WV(e))},[t,e]),null}var PC=Z(J());var s1e=e=>{var t=jt();return(0,PC.useEffect)(()=>{t(XV(e))},[t,e]),null},MC=(0,PC.memo)(s1e,Ga);var Mu=Z(J()),sG=Z(J());var Vp=Z(J()),U5=Z(J());var Kp=Z(J()),IC=Z(J());function tG(e){var t=e.zIndex,r=e.isPanorama,n=(0,IC.useRef)(null),o=jt();return(0,IC.useLayoutEffect)(()=>(n.current&&o(QW({zIndex:t,element:n.current,isPanorama:r})),()=>{o(RW({zIndex:t,isPanorama:r}))}),[o,t,r]),Kp.createElement("g",{tabIndex:-1,ref:n,className:"recharts-zIndex-layer_".concat(t)})}function F5(e){var t=e.children,r=e.isPanorama,n=$e(GW);if(!n||n.length===0)return t;var o=n.filter(i=>i<0),a=n.filter(i=>i>0);return Kp.createElement(Kp.Fragment,null,o.map(i=>Kp.createElement(tG,{key:i,zIndex:i,isPanorama:r})),t,a.map(i=>Kp.createElement(tG,{key:i,zIndex:i,isPanorama:r})))}var l1e=["children"];function u1e(e,t){if(e==null)return{};var r,n,o=c1e(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n{var r=ng(),n=og(),o=BS();if(!qa(r)||!qa(n))return null;var a=e.children,i=e.otherAttributes,s=e.title,l=e.desc,u,c;return i!=null&&(typeof i.tabIndex=="number"?u=i.tabIndex:u=o?0:void 0,typeof i.role=="string"?c=i.role:c=o?"application":void 0),Vp.createElement(lv,DC({},i,{title:s,desc:l,role:c,tabIndex:u,width:r,height:n,style:d1e,ref:t}),a)}),f1e=e=>{var t=e.children,r=$e(np);if(!r)return null;var n=r.width,o=r.height,a=r.y,i=r.x;return Vp.createElement(lv,{width:n,height:o,x:i,y:a},t)},W5=(0,U5.forwardRef)((e,t)=>{var r=e.children,n=u1e(e,l1e),o=Ar();return o?Vp.createElement(f1e,null,Vp.createElement(F5,{isPanorama:!0},r)):Vp.createElement(p1e,DC({ref:t},n),Vp.createElement(F5,{isPanorama:!1},r))});var Tn=Z(J()),fr=Z(J());var jC=Z(J());function m1e(e,t){return v1e(e)||y1e(e,t)||h1e(e,t)||g1e()}function g1e(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function h1e(e,t){if(e){if(typeof e=="string")return rG(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?rG(e,t):void 0}}function rG(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{if(n!=null){var i=n.getBoundingClientRect(),s=i.width/n.offsetWidth;Ot(s)&&s!==a&&e(u7(s))}},[n,e,a]),o}function oG(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function x1e(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r(yH(),null);function LC(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var N1e=(0,fr.forwardRef)((e,t)=>{var r,n,o=(0,fr.useRef)(null),a=(0,fr.useState)({containerWidth:LC((r=e.style)===null||r===void 0?void 0:r.width),containerHeight:LC((n=e.style)===null||n===void 0?void 0:n.height)}),i=$C(a,2),s=i[0],l=i[1],u=(0,fr.useCallback)((d,p)=>{l(f=>{var m=Math.round(d),y=Math.round(p);return f.containerWidth===m&&f.containerHeight===y?f:{containerWidth:m,containerHeight:y}})},[]),c=(0,fr.useCallback)(d=>{if(typeof t=="function"&&t(d),o.current!=null&&(o.current.disconnect(),o.current=null),d!=null&&typeof ResizeObserver<"u"){var p=d.getBoundingClientRect(),f=p.width,m=p.height;u(f,m);var y=g=>{var h=g[0];if(h!=null){var v=h.contentRect,x=v.width,S=v.height;u(x,S)}},b=new ResizeObserver(y);b.observe(d),o.current=b}},[t,u]);return(0,fr.useEffect)(()=>()=>{var d=o.current;d?.disconnect()},[u]),Tn.createElement(Tn.Fragment,null,Tn.createElement(ip,{width:s.containerWidth,height:s.containerHeight}),Tn.createElement("div",ed({ref:c},e)))}),T1e=(0,fr.forwardRef)((e,t)=>{var r=e.width,n=e.height,o=(0,fr.useState)({containerWidth:LC(r),containerHeight:LC(n)}),a=$C(o,2),i=a[0],s=a[1],l=(0,fr.useCallback)((c,d)=>{s(p=>{var f=Math.round(c),m=Math.round(d);return p.containerWidth===f&&p.containerHeight===m?p:{containerWidth:f,containerHeight:m}})},[]),u=(0,fr.useCallback)(c=>{if(typeof t=="function"&&t(c),c!=null){var d=c.getBoundingClientRect(),p=d.width,f=d.height;l(p,f)}},[t,l]);return Tn.createElement(Tn.Fragment,null,Tn.createElement(ip,{width:i.containerWidth,height:i.containerHeight}),Tn.createElement("div",ed({ref:u},e)))}),O1e=(0,fr.forwardRef)((e,t)=>{var r=e.width,n=e.height;return Tn.createElement(Tn.Fragment,null,Tn.createElement(ip,{width:r,height:n}),Tn.createElement("div",ed({ref:t},e)))}),P1e=(0,fr.forwardRef)((e,t)=>{var r=e.width,n=e.height;return typeof r=="string"||typeof n=="string"?Tn.createElement(T1e,ed({},e,{ref:t})):typeof r=="number"&&typeof n=="number"?Tn.createElement(O1e,ed({},e,{width:r,height:n,ref:t})):Tn.createElement(Tn.Fragment,null,Tn.createElement(ip,{width:r,height:n}),Tn.createElement("div",ed({ref:t},e)))});function M1e(e){return e?N1e:P1e}var iG=(0,fr.forwardRef)((e,t)=>{var r=e.children,n=e.className,o=e.height,a=e.onClick,i=e.onContextMenu,s=e.onDoubleClick,l=e.onMouseDown,u=e.onMouseEnter,c=e.onMouseLeave,d=e.onMouseMove,p=e.onMouseUp,f=e.onTouchEnd,m=e.onTouchMove,y=e.onTouchStart,b=e.style,g=e.width,h=e.responsive,v=e.dispatchTouchEvents,x=v===void 0?!0:v,S=(0,fr.useRef)(null),k=jt(),w=(0,fr.useState)(null),_=$C(w,2),A=_[0],C=_[1],N=(0,fr.useState)(null),L=$C(N,2),Q=L[0],B=L[1],K=nG(),T=Av(),O=T?.width>0?T.width:g,I=T?.height>0?T.height:o,P=(0,fr.useCallback)(D=>{K(D),typeof t=="function"&&t(D),C(D),B(D),D!=null&&(S.current=D)},[K,t,C,B]),j=(0,fr.useCallback)(D=>{k(O5(D)),k(Ei({handler:a,reactEvent:D}))},[k,a]),M=(0,fr.useCallback)(D=>{k(kC(D)),k(Ei({handler:u,reactEvent:D}))},[k,u]),W=(0,fr.useCallback)(D=>{k(d_()),k(Ei({handler:c,reactEvent:D}))},[k,c]),Y=(0,fr.useCallback)(D=>{k(kC(D)),k(Ei({handler:d,reactEvent:D}))},[k,d]),z=(0,fr.useCallback)(()=>{k(D5())},[k]),V=(0,fr.useCallback)(()=>{k(j5())},[k]),q=(0,fr.useCallback)(D=>{k(I5(D.key))},[k]),oe=(0,fr.useCallback)(D=>{k(Ei({handler:i,reactEvent:D}))},[k,i]),Me=(0,fr.useCallback)(D=>{k(Ei({handler:s,reactEvent:D}))},[k,s]),fe=(0,fr.useCallback)(D=>{k(Ei({handler:l,reactEvent:D}))},[k,l]),le=(0,fr.useCallback)(D=>{k(Ei({handler:p,reactEvent:D}))},[k,p]),R=(0,fr.useCallback)(D=>{k(Ei({handler:y,reactEvent:D}))},[k,y]),te=(0,fr.useCallback)(D=>{x&&k(z5(D)),k(Ei({handler:m,reactEvent:D}))},[k,x,m]),He=(0,fr.useCallback)(D=>{k(Ei({handler:f,reactEvent:D}))},[k,f]),_e=M1e(h);return Tn.createElement(qM.Provider,{value:A},Tn.createElement(PT.Provider,{value:Q},Tn.createElement(_e,{width:O??b?.width,height:I??b?.height,className:bt("recharts-wrapper",n),style:x1e({position:"relative",cursor:"default",width:O,height:I},b),onClick:j,onContextMenu:oe,onDoubleClick:Me,onFocus:z,onBlur:V,onKeyDown:q,onMouseDown:fe,onMouseEnter:M,onMouseLeave:W,onMouseMove:Y,onMouseUp:le,onTouchEnd:He,onTouchMove:te,onTouchStart:R,ref:P},Tn.createElement(E1e,null),r)))});var I1e=["width","height","responsive","children","className","style","compact","title","desc"];function D1e(e,t){if(e==null)return{};var r,n,o=j1e(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n{var r=e.width,n=e.height,o=e.responsive,a=e.children,i=e.className,s=e.style,l=e.compact,u=e.title,c=e.desc,d=D1e(e,I1e),p=hn(d);return l?Mu.createElement(Mu.Fragment,null,Mu.createElement(ip,{width:r,height:n}),Mu.createElement(W5,{otherAttributes:p,title:u,desc:c},a)):Mu.createElement(iG,{className:i,style:s,width:r,height:n,responsive:o??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},Mu.createElement(W5,{otherAttributes:p,title:u,desc:c,ref:t},Mu.createElement(kK,null,a)))});function H5(){return H5=Object.assign?Object.assign.bind():function(e){for(var t=1;tcG.createElement(rh,{chartName:"LineChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:W1e,tooltipPayloadSearcher:Uc,categoricalChartProps:e,ref:t}));var pG=Z(J()),fG=Z(J());var H1e=["axis","item"],K5=(0,fG.forwardRef)((e,t)=>pG.createElement(rh,{chartName:"BarChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:H1e,tooltipPayloadSearcher:Uc,categoricalChartProps:e,ref:t}));var wG=Z(J()),SG=Z(J());var yG=Z(J()),td=Z(J());var mG=Z(J());function gG(e){var t=jt();return(0,mG.useEffect)(()=>{t(qV(e))},[t,e]),null}var q1e=["layout"];function V5(){return V5=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=nr(e,rwe);return wG.createElement(vG,{chartName:"PieChart",defaultTooltipEventType:"item",validateTooltipEventTypes:twe,tooltipPayloadSearcher:Uc,categoricalChartProps:r,ref:t})});var kG=Z(J()),_G=Z(J());var nwe=["axis"],rd=(0,_G.forwardRef)((e,t)=>kG.createElement(rh,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:nwe,tooltipPayloadSearcher:Uc,categoricalChartProps:e,ref:t}));var ds=Z(J()),nh=[{id:"5m",label:"5m",minutes:5,bucketSeconds:10},{id:"10m",label:"10m",minutes:10,bucketSeconds:20},{id:"15m",label:"15m",minutes:15,bucketSeconds:30},{id:"30m",label:"30m",minutes:30,bucketSeconds:60},{id:"45m",label:"45m",minutes:45,bucketSeconds:60},{id:"1h",label:"1h",minutes:60,bucketSeconds:120},{id:"2h",label:"2h",minutes:120,bucketSeconds:240},{id:"3h",label:"3h",minutes:180,bucketSeconds:300},{id:"6h",label:"6h",minutes:360,bucketSeconds:600},{id:"12h",label:"12h",minutes:720,bucketSeconds:1200},{id:"1d",label:"1d",minutes:1440,bucketSeconds:1800},{id:"3d",label:"3d",minutes:4320,bucketSeconds:7200},{id:"7d",label:"7d",minutes:10080,bucketSeconds:14400},{id:"30d",label:"30d",minutes:43200,bucketSeconds:86400},{id:"90d",label:"90d",minutes:129600,bucketSeconds:259200}],CG="30m",AG="activeagents.timeWindow",EG=(0,ds.createContext)(null),X5=e=>nh.find(t=>t.id===e);function NG({children:e}){let[t,r]=(0,ds.useState)(()=>{try{let a=localStorage.getItem(AG);if(a&&X5(a))return a}catch{}return CG}),n=(0,ds.useCallback)(a=>{if(X5(a)){r(a);try{localStorage.setItem(AG,a)}catch{}}},[]),o=(0,ds.useMemo)(()=>{let a=nh.findIndex(s=>s.id===t),i=nh[a]||X5(CG);return{timeWindow:i,windowIndex:a,windows:nh,setWindow:n,zoomTo:s=>{let l=nh[Math.min(Math.max(s,0),nh.length-1)];l&&n(l.id)},days:Math.max(1,Math.ceil(i.minutes/1440))}},[t,n]);return ds.default.createElement(EG.Provider,{value:o},e)}function xl(){let e=(0,ds.useContext)(EG);if(!e)throw new Error("useTimeWindow must be used within a TimeWindowProvider");return e}var oh=Z(J());function bl({compact:e=!1}){let{windows:t,windowIndex:r,timeWindow:n,setWindow:o,zoomTo:a}=xl(),{darkMode:i}=ut(),s=Ki(i),l={color:s.textSecondary};return oh.default.createElement("div",{className:"flex items-center rounded-lg p-1",style:{background:s.mutedBg}},oh.default.createElement("button",{onClick:()=>a(r-1),disabled:r<=0,title:"Zoom in (shorter window)","aria-label":"Zoom in",className:"aa-zoom px-2 py-1 text-sm rounded-md disabled:opacity-30 disabled:cursor-not-allowed",style:l},"\u2212"),oh.default.createElement("select",{value:n.id,onChange:u=>o(u.target.value),"aria-label":"Time window",className:`aa-field px-2 py-1 mx-1 text-sm rounded-md shadow ${e?"":"min-w-[4.5rem]"}`,style:{background:s.cardBg,color:s.textPrimary,border:`1px solid ${s.cardBorder}`}},t.map(u=>oh.default.createElement("option",{key:u.id,value:u.id},u.label))),oh.default.createElement("button",{onClick:()=>a(r+1),disabled:r>=t.length-1,title:"Zoom out (longer window)","aria-label":"Zoom out",className:"aa-zoom px-2 py-1 text-sm rounded-md disabled:opacity-30 disabled:cursor-not-allowed",style:l},"+"))}var zn=Z(J());var tn=Z(J());var Yx=e=>{let t=(e||"").toLowerCase();return t.includes("claude")?2e5:t.includes("gemini")?1e6:t.includes("llama")?131072:t.includes("gpt-4o")||t.includes("gpt-4-turbo")||t.includes("gpt-4.1")?128e3:t.includes("gpt-5")?4e5:128e3},nd=e=>{if(e==null)return 0;let t=typeof e=="string"?e:JSON.stringify(e);return Math.round(t.length/4)},BC=e=>{let t=e?.spans||[],r=null;for(let m of t){let y=m.tokens||{},b=(y.input||0)+(y.output||0);b>0&&(!r||b>r.total)&&(r={input:y.input||0,output:y.output||0,thinking:y.thinking||0,cached:y.cached||0,total:b})}if(!r)return null;let n=m=>{for(let y of t){let b=(y.attributes||{})[m];if(b)return b}return null},o=(m,...y)=>{let b=Number(n(m));if(Number.isFinite(b)&&b>0)return b;for(let g of y){let h=n(g);if(h)return nd(h)}return 0},a=o("prompt.input.instructions.tokens","prompt.input.instructions","llm.instructions"),i=o("prompt.input.tools.tokens","prompt.input.tools","llm.tools"),s=o("prompt.input.mcp_tools.tokens","prompt.input.mcp_tools"),l=o("prompt.input.messages.tokens","prompt.input.messages","llm.messages"),u=0;for(let m of t){let y=m.attributes||{},b=y["tool.output.result"]||y["tool.result"],g=y["tool.input.args"]||y["tool.arguments"];b&&(u+=nd(b)),g&&(u+=nd(g))}u=Math.min(u,r.input);let c=["messages","toolResults","instructions","toolSchemas","mcpSchemas"],d={messages:l,toolResults:u,instructions:a,toolSchemas:i,mcpSchemas:s},p=c.reduce((m,y)=>m+d[y],0),f;if(p>0&&r.input>0){let m=r.input/p;f={};for(let b of c)f[b]=Math.round(d[b]*m);let y=r.input-c.reduce((b,g)=>b+f[g],0);if(y!==0){let b=c.reduce((g,h)=>f[h]>f[g]?h:g);f[b]=Math.max(f[b]+y,0)}}else f={messages:r.input,toolResults:0,instructions:0,toolSchemas:0,mcpSchemas:0};return{used:r.total,limit:Yx(e.model),cached:r.cached,thinking:r.thinking,estimated:p>0,segments:[{key:"messages",label:"Messages",tokens:f.messages},{key:"tool_results",label:"Tool results",tokens:f.toolResults},{key:"instructions",label:"Instructions",tokens:f.instructions},{key:"tool_schemas",label:"Tool schemas",tokens:f.toolSchemas},{key:"mcp_schemas",label:"MCP tool schemas",tokens:f.mcpSchemas},{key:"output",label:"Generated output",tokens:r.output}]}};var owe={messages:"#2563eb",tool_results:"#5b84ec",instructions:"#85a3f0",tool_schemas:"#a6bcf4",mcp_schemas:"#c3d2f8",memory:"#dce4fb",output:"#7c3aed"},ah=e=>e==null?"\u2014":e>=1e6?`${(e/1e6).toFixed(1).replace(/\.0$/,"")}M`:e>=1e3?`${(e/1e3).toFixed(1).replace(/\.0$/,"")}k`:String(Math.round(e));function od({used:e,limit:t=2e5,segments:r=[],cached:n=0,thinking:o=0,compact:a=!1,defaultOpen:i=!1,label:s="Context window",estimated:l=!1,darkMode:u=!1}){let[c,d]=(0,tn.useState)(i),p=r.filter(w=>w.tokens>0),f=e??p.reduce((w,_)=>w+_.tokens,0),m=t>0?f/t:0,y=m>=.9?"#dc2626":m>=.75?"#eab308":null,b=u?"rgba(255,255,255,0.4)":"#9ca3af",g=u?"rgba(255,255,255,0.6)":"#6b7280",h=u?"rgba(255,255,255,0.75)":"#4b5563",v=u?"rgba(255,255,255,0.1)":"#f3f4f6",x=`${ah(f)} / ${ah(t)} (${Math.round(m*100)}%)`,S=w=>w.key==="messages"&&y?y:w.color||owe[w.key]||"#2563eb",k=w=>tn.default.createElement("div",{style:{display:"flex",height:w,borderRadius:"999px",overflow:"hidden",background:v,flex:1}},p.map(_=>tn.default.createElement("div",{key:_.key,title:`${_.label} \xB7 ${ah(_.tokens)}`,style:{width:`${Math.min(_.tokens/t*100,100)}%`,background:S(_)}})));return a?tn.default.createElement("span",{title:`${s}: ${x}`,style:{display:"inline-flex",alignItems:"center",gap:"6px",width:"132px",verticalAlign:"middle"}},k("6px"),tn.default.createElement("span",{style:{fontSize:"11px",fontFamily:"'SF Mono', 'Fira Code', monospace",color:y||b,whiteSpace:"nowrap"}},Math.round(m*100),"%")):tn.default.createElement("div",{style:{background:u?"rgba(255,255,255,0.03)":"#ffffff",border:`1px solid ${y?y+"66":u?"rgba(255,255,255,0.1)":"#e5e7eb"}`,borderRadius:"12px",padding:"12px 14px"}},tn.default.createElement("div",{onClick:w=>{w.stopPropagation(),d(!c)},style:{display:"flex",alignItems:"center",justifyContent:"space-between",cursor:"pointer"}},tn.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:g}},s,l&&tn.default.createElement("span",{style:{color:b,fontWeight:400}}," \xB7 estimated")),tn.default.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:"8px"}},tn.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",fontWeight:600,color:y||h}},x),tn.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",color:b,display:"inline-block",transform:c?"rotate(90deg)":"none",transition:"transform 0.15s ease"}},">"))),tn.default.createElement("div",{style:{display:"flex",marginTop:"8px"}},k("9px")),m>=.9&&tn.default.createElement("div",{style:{marginTop:"6px",fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",color:"#dc2626"}},"[!] compaction imminent \u2014 next turn may drop the oldest messages"),c&&tn.default.createElement("div",{style:{marginTop:"10px",display:"grid",gap:"5px"}},[...p,{key:"__free",label:"Free space",tokens:Math.max(t-f,0)}].map(w=>tn.default.createElement("div",{key:w.key,style:{display:"flex",alignItems:"center",gap:"8px"}},tn.default.createElement("span",{style:{width:"9px",height:"9px",borderRadius:"2px",flexShrink:0,background:w.key==="__free"?v:S(w),border:w.key==="__free"?`1px solid ${u?"rgba(255,255,255,0.25)":"#d1d5db"}`:"none"}}),tn.default.createElement("span",{style:{fontSize:"13px",color:h,flex:1}},w.label),tn.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",color:g,width:"56px",textAlign:"right"}},ah(w.tokens)),tn.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",color:b,width:"46px",textAlign:"right"}},t>0?`${(w.tokens/t*100).toFixed(1)}%`:"\u2014"))),(n>0||o>0)&&tn.default.createElement("div",{style:{marginTop:"4px",paddingTop:"6px",borderTop:`1px solid ${u?"rgba(255,255,255,0.08)":"#f3f4f6"}`,display:"flex",gap:"16px",fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",color:b}},n>0&&tn.default.createElement("span",null,tn.default.createElement("span",{style:{color:"#2563eb"}},"[=]")," cached prefix ",ah(n)),o>0&&tn.default.createElement("span",null,tn.default.createElement("span",{style:{color:"#7c3aed"}},"[~]")," thinking ",ah(o)))))}var wt=Z(J());var Le=Z(J());var Zn=Z(J());var we=Z(J());var TG=["ui","json-ui","genui"],Yp="render_ui",Fs=e=>e!=null&&typeof e=="object"&&!Array.isArray(e),Z5=e=>{if(typeof e=="string")try{return JSON.parse(e)}catch{return}};function Xp(e){let t=typeof e=="string"?Z5(e):e;if(Array.isArray(t))return t.every(Fs)?t:null;if(Fs(t)){if(Array.isArray(t.blocks))return t.blocks.every(Fs)?t.blocks:null;if(Array.isArray(t.ui))return t.ui.every(Fs)?t.ui:null}return null}function J5(e,t){let r=String(e||"").trim().toLowerCase();if(TG.includes(r))return Xp(t);if(r==="json"){let n=Z5(t);return Fs(n)&&Array.isArray(n.ui)?Xp(n):null}return null}function Q5(e){if(typeof e!="string")return null;let t=e.trim(),r=t.startsWith("{")&&t.endsWith("}"),n=t.startsWith("[")&&t.endsWith("]");if(!r&&!n)return null;let o=Z5(t);if(o==null||typeof o!="object")return null;if(Array.isArray(o))return o.length>0&&o.every(s=>Fs(s)&&typeof s.type=="string")?{blocks:o}:{object:o};let a=Xp(o);return a?{blocks:a}:{object:o}}var awe=e=>Fs(e)?e.function?.name||e.name:void 0,iwe=e=>Fs(e)?e.function?.arguments??e.arguments??e.input:void 0;function ih(e,{callId:t}={}){if(!Fs(e))return null;if(e.tool_name===Yp&&e.tool_arguments!=null){let o=Xp(e.tool_arguments);if(o)return o}let r=e.tool_calls,n=[];if(Array.isArray(r)){let o=r.some(a=>Fs(a)&&a.id!=null);r.forEach(a=>{if(awe(a)!==Yp||t!=null&&o&&a.id!==t)return;let i=Xp(iwe(a));i&&n.push(...i)})}else if(Fs(r)&&e.tool_name===Yp){let o=Xp(r);o&&n.push(...o)}return n.length>0?n:null}function FC(e){return typeof e=="string"&&/^(https?:\/\/|data:image\/)/i.test(e.trim())}function UC(e){if(typeof e!="string")return!1;let t=e.trim();if(/^data:image\//i.test(t))return!0;if(!/^https?:\/\//i.test(t)||typeof window>"u"||!window.location)return!1;try{return new URL(t,window.location.href).origin===window.location.origin}catch{return!1}}function OG(e){try{return new URL(String(e).trim()).host}catch{return""}}var $G=["#2a78d6","#eb6834","#1baf7a","#eda100","#e87ba4","#008300","#4a3aa7","#e34948"],swe=["#3987e5","#d95926","#199e70","#c98500","#d55181","#008300","#9085e9","#e66767"],Xx=$G.length,PG=220,sh=e=>e!=null&&typeof e=="object"&&!Array.isArray(e),er=e=>e==null?"":typeof e=="object"?JSON.stringify(e):String(e),LG=e=>{if(typeof e!="number"||!Number.isFinite(e))return er(e);let t=Math.abs(e);return t>=1e9?`${(e/1e9).toFixed(1).replace(/\.0$/,"")}B`:t>=1e6?`${(e/1e6).toFixed(1).replace(/\.0$/,"")}M`:t>=1e4?`${(e/1e3).toFixed(1).replace(/\.0$/,"")}K`:e.toLocaleString()},rI=(e,t)=>typeof t=="string"&&Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0,MG={info:{light:["#eff6ff","#1d4ed8"],dark:["rgba(59,130,246,0.15)","#93c5fd"]},success:{light:["#f0fdf4","#15803d"],dark:["rgba(34,197,94,0.15)","#86efac"]},warning:{light:["#fffbeb","#b45309"],dark:["rgba(245,158,11,0.15)","#fcd34d"]},danger:{light:["#fef2f2","#b91c1c"],dark:["rgba(239,68,68,0.15)","#fca5a5"]}},lwe={positive:{light:"#15803d",dark:"#4ade80"},negative:{light:"#b91c1c",dark:"#f87171"}},R5=e=>({width:"100%",padding:"6px 10px",borderRadius:"8px",border:`1px solid ${e.inputBorder}`,background:e.inputBg,color:e.textPrimary,fontFamily:"inherit",fontSize:"13px"}),nI=e=>({background:e?"rgba(0,0,0,0.35)":"#f3f4f6",color:e?"#ffffff":"#111827",borderRadius:"6px",padding:"8px 10px",fontSize:"12px",overflowX:"auto",margin:0,whiteSpace:"pre-wrap"}),lh=e=>({fontSize:"13px",fontWeight:600,color:e.textPrimary,margin:0});function Iu({block:e,reason:t,colors:r,darkMode:n}){return we.default.createElement("div",{className:"text-xs",style:{color:r.textMuted}},we.default.createElement("div",{className:"mb-1"},"Unsupported block",e&&e.type?` \u201C${er(e.type)}\u201D`:"",t?` \u2014 ${t}`:""),we.default.createElement("pre",{style:{...nI(n),maxHeight:"160px",overflowY:"auto"}},JSON.stringify(e,null,2)))}function uwe({block:e,colors:t,darkMode:r,onAction:n}){let o=FC(e.image_url)&&UC(e.image_url)?e.image_url.trim():null;return we.default.createElement("div",{className:"overflow-hidden",style:{border:`1px solid ${t.cardBorder}`,borderRadius:"10px",background:t.innerBg}},o&&we.default.createElement("img",{src:o,alt:er(e.title),style:{width:"100%",maxHeight:"220px",objectFit:"cover",display:"block"}}),we.default.createElement("div",{className:"p-3 space-y-1.5"},e.title!=null&&we.default.createElement("div",{style:lh(t)},er(e.title)),e.body!=null&&we.default.createElement("div",{className:"text-sm",style:{color:t.textCell}},we.default.createElement(Us,{text:er(e.body),darkMode:r,onUiAction:n})),e.footer!=null&&we.default.createElement("div",{className:"text-xs pt-1",style:{color:t.textMuted,borderTop:`1px solid ${t.cardBorder}`}},er(e.footer))))}function zG({block:e,colors:t,darkMode:r}){let n=e.delta!=null?er(e.delta):null,o=e.tone||(n&&n.trim().startsWith("-")?"negative":n?"positive":"neutral"),a=rI(lwe,o),i=a?a[r?"dark":"light"]:t.textMuted,s=typeof e.value=="number"?LG(e.value):er(e.value);return we.default.createElement("div",{style:{background:t.innerBg,border:`1px solid ${t.cardBorder}`,borderRadius:"10px",padding:"10px 12px"}},we.default.createElement("div",{className:"text-xs",style:{color:t.textMuted}},er(e.label)),we.default.createElement("div",{className:"text-lg font-semibold leading-tight mt-0.5",style:{color:t.textPrimary}},s),n&&we.default.createElement("div",{className:"text-xs mt-0.5 font-medium",style:{color:i}},n))}function cwe({block:e,colors:t,darkMode:r}){let n=Array.isArray(e.items)?e.items.filter(sh):[];return n.length===0?we.default.createElement(Iu,{block:e,reason:"stats needs an items array",colors:t,darkMode:r}):we.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(140px, 1fr))",gap:"8px"}},n.map((o,a)=>we.default.createElement(zG,{key:a,block:o,colors:t,darkMode:r})))}var tI=(e,t)=>({padding:"6px 10px",borderBottom:`1px solid ${e.cardBorder}`,color:e.textCell,textAlign:t?"right":"left",fontVariantNumeric:t?"tabular-nums":void 0,verticalAlign:"top"}),dwe=e=>({padding:"6px 10px",borderBottom:`1px solid ${e.borderStrong}`,color:e.textSecondary,fontSize:"11px",fontWeight:600,textAlign:"left",fontFamily:Pt.mono,textTransform:"uppercase",letterSpacing:"0.04em",whiteSpace:"nowrap"});function BG({columns:e,rows:t,colors:r,renderCell:n}){return we.default.createElement("div",{style:{overflowX:"auto"}},we.default.createElement("table",{className:"text-sm",style:{width:"100%",borderCollapse:"collapse"}},we.default.createElement("thead",null,we.default.createElement("tr",null,e.map((o,a)=>we.default.createElement("th",{key:a,style:dwe(r)},er(o))))),we.default.createElement("tbody",null,t.map((o,a)=>we.default.createElement("tr",{key:a},e.map((i,s)=>{let l=o[s];return we.default.createElement("td",{key:s,style:tI(r,typeof l=="number")},n?n(l):typeof l=="number"?l.toLocaleString():er(l))}))))))}function pwe({block:e,colors:t,darkMode:r}){let n=Array.isArray(e.columns)?e.columns:null,o=Array.isArray(e.rows)?e.rows:null;if(!n||!o)return we.default.createElement(Iu,{block:e,reason:"table needs columns and rows arrays",colors:t,darkMode:r});let a=o.map(i=>Array.isArray(i)?i:sh(i)?n.map(s=>i[s]):[i]);return we.default.createElement("div",null,e.title!=null&&we.default.createElement("div",{className:"mb-1.5",style:lh(t)},er(e.title)),we.default.createElement(BG,{columns:n,rows:a,colors:t}))}var fwe=e=>{let t=e[0];return Object.keys(t).find(r=>typeof t[r]=="string")||Object.keys(t)[0]},mwe=(e,t)=>Object.keys(e[0]).filter(r=>r!==t&&typeof e[0][r]=="number");function gwe({block:e,colors:t,darkMode:r}){let n=String(e.chart||e.kind||"bar").toLowerCase(),o=Array.isArray(e.data)?e.data.filter(sh):[];if(o.length===0)return we.default.createElement(Iu,{block:e,reason:"chart needs a data array of objects",colors:t,darkMode:r});let a=typeof e.x=="string"?e.x:fwe(o),i=Array.isArray(e.series)?e.series.filter(b=>typeof b=="string"):[],s=(i.length>0?i:mwe(o,a)).slice(0,Xx);if(!a||s.length===0)return we.default.createElement(Iu,{block:e,reason:"chart needs an x key and at least one series",colors:t,darkMode:r});let l=r?swe:$G,u=t.cardBg,c={fontSize:10,fill:t.textMuted},d=we.default.createElement(Wc,{contentStyle:{background:u,border:`1px solid ${t.cardBorder}`,borderRadius:"8px",fontSize:"12px"},labelStyle:{color:t.textPrimary,fontWeight:600,marginBottom:"4px"},itemStyle:{color:t.textCell},formatter:b=>typeof b=="number"?b.toLocaleString():er(b)}),p=s.length>1||n==="pie"?we.default.createElement($S,{wrapperStyle:{fontSize:"11px",color:t.textSecondary},iconSize:10}):null,f=we.default.createElement(we.default.Fragment,null,we.default.createElement(Cu,{stroke:t.cardBorder,vertical:!1}),we.default.createElement(Tu,{dataKey:a,stroke:t.borderStrong,tick:c,tickLine:!1}),we.default.createElement(Pu,{stroke:t.borderStrong,tick:c,tickLine:!1,axisLine:!1,tickFormatter:LG,width:44})),m={top:8,right:12,bottom:0,left:0},y;if(n==="line")y=we.default.createElement(q5,{data:o,margin:m},f,d,p,s.map((b,g)=>we.default.createElement(gC,{key:b,type:"monotone",dataKey:b,stroke:l[g],strokeWidth:2,dot:{r:4,strokeWidth:2,stroke:u,fill:l[g]},activeDot:{r:5,strokeWidth:2,stroke:u},isAnimationActive:!1})));else if(n==="area")y=we.default.createElement(rd,{data:o,margin:m},f,d,p,s.map((b,g)=>we.default.createElement(Eu,{key:b,type:"monotone",dataKey:b,stroke:l[g],strokeWidth:2,fill:l[g],fillOpacity:.12,dot:{r:3,strokeWidth:2,stroke:u,fill:l[g]},isAnimationActive:!1})));else if(n==="pie"){let b=s[0],g=[...o].sort((x,S)=>(Number(S[b])||0)-(Number(x[b])||0)),h=g.slice(0,Xx),v=g.slice(Xx);v.length>0&&(h[Xx-1]={[a]:"Other",[b]:v.reduce((x,S)=>x+(Number(S[b])||0),Number(h[Xx-1][b])||0)}),y=we.default.createElement(Y5,{margin:m},d,p,we.default.createElement(tC,{data:h,dataKey:b,nameKey:a,innerRadius:44,outerRadius:80,paddingAngle:2,stroke:u,strokeWidth:2,isAnimationActive:!1},h.map((x,S)=>we.default.createElement(wu,{key:S,fill:l[S]}))))}else y=we.default.createElement(K5,{data:o,margin:m,barCategoryGap:"25%",barGap:2},f,d,p,s.map((b,g)=>we.default.createElement(wC,{key:b,dataKey:b,fill:l[g],radius:[4,4,0,0],maxBarSize:24,isAnimationActive:!1})));return we.default.createElement("div",null,e.title!=null&&we.default.createElement("div",{className:"mb-1",style:lh(t)},er(e.title)),we.default.createElement("div",{style:{width:"100%",height:PG,minWidth:0}},we.default.createElement(Cc,{width:"100%",height:PG},y)))}function hwe({block:e,colors:t,darkMode:r,onAction:n}){let o=Array.isArray(e.items)?e.items:null;if(!o)return we.default.createElement(Iu,{block:e,reason:"list needs an items array",colors:t,darkMode:r});let a=e.ordered?"ol":"ul";return we.default.createElement("div",null,e.title!=null&&we.default.createElement("div",{className:"mb-1",style:lh(t)},er(e.title)),we.default.createElement(a,{className:`${e.ordered?"list-decimal":"list-disc"} pl-5 text-sm space-y-0.5`,style:{color:t.textCell}},o.map((i,s)=>we.default.createElement("li",{key:s},typeof i=="string"?we.default.createElement(Us,{text:i,darkMode:r,onUiAction:n}):er(i)))))}function ywe({block:e,colors:t}){let r=Number(e.value),n=Number.isFinite(r)?Math.max(0,Math.min(100,r)):0;return we.default.createElement("div",null,we.default.createElement("div",{className:"flex items-center justify-between text-xs mb-1"},we.default.createElement("span",{style:{color:t.textCell}},er(e.label)),we.default.createElement("span",{className:"font-mono",style:{color:t.textMuted}},Math.round(n),"%")),we.default.createElement("div",{style:{height:"8px",borderRadius:"999px",background:t.trackBg,overflow:"hidden"}},we.default.createElement("div",{style:{width:`${n}%`,height:"100%",background:Qo,borderRadius:"999px",transition:"width 0.3s ease"}})))}var vwe=["text","textarea","number","select","checkbox"],eI=e=>er(e.name||e.label),IG=e=>er(e.label||e.name),DG=e=>vwe.includes(e.type)?e.type:"text";function xwe({block:e,colors:t,darkMode:r,onAction:n}){let o=(Array.isArray(e.fields)?e.fields:[]).filter(p=>sh(p)&&(p.name||p.label)),[a,i]=(0,we.useState)(()=>Object.fromEntries(o.map(p=>[eI(p),DG(p)==="checkbox"?!1:""]))),[s,l]=(0,we.useState)(!1);if(o.length===0)return we.default.createElement(Iu,{block:e,reason:"form needs fields",colors:t,darkMode:r});let u=e.submit!=null?er(e.submit):"Submit",c=(p,f)=>i(m=>({...m,[p]:f}));return we.default.createElement("form",{onSubmit:p=>{p.preventDefault();let f=o.map(m=>{let y=a[eI(m)];return`${IG(m)}: ${typeof y=="boolean"?y?"yes":"no":er(y)}`}).join("; ");l(!0),n&&n({kind:"form",text:`${e.submit!=null?er(e.submit):"Submitted"}: ${f}`,values:{...a}})},className:"space-y-2.5",style:{border:`1px solid ${t.cardBorder}`,borderRadius:"10px",background:t.innerBg,padding:"12px"}},e.title!=null&&we.default.createElement("div",{style:lh(t)},er(e.title)),o.map(p=>{let f=eI(p),m=DG(p),y=IG(p),b=`genui-field-${f.replace(/\W+/g,"-")}`;return m==="checkbox"?we.default.createElement("label",{key:f,className:"flex items-center gap-2 text-sm",style:{color:t.textCell}},we.default.createElement("input",{type:"checkbox",checked:!!a[f],onChange:g=>c(f,g.target.checked),style:{accentColor:Qo}}),y):we.default.createElement("div",{key:f},we.default.createElement("label",{htmlFor:b,className:"block text-xs mb-1",style:{color:t.textSecondary}},y,p.required?" *":""),m==="textarea"?we.default.createElement("textarea",{id:b,name:f,value:a[f],onChange:g=>c(f,g.target.value),placeholder:p.placeholder!=null?er(p.placeholder):void 0,required:!!p.required,rows:3,className:"aa-field",style:{...R5(t),resize:"vertical"}}):m==="select"?we.default.createElement("select",{id:b,name:f,value:a[f],onChange:g=>c(f,g.target.value),required:!!p.required,className:"aa-field",style:R5(t)},we.default.createElement("option",{value:""},p.placeholder!=null?er(p.placeholder):"Select\u2026"),(Array.isArray(p.options)?p.options:[]).map((g,h)=>we.default.createElement("option",{key:h,value:er(g)},er(g)))):we.default.createElement("input",{id:b,name:f,type:m==="number"?"number":"text",value:a[f],onChange:g=>c(f,m==="number"&&g.target.value!==""?Number(g.target.value):g.target.value),placeholder:p.placeholder!=null?er(p.placeholder):void 0,required:!!p.required,className:"aa-field",style:R5(t)}))}),we.default.createElement("div",{className:"flex items-center gap-3 pt-1"},we.default.createElement("button",{type:"submit","data-testid":"genui-form-submit",style:{padding:"6px 14px",borderRadius:"8px",fontSize:"13px",fontWeight:500,background:Qo,color:"#ffffff",border:"1px solid transparent",cursor:"pointer"}},u),s&&we.default.createElement("span",{className:"text-xs",style:{color:t.textMuted}},"Sent to the agent")))}function bwe({block:e,colors:t,darkMode:r,onAction:n}){let o=Array.isArray(e.options)?e.options:null,[a,i]=(0,we.useState)(null);return!o||o.length===0?we.default.createElement(Iu,{block:e,reason:"choices needs options",colors:t,darkMode:r}):we.default.createElement("div",null,e.prompt!=null&&we.default.createElement("div",{className:"text-sm mb-1.5",style:{color:t.textCell}},er(e.prompt)),we.default.createElement("div",{className:"flex flex-wrap gap-2"},o.map((s,l)=>{let u=er(s),c=a===l;return we.default.createElement("button",{key:l,type:"button","data-testid":"genui-choice",onClick:()=>{i(l),n&&n({kind:"choice",text:u})},style:{padding:"5px 12px",borderRadius:"999px",fontSize:"13px",cursor:"pointer",border:`1px solid ${c?Qo:t.inputBorder}`,background:c?Qo:"transparent",color:c?"#ffffff":t.textCell}},u)})))}function wwe({url:e,alt:t,colors:r,darkMode:n}){let[o,a]=(0,we.useState)(!1);if(o)return we.default.createElement("img",{src:e,alt:t,style:{maxWidth:"100%",borderRadius:"8px",display:"block"}});let i=OG(e);return we.default.createElement("button",{type:"button",onClick:()=>a(!0),"data-testid":"genui-image-load",className:"text-xs w-full",style:{border:`1px dashed ${r.cardBorder}`,borderRadius:"8px",padding:"14px 12px",color:r.textMuted,background:n?"rgba(255,255,255,0.03)":"#f9fafb"}},"Load image from ",i||"another site")}function Swe({block:e,colors:t,darkMode:r}){if(!FC(e.url))return we.default.createElement(Iu,{block:e,reason:"image URL must be http(s) or data:",colors:t,darkMode:r});let n=e.url.trim(),o=e.alt!=null?er(e.alt):"";return we.default.createElement("figure",{style:{margin:0}},UC(n)?we.default.createElement("img",{src:n,alt:o,style:{maxWidth:"100%",borderRadius:"8px",display:"block"}}):we.default.createElement(wwe,{url:n,alt:o,colors:t,darkMode:r}),e.caption!=null&&we.default.createElement("figcaption",{className:"text-xs mt-1",style:{color:t.textMuted}},er(e.caption)))}function kwe({block:e,colors:t,darkMode:r,onAction:n}){let[o,a]=(rI(MG,e.tone)||MG.info)[r?"dark":"light"];return we.default.createElement("div",{style:{background:o,borderLeft:`3px solid ${a}`,borderRadius:"8px",padding:"10px 12px"}},e.title!=null&&we.default.createElement("div",{className:"text-sm font-semibold mb-0.5",style:{color:a}},er(e.title)),we.default.createElement("div",{className:"text-sm",style:{color:t.textCell}},we.default.createElement(Us,{text:er(e.body),darkMode:r,onUiAction:n})))}function _we({block:e,colors:t,darkMode:r}){return we.default.createElement("div",null,e.language!=null&&we.default.createElement("div",{className:"text-xs font-mono mb-1",style:{color:t.textMuted}},er(e.language)),we.default.createElement("pre",{style:nI(r)},er(e.code)))}function jG({block:e,colors:t,darkMode:r,onAction:n}){let o=e.text??e.body??e.content??e.markdown;return we.default.createElement("div",{className:"text-sm",style:{color:t.textCell}},we.default.createElement(Us,{text:er(o),darkMode:r,onUiAction:n}))}var Cwe=3;function WC({value:e,colors:t,darkMode:r,depth:n}){if(e==null||typeof e!="object")return typeof e=="boolean"?we.default.createElement("span",{className:"font-mono"},String(e)):typeof e=="number"?we.default.createElement("span",{style:{fontVariantNumeric:"tabular-nums"}},e.toLocaleString()):we.default.createElement("span",null,er(e));if(n>=Cwe)return we.default.createElement("pre",{style:{...nI(r),maxHeight:"160px",overflowY:"auto"}},JSON.stringify(e,null,2));if(Array.isArray(e)){if(e.length===0)return we.default.createElement("span",{style:{color:t.textMuted}},"\u2014");if(e.every(sh)){let a=[...new Set(e.flatMap(i=>Object.keys(i)))];return we.default.createElement(BG,{columns:a,rows:e.map(i=>a.map(s=>i[s])),colors:t,renderCell:i=>we.default.createElement(WC,{value:i,colors:t,darkMode:r,depth:n+1})})}return e.every(a=>a==null||typeof a!="object")?we.default.createElement("span",null,e.map(er).join(", ")):we.default.createElement("ul",{className:"list-disc pl-5 space-y-0.5"},e.map((a,i)=>we.default.createElement("li",{key:i},we.default.createElement(WC,{value:a,colors:t,darkMode:r,depth:n+1}))))}let o=Object.entries(e);return o.length===0?we.default.createElement("span",{style:{color:t.textMuted}},"{}"):we.default.createElement("table",{className:"text-sm",style:{borderCollapse:"collapse",width:n===0?"100%":"auto"}},we.default.createElement("tbody",null,o.map(([a,i])=>we.default.createElement("tr",{key:a},we.default.createElement("th",{scope:"row",className:"font-mono text-xs",style:{...tI(t,!1),color:t.textSecondary,fontWeight:500,whiteSpace:"nowrap",width:"1%"}},a),we.default.createElement("td",{style:tI(t,!1)},we.default.createElement(WC,{value:i,colors:t,darkMode:r,depth:n+1}))))))}function Awe({block:e,colors:t,darkMode:r}){let n="value"in e?e.value:e.data;return we.default.createElement("div",{style:{border:`1px solid ${t.cardBorder}`,borderRadius:"10px",overflow:"hidden"}},e.title!=null&&we.default.createElement("div",{className:"px-3 pt-2",style:lh(t)},er(e.title)),we.default.createElement("div",{className:"px-1 pb-1",style:{overflowX:"auto"}},we.default.createElement(WC,{value:n,colors:t,darkMode:r,depth:0})))}var Ewe={card:uwe,stat:zG,stats:cwe,table:pwe,chart:gwe,list:hwe,progress:ywe,form:xwe,choices:bwe,image:Swe,callout:kwe,code:_we,object:Awe,text:jG,markdown:jG};function wl({blocks:e,onAction:t,darkMode:r=!1}){let n=Array.isArray(e)?e.filter(sh):[];if(n.length===0)return null;let o=Ki(r);return we.default.createElement("div",{className:"space-y-3",onClick:a=>a.stopPropagation()},n.map((a,i)=>{let s=typeof a.type=="string"?a.type.toLowerCase():"unknown",l=rI(Ewe,s);return we.default.createElement("div",{key:i,"data-testid":"genui-block","data-block-type":s},l?we.default.createElement(l,{block:a,colors:o,darkMode:r,onAction:t}):we.default.createElement(Iu,{block:a,colors:o,darkMode:r}))}))}var Nwe=/(\*\*[^*]+\*\*|\*[^*\n]+\*|`[^`]+`|\[[^\]]+\]\((?:https?:\/\/|\/)[^)\s]+\))/g,Zx=(e,t)=>e.split(Nwe).filter(Boolean).map((r,n)=>{let o=`${t}-${n}`;if(r.startsWith("**")&&r.endsWith("**"))return Zn.default.createElement("strong",{key:o},r.slice(2,-2));if(r.startsWith("*")&&r.endsWith("*")&&r.length>2)return Zn.default.createElement("em",{key:o},r.slice(1,-1));if(r.startsWith("`")&&r.endsWith("`"))return Zn.default.createElement("code",{key:o,className:"px-1 py-0.5 rounded text-[0.9em]",style:{background:"rgba(127,127,127,0.15)"}},r.slice(1,-1));let a=r.match(/^\[([^\]]+)\]\(((?:https?:\/\/|\/)[^)\s]+)\)$/);return a?Zn.default.createElement("a",{key:o,href:a[2],target:"_blank",rel:"noopener noreferrer",className:"underline text-blue-500"},a[1]):r}),FG=e=>/^\s*\|.*\|\s*$/.test(e),Twe=e=>/^\s*\|(\s*:?-+:?\s*\|)+\s*$/.test(e),UG=e=>e.trim().replace(/^\|/,"").replace(/\|$/,"").split(/(?t.replace(/\\\|/g,"|").trim());function Us({text:e,onUiAction:t,darkMode:r}){if(!e)return null;let n=[],o=String(e).split(` -`),a=0,i=0;for(;a{var n=e.cx,o=e.cy,a=e.innerRadius,i=e.outerRadius,s=e.startAngle,l=e.endAngle,u=(s+l)/2;if(r==="outside"){var c=an(n,o,i+t,u),d=c.x,p=c.y;return{x:d,y:p,textAnchor:d>=n?"start":"end",verticalAnchor:"middle"}}if(r==="center")return{x:n,y:o,textAnchor:"middle",verticalAnchor:"middle"};if(r==="centerTop")return{x:n,y:o,textAnchor:"middle",verticalAnchor:"start"};if(r==="centerBottom")return{x:n,y:o,textAnchor:"middle",verticalAnchor:"end"};var f=(a+i)/2,m=an(n,o,f,u),y=m.x,b=m.y;return{x:y,y:b,textAnchor:"middle",verticalAnchor:"middle"}},Fg=e=>e!=null&&"cx"in e&&De(e.cx),Lhe={angle:0,offset:5,zIndex:ir.label,position:"middle",textBreakAll:!1};function zhe(e){if(!Fg(e))return e;var t=e.cx,r=e.cy,n=e.outerRadius,o=n*2;return{x:t-n,y:r-n,width:o,upperWidth:o,lowerWidth:o,height:o}}function Su(e){var t,r,n=nr(e,Lhe),o=n.viewBox,a=n.parentViewBox,i=n.position,s=n.value,l=n.children,u=n.content,c=n.className,d=c===void 0?"":c,p=n.textBreakAll,f=n.labelRef,m=Mhe(),y=iq(),b=i==="center"?y:m??y,g,h,v;o==null?g=b:Fg(o)?g=o:g=uv(o);var x=zhe(g);if(!g||ar(s)&&ar(l)&&!(0,No.isValidElement)(u)&&typeof u!="function")return null;var S=Fg(g)&&(i==="insideStart"||i==="insideEnd"||i==="end");if(Fg(g))S||(v=$he(g,n.offset,n.position));else if(x){var k=fw({viewBox:x,position:i,offset:n.offset,parentViewBox:Fg(a)?void 0:a,clamp:!0});v=Mp(Mp({x:k.x,y:k.y,textAnchor:k.horizontalAnchor,verticalAnchor:k.verticalAnchor},k.width!==void 0?{width:k.width}:{}),k.height!==void 0?{height:k.height}:{})}var w=Mp(Mp(Mp(Mp({},((t=v)===null||t===void 0?void 0:t.x)!==void 0?{x:v.x}:{}),((r=v)===null||r===void 0?void 0:r.y)!==void 0?{y:v.y}:{}),n),{},{viewBox:g});if((0,No.isValidElement)(u)){var _=w.labelRef,A=rq(w,Ahe);return(0,No.cloneElement)(u,A)}if(typeof u=="function"){var C=w.content,N=rq(w,Ehe);if(h=(0,No.createElement)(u,N),(0,No.isValidElement)(h))return h}else h=Ihe(n);var L=yn(n);return S&&Fg(g)?jhe(n,i,h,L,g):v==null?null:Ra.createElement(sn,{zIndex:n.zIndex},Ra.createElement(Pp,ku({ref:f,className:bt("recharts-label",d)},L,v,{textAnchor:D_(L.textAnchor)?L.textAnchor:v.textAnchor,breakAll:p}),h))}Su.displayName="Label";var Bhe=(e,t,r)=>{if(!e)return null;var n={viewBox:t,labelRef:r};return e===!0?Ra.createElement(Su,ku({key:"label-implicit"},n)):ka(e)?Ra.createElement(Su,ku({key:"label-implicit",value:e},n)):(0,No.isValidElement)(e)?e.type===Su?(0,No.cloneElement)(e,Mp({key:"label-implicit"},n)):Ra.createElement(Su,ku({key:"label-implicit",content:e},n)):Ip(e)?Ra.createElement(Su,ku({key:"label-implicit",content:e},n)):e&&typeof e=="object"?Ra.createElement(Su,ku({},e,{key:"label-implicit"},n)):null};function uq(e){var t=e.label,r=e.labelRef,n=iq();return Bhe(t,n,r)||null}var _u=Z(Q()),Ug=Z(Q());var Fhe=["valueAccessor"],Uhe=["dataKey","clockWise","id","textBreakAll","zIndex"];function $_(){return $_=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=Array.isArray(e.value)?e.value[e.value.length-1]:e.value;if(QH(t))return t},dq=(0,Ug.createContext)(void 0),Wg=dq.Provider,pq=(0,Ug.createContext)(void 0),fq=pq.Provider;function qhe(){return(0,Ug.useContext)(dq)}function Khe(){return(0,Ug.useContext)(pq)}function j_(e){var t=e.valueAccessor,r=t===void 0?Hhe:t,n=cq(e,Fhe),o=n.dataKey,a=n.clockWise,i=n.id,s=n.textBreakAll,l=n.zIndex,u=cq(n,Uhe),c=qhe(),d=Khe(),p=c||d;return!p||!p.length?null:_u.createElement(sn,{zIndex:l??ir.label},_u.createElement(br,{className:"recharts-label-list"},p.map((f,m)=>{var y,b=ar(o)?r(f,m):Ht(f.payload,o),g=ar(i)?{}:{id:"".concat(i,"-").concat(m)};return _u.createElement(Su,$_({key:"label-".concat(m)},yn(f),u,g,{fill:(y=n.fill)!==null&&y!==void 0?y:f.fill,parentViewBox:f.parentViewBox,value:b,textBreakAll:s,viewBox:f.viewBox,index:m,zIndex:0}))})))}j_.displayName="LabelList";function qc(e){var t=e.label;return t?t===!0?_u.createElement(j_,{key:"labelList-implicit"}):_u.isValidElement(t)||Ip(t)?_u.createElement(j_,{key:"labelList-implicit",content:t}):typeof t=="object"?_u.createElement(j_,$_({key:"labelList-implicit"},t,{type:String(t.type)})):null:null}var mq=Z(Q());function RM(){return RM=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=e.cx,r=e.cy,n=e.r,o=e.className,a=bt("recharts-dot",o);return De(t)&&De(r)&&De(n)?mq.createElement("circle",RM({},hn(e),Um(e),{className:a,cx:t,cy:r,r:n})):null};var e5=e=>e.graphicalItems.polarItems,Vhe=ae([vn,pp],ix),z_=ae([e5,En,Vhe],sx),Ghe=ae([z_],lx),B_=ae([Ghe,lp],ux),Yhe=ae([B_,En,z_],aM),i9e=ae([B_,En,z_],(e,t,r)=>r.length>0?e.flatMap(n=>r.flatMap(o=>{var a,i=Ht(n,(a=t.dataKey)!==null&&a!==void 0?a:o.dataKey);return{value:i,errorDomain:[]}})).filter(Boolean):t?.dataKey!=null?e.map(n=>({value:Ht(n,t.dataKey),errorDomain:[]})):e.map(n=>({value:n,errorDomain:[]}))),gq=()=>{},Xhe=ae([B_,En,z_,Og,vn,gF],dx),Zhe=ae([En,o_,a_,gq,Xhe,gq,Bt,vn],px),hq=ae([En,Bt,B_,Yhe,Ec,vn,Zhe],fx),Jhe=ae([hq,Np,yu],mx),Qhe=ae([En,hq,Jhe,vn],gx),s9e=ae([yu,Qhe],yk);var Rhe={radiusAxis:{},angleAxis:{}},yq=Cr({name:"polarAxis",initialState:Rhe,reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=Zt(t.payload)},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=Zt(t.payload)},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),F_=yq.actions,d9e=F_.addRadiusAxis,p9e=F_.removeRadiusAxis,f9e=F_.addAngleAxis,m9e=F_.removeAngleAxis;var vq=yq.reducer;function U_(e){return e&&typeof e=="object"&&"className"in e&&typeof e.className=="string"?e.className:""}var Gt=Z(Q()),Xg=Z(Q());function xq(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function bq(e){for(var t=1;tt,t5=ae([e5,nye],(e,t)=>e.filter(r=>r.type==="pie").find(r=>r.id===t)),oye=[],r5=(e,t,r)=>r?.length===0?oye:r,wq=ae([lp,t5,r5],(e,t,r)=>{var n=e.chartData;if(t!=null){var o;if(t?.data!=null&&t.data.length>0?o=t.data:o=n,(!o||!o.length)&&r!=null&&(o=r.map(a=>bq(bq({},t.presentationProps),a.props))),o!=null)return o}}),Sq=ae([wq,t5,r5],(e,t,r)=>{if(!(e==null||t==null))return e.map((n,o)=>{var a,i=Ht(n,t.nameKey,t.name),s;return r!=null&&(a=r[o])!==null&&a!==void 0&&(a=a.props)!==null&&a!==void 0&&a.fill?s=r[o].props.fill:typeof n=="object"&&n!=null&&"fill"in n?s=n.fill:s=t.fill,{value:wi(i,t.dataKey),dataKey:t.dataKey,color:s,payload:n,type:t.legendType}})}),kq=ae([wq,t5,r5,Fr],(e,t,r,n)=>{if(!(t==null||e==null))return _q({offset:n,pieSettings:t,displayedData:e,cells:r})});var Oq=Z(Q()),Pq=Z(Eq());var Nq=e=>typeof e=="string"?e:e?e.displayName||e.name||"Component":"",Tq=null,a5=null,Mq=e=>{if(e===Tq&&Array.isArray(a5))return a5;var t=[];return Oq.Children.forEach(e,r=>{ar(r)||((0,Pq.isFragment)(r)?t=t.concat(Mq(r.props.children)):t.push(r))}),a5=t,Tq=e,t};function wx(e,t){var r=[],n=[];return Array.isArray(t)?n=t.map(o=>Nq(o)):n=[Nq(t)],Mq(e).forEach(o=>{var a=Uo(o,"type.displayName")||Uo(o,"type.name");a&&n.indexOf(a)!==-1&&r.push(o)}),r}var Hg=e=>e&&typeof e=="object"&&"clipDot"in e?!!e.clipDot:!0;var qg=Z(Q()),Sx=Z(Q());function Iq(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Dq(e){for(var t=1;t{var n=jt();return(o,a)=>i=>{e?.(o,a,i),n(d_({activeIndex:String(a),activeDataKey:t,activeCoordinate:o.tooltipPosition,activeGraphicalItemId:r}))}},_x=e=>{var t=jt();return(r,n)=>o=>{e?.(r,n,o),t(CW())}},Cx=(e,t,r)=>{var n=jt();return(o,a)=>i=>{e?.(o,a,i),n(AW({activeIndex:String(a),activeDataKey:t,activeCoordinate:o.tooltipPosition,activeGraphicalItemId:r}))}};var Ax=Z(Q());function Vc(e){var t=e.tooltipEntrySettings,r=jt(),n=Ar(),o=(0,Ax.useRef)(null);return(0,Ax.useLayoutEffect)(()=>{n||(o.current===null?r(wW(t)):o.current!==t&&r(SW({prev:o.current,next:t})),o.current=t)},[t,r,n]),(0,Ax.useLayoutEffect)(()=>()=>{o.current&&(r(kW(o.current)),o.current=null)},[r]),null}var Gc=Z(Q());function Kg(e){var t=e.legendPayload,r=jt(),n=Ar(),o=(0,Gc.useRef)(null);return(0,Gc.useLayoutEffect)(()=>{n||(o.current===null?r(XO(t)):o.current!==t&&r(ZO({prev:o.current,next:t})),o.current=t)},[r,n,t]),(0,Gc.useLayoutEffect)(()=>()=>{o.current&&(r(JO(o.current)),o.current=null)},[r]),null}function $q(e){var t=e.legendPayload,r=jt(),n=$e(Bt),o=(0,Gc.useRef)(null);return(0,Gc.useLayoutEffect)(()=>{n!=="centric"&&n!=="radial"||(o.current===null?r(XO(t)):o.current!==t&&r(ZO({prev:o.current,next:t})),o.current=t)},[r,n,t]),(0,Gc.useLayoutEffect)(()=>()=>{o.current&&(r(JO(o.current)),o.current=null)},[r]),null}var Bq=Z(Q()),Tx=Z(Q());function mye(e,t){return vye(e)||yye(e,t)||hye(e,t)||gye()}function gye(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function hye(e,t){if(e){if(typeof e=="string")return Lq(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Lq(e,t):void 0}}function Lq(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r2&&arguments[2]!==void 0?arguments[2]:[],n=[];for(var o of r)n.push({status:"removed",prev:o});for(var a=0;ae[Math.floor(a*r)]);return i5(n,t)}function bye(e,t){var r=t.map((n,o)=>e[o]);return i5(r,t)}function wye(e,t){for(var r=new Map,n=0;n{var f=r(d,p);if(f!=null){var m=n.get(f);if(m!==void 0)return o.add(f),m}}),i=[];for(var s of n){var l=mye(s,2),u=l[0],c=l[1];o.has(u)||i.push(c)}return i5(a,t,i)}function Nx(e,t,r){return t==null?null:e==null?t.map(n=>({status:"added",next:n})):r===Dp?xye(e,t):r===Ex?bye(e,t):Sye(e,t,r)}var Vg=Z(Q());function Q_(e,t){var r=(0,Vg.useRef)(e),n=(0,Vg.useRef)(t.current),o=(0,Vg.useRef)(!0);r.current!==e&&(r.current=e,n.current=t.current,o.current=!1);var a=(0,Vg.useCallback)(function(i,s){var l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(s===0){o.current=!0;return}s===1&&(n.current=i),s>0&&o.current&&l&&(t.current=i)},[t]);return{startValue:n.current,syncStepValue:a}}function kye(e,t){return Eye(e)||Aye(e,t)||Cye(e,t)||_ye()}function _ye(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Cye(e,t){if(e){if(typeof e=="string")return zq(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?zq(e,t):void 0}}function zq(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{typeof e=="function"&&e(),a(!0)},[e]),s=(0,Tx.useCallback)(()=>{typeof t=="function"&&t(),a(!1)},[t]);return{isAnimating:o,handleAnimationStart:i,handleAnimationEnd:s}}function Xc(e){var t,r=e.animationInput,n=e.animationIdPrefix,o=e.items,a=e.previousItemsRef,i=e.isAnimationActive,s=e.animationBegin,l=e.animationDuration,u=e.animationEasing,c=e.onAnimationStart,d=e.onAnimationEnd,p=e.animationInterpolateFn,f=e.animationMatchBy,m=e.shouldUpdatePreviousRef,y=e.children,b=e.layout,g=VS(r,n),h=Q_(g,a),v=(t=h.startValue)!==null&&t!==void 0?t:null,x=Nx(v,o,f??Dp);return Bq.createElement(KS,{animationId:g,begin:s,duration:l,isActive:i,easing:u,onAnimationEnd:d,onAnimationStart:c,key:g},S=>{var k=v==null,w=o==null?o:p(x,S,b),_=m?m(S):S>0;return h.syncStepValue(w,S,_),w==null?null:y(w,S,k)})}var Wq=Z(Q()),l5=Z(Q());var R_=Z(Q());var s5;function Nye(e,t){return Mye(e)||Pye(e,t)||Oye(e,t)||Tye()}function Tye(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Oye(e,t){if(e){if(typeof e=="string")return Fq(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Fq(e,t):void 0}}function Fq(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var e=R_.useState(()=>ou("uid-")),t=Nye(e,1),r=t[0];return r},eC=(s5=R_.useId)!==null&&s5!==void 0?s5:Iye;function Uq(e,t){var r=eC();return t||(e?"".concat(e,"-").concat(r):r)}var Dye=(0,l5.createContext)(void 0),Zc=e=>{var t=e.id,r=e.type,n=e.children,o=Uq("recharts-".concat(r),t);return Wq.createElement(Dye.Provider,{value:o},n(o))};var Ls=Z(Q());var jye={cartesianItems:[],polarItems:[]},Hq=Cr({name:"graphicalItems",initialState:jye,reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(Zt(t.payload))},prepare:Ir()},replaceCartesianGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,o=r.next,a=ea(e).cartesianItems.indexOf(Zt(n));a>-1&&(e.cartesianItems[a]=Zt(o))},prepare:Ir()},removeCartesianGraphicalItem:{reducer(e,t){var r=ea(e).cartesianItems.indexOf(Zt(t.payload));r>-1&&e.cartesianItems.splice(r,1)},prepare:Ir()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(Zt(t.payload))},prepare:Ir()},removePolarGraphicalItem:{reducer(e,t){var r=ea(e).polarItems.indexOf(Zt(t.payload));r>-1&&e.polarItems.splice(r,1)},prepare:Ir()},replacePolarGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,o=r.next,a=ea(e).polarItems.indexOf(Zt(n));a>-1&&(e.polarItems[a]=Zt(o))},prepare:Ir()}}}),Gg=Hq.actions,qq=Gg.addCartesianGraphicalItem,Kq=Gg.replaceCartesianGraphicalItem,Vq=Gg.removeCartesianGraphicalItem,Gq=Gg.addPolarGraphicalItem,Yq=Gg.removePolarGraphicalItem,Xq=Gg.replacePolarGraphicalItem;var Zq=Hq.reducer;var $ye=e=>{var t=jt(),r=(0,Ls.useRef)(null);return(0,Ls.useLayoutEffect)(()=>{r.current===null?t(qq(e)):r.current!==e&&t(Kq({prev:r.current,next:e})),r.current=e},[t,e]),(0,Ls.useLayoutEffect)(()=>()=>{r.current&&(t(Vq(r.current)),r.current=null)},[t]),null},Yg=(0,Ls.memo)($ye),Lye=e=>{var t=jt(),r=(0,Ls.useRef)(null);return(0,Ls.useLayoutEffect)(()=>{r.current===null?t(Gq(e)):r.current!==e&&t(Xq({prev:r.current,next:e})),r.current=e},[t,e]),(0,Ls.useLayoutEffect)(()=>()=>{r.current&&(t(Yq(r.current)),r.current=null)},[t]),null},Jq=(0,Ls.memo)(Lye);var zye=["key"],Bye=["onMouseEnter","onClick","onMouseLeave"],Fye=["id"],Uye=["id"];function jp(){return jp=Object.assign?Object.assign.bind():function(e){for(var t=1;twx(e.children,wu),[e.children]),r=$e(n=>Sq(n,e.id,t));return r==null?null:Gt.createElement($q,{legendPayload:r})}function Gye(e){if(!(e==null||typeof e=="boolean"||typeof e=="function")){if(Gt.isValidElement(e)){var t,r=(t=e.props)===null||t===void 0?void 0:t.fill;return typeof r=="string"?r:void 0}var n=e.fill;return typeof n=="string"?n:void 0}}var Yye=Gt.memo(e=>{var t=e.dataKey,r=e.nameKey,n=e.sectors,o=e.stroke,a=e.strokeWidth,i=e.fill,s=e.name,l=e.hide,u=e.tooltipType,c=e.formatter,d=e.id,p=e.activeShape,f=Gye(p),m=n.map(b=>{var g=b.tooltipPayload;return f==null||g==null?g:g.map(h=>Nn(Nn({},h),{},{color:f,fill:f}))}),y={dataDefinedOnItem:m,getPosition:b=>{var g;return(g=n[Number(b)])===null||g===void 0?void 0:g.tooltipPosition},settings:{stroke:o,strokeWidth:a,fill:i,dataKey:t,nameKey:r,name:wi(s,t),hide:l,type:u,color:i,unit:"",formatter:c,graphicalItemId:d}};return Gt.createElement(Vc,{tooltipEntrySettings:y})}),Xye=(e,t)=>e>t?"start":etypeof t=="function"?$n(t(e),r,r*.8):$n(t,r,r*.8),Jye=(e,t,r)=>{var n=t.top,o=t.left,a=t.width,i=t.height,s=ZS(a,i),l=o+$n(e.cx,a,a/2),u=n+$n(e.cy,i,i/2),c=$n(e.innerRadius,s,0),d=Zye(r,e.outerRadius,s),p=e.maxRadius||Math.sqrt(a*a+i*i)/2;return{cx:l,cy:u,innerRadius:c,outerRadius:d,maxRadius:p}},Qye=(e,t)=>{var r=Qr(t-e),n=Math.min(Math.abs(t-e),360);return r*n},Rye=(e,t)=>{if(Gt.isValidElement(e))return Gt.cloneElement(e,t);if(typeof e=="function")return e(t);var r=bt("recharts-pie-label-line",typeof e!="boolean"?e.className:""),n=t.key,o=tC(t,zye);return Gt.createElement(ul,jp({},o,{type:"linear",className:r}))},eve=(e,t,r)=>{if(Gt.isValidElement(e))return Gt.cloneElement(e,t);var n=r;if(typeof e=="function"&&(n=e(t),Gt.isValidElement(n)))return n;var o=bt("recharts-pie-label-text",U_(e));return Gt.createElement(Pp,jp({},t,{alignmentBaseline:"middle",className:o}),n)};function tve(e){var t=e.sectors,r=e.props,n=e.showLabels,o=r.label,a=r.labelLine,i=r.dataKey;if(!n||!o||!t)return null;var s=hn(r),l=hi(o),u=hi(a),c=typeof o=="object"&&"offsetRadius"in o&&typeof o.offsetRadius=="number"&&o.offsetRadius||20,d=t.map((p,f)=>{var m=(p.startAngle+p.endAngle)/2,y=an(p.cx,p.cy,p.outerRadius+c,m),b=Nn(Nn(Nn(Nn({},s),p),{},{stroke:"none"},l),{},{index:f,textAnchor:Xye(y.x,p.cx)},y),g=Nn(Nn(Nn(Nn({},s),p),{},{fill:"none",stroke:p.fill},u),{},{index:f,points:[an(p.cx,p.cy,p.outerRadius,m),y],key:"line"});return Gt.createElement(sn,{zIndex:ir.label,key:"label-".concat(p.startAngle,"-").concat(p.endAngle,"-").concat(p.midAngle,"-").concat(f)},Gt.createElement(br,null,a&&Rye(a,g),eve(o,b,Ht(p,i))))});return Gt.createElement(br,{className:"recharts-pie-labels"},d)}function rve(e){var t=e.sectors,r=e.props,n=e.showLabels,o=r.label;return typeof o=="object"&&o!=null&&"position"in o?Gt.createElement(qc,{label:o}):Gt.createElement(tve,{sectors:t,props:r,showLabels:n})}function nve(e){var t=e.sectors,r=e.activeShape,n=e.inactiveShape,o=e.allOtherPieProps,a=e.shape,i=e.id,s=e.animationElapsedTime,l=e.isAnimating,u=e.isEntrance,c=$e(os),d=$e(Ig),p=$e(w_),f=o.onMouseEnter,m=o.onClick,y=o.onMouseLeave,b=tC(o,Bye),g=kx(f,o.dataKey,i),h=_x(y),v=Cx(m,o.dataKey,i);return t==null||t.length===0?null:Gt.createElement(Gt.Fragment,null,t.map((x,S)=>{if(x?.startAngle===0&&x?.endAngle===0&&t.length!==1)return null;var k=p==null||p===i,w=String(S)===c&&(d==null||o.dataKey===d)&&k,_=c?n:null,A=r&&w?r:_,C=Nn(Nn({},x),{},{stroke:x.stroke,tabIndex:-1,index:S,isActive:w,animationElapsedTime:s,isAnimating:l,isEntrance:u,[NS]:S,[TS]:i});return Gt.createElement(br,jp({key:"sector-".concat(x?.startAngle,"-").concat(x?.endAngle,"-").concat(x.midAngle,"-").concat(S),tabIndex:-1,className:"recharts-pie-sector"},iu(b,x,S),{onMouseEnter:g(x,S),onMouseLeave:h(x,S),onClick:v(x,S)}),Gt.createElement(Kc,{option:A??a,DefaultShape:Rq,shapeProps:C}))}))}function _q(e){var t,r=e.pieSettings,n=e.displayedData,o=e.cells,a=e.offset,i=r.cornerRadius,s=r.startAngle,l=r.endAngle,u=r.dataKey,c=r.nameKey,d=r.tooltipType,p=Math.abs(r.minAngle),f=Qye(s,l),m=Math.abs(f),y=n.length<=1?0:(t=r.paddingAngle)!==null&&t!==void 0?t:0,b=n.filter(_=>Ht(_,u,0)!==0).length,g=(m>=360?b:b-1)*y,h=n.reduce((_,A)=>{var C=Ht(A,u,0);return _+(De(C)?C:0)},0),v=p>0&&h>0&&n.some(_=>{var A=Ht(_,u,0),C=(De(A)?A:0)/h;return A!==0&&C*m0){var w;k=n.map((_,A)=>{var C=Ht(_,u,0),N=Ht(_,c,A),L=Jye(r,a,_),J=(De(C)?C:0)/h,B,K=Nn(Nn({},_),o&&o[A]&&o[A].props),T=K!=null&&"fill"in K&&typeof K.fill=="string"?K.fill:r.fill;A?B=w.endAngle+Qr(f)*y*(C!==0?1:0):B=s;var P=B+Qr(f)*((C!==0?x:0)+J*S),I=(B+P)/2,M=(L.innerRadius+L.outerRadius)/2,j=[{name:N,value:C,payload:K,dataKey:u,type:d,color:T,fill:T,graphicalItemId:r.id}],O=an(L.cx,L.cy,M,I);return w=Nn(Nn(Nn(Nn({},r.presentationProps),{},{percent:J,cornerRadius:typeof i=="string"?parseFloat(i):i,name:N,tooltipPayload:j,midAngle:I,middleRadius:M,tooltipPosition:O},K),L),{},{value:C,dataKey:u,startAngle:B,endAngle:P,payload:K,paddingAngle:C!==0?Qr(f)*y:0}),w})}return k}function ove(e){var t=e.showLabels,r=e.sectors,n=e.children,o=(0,Xg.useMemo)(()=>!t||!r?[]:r.map(a=>({value:a.value,payload:a.payload,clockWise:!1,parentViewBox:void 0,viewBox:{cx:a.cx,cy:a.cy,innerRadius:a.innerRadius,outerRadius:a.outerRadius,startAngle:a.startAngle,endAngle:a.endAngle,clockWise:!1},fill:a.fill})),[r,t]);return Gt.createElement(fq,{value:t?o:void 0},n)}var ave=(e,t)=>{if(e==null)return[];var r=[],n=e.find(a=>a.status!=="removed"),o=n?n.next.startAngle:0;return e.forEach((a,i)=>{if(a.status!=="removed"){var s=i>0?Uo(a.next,"paddingAngle",0):0;if(a.status==="matched"){var l=_r(a.prev.endAngle-a.prev.startAngle,a.next.endAngle-a.next.startAngle,t),u=Nn(Nn({},a.next),{},{startAngle:o+s,endAngle:o+l+s});r.push(u),o=u.endAngle}else{var c=_r(0,a.next.endAngle-a.next.startAngle,t),d=Nn(Nn({},a.next),{},{startAngle:o+s,endAngle:o+c+s});r.push(d),o=d.endAngle}}}),r};function ive(e){var t,r,n,o,a=e.props,i=e.previousSectorsRef,s=e.id,l=a.sectors,u=a.activeShape,c=a.inactiveShape,d=a.animationInterpolateFn,p=Yc(a.onAnimationStart,a.onAnimationEnd),f=p.isAnimating,m=p.handleAnimationStart,y=p.handleAnimationEnd,b=U7();if(b==null)return null;var g=l[0];return Gt.createElement(ove,{showLabels:!f,sectors:l},Gt.createElement(Xc,{animationInput:a,animationIdPrefix:"recharts-pie-",items:l,previousItemsRef:i,isAnimationActive:a.isAnimationActive,animationBegin:a.animationBegin,animationDuration:a.animationDuration,animationEasing:a.animationEasing,onAnimationStart:m,onAnimationEnd:y,animationInterpolateFn:d,animationMatchBy:a.animationMatchBy,layout:b},(h,v,x)=>Gt.createElement(br,null,Gt.createElement(nve,{sectors:h,activeShape:u,inactiveShape:c,allOtherPieProps:a,shape:a.shape,id:s,animationElapsedTime:v,isAnimating:f||v<1,isEntrance:x}))),Gt.createElement(rve,{showLabels:!f,sectors:l,props:a}),Gt.createElement(lq,{cx:(t=g?.cx)!==null&&t!==void 0?t:0,cy:(r=g?.cy)!==null&&r!==void 0?r:0,innerRadius:(n=g?.innerRadius)!==null&&n!==void 0?n:0,outerRadius:(o=g?.outerRadius)!==null&&o!==void 0?o:0,startAngle:a.startAngle,endAngle:a.endAngle,clockWise:!1},a.children))}var sve={animationBegin:400,animationDuration:1500,animationEasing:"ease",animationInterpolateFn:ave,animationMatchBy:Ex,cx:"50%",cy:"50%",dataKey:"value",endAngle:360,fill:"#808080",hide:!1,innerRadius:0,isAnimationActive:"auto",label:!1,labelLine:!0,legendType:"rect",minAngle:0,nameKey:"name",outerRadius:"80%",paddingAngle:0,rootTabIndex:0,shape:Rq,startAngle:0,stroke:"#fff",zIndex:ir.area};function lve(e){var t=e.id,r=tC(e,Fye),n=e.hide,o=e.className,a=e.rootTabIndex,i=(0,Xg.useMemo)(()=>wx(e.children,wu),[e.children]),s=$e(c=>kq(c,t,i)),l=(0,Xg.useRef)(null),u=bt("recharts-pie",o);return n||s==null?(l.current=null,Gt.createElement(br,{tabIndex:a,className:u})):Gt.createElement(sn,{zIndex:e.zIndex},Gt.createElement(Yye,{dataKey:e.dataKey,nameKey:e.nameKey,sectors:s,stroke:e.stroke,strokeWidth:e.strokeWidth,fill:e.fill,name:e.name,hide:e.hide,tooltipType:e.tooltipType,formatter:e.formatter,id:t,activeShape:e.activeShape}),Gt.createElement(br,{tabIndex:a,className:u},Gt.createElement(ive,{props:Nn(Nn({},r),{},{sectors:s}),previousSectorsRef:l,id:t})))}function uve(e){var t=nr(e,sve),r=t.id,n=tC(t,Uye),o=hn(n);return Gt.createElement(Zc,{id:r,type:"pie"},a=>Gt.createElement(Gt.Fragment,null,Gt.createElement(Jq,{type:"pie",id:a,data:n.data,dataKey:n.dataKey,hide:n.hide,angleAxisId:0,radiusAxisId:0,name:n.name,nameKey:n.nameKey,tooltipType:n.tooltipType,legendType:n.legendType,fill:n.fill,cx:n.cx,cy:n.cy,startAngle:n.startAngle,endAngle:n.endAngle,paddingAngle:n.paddingAngle,minAngle:n.minAngle,innerRadius:n.innerRadius,outerRadius:n.outerRadius,cornerRadius:n.cornerRadius,presentationProps:o,maxRadius:t.maxRadius}),Gt.createElement(Vye,jp({},n,{id:a})),Gt.createElement(lve,jp({},n,{id:a}))))}var rC=uve;rC.displayName="Pie";var Ox=Z(Q()),oC=Z(Q());var cve=["points"];function eK(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function u5(e){for(var t=1;t{var g,h,v=u5(u5(u5({r:3},i),p),{},{index:b,cx:(g=y.x)!==null&&g!==void 0?g:void 0,cy:(h=y.y)!==null&&h!==void 0?h:void 0,dataKey:a,value:y.value,payload:y.payload,points:t});return Ox.createElement(hve,{key:"dot-".concat(b),option:r,dotProps:v,className:o})}),m={};return s&&l!=null&&(m.clipPath="url(#clipPath-".concat(d?"":"dots-").concat(l,")")),Ox.createElement(sn,{zIndex:c},Ox.createElement(br,nC({className:n},m),f))}var Px=Z(Q()),sC=Z(Q());function tK(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function iC(e){for(var t=1;t({top:e.top,bottom:e.bottom,left:e.left,right:e.right}));var fK=ae([pK,qo,Ko],(e,t,r)=>{if(!(!e||t==null||r==null))return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,r-e.top-e.bottom)}});var Jc=()=>$e(fK),mK=()=>$e(BW);function gK(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function d5(e){for(var t=1;t{var t=e.point,r=e.childIndex,n=e.mainColor,o=e.activeDot,a=e.dataKey,i=e.clipPath;if(o===!1||t.x==null||t.y==null)return null;var s={index:r,dataKey:a,cx:t.x,cy:t.y,r:4,fill:n??"none",strokeWidth:2,stroke:"#fff",payload:t.payload,value:t.value},l=d5(d5(d5({},s),hi(o)),Um(o)),u;return(0,sC.isValidElement)(o)?u=(0,sC.cloneElement)(o,l):typeof o=="function"?u=o(l):u=Px.createElement(L_,l),Px.createElement(br,{className:"recharts-active-dot",clipPath:i},u)};function Mx(e){var t=e.points,r=e.mainColor,n=e.activeDot,o=e.itemDataKey,a=e.clipPath,i=e.zIndex,s=i===void 0?ir.activeDot:i,l=$e(os),u=mK();if(t==null||u==null)return null;var c=t.find(d=>u.includes(d.payload));return ar(c)?null:Px.createElement(sn,{zIndex:s},Px.createElement(Cve,{point:c,childIndex:Number(l),mainColor:r,dataKey:o,activeDot:n,clipPath:a}))}function Ave(e,t){return Ove(e)||Tve(e,t)||Nve(e,t)||Eve()}function Eve(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Nve(e,t){if(e){if(typeof e=="string")return hK(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?hK(e,t):void 0}}function hK(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var n=r??e;if(!ar(n))return $n(n,t,0)},vK=(e,t,r)=>{var n={},o=e.filter(fp),a=e.filter(u=>u.stackId==null),i=o.reduce((u,c)=>{var d=u[c.stackId];return d==null&&(d=[]),d.push(c),u[c.stackId]=d,u},n),s=Object.entries(i).map(u=>{var c,d=Ave(u,2),p=d[0],f=d[1],m=f.map(b=>b.dataKey),y=yK(t,r,(c=f[0])===null||c===void 0?void 0:c.barSize);return{stackId:p,dataKeys:m,barSize:y}}),l=a.map(u=>{var c=[u.dataKey].filter(p=>p!=null),d=yK(t,r,u.barSize);return{stackId:void 0,dataKeys:c,barSize:d}});return[...s,...l]};function xK(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function lC(e){for(var t=1;th+(v.barSize||0),0);p+=(i-1)*s,p>=r&&(p-=(i-1)*s,s=0),p>=r&&d>0&&(c=!0,d*=.9,p=i*d);var f=Math.round((r-p)/2),m={offset:f-s,size:0};l=n.reduce((h,v)=>{var x,S={stackId:v.stackId,dataKeys:v.dataKeys,position:{offset:m.offset+m.size+s,size:c?d:(x=v.barSize)!==null&&x!==void 0?x:0}},k=[...h,S];return m=S.position,k},u)}else{var y=$n(t,r,0,!0);r-2*y-(i-1)*s<=0&&(s=0);var b=(r-2*y-(i-1)*s)/i;b>1&&(b=Math.round(b));var g=Ot(o)?Math.min(b,o):b;l=n.reduce((h,v,x)=>[...h,{stackId:v.stackId,dataKeys:v.dataKeys,position:{offset:y+i*(b-g)/2+(g+s)*x,size:g}}],u)}return l}}var bK=(e,t,r,n,o,a,i)=>{var s=ar(i)?t:i,l=Dve(r,n,o!==a?o:a,e,s);return o!==a&&l!=null&&(l=l.map(u=>lC(lC({},u),{},{position:lC(lC({},u.position),{},{offset:u.position.offset-o/2})}))),l};var wK=(e,t)=>{var r=Tc(t);if(!(!e||r==null||t==null)){var n=t.stackId;if(n!=null){var o=e[n];if(o){var a=o.stackedData;if(a)return a.find(i=>i.key===r)}}}};var SK=(e,t)=>{if(!(e==null||t==null)){var r=e.find(n=>n.stackId===t.stackId&&t.dataKey!=null&&n.dataKeys.includes(t.dataKey));if(r!=null)return r.position}};function kK(e,t){return e&&typeof e=="object"&&"zIndex"in e&&typeof e.zIndex=="number"&&Ot(e.zIndex)?e.zIndex:t}var _K=Z(Q());var uC=e=>{var t=e.chartData,r=jt(),n=Ar();return(0,_K.useEffect)(()=>n?()=>{}:(r(ZM(t)),()=>{r(ZM(void 0))}),[t,r,n]),null};var CK={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},AK=Cr({name:"brush",initialState:CK,reducers:{setBrushSettings(e,t){return t.payload==null?CK:t.payload}}}),BUe=AK.actions.setBrushSettings;var EK=AK.reducer;function jve(e){return(e%180+180)%180}var NK=function(t){var r=t.width,n=t.height,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=jve(o),i=a*Math.PI/180,s=Math.atan(n/r),l=i>s&&i{e.dots.push(t.payload)},removeDot:(e,t)=>{var r=ea(e).dots.findIndex(n=>n===t.payload);r!==-1&&e.dots.splice(r,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var r=ea(e).areas.findIndex(n=>n===t.payload);r!==-1&&e.areas.splice(r,1)},addLine:(e,t)=>{e.lines.push(Zt(t.payload))},removeLine:(e,t)=>{var r=ea(e).lines.findIndex(n=>n===t.payload);r!==-1&&e.lines.splice(r,1)}}}),Zg=TK.actions,qUe=Zg.addDot,KUe=Zg.removeDot,VUe=Zg.addArea,GUe=Zg.removeArea,YUe=Zg.addLine,XUe=Zg.removeLine;var OK=TK.reducer;var Ix=Z(Q()),Dx=Z(Q());function Lve(e,t){return Uve(e)||Fve(e,t)||Bve(e,t)||zve()}function zve(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Bve(e,t){if(e){if(typeof e=="string")return PK(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?PK(e,t):void 0}}function PK(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.children,r=(0,Dx.useState)("".concat(ou("recharts"),"-clip")),n=Lve(r,1),o=n[0],a=Jc();if(a==null)return null;var i=a.x,s=a.y,l=a.width,u=a.height;return Ix.createElement(Wve.Provider,{value:o},Ix.createElement("defs",null,Ix.createElement("clipPath",{id:o},Ix.createElement("rect",{x:i,y:s,height:u,width:l}))),t)};var xn=Z(Q()),da=Z(Q());function IK(){}function p5(e){if(!e||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype||Object.getPrototypeOf(t)===null?Object.prototype.toString.call(e)==="[object Object]":!1}function DK(e,t,r){return jx(e,t,void 0,void 0,void 0,void 0,r)}function jx(e,t,r,n,o,a,i){let s=i(e,t,r,n,o,a);if(s!==void 0)return s;if(typeof e==typeof t)switch(typeof e){case"bigint":case"string":case"boolean":case"symbol":case"undefined":return e===t;case"number":return e===t||Object.is(e,t);case"function":return e===t;case"object":return $x(e,t,a,i)}return $x(e,t,a,i)}function $x(e,t,r,n){if(Object.is(e,t))return!0;let o=su(e),a=su(t);if(o==="[object Arguments]"&&(o=Km),a==="[object Arguments]"&&(a=Km),o!==a)return!1;switch(o){case Wm:return e.toString()===t.toString();case Hm:return _c(e.valueOf(),t.valueOf());case qm:case Ew:case Aw:return Object.is(e.valueOf(),t.valueOf());case _w:return e.source===t.source&&e.flags===t.flags;case $z:return e===t}r=r??new Map;let i=r.get(e),s=r.get(t);if(i!=null&&s!=null)return i===t;r.set(e,t),r.set(t,e);try{switch(o){case Nw:if(e.size!==t.size)return!1;for(let[l,u]of e.entries())if(!t.has(l)||!jx(u,t.get(l),l,e,t,r,n))return!1;return!0;case Tw:{if(e.size!==t.size)return!1;let l=Array.from(e.values()),u=Array.from(t.values());for(let c=0;cjx(d,f,void 0,e,t,r,n));if(p===-1)return!1;u.splice(p,1)}return!0}case Ow:case Iw:case Dw:case jw:case $w:case zz:case Lw:case zw:case Bw:case Bz:case Fw:case Uw:if(gv(e)!==gv(t)||e.length!==t.length)return!1;for(let l=0;le*o)return!1;var a=r();return e*(t-e*a/2-n)>=0&&e*(t+e*a/2-o)<=0}function LK(e,t){return cC(e,t+1)}function zK(e,t,r,n,o){for(var a=(n||[]).slice(),i=t.start,s=t.end,l=0,u=1,c=i,d=function(){var m=n?.[l];if(m===void 0)return{v:cC(n,u)};var y=l,b,g=()=>(b===void 0&&(b=r(m,y)),b),h=m.coordinate,v=l===0||$p(e,h,g,c,s);v||(l=0,c=i,u+=1),v&&(c=h+e*(g()/2+o),l+=u)},p;u<=a.length;)if(p=d(),p)return p.v;return[]}function BK(e,t,r,n,o){var a=(n||[]).slice(),i=a.length;if(i===0)return[];for(var s=t.start,l=t.end,u=1;u<=i;u++){for(var c=(i-1)%u,d=s,p=!0,f=function(){var x=n[y];if(x==null)return 0;var S=y,k,w=()=>(k===void 0&&(k=r(x,S)),k),_=x.coordinate,A=y===c||$p(e,_,w,d,l);if(!A)return p=!1,1;A&&(d=_+e*(w()/2+o))},m,y=c;y(y===void 0&&(y=r(f,p)),y);if(p===i-1){var g=e*(m.coordinate+e*b()/2-l);a[p]=m=ca(ca({},m),{},{tickCoord:g>0?m.coordinate-g*e:m.coordinate})}else a[p]=m=ca(ca({},m),{},{tickCoord:m.coordinate});if(m.tickCoord!=null){var h=$p(e,m.tickCoord,b,s,l);h&&(l=m.tickCoord-e*(b()/2+o),a[p]=ca(ca({},m),{},{isShow:!0}))}},c=i-1;c>=0;c--)u(c);return a}function Gve(e,t,r,n,o,a){var i=(n||[]).slice(),s=i.length,l=t.start,u=t.end;if(a){var c=n[s-1];if(c!=null){var d=r(c,s-1),p=e*(c.coordinate+e*d/2-u);if(i[s-1]=c=ca(ca({},c),{},{tickCoord:p>0?c.coordinate-p*e:c.coordinate}),c.tickCoord!=null){var f=$p(e,c.tickCoord,()=>d,l,u);f&&(u=c.tickCoord-e*(d/2+o),i[s-1]=ca(ca({},c),{},{isShow:!0}))}}}for(var m=a?s-1:s,y=function(h){var v=i[h];if(v==null)return 1;var x=v,S,k=()=>(S===void 0&&(S=r(v,h)),S);if(h===0){var w=e*(x.coordinate-e*k()/2-l);i[h]=x=ca(ca({},x),{},{tickCoord:w<0?x.coordinate-w*e:x.coordinate})}else i[h]=x=ca(ca({},x),{},{tickCoord:x.coordinate});if(x.tickCoord!=null){var _=$p(e,x.tickCoord,k,l,u);_&&(l=x.tickCoord+e*(k()/2+o),i[h]=ca(ca({},x),{},{isShow:!0}))}},b=0;b{var w=typeof u=="function"?u(S.value,k):S.value;return m==="width"?jK(Op(w,{fontSize:t,letterSpacing:r}),y,d):Op(w,{fontSize:t,letterSpacing:r})[m]},g=o[0],h=o[1],v=o.length>=2&&g!=null&&h!=null?Qr(h.coordinate-g.coordinate):1,x=$K(a,v,m);return l==="equidistantPreserveStart"?zK(v,x,b,o,i):l==="equidistantPreserveEnd"?BK(v,x,b,o,i):(l==="preserveStart"||l==="preserveStartEnd"?f=Gve(v,x,b,o,i,l==="preserveStartEnd"):f=Vve(v,x,b,o,i),f.filter(S=>S.isShow))}var UK=e=>{var t=e.ticks,r=e.label,n=e.labelGapWithTick,o=n===void 0?5:n,a=e.tickSize,i=a===void 0?0:a,s=e.tickMargin,l=s===void 0?0:s,u=0;if(t){Array.from(t).forEach(f=>{if(f){var m=f.getBoundingClientRect();m.width>u&&(u=m.width)}});var c=r?r.getBoundingClientRect().width:0,d=i+l,p=u+d+c+(r?o:0);return Math.round(p)}return 0};var WK=e=>{var t=e.ticks,r=e.label,n=e.labelGapWithTick,o=n===void 0?5:n,a=e.tickSize,i=a===void 0?0:a,s=e.tickMargin,l=s===void 0?0:s,u=0;if(t){Array.from(t).forEach(f=>{if(f){var m=f.getBoundingClientRect();m.height>u&&(u=m.height)}});var c=r?r.getBoundingClientRect().height:0,d=i+l,p=u+d+c+(r?o:0);return Math.round(p)}return 0};var Yve={xAxis:{},yAxis:{}},HK=Cr({name:"renderedTicks",initialState:Yve,reducers:{setRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,o=r.axisId,a=r.ticks;e[n][o]=Zt(a)},removeRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,o=r.axisId;delete e[n][o]}}}),qK=HK.actions,KK=qK.setRenderedTicks,VK=qK.removeRenderedTicks;var GK=HK.reducer;var Xve=["axisLine","width","height","className","hide","ticks","axisType","axisId"];function YK(e,t){return Rve(e)||Qve(e,t)||Jve(e,t)||Zve()}function Zve(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Jve(e,t){if(e){if(typeof e=="string")return XK(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?XK(e,t):void 0}}function XK(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{if(!(n==null||r==null)){var i=t.map(l=>({value:l.value,coordinate:l.coordinate,offset:l.offset,index:l.index})),s=a.current;s!=null&&s.axisId===n&&s.axisType===r&&f5(s.ticks,i)||(a.current={ticks:i,axisId:n,axisType:r},o(KK({ticks:i,axisId:n,axisType:r})))}},[o,t,n,r]),(0,da.useEffect)(()=>n==null||r==null?_a:()=>{o(VK({axisId:n,axisType:r}))},[o,n,r]),null}var dxe=(0,da.forwardRef)((e,t)=>{var r=e.ticks,n=r===void 0?[]:r,o=e.tick,a=e.tickLine,i=e.stroke,s=e.tickFormatter,l=e.unit,u=e.padding,c=e.tickTextProps,d=e.orientation,p=e.mirror,f=e.x,m=e.y,y=e.width,b=e.height,g=e.tickSize,h=e.tickMargin,v=e.fontSize,x=e.letterSpacing,S=e.getTicksConfig,k=e.events,w=e.axisType,_=e.axisId,A=Lx(Yn(Yn({},S),{},{ticks:n}),v,x),C=hn(S),N=hi(o),L=D_(C.textAnchor)?C.textAnchor:sxe(d,p),J=lxe(d,p),B={};typeof a=="object"&&(B=a);var K=Yn(Yn({},C),{},{fill:"none"},B),T=A.map(M=>Yn({entry:M},ixe(M,f,m,y,b,d,g,p,h))),P=T.map(M=>{var j=M.entry,O=M.line;return xn.createElement(br,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(j.value,"-").concat(j.coordinate,"-").concat(j.tickCoord)},a&&xn.createElement("line",Lp({},K,O,{className:bt("recharts-cartesian-axis-tick-line",Uo(a,"className"))})))}),I=T.map((M,j)=>{var O,F,V=M.entry,z=M.tick,G=Yn(Yn(Yn(Yn({verticalAnchor:J},C),{},{textAnchor:L,stroke:"none",fill:i},z),{},{index:j,payload:V,visibleTicksCount:A.length,tickFormatter:s,padding:u},c),{},{angle:(O=(F=c?.angle)!==null&&F!==void 0?F:C.angle)!==null&&O!==void 0?O:0}),q=Yn(Yn({},G),N);return xn.createElement(br,Lp({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(V.value,"-").concat(V.coordinate,"-").concat(V.tickCoord)},iu(k,V,j)),o&&xn.createElement(uxe,{option:o,tickProps:q,value:"".concat(typeof s=="function"?s(V.value,j):V.value).concat(l||"")}))});return xn.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(w,"-ticks")},xn.createElement(cxe,{ticks:A,axisId:_,axisType:w}),I.length>0&&xn.createElement(sn,{zIndex:ir.label},xn.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(w,"-tick-labels"),ref:t},I)),P.length>0&&xn.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(w,"-tick-lines")},P))}),pxe=(0,da.forwardRef)((e,t)=>{var r=e.axisLine,n=e.width,o=e.height,a=e.className,i=e.hide,s=e.ticks,l=e.axisType,u=e.axisId,c=exe(e,Xve),d=(0,da.useState)(""),p=YK(d,2),f=p[0],m=p[1],y=(0,da.useState)(""),b=YK(y,2),g=b[0],h=b[1],v=(0,da.useRef)(null);(0,da.useImperativeHandle)(t,()=>({getCalculatedWidth:()=>{var S;return UK({ticks:v.current,label:(S=e.labelRef)===null||S===void 0?void 0:S.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})},getCalculatedHeight:()=>{var S;return WK({ticks:v.current,label:(S=e.labelRef)===null||S===void 0?void 0:S.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}}));var x=(0,da.useCallback)(S=>{if(S){var k=S.getElementsByClassName("recharts-cartesian-axis-tick-value");v.current=k;var w=k[0];if(w){var _=window.getComputedStyle(w),A=_.fontSize,C=_.letterSpacing;(A!==f||C!==g)&&(m(A),h(C))}}},[f,g]);return i||n!=null&&n<=0||o!=null&&o<=0?null:xn.createElement(sn,{zIndex:e.zIndex},xn.createElement(br,{className:bt("recharts-cartesian-axis",a)},xn.createElement(axe,{x:e.x,y:e.y,width:n,height:o,orientation:e.orientation,mirror:e.mirror,axisLine:r,otherSvgProps:hn(e)}),xn.createElement(dxe,{ref:x,axisType:l,events:c,fontSize:f,getTicksConfig:e,height:e.height,letterSpacing:g,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:s,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:u}),xn.createElement(aq,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},xn.createElement(uq,{label:e.label,labelRef:e.labelRef}),e.children)))}),zx=xn.forwardRef((e,t)=>{var r=nr(e,ss);return xn.createElement(pxe,Lp({},r,{ref:t}))});zx.displayName="CartesianAxis";var Xn=Z(Q());var dC=Z(Q());var JK={grid:{stroke:"#ccc",fill:"none"}};var QK=(0,dC.createContext)(JK),RWe=QK.Provider,RK=()=>(0,dC.useContext)(QK);var fxe=["x1","y1","x2","y2","key"],mxe=["offset"],gxe=["xAxisId","yAxisId"],hxe=["xAxisId","yAxisId"];function eV(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function pa(e){for(var t=1;t{var t=e.fill;if(!t||t==="none")return null;var r=e.fillOpacity,n=e.x,o=e.y,a=e.width,i=e.height,s=e.ry;return Xn.createElement("rect",{x:n,y:o,ry:s,width:a,height:i,stroke:"none",fill:t,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function tV(e){var t=e.option,r=e.lineItemProps,n;if(Xn.isValidElement(t))n=Xn.cloneElement(t,r);else if(typeof t=="function")n=t(r);else{var o,a=r.x1,i=r.y1,s=r.x2,l=r.y2,u=r.key,c=pC(r,fxe),d=(o=hn(c))!==null&&o!==void 0?o:{},p=d.offset,f=pC(d,mxe),m=Array.isArray(f.strokeDasharray)?f.strokeDasharray.join(","):f.strokeDasharray;n=Xn.createElement("line",zp({},f,{strokeDasharray:m,x1:a,y1:i,x2:s,y2:l,fill:"none",key:u}))}return n}function Sxe(e){var t=e.x,r=e.width,n=e.horizontal,o=n===void 0?!0:n,a=e.horizontalPoints;if(!o||!a||!a.length)return null;var i=e.xAxisId,s=e.yAxisId,l=pC(e,gxe),u=a.map((c,d)=>{var p=pa(pa({},l),{},{x1:t,y1:c,x2:t+r,y2:c,key:"line-".concat(d),index:d});return Xn.createElement(tV,{key:"line-".concat(d),option:o,lineItemProps:p})});return Xn.createElement("g",{className:"recharts-cartesian-grid-horizontal"},u)}function kxe(e){var t=e.y,r=e.height,n=e.vertical,o=n===void 0?!0:n,a=e.verticalPoints;if(!o||!a||!a.length)return null;var i=e.xAxisId,s=e.yAxisId,l=pC(e,hxe),u=a.map((c,d)=>{var p=pa(pa({},l),{},{x1:c,y1:t,x2:c,y2:t+r,key:"line-".concat(d),index:d});return Xn.createElement(tV,{option:o,lineItemProps:p,key:"line-".concat(d)})});return Xn.createElement("g",{className:"recharts-cartesian-grid-vertical"},u)}function _xe(e){var t=e.horizontalFill,r=e.fillOpacity,n=e.x,o=e.y,a=e.width,i=e.height,s=e.horizontalPoints,l=e.horizontal,u=l===void 0?!0:l;if(!u||!t||!t.length||s==null)return null;var c=s.map(p=>Math.round(p+o-o)).sort((p,f)=>p-f);o!==c[0]&&c.unshift(0);var d=c.map((p,f)=>{var m=c[f+1],y=m==null,b=y?o+i-p:m-p;if(b<=0)return null;var g=f%t.length;return Xn.createElement("rect",{key:"react-".concat(f),y:p,x:n,height:b,width:a,stroke:"none",fill:t[g],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return Xn.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},d)}function Cxe(e){var t=e.vertical,r=t===void 0?!0:t,n=e.verticalFill,o=e.fillOpacity,a=e.x,i=e.y,s=e.width,l=e.height,u=e.verticalPoints;if(!r||!n||!n.length)return null;var c=u.map(p=>Math.round(p+a-a)).sort((p,f)=>p-f);a!==c[0]&&c.unshift(0);var d=c.map((p,f)=>{var m=c[f+1],y=m==null,b=y?a+s-p:m-p;if(b<=0)return null;var g=f%n.length;return Xn.createElement("rect",{key:"react-".concat(f),x:p,y:i,width:b,height:l,stroke:"none",fill:n[g],fillOpacity:o,className:"recharts-cartesian-grid-bg"})});return Xn.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},d)}var Axe=(e,t)=>{var r=e.xAxis,n=e.width,o=e.height,a=e.offset;return FO(Lx(pa(pa(pa({},ss),r),{},{ticks:UO(r,!0),viewBox:{x:0,y:0,width:n,height:o}})),a.left,a.left+a.width,t)},Exe=(e,t)=>{var r=e.yAxis,n=e.width,o=e.height,a=e.offset;return FO(Lx(pa(pa(pa({},ss),r),{},{ticks:UO(r,!0),viewBox:{x:0,y:0,width:n,height:o}})),a.top,a.top+a.height,t)},Nxe={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:ir.grid};function Cu(e){var t,r,n,o,a,i,s=ng(),l=og(),u=DS(),c=pa(pa({},nr(e,Nxe)),{},{x:De(e.x)?e.x:u.left,y:De(e.y)?e.y:u.top,width:De(e.width)?e.width:u.width,height:De(e.height)?e.height:u.height}),d=c.xAxisId,p=c.yAxisId,f=c.x,m=c.y,y=c.width,b=c.height,g=c.syncWithTicks,h=c.horizontalValues,v=c.verticalValues,x=Ar(),S=$e(P=>EM(P,"xAxis",d,x)),k=$e(P=>EM(P,"yAxis",p,x)),w=RK(),_={stroke:(t=c.stroke)!==null&&t!==void 0?t:w.grid.stroke,strokeWidth:(r=c.strokeWidth)!==null&&r!==void 0?r:w.grid.strokeWidth,strokeOpacity:(n=c.strokeOpacity)!==null&&n!==void 0?n:w.grid.strokeOpacity,strokeDasharray:(o=c.strokeDasharray)!==null&&o!==void 0?o:w.grid.strokeDasharray};if(!Va(y)||!Va(b)||!De(f)||!De(m))return null;var A=c.verticalCoordinatesGenerator||Axe,C=c.horizontalCoordinatesGenerator||Exe,N=c.horizontalPoints,L=c.verticalPoints;if((!N||!N.length)&&typeof C=="function"){var J=h&&h.length,B=C({yAxis:k?pa(pa({},k),{},{ticks:J?h:k.ticks}):void 0,width:s??y,height:l??b,offset:u},J?!0:g);rg(Array.isArray(B),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof B,"]")),Array.isArray(B)&&(N=B)}if((!L||!L.length)&&typeof A=="function"){var K=v&&v.length,T=A({xAxis:S?pa(pa({},S),{},{ticks:K?v:S.ticks}):void 0,width:s??y,height:l??b,offset:u},K?!0:g);rg(Array.isArray(T),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof T,"]")),Array.isArray(T)&&(L=T)}return Xn.createElement(sn,{zIndex:c.zIndex},Xn.createElement("g",{className:"recharts-cartesian-grid"},Xn.createElement(wxe,{fill:(a=c.fill)!==null&&a!==void 0?a:w.grid.fill,fillOpacity:(i=c.fillOpacity)!==null&&i!==void 0?i:w.grid.fillOpacity,x:c.x,y:c.y,width:c.width,height:c.height,ry:c.ry}),Xn.createElement(_xe,zp({},c,{horizontalPoints:N})),Xn.createElement(Cxe,zp({},c,{verticalPoints:L})),Xn.createElement(Sxe,zp({},c,_,{offset:u,horizontalPoints:N,xAxis:S,yAxis:k})),Xn.createElement(kxe,zp({},c,_,{offset:u,verticalPoints:L,xAxis:S,yAxis:k}))))}Cu.displayName="CartesianGrid";var Sr=Z(Q()),Au=Z(Q());var rV=Z(Q());var Txe=["animationElapsedTime","isAnimating","isEntrance","visibleLength","strokeDasharray","connectNulls"];function m5(){return m5=Object.assign?Object.assign.bind():function(e){for(var t=1;tf+m,0);if(!o)return nV(t,e);for(var a=Math.floor(e/o),i=e%o,s=[],l=0,u=0;li){s=[...n.slice(0,l),i-u];break}}var p=s.length%2===0?[0,t]:[t];return[...Dxe(n,a),...s,...p].map(f=>"".concat(f,"px")).join(", ")}function $xe(e,t,r){if(e){var n="".concat(e).split(/[,\s]+/gim).map(o=>parseFloat(o));return jxe(r,t,n)}return nV(t,r)}function oV(e){var t=e.animationElapsedTime,r=e.isAnimating,n=e.isEntrance,o=e.visibleLength,a=e.strokeDasharray,i=e.connectNulls,s=Oxe(e,Txe),l=i??!1,u;if(o!=null){var c,d=s.pathRef,p=Mxe((c=d?.current)!==null&&c!==void 0?c:null);u=$xe(a,p,o)}else a!=null&&(u=String(a));return rV.createElement(ul,m5({},s,{connectNulls:l,strokeDasharray:u}))}var Bp=Z(Q());function aV(e){var t=(0,Bp.useRef)(0),r=(0,Bp.useRef)(0),n=(0,Bp.useRef)(!1),o=(0,Bp.useRef)(e);return o.current!==e&&(t.current=r.current,o.current=e),(0,Bp.useCallback)((a,i)=>{if(n.current)return null;var s=Math.min(Gi(t.current+a*i),i);return a>0&&i>0&&(r.current=Math.max(r.current,s),s>=i)?(n.current=!0,null):s},[])}var lV=Z(Q()),Bx=Z(Q());var Lxe={},iV=Cr({name:"errorBars",initialState:Lxe,reducers:{addErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,o=r.errorBar;e[n]||(e[n]=[]),e[n].push(o)},replaceErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,o=r.prev,a=r.next;e[n]&&(e[n]=e[n].map(i=>i.dataKey===o.dataKey&&i.direction===o.direction?a:i))},removeErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,o=r.errorBar;e[n]&&(e[n]=e[n].filter(a=>a.dataKey!==o.dataKey||a.direction!==o.direction))}}}),g5=iV.actions,SHe=g5.addErrorBar,kHe=g5.replaceErrorBar,_He=g5.removeErrorBar;var sV=iV.reducer;var zxe=["children"];function Bxe(e,t){if(e==null)return{};var r,n,o=Fxe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n({x:0,y:0,value:0}),errorBarOffset:0},Wxe=(0,Bx.createContext)(Uxe);function fC(e){var t=e.children,r=Bxe(e,zxe);return lV.createElement(Wxe.Provider,{value:r},t)}var h5=Z(Q());function Fp(e,t){var r,n,o=$e(u=>hl(u,e)),a=$e(u=>yl(u,t)),i=(r=o?.allowDataOverflow)!==null&&r!==void 0?r:io.allowDataOverflow,s=(n=a?.allowDataOverflow)!==null&&n!==void 0?n:so.allowDataOverflow,l=i||s;return{needClip:l,needClipX:i,needClipY:s}}function Jg(e){var t=e.xAxisId,r=e.yAxisId,n=e.clipPathId,o=Jc(),a=Fp(t,r),i=a.needClipX,s=a.needClipY,l=a.needClip,u=$e(v=>yM(v,t,!1)),c=$e(v=>vM(v,r,!1));if(!l||!o)return null;var d=o.x,p=o.y,f=o.width,m=o.height,y=i&&u?Math.min(u[0],u[1]):d-f/2,b=s&&c?Math.min(c[0],c[1]):p-m/2,g=i&&u?Math.abs(u[1]-u[0]):f*2,h=s&&c?Math.abs(c[1]-c[0]):m*2;return h5.createElement("clipPath",{id:"clipPath-".concat(n)},h5.createElement("rect",{x:y,y:b,width:g,height:h}))}var uV=(e,t,r,n)=>Ni(e,"xAxis",t,n),cV=(e,t,r,n)=>Ei(e,"xAxis",t,n),dV=(e,t,r,n)=>Ni(e,"yAxis",r,n),pV=(e,t,r,n)=>Ei(e,"yAxis",r,n),Hxe=ae([Bt,uV,dV,cV,pV],(e,t,r,n,o)=>la(e,"xAxis")?Qi(t,n,!1):Qi(r,o,!1)),qxe=(e,t,r,n,o)=>o;function Kxe(e){return e.type==="line"}var Vxe=ae([$c,qxe],(e,t)=>e.filter(Kxe).find(r=>r.id===t)),fV=ae([Bt,uV,dV,cV,pV,Vxe,Hxe,up],(e,t,r,n,o,a,i,s)=>{var l=s.chartData,u=s.dataStartIndex,c=s.dataEndIndex;if(!(a==null||t==null||r==null||n==null||o==null||n.length===0||o.length===0||i==null||e!=="horizontal"&&e!=="vertical")){var d=a.dataKey,p=a.data,f;if(p!=null&&p.length>0?f=p:f=l?.slice(u,c+1),f!=null)return mV({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:o,dataKey:d,bandSize:i,displayedData:f})}});function mC(e){var t=hi(e),r=3,n=2;if(t!=null){var o=t.r,a=t.strokeWidth,i=Number(o),s=Number(a);return(Number.isNaN(i)||i<0)&&(i=r),(Number.isNaN(s)||s<0)&&(s=n),{r:i,strokeWidth:s}}return{r,strokeWidth:n}}var Gxe=["id"],Yxe=["type","layout","connectNulls","needClip","shape","strokeDasharray"],Xxe=["activeDot","animateNewValues","animationBegin","animationDuration","animationEasing","connectNulls","dot","hide","isAnimationActive","label","legendType","xAxisId","yAxisId","id"];function gC(){return gC=Object.assign?Object.assign.bind():function(e){for(var t=1;t0?t/r:0}var r0e=(e,t)=>{if(e==null)return[];if(t===1)return e.flatMap(s=>s.status==="removed"?[]:[s.next]);var r=t0e(e),n=[];for(var o of e)if(o.status==="matched")n.push(vl(vl({},o.next),{},{x:_r(o.prev.x,o.next.x,t),y:_r(o.prev.y,o.next.y,t)}));else if(o.status==="added")if(o.next.x!=null){var a=o.next.x-r;n.push(vl(vl({},o.next),{},{x:_r(a,o.next.x,t),y:o.next.y}))}else n.push(o.next);else if(o.status==="removed"&&o.prev.x!=null){var i=o.prev.x+r;n.push(vl(vl({},o.prev),{},{x:_r(o.prev.x,i,t),y:o.prev.y}))}return n},x5={activeDot:!0,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",animationInterpolateFn:r0e,animationMatchBy:Dp,connectNulls:!1,dot:!0,fill:"#fff",hide:!1,isAnimationActive:"auto",label:!1,legendType:"line",shape:oV,stroke:"#3182bd",strokeWidth:1,xAxisId:0,yAxisId:0,zIndex:ir.line,type:"linear"},n0e=e=>{var t=e.dataKey,r=e.name,n=e.stroke,o=e.legendType,a=e.hide;return[{inactive:a,dataKey:t,type:o,color:n,value:wi(r,t),payload:e}]},o0e=Sr.memo(e=>{var t=e.dataKey,r=e.data,n=e.stroke,o=e.strokeWidth,a=e.fill,i=e.name,s=e.hide,l=e.unit,u=e.formatter,c=e.tooltipType,d=e.id,p={dataDefinedOnItem:r,getPosition:_a,settings:{stroke:n,strokeWidth:o,fill:a,dataKey:t,nameKey:void 0,name:wi(i,t),hide:s,type:c,color:n,unit:l,formatter:u,graphicalItemId:d}};return Sr.createElement(Vc,{tooltipEntrySettings:p})});function a0e(e){var t=e.clipPathId,r=e.points,n=e.props,o=n.dot,a=n.dataKey,i=n.needClip,s=n.id,l=v5(n,Gxe),u=hn(l);return Sr.createElement(aC,{points:r,dot:o,className:"recharts-line-dots",dotClassName:"recharts-line-dot",dataKey:a,baseProps:u,needClip:i,clipPathId:t})}function i0e(e){var t=e.showLabels,r=e.children,n=e.points,o=(0,Au.useMemo)(()=>n?.map(a=>{var i,s,l={x:(i=a.x)!==null&&i!==void 0?i:0,y:(s=a.y)!==null&&s!==void 0?s:0,width:0,lowerWidth:0,upperWidth:0,height:0};return vl(vl({},l),{},{value:a.value,payload:a.payload,viewBox:l,parentViewBox:void 0,fill:void 0})}),[n]);return Sr.createElement(Wg,{value:t?o:void 0},r)}function s0e(e){var t=e.clipPathId,r=e.pathRef,n=e.points,o=e.props,a=e.animationElapsedTime,i=e.isAnimating,s=e.isEntrance,l=e.visibleLength,u=o.type,c=o.layout,d=o.connectNulls,p=o.needClip,f=o.shape,m=o.strokeDasharray,y=v5(o,Yxe),b=vl(vl({},yn(y)),{},{fill:"none",className:"recharts-line-curve",clipPath:p?"url(#clipPath-".concat(t,")"):void 0,points:n,type:u,layout:c,connectNulls:d,strokeDasharray:m??o.strokeDasharray,pathRef:r,animationElapsedTime:a,isAnimating:i,isEntrance:o.animateNewValues?s:!1,visibleLength:l});return Sr.createElement(Sr.Fragment,null,n?.length>1&&Sr.createElement(Kc,{option:f,DefaultShape:x5.shape,shapeProps:b}),Sr.createElement(a0e,{points:n,clipPathId:t,props:o}))}function l0e(e){var t=e.clipPathId,r=e.props,n=e.pathRef,o=e.previousPointsRef,a=r.points,i=r.isAnimationActive,s=r.animationBegin,l=r.animationDuration,u=r.animationEasing,c=r.animationMatchBy,d=r.animationInterpolateFn,p=r.layout,f=e0e(n.current),m=Yc(r.onAnimationStart,r.onAnimationEnd),y=m.isAnimating,b=m.handleAnimationStart,g=m.handleAnimationEnd,h=!y,v=aV(a),x=(0,Au.useCallback)(S=>S>0&&f>0,[f]);return Sr.createElement(i0e,{points:a,showLabels:h},r.children,Sr.createElement(Xc,{animationInput:a,animationIdPrefix:"recharts-line-",items:a,previousItemsRef:o,isAnimationActive:i,animationBegin:s,animationDuration:l,animationEasing:u,onAnimationStart:b,onAnimationEnd:g,animationInterpolateFn:d,animationMatchBy:c,shouldUpdatePreviousRef:x,layout:p},(S,k,w)=>{var _=y||k<1,A=_?v(k,f):null;return Sr.createElement(s0e,{props:r,points:S,clipPathId:t,pathRef:n,animationElapsedTime:k,isAnimating:_,isEntrance:w,visibleLength:A})}),Sr.createElement(qc,{label:r.label}))}function u0e(e){var t=e.clipPathId,r=e.props,n=(0,Au.useRef)(null),o=(0,Au.useRef)(null);return Sr.createElement(l0e,{props:r,clipPathId:t,previousPointsRef:n,pathRef:o})}var c0e=(e,t)=>{var r,n;return{x:(r=e.x)!==null&&r!==void 0?r:void 0,y:(n=e.y)!==null&&n!==void 0?n:void 0,value:e.value,errorVal:Ht(e.payload,t)}},y5=class extends Au.Component{render(){var t=this.props,r=t.hide,n=t.dot,o=t.points,a=t.className,i=t.xAxisId,s=t.yAxisId,l=t.top,u=t.left,c=t.width,d=t.height,p=t.id,f=t.needClip,m=t.zIndex;if(r)return null;var y=bt("recharts-line",a),b=p,g=mC(n),h=g.r,v=g.strokeWidth,x=Hg(n),S=h*2+v,k=f?"url(#clipPath-".concat(x?"":"dots-").concat(b,")"):void 0;return Sr.createElement(sn,{zIndex:m},Sr.createElement(br,{className:y},f&&Sr.createElement("defs",null,Sr.createElement(Jg,{clipPathId:b,xAxisId:i,yAxisId:s}),!x&&Sr.createElement("clipPath",{id:"clipPath-dots-".concat(b)},Sr.createElement("rect",{x:u-S/2,y:l-S/2,width:c+S,height:d+S}))),Sr.createElement(fC,{xAxisId:i,yAxisId:s,data:o,dataPointFormatter:c0e,errorBarOffset:0},Sr.createElement(u0e,{props:this.props,clipPathId:b}))),Sr.createElement(Mx,{activeDot:this.props.activeDot,points:o,mainColor:this.props.stroke,itemDataKey:this.props.dataKey,clipPath:k}))}};function d0e(e){var t=nr(e,x5),r=t.activeDot,n=t.animateNewValues,o=t.animationBegin,a=t.animationDuration,i=t.animationEasing,s=t.connectNulls,l=t.dot,u=t.hide,c=t.isAnimationActive,d=t.label,p=t.legendType,f=t.xAxisId,m=t.yAxisId,y=t.id,b=v5(t,Xxe),g=Fp(f,m),h=g.needClip,v=Jc(),x=Ya(),S=Ar(),k=$e(N=>fV(N,f,m,S,y));if(x!=="horizontal"&&x!=="vertical"||k==null||v==null)return null;var w=v.height,_=v.width,A=v.x,C=v.y;return Sr.createElement(y5,gC({},b,{id:y,connectNulls:s,dot:l,activeDot:r,animateNewValues:n,animationBegin:o,animationDuration:a,animationEasing:i,isAnimationActive:c,hide:u,label:d,legendType:p,xAxisId:f,yAxisId:m,points:k,layout:x,height:w,width:_,left:A,top:C,needClip:h}))}function mV(e){var t=e.layout,r=e.xAxis,n=e.yAxis,o=e.xAxisTicks,a=e.yAxisTicks,i=e.dataKey,s=e.bandSize,l=e.displayedData;return l.map((u,c)=>{var d=Ht(u,i);if(t==="horizontal"){var p=Zm({axis:r,ticks:o,bandSize:s,entry:u,index:c}),f=ar(d)?null:n.scale.map(d);return{x:p,y:f??null,value:d,payload:u}}var m=ar(d)?null:r.scale.map(d),y=Zm({axis:n,ticks:a,bandSize:s,entry:u,index:c});return m==null||y==null?null:{x:m,y,value:d,payload:u}}).filter(Boolean)}function p0e(e){var t=nr(e,x5),r=Ar();return Sr.createElement(Zc,{id:t.id,type:"line"},n=>Sr.createElement(Sr.Fragment,null,Sr.createElement(Kg,{legendPayload:n0e(t)}),Sr.createElement(o0e,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:n}),Sr.createElement(Yg,{type:"line",id:n,data:t.data,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,hide:t.hide,isPanorama:r}),Sr.createElement(d0e,gC({},t,{id:n}))))}var hC=Sr.memo(p0e,Xa);hC.displayName="Line";var hr=Z(Q()),Up=Z(Q());function ls(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(o=>o.id===t))===null||n===void 0?void 0:n.xAxisId)!==null&&r!==void 0?r:c5}function us(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(o=>o.id===t))===null||n===void 0?void 0:n.yAxisId)!==null&&r!==void 0?r:c5}var hV=(e,t,r)=>Ni(e,"xAxis",ls(e,t),r),yV=(e,t,r)=>Ei(e,"xAxis",ls(e,t),r),vV=(e,t,r)=>Ni(e,"yAxis",us(e,t),r),xV=(e,t,r)=>Ei(e,"yAxis",us(e,t),r),f0e=ae([Bt,hV,vV,yV,xV],(e,t,r,n,o)=>la(e,"xAxis")?Qi(t,n,!1):Qi(r,o,!1)),m0e=(e,t)=>t,b5=ae([$c,m0e],(e,t)=>e.filter(r=>r.type==="area").find(r=>r.id===t)),bV=e=>{var t=Bt(e),r=la(t,"xAxis");return r?"yAxis":"xAxis"},g0e=(e,t)=>{var r=bV(e);return r==="yAxis"?us(e,t):ls(e,t)},wV=(e,t,r)=>Tg(e,bV(e),g0e(e,t),r),h0e=ae([b5,wV],(e,t)=>{var r;if(!(e==null||t==null)){var n=e.stackId,o=Tc(e);if(!(n==null||o==null)){var a=(r=t[n])===null||r===void 0?void 0:r.stackedData,i=a?.find(s=>s.key===o);if(i!=null)return i.map(s=>[s[0],s[1]])}}}),y0e=ae([b5,wV],(e,t)=>{if(!(e==null||e.stackId==null||t==null)){var r=t[e.stackId];if(r!=null)return r.graphicalItems.map(n=>n.dataKey).filter(Ao)}}),SV=ae([Bt,hV,vV,yV,xV,h0e,rk,f0e,b5,EF,y0e],(e,t,r,n,o,a,i,s,l,u,c)=>{var d=i.chartData,p=i.dataStartIndex,f=i.dataEndIndex;if(!(l==null||e!=="horizontal"&&e!=="vertical"||t==null||r==null||n==null||o==null||n.length===0||o.length===0||s==null)){var m=l.data,y;if(m&&m.length>0?y=m:y=d?.slice(p,f+1),y!=null)return kV({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:o,dataStartIndex:p,areaSettings:l,stackedData:a,displayedData:y,chartBaseValue:u,bandSize:s,stackDataKeys:c})}});var fa=Z(Q());var v0e=["animationElapsedTime","isAnimating","isEntrance","layout","isRange","stroke","connectNulls"],x0e=["id","baseLine"];function Fx(){return Fx=Object.assign?Object.assign.bind():function(e){for(var t=1;td.y||0));return De(o)?c=Math.max(o,c):o&&Array.isArray(o)&&o.length&&(c=Math.max(...o.map(d=>d.y||0),c)),De(c)?fa.createElement("rect",{x:sd.x||0));return De(o)?c=Math.max(o,c):o&&Array.isArray(o)&&o.length&&(c=Math.max(...o.map(d=>d.x||0),c)),De(c)?fa.createElement("rect",{x:0,y:se==null?[]:t===1?e.flatMap(r=>r.status==="removed"?[]:[r.next]):e.flatMap(r=>r.status==="matched"?[Qg(Qg({},r.next),{},{x:_r(r.prev.x,r.next.x,t),y:_r(r.prev.y,r.next.y,t)})]:r.status==="added"?[r.next]:[]),NV={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",animationMatchBy:Dp,animationInterpolateFn:O0e,connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,shape:CV,xAxisId:0,yAxisId:0,zIndex:ir.area};function vC(e,t){return e&&e!=="none"?e:t}var P0e=e=>{var t=e.dataKey,r=e.name,n=e.stroke,o=e.fill,a=e.legendType,i=e.hide;return[{inactive:i,dataKey:t,type:a,color:vC(n,o),value:wi(r,t),payload:e}]},M0e=hr.memo(e=>{var t=e.dataKey,r=e.data,n=e.stroke,o=e.strokeWidth,a=e.fill,i=e.name,s=e.hide,l=e.unit,u=e.formatter,c=e.tooltipType,d=e.id,p={dataDefinedOnItem:r,getPosition:_a,settings:{stroke:n,strokeWidth:o,fill:a,dataKey:t,nameKey:void 0,name:wi(i,t),hide:s,type:c,color:vC(n,a),unit:l,formatter:u,graphicalItemId:d}};return hr.createElement(Vc,{tooltipEntrySettings:p})});function I0e(e){var t=e.clipPathId,r=e.points,n=e.props,o=n.needClip,a=n.dot,i=n.dataKey,s=hn(n);return hr.createElement(aC,{points:r,dot:a,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:i,baseProps:s,needClip:o,clipPathId:t})}function D0e(e){var t=e.showLabels,r=e.children,n=e.points,o=n.map(a=>{var i,s,l={x:(i=a.x)!==null&&i!==void 0?i:0,y:(s=a.y)!==null&&s!==void 0?s:0,width:0,lowerWidth:0,upperWidth:0,height:0};return Qg(Qg({},l),{},{value:a.value,payload:a.payload,parentViewBox:void 0,viewBox:l,fill:void 0})});return hr.createElement(Wg,{value:t?o:void 0},r)}function j0e(e){var t=e.points,r=e.baseLine,n=e.needClip,o=e.clipPathId,a=e.props,i=e.animationElapsedTime,s=e.isAnimating,l=e.isEntrance,u=a.layout,c=a.type,d=a.stroke,p=a.connectNulls,f=a.isRange,m=a.shape,y=a.id,b=EV(a,_0e),g=yn(b),h=Qg(Qg({},g),{},{id:y,points:t,connectNulls:p,type:c,baseLine:r,layout:u,stroke:d,isRange:f,animationElapsedTime:i,isAnimating:s,isEntrance:l});return hr.createElement(hr.Fragment,null,t?.length>1&&hr.createElement(br,{clipPath:n?"url(#clipPath-".concat(o,")"):void 0},hr.createElement(Kc,{option:m,DefaultShape:NV.shape,shapeProps:h})),hr.createElement(I0e,{points:t,props:b,clipPathId:o}))}function $0e(e,t,r){if(De(e)){var n=De(t)?t:void 0;return _r(n,e,r)}if(ar(e)||Wo(e)){var o=De(t)?t:void 0;return _r(o,0,r)}return e}function L0e(e){var t=e.needClip,r=e.clipPathId,n=e.props,o=e.previousPointsRef,a=e.previousBaselineRef,i=n.points,s=n.baseLine,l=n.isAnimationActive,u=n.animationBegin,c=n.animationDuration,d=n.animationEasing,p=n.animationMatchBy,f=n.animationInterpolateFn,m=(0,Up.useMemo)(()=>({points:i,baseLine:s}),[i,s]),y=Q_(m,a),b=ag(),g=Yc(n.onAnimationStart,n.onAnimationEnd),h=g.isAnimating,v=g.handleAnimationStart,x=g.handleAnimationEnd,S=y.startValue;if(b==null)return null;var k;return Array.isArray(s)&&Array.isArray(S)?k=Nx(S,s,p):Array.isArray(s)?k=Nx(null,s,p):k=null,hr.createElement(Xc,{animationInput:m,animationIdPrefix:"recharts-area-",items:i,previousItemsRef:o,isAnimationActive:l,animationBegin:u,animationDuration:c,animationEasing:d,onAnimationStart:v,onAnimationEnd:x,animationInterpolateFn:f,animationMatchBy:p,layout:b},(w,_,A)=>{var C;return _===1?C=s:Array.isArray(s)?C=f(k,_,b):C=A?s:$0e(s,S,_),y.syncStepValue(C,_),hr.createElement(D0e,{showLabels:!h,points:i},n.children,hr.createElement(j0e,{points:w,baseLine:C,needClip:t,clipPathId:r,props:n,animationElapsedTime:_,isAnimating:h||_<1,isEntrance:A}),hr.createElement(qc,{label:n.label}))})}function z0e(e){var t=e.needClip,r=e.clipPathId,n=e.props,o=(0,Up.useRef)(null),a=(0,Up.useRef)();return hr.createElement(L0e,{needClip:t,clipPathId:r,props:n,previousPointsRef:o,previousBaselineRef:a})}var w5=class extends Up.PureComponent{render(){var t=this.props,r=t.hide,n=t.dot,o=t.points,a=t.className,i=t.top,s=t.left,l=t.needClip,u=t.xAxisId,c=t.yAxisId,d=t.width,p=t.height,f=t.id,m=t.baseLine,y=t.zIndex;if(r)return null;var b=bt("recharts-area",a),g=f,h=mC(n),v=h.r,x=h.strokeWidth,S=Hg(n),k=v*2+x,w=l?"url(#clipPath-".concat(S?"":"dots-").concat(g,")"):void 0;return hr.createElement(sn,{zIndex:y},hr.createElement(br,{className:b},l&&hr.createElement("defs",null,hr.createElement(Jg,{clipPathId:g,xAxisId:u,yAxisId:c}),!S&&hr.createElement("clipPath",{id:"clipPath-dots-".concat(g)},hr.createElement("rect",{x:s-k/2,y:i-k/2,width:d+k,height:p+k}))),hr.createElement(z0e,{needClip:l,clipPathId:g,props:this.props})),hr.createElement(Mx,{points:o,mainColor:vC(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:w}),this.props.isRange&&Array.isArray(m)&&hr.createElement(Mx,{points:m,mainColor:vC(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:w}))}};function B0e(e){var t,r=e.activeDot,n=e.animationBegin,o=e.animationDuration,a=e.animationEasing,i=e.connectNulls,s=e.dot,l=e.fill,u=e.fillOpacity,c=e.hide,d=e.isAnimationActive,p=e.legendType,f=e.stroke,m=e.xAxisId,y=e.yAxisId,b=EV(e,C0e),g=Ya(),h=S_(),v=Fp(m,y),x=v.needClip,S=Ar(),k=(t=$e(K=>SV(K,e.id,S)))!==null&&t!==void 0?t:{},w=k.points,_=k.isRange,A=k.baseLine,C=Jc();if(g!=="horizontal"&&g!=="vertical"||C==null||h!=="AreaChart"&&h!=="ComposedChart")return null;var N=C.height,L=C.width,J=C.x,B=C.y;return!w||!w.length?null:hr.createElement(w5,yC({},b,{activeDot:r,animationBegin:n,animationDuration:o,animationEasing:a,baseLine:A,connectNulls:i,dot:s,fill:l,fillOpacity:u,height:N,hide:c,layout:g,isAnimationActive:d,isRange:_,legendType:p,needClip:x,points:w,stroke:f,width:L,left:J,top:B,xAxisId:m,yAxisId:y}))}var F0e=(e,t,r,n,o)=>{var a=r??t;if(De(a))return a;var i=e==="horizontal"?o:n,s=i.scale.domain();if(i.type==="number"){var l=Math.max(s[0],s[1]),u=Math.min(s[0],s[1]);return a==="dataMin"?u:a==="dataMax"||l<0?l:Math.max(Math.min(s[0],s[1]),0)}return a==="dataMin"?s[0]:a==="dataMax"?s[1]:s[0]};function kV(e){var t=e.areaSettings,r=t.connectNulls,n=t.baseValue,o=t.dataKey,a=e.stackedData,i=e.layout,s=e.chartBaseValue,l=e.xAxis,u=e.yAxis,c=e.displayedData,d=e.dataStartIndex,p=e.xAxisTicks,f=e.yAxisTicks,m=e.bandSize,y=e.stackDataKeys,b=a&&a.length,g=F0e(i,s,n,l,u),h=i==="horizontal",v=!1,x=c.map((k,w)=>{var _,A,C,N;if(b)N=a[d+w];else{var L=Ht(k,o);Array.isArray(L)?(N=L,v=!0):N=[g,L]}var J=(_=(A=N)===null||A===void 0?void 0:A[1])!==null&&_!==void 0?_:null,B=Ht(k,o),K=b&&B==null&&y!=null&&y.length>0&&y.every(I=>Ht(k,I)==null),T=J==null||b&&!r&&B==null||K;if(h){var P;return{x:Zm({axis:l,ticks:p,bandSize:m,entry:k,index:w}),y:T?null:(P=u.scale.map(J))!==null&&P!==void 0?P:null,value:N,payload:k}}return{x:T?null:(C=l.scale.map(J))!==null&&C!==void 0?C:null,y:Zm({axis:u,ticks:f,bandSize:m,entry:k,index:w}),value:N,payload:k}}),S;return b||v?S=x.map(k=>{var w,_=Array.isArray(k.value)?k.value[0]:null;if(h){var A;return{x:k.x,y:_!=null&&k.y!=null&&(A=u.scale.map(_))!==null&&A!==void 0?A:null,payload:k.payload}}return{x:_!=null&&(w=l.scale.map(_))!==null&&w!==void 0?w:null,y:k.y,payload:k.payload}}):S=h?u.scale.map(g):l.scale.map(g),{points:x,baseLine:S??0,isRange:v}}function U0e(e){var t=nr(e,NV),r=Ar();return hr.createElement(Zc,{id:t.id,type:"area"},n=>hr.createElement(hr.Fragment,null,hr.createElement(Kg,{legendPayload:P0e(t)}),hr.createElement(M0e,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:n}),hr.createElement(Yg,{type:"area",id:n,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:ES(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:r,connectNulls:t.connectNulls}),hr.createElement(B0e,yC({},t,{id:n}))))}var Eu=hr.memo(U0e,Xa);Eu.displayName="Area";var Rt=Z(Q()),Bs=Z(Q());var OV=Z(Q());var W0e=!0,S5="Invariant failed";function TV(e,t){if(!e){if(W0e)throw new Error(S5);var r=typeof t=="function"?t():t,n=r?"".concat(S5,": ").concat(r):S5;throw new Error(n)}}var H0e=["option"];function q0e(e,t){if(e==null)return{};var r,n,o=K0e(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n1&&arguments[1]!==void 0?arguments[1]:0;return(n,o)=>{if(De(t))return t;var a=De(n)||ar(n);return a?t(n,o):(a||TV(!1,"minPointSize callback function received a value with type of ".concat(typeof n,". Currently only numbers or null/undefined are supported.")),r)}};var V0e=(e,t,r)=>r,G0e=(e,t)=>t,Ux=ae([$c,G0e],(e,t)=>e.filter(r=>r.type==="bar").find(r=>r.id===t)),Y0e=ae([Ux],e=>e?.maxBarSize),X0e=(e,t,r,n)=>n,Z0e=ae([Bt,$c,ls,us,V0e],(e,t,r,n,o)=>t.filter(a=>e==="horizontal"?a.xAxisId===r:a.yAxisId===n).filter(a=>a.isPanorama===o).filter(a=>a.hide===!1).filter(a=>a.type==="bar")),J0e=(e,t,r)=>{var n=Bt(e),o=ls(e,t),a=us(e,t);if(!(o==null||a==null))return n==="horizontal"?Tg(e,"yAxis",a,r):Tg(e,"xAxis",o,r)},Q0e=(e,t)=>{var r=Bt(e),n=ls(e,t),o=us(e,t);if(!(n==null||o==null))return r==="horizontal"?_M(e,"xAxis",n):_M(e,"yAxis",o)},R0e=ae([Z0e,AF,Q0e],vK),ebe=(e,t,r)=>{var n,o,a=Ux(e,t);if(a==null)return 0;var i=ls(e,t),s=us(e,t);if(i==null||s==null)return 0;var l=Bt(e),u=fP(e),c=a.maxBarSize,d=ar(c)?u:c,p,f;return l==="horizontal"?(p=Ni(e,"xAxis",i,r),f=Ei(e,"xAxis",i,r)):(p=Ni(e,"yAxis",s,r),f=Ei(e,"yAxis",s,r)),(n=(o=Qi(p,f,!0))!==null&&o!==void 0?o:d)!==null&&n!==void 0?n:0},MV=(e,t,r)=>{var n=Bt(e),o=ls(e,t),a=us(e,t);if(!(o==null||a==null)){var i,s;return n==="horizontal"?(i=Ni(e,"xAxis",o,r),s=Ei(e,"xAxis",o,r)):(i=Ni(e,"yAxis",a,r),s=Ei(e,"yAxis",a,r)),Qi(i,s)}},tbe=ae([R0e,fP,CF,sk,ebe,MV,Y0e],bK),rbe=(e,t,r)=>{var n=ls(e,t);if(n!=null)return Ni(e,"xAxis",n,r)},nbe=(e,t,r)=>{var n=us(e,t);if(n!=null)return Ni(e,"yAxis",n,r)},obe=(e,t,r)=>{var n=ls(e,t);if(n!=null)return Ei(e,"xAxis",n,r)},abe=(e,t,r)=>{var n=us(e,t);if(n!=null)return Ei(e,"yAxis",n,r)},ibe=ae([tbe,Ux],SK),sbe=ae([J0e,Ux],wK),IV=ae([Fr,eg,rbe,nbe,obe,abe,ibe,Bt,rk,MV,sbe,Ux,X0e],(e,t,r,n,o,a,i,s,l,u,c,d,p)=>{var f=l.chartData,m=l.dataStartIndex,y=l.dataEndIndex;if(!(d==null||i==null||t==null||s!=="horizontal"&&s!=="vertical"||r==null||n==null||o==null||a==null||u==null)){var b=d.data,g;if(b!=null&&b.length>0?g=b:g=f?.slice(m,y+1),g!=null)return DV({layout:s,barSettings:d,pos:i,parentViewBox:t,bandSize:u,xAxis:r,yAxis:n,xAxisTicks:o,yAxisTicks:a,stackedData:c,displayedData:g,offset:e,cells:p,dataStartIndex:m})}});var _5=Z(Q()),Rg=Z(Q());var lbe=["index"];function k5(){return k5=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=(0,Rg.useContext)(jV);if(t!=null)return t.stackId;if(e!=null)return ES(e)};var dbe=(e,t)=>"recharts-bar-stack-clip-path-".concat(e,"-").concat(t),pbe=e=>{var t=(0,Rg.useContext)(jV);if(t!=null){var r=t.stackId;return"url(#".concat(dbe(r,e),")")}},C5=e=>{var t=e.index,r=ube(e,lbe),n=pbe(t);return _5.createElement(br,k5({className:"recharts-bar-stack-layer",clipPath:n},r))};var fbe=["onMouseEnter","onMouseLeave","onClick"],mbe=["value","background","tooltipPosition"],gbe=["id"],hbe=["onMouseEnter","onClick","onMouseLeave"];function LV(e,t){return bbe(e)||xbe(e,t)||vbe(e,t)||ybe()}function ybe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function vbe(e,t){if(e){if(typeof e=="string")return zV(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?zV(e,t):void 0}}function zV(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.dataKey,r=e.name,n=e.fill,o=e.legendType,a=e.hide;return[{inactive:a,dataKey:t,type:o,color:n,value:wi(r,t),payload:e}]},Abe=Rt.memo(e=>{var t=e.dataKey,r=e.stroke,n=e.strokeWidth,o=e.fill,a=e.name,i=e.hide,s=e.unit,l=e.formatter,u=e.tooltipType,c=e.id,d={dataDefinedOnItem:void 0,getPosition:_a,settings:{stroke:r,strokeWidth:n,fill:o,dataKey:t,nameKey:void 0,name:wi(a,t),hide:i,type:u,color:o,unit:s,formatter:l,graphicalItemId:c}};return Rt.createElement(Vc,{tooltipEntrySettings:d})});function Ebe(e){var t=$e(os),r=e.data,n=e.dataKey,o=e.background,a=e.allOtherBarProps,i=a.onMouseEnter,s=a.onMouseLeave,l=a.onClick,u=wC(a,fbe),c=kx(i,n,a.id),d=_x(s),p=Cx(l,n,a.id);if(!o||r==null)return null;var f=hi(o);return Rt.createElement(sn,{zIndex:kK(o,ir.barBackground)},r.map((m,y)=>{var b=m.value,g=m.background,h=m.tooltipPosition,v=wC(m,mbe);if(!g)return null;var x=c(m,m.originalDataIndex),S=d(m,m.originalDataIndex),k=p(m,m.originalDataIndex),w=To(To(To(To(To({option:o,isActive:String(m.originalDataIndex)===t},v),{},{fill:"#eee"},g),f),iu(u,m,y)),{},{onMouseEnter:x,onMouseLeave:S,onClick:k,dataKey:n,index:y,className:"recharts-bar-background-rectangle"});return Rt.createElement(bC,Qc({key:"background-bar-".concat(y)},w))}))}function Nbe(e){var t=e.showLabels,r=e.children,n=e.rects,o=n?.map(a=>{var i={x:a.x,y:a.y,width:a.width,lowerWidth:a.width,upperWidth:a.width,height:a.height};return To(To({},i),{},{value:a.value,payload:a.payload,parentViewBox:a.parentViewBox,viewBox:i,fill:a.fill})});return Rt.createElement(Wg,{value:t?o:void 0},r)}function Tbe(e){var t=e.shape,r=e.activeBar,n=e.baseProps,o=e.entry,a=e.index,i=e.dataKey,s=$e(os),l=$e(Ig),u=r&&String(o.originalDataIndex)===s&&(l==null||i===l),c=s!=null&&(String(o.originalDataIndex)!==s||l!=null&&i!==l),d=(0,Bs.useState)(!1),p=LV(d,2),f=p[0],m=p[1],y=(0,Bs.useState)(!1),b=LV(y,2),g=b[0],h=b[1];(0,Bs.useEffect)(()=>{var _;return u?(m(!0),_=requestAnimationFrame(()=>{h(!0)})):(h(!1),c&&m(!1)),()=>{cancelAnimationFrame(_)}},[u,c]);var v=(0,Bs.useCallback)(()=>{u||m(!1)},[u]),x=u&&g,S=u||f,k;u?r===!0?k=t:k=r:k=t;var w=Rt.createElement(bC,Qc({},n,{name:String(n.name)},o,{isActive:x,option:k,index:a,dataKey:i,animationElapsedTime:e.animationElapsedTime,isAnimating:e.isAnimating,isEntrance:e.isEntrance,onTransitionEnd:v}));return S?Rt.createElement(sn,{zIndex:ir.activeBar},Rt.createElement(C5,{index:o.originalDataIndex},w)):w}function Obe(e){var t=e.shape,r=e.baseProps,n=e.entry,o=e.index,a=e.dataKey;return Rt.createElement(bC,Qc({},r,{name:String(r.name)},n,{isActive:!1,option:t,index:o,dataKey:a,animationElapsedTime:e.animationElapsedTime,isAnimating:e.isAnimating,isEntrance:e.isEntrance}))}function Pbe(e){var t,r=e.data,n=e.props,o=e.animationElapsedTime,a=e.isAnimating,i=e.isEntrance,s=(t=hn(n))!==null&&t!==void 0?t:{},l=s.id,u=wC(s,gbe),c=n.shape,d=n.dataKey,p=n.activeBar,f=n.onMouseEnter,m=n.onClick,y=n.onMouseLeave,b=wC(n,hbe),g=kx(f,d,l),h=_x(y),v=Cx(m,d,l);return r?Rt.createElement(Rt.Fragment,null,r.map((x,S)=>Rt.createElement(C5,Qc({index:x.originalDataIndex,key:"rectangle-".concat(x?.x,"-").concat(x?.y,"-").concat(x?.value,"-").concat(S),className:"recharts-bar-rectangle"},iu(b,x,S),{onMouseEnter:g(x,x.originalDataIndex),onMouseLeave:h(x,x.originalDataIndex),onClick:v(x,x.originalDataIndex)}),p?Rt.createElement(Tbe,{shape:c,activeBar:p,baseProps:u,entry:x,index:S,dataKey:d,animationElapsedTime:o,isAnimating:a,isEntrance:i}):Rt.createElement(Obe,{shape:c,baseProps:u,entry:x,index:S,dataKey:d,animationElapsedTime:o,isAnimating:a,isEntrance:i})))):null}var Mbe=(e,t,r)=>e==null?[]:t===1?e.flatMap(n=>n.status==="removed"?[]:[n.next]):e.flatMap(n=>{if(n.status==="removed")return r==="horizontal"?[To(To({},n.prev),{},{height:_r(n.prev.height,0,t),y:_r(n.prev.y,n.prev.y+n.prev.height,t)})]:[To(To({},n.prev),{},{width:_r(n.prev.width,0,t)})];if(n.status==="matched")return[To(To({},n.next),{},{x:_r(n.prev.x,n.next.x,t),y:_r(n.prev.y,n.next.y,t),width:_r(n.prev.width,n.next.width,t),height:_r(n.prev.height,n.next.height,t)})];var o=n.next;return r==="horizontal"?[To(To({},o),{},{height:_r(0,o.height,t),y:_r(o.stackedBarStart,o.y,t)})]:[To(To({},o),{},{width:_r(0,o.width,t),x:_r(o.stackedBarStart,o.x,t)})]});function Ibe(e){var t=e.props,r=e.previousRectanglesRef,n=t.data,o=t.isAnimationActive,a=t.animationBegin,i=t.animationDuration,s=t.animationEasing,l=t.animationInterpolateFn,u=t.layout,c=Yc(t.onAnimationStart,t.onAnimationEnd),d=c.isAnimating,p=c.handleAnimationStart,f=c.handleAnimationEnd;return Rt.createElement(Nbe,{showLabels:!d,rects:n},Rt.createElement(Xc,{animationInput:n,animationIdPrefix:"recharts-bar-",items:n,previousItemsRef:r,isAnimationActive:o,animationBegin:a,animationDuration:i,animationEasing:s,onAnimationStart:p,onAnimationEnd:f,animationInterpolateFn:l,animationMatchBy:t.animationMatchBy,layout:u},(m,y,b)=>Rt.createElement(br,null,Rt.createElement(Pbe,{props:t,data:m,animationElapsedTime:y,isAnimating:d||y<1,isEntrance:b}))),Rt.createElement(qc,{label:t.label}),t.children)}function Dbe(e){var t=(0,Bs.useRef)(null);return Rt.createElement(Ibe,{previousRectanglesRef:t,props:e})}var FV=0,jbe=(e,t)=>{var r=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:r,errorVal:Ht(e,t)}},A5=class extends Bs.PureComponent{render(){var t=this.props,r=t.hide,n=t.data,o=t.dataKey,a=t.className,i=t.xAxisId,s=t.yAxisId,l=t.needClip,u=t.background,c=t.id;if(r||n==null)return null;var d=bt("recharts-bar",a),p=c;return Rt.createElement(br,{className:d,id:c},l&&Rt.createElement("defs",null,Rt.createElement(Jg,{clipPathId:p,xAxisId:i,yAxisId:s})),Rt.createElement(br,{className:"recharts-bar-rectangles",clipPath:l?"url(#clipPath-".concat(p,")"):void 0},Rt.createElement(Ebe,{data:n,dataKey:o,background:u,allOtherBarProps:this.props}),Rt.createElement(Dbe,this.props)))}},$be={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:"ease",animationInterpolateFn:Mbe,animationMatchBy:Ex,background:!1,hide:!1,isAnimationActive:"auto",label:!1,legendType:"rect",minPointSize:FV,shape:xC,xAxisId:0,yAxisId:0,zIndex:ir.bar};function Lbe(e){var t=e.xAxisId,r=e.yAxisId,n=e.hide,o=e.legendType,a=e.minPointSize,i=e.activeBar,s=e.animationBegin,l=e.animationDuration,u=e.animationEasing,c=e.isAnimationActive,d=Fp(t,r),p=d.needClip,f=Ya(),m=Ar(),y=wx(e.children,wu),b=$e(v=>IV(v,e.id,m,y));if(f!=="vertical"&&f!=="horizontal")return null;var g,h=b?.[0];return h==null||h.height==null||h.width==null?g=0:g=f==="vertical"?h.height/2:h.width/2,Rt.createElement(fC,{xAxisId:t,yAxisId:r,data:b,dataPointFormatter:jbe,errorBarOffset:g},Rt.createElement(A5,Qc({},e,{layout:f,needClip:p,data:b,xAxisId:t,yAxisId:r,hide:n,legendType:o,minPointSize:a,activeBar:i,animationBegin:s,animationDuration:l,animationEasing:u,isAnimationActive:c})))}function DV(e){var t=e.layout,r=e.barSettings,n=r.dataKey,o=r.minPointSize,a=r.hasCustomShape,i=e.pos,s=e.bandSize,l=e.xAxis,u=e.yAxis,c=e.xAxisTicks,d=e.yAxisTicks,p=e.stackedData,f=e.displayedData,m=e.offset,y=e.cells,b=e.parentViewBox,g=e.dataStartIndex,h=t==="horizontal"?u:l,v=p?h.scale.domain():null,x=_7({numericAxis:h}),S=h.scale.map(x);return f.map((k,w)=>{var _,A,C,N,L,J;if(p){var B=p[w+g];if(B==null)return null;_=S7(B,v)}else _=Ht(k,n),Array.isArray(_)||(_=[x,_]);var K=PV(o,FV)(_[1],w);if(t==="horizontal"){var T,P=u.scale.map(_[0]),I=u.scale.map(_[1]);if(P==null||I==null)return null;A=WO({axis:l,ticks:c,bandSize:s,offset:i.offset,entry:k,index:w}),C=(T=I??P)!==null&&T!==void 0?T:void 0,N=i.size;var M=P-I;if(L=Wo(M)?0:M,J={x:A,y:m.top,width:N,height:m.height},Math.abs(K)>0&&Math.abs(L)0&&Math.abs(N)Rt.createElement(Rt.Fragment,null,Rt.createElement(Kg,{legendPayload:Cbe(t)}),Rt.createElement(Abe,{dataKey:t.dataKey,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:o}),Rt.createElement(Yg,{type:"bar",id:o,data:void 0,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,stackId:r,hide:t.hide,barSize:t.barSize,minPointSize:t.minPointSize,maxBarSize:t.maxBarSize,isPanorama:n,hasCustomShape:t.shape!=null&&t.shape!==xC}),Rt.createElement(sn,{zIndex:t.zIndex},Rt.createElement(Lbe,Qc({},t,{id:o})))))}var SC=Rt.memo(zbe,Xa);SC.displayName="Bar";var Nu=Z(Q()),cs=Z(Q());var Bbe=["domain","range"],Fbe=["domain","range"];function UV(e,t){if(e==null)return{};var r,n,o=Ube(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n{if(i!=null)return qV(qV({},a),{},{type:i})},[a,i]);return(0,cs.useLayoutEffect)(()=>{s!=null&&(r.current===null?t(nK(s)):r.current!==s&&t(oK({prev:r.current,next:s})),r.current=s)},[s,t]),(0,cs.useLayoutEffect)(()=>()=>{r.current&&(t(aK(r.current)),r.current=null)},[t]),null}var Zbe=e=>{var t=e.xAxisId,r=e.className,n=e.height,o=e.label,a=(0,cs.useRef)(null),i=(0,cs.useRef)(null),s=$e(eg),l=Ar(),u=jt(),c="xAxis",d=$e(k=>u_(k,c,t,l)),p=$e(k=>SM(k,t)),f=$e(k=>gW(k,t)),m=$e(k=>RP(k,t));if((0,cs.useLayoutEffect)(()=>{if(!(n!=="auto"||!p||Ip(o)||(0,cs.isValidElement)(o)||m==null)){var k=a.current;if(k){var w=k.getCalculatedHeight();Math.round(p.height)!==Math.round(w)&&u(cK({id:t,height:w}))}}},[d,p,u,o,t,n,m]),p==null||f==null||m==null)return null;var y=e.dangerouslySetInnerHTML,b=e.ticks,g=e.scale,h=N5(e,Hbe),v=m.id,x=m.scale,S=N5(m,qbe);return Nu.createElement(zx,E5({},h,S,{ref:a,labelRef:i,x:f.x,y:f.y,width:p.width,height:p.height,className:bt("recharts-".concat(c," ").concat(c),r),viewBox:s,ticks:d,axisType:c,axisId:t}))},Jbe={allowDataOverflow:io.allowDataOverflow,allowDecimals:io.allowDecimals,allowDuplicatedCategory:io.allowDuplicatedCategory,angle:io.angle,axisLine:ss.axisLine,height:io.height,hide:!1,includeHidden:io.includeHidden,interval:io.interval,label:!1,minTickGap:io.minTickGap,mirror:io.mirror,orientation:io.orientation,padding:io.padding,reversed:io.reversed,scale:io.scale,tick:io.tick,tickCount:io.tickCount,tickLine:ss.tickLine,tickSize:ss.tickSize,type:io.type,niceTicks:io.niceTicks,xAxisId:0},Qbe=e=>{var t=nr(e,Jbe);return Nu.createElement(Nu.Fragment,null,Nu.createElement(Xbe,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,niceTicks:t.niceTicks}),Nu.createElement(Zbe,t))},Tu=Nu.memo(Qbe,kC);Tu.displayName="XAxis";var Ou=Z(Q()),ds=Z(Q());var Rbe=["type"],e1e=["dangerouslySetInnerHTML","ticks","scale"],t1e=["id","scale"];function T5(){return T5=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(i!=null)return VV(VV({},a),{},{type:i})},[i,a]);return(0,ds.useLayoutEffect)(()=>{s!=null&&(r.current===null?t(iK(s)):r.current!==s&&t(sK({prev:r.current,next:s})),r.current=s)},[s,t]),(0,ds.useLayoutEffect)(()=>()=>{r.current&&(t(lK(r.current)),r.current=null)},[t]),null}function s1e(e){var t=e.yAxisId,r=e.className,n=e.width,o=e.label,a=(0,ds.useRef)(null),i=(0,ds.useRef)(null),s=$e(eg),l=Ar(),u=jt(),c="yAxis",d=$e(k=>kM(k,t)),p=$e(k=>hW(k,t)),f=$e(k=>u_(k,c,t,l)),m=$e(k=>eM(k,t));if((0,ds.useLayoutEffect)(()=>{if(!(n!=="auto"||!d||Ip(o)||(0,ds.isValidElement)(o)||m==null)){var k=a.current;if(k){var w=k.getCalculatedWidth();Math.round(d.width)!==Math.round(w)&&u(uK({id:t,width:w}))}}},[f,d,u,o,t,n,m]),d==null||p==null||m==null)return null;var y=e.dangerouslySetInnerHTML,b=e.ticks,g=e.scale,h=O5(e,e1e),v=m.id,x=m.scale,S=O5(m,t1e);return Ou.createElement(zx,T5({},h,S,{ref:a,labelRef:i,x:p.x,y:p.y,tickTextProps:n==="auto"?{width:void 0}:{width:n},width:d.width,height:d.height,className:bt("recharts-".concat(c," ").concat(c),r),viewBox:s,ticks:f,axisType:c,axisId:t}))}var l1e={allowDataOverflow:so.allowDataOverflow,allowDecimals:so.allowDecimals,allowDuplicatedCategory:so.allowDuplicatedCategory,angle:so.angle,axisLine:ss.axisLine,hide:!1,includeHidden:so.includeHidden,interval:so.interval,label:!1,minTickGap:so.minTickGap,mirror:so.mirror,orientation:so.orientation,padding:so.padding,reversed:so.reversed,scale:so.scale,tick:so.tick,tickCount:so.tickCount,tickLine:ss.tickLine,tickSize:ss.tickSize,type:so.type,niceTicks:so.niceTicks,width:so.width,yAxisId:0},u1e=e=>{var t=nr(e,l1e);return Ou.createElement(Ou.Fragment,null,Ou.createElement(i1e,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter,niceTicks:t.niceTicks}),Ou.createElement(s1e,t))},Pu=Ou.memo(u1e,kC);Pu.displayName="YAxis";var xG=Z(Q()),bG=Z(Q());var Gp=Z(Q()),vG=Z(Q());var sG=Z(Q()),lG=Z(Q());var c1e=(e,t)=>t,Wx=ae([c1e,Bt,gk,ao,IM,Qa,YW,Fr],eH);function d1e(e){return"getBBox"in e.currentTarget&&typeof e.currentTarget.getBBox=="function"}function Hx(e){var t=e.currentTarget.getBoundingClientRect(),r,n;if(d1e(e)){var o=e.currentTarget.getBBox();r=o.width>0?t.width/o.width:1,n=o.height>0?t.height/o.height:1}else{var a=e.currentTarget;r=a.offsetWidth>0?t.width/a.offsetWidth:1,n=a.offsetHeight>0?t.height/a.offsetHeight:1}var i=(s,l)=>({relativeX:Math.round((s-t.left)/r),relativeY:Math.round((l-t.top)/n)});return"touches"in e?Array.from(e.touches).map(s=>i(s.clientX,s.clientY)):i(e.clientX,e.clientY)}var M5=xo("mouseClick"),I5=du();I5.startListening({actionCreator:M5,effect:(e,t)=>{var r=e.payload,n=Wx(t.getState(),Hx(r));n?.activeIndex!=null&&t.dispatch(EW({activeIndex:n.activeIndex,activeDataKey:void 0,activeCoordinate:n.activeCoordinate}))}});var _C=xo("mouseMove"),D5=du(),eh=null,Wp=null,P5=null;D5.startListening({actionCreator:_C,effect:(e,t)=>{var r=e.payload,n=t.getState(),o=n.eventSettings,a=o.throttleDelay,i=o.throttledEvents,s=i==="all"||i?.includes("mousemove");eh!==null&&(cancelAnimationFrame(eh),eh=null),Wp!==null&&(typeof a!="number"||!s)&&(clearTimeout(Wp),Wp=null),P5=Hx(r);var l=()=>{var u=t.getState(),c=Lc(u,u.tooltip.settings.shared);if(!P5){eh=null,Wp=null;return}if(c==="axis"){var d=Wx(u,P5);d?.activeIndex!=null?t.dispatch(f_({activeIndex:d.activeIndex,activeDataKey:void 0,activeCoordinate:d.activeCoordinate})):t.dispatch(p_())}eh=null,Wp=null};if(!s){l();return}a==="raf"?eh=requestAnimationFrame(l):typeof a=="number"&&Wp===null&&(Wp=setTimeout(l,a))}});function GV(e,t){return t instanceof HTMLElement?"HTMLElement <".concat(t.tagName,' class="').concat(t.className,'">'):t===window?"global.window":e==="children"&&typeof t=="object"&&t!==null?"<>":t}var YV={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:"none",syncId:void 0,syncMethod:"index",baseValue:void 0,reverseStackOrder:!1},XV=Cr({name:"rootProps",initialState:YV,reducers:{updateOptions:(e,t)=>{var r;e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=(r=t.payload.barGap)!==null&&r!==void 0?r:YV.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),ZV=XV.reducer,JV=XV.actions.updateOptions;var p1e=null,f1e={updatePolarOptions:(e,t)=>e===null?t.payload:(e.startAngle=t.payload.startAngle,e.endAngle=t.payload.endAngle,e.cx=t.payload.cx,e.cy=t.payload.cy,e.innerRadius=t.payload.innerRadius,e.outerRadius=t.payload.outerRadius,e)},QV=Cr({name:"polarOptions",initialState:p1e,reducers:f1e}),RV=QV.actions.updatePolarOptions;var eG=QV.reducer;var j5=xo("keyDown"),$5=xo("focus"),L5=xo("blur"),qx=du(),th=null,Hp=null,CC=null;qx.startListening({actionCreator:j5,effect:(e,t)=>{CC=e.payload,th!==null&&(cancelAnimationFrame(th),th=null);var r=t.getState(),n=r.eventSettings,o=n.throttleDelay,a=n.throttledEvents,i=a==="all"||a.includes("keydown");Hp!==null&&(typeof o!="number"||!i)&&(clearTimeout(Hp),Hp=null);var s=()=>{try{var l=t.getState(),u=l.rootProps.accessibilityLayer!==!1;if(!u)return;var c=l.tooltip.keyboardInteraction,d=CC;if(d!=="ArrowRight"&&d!=="ArrowLeft"&&d!=="Enter")return;var p=zc(c,bu(l),hu(l),Fc(l)),f=p==null?-1:Number(p),m=!Number.isFinite(f)||f<0,y=Qa(l),b=bu(l),g=Lc(l,l.tooltip.settings.shared);if(d==="Enter"){if(m)return;var h=vx(l,g,"hover",String(c.index));t.dispatch(hx({active:!c.active,activeIndex:c.index,activeCoordinate:h}));return}var v=yW(l),x=v==="left-to-right"?1:-1,S=d==="ArrowRight"?1:-1,k;if(m){var w=hu(l),_=Fc(l),A=S*x,C=K=>({active:!1,index:String(K),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(k=-1,A>0){for(var N=0;N=0;L--)if(zc(C(L),b,w,_)!=null){k=L;break}if(k<0)return}else{k=f+S*x;var J=y?.length||b.length;if(J===0||k>=J||k<0)return}var B=vx(l,g,"hover",String(k));t.dispatch(hx({active:!0,activeIndex:k.toString(),activeCoordinate:B}))}finally{th=null,Hp=null}};if(!i){s();return}o==="raf"?th=requestAnimationFrame(s):typeof o=="number"&&Hp===null&&(s(),CC=null,Hp=setTimeout(()=>{CC?s():(Hp=null,th=null)},o))}});qx.startListening({actionCreator:$5,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var o=r.tooltip.keyboardInteraction;if(!o.active&&o.index==null){var a="0",i=Lc(r,r.tooltip.settings.shared),s=vx(r,i,"hover",String(a));t.dispatch(hx({active:!0,activeIndex:a,activeCoordinate:s}))}}}});qx.startListening({actionCreator:L5,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var o=r.tooltip.keyboardInteraction;o.active&&t.dispatch(hx({active:!1,activeIndex:o.index,activeCoordinate:o.coordinate}))}}});function AC(e){e.persist();var t=e.currentTarget;return new Proxy(e,{get:(r,n)=>{if(n==="currentTarget")return t;var o=Reflect.get(r,n);return typeof o=="function"?o.bind(r):o}})}var Ti=xo("externalEvent"),B5=du(),EC=new Map,Kx=new Map,z5=new Map;B5.startListening({actionCreator:Ti,effect:(e,t)=>{var r=e.payload,n=r.handler,o=r.reactEvent;if(n!=null){var a=o.type,i=AC(o);z5.set(a,{handler:n,reactEvent:i});var s=EC.get(a);s!==void 0&&(cancelAnimationFrame(s),EC.delete(a));var l=t.getState(),u=l.eventSettings,c=u.throttleDelay,d=u.throttledEvents,p=d,f=p==="all"||p?.includes(a),m=Kx.get(a);m!==void 0&&(typeof c!="number"||!f)&&(clearTimeout(m),Kx.delete(a));var y=()=>{var h=z5.get(a);try{if(!h)return;var v=h.handler,x=h.reactEvent,S=t.getState(),k={activeCoordinate:LM(S),activeDataKey:Ig(S),activeIndex:os(S),activeLabel:b_(S),activeTooltipIndex:os(S),isTooltipActive:zM(S)};v&&v(k,x)}finally{EC.delete(a),Kx.delete(a),z5.delete(a)}};if(!f){y();return}if(c==="raf"){var b=requestAnimationFrame(y);EC.set(a,b)}else if(typeof c=="number"){if(!Kx.has(a)){y();var g=setTimeout(y,c);Kx.set(a,g)}}else y()}}});var m1e=ae([xu],e=>e.tooltipItemPayloads),tG=ae([m1e,(e,t)=>t,(e,t,r)=>r],(e,t,r)=>{if(t!=null){var n=e.find(a=>a.settings.graphicalItemId===r);if(n!=null){var o=n.getPosition;if(o!=null)return o(t)}}});var F5=xo("touchMove"),U5=du(),qp=null,Rc=null,rG=null,Vx=null;U5.startListening({actionCreator:F5,effect:(e,t)=>{var r=e.payload;if(!(r.touches==null||r.touches.length===0)){Vx=AC(r);var n=t.getState(),o=n.eventSettings,a=o.throttleDelay,i=o.throttledEvents,s=i==="all"||i.includes("touchmove");qp!==null&&(cancelAnimationFrame(qp),qp=null),Rc!==null&&(typeof a!="number"||!s)&&(clearTimeout(Rc),Rc=null),rG=Array.from(r.touches).map(u=>Hx({clientX:u.clientX,clientY:u.clientY,currentTarget:r.currentTarget}));var l=()=>{if(Vx!=null){var u=t.getState(),c=Lc(u,u.tooltip.settings.shared);if(c==="axis"){var d,p=(d=rG)===null||d===void 0?void 0:d[0];if(p==null){qp=null,Rc=null;return}var f=Wx(u,p);f?.activeIndex!=null&&t.dispatch(f_({activeIndex:f.activeIndex,activeDataKey:void 0,activeCoordinate:f.activeCoordinate}))}else if(c==="item"){var m,y=Vx.touches[0];if(document.elementFromPoint==null||y==null)return;var b=document.elementFromPoint(y.clientX,y.clientY);if(!b||!b.getAttribute)return;var g=b.getAttribute(NS),h=(m=b.getAttribute(TS))!==null&&m!==void 0?m:void 0,v=Bc(u).find(k=>k.id===h);if(g==null||v==null||h==null)return;var x=v.dataKey,S=tG(u,g,h);t.dispatch(d_({activeDataKey:x,activeIndex:g,activeCoordinate:S,activeGraphicalItemId:h}))}qp=null,Rc=null}};if(!s){l();return}a==="raf"?qp=requestAnimationFrame(l):typeof a=="number"&&Rc===null&&(l(),Vx=null,Rc=setTimeout(()=>{Vx?l():(Rc=null,qp=null)},a))}}});var Gx={throttleDelay:"raf",throttledEvents:["mousemove","touchmove","pointermove","scroll","wheel"]},nG=Cr({name:"eventSettings",initialState:Gx,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=Zt(t.payload.throttledEvents))}}}),oG=nG.actions.setEventSettings;var aG=nG.reducer;var g1e=rS({brush:EK,cartesianAxis:dK,chartData:_H,errorBars:sV,eventSettings:aG,graphicalItems:Zq,layout:x7,legend:K7,options:xH,polarAxis:vq,polarOptions:eG,referenceElements:OK,renderedTicks:GK,rootProps:ZV,tooltip:NW,zIndex:uH}),iG=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return t7({reducer:g1e,preloadedState:t,middleware:n=>{var o;return n({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((o="es6")!==null&&o!==void 0?o:"")}).concat([I5.middleware,D5.middleware,qx.middleware,B5.middleware,U5.middleware])},enhancers:n=>{var o=n;return typeof n=="function"&&(o=n()),o.concat($O({type:"raf"}))},devTools:Ri.devToolsEnabled&&{serialize:{replacer:GV},name:"recharts-".concat(r)}})};function NC(e){var t=e.preloadedState,r=e.children,n=e.reduxStoreName,o=Ar(),a=(0,lG.useRef)(null);if(o)return r;a.current==null&&(a.current=iG(t,n));var i=hv;return sG.createElement(R7,{context:i,store:a.current},r)}var TC=Z(Q());function h1e(e){var t=e.layout,r=e.margin,n=jt(),o=Ar();return(0,TC.useEffect)(()=>{o||(n(h7(t)),n(BO(r)))},[n,o,t,r]),null}var OC=(0,TC.memo)(h1e,Xa);var uG=Z(Q());function PC(e){var t=jt();return(0,uG.useEffect)(()=>{t(JV(e))},[t,e]),null}var MC=Z(Q());var y1e=e=>{var t=jt();return(0,MC.useEffect)(()=>{t(oG(e))},[t,e]),null},IC=(0,MC.memo)(y1e,Xa);var Mu=Z(Q()),hG=Z(Q());var Vp=Z(Q()),H5=Z(Q());var Kp=Z(Q()),DC=Z(Q());function cG(e){var t=e.zIndex,r=e.isPanorama,n=(0,DC.useRef)(null),o=jt();return(0,DC.useLayoutEffect)(()=>(n.current&&o(sH({zIndex:t,element:n.current,isPanorama:r})),()=>{o(lH({zIndex:t,isPanorama:r}))}),[o,t,r]),Kp.createElement("g",{tabIndex:-1,ref:n,className:"recharts-zIndex-layer_".concat(t)})}function W5(e){var t=e.children,r=e.isPanorama,n=$e(rH);if(!n||n.length===0)return t;var o=n.filter(i=>i<0),a=n.filter(i=>i>0);return Kp.createElement(Kp.Fragment,null,o.map(i=>Kp.createElement(cG,{key:i,zIndex:i,isPanorama:r})),t,a.map(i=>Kp.createElement(cG,{key:i,zIndex:i,isPanorama:r})))}var v1e=["children"];function x1e(e,t){if(e==null)return{};var r,n,o=b1e(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n{var r=ng(),n=og(),o=FS();if(!Va(r)||!Va(n))return null;var a=e.children,i=e.otherAttributes,s=e.title,l=e.desc,u,c;return i!=null&&(typeof i.tabIndex=="number"?u=i.tabIndex:u=o?0:void 0,typeof i.role=="string"?c=i.role:c=o?"application":void 0),Vp.createElement(lv,jC({},i,{title:s,desc:l,role:c,tabIndex:u,width:r,height:n,style:w1e,ref:t}),a)}),k1e=e=>{var t=e.children,r=$e(np);if(!r)return null;var n=r.width,o=r.height,a=r.y,i=r.x;return Vp.createElement(lv,{width:n,height:o,x:i,y:a},t)},q5=(0,H5.forwardRef)((e,t)=>{var r=e.children,n=x1e(e,v1e),o=Ar();return o?Vp.createElement(k1e,null,Vp.createElement(W5,{isPanorama:!0},r)):Vp.createElement(S1e,jC({ref:t},n),Vp.createElement(W5,{isPanorama:!1},r))});var Tn=Z(Q()),fr=Z(Q());var $C=Z(Q());function _1e(e,t){return N1e(e)||E1e(e,t)||A1e(e,t)||C1e()}function C1e(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function A1e(e,t){if(e){if(typeof e=="string")return dG(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?dG(e,t):void 0}}function dG(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{if(n!=null){var i=n.getBoundingClientRect(),s=i.width/n.offsetWidth;Ot(s)&&s!==a&&e(v7(s))}},[n,e,a]),o}function fG(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function T1e(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r(AH(),null);function zC(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var z1e=(0,fr.forwardRef)((e,t)=>{var r,n,o=(0,fr.useRef)(null),a=(0,fr.useState)({containerWidth:zC((r=e.style)===null||r===void 0?void 0:r.width),containerHeight:zC((n=e.style)===null||n===void 0?void 0:n.height)}),i=LC(a,2),s=i[0],l=i[1],u=(0,fr.useCallback)((d,p)=>{l(f=>{var m=Math.round(d),y=Math.round(p);return f.containerWidth===m&&f.containerHeight===y?f:{containerWidth:m,containerHeight:y}})},[]),c=(0,fr.useCallback)(d=>{if(typeof t=="function"&&t(d),o.current!=null&&(o.current.disconnect(),o.current=null),d!=null&&typeof ResizeObserver<"u"){var p=d.getBoundingClientRect(),f=p.width,m=p.height;u(f,m);var y=g=>{var h=g[0];if(h!=null){var v=h.contentRect,x=v.width,S=v.height;u(x,S)}},b=new ResizeObserver(y);b.observe(d),o.current=b}},[t,u]);return(0,fr.useEffect)(()=>()=>{var d=o.current;d?.disconnect()},[u]),Tn.createElement(Tn.Fragment,null,Tn.createElement(ip,{width:s.containerWidth,height:s.containerHeight}),Tn.createElement("div",ed({ref:c},e)))}),B1e=(0,fr.forwardRef)((e,t)=>{var r=e.width,n=e.height,o=(0,fr.useState)({containerWidth:zC(r),containerHeight:zC(n)}),a=LC(o,2),i=a[0],s=a[1],l=(0,fr.useCallback)((c,d)=>{s(p=>{var f=Math.round(c),m=Math.round(d);return p.containerWidth===f&&p.containerHeight===m?p:{containerWidth:f,containerHeight:m}})},[]),u=(0,fr.useCallback)(c=>{if(typeof t=="function"&&t(c),c!=null){var d=c.getBoundingClientRect(),p=d.width,f=d.height;l(p,f)}},[t,l]);return Tn.createElement(Tn.Fragment,null,Tn.createElement(ip,{width:i.containerWidth,height:i.containerHeight}),Tn.createElement("div",ed({ref:u},e)))}),F1e=(0,fr.forwardRef)((e,t)=>{var r=e.width,n=e.height;return Tn.createElement(Tn.Fragment,null,Tn.createElement(ip,{width:r,height:n}),Tn.createElement("div",ed({ref:t},e)))}),U1e=(0,fr.forwardRef)((e,t)=>{var r=e.width,n=e.height;return typeof r=="string"||typeof n=="string"?Tn.createElement(B1e,ed({},e,{ref:t})):typeof r=="number"&&typeof n=="number"?Tn.createElement(F1e,ed({},e,{width:r,height:n,ref:t})):Tn.createElement(Tn.Fragment,null,Tn.createElement(ip,{width:r,height:n}),Tn.createElement("div",ed({ref:t},e)))});function W1e(e){return e?z1e:U1e}var gG=(0,fr.forwardRef)((e,t)=>{var r=e.children,n=e.className,o=e.height,a=e.onClick,i=e.onContextMenu,s=e.onDoubleClick,l=e.onMouseDown,u=e.onMouseEnter,c=e.onMouseLeave,d=e.onMouseMove,p=e.onMouseUp,f=e.onTouchEnd,m=e.onTouchMove,y=e.onTouchStart,b=e.style,g=e.width,h=e.responsive,v=e.dispatchTouchEvents,x=v===void 0?!0:v,S=(0,fr.useRef)(null),k=jt(),w=(0,fr.useState)(null),_=LC(w,2),A=_[0],C=_[1],N=(0,fr.useState)(null),L=LC(N,2),J=L[0],B=L[1],K=pG(),T=Av(),P=T?.width>0?T.width:g,I=T?.height>0?T.height:o,M=(0,fr.useCallback)(D=>{K(D),typeof t=="function"&&t(D),C(D),B(D),D!=null&&(S.current=D)},[K,t,C,B]),j=(0,fr.useCallback)(D=>{k(M5(D)),k(Ti({handler:a,reactEvent:D}))},[k,a]),O=(0,fr.useCallback)(D=>{k(_C(D)),k(Ti({handler:u,reactEvent:D}))},[k,u]),F=(0,fr.useCallback)(D=>{k(p_()),k(Ti({handler:c,reactEvent:D}))},[k,c]),V=(0,fr.useCallback)(D=>{k(_C(D)),k(Ti({handler:d,reactEvent:D}))},[k,d]),z=(0,fr.useCallback)(()=>{k($5())},[k]),G=(0,fr.useCallback)(()=>{k(L5())},[k]),q=(0,fr.useCallback)(D=>{k(j5(D.key))},[k]),oe=(0,fr.useCallback)(D=>{k(Ti({handler:i,reactEvent:D}))},[k,i]),Me=(0,fr.useCallback)(D=>{k(Ti({handler:s,reactEvent:D}))},[k,s]),fe=(0,fr.useCallback)(D=>{k(Ti({handler:l,reactEvent:D}))},[k,l]),le=(0,fr.useCallback)(D=>{k(Ti({handler:p,reactEvent:D}))},[k,p]),R=(0,fr.useCallback)(D=>{k(Ti({handler:y,reactEvent:D}))},[k,y]),te=(0,fr.useCallback)(D=>{x&&k(F5(D)),k(Ti({handler:m,reactEvent:D}))},[k,x,m]),He=(0,fr.useCallback)(D=>{k(Ti({handler:f,reactEvent:D}))},[k,f]),_e=W1e(h);return Tn.createElement(VM.Provider,{value:A},Tn.createElement(IT.Provider,{value:J},Tn.createElement(_e,{width:P??b?.width,height:I??b?.height,className:bt("recharts-wrapper",n),style:T1e({position:"relative",cursor:"default",width:P,height:I},b),onClick:j,onContextMenu:oe,onDoubleClick:Me,onFocus:z,onBlur:G,onKeyDown:q,onMouseDown:fe,onMouseEnter:O,onMouseLeave:F,onMouseMove:V,onMouseUp:le,onTouchEnd:He,onTouchMove:te,onTouchStart:R,ref:M},Tn.createElement(L1e,null),r)))});var H1e=["width","height","responsive","children","className","style","compact","title","desc"];function q1e(e,t){if(e==null)return{};var r,n,o=K1e(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n{var r=e.width,n=e.height,o=e.responsive,a=e.children,i=e.className,s=e.style,l=e.compact,u=e.title,c=e.desc,d=q1e(e,H1e),p=hn(d);return l?Mu.createElement(Mu.Fragment,null,Mu.createElement(ip,{width:r,height:n}),Mu.createElement(q5,{otherAttributes:p,title:u,desc:c},a)):Mu.createElement(gG,{className:i,style:s,width:r,height:n,responsive:o??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},Mu.createElement(q5,{otherAttributes:p,title:u,desc:c,ref:t},Mu.createElement(MK,null,a)))});function K5(){return K5=Object.assign?Object.assign.bind():function(e){for(var t=1;txG.createElement(rh,{chartName:"LineChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:Q1e,tooltipPayloadSearcher:Uc,categoricalChartProps:e,ref:t}));var wG=Z(Q()),SG=Z(Q());var R1e=["axis","item"],G5=(0,SG.forwardRef)((e,t)=>wG.createElement(rh,{chartName:"BarChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:R1e,tooltipPayloadSearcher:Uc,categoricalChartProps:e,ref:t}));var OG=Z(Q()),PG=Z(Q());var AG=Z(Q()),td=Z(Q());var kG=Z(Q());function _G(e){var t=jt();return(0,kG.useEffect)(()=>{t(RV(e))},[t,e]),null}var ewe=["layout"];function Y5(){return Y5=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=nr(e,pwe);return OG.createElement(EG,{chartName:"PieChart",defaultTooltipEventType:"item",validateTooltipEventTypes:dwe,tooltipPayloadSearcher:Uc,categoricalChartProps:r,ref:t})});var MG=Z(Q()),IG=Z(Q());var fwe=["axis"],rd=(0,IG.forwardRef)((e,t)=>MG.createElement(rh,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:fwe,tooltipPayloadSearcher:Uc,categoricalChartProps:e,ref:t}));var ps=Z(Q()),nh=[{id:"5m",label:"5m",minutes:5,bucketSeconds:10},{id:"10m",label:"10m",minutes:10,bucketSeconds:20},{id:"15m",label:"15m",minutes:15,bucketSeconds:30},{id:"30m",label:"30m",minutes:30,bucketSeconds:60},{id:"45m",label:"45m",minutes:45,bucketSeconds:60},{id:"1h",label:"1h",minutes:60,bucketSeconds:120},{id:"2h",label:"2h",minutes:120,bucketSeconds:240},{id:"3h",label:"3h",minutes:180,bucketSeconds:300},{id:"6h",label:"6h",minutes:360,bucketSeconds:600},{id:"12h",label:"12h",minutes:720,bucketSeconds:1200},{id:"1d",label:"1d",minutes:1440,bucketSeconds:1800},{id:"3d",label:"3d",minutes:4320,bucketSeconds:7200},{id:"7d",label:"7d",minutes:10080,bucketSeconds:14400},{id:"30d",label:"30d",minutes:43200,bucketSeconds:86400},{id:"90d",label:"90d",minutes:129600,bucketSeconds:259200}],DG="30m",jG="activeagents.timeWindow",$G=(0,ps.createContext)(null),J5=e=>nh.find(t=>t.id===e);function LG({children:e}){let[t,r]=(0,ps.useState)(()=>{try{let a=localStorage.getItem(jG);if(a&&J5(a))return a}catch{}return DG}),n=(0,ps.useCallback)(a=>{if(J5(a)){r(a);try{localStorage.setItem(jG,a)}catch{}}},[]),o=(0,ps.useMemo)(()=>{let a=nh.findIndex(s=>s.id===t),i=nh[a]||J5(DG);return{timeWindow:i,windowIndex:a,windows:nh,setWindow:n,zoomTo:s=>{let l=nh[Math.min(Math.max(s,0),nh.length-1)];l&&n(l.id)},days:Math.max(1,Math.ceil(i.minutes/1440))}},[t,n]);return ps.default.createElement($G.Provider,{value:o},e)}function xl(){let e=(0,ps.useContext)($G);if(!e)throw new Error("useTimeWindow must be used within a TimeWindowProvider");return e}var oh=Z(Q());function bl({compact:e=!1}){let{windows:t,windowIndex:r,timeWindow:n,setWindow:o,zoomTo:a}=xl(),{darkMode:i}=ut(),s=Vi(i),l={color:s.textSecondary};return oh.default.createElement("div",{className:"flex items-center rounded-lg p-1",style:{background:s.mutedBg}},oh.default.createElement("button",{onClick:()=>a(r-1),disabled:r<=0,title:"Zoom in (shorter window)","aria-label":"Zoom in",className:"aa-zoom px-2 py-1 text-sm rounded-md disabled:opacity-30 disabled:cursor-not-allowed",style:l},"\u2212"),oh.default.createElement("select",{value:n.id,onChange:u=>o(u.target.value),"aria-label":"Time window",className:`aa-field px-2 py-1 mx-1 text-sm rounded-md shadow ${e?"":"min-w-[4.5rem]"}`,style:{background:s.cardBg,color:s.textPrimary,border:`1px solid ${s.cardBorder}`}},t.map(u=>oh.default.createElement("option",{key:u.id,value:u.id},u.label))),oh.default.createElement("button",{onClick:()=>a(r+1),disabled:r>=t.length-1,title:"Zoom out (longer window)","aria-label":"Zoom out",className:"aa-zoom px-2 py-1 text-sm rounded-md disabled:opacity-30 disabled:cursor-not-allowed",style:l},"+"))}var zn=Z(Q());var tn=Z(Q());var Yx=e=>{let t=(e||"").toLowerCase();return t.includes("claude")?2e5:t.includes("gemini")?1e6:t.includes("llama")?131072:t.includes("gpt-4o")||t.includes("gpt-4-turbo")||t.includes("gpt-4.1")?128e3:t.includes("gpt-5")?4e5:128e3},nd=e=>{if(e==null)return 0;let t=typeof e=="string"?e:JSON.stringify(e);return Math.round(t.length/4)},FC=e=>{let t=e?.spans||[],r=null;for(let m of t){let y=m.tokens||{},b=(y.input||0)+(y.output||0);b>0&&(!r||b>r.total)&&(r={input:y.input||0,output:y.output||0,thinking:y.thinking||0,cached:y.cached||0,total:b})}if(!r)return null;let n=m=>{for(let y of t){let b=(y.attributes||{})[m];if(b)return b}return null},o=(m,...y)=>{let b=Number(n(m));if(Number.isFinite(b)&&b>0)return b;for(let g of y){let h=n(g);if(h)return nd(h)}return 0},a=o("prompt.input.instructions.tokens","prompt.input.instructions","llm.instructions"),i=o("prompt.input.tools.tokens","prompt.input.tools","llm.tools"),s=o("prompt.input.mcp_tools.tokens","prompt.input.mcp_tools"),l=o("prompt.input.messages.tokens","prompt.input.messages","llm.messages"),u=0;for(let m of t){let y=m.attributes||{},b=y["tool.output.result"]||y["tool.result"],g=y["tool.input.args"]||y["tool.arguments"];b&&(u+=nd(b)),g&&(u+=nd(g))}u=Math.min(u,r.input);let c=["messages","toolResults","instructions","toolSchemas","mcpSchemas"],d={messages:l,toolResults:u,instructions:a,toolSchemas:i,mcpSchemas:s},p=c.reduce((m,y)=>m+d[y],0),f;if(p>0&&r.input>0){let m=r.input/p;f={};for(let b of c)f[b]=Math.round(d[b]*m);let y=r.input-c.reduce((b,g)=>b+f[g],0);if(y!==0){let b=c.reduce((g,h)=>f[h]>f[g]?h:g);f[b]=Math.max(f[b]+y,0)}}else f={messages:r.input,toolResults:0,instructions:0,toolSchemas:0,mcpSchemas:0};return{used:r.total,limit:Yx(e.model),cached:r.cached,thinking:r.thinking,estimated:p>0,segments:[{key:"messages",label:"Messages",tokens:f.messages},{key:"tool_results",label:"Tool results",tokens:f.toolResults},{key:"instructions",label:"Instructions",tokens:f.instructions},{key:"tool_schemas",label:"Tool schemas",tokens:f.toolSchemas},{key:"mcp_schemas",label:"MCP tool schemas",tokens:f.mcpSchemas},{key:"output",label:"Generated output",tokens:r.output}]}};var mwe={messages:"#2563eb",tool_results:"#5b84ec",instructions:"#85a3f0",tool_schemas:"#a6bcf4",mcp_schemas:"#c3d2f8",memory:"#dce4fb",output:"#7c3aed"},ah=e=>e==null?"\u2014":e>=1e6?`${(e/1e6).toFixed(1).replace(/\.0$/,"")}M`:e>=1e3?`${(e/1e3).toFixed(1).replace(/\.0$/,"")}k`:String(Math.round(e));function od({used:e,limit:t=2e5,segments:r=[],cached:n=0,thinking:o=0,compact:a=!1,defaultOpen:i=!1,label:s="Context window",estimated:l=!1,darkMode:u=!1}){let[c,d]=(0,tn.useState)(i),p=r.filter(w=>w.tokens>0),f=e??p.reduce((w,_)=>w+_.tokens,0),m=t>0?f/t:0,y=m>=.9?"#dc2626":m>=.75?"#eab308":null,b=u?"rgba(255,255,255,0.4)":"#9ca3af",g=u?"rgba(255,255,255,0.6)":"#6b7280",h=u?"rgba(255,255,255,0.75)":"#4b5563",v=u?"rgba(255,255,255,0.1)":"#f3f4f6",x=`${ah(f)} / ${ah(t)} (${Math.round(m*100)}%)`,S=w=>w.key==="messages"&&y?y:w.color||mwe[w.key]||"#2563eb",k=w=>tn.default.createElement("div",{style:{display:"flex",height:w,borderRadius:"999px",overflow:"hidden",background:v,flex:1}},p.map(_=>tn.default.createElement("div",{key:_.key,title:`${_.label} \xB7 ${ah(_.tokens)}`,style:{width:`${Math.min(_.tokens/t*100,100)}%`,background:S(_)}})));return a?tn.default.createElement("span",{title:`${s}: ${x}`,style:{display:"inline-flex",alignItems:"center",gap:"6px",width:"132px",verticalAlign:"middle"}},k("6px"),tn.default.createElement("span",{style:{fontSize:"11px",fontFamily:"'SF Mono', 'Fira Code', monospace",color:y||b,whiteSpace:"nowrap"}},Math.round(m*100),"%")):tn.default.createElement("div",{style:{background:u?"rgba(255,255,255,0.03)":"#ffffff",border:`1px solid ${y?y+"66":u?"rgba(255,255,255,0.1)":"#e5e7eb"}`,borderRadius:"12px",padding:"12px 14px"}},tn.default.createElement("div",{onClick:w=>{w.stopPropagation(),d(!c)},style:{display:"flex",alignItems:"center",justifyContent:"space-between",cursor:"pointer"}},tn.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:g}},s,l&&tn.default.createElement("span",{style:{color:b,fontWeight:400}}," \xB7 estimated")),tn.default.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:"8px"}},tn.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",fontWeight:600,color:y||h}},x),tn.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",color:b,display:"inline-block",transform:c?"rotate(90deg)":"none",transition:"transform 0.15s ease"}},">"))),tn.default.createElement("div",{style:{display:"flex",marginTop:"8px"}},k("9px")),m>=.9&&tn.default.createElement("div",{style:{marginTop:"6px",fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",color:"#dc2626"}},"[!] compaction imminent \u2014 next turn may drop the oldest messages"),c&&tn.default.createElement("div",{style:{marginTop:"10px",display:"grid",gap:"5px"}},[...p,{key:"__free",label:"Free space",tokens:Math.max(t-f,0)}].map(w=>tn.default.createElement("div",{key:w.key,style:{display:"flex",alignItems:"center",gap:"8px"}},tn.default.createElement("span",{style:{width:"9px",height:"9px",borderRadius:"2px",flexShrink:0,background:w.key==="__free"?v:S(w),border:w.key==="__free"?`1px solid ${u?"rgba(255,255,255,0.25)":"#d1d5db"}`:"none"}}),tn.default.createElement("span",{style:{fontSize:"13px",color:h,flex:1}},w.label),tn.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",color:g,width:"56px",textAlign:"right"}},ah(w.tokens)),tn.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",color:b,width:"46px",textAlign:"right"}},t>0?`${(w.tokens/t*100).toFixed(1)}%`:"\u2014"))),(n>0||o>0)&&tn.default.createElement("div",{style:{marginTop:"4px",paddingTop:"6px",borderTop:`1px solid ${u?"rgba(255,255,255,0.08)":"#f3f4f6"}`,display:"flex",gap:"16px",fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",color:b}},n>0&&tn.default.createElement("span",null,tn.default.createElement("span",{style:{color:"#2563eb"}},"[=]")," cached prefix ",ah(n)),o>0&&tn.default.createElement("span",null,tn.default.createElement("span",{style:{color:"#7c3aed"}},"[~]")," thinking ",ah(o)))))}var wt=Z(Q());var Le=Z(Q());var Zn=Z(Q());var we=Z(Q());var zG=["ui","json-ui","genui"],Yp="render_ui",Fs=e=>e!=null&&typeof e=="object"&&!Array.isArray(e),Q5=e=>{if(typeof e=="string")try{return JSON.parse(e)}catch{return}};function Xp(e){let t=typeof e=="string"?Q5(e):e;if(Array.isArray(t))return t.every(Fs)?t:null;if(Fs(t)){if(Array.isArray(t.blocks))return t.blocks.every(Fs)?t.blocks:null;if(Array.isArray(t.ui))return t.ui.every(Fs)?t.ui:null}return null}function R5(e,t){let r=String(e||"").trim().toLowerCase();if(zG.includes(r))return Xp(t);if(r==="json"){let n=Q5(t);return Fs(n)&&Array.isArray(n.ui)?Xp(n):null}return null}function eI(e){if(typeof e!="string")return null;let t=e.trim(),r=t.startsWith("{")&&t.endsWith("}"),n=t.startsWith("[")&&t.endsWith("]");if(!r&&!n)return null;let o=Q5(t);if(o==null||typeof o!="object")return null;if(Array.isArray(o))return o.length>0&&o.every(s=>Fs(s)&&typeof s.type=="string")?{blocks:o}:{object:o};let a=Xp(o);return a?{blocks:a}:{object:o}}var gwe=e=>Fs(e)?e.function?.name||e.name:void 0,hwe=e=>Fs(e)?e.function?.arguments??e.arguments??e.input:void 0;function ih(e,{callId:t}={}){if(!Fs(e))return null;if(e.tool_name===Yp&&e.tool_arguments!=null){let o=Xp(e.tool_arguments);if(o)return o}let r=e.tool_calls,n=[];if(Array.isArray(r)){let o=r.some(a=>Fs(a)&&a.id!=null);r.forEach(a=>{if(gwe(a)!==Yp||t!=null&&o&&a.id!==t)return;let i=Xp(hwe(a));i&&n.push(...i)})}else if(Fs(r)&&e.tool_name===Yp){let o=Xp(r);o&&n.push(...o)}return n.length>0?n:null}function UC(e){return typeof e=="string"&&/^(https?:\/\/|data:image\/)/i.test(e.trim())}function WC(e){if(typeof e!="string")return!1;let t=e.trim();if(/^data:image\//i.test(t))return!0;if(!/^https?:\/\//i.test(t)||typeof window>"u"||!window.location)return!1;try{return new URL(t,window.location.href).origin===window.location.origin}catch{return!1}}function BG(e){try{return new URL(String(e).trim()).host}catch{return""}}var KG=["#2a78d6","#eb6834","#1baf7a","#eda100","#e87ba4","#008300","#4a3aa7","#e34948"],ywe=["#3987e5","#d95926","#199e70","#c98500","#d55181","#008300","#9085e9","#e66767"],Xx=KG.length,FG=220,sh=e=>e!=null&&typeof e=="object"&&!Array.isArray(e),er=e=>e==null?"":typeof e=="object"?JSON.stringify(e):String(e),VG=e=>{if(typeof e!="number"||!Number.isFinite(e))return er(e);let t=Math.abs(e);return t>=1e9?`${(e/1e9).toFixed(1).replace(/\.0$/,"")}B`:t>=1e6?`${(e/1e6).toFixed(1).replace(/\.0$/,"")}M`:t>=1e4?`${(e/1e3).toFixed(1).replace(/\.0$/,"")}K`:e.toLocaleString()},oI=(e,t)=>typeof t=="string"&&Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0,UG={info:{light:["#eff6ff","#1d4ed8"],dark:["rgba(59,130,246,0.15)","#93c5fd"]},success:{light:["#f0fdf4","#15803d"],dark:["rgba(34,197,94,0.15)","#86efac"]},warning:{light:["#fffbeb","#b45309"],dark:["rgba(245,158,11,0.15)","#fcd34d"]},danger:{light:["#fef2f2","#b91c1c"],dark:["rgba(239,68,68,0.15)","#fca5a5"]}},vwe={positive:{light:"#15803d",dark:"#4ade80"},negative:{light:"#b91c1c",dark:"#f87171"}},tI=e=>({width:"100%",padding:"6px 10px",borderRadius:"8px",border:`1px solid ${e.inputBorder}`,background:e.inputBg,color:e.textPrimary,fontFamily:"inherit",fontSize:"13px"}),aI=e=>({background:e?"rgba(0,0,0,0.35)":"#f3f4f6",color:e?"#ffffff":"#111827",borderRadius:"6px",padding:"8px 10px",fontSize:"12px",overflowX:"auto",margin:0,whiteSpace:"pre-wrap"}),lh=e=>({fontSize:"13px",fontWeight:600,color:e.textPrimary,margin:0});function Iu({block:e,reason:t,colors:r,darkMode:n}){return we.default.createElement("div",{className:"text-xs",style:{color:r.textMuted}},we.default.createElement("div",{className:"mb-1"},"Unsupported block",e&&e.type?` \u201C${er(e.type)}\u201D`:"",t?` \u2014 ${t}`:""),we.default.createElement("pre",{style:{...aI(n),maxHeight:"160px",overflowY:"auto"}},JSON.stringify(e,null,2)))}function xwe({block:e,colors:t,darkMode:r,onAction:n}){let o=UC(e.image_url)&&WC(e.image_url)?e.image_url.trim():null;return we.default.createElement("div",{className:"overflow-hidden",style:{border:`1px solid ${t.cardBorder}`,borderRadius:"10px",background:t.innerBg}},o&&we.default.createElement("img",{src:o,alt:er(e.title),style:{width:"100%",maxHeight:"220px",objectFit:"cover",display:"block"}}),we.default.createElement("div",{className:"p-3 space-y-1.5"},e.title!=null&&we.default.createElement("div",{style:lh(t)},er(e.title)),e.body!=null&&we.default.createElement("div",{className:"text-sm",style:{color:t.textCell}},we.default.createElement(Us,{text:er(e.body),darkMode:r,onUiAction:n})),e.footer!=null&&we.default.createElement("div",{className:"text-xs pt-1",style:{color:t.textMuted,borderTop:`1px solid ${t.cardBorder}`}},er(e.footer))))}function GG({block:e,colors:t,darkMode:r}){let n=e.delta!=null?er(e.delta):null,o=e.tone||(n&&n.trim().startsWith("-")?"negative":n?"positive":"neutral"),a=oI(vwe,o),i=a?a[r?"dark":"light"]:t.textMuted,s=typeof e.value=="number"?VG(e.value):er(e.value);return we.default.createElement("div",{style:{background:t.innerBg,border:`1px solid ${t.cardBorder}`,borderRadius:"10px",padding:"10px 12px"}},we.default.createElement("div",{className:"text-xs",style:{color:t.textMuted}},er(e.label)),we.default.createElement("div",{className:"text-lg font-semibold leading-tight mt-0.5",style:{color:t.textPrimary}},s),n&&we.default.createElement("div",{className:"text-xs mt-0.5 font-medium",style:{color:i}},n))}function bwe({block:e,colors:t,darkMode:r}){let n=Array.isArray(e.items)?e.items.filter(sh):[];return n.length===0?we.default.createElement(Iu,{block:e,reason:"stats needs an items array",colors:t,darkMode:r}):we.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(140px, 1fr))",gap:"8px"}},n.map((o,a)=>we.default.createElement(GG,{key:a,block:o,colors:t,darkMode:r})))}var nI=(e,t)=>({padding:"6px 10px",borderBottom:`1px solid ${e.cardBorder}`,color:e.textCell,textAlign:t?"right":"left",fontVariantNumeric:t?"tabular-nums":void 0,verticalAlign:"top"}),wwe=e=>({padding:"6px 10px",borderBottom:`1px solid ${e.borderStrong}`,color:e.textSecondary,fontSize:"11px",fontWeight:600,textAlign:"left",fontFamily:Pt.mono,textTransform:"uppercase",letterSpacing:"0.04em",whiteSpace:"nowrap"});function YG({columns:e,rows:t,colors:r,renderCell:n}){return we.default.createElement("div",{style:{overflowX:"auto"}},we.default.createElement("table",{className:"text-sm",style:{width:"100%",borderCollapse:"collapse"}},we.default.createElement("thead",null,we.default.createElement("tr",null,e.map((o,a)=>we.default.createElement("th",{key:a,style:wwe(r)},er(o))))),we.default.createElement("tbody",null,t.map((o,a)=>we.default.createElement("tr",{key:a},e.map((i,s)=>{let l=o[s];return we.default.createElement("td",{key:s,style:nI(r,typeof l=="number")},n?n(l):typeof l=="number"?l.toLocaleString():er(l))}))))))}function Swe({block:e,colors:t,darkMode:r}){let n=Array.isArray(e.columns)?e.columns:null,o=Array.isArray(e.rows)?e.rows:null;if(!n||!o)return we.default.createElement(Iu,{block:e,reason:"table needs columns and rows arrays",colors:t,darkMode:r});let a=o.map(i=>Array.isArray(i)?i:sh(i)?n.map(s=>i[s]):[i]);return we.default.createElement("div",null,e.title!=null&&we.default.createElement("div",{className:"mb-1.5",style:lh(t)},er(e.title)),we.default.createElement(YG,{columns:n,rows:a,colors:t}))}var kwe=e=>{let t=e[0];return Object.keys(t).find(r=>typeof t[r]=="string")||Object.keys(t)[0]},_we=(e,t)=>Object.keys(e[0]).filter(r=>r!==t&&typeof e[0][r]=="number");function Cwe({block:e,colors:t,darkMode:r}){let n=String(e.chart||e.kind||"bar").toLowerCase(),o=Array.isArray(e.data)?e.data.filter(sh):[];if(o.length===0)return we.default.createElement(Iu,{block:e,reason:"chart needs a data array of objects",colors:t,darkMode:r});let a=typeof e.x=="string"?e.x:kwe(o),i=Array.isArray(e.series)?e.series.filter(b=>typeof b=="string"):[],s=(i.length>0?i:_we(o,a)).slice(0,Xx);if(!a||s.length===0)return we.default.createElement(Iu,{block:e,reason:"chart needs an x key and at least one series",colors:t,darkMode:r});let l=r?ywe:KG,u=t.cardBg,c={fontSize:10,fill:t.textMuted},d=we.default.createElement(Wc,{contentStyle:{background:u,border:`1px solid ${t.cardBorder}`,borderRadius:"8px",fontSize:"12px"},labelStyle:{color:t.textPrimary,fontWeight:600,marginBottom:"4px"},itemStyle:{color:t.textCell},formatter:b=>typeof b=="number"?b.toLocaleString():er(b)}),p=s.length>1||n==="pie"?we.default.createElement(LS,{wrapperStyle:{fontSize:"11px",color:t.textSecondary},iconSize:10}):null,f=we.default.createElement(we.default.Fragment,null,we.default.createElement(Cu,{stroke:t.cardBorder,vertical:!1}),we.default.createElement(Tu,{dataKey:a,stroke:t.borderStrong,tick:c,tickLine:!1}),we.default.createElement(Pu,{stroke:t.borderStrong,tick:c,tickLine:!1,axisLine:!1,tickFormatter:VG,width:44})),m={top:8,right:12,bottom:0,left:0},y;if(n==="line")y=we.default.createElement(V5,{data:o,margin:m},f,d,p,s.map((b,g)=>we.default.createElement(hC,{key:b,type:"monotone",dataKey:b,stroke:l[g],strokeWidth:2,dot:{r:4,strokeWidth:2,stroke:u,fill:l[g]},activeDot:{r:5,strokeWidth:2,stroke:u},isAnimationActive:!1})));else if(n==="area")y=we.default.createElement(rd,{data:o,margin:m},f,d,p,s.map((b,g)=>we.default.createElement(Eu,{key:b,type:"monotone",dataKey:b,stroke:l[g],strokeWidth:2,fill:l[g],fillOpacity:.12,dot:{r:3,strokeWidth:2,stroke:u,fill:l[g]},isAnimationActive:!1})));else if(n==="pie"){let b=s[0],g=[...o].sort((x,S)=>(Number(S[b])||0)-(Number(x[b])||0)),h=g.slice(0,Xx),v=g.slice(Xx);v.length>0&&(h[Xx-1]={[a]:"Other",[b]:v.reduce((x,S)=>x+(Number(S[b])||0),Number(h[Xx-1][b])||0)}),y=we.default.createElement(Z5,{margin:m},d,p,we.default.createElement(rC,{data:h,dataKey:b,nameKey:a,innerRadius:44,outerRadius:80,paddingAngle:2,stroke:u,strokeWidth:2,isAnimationActive:!1},h.map((x,S)=>we.default.createElement(wu,{key:S,fill:l[S]}))))}else y=we.default.createElement(G5,{data:o,margin:m,barCategoryGap:"25%",barGap:2},f,d,p,s.map((b,g)=>we.default.createElement(SC,{key:b,dataKey:b,fill:l[g],radius:[4,4,0,0],maxBarSize:24,isAnimationActive:!1})));return we.default.createElement("div",null,e.title!=null&&we.default.createElement("div",{className:"mb-1",style:lh(t)},er(e.title)),we.default.createElement("div",{style:{width:"100%",height:FG,minWidth:0}},we.default.createElement(Cc,{width:"100%",height:FG},y)))}function Awe({block:e,colors:t,darkMode:r,onAction:n}){let o=Array.isArray(e.items)?e.items:null;if(!o)return we.default.createElement(Iu,{block:e,reason:"list needs an items array",colors:t,darkMode:r});let a=e.ordered?"ol":"ul";return we.default.createElement("div",null,e.title!=null&&we.default.createElement("div",{className:"mb-1",style:lh(t)},er(e.title)),we.default.createElement(a,{className:`${e.ordered?"list-decimal":"list-disc"} pl-5 text-sm space-y-0.5`,style:{color:t.textCell}},o.map((i,s)=>we.default.createElement("li",{key:s},typeof i=="string"?we.default.createElement(Us,{text:i,darkMode:r,onUiAction:n}):er(i)))))}function Ewe({block:e,colors:t}){let r=Number(e.value),n=Number.isFinite(r)?Math.max(0,Math.min(100,r)):0;return we.default.createElement("div",null,we.default.createElement("div",{className:"flex items-center justify-between text-xs mb-1"},we.default.createElement("span",{style:{color:t.textCell}},er(e.label)),we.default.createElement("span",{className:"font-mono",style:{color:t.textMuted}},Math.round(n),"%")),we.default.createElement("div",{style:{height:"8px",borderRadius:"999px",background:t.trackBg,overflow:"hidden"}},we.default.createElement("div",{style:{width:`${n}%`,height:"100%",background:Qo,borderRadius:"999px",transition:"width 0.3s ease"}})))}var Nwe=["text","textarea","number","select","checkbox"],rI=e=>er(e.name||e.label),WG=e=>er(e.label||e.name),HG=e=>Nwe.includes(e.type)?e.type:"text";function Twe({block:e,colors:t,darkMode:r,onAction:n}){let o=(Array.isArray(e.fields)?e.fields:[]).filter(p=>sh(p)&&(p.name||p.label)),[a,i]=(0,we.useState)(()=>Object.fromEntries(o.map(p=>[rI(p),HG(p)==="checkbox"?!1:""]))),[s,l]=(0,we.useState)(!1);if(o.length===0)return we.default.createElement(Iu,{block:e,reason:"form needs fields",colors:t,darkMode:r});let u=e.submit!=null?er(e.submit):"Submit",c=(p,f)=>i(m=>({...m,[p]:f}));return we.default.createElement("form",{onSubmit:p=>{p.preventDefault();let f=o.map(m=>{let y=a[rI(m)];return`${WG(m)}: ${typeof y=="boolean"?y?"yes":"no":er(y)}`}).join("; ");l(!0),n&&n({kind:"form",text:`${e.submit!=null?er(e.submit):"Submitted"}: ${f}`,values:{...a}})},className:"space-y-2.5",style:{border:`1px solid ${t.cardBorder}`,borderRadius:"10px",background:t.innerBg,padding:"12px"}},e.title!=null&&we.default.createElement("div",{style:lh(t)},er(e.title)),o.map(p=>{let f=rI(p),m=HG(p),y=WG(p),b=`genui-field-${f.replace(/\W+/g,"-")}`;return m==="checkbox"?we.default.createElement("label",{key:f,className:"flex items-center gap-2 text-sm",style:{color:t.textCell}},we.default.createElement("input",{type:"checkbox",checked:!!a[f],onChange:g=>c(f,g.target.checked),style:{accentColor:Qo}}),y):we.default.createElement("div",{key:f},we.default.createElement("label",{htmlFor:b,className:"block text-xs mb-1",style:{color:t.textSecondary}},y,p.required?" *":""),m==="textarea"?we.default.createElement("textarea",{id:b,name:f,value:a[f],onChange:g=>c(f,g.target.value),placeholder:p.placeholder!=null?er(p.placeholder):void 0,required:!!p.required,rows:3,className:"aa-field",style:{...tI(t),resize:"vertical"}}):m==="select"?we.default.createElement("select",{id:b,name:f,value:a[f],onChange:g=>c(f,g.target.value),required:!!p.required,className:"aa-field",style:tI(t)},we.default.createElement("option",{value:""},p.placeholder!=null?er(p.placeholder):"Select\u2026"),(Array.isArray(p.options)?p.options:[]).map((g,h)=>we.default.createElement("option",{key:h,value:er(g)},er(g)))):we.default.createElement("input",{id:b,name:f,type:m==="number"?"number":"text",value:a[f],onChange:g=>c(f,m==="number"&&g.target.value!==""?Number(g.target.value):g.target.value),placeholder:p.placeholder!=null?er(p.placeholder):void 0,required:!!p.required,className:"aa-field",style:tI(t)}))}),we.default.createElement("div",{className:"flex items-center gap-3 pt-1"},we.default.createElement("button",{type:"submit","data-testid":"genui-form-submit",style:{padding:"6px 14px",borderRadius:"8px",fontSize:"13px",fontWeight:500,background:Qo,color:"#ffffff",border:"1px solid transparent",cursor:"pointer"}},u),s&&we.default.createElement("span",{className:"text-xs",style:{color:t.textMuted}},"Sent to the agent")))}function Owe({block:e,colors:t,darkMode:r,onAction:n}){let o=Array.isArray(e.options)?e.options:null,[a,i]=(0,we.useState)(null);return!o||o.length===0?we.default.createElement(Iu,{block:e,reason:"choices needs options",colors:t,darkMode:r}):we.default.createElement("div",null,e.prompt!=null&&we.default.createElement("div",{className:"text-sm mb-1.5",style:{color:t.textCell}},er(e.prompt)),we.default.createElement("div",{className:"flex flex-wrap gap-2"},o.map((s,l)=>{let u=er(s),c=a===l;return we.default.createElement("button",{key:l,type:"button","data-testid":"genui-choice",onClick:()=>{i(l),n&&n({kind:"choice",text:u})},style:{padding:"5px 12px",borderRadius:"999px",fontSize:"13px",cursor:"pointer",border:`1px solid ${c?Qo:t.inputBorder}`,background:c?Qo:"transparent",color:c?"#ffffff":t.textCell}},u)})))}function Pwe({url:e,alt:t,colors:r,darkMode:n}){let[o,a]=(0,we.useState)(!1);if(o)return we.default.createElement("img",{src:e,alt:t,style:{maxWidth:"100%",borderRadius:"8px",display:"block"}});let i=BG(e);return we.default.createElement("button",{type:"button",onClick:()=>a(!0),"data-testid":"genui-image-load",className:"text-xs w-full",style:{border:`1px dashed ${r.cardBorder}`,borderRadius:"8px",padding:"14px 12px",color:r.textMuted,background:n?"rgba(255,255,255,0.03)":"#f9fafb"}},"Load image from ",i||"another site")}function Mwe({block:e,colors:t,darkMode:r}){if(!UC(e.url))return we.default.createElement(Iu,{block:e,reason:"image URL must be http(s) or data:",colors:t,darkMode:r});let n=e.url.trim(),o=e.alt!=null?er(e.alt):"";return we.default.createElement("figure",{style:{margin:0}},WC(n)?we.default.createElement("img",{src:n,alt:o,style:{maxWidth:"100%",borderRadius:"8px",display:"block"}}):we.default.createElement(Pwe,{url:n,alt:o,colors:t,darkMode:r}),e.caption!=null&&we.default.createElement("figcaption",{className:"text-xs mt-1",style:{color:t.textMuted}},er(e.caption)))}function Iwe({block:e,colors:t,darkMode:r,onAction:n}){let[o,a]=(oI(UG,e.tone)||UG.info)[r?"dark":"light"];return we.default.createElement("div",{style:{background:o,borderLeft:`3px solid ${a}`,borderRadius:"8px",padding:"10px 12px"}},e.title!=null&&we.default.createElement("div",{className:"text-sm font-semibold mb-0.5",style:{color:a}},er(e.title)),we.default.createElement("div",{className:"text-sm",style:{color:t.textCell}},we.default.createElement(Us,{text:er(e.body),darkMode:r,onUiAction:n})))}function Dwe({block:e,colors:t,darkMode:r}){return we.default.createElement("div",null,e.language!=null&&we.default.createElement("div",{className:"text-xs font-mono mb-1",style:{color:t.textMuted}},er(e.language)),we.default.createElement("pre",{style:aI(r)},er(e.code)))}function qG({block:e,colors:t,darkMode:r,onAction:n}){let o=e.text??e.body??e.content??e.markdown;return we.default.createElement("div",{className:"text-sm",style:{color:t.textCell}},we.default.createElement(Us,{text:er(o),darkMode:r,onUiAction:n}))}var jwe=3;function HC({value:e,colors:t,darkMode:r,depth:n}){if(e==null||typeof e!="object")return typeof e=="boolean"?we.default.createElement("span",{className:"font-mono"},String(e)):typeof e=="number"?we.default.createElement("span",{style:{fontVariantNumeric:"tabular-nums"}},e.toLocaleString()):we.default.createElement("span",null,er(e));if(n>=jwe)return we.default.createElement("pre",{style:{...aI(r),maxHeight:"160px",overflowY:"auto"}},JSON.stringify(e,null,2));if(Array.isArray(e)){if(e.length===0)return we.default.createElement("span",{style:{color:t.textMuted}},"\u2014");if(e.every(sh)){let a=[...new Set(e.flatMap(i=>Object.keys(i)))];return we.default.createElement(YG,{columns:a,rows:e.map(i=>a.map(s=>i[s])),colors:t,renderCell:i=>we.default.createElement(HC,{value:i,colors:t,darkMode:r,depth:n+1})})}return e.every(a=>a==null||typeof a!="object")?we.default.createElement("span",null,e.map(er).join(", ")):we.default.createElement("ul",{className:"list-disc pl-5 space-y-0.5"},e.map((a,i)=>we.default.createElement("li",{key:i},we.default.createElement(HC,{value:a,colors:t,darkMode:r,depth:n+1}))))}let o=Object.entries(e);return o.length===0?we.default.createElement("span",{style:{color:t.textMuted}},"{}"):we.default.createElement("table",{className:"text-sm",style:{borderCollapse:"collapse",width:n===0?"100%":"auto"}},we.default.createElement("tbody",null,o.map(([a,i])=>we.default.createElement("tr",{key:a},we.default.createElement("th",{scope:"row",className:"font-mono text-xs",style:{...nI(t,!1),color:t.textSecondary,fontWeight:500,whiteSpace:"nowrap",width:"1%"}},a),we.default.createElement("td",{style:nI(t,!1)},we.default.createElement(HC,{value:i,colors:t,darkMode:r,depth:n+1}))))))}function $we({block:e,colors:t,darkMode:r}){let n="value"in e?e.value:e.data;return we.default.createElement("div",{style:{border:`1px solid ${t.cardBorder}`,borderRadius:"10px",overflow:"hidden"}},e.title!=null&&we.default.createElement("div",{className:"px-3 pt-2",style:lh(t)},er(e.title)),we.default.createElement("div",{className:"px-1 pb-1",style:{overflowX:"auto"}},we.default.createElement(HC,{value:n,colors:t,darkMode:r,depth:0})))}var Lwe={card:xwe,stat:GG,stats:bwe,table:Swe,chart:Cwe,list:Awe,progress:Ewe,form:Twe,choices:Owe,image:Mwe,callout:Iwe,code:Dwe,object:$we,text:qG,markdown:qG};function wl({blocks:e,onAction:t,darkMode:r=!1}){let n=Array.isArray(e)?e.filter(sh):[];if(n.length===0)return null;let o=Vi(r);return we.default.createElement("div",{className:"space-y-3",onClick:a=>a.stopPropagation()},n.map((a,i)=>{let s=typeof a.type=="string"?a.type.toLowerCase():"unknown",l=oI(Lwe,s);return we.default.createElement("div",{key:i,"data-testid":"genui-block","data-block-type":s},l?we.default.createElement(l,{block:a,colors:o,darkMode:r,onAction:t}):we.default.createElement(Iu,{block:a,colors:o,darkMode:r}))}))}var zwe=/(\*\*[^*]+\*\*|\*[^*\n]+\*|`[^`]+`|\[[^\]]+\]\((?:https?:\/\/|\/)[^)\s]+\))/g,Zx=(e,t)=>e.split(zwe).filter(Boolean).map((r,n)=>{let o=`${t}-${n}`;if(r.startsWith("**")&&r.endsWith("**"))return Zn.default.createElement("strong",{key:o},r.slice(2,-2));if(r.startsWith("*")&&r.endsWith("*")&&r.length>2)return Zn.default.createElement("em",{key:o},r.slice(1,-1));if(r.startsWith("`")&&r.endsWith("`"))return Zn.default.createElement("code",{key:o,className:"px-1 py-0.5 rounded text-[0.9em]",style:{background:"rgba(127,127,127,0.15)"}},r.slice(1,-1));let a=r.match(/^\[([^\]]+)\]\(((?:https?:\/\/|\/)[^)\s]+)\)$/);return a?Zn.default.createElement("a",{key:o,href:a[2],target:"_blank",rel:"noopener noreferrer",className:"underline text-blue-500"},a[1]):r}),XG=e=>/^\s*\|.*\|\s*$/.test(e),Bwe=e=>/^\s*\|(\s*:?-+:?\s*\|)+\s*$/.test(e),ZG=e=>e.trim().replace(/^\|/,"").replace(/\|$/,"").split(/(?t.replace(/\\\|/g,"|").trim());function Us({text:e,onUiAction:t,darkMode:r}){if(!e)return null;let n=[],o=String(e).split(` +`),a=0,i=0;for(;aZn.default.createElement("th",{key:f,className:"text-left font-semibold px-2 py-1",style:{borderBottom:"1px solid rgba(127,127,127,0.35)"}},Zx(p,`th${d}-${f}`))))),Zn.default.createElement("tbody",null,c.map((p,f)=>Zn.default.createElement("tr",{key:f},u.map((m,y)=>Zn.default.createElement("td",{key:y,className:"px-2 py-1 align-top",style:{borderBottom:"1px solid rgba(127,127,127,0.15)"}},Zx(p[y]??"",`td${d}-${f}-${y}`)))))))));continue}if(/^\s*([-*]|\d+\.)\s+/.test(s)){let u=[];for(;aZn.default.createElement("li",{key:d},Zx(c,`li${i}-${d}`)))));continue}if(s.trim()===""){n.push(Zn.default.createElement("div",{key:i++,className:"h-2"})),a+=1;continue}n.push(Zn.default.createElement("div",{key:i++},Zx(s,`p${i}`))),a+=1}return Zn.default.createElement("div",{className:"break-words"},n)}var Qa=Z(J()),Owe=e=>{let t=e.mcp_server||e.server;return t?`MCP server \xB7 ${t}`:typeof e.name=="string"&&e.name.startsWith("mcp__")?`MCP server \xB7 ${e.name.split("__")[1]}`:e.gem?`gem \xB7 ${e.gem}`:e.source?String(e.source):"agent-defined \xB7 method on the agent class"},Pwe=e=>Array.isArray(e.parameters)?e.parameters:e.parameters&&typeof e.parameters=="object"?Object.keys(e.parameters.properties||e.parameters):[];function oI({tool:e,darkMode:t}){let r=Pwe(e);return Qa.default.createElement("div",{style:{display:"grid",gap:"4px"}},e.description&&Qa.default.createElement("div",{className:"text-sm",style:{color:t?"rgba(255,255,255,0.75)":"#4b5563"}},e.description),Qa.default.createElement("div",{className:"text-xs font-mono",style:{color:t?"rgba(255,255,255,0.45)":"#9ca3af",display:"flex",flexWrap:"wrap",columnGap:"16px",rowGap:"4px"}},Qa.default.createElement("span",null,"params: ",r.length>0?r.join(", "):"none"),Qa.default.createElement("span",null,"source: ",Owe(e))))}function aI({tools:e,darkMode:t}){let[r,n]=(0,Qa.useState)(null),o=(e||[]).filter(s=>s&&s.name);if(o.length===0)return null;let a=o.find(s=>s.name===r),i=s=>({background:t?"rgba(34,197,94,0.12)":"#f0fdf4",color:t?"#86efac":"#15803d",border:`1px solid ${s?t?"#4ade80":"#22c55e":"transparent"}`,borderRadius:"6px",padding:"2px 8px",fontSize:"11px",cursor:"pointer"});return Qa.default.createElement("div",{style:{marginTop:"8px"}},Qa.default.createElement("div",{className:"flex items-center gap-1.5 flex-wrap font-mono"},Qa.default.createElement("span",{className:"text-xs uppercase",style:{letterSpacing:"0.05em",color:t?"rgba(255,255,255,0.45)":"#9ca3af"}},"tools"),o.map(s=>Qa.default.createElement("button",{key:s.name,onClick:l=>{l.stopPropagation(),n(r===s.name?null:s.name)},title:r===s.name?"Hide definition":"Show definition",style:i(r===s.name)},"\u2699 ",s.name))),a&&Qa.default.createElement("div",{onClick:s=>s.stopPropagation(),style:{marginTop:"6px",padding:"8px 10px",borderRadius:"8px",background:t?"rgba(34,197,94,0.06)":"#f7fef9",border:`1px solid ${t?"rgba(34,197,94,0.25)":"#bbf7d0"}`}},Qa.default.createElement(oI,{tool:a,darkMode:t})))}var Mwe=["application/json","application/xml","application/x-yaml","application/csv"],Iwe=/\.(csv|md|txt|json|ya?ml)$/i;function WG(e){let t=String(e?.type||e?.content_type||"").toLowerCase(),r=String(e?.name||e?.filename||"");return t.startsWith("image/")?"image":t==="application/pdf"?"document":t.startsWith("text/")||Mwe.includes(t)||Iwe.test(r)?"text":"file"}function HG(e){let t=Number(e);return!Number.isFinite(t)||t<0?"":t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function qG(e){if(typeof e!="string")return!1;let t=e.trim();if(/^(data:image\/|blob:)/i.test(t))return!0;if(/^\/[\\/]/.test(t))return!1;if(t.startsWith("/"))return!0;if(!/^https?:\/\//i.test(t)||typeof window>"u"||!window.location)return!1;try{return new URL(t,window.location.href).origin===window.location.origin}catch{return!1}}var KG=e=>e==null?null:e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(2)}s`,Jx=e=>{if(e==null)return null;if(typeof e=="object")return JSON.stringify(e,null,2);try{return JSON.stringify(JSON.parse(e),null,2)}catch{return null}},Dwe=["text","output","body","content"],VG=e=>{if(e==null)return null;if(typeof e=="object")return e;try{return JSON.parse(e)}catch{return null}},jwe=e=>{let t=VG(e.tool_result)??VG(e.content);if(!t||typeof t!="object"||Array.isArray(t))return null;let r=Dwe.find(a=>typeof t[a]=="string"&&t[a].trim().length>0);if(!r)return null;let n=[t.error&&"error",t.status!=null&&`status ${t.status}`,typeof t.url=="string"&&t.url.replace(/^https?:\/\//,""),typeof t.agent=="string"&&`\u2192 ${t.agent}`,t.truncated&&"truncated"].filter(Boolean).join(" \xB7 "),o=Object.fromEntries(Object.entries(t).filter(([a])=>a!==r));return{field:r,meta:n,body:t[r],rest:o}},$we=e=>!!(e.tool_name||e.tool_call_id||e.tool_arguments||e.tool_result||(e.tool_calls||[]).length>0||e.duration_ms!=null||Jx(e.content)),XG=280,Lwe=["tool","system","developer"],Qx=(e,t=XG)=>e.replace(/\s+/g," ").trim().slice(0,t),iI=e=>{if(e==null)return null;if(typeof e=="object")return JSON.stringify(e);try{return JSON.stringify(JSON.parse(e))}catch{return String(e)}},ZG=e=>{let t=e.tool_calls;return t?Array.isArray(t)?t.map(r=>({name:r.function?.name||r.name||e.tool_name,args:iI(r.function?.arguments??r.arguments??r.input)})):[{name:e.tool_name,args:iI(t)}]:[]},JG=e=>!!(e&&String(e).trim()&&String(e).trim()!=="\u2014"),zwe=e=>{let t=(e||[]).filter(Boolean),r=new Map,n=new Set;return t.forEach((o,a)=>{if(o.role!=="assistant"||JG(o.content))return;let i=ZG(o);if(i.length===0)return;let s=new Set;Array.isArray(o.tool_calls)?o.tool_calls.forEach(u=>u.id&&s.add(u.id)):o.tool_call_id&&s.add(o.tool_call_id);let l=[];for(let u=a+1;u0&&c.tool_call_id&&!s.has(c.tool_call_id))break;l.push(u)}l.length!==0&&(l.forEach((u,c)=>{let d=t[u],p=i.find(f=>f.name&&f.name===d.tool_name)||i[Math.min(c,i.length-1)];p&&p.args&&!d.tool_arguments&&r.set(u,{tool_arguments:p.args,created_at:o.created_at||d.created_at})}),n.add(a))}),t.map((o,a)=>r.has(a)?{...o,...r.get(a)}:o).filter((o,a)=>!n.has(a))},GG=e=>Lwe.includes(e.role)&&typeof e.content=="string"&&Qx(e.content).length>=XG,Bwe=({message:e,darkMode:t})=>{let r=e.trace_duration_ms||0;if(!r||e.span_duration_ms==null)return null;let n=Math.min((e.span_start_ms||0)/r*100,98),o=Math.max(e.span_duration_ms/r*100,2),a=e.role==="tool"?"#22c55e":e.role==="assistant"?"#ef4444":"#60a5fa";return Le.default.createElement("span",{title:`${Math.round(e.span_duration_ms)}ms \xB7 starts at ${Math.round(e.span_start_ms||0)}ms of ${Math.round(r)}ms`,style:{position:"relative",width:"96px",height:"5px",borderRadius:"999px",background:t?"rgba(255,255,255,0.08)":"#f3f4f6",flexShrink:0,marginTop:"8px",display:"inline-block"}},Le.default.createElement("span",{style:{position:"absolute",top:0,bottom:0,left:`${n}%`,width:`${Math.min(o,100-n)}%`,borderRadius:"999px",background:a}}))},HC=e=>({background:e?"rgba(0,0,0,0.35)":"#f3f4f6",color:e?"#ffffff":"#111827",borderRadius:"6px",padding:"8px 10px",fontSize:"12px",overflowX:"auto",margin:0}),Ln=(e,t)=>{let{tone:r,label:n}=k6(e),o=Dn[r]||Dn.muted;return{background:o.soft,color:o.text,label:n,tone:r}},YG={image:"IMG",document:"PDF",text:"TXT",file:"FILE"};function qC({attachments:e,darkMode:t,testId:r,onRemove:n,removeTestId:o}){let a=(e||[]).filter(Boolean);if(a.length===0)return null;let i=Ki(t);return Le.default.createElement("div",{className:"flex flex-wrap gap-2 mt-1.5"},a.map((s,l)=>{let u=String(s.content_type||""),c=(s.kind==="image"||u.startsWith("image/"))&&qG(s.url),d=HG(s.byte_size);return Le.default.createElement("span",{key:s.id??`${s.filename}-${l}`,"data-testid":r,title:[s.filename,u,d].filter(Boolean).join(" \xB7 "),className:"inline-flex items-center gap-2 rounded-lg px-2 py-1 text-xs",style:{background:i.mutedBg,border:`1px solid ${i.cardBorder}`,color:i.textCell,maxWidth:"260px"}},c?Le.default.createElement("img",{src:s.url,alt:s.filename||"",style:{width:"36px",height:"36px",objectFit:"cover",borderRadius:"4px",flexShrink:0}}):Le.default.createElement("span",{className:"font-mono",style:{color:i.textMuted,flexShrink:0}},YG[s.kind]||YG.file),Le.default.createElement("span",{className:"min-w-0"},Le.default.createElement("span",{className:"block truncate"},s.filename||"attachment"),d&&Le.default.createElement("span",{className:"block font-mono",style:{color:i.textMuted}},d)),n&&Le.default.createElement("button",{type:"button","data-testid":o,onClick:p=>{p.stopPropagation(),n(s,l)},title:"Remove","aria-label":`Remove ${s.filename||"attachment"}`,className:"font-mono",style:{color:i.textMuted,background:"none",border:"none",cursor:"pointer",padding:"0 2px"}},"\u2715"))}))}var QG=e=>{let t=new Set;return Array.isArray(e.tool_calls)?e.tool_calls.forEach(r=>r&&r.id!=null&&t.add(r.id)):e.tool_call_id&&t.add(e.tool_call_id),t},Fwe=(e,t)=>{let r=ih(e);if(r)return r;let n=t.find(o=>o&&o.role==="assistant"&&(e.tool_call_id?QG(o).has(e.tool_call_id):ih(o)));return n?ih(n,{callId:e.tool_call_id}):null},Uwe=(e,t)=>{let r=QG(e);return t.some(n=>n&&n.role==="tool"&&n.tool_name===Yp&&(!n.tool_call_id||r.size===0||r.has(n.tool_call_id)))};function ps({messages:e,darkMode:t,tools:r,onUiAction:n,onEditMessage:o,onDeleteMessage:a,testIdPrefix:i}){let[s,l]=(0,Le.useState)({}),[u,c]=(0,Le.useState)(null),[d,p]=(0,Le.useState)(""),[f,m]=(0,Le.useState)(!1),[y,b]=(0,Le.useState)(null),g=A=>l(C=>({...C,[A]:!C[A]})),h={textPrimary:t?"#ffffff":"#111827",textSecondary:t?"rgba(255,255,255,0.6)":"#6b7280",textMuted:t?"rgba(255,255,255,0.4)":"#9ca3af"},v=A=>i?`${i}-${A}`:void 0,x=A=>A.stopPropagation(),S=A=>{c(A.id),p(A.content||""),b(null)},k=()=>{c(null),b(null)},w=async A=>{if(!f){m(!0),b(null);try{await o(A,d),c(null)}catch(C){b(C.message||"Could not save the message")}finally{m(!1)}}},_=zwe(e);return Le.default.createElement("div",{className:"space-y-3"},_.map(A=>{let C=Ln(A.role,t),N=!!s[A.id],L=u===A.id,Q=!!((o||a)&&["user","assistant"].includes(A.role)),B=A.role==="tool"&&A.tool_name===Yp?Fwe(A,_):null,K=A.role==="assistant"&&!L?Q5(A.content):null,T=A.role==="assistant"&&!Uwe(A,_)?ih(A):null,O=GG(A)&&!N,I=$we(A)||GG(A),P=Jx(A.tool_arguments),j=Jx(A.tool_result)||Jx(A.content),M=A.tool_calls&&(!Array.isArray(A.tool_calls)||A.tool_calls.length>0)?Jx(A.tool_calls):null,W=A.role==="tool"?jwe(A):null,Y=A.tool_name?(r||[]).find(R=>R&&R.name===A.tool_name):null,z=A.role==="tool"?iI(A.tool_arguments):null,V=A.role==="tool"&&!!z,q=Ln("assistant",t),oe=Ln("tool",t),Me=A.role==="tool"&&!A.tool_arguments&&_.some(R=>R&&R.role==="assistant"&&(A.tool_call_id&&R.tool_call_id===A.tool_call_id||Array.isArray(R.tool_calls)&&R.tool_calls.some(te=>te.id&&te.id===A.tool_call_id))),fe=A.role==="assistant"&&!JG(A.content)?ZG(A):[],le=HC(t);return Le.default.createElement("div",{key:A.id,className:"group","data-testid":i,"data-message-id":i?A.id:void 0,"data-role":i?A.role:void 0},Le.default.createElement("div",{className:`flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 ${I?"cursor-pointer":""}`,onClick:I?()=>g(A.id):void 0,style:N?{background:t?"rgba(255,255,255,0.04)":"rgba(0,0,0,0.03)"}:{}},Le.default.createElement("span",{className:"flex flex-col gap-1 flex-shrink-0 mt-0.5",style:{minWidth:"72px"}},(V?[q,oe]:[C]).map(R=>Le.default.createElement(ke,{key:R.label,tone:R.tone,style:{justifyContent:"center"}},R.label))),Le.default.createElement("div",{className:"min-w-0 flex-1"},Le.default.createElement("div",{className:"text-sm break-words",style:{color:h.textPrimary}},L?Le.default.createElement("div",{className:"space-y-2",onClick:x},Le.default.createElement("textarea",{"data-testid":v("editor"),value:d,onChange:R=>p(R.target.value),onKeyDown:R=>{R.key==="Escape"&&k(),R.key==="Enter"&&(R.metaKey||R.ctrlKey)&&w(A)},rows:Math.min(12,Math.max(3,d.split(` -`).length)),autoFocus:!0,className:"aa-field w-full",style:{padding:"8px 10px",borderRadius:"8px",border:`1px solid ${t?"rgba(255,255,255,0.2)":"#d1d5db"}`,background:t?"rgba(255,255,255,0.06)":"#ffffff",color:h.textPrimary,fontFamily:"inherit",fontSize:"13px",resize:"vertical"}}),Le.default.createElement("div",{className:"flex items-center gap-2 text-xs"},Le.default.createElement("button",{type:"button","data-testid":v("save"),onClick:()=>w(A),disabled:f,style:{padding:"4px 10px",borderRadius:"6px",background:"#ef4444",color:"#ffffff",border:"none",cursor:f?"wait":"pointer",fontWeight:500}},f?"Saving\u2026":"Save"),Le.default.createElement("button",{type:"button","data-testid":v("cancel"),onClick:k,disabled:f,style:{padding:"4px 10px",borderRadius:"6px",background:"transparent",color:h.textSecondary,border:`1px solid ${t?"rgba(255,255,255,0.2)":"#d1d5db"}`,cursor:"pointer"}},"Cancel"),y&&Le.default.createElement("span",{style:{color:"#dc2626"}},y))):B?Le.default.createElement("div",null,Le.default.createElement("div",{className:"font-mono text-xs mb-1",style:{color:oe.color}},"\u2699 ",A.tool_name," \xB7 ",B.length," block",B.length===1?"":"s"),Le.default.createElement(wl,{blocks:B,onAction:n,darkMode:t})):A.role==="tool"?Le.default.createElement("span",{style:{display:"grid",gap:"2px"}},z&&!Me&&Le.default.createElement("span",{className:"font-mono text-xs break-words"},A.tool_name&&Le.default.createElement("span",{style:{color:oe.color}},"\u2699 ",A.tool_name," "),Le.default.createElement("span",{style:{color:V?q.color:h.textMuted}},"in:")," ",Qx(z,180),z.length>180?"\u2026":""),W?Le.default.createElement("span",null,A.tool_name&&!(z&&!Me)&&Le.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:oe.color}},"\u2699 ",A.tool_name),(z||Me)&&Le.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:V?oe.color:h.textMuted}},"out:"),W.meta&&Le.default.createElement("span",{className:"font-mono text-xs mr-2",style:{color:h.textMuted}},W.meta),"\u201C",W.body.replace(/\s+/g," ").trim().slice(0,180),W.body.length>180?"\u2026":"","\u201D"):A.content?Le.default.createElement("span",null,A.tool_name&&!(z&&!Me)&&Le.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:oe.color}},"\u2699 ",A.tool_name),(z||Me)&&Le.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:V?oe.color:h.textMuted}},"out:"),"\u201C",Qx(A.content,180),A.content.replace(/\s+/g," ").trim().length>180?"\u2026":"","\u201D"):Le.default.createElement("span",{className:"whitespace-pre-wrap"},A.tool_name?`\u2192 ${A.tool_name}(...)`:"\u2014")):O?Le.default.createElement("span",{style:{color:h.textSecondary}},Qx(A.content),"\u2026"):fe.length>0?Le.default.createElement("span",{style:{display:"grid",gap:"2px"}},fe.map((R,te)=>Le.default.createElement("span",{key:te,className:"font-mono text-xs break-words"},R.name&&Le.default.createElement("span",{style:{color:h.textMuted}},R.name," "),Le.default.createElement("span",{style:{color:h.textMuted}},"in:")," ",R.args?Le.default.createElement(Le.default.Fragment,null,Qx(R.args,180),R.args.length>180?"\u2026":""):"\u2014"))):K&&K.blocks?Le.default.createElement(wl,{blocks:K.blocks,onAction:n,darkMode:t}):K&&K.object?Le.default.createElement(wl,{blocks:[{type:"object",value:K.object}],darkMode:t}):Le.default.createElement(Us,{text:A.content||"\u2014",darkMode:t,onUiAction:n}),T&&!L&&Le.default.createElement("div",{className:"mt-2"},Le.default.createElement(wl,{blocks:T,onAction:n,darkMode:t})),A.role==="user"&&Le.default.createElement(qC,{attachments:A.attachments,darkMode:t,testId:v("attachment")})),Le.default.createElement("div",{className:"text-xs mt-0.5 font-mono flex items-center gap-2 flex-wrap",style:{color:h.textMuted}},Q&&!L&&Le.default.createElement("span",{className:"flex items-center gap-2 opacity-0 group-hover:opacity-100 focus-within:opacity-100 transition-opacity",onClick:x},o&&Le.default.createElement("button",{type:"button","data-testid":v("edit"),onClick:()=>S(A),className:"hover:underline",style:{color:h.textSecondary,background:"none",border:"none",padding:0,cursor:"pointer",font:"inherit"}},"Edit"),a&&Le.default.createElement("button",{type:"button","data-testid":v("delete"),onClick:()=>a(A),className:"hover:underline",style:{color:"#dc2626",background:"none",border:"none",padding:0,cursor:"pointer",font:"inherit"}},"Delete")),A.created_at&&Le.default.createElement("span",null,new Date(A.created_at).toLocaleTimeString()),A.tool_name&&A.role!=="tool"&&Le.default.createElement("span",{className:"px-1.5 py-0.5 rounded",style:{background:C.background,color:C.color}},"\u2699 ",A.tool_name),A.duration_ms!=null&&Le.default.createElement("span",null,KG(A.duration_ms)),(A.tool_calls||[]).length>0&&Le.default.createElement("span",null,A.tool_calls.length," tool call",A.tool_calls.length>1?"s":""),A.content_checksum&&Le.default.createElement("span",{title:"Content fingerprint"},"\u{1F512} ",A.content_checksum.slice(0,8)))),Le.default.createElement(Bwe,{message:A,darkMode:t}),I&&Le.default.createElement("svg",{className:`w-3.5 h-3.5 mt-1 flex-shrink-0 transition-transform ${N?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",style:{color:h.textMuted}},Le.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))),N&&Le.default.createElement("div",{className:"ml-3 mt-1 mb-2 pl-4 space-y-2 border-l-2",style:{borderColor:C.color+"55"}},Le.default.createElement("div",{className:"flex flex-wrap gap-x-5 gap-y-1 text-xs font-mono",style:{color:h.textSecondary}},A.created_at&&Le.default.createElement("span",null,new Date(A.created_at).toLocaleString()),A.tool_call_id&&Le.default.createElement("span",null,"call: ",A.tool_call_id),A.duration_ms!=null&&Le.default.createElement("span",null,"took ",KG(A.duration_ms)),A.content_checksum&&Le.default.createElement("span",null,"\u{1F512} ",A.content_checksum)),P&&Le.default.createElement("div",null,Le.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:V?q.color:h.textMuted}},"Arguments",V?" \xB7 from the agent":""),Le.default.createElement("pre",{style:le},P)),W?Le.default.createElement("div",null,Le.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:V?oe.color:h.textMuted}},"Result",V?" \xB7 from the tool":""),Object.keys(W.rest).length>0&&Le.default.createElement("pre",{style:le},JSON.stringify(W.rest,null,2)),Le.default.createElement("div",{className:"text-xs uppercase tracking-wide mt-2 mb-1",style:{color:h.textMuted}},W.field," \xB7 ",W.body.length.toLocaleString()," chars"),Le.default.createElement("pre",{style:{...le,whiteSpace:"pre-wrap",maxHeight:"320px",overflowY:"auto"}},W.body.slice(0,8e3),W.body.length>8e3?` -\u2026`:"")):j?Le.default.createElement("div",null,Le.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:h.textMuted}},A.role==="tool"?"Result":"Content (parsed)"),Le.default.createElement("pre",{style:le},j)):A.role==="tool"&&A.content?Le.default.createElement("div",null,Le.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:V?oe.color:h.textMuted}},"Result",V?" \xB7 from the tool":""," \xB7 ",A.content.length.toLocaleString()," chars"),Le.default.createElement("pre",{style:{...le,whiteSpace:"pre-wrap",maxHeight:"320px",overflowY:"auto"}},A.content.slice(0,8e3),A.content.length>8e3?` -\u2026`:"")):null,M&&Le.default.createElement("div",null,Le.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:h.textMuted}},"Requested tool calls"),Le.default.createElement("pre",{style:le},M)),Y&&Le.default.createElement("div",null,Le.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:h.textMuted}},"Tool definition"),Le.default.createElement(oI,{tool:Y,darkMode:t}))))}))}var or=Z(J());var ln=Z(J());var Jn=e=>({cardBg:e?"#1f1f1f":"#ffffff",cardBorder:e?"#2a2a2a":"#e5e7eb",innerBg:e?"rgba(255,255,255,0.04)":"#f9fafb",panelBg:e?"rgba(0,0,0,0.35)":"#f9fafb",preBg:e?"rgba(255,255,255,0.06)":"#eef0f3",trackBg:e?"rgba(255,255,255,0.08)":"#f3f4f6",hoverBg:e?"rgba(255,255,255,0.04)":"#f9fafb",controlBg:e?"rgba(255,255,255,0.06)":"#f3f4f6",controlActiveBg:e?"#2a2a2a":"#ffffff",textPrimary:e?"#ffffff":"#111827",textSecondary:e?"rgba(255,255,255,0.6)":"#6b7280",textMuted:e?"rgba(255,255,255,0.4)":"#9ca3af",textBody:e?"rgba(255,255,255,0.75)":"#4b5563",link:"#3b82f6",good:e?"#4ade80":"#16a34a",bad:"#ef4444"}),RG=(e,t=200)=>{let r=String(e??"").replace(/\s+/g," ").trim();return r.length>t?`${r.slice(0,t)}\u2026`:r};function Zp({open:e,darkMode:t,size:r=14,style:n}){return ln.default.createElement("svg",{className:`flex-shrink-0 transition-transform ${e?"rotate-180":""}`,width:r,height:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",style:{color:Jn(t).textMuted,...n},"aria-hidden":"true"},ln.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))}function KC({darkMode:e,id:t,children:r,style:n,className:o=""}){let a=Jn(e);return ln.default.createElement("div",{id:t,className:`rounded-xl border overflow-hidden transition-colors ${o}`,style:{backgroundColor:a.cardBg,borderColor:a.cardBorder,...n}},r)}var Na={context:132,duration:76,tokens:104,cost:88,status:68,count:96,age:76};function ad({cells:e,darkMode:t,gap:r=16,className:n="",style:o}){let a=Jn(t),i=(e||[]).filter(Boolean);return i.length===0?null:ln.default.createElement("div",{className:`flex-shrink-0 text-sm ${n}`,style:{display:"grid",gridTemplateColumns:i.map(s=>s.width?`${s.width}px`:"minmax(0, auto)").join(" "),alignItems:"center",columnGap:`${r}px`,color:a.textSecondary,...o}},i.map(s=>{let l=s.content!=null&&s.content!==!1&&s.content!=="";return ln.default.createElement("div",{key:s.key,title:(l?s.title:s.empty)||void 0,className:"min-w-0 truncate",style:{textAlign:s.align||"right"}},l?s.content:ln.default.createElement("span",{style:{color:a.textMuted}},"\u2014"))}))}var eY=(e,{wrap:t=!0,maxHeight:r=320}={})=>({background:Jn(e).preBg,borderRadius:"6px",padding:"6px 8px",margin:"2px 0 4px 0",overflowX:"auto",overflowY:"auto",maxHeight:`${r}px`,whiteSpace:t?"pre-wrap":"pre"}),Wwe=e=>{if(e==null)return{text:"",json:!1};if(typeof e=="object")return{text:JSON.stringify(e,null,2),json:!0};let t=String(e);if(!/^[[{]/.test(t.trim()))return{text:t,json:!1};try{return{text:JSON.stringify(JSON.parse(t),null,2),json:!0}}catch{return{text:t,json:!1}}};function uh({lines:e,darkMode:t,onClick:r,indent:n=0,size:o="12px",style:a,max:i=200,hold:s=!1}){let[l,u]=ch(),c=Jn(t),d=(e||[]).filter(p=>p&&(p.text||s));return d.some(p=>p.text)?ln.default.createElement("div",{onClick:r,className:"min-w-0",style:{display:"grid",gap:"2px",paddingLeft:n?`${n}px`:0,fontFamily:Pt.mono,fontSize:o,color:c.textSecondary,cursor:r?"pointer":"default",...a}},d.map((p,f)=>{let m=`${p.label}-${f}`,y=l(m),b=p.max||i,g=!p.text,h=String(p.text??"").replace(/\s+/g," ").trim(),v=Wwe(p.text),x=!g&&(v.json||h.length>60||h!==String(p.text).trim());return ln.default.createElement("div",{key:m},ln.default.createElement("div",{onClick:x?S=>{S.stopPropagation(),u(m)}:void 0,title:x?y?"Collapse":"Expand":void 0,style:{cursor:x?"pointer":"default",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0}},ln.default.createElement("span",{style:{color:p.color||c.textMuted}},x?y?"\u25BE":"\u25B8":"\xA0"," ",p.label,":")," ",!y&&(g?ln.default.createElement("span",{style:{color:c.textMuted}},"\u2014"):RG(h,b))),y&&ln.default.createElement("pre",{onClick:S=>S.stopPropagation(),style:eY(t,{wrap:!v.json})},v.text))})):null}function Rx({options:e,value:t,onChange:r,darkMode:n,label:o,style:a}){let i=Jn(n);return ln.default.createElement("div",{className:"flex items-center gap-1 flex-shrink-0",style:a},o&&ln.default.createElement("span",{className:"text-xs mr-1",style:{color:i.textMuted}},o),e.map(s=>ln.default.createElement("button",{key:s.id,type:"button",onClick:l=>{l.stopPropagation(),r(s.id)},title:s.hint,className:"px-2 py-0.5 text-xs rounded transition-colors",style:t===s.id?{background:i.controlActiveBg,color:i.textPrimary,boxShadow:n?"none":"0 1px 2px rgba(0,0,0,0.08)"}:{color:i.textSecondary}},s.label)))}function tY({label:e,body:t,open:r,onToggle:n,darkMode:o,prose:a=!1,max:i=140}){let s=Jn(o);return ln.default.createElement("div",null,ln.default.createElement("div",{onClick:l=>{l.stopPropagation(),n()},title:r?"Collapse":"Expand",style:{cursor:"pointer",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},ln.default.createElement("span",{style:{color:s.textMuted}},r?"\u25BE":"\u25B8"," ",e,":")," ",!r&&ln.default.createElement("span",{style:{color:s.textMuted}},RG(t,i))),r&&ln.default.createElement("pre",{onClick:l=>l.stopPropagation(),style:eY(o,{wrap:a})},t))}function ch(e={}){let[t,r]=(0,ln.useState)(e),n=(0,ln.useCallback)(a=>{r(i=>({...i,[a]:!i[a]}))},[]);return[(0,ln.useCallback)(a=>!!t[a],[t]),n,r]}var sI={root:"#9ca3af",prompt:"#60a5fa",generate:"#a855f7",llm:"#ef4444",thinking:"#fbbf24",tool:"#22c55e",response:"#2dd4bf",embedding:"#818cf8"},nY=[{id:"time",label:"Time",hint:"Chronological \u2014 reads as a waterfall"},{id:"duration",label:"Slowest",hint:"Longest-running first"},{id:"name",label:"Name",hint:"Group repeated tool calls together"}],Qn=e=>e==null?"\u2014":e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(2)}s`,lI=e=>{switch(e){case"root":return Fo.spans.root;case"prompt":return Fo.spans.prompt;case"generate":return Fo.spans.generate;case"llm":return Fo.spans.llm;case"thinking":return Fo.spans.thinking;case"tool":return Fo.spans.tool;case"response":return Fo.spans.response;default:return"-"}},Hwe=(e,t)=>{let r=Math.max(e||0,1),n=Math.max(t||1,1);if(n<=1)return 100;let o=Math.log(r)/Math.log(n);return Math.min(100,Math.max(4,o*100))},qwe=(e,t)=>{let r=[...e||[]];switch(t){case"duration":return r.sort((n,o)=>(o.duration||0)-(n.duration||0));case"name":return r.sort((n,o)=>(n.name||"").localeCompare(o.name||""));default:return r.sort((n,o)=>(n.start||0)-(o.start||0))}},Kwe=e=>{let t=e.tokens||{};return(t.input||0)+(t.output||0)+(t.thinking||0)},Vwe=(e,t)=>{if(!t.duration_ms)return Qn(e.duration);let r=(e.duration||0)/t.duration_ms*100;return`${Qn(e.duration)} \xB7 ${r<1?r.toFixed(2):r.toFixed(1)}%`},Gwe=e=>{if(typeof e!="string")return null;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return null}},rY=e=>e.endsWith(".instructions")?0:e.endsWith(".tools")?1:e.endsWith(".messages")?3:2,uI=e=>{let t=e.spans||[],r=a=>{for(let i of t){let s=(i.attributes||{})[a];if(s)return s}return null},n=r("llm.prompt");if(!n){let a=r("prompt.input.messages");if(a)try{n=[...JSON.parse(a)].reverse().find(l=>l&&l.role==="user"&&l.content)?.content}catch{}}let o=r("llm.completion")||r("llm.output.message");return{input:n,output:o}},Ywe=e=>{let t=e.attributes||{},r=null,n="input",o="user";if(t["prompt.input.messages"])try{let u=[...JSON.parse(t["prompt.input.messages"])].reverse().find(c=>c&&c.role==="user"&&c.content);typeof u?.content=="string"&&(r=u.content)}catch{}if(!r&&t["llm.prompt"]&&(r=String(t["llm.prompt"])),!r&&(t["tool.input.args"]||t["tool.arguments"])){let l=t["tool.input.args"]||t["tool.arguments"];r=typeof l=="string"?l:JSON.stringify(l),n="in",o="assistant"}let a=null,i="output",s="assistant";return t["llm.output.message"]||t["llm.completion"]?a=t["llm.output.message"]||t["llm.completion"]:(t["tool.output.result"]||t["tool.result"])&&(a=t["tool.output.result"]||t["tool.result"],i="out",s="tool"),a!=null&&typeof a!="string"&&(a=JSON.stringify(a)),{input:r,output:a,inputLabel:n,inputTone:o,outputLabel:i,outputTone:s}},Xwe=(e,t)=>{let r=Ywe(e),n=uI(t);return r.input&&r.input===n.input&&(r.input=null),r.output&&r.output===n.output&&(r.output=null),r},Zwe=e=>{let t={...e.attributes||{}},r=p=>{let f=t[p];return delete t[p],f},n=[],o=p=>n.push({id:`${e.span_id}-m${n.length}`,...p}),a=r("prompt.input.instructions")||r("llm.instructions");a&&o({role:"system",content:String(a)});let i=r("prompt.input.messages");if(i)try{JSON.parse(i).forEach(p=>{p&&o({role:p.role||"user",content:typeof p.content=="string"?p.content:JSON.stringify(p.content),tool_call_id:p.tool_call_id,tool_calls:p.tool_calls})})}catch{t["prompt.input.messages"]=i}let s=r("llm.prompt");s&&o({role:"user",content:String(s)});let l=r("tool.input.args")||r("tool.arguments"),u=r("tool.output.result")||r("tool.result");if(l||u){let p=r("tool.name");o({role:"tool",tool_name:p||(e.name||"").replace(/^tool\./,""),tool_arguments:l,content:u?String(u):null})}let c=r("llm.completion"),d=r("llm.output.message");return(c||d)&&o({role:"assistant",content:String(c||d)}),{messages:n,rest:t}},cI=e=>{for(let t of e?.spans||[]){let r=(t.attributes||{})["prompt.input.tools"];if(r)try{let n=typeof r=="string"?JSON.parse(r):r;if(Array.isArray(n)&&n.length>0)return n}catch{}}return[]};function Jwe({span:e,darkMode:t,tools:r=[]}){let[n,o]=ch(),a=Jn(t),{messages:i,rest:s}=Zwe(e),l=null,u=s["prompt.input.tools"];if(u)try{let f=typeof u=="string"?JSON.parse(u):u;Array.isArray(f)&&f.length>0&&(l=f,delete s["prompt.input.tools"])}catch{}let c=Object.entries(s).sort((f,m)=>rY(f[0])-rY(m[0])),d=i.length===1&&i[0].role==="tool"?i[0]:null,p=d?.tool_arguments==null?null:typeof d.tool_arguments=="string"?d.tool_arguments:JSON.stringify(d.tool_arguments);return or.default.createElement("div",{onClick:f=>f.stopPropagation(),style:{margin:"4px 0 8px 0",padding:"10px 12px",borderRadius:"8px",background:a.panelBg,border:`1px solid ${a.cardBorder}`,fontFamily:Pt.mono,fontSize:"12px",color:a.textBody,cursor:"default"}},or.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 20px"}},or.default.createElement("span",null,"duration: ",Qn(e.duration)),or.default.createElement("span",null,"status: ",e.status||"OK"),Kwe(e)>0&&or.default.createElement("span",null,"tokens in:",e.tokens.input||0," out:",e.tokens.output||0,e.tokens.thinking>0?` thinking:${e.tokens.thinking}`:""),or.default.createElement("span",{style:{color:a.textMuted}},"span: ",e.span_id)),d&&or.default.createElement("div",{style:{marginTop:"8px",display:"grid",gap:"4px"}},or.default.createElement("div",{style:{fontSize:"12px",wordBreak:"break-all"}},or.default.createElement("span",{style:{color:Ln("tool",t).color}},"\u2699 ",d.tool_name),p&&or.default.createElement(or.default.Fragment,null," ",or.default.createElement("span",{style:{color:Ln("assistant",t).color}},"in:")," ",or.default.createElement("span",{style:{color:a.textBody}},p))),d.content&&or.default.createElement("div",{style:{fontSize:"12px"}},or.default.createElement("span",{style:{color:Ln("tool",t).color}},"out:")," ",or.default.createElement("span",{style:{color:a.textBody,whiteSpace:"pre-wrap",display:"inline-block",maxHeight:"240px",overflowY:"auto",verticalAlign:"top",maxWidth:"100%"}},d.content))),i.length>0&&!d&&or.default.createElement("div",{style:{marginTop:"10px",fontFamily:"ui-sans-serif, system-ui, sans-serif"}},or.default.createElement(ps,{messages:i,darkMode:t,tools:l||r})),l&&or.default.createElement(aI,{tools:l,darkMode:t}),c.length>0&&or.default.createElement("div",{style:{marginTop:"6px",display:"grid",gap:"2px"}},c.map(([f,m])=>{let y=f.match(/args|result|input|output/)?Gwe(m):null,b=!y&&(f.endsWith(".instructions")||f.match(/input|output|result/))&&typeof m=="string"?m:null,g=y||b;if(!g)return or.default.createElement("div",{key:f,style:{wordBreak:"break-all"}},or.default.createElement("span",{style:{color:a.textMuted}},f,":")," ",typeof m=="string"?m:JSON.stringify(m));let h=`${e.span_id}:${f}`;return or.default.createElement(tY,{key:f,label:f,body:g,prose:!y,darkMode:t,open:n(h),onToggle:()=>o(h)})})))}function Qwe({span:e,trace:t,darkMode:r,sort:n,longest:o,expanded:a,onToggle:i,tools:s}){let l=Jn(r),u=Object.keys(e.attributes||{}).length>0,c=a?null:Xwe(e,t);return or.default.createElement(or.default.Fragment,null,or.default.createElement("div",{className:`py-0.5 px-1 -mx-1 rounded transition-colors ${u?`cursor-pointer ${r?"hover:bg-white/5":"hover:bg-gray-100"}`:""}`,style:{paddingLeft:n==="time"?`${(e.nested||0)*16}px`:0,background:a?l.hoverBg:void 0},onClick:u?()=>i():void 0,title:u?`${e.name} \u2014 click for span details`:e.name},or.default.createElement("div",{className:"flex items-baseline gap-2 min-w-0"},or.default.createElement("span",{className:"flex-shrink-0",style:{color:e.type==="thinking"?void 0:l.textMuted}},lI(e.type)),or.default.createElement("span",{className:"text-sm font-medium truncate",style:{color:e.error?l.bad:l.textPrimary}},e.name),or.default.createElement("span",{className:"text-xs ml-auto flex-shrink-0",style:{fontFamily:Pt.mono,color:l.textMuted}},Vwe(e,t)),u&&or.default.createElement(Zp,{open:a,darkMode:r,size:13,style:{marginLeft:"2px"}})),or.default.createElement("div",{className:"h-3 relative rounded mt-0.5",style:{background:l.trackBg}},or.default.createElement("div",{className:"absolute h-3 rounded",style:{background:e.error?"#f87171":sI[e.type]||"#9ca3af",left:n==="time"?`${t.duration_ms?e.start/t.duration_ms*100:0}%`:0,width:n==="time"?`${t.duration_ms?Math.max(e.duration/t.duration_ms*100,1):1}%`:`${Hwe(e.duration,o)}%`}})),c&&or.default.createElement(uh,{darkMode:r,size:"11px",style:{marginTop:"2px"},lines:[{label:c.inputLabel,text:c.input,color:Ln(c.inputTone,r).color,max:160},{label:c.outputLabel,text:c.output,color:Ln(c.outputTone,r).color,max:160}]})),a&&or.default.createElement(Jwe,{span:e,darkMode:r,tools:s}))}function dI({trace:e,darkMode:t,sort:r="time",tools:n,keyPrefix:o=""}){let[a,i]=ch(),s=Jn(t),l=qwe(e?.spans,r),u=n||cI(e);if(l.length===0)return or.default.createElement("div",{className:"text-sm py-2",style:{color:s.textMuted}},"No spans recorded for this trace.");let c=Math.max(...l.map(d=>d.duration||0),1);return or.default.createElement("div",{className:"space-y-2"},l.map((d,p)=>{let f=`${o}${d.span_id||p}`;return or.default.createElement(Qwe,{key:f,span:d,trace:e,darkMode:t,sort:r,longest:c,tools:u,expanded:a(f),onToggle:()=>i(f)})}))}var Rwe=[{id:"spans",label:"Spans",hint:"Timing waterfall with span details"},{id:"conversation",label:"Conversation",hint:"The run as a message stream \u2014 prompt, tool calls, response"}],eSe=e=>{let t=0,r=[];(e?.spans||[]).forEach(a=>{(a.nested||0)!==0&&(a.type==="tool"?r.push(a):(a.type==="llm"||a.type==="generate")&&(t=Math.max(t,a.duration||0)))});let n=r.reduce((a,i)=>a+(i.duration||0),0);t=Math.max(t-n,0);let o=e?.duration_ms||t+n||1;return{generation:t,tools:r,toolTotal:n,total:o,overhead:Math.max(o-t-n,0)}};function tSe({trace:e,darkMode:t}){let r=Jn(t),{generation:n,tools:o,toolTotal:a,total:i,overhead:s}=eSe(e);if(n===0&&a===0||n/i>=.99&&a/i<.01)return null;let l=c=>`${(c/i*100).toFixed(c/i<.01?2:1)}%`,u=(c,d)=>wt.default.createElement("div",{style:{width:`${Math.max(c/i*100,.4)}%`,background:d,height:"100%"}});return wt.default.createElement("div",{style:{marginTop:"14px",paddingTop:"12px",borderTop:`1px solid ${r.cardBorder}`}},wt.default.createElement("div",{style:{fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.05em",color:r.textSecondary,marginBottom:"6px"}},"Time breakdown \u2014 generation vs tools"),wt.default.createElement("div",{style:{display:"flex",height:"10px",borderRadius:"5px",overflow:"hidden",background:r.trackBg}},u(n,"#ef4444"),u(a,"#10b981"),s>0&&u(s,t?"rgba(255,255,255,0.2)":"#d1d5db")),wt.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 18px",marginTop:"8px",fontSize:"12px",fontFamily:Pt.mono,color:r.textBody}},wt.default.createElement("span",null,wt.default.createElement("span",{style:{color:"#ef4444"}},"\u25A0")," generation ",Qn(n)," (",l(n),")"),wt.default.createElement("span",null,wt.default.createElement("span",{style:{color:"#10b981"}},"\u25A0")," tools ",Qn(a)," (",l(a),")"),s>0&&wt.default.createElement("span",null,wt.default.createElement("span",{style:{color:r.textSecondary}},"\u25A0")," overhead ",Qn(s)," (",l(s),")")),o.length>0&&wt.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 18px",marginTop:"4px",fontSize:"12px",fontFamily:Pt.mono,color:r.textSecondary}},o.map((c,d)=>wt.default.createElement("span",{key:d},c.name," ",Qn(c.duration)," (",l(c.duration||0),")"))))}function rSe({trace:e,darkMode:t}){let[r,n]=(0,wt.useState)(null),[o,a]=(0,wt.useState)(!1),i=Jn(t);if((0,wt.useEffect)(()=>{if(e?.id==null)return;let l=!0;return n(null),a(!1),fetch(`/api/interactions/trace-${e.id}`).then(u=>u.ok?u.json():Promise.reject(new Error("request failed"))).then(u=>l&&n(u.interaction)).catch(()=>l&&a(!0)),()=>{l=!1}},[e?.id]),o)return wt.default.createElement("div",{className:"text-sm py-4",style:{color:i.bad}},"Couldn't load the conversation for this trace.");if(!r)return wt.default.createElement("div",{className:"text-sm py-4",style:{color:i.textMuted}},"Loading conversation\u2026");let s=r.instructions?[{id:`trace-${e.id}-system`,role:"system",content:r.instructions,created_at:r.created_at},...r.messages||[]]:r.messages||[];return s.length===0?wt.default.createElement("div",{className:"text-sm py-4",style:{color:i.textMuted}},"This trace predates content capture \u2014 no conversation to show."):wt.default.createElement(ps,{messages:s,darkMode:t,tools:cI(e)})}function e0({trace:e,darkMode:t,compact:r=!1,showConversation:n=!0}){let[o,a]=(0,wt.useState)("spans"),[i,s]=(0,wt.useState)("time"),l=Jn(t),u=(e?.spans||[]).length,c=BC(e),d=e?.tokens||{},p=(0,wt.useCallback)(f=>a(n?f:"spans"),[n]);return e?wt.default.createElement("div",null,wt.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2 mb-2"},wt.default.createElement("div",{className:"flex items-center gap-1"},n&&wt.default.createElement(Rx,{options:Rwe,value:o,onChange:p,darkMode:t}),wt.default.createElement("span",{className:"text-xs ml-2",style:{color:l.textSecondary}},u," ",u===1?"span":"spans")),o==="spans"&&u>0&&wt.default.createElement(Rx,{options:nY,value:i,onChange:s,darkMode:t,label:"Sort"})),o==="conversation"?wt.default.createElement("div",{className:"rounded-lg border p-4",style:{background:l.cardBg,borderColor:l.cardBorder}},wt.default.createElement(rSe,{trace:e,darkMode:t})):wt.default.createElement(wt.default.Fragment,null,i==="time"?wt.default.createElement("div",{className:"flex justify-between text-xs mb-2",style:{color:l.textMuted}},wt.default.createElement("span",null,"0ms"),wt.default.createElement("span",null,Math.round((e.duration_ms||0)*.33),"ms"),wt.default.createElement("span",null,Math.round((e.duration_ms||0)*.66),"ms"),wt.default.createElement("span",null,Qn(e.duration_ms))):wt.default.createElement("div",{className:"text-xs mb-2",style:{color:l.textMuted}},"Bar length compares duration on a log scale"),wt.default.createElement(dI,{trace:e,darkMode:t,sort:i,keyPrefix:`${e.id||e.trace_id}:`})),c&&wt.default.createElement("div",{className:"mt-3"},wt.default.createElement(od,{...c,label:"Context pressure",darkMode:t})),wt.default.createElement(tSe,{trace:e,darkMode:t}),!r&&wt.default.createElement("div",{className:"mt-4 pt-4 border-t flex items-center flex-wrap gap-x-6 gap-y-1 text-sm",style:{borderColor:l.cardBorder,color:l.textSecondary}},wt.default.createElement("span",null,"Tokens:"),d.thinking>0&&wt.default.createElement("span",{className:"text-amber-500",style:{fontFamily:Pt.mono}},"T:",d.thinking.toLocaleString()),wt.default.createElement("span",{className:"text-blue-500",style:{fontFamily:Pt.mono}},"in:",(d.input||0).toLocaleString()),wt.default.createElement("span",{className:"text-green-500",style:{fontFamily:Pt.mono}},"out:",(d.output||0).toLocaleString()),e.provider&&wt.default.createElement("span",{style:{fontFamily:Pt.mono}},e.provider,e.model?` \xB7 ${e.model}`:"")),e.error&&wt.default.createElement("div",{className:"mt-4 p-3 rounded-lg border",style:{background:t?"rgba(239,68,68,0.1)":"#fef2f2",borderColor:t?"rgba(239,68,68,0.3)":"#fecaca"}},wt.default.createElement("span",{className:"text-sm",style:{color:t?"#fca5a5":"#b91c1c"}},e.error))):null}var nSe=e=>{let t=(e?.input||0)+(e?.output||0)+(e?.thinking||0);return t?t>=1e3?`${(t/1e3).toFixed(1)}K`:`${t}`:null},oSe=e=>e==null?null:`$${e.toFixed(4)}`;function VC({trace:e,darkMode:t,expanded:r,onToggle:n}){let o=Jn(t),a=uI(e),i=BC(e),s=e.status!=="ERROR",l=nSe(e.tokens);return zn.default.createElement(KC,{darkMode:t,id:`trace-row-${e.id}`},zn.default.createElement("div",{className:`p-4 flex items-center justify-between flex-wrap gap-y-2 cursor-pointer transition-colors ${t?"hover:bg-white/5":"hover:bg-gray-50"}`,onClick:n,style:r?{background:o.hoverBg}:void 0},zn.default.createElement("div",{className:"flex items-center gap-3 min-w-0"},zn.default.createElement("span",{className:"px-2 py-1 text-xs rounded flex-shrink-0",style:{fontFamily:Pt.mono,background:o.controlBg,color:o.textSecondary}},"TRACE"),zn.default.createElement("span",{className:"text-sm flex-shrink-0",style:{fontFamily:Pt.mono,color:o.textMuted}},e.short_id),zn.default.createElement("span",{className:"text-sm font-medium truncate",style:{color:o.textPrimary}},e.display_name)),zn.default.createElement("div",{className:"flex items-center gap-4 flex-shrink-0"},zn.default.createElement(ad,{darkMode:t,cells:[{key:"model",title:"Model that generated this trace",empty:"No model recorded for this trace",content:e.model&&zn.default.createElement("span",{className:"text-xs px-2 py-0.5 rounded",style:{fontFamily:Pt.mono,background:t?"rgba(99,102,241,0.2)":"#eef2ff",color:t?"#a5b4fc":"#4338ca"}},e.model)},{key:"context",width:Na.context,empty:"Context: no generation in this trace reported its token counts",content:i&&zn.default.createElement(od,{compact:!0,...i,label:"Context",darkMode:t})},{key:"duration",width:Na.duration,title:"Wall-clock duration",empty:"No duration recorded for this trace",content:e.duration_ms!=null&&zn.default.createElement(zn.default.Fragment,null,zn.default.createElement("i",{className:"fa-solid fa-clock mr-1"}),Qn(e.duration_ms))},{key:"tokens",width:Na.tokens,title:"Tokens in, out and thinking",empty:"No token counts recorded for this trace",content:l&&`${l} tokens`},{key:"cost",width:Na.cost,title:"Estimated cost of this trace",empty:"Nothing to price \u2014 this trace recorded no tokens",content:e.estimated_cost!=null&&zn.default.createElement(zn.default.Fragment,null,zn.default.createElement("i",{className:"fa-solid fa-coins mr-1"}),oSe(e.estimated_cost))},{key:"status",width:Na.status,title:s?"Trace completed":e.error||"Trace ended in an error",content:zn.default.createElement("span",{style:{color:s?o.good:o.bad}},zn.default.createElement("i",{className:`fa-solid ${s?"fa-check":"fa-xmark"} mr-1`}),s?"OK":"ERROR")}]}),zn.default.createElement(Zp,{open:r,darkMode:t}))),!r&&zn.default.createElement(uh,{darkMode:t,onClick:n,hold:!0,style:{padding:"0 16px 12px"},lines:[{label:"input",text:a.input,color:Ln("user",t).color},{label:"output",text:a.output,color:Ln("assistant",t).color}]}),r&&zn.default.createElement("div",{className:"border-t p-4",style:{borderColor:o.cardBorder,background:o.innerBg}},zn.default.createElement(e0,{trace:e,darkMode:t})))}function oY(e,t=""){return`${(e||"").replace(/\/$/,"")}${t}`||"/"}function aY(e,t){let r=(e||"").replace(/\/$/,"");return r&&(t===r||t.startsWith(`${r}/`))?t.slice(r.length)||"/":t}function Re(e=""){return oY(window.ACTIVE_AGENT_DASHBOARD?.mountPath,e)}function id(e="",t={}){window.history.pushState(t,"",Re(e))}function Rn(e=window.location.pathname){return aY(window.ACTIVE_AGENT_DASHBOARD?.mountPath,e)}function lt(e,t={}){if(!e)return;let r=Rn(e);id(r,t),window.dispatchEvent(new CustomEvent("dashboard:navigate",{detail:{path:Re(r)}}))}var iY=({minutes:e,agentId:t=null,bucketSeconds:r=null})=>{let n=new URLSearchParams({minutes:String(e)});return r!=null&&n.set("bucket_seconds",String(r)),t!=null&&t!==""&&n.set("agent_id",String(t)),`/api/traces?${n.toString()}`};var aSe=(e,t,r,n=60)=>{let o=Date.now(),a=[],i=n*1e3,s=Math.max(1,Math.round(r*60/n));for(let l=s-1;l>=0;l--){let u=o-(l+1)*i,c=o-l*i,d=e.filter(m=>m.timestamp_ms>=u&&m.timestamp_msm.duration_ms).filter(m=>typeof m=="number"&&Number.isFinite(m)),f={};t.forEach(m=>{f[m]=d.filter(y=>y.agent===m).length}),a.push({time:r>1440?new Date(c).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit"}):new Date(c).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),timestamp:c,requests:d.length,errors:d.filter(m=>m.status==="ERROR").length,avgLatency:p.length>0?Math.round(p.reduce((m,y)=>m+y,0)/p.length):0,traces:d,...f})}return a},sY=(e,t,r,n)=>{let o=Array.isArray(e?.buckets)?e.buckets.map(s=>({time:n.minutes>1440?new Date(s.end_ms).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit"}):new Date(s.end_ms).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),timestamp:s.end_ms,requests:s.requests,errors:s.errors,avgLatency:s.avg_latency_ms,traces:t.filter(l=>l.timestamp_ms>=s.start_ms&&l.timestamp_ms[l,s.agents?.[l]||0]))})):aSe(t,r,n.minutes,n.bucketSeconds),a=t.map(s=>s.duration_ms).filter(s=>typeof s=="number"&&Number.isFinite(s)),i=e?.summary?{requests:e.summary.requests,errors:e.summary.errors,avgLatency:e.summary.avg_latency_ms,throughput:Number(e.summary.throughput_per_minute).toFixed(1)}:{requests:t.length,errors:t.filter(s=>s.status==="ERROR").length,avgLatency:a.length?Math.round(a.reduce((s,l)=>s+l,0)/a.length):0,throughput:(t.length/n.minutes).toFixed(1)};return{buckets:o,summary:i,truncated:e?.truncated===!0,total:e?.total_count??t.length}};var lY=["#6366f1","#10b981","#f59e0b","#ec4899","#3b82f6","#8b5cf6","#14b8a6","#f97316"],iSe=3e4,sSe=e=>{let t={};return e.forEach((r,n)=>{t[r]=lY[n%lY.length]}),t},lSe=e=>{let t={};return e.forEach(r=>{(r.spans||[]).forEach(n=>{if((n.nested||0)===0)return;let o=n.name||n.type||"unknown";t[o]||(t[o]={name:o,type:n.type,count:0,total:0,max:0,errors:0});let a=t[o];a.count+=1,a.total+=n.duration||0,a.max=Math.max(a.max,n.duration||0),n.error&&(a.errors+=1)})}),Object.values(t).map(r=>({...r,avg:r.total/r.count})).sort((r,n)=>n.total-r.total)};function Jp({agentId:e=null,embedded:t=!1}){let{darkMode:r}=ut(),[n,o]=(0,H.useState)([]),[a,i]=(0,H.useState)(null),[s,l]=(0,H.useState)([]),[u,c]=(0,H.useState)({}),[d,p]=(0,H.useState)(!0),[f,m]=(0,H.useState)(null),[y,b]=(0,H.useState)(null),g=(0,H.useRef)(new URLSearchParams(window.location.search).get("trace")),[h,v]=(0,H.useState)(null),[x,S]=(0,H.useState)({status:"all",agent:"all",action:"all"}),[k,w]=(0,H.useState)("time"),[_,A]=(0,H.useState)(null),[C,N]=(0,H.useState)("timeline"),[L,Q]=(0,H.useState)("popular"),{timeWindow:B}=xl(),K=(0,H.useCallback)(async()=>{try{let E=await fetch(iY({minutes:B.minutes,bucketSeconds:B.bucketSeconds,agentId:e}));if(!E.ok)throw new Error(`Request failed (${E.status})`);let $=await E.json();o($.traces||[]),i($),l($.agents||[]),c($.agent_ids||{}),m(null)}catch(E){m(E.message)}finally{p(!1)}},[B.minutes,B.bucketSeconds,e]);(0,H.useEffect)(()=>{K();let E=setInterval(K,iSe);return()=>clearInterval(E)},[K]);let T=(0,H.useMemo)(()=>sSe(s),[s]);(0,H.useEffect)(()=>{A(null)},[B.id]);let O=(0,H.useMemo)(()=>sY(a,n,s,B),[a,n,s,B]),I=O.buckets,P=Math.max(0,Math.ceil(I.length/6)-1),j=(0,H.useMemo)(()=>{let E=n;if(_!==null){let $=I[_];$&&(E=$.traces||[])}if(x.status!=="all"&&(E=E.filter($=>x.status==="success"?$.status!=="ERROR":$.status==="ERROR")),x.agent!=="all"&&(E=E.filter($=>$.agent===x.agent)),x.action!=="all")if(x.action.includes("#")){let[$,ee]=x.action.split("#");E=E.filter(F=>F.agent===$&&F.action===ee)}else E=E.filter($=>$.action===x.action);return k==="latency"&&(E=[...E].sort(($,ee)=>(ee.duration_ms||0)-($.duration_ms||0))),h&&!E.some($=>$.id===h.id)&&(E=[h,...E]),E},[n,_,I,x,k,h]);(0,H.useEffect)(()=>{let E=g.current;if(!E)return;let $=F=>{g.current=null,b(F.id),setTimeout(()=>{document.getElementById(`trace-row-${F.id}`)?.scrollIntoView({behavior:"smooth",block:"start"})},150)},ee=n.find(F=>F.id===E||F.trace_id===E||F.short_id&&String(E).startsWith(F.short_id));if(ee){$(ee);return}n.length!==0&&fetch(`/api/traces/${encodeURIComponent(E)}`).then(F=>F.ok?F.json():Promise.reject(new Error("not found"))).then(({trace:F})=>{v(F),$(F)}).catch(()=>{g.current=null})},[n]);let M=(0,H.useMemo)(()=>{let E=_!==null?I[_]?.traces||[]:n,$={};E.forEach(F=>{F.agent&&($[F.agent]||($[F.agent]={agent:F.agent,count:0,totalDuration:0,cost:0,errors:0,actions:{},tokens:{thinking:0,input:0,output:0}}),$[F.agent].count++,$[F.agent].totalDuration+=F.duration_ms||0,$[F.agent].cost+=F.estimated_cost||0,F.status==="ERROR"&&$[F.agent].errors++,F.tokens&&($[F.agent].tokens.thinking+=F.tokens.thinking||0,$[F.agent].tokens.input+=F.tokens.input||0,$[F.agent].tokens.output+=F.tokens.output||0),F.action&&($[F.agent].actions[F.action]=($[F.agent].actions[F.action]||0)+1))});let ee={popular:F=>F.count,longest:F=>F.totalDuration/(F.count||1),cost:F=>F.cost,tokens:F=>(F.tokens.input||0)+(F.tokens.output||0)+(F.tokens.thinking||0),errors:F=>F.errors}[L]||(F=>F.count);return Object.values($).sort((F,me)=>ee(me)-ee(F)||me.count-F.count)},[n,I,_,L]),W=(0,H.useMemo)(()=>{let E=_!==null?I[_]?.traces||[]:n,$={};return E.forEach(ee=>{if(!ee.agent)return;let F=`${ee.agent}#${ee.action||"unknown"}`;$[F]||($[F]={key:F,agent:ee.agent,action:ee.action||"unknown",count:0,totalDuration:0,errors:0,minDuration:1/0,maxDuration:0,tokens:{thinking:0,input:0,output:0}}),$[F].count++,$[F].totalDuration+=ee.duration_ms||0,$[F].minDuration=Math.min($[F].minDuration,ee.duration_ms||0),$[F].maxDuration=Math.max($[F].maxDuration,ee.duration_ms||0),ee.status==="ERROR"&&$[F].errors++,ee.tokens&&($[F].tokens.thinking+=ee.tokens.thinking||0,$[F].tokens.input+=ee.tokens.input||0,$[F].tokens.output+=ee.tokens.output||0)}),Object.values($).forEach(ee=>{ee.minDuration===1/0&&(ee.minDuration=0)}),Object.values($).sort((ee,F)=>F.count-ee.count)},[n,I,_]),Y=(0,H.useMemo)(()=>{let E=_!==null?I[_]?.traces||[]:n,$={};return E.forEach(ee=>{(ee.spans||[]).forEach(F=>{if(F.type!=="tool")return;let me=F.attributes?.["tool.name"]||F.name?.replace(/^tool\./,"")||"unknown";$[me]||($[me]={name:me,count:0,totalDuration:0,maxDuration:0,errors:0,agents:new Set}),$[me].count++,$[me].totalDuration+=F.duration||0,$[me].maxDuration=Math.max($[me].maxDuration,F.duration||0),F.error&&$[me].errors++,ee.agent&&$[me].agents.add(`${ee.agent}#${ee.action||"unknown"}`)})}),Object.values($).map(ee=>({...ee,agents:[...ee.agents],avgDuration:ee.count?ee.totalDuration/ee.count:0})).sort((ee,F)=>F.totalDuration-ee.totalDuration)},[n,I,_]),z=(0,H.useMemo)(()=>x.agent==="all"?W.map(E=>E.key):W.filter(E=>E.agent===x.agent).map(E=>E.key),[x.agent,W]),V=(0,H.useMemo)(()=>lSe(j),[j]),q=E=>{if(E&&E.activeTooltipIndex!==void 0){let $=E.activeTooltipIndex;A(_===$?null:$),b(null)}},oe=E=>(E?.input||0)+(E?.output||0)+(E?.thinking||0),Me=E=>{let $=E.count?E.errors/E.count:0;return[{label:`Calls ${B.label||""}`.trim(),value:E.count.toLocaleString()},{label:"Errors",value:`${($*100).toFixed(1)}%`,tone:E.errors>0?"bad":"good"},{label:"Avg time",value:`${Math.round(E.totalDuration/(E.count||1))}ms`},{label:"Tokens",value:oe(E.tokens).toLocaleString()},{label:"Cost",value:fe(E.cost),title:"Estimated from token counts at this model's published rates",tone:E.cost?void 0:"muted"},{label:"Actions",value:(E.agents?.length||0).toLocaleString()}]},fe=E=>E?E<.01?"<$0.01":`$${E.toFixed(2)}`:"\u2014",le=H.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:"8px",marginBottom:"12px"}},H.default.createElement("span",{style:{fontSize:"12px",color:r?"rgba(255,255,255,0.5)":"#6b7280"}},"Rank by"),H.default.createElement("select",{value:L,onChange:E=>Q(E.target.value),style:{fontSize:"12px",padding:"4px 8px",borderRadius:"6px",border:`1px solid ${r?"rgba(255,255,255,0.15)":"#e5e7eb"}`,background:r?"rgba(255,255,255,0.05)":"#ffffff",color:r?"#f9fafb":"#111827"}},H.default.createElement("option",{value:"popular"},"Most calls"),H.default.createElement("option",{value:"longest"},"Longest average"),H.default.createElement("option",{value:"cost"},"Highest cost"),H.default.createElement("option",{value:"tokens"},"Most tokens"),H.default.createElement("option",{value:"errors"},"Most errors"))),R=E=>S($=>({...$,agent:$.agent===E?"all":E})),te=E=>{let $=u[E];if(!$)return R(E);let ee=Re(`/agents/${$}`);window.history.pushState(window.history.state,"",ee),window.dispatchEvent(new CustomEvent("dashboard:navigate",{detail:{path:ee}}))},He=E=>{let $=V[0]?.total||1,ee=E?"rgba(0,0,0,0.3)":"white",F=E?"1px solid rgba(255,255,255,0.1)":"1px solid #e5e7eb",me=E?"white":"#111827",et=E?"rgba(255,255,255,0.5)":"#6b7280",rt={llm:"#ef4444",tool:"#10b981",generate:"#8b5cf6",prompt:"#3b82f6"};return H.default.createElement("div",{style:{padding:E?"0 24px 24px 24px":0}},H.default.createElement("div",{style:{background:ee,border:F,borderRadius:"12px",padding:"16px"}},H.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,color:me,marginBottom:"4px"}},"Slowest operations"),H.default.createElement("div",{style:{fontSize:"12px",color:et,marginBottom:"14px"}},"Span durations aggregated across ",j.length," trace",j.length===1?"":"s"," \u2014 ranked by total time"),V.length===0?H.default.createElement("div",{style:{fontSize:"13px",color:et,padding:"12px 0"}},"No spans in the current selection"):H.default.createElement("div",{style:{display:"grid",gap:"10px"}},V.map(ge=>H.default.createElement("div",{key:ge.name,style:{display:"flex",alignItems:"center",gap:"12px"}},H.default.createElement("div",{style:{width:"220px",flexShrink:0,display:"flex",alignItems:"center",gap:"8px"}},H.default.createElement("span",{style:{color:et}},lI(ge.type)),H.default.createElement("span",{style:{fontSize:"13px",color:ge.errors>0?"#ef4444":me,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},ge.name)),H.default.createElement("div",{style:{flex:1,height:"18px",background:E?"rgba(255,255,255,0.06)":"#f3f4f6",borderRadius:"4px",position:"relative"}},H.default.createElement("div",{style:{position:"absolute",top:"3px",left:0,height:"12px",borderRadius:"3px",width:`${Math.max(ge.total/$*100,.5)}%`,background:rt[ge.type]||"#6366f1"}})),H.default.createElement("div",{style:{width:"260px",flexShrink:0,fontSize:"12px",color:et,fontFamily:Pt.mono,textAlign:"right"}},ge.count,"\xD7 \xB7 avg ",Qn(ge.avg)," \xB7 max ",Qn(ge.max)," \xB7 \u03A3 ",Qn(ge.total)))))))};if(d)return H.default.createElement("div",{className:"flex items-center justify-center h-64"},H.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let _e=O.summary,D=O.truncated&&H.default.createElement("div",{role:"status","data-testid":"trace-window-notice",style:{padding:"12px 24px",fontSize:13,color:r?"#fbbf24":"#92400e"}},"Showing newest ",n.length," of ",O.total," traces. Chart and totals cover the full window; lists and breakdowns use these loaded traces."),G=_e.requests===0;return r?H.default.createElement("div",{className:"preview-content",style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)"}},D,H.default.createElement("div",{style:{padding:"24px 24px 0 24px",borderBottom:"1px solid rgba(255,255,255,0.1)",marginBottom:"16px",paddingBottom:"16px"}},H.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"}},H.default.createElement("div",null,!t&&H.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:"white",margin:0}},"Traces"),H.default.createElement("p",{style:{fontSize:"14px",color:"rgba(255,255,255,0.6)",marginTop:"4px"}},_!==null?`Viewing ${I[_]?.time} \u2022 ${j.length} requests`:`Last ${B.label} \u2022 Click timeline to drill down`)),H.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"12px"}},H.default.createElement("div",{style:{display:"flex",background:"rgba(255,255,255,0.1)",borderRadius:"8px",padding:"2px"}},["timeline","agents","actions","tools","spans"].map(E=>H.default.createElement("button",{key:E,onClick:()=>N(E),style:{padding:"6px 12px",background:C===E?"#ef4444":"transparent",color:"white",borderRadius:"6px",border:"none",fontSize:"13px",cursor:"pointer",textTransform:"capitalize"}},E))),!e&&H.default.createElement("select",{value:x.agent,onChange:E=>S({...x,agent:E.target.value,action:"all"}),style:{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px",maxWidth:"180px",textOverflow:"ellipsis"}},H.default.createElement("option",{value:"all"},"All Agents"),s.map(E=>H.default.createElement("option",{key:E,value:E},E))),H.default.createElement("select",{value:x.action,onChange:E=>S({...x,action:E.target.value}),style:{padding:"8px 12px",background:x.action!=="all"?"rgba(239, 68, 68, 0.3)":"rgba(255,255,255,0.1)",border:x.action!=="all"?"1px solid #ef4444":"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px",maxWidth:"220px",textOverflow:"ellipsis"}},H.default.createElement("option",{value:"all"},"All Actions"),z.map(E=>H.default.createElement("option",{key:E,value:E},E))),H.default.createElement("select",{value:x.status,onChange:E=>S({...x,status:E.target.value}),style:{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px"}},H.default.createElement("option",{value:"all"},"All Status"),H.default.createElement("option",{value:"success"},"Success"),H.default.createElement("option",{value:"error"},"Error")),H.default.createElement("select",{value:k,onChange:E=>w(E.target.value),style:{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px"}},H.default.createElement("option",{value:"time"},"Newest first"),H.default.createElement("option",{value:"latency"},"Slowest first")),_!==null&&H.default.createElement("button",{onClick:()=>A(null),style:{padding:"8px 16px",background:"rgba(255,255,255,0.2)",color:"white",borderRadius:"8px",border:"none",fontSize:"14px",fontWeight:"500",cursor:"pointer"}},"Clear Selection")))),f&&H.default.createElement("div",{style:{margin:"0 24px 16px 24px",padding:"12px 16px",background:"rgba(239, 68, 68, 0.1)",borderRadius:"8px",color:"#ef4444",fontSize:"13px"}},"Failed to load traces: ",f),H.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},H.default.createElement("div",{style:{background:"rgba(0,0,0,0.3)",borderRadius:"12px",padding:"16px",border:"1px solid rgba(255,255,255,0.1)"}},H.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"12px"}},H.default.createElement("div",{style:{fontSize:"14px",fontWeight:"600",color:"white"}},"Agent Requests / Minute"),H.default.createElement("div",{style:{display:"flex",gap:"16px",flexWrap:"wrap"}},Object.entries(T).map(([E,$])=>H.default.createElement("div",{key:E,style:{display:"flex",alignItems:"center",gap:"6px"}},H.default.createElement("div",{style:{width:"10px",height:"10px",borderRadius:"2px",background:$}}),H.default.createElement("span",{style:{fontSize:"11px",color:"rgba(255,255,255,0.7)"}},E.replace("Agent","")))))),H.default.createElement("div",{style:{height:"150px"}},H.default.createElement(Cc,{width:"100%",height:"100%"},H.default.createElement(rd,{data:I,onClick:q,style:{cursor:"pointer"}},H.default.createElement("defs",null,Object.entries(T).map(([E,$])=>H.default.createElement("linearGradient",{key:E,id:`gradient-${E}`,x1:"0",y1:"0",x2:"0",y2:"1"},H.default.createElement("stop",{offset:"5%",stopColor:$,stopOpacity:.8}),H.default.createElement("stop",{offset:"95%",stopColor:$,stopOpacity:.1})))),H.default.createElement(Cu,{strokeDasharray:"3 3",stroke:"rgba(255,255,255,0.1)"}),H.default.createElement(Tu,{dataKey:"time",stroke:"rgba(255,255,255,0.5)",tick:{fontSize:10,fill:"rgba(255,255,255,0.5)"},tickLine:!1,interval:P}),H.default.createElement(Pu,{stroke:"rgba(255,255,255,0.5)",tick:{fontSize:10,fill:"rgba(255,255,255,0.5)"},tickLine:!1,axisLine:!1,allowDecimals:!1}),H.default.createElement(Wc,{contentStyle:{background:"rgba(0,0,0,0.9)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",padding:"12px"},labelStyle:{color:"white",fontWeight:"600",marginBottom:"8px"},itemStyle:{color:"rgba(255,255,255,0.8)",fontSize:"12px"},formatter:(E,$)=>[E,$.replace("Agent","")]}),Object.keys(T).map(E=>H.default.createElement(Eu,{key:E,type:"monotone",dataKey:E,stackId:"1",stroke:T[E],fill:`url(#gradient-${E})`}))))),H.default.createElement("div",{style:{display:"flex",gap:"24px",marginTop:"12px",paddingTop:"12px",borderTop:"1px solid rgba(255,255,255,0.1)"}},H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"white"}},_e.requests),H.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Total Requests")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#ef4444"}},_e.errors),H.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Errors")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#10b981"}},_e.avgLatency,"ms"),H.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Avg Latency")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#f59e0b"}},_e.throughput,"/min"),H.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Throughput"))))),C==="agents"&&H.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},le,H.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(280px, 1fr))",gap:"16px"}},M.map(E=>H.default.createElement(Cm,{key:E.agent,name:E.agent,accentColor:T[E.agent],subtitle:E.agents?.length?E.agents.join(", "):void 0,badge:H.default.createElement("span",{style:{fontSize:"12px",padding:"2px 8px",background:T[E.agent]+"30",color:T[E.agent],borderRadius:"4px",whiteSpace:"nowrap"}},E.count," calls"),onClick:()=>te(E.agent),stats:Me(E),footer:H.default.createElement(H.default.Fragment,null,H.default.createElement("span",null,u[E.agent]?"Open agent \u2192":"Not linked to an agent record"),H.default.createElement("button",{onClick:$=>{$.stopPropagation(),R(E.agent)},style:{background:"none",border:"none",padding:0,cursor:"pointer",color:x.agent===E.agent?"#ef4444":"inherit",font:"inherit"}},x.agent===E.agent?"Clear filter":"Filter traces"))})))),C==="actions"&&H.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},H.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:"12px"}},W.map(E=>{let $=x.action===E.key;return H.default.createElement("div",{key:E.key,onClick:()=>{S({...x,action:$?"all":E.key}),N("timeline")},style:{background:$?"rgba(239, 68, 68, 0.15)":"rgba(0,0,0,0.3)",borderRadius:"10px",padding:"14px",border:$?"1px solid #ef4444":`1px solid ${T[E.agent]}30`,cursor:"pointer",transition:"all 0.15s"}},H.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"10px"}},H.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},H.default.createElement("div",{style:{width:"6px",height:"6px",borderRadius:"50%",background:T[E.agent]}}),H.default.createElement("span",{style:{fontSize:"14px",fontWeight:"600",color:"white"}},E.agent),H.default.createElement("span",{style:{fontSize:"13px",color:"rgba(255,255,255,0.7)"}},"#",E.action)),H.default.createElement("span",{style:{fontSize:"12px",padding:"2px 8px",background:T[E.agent]+"30",color:T[E.agent],borderRadius:"4px"}},E.count," calls")),H.default.createElement("div",{style:{display:"flex",gap:"16px",flexWrap:"wrap"}},H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Avg"),H.default.createElement("div",{style:{fontSize:"13px",color:"white",fontWeight:"500"}},Math.round(E.totalDuration/E.count),"ms")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Min/Max"),H.default.createElement("div",{style:{fontSize:"13px",color:"rgba(255,255,255,0.8)"}},Math.round(E.minDuration),"ms / ",Math.round(E.maxDuration),"ms")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Errors"),H.default.createElement("div",{style:{fontSize:"13px",color:E.errors>0?"#ef4444":"#10b981"}},E.errors," (",(E.errors/E.count*100).toFixed(0),"%)")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Tokens"),H.default.createElement("div",{style:{fontSize:"13px",color:"rgba(255,255,255,0.8)"}},oe(E.tokens).toLocaleString()))))}))),C==="spans"&&He(!0),C==="timeline"&&!G&&H.default.createElement("div",{className:"space-y-4"},j.length===0?H.default.createElement("div",{style:{textAlign:"center",padding:"32px",color:"rgba(255,255,255,0.5)",fontSize:"14px"}},"No traces match filters"):j.map(E=>H.default.createElement(VC,{key:E.id,trace:E,darkMode:!0,expanded:y===E.id,onToggle:()=>b(y===E.id?null:E.id)}))),G&&C==="timeline"&&H.default.createElement("div",{style:{textAlign:"center",padding:"48px 0"}},H.default.createElement("div",{style:{color:"rgba(255,255,255,0.5)",fontSize:"18px"}},"No traces yet"),H.default.createElement("p",{style:{color:"rgba(255,255,255,0.4)",fontSize:"14px",marginTop:"8px"}},"Run an agent, or point your app's ActiveAgent telemetry at this workspace to see traces appear here"))):H.default.createElement("div",{className:"space-y-6"},D,H.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2"},H.default.createElement("div",null,H.default.createElement("h1",{className:"text-2xl font-bold text-gray-900"},"Traces"),H.default.createElement("p",{className:"text-sm text-gray-500"},_!==null?`Viewing ${I[_]?.time} \u2022 ${j.length} requests`:`Last ${B.label} \u2022 Click timeline to drill down`)),H.default.createElement("div",{className:"flex items-center space-x-3 flex-wrap gap-y-2 min-w-0"},H.default.createElement(bl,null),H.default.createElement("div",{className:"flex bg-gray-100 rounded-lg p-1"},["timeline","agents","actions","tools","spans"].map(E=>H.default.createElement("button",{key:E,onClick:()=>N(E),className:`px-3 py-1 text-sm rounded-md transition-colors capitalize ${C===E?"bg-white shadow text-gray-900":"text-gray-600"}`},E))),H.default.createElement("select",{value:x.agent,onChange:E=>S({...x,agent:E.target.value,action:"all"}),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500",style:{maxWidth:"180px",textOverflow:"ellipsis"}},H.default.createElement("option",{value:"all"},"All Agents"),s.map(E=>H.default.createElement("option",{key:E,value:E},E))),H.default.createElement("select",{value:x.action,onChange:E=>S({...x,action:E.target.value}),className:`px-3 py-2 border rounded-lg text-sm focus:ring-2 focus:ring-red-500 ${x.action!=="all"?"border-red-500 bg-red-50":"border-gray-300"}`,style:{maxWidth:"220px",textOverflow:"ellipsis"}},H.default.createElement("option",{value:"all"},"All Actions"),z.map(E=>H.default.createElement("option",{key:E,value:E},E))),H.default.createElement("select",{value:x.status,onChange:E=>S({...x,status:E.target.value}),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500"},H.default.createElement("option",{value:"all"},"All Status"),H.default.createElement("option",{value:"success"},"Success"),H.default.createElement("option",{value:"error"},"Error")),H.default.createElement("select",{value:k,onChange:E=>w(E.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500"},H.default.createElement("option",{value:"time"},"Newest first"),H.default.createElement("option",{value:"latency"},"Slowest first")),_!==null&&H.default.createElement("button",{onClick:()=>A(null),className:"px-4 py-2 bg-gray-200 text-gray-700 rounded-lg hover:bg-gray-300 transition-colors text-sm font-medium"},"Clear Selection"))),f&&H.default.createElement("div",{className:"p-3 bg-red-50 border border-red-200 rounded-lg text-sm text-red-700"},"Failed to load traces: ",f),H.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},H.default.createElement("div",{className:"flex justify-between items-center mb-3"},H.default.createElement("h3",{className:"text-sm font-semibold text-gray-700"},"Agent Requests / Minute"),H.default.createElement("div",{className:"flex gap-4 flex-wrap"},Object.entries(T).map(([E,$])=>H.default.createElement("div",{key:E,className:"flex items-center gap-1.5"},H.default.createElement("div",{className:"w-2.5 h-2.5 rounded-sm",style:{background:$}}),H.default.createElement("span",{className:"text-xs text-gray-500"},E.replace("Agent","")))))),H.default.createElement("div",{className:"h-36"},H.default.createElement(Cc,{width:"100%",height:"100%"},H.default.createElement(rd,{data:I,onClick:q,style:{cursor:"pointer"}},H.default.createElement("defs",null,Object.entries(T).map(([E,$])=>H.default.createElement("linearGradient",{key:E,id:`gradient-light-${E}`,x1:"0",y1:"0",x2:"0",y2:"1"},H.default.createElement("stop",{offset:"5%",stopColor:$,stopOpacity:.6}),H.default.createElement("stop",{offset:"95%",stopColor:$,stopOpacity:.05})))),H.default.createElement(Cu,{strokeDasharray:"3 3",stroke:"#e5e7eb"}),H.default.createElement(Tu,{dataKey:"time",stroke:"#9ca3af",tick:{fontSize:10,fill:"#6b7280"},tickLine:!1,interval:P}),H.default.createElement(Pu,{stroke:"#9ca3af",tick:{fontSize:10,fill:"#6b7280"},tickLine:!1,axisLine:!1,allowDecimals:!1}),H.default.createElement(Wc,{contentStyle:{background:"white",border:"1px solid #e5e7eb",borderRadius:"8px",boxShadow:"0 4px 6px -1px rgba(0,0,0,0.1)"},labelStyle:{color:"#111827",fontWeight:"600",marginBottom:"8px"},formatter:(E,$)=>[E,$.replace("Agent","")]}),Object.keys(T).map(E=>H.default.createElement(Eu,{key:E,type:"monotone",dataKey:E,stackId:"1",stroke:T[E],fill:`url(#gradient-light-${E})`}))))),H.default.createElement("div",{className:"flex gap-6 mt-3 pt-3 border-t border-gray-100"},H.default.createElement("div",null,H.default.createElement("div",{className:"text-lg font-bold text-gray-900"},_e.requests),H.default.createElement("div",{className:"text-xs text-gray-500"},"Total Requests")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-lg font-bold text-red-500"},_e.errors),H.default.createElement("div",{className:"text-xs text-gray-500"},"Errors")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-lg font-bold text-green-600"},_e.avgLatency,"ms"),H.default.createElement("div",{className:"text-xs text-gray-500"},"Avg Latency")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-lg font-bold text-amber-500"},_e.throughput,"/min"),H.default.createElement("div",{className:"text-xs text-gray-500"},"Throughput")))),C==="agents"&&H.default.createElement("div",null,le,H.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"},M.map(E=>H.default.createElement(Cm,{key:E.agent,name:E.agent,accentColor:T[E.agent],subtitle:E.agents?.length?E.agents.join(", "):void 0,badge:H.default.createElement("span",{className:"text-sm px-2 py-0.5 rounded",style:{background:T[E.agent]+"20",color:T[E.agent]}},E.count," calls"),onClick:()=>te(E.agent),stats:Me(E),footer:H.default.createElement(H.default.Fragment,null,H.default.createElement("span",null,u[E.agent]?"Open agent \u2192":"Not linked to an agent record"),H.default.createElement("button",{onClick:$=>{$.stopPropagation(),R(E.agent)},className:x.agent===E.agent?"text-red-600":"hover:text-gray-700"},x.agent===E.agent?"Clear filter":"Filter traces"))})))),C==="actions"&&H.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3"},W.map(E=>{let $=x.action===E.key;return H.default.createElement("div",{key:E.key,onClick:()=>{S({...x,action:$?"all":E.key}),N("timeline")},className:`rounded-xl p-4 cursor-pointer transition-all ${$?"bg-red-50 border-2 border-red-500":"bg-white border border-gray-200 hover:border-gray-300"}`,style:{borderLeftColor:T[E.agent],borderLeftWidth:$?"2px":"4px"}},H.default.createElement("div",{className:"flex items-center justify-between mb-3"},H.default.createElement("div",{className:"flex items-center gap-2"},H.default.createElement("div",{className:"w-2 h-2 rounded-full",style:{background:T[E.agent]}}),H.default.createElement("span",{className:"font-semibold text-gray-900"},E.agent),H.default.createElement("span",{className:"text-gray-500"},"#",E.action)),H.default.createElement("span",{className:"text-xs px-2 py-0.5 rounded",style:{background:T[E.agent]+"20",color:T[E.agent]}},E.count," calls")),H.default.createElement("div",{className:"flex flex-wrap gap-4 text-sm"},H.default.createElement("div",null,H.default.createElement("div",{className:"text-xs text-gray-500"},"Avg"),H.default.createElement("div",{className:"font-medium"},Math.round(E.totalDuration/E.count),"ms")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-xs text-gray-500"},"Min/Max"),H.default.createElement("div",{className:"text-gray-600"},Math.round(E.minDuration),"ms / ",Math.round(E.maxDuration),"ms")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-xs text-gray-500"},"Errors"),H.default.createElement("div",{className:E.errors>0?"text-red-600":"text-green-600"},E.errors," (",(E.errors/E.count*100).toFixed(0),"%)")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-xs text-gray-500"},"Tokens"),H.default.createElement("div",{className:"text-gray-600"},oe(E.tokens).toLocaleString()))))})),C==="tools"&&(Y.length===0?H.default.createElement("div",{className:"text-center py-8 text-gray-500 text-sm"},"No tool calls in this window"):H.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},H.default.createElement("div",{className:"flex items-center gap-4 px-4 py-2 text-xs font-medium text-gray-500 border-b border-gray-100"},H.default.createElement("div",{className:"flex-1"},"Tool"),H.default.createElement("div",{className:"w-20 text-right"},"Calls"),H.default.createElement("div",{className:"w-24 text-right"},"Total time"),H.default.createElement("div",{className:"w-20 text-right"},"Avg"),H.default.createElement("div",{className:"w-20 text-right"},"Slowest")),Y.map(E=>{let $=Y[0].totalDuration?E.totalDuration/Y[0].totalDuration*100:0;return H.default.createElement("div",{key:E.name,className:"px-4 py-2 border-b border-gray-50 last:border-0"},H.default.createElement("div",{className:"flex items-center gap-4 text-sm"},H.default.createElement("div",{className:"flex-1 min-w-0"},H.default.createElement("div",{className:"font-medium text-gray-900 truncate",title:E.name},E.name),E.agents.length>0&&H.default.createElement("div",{className:"text-xs text-gray-400 truncate",title:E.agents.join(", ")},E.agents.join(", "))),H.default.createElement("div",{className:"w-20 text-right text-gray-700",style:{fontFamily:Pt.mono}},E.count.toLocaleString(),E.errors>0&&H.default.createElement("span",{className:"text-red-600 ml-1",title:`${E.errors} failed`},"(",E.errors,")")),H.default.createElement("div",{className:"w-24 text-right text-gray-900 font-medium",style:{fontFamily:Pt.mono}},Qn(E.totalDuration)),H.default.createElement("div",{className:"w-20 text-right text-gray-500",style:{fontFamily:Pt.mono}},Qn(E.avgDuration)),H.default.createElement("div",{className:"w-20 text-right text-gray-500",style:{fontFamily:Pt.mono}},Qn(E.maxDuration))),H.default.createElement("div",{className:"h-1 bg-gray-100 rounded mt-1.5"},H.default.createElement("div",{className:"h-1 bg-green-500 rounded",style:{width:`${Math.max($,1)}%`}})))}))),C==="spans"&&He(!1),C==="timeline"&&!G&&H.default.createElement("div",{className:"space-y-4"},j.length===0?H.default.createElement("div",{className:"text-center py-8 text-gray-500"},"No traces match filters"):j.map(E=>H.default.createElement(VC,{key:E.id,trace:E,darkMode:!1,expanded:y===E.id,onToggle:()=>b(y===E.id?null:E.id)}))),G&&C==="timeline"&&H.default.createElement("div",{className:"text-center py-12"},H.default.createElement("div",{className:"text-gray-400 text-lg"},"No traces yet"),H.default.createElement("p",{className:"text-gray-500 text-sm mt-2"},"Run an agent, or point your app's ActiveAgent telemetry at this workspace to see traces appear here")))}var xe=Z(J());var GC=Z(J());function pI({trace:e,darkMode:t,height:r=8}){let n=Jn(t);if(!e)return GC.default.createElement("div",{className:"rounded",style:{height:`${r}px`,background:n.trackBg}});let o=e.spans||[],a=e.duration_ms||1,i=[...o].sort((s,l)=>(s.nested||0)-(l.nested||0));return GC.default.createElement("div",{style:{position:"relative",height:`${r}px`,borderRadius:"999px",background:n.trackBg,overflow:"hidden",flex:1}},i.map((s,l)=>GC.default.createElement("div",{key:s.span_id||l,title:`${s.name} \xB7 ${Qn(s.duration)}`,style:{position:"absolute",top:0,bottom:0,left:`${Math.min(s.start/a*100,99)}%`,width:`${Math.max(s.duration/a*100,.8)}%`,background:s.error?"#ef4444":sI[s.type]||"#9ca3af"}})))}var Ws=Z(J());var yr=Z(J());var Du=Z(J());var uSe=/\/agents\/(\d+)/;function Ra(...e){return t=>e.some(r=>t.startsWith(r))?{}:null}function cSe(e){return t=>t===e?{}:null}function t0(e){return t=>e.test(t)?{agentId:t.match(uSe)?.[1]}:null}function YC(e){return({agent:t})=>t?`/agents/${t.id}${e}`:""}var dSe=e=>e.assistantEnabled!==!1,pSe=t0(/\/agents\/\d+\/(interactions|history)/),fSe=["recording","context","run","scenario_result"],mSe=/^\/replay\/(?:(context|run|scenario_result)\/)?(\d+)\/?$/;function gSe(e){let t=e.match(mSe);return t?{sessionKind:t[1]||"recording",sessionId:t[2]}:null}var fI=[{view:"assistant",match:cSe("/assistant"),path:"/assistant",enabled:dSe},{view:"traces",match:Ra("/traces"),path:"/traces"},{view:"metrics",match:Ra("/metrics"),path:"/metrics"},{view:"scenarios",match:Ra("/scenarios"),path:"/scenarios"},{view:"scenarios",match:e=>e.startsWith("/catalogs")?{replacePath:e.replace("/catalogs","/scenarios")}:null},{view:"interactions",match:Ra("/interactions"),path:"/interactions"},{view:"tools",match:Ra("/tools"),path:"/tools"},{view:"mcp",match:e=>{if(!e.startsWith("/mcp"))return null;let t=e.match(/^\/mcp\/([^/?#]+)/)?.[1];return t?{focusServer:decodeURIComponent(t)}:{}},path:"/mcp"},{view:"evaluations",match:Ra("/evaluations"),path:"/evaluations"},{view:"analytics",match:Ra("/analytics"),path:"/analytics"},{view:"projects",match:Ra("/projects"),path:"/projects"},{view:"exploration",match:Ra("/explorations"),path:"/explorations"},{view:"builder",match:Ra("/agents/new"),path:"/agents/new"},{view:"history",match:e=>{let t=pSe(e);return t&&e.includes("/history")&&(t.replacePath=e.replace("/history","/interactions")),t},path:YC("/interactions")},{view:"agent-analytics",match:t0(/\/agents\/\d+\/analytics/),path:YC("/analytics")},{view:"editor",match:t0(/\/agents\/\d+\/edit/),path:YC("/edit")},{view:"runner",match:t0(/\/agents\/\d+\/run/),path:YC("/run")},{view:"history",match:t0(/\/agents\/\d+\/?$/)},{view:"replay",match:gSe},{view:"sessions",match:Ra("/sessions","/replay"),path:"/sessions"},{view:"sandbox",match:Ra("/sandbox","/demo"),path:"/sandbox"},{view:"organization",match:Ra("/organization"),path:"/organization"},{view:"settings",match:Ra("/settings"),path:"/settings"}],hSe="list",uY=[{id:"agents",label:null,items:[{view:"assistant",label:"Ask ActiveAgents",glyph:">"},{view:"list",label:"Agents",icon:"agents",badge:"agentCount"},{view:"builder",label:"New Agent",icon:"newAgent"},{view:"sandbox",label:"Run Agents",icon:"demo"},{view:"projects",label:"Projects",glyph:""}]},{id:"observability",label:"Observability",items:[{view:"traces",label:"Traces",icon:"traces"},{view:"interactions",label:"Interactions",icon:"interactions",badge:"pendingInputCount",badgeTone:"attention",badgeTitle:"requests waiting for an answer"},{view:"tools",label:"Tools",icon:"tools"},{view:"mcp",label:"MCP Services",icon:"mcp"},{view:"metrics",label:"Metrics",icon:"metrics"},{view:"evaluations",label:"Evaluations",icon:"evaluations"},{view:"scenarios",label:"Scenarios",icon:"evaluations"},{view:"sessions",label:"Sessions",icon:"replay",also:["replay"]}]},{id:"workspace",label:"Workspace",items:[{view:"organization",label:"Organization",glyph:"\u{1F3E2}"},{view:"settings",label:"Settings",glyph:"\u2699\uFE0F"}]}];function cY(e={}){return{assistantEnabled:e.assistantEnabled!==!1}}function r0(e,t={}){return fI.every(r=>r.view!==e||!r.enabled||r.enabled(t))}function dY(e,t={}){for(let r of fI){if(r.enabled&&!r.enabled(t))continue;let n=r.match(e);if(n)return{view:r.view,...n}}return{view:hSe}}function XC(e,{agent:t=null,features:r={}}={}){if(!r0(e,r))return null;let n=fI.find(o=>o.view===e&&o.path!==void 0);return n&&(typeof n.path=="function"?n.path({agent:t}):n.path)||""}function pY(e){for(let t of uY){let r=t.items.find(n=>n.also?.includes(e));if(r)return r.view}return e}function dh(e,t){return!fSe.includes(e)||!/^[1-9]\d*$/.test(String(t))?null:e==="recording"?`/replay/${t}`:`/replay/${e}/${t}`}function fY(e={}){return uY.map(t=>({...t,items:t.items.filter(r=>r0(r.view,e))}))}var mI="/api/input_requests",ZC="action-agent:input-requests-changed",gY=3e4,mY=100,ySe=["text","choice","confirm","secret"];function hY({agentId:e=null,runId:t=null}={}){let r=new URLSearchParams;e!=null&&r.set("agent_id",String(e)),t!=null&&r.set("run_id",String(t));let n=r.toString();return n?`${mI}?${n}`:mI}function ph(e){return(Array.isArray(e)?e:[]).filter(t=>t&&t.status==="pending")}function yY(e){let t=ph(e).length;if(t!==0)return t>=mY?`${mY-1}+`:t}function gI(e){let t=e?.status;return t==="pending"||t==="running"?"poll":t==="awaiting_input"?ph(e.input_requests).length>0?"awaiting":"poll":"finished"}function hI(e){return ySe.includes(e?.kind)?e.kind:null}function vY(e){return(Array.isArray(e?.options)?e.options:[]).map(t=>{if(t&&typeof t=="object"){let r=String(t.value??t.label??"");return{value:r,label:String(t.label??r)}}return t==null?null:{value:String(t),label:String(t)}}).filter(t=>t&&t.value!=="")}function xY(e){return e?.id==null?"answer":`answer-${e.id}`}function bY(e){switch(hI(e)){case"text":return[{type:"form",submit:"Answer",fields:[{name:xY(e),label:"Your answer",type:"textarea",required:!0}]}];case"choice":return[{type:"choices",options:vY(e).map(t=>t.label)}];default:return[]}}function wY(e,t){if(t?.kind==="form"){let r=t.values?.[xY(e)];return r==null?void 0:String(r)}if(t?.kind==="choice")return vY(e).find(r=>r.label===t.text)?.value}var vSe={answered:"Already answered",declined:"Already declined",expired:"Expired before it was answered",cancelled:"Cancelled: the run ended"};function xSe(e,t={}){if(e>=200&&e<300)return{state:t?.input_request?.status==="declined"?"declined":"answered"};if(e===409){let r=t?.status||null;return{state:"closed",status:r,message:vSe[r]||"No longer waiting for an answer"}}return e===422?{state:"invalid",message:t?.error||"That answer does not fit this request"}:e===404?{state:"error",message:"This request is no longer available"}:{state:"error",message:t?.error||`Request failed (${e})`}}function yI(e){return["answered","declined","closed"].includes(e?.state)}async function SY(e,{answer:t,decline:r=!1}={},n=globalThis.fetch){let o=`${mI}/${encodeURIComponent(e.id)}/${r?"decline":"answer"}`,a;try{a=await n(o,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(r?{}:{answer:t})})}catch{return{state:"error",message:"Could not reach the server. Try again."}}let i=await a.json().catch(()=>({}));return xSe(a.status,i)}function kY(e,t){return t?.state==="closed"?t.message:t?.state==="declined"?e?.kind==="confirm"?"Declined: the tool does not run":"Declined":t?.state==="answered"?e?.kind==="confirm"?"Approved: the tool runs":"Answered: the run continues":null}function _Y(e){return e?e.name?String(e.name):e.id!=null?`${e.type||"user"} #${e.id}`:null:null}function CY(e,t=Date.now()){if(!e)return null;let r=new Date(e).getTime();if(Number.isNaN(r))return null;let n=Math.floor((r-t)/6e4);if(n<0)return"expired";if(n<60)return`expires in ${Math.max(n,1)}m`;let o=Math.floor(n/60);return o<48?`expires in ${o}h`:`expires in ${Math.floor(o/24)}d`}function AY(e,t=Date.now()){return e?`asked ${ov(e,t)}`:null}function EY(e){let t=e?.arguments;return t==null||typeof t=="object"&&Object.keys(t).length===0?null:typeof t=="string"?t:JSON.stringify(t,null,2)}function NY(e){let t=e?.agent?.id,r=e?.run_id;if(t==null||r==null)return null;let n=XC("runner",{agent:{id:t}});return n?`${n}?run=${encodeURIComponent(r)}`:null}function TY(e=""){let t=new URLSearchParams(e).get("run");return t&&/^\d+$/.test(t)?Number(t):null}function JC(){window.dispatchEvent(new CustomEvent(ZC))}function QC({agentId:e=null,refreshKey:t,enabled:r=!0,intervalMs:n=gY}={}){let[o,a]=(0,Du.useState)(null),[i,s]=(0,Du.useState)(null),l=(0,Du.useRef)(0),u=(0,Du.useCallback)(async()=>{let c=++l.current;try{let d=await fetch(hY({agentId:e}));if(!d.ok)throw new Error(`Request failed (${d.status})`);let p=await d.json();if(c!==l.current)return;a(Array.isArray(p.input_requests)?p.input_requests:[]),s(null)}catch(d){if(c!==l.current)return;s(d.message)}},[e]);return(0,Du.useEffect)(()=>{if(!r)return;u();let c=setInterval(u,n);return window.addEventListener(ZC,u),()=>{clearInterval(c),window.removeEventListener(ZC,u),l.current+=1}},[r,u,n,t]),{requests:o,error:i,refresh:u}}var bSe={text:"question",choice:"choice",confirm:"approval",secret:"secret"},wSe={answered:"success",declined:"muted",closed:"warning"},vI={fontFamily:U,fontSize:11,color:"var(--color-text-muted)"},SSe={flex:1,minWidth:0,padding:"7px 10px",borderRadius:8,border:"1px solid var(--color-border-strong)",background:"var(--color-surface)",color:"var(--color-text-primary)",fontFamily:U,fontSize:13};function kSe({request:e,busy:t,onSubmit:r}){let[n,o]=(0,yr.useState)("");return yr.default.createElement("form",{onSubmit:i=>{if(i.preventDefault(),!n||t)return;let s=n;o(""),r(s)},style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},yr.default.createElement("input",{type:"password",autoComplete:"off",spellCheck:!1,"data-aa-secret":"","data-testid":"input-request-secret","aria-label":e.prompt,value:n,onChange:i=>o(i.target.value),disabled:t,style:SSe}),yr.default.createElement(ce,{type:"submit",variant:"primary",size:"sm",disabled:t||!n,testId:"input-request-secret-submit"},t?"Sending\u2026":"Send"))}function _Se({request:e,busy:t,onApprove:r,onDecline:n}){let o=EY(e);return yr.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8}},o&&yr.default.createElement("pre",{"data-testid":"input-request-arguments",style:{margin:0,padding:"8px 10px",borderRadius:8,maxHeight:200,overflow:"auto",whiteSpace:"pre-wrap",background:"var(--color-muted)",color:"var(--color-text-cell)",fontFamily:U,fontSize:12}},o),yr.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap"}},yr.default.createElement(ce,{variant:"primary",size:"sm",onClick:r,disabled:t,testId:"input-request-approve"},"Approve"),yr.default.createElement(ce,{variant:"secondary",size:"sm",onClick:n,disabled:t,testId:"input-request-decline"},"Decline")))}function Qp({request:e,onSettled:t,initialOutcome:r=null,showRunLink:n=!0}){let{darkMode:o}=ut(),[a,i]=(0,yr.useState)(!1),[s,l]=(0,yr.useState)(r),u=hI(e),c=yI(s),d=async h=>{if(a||c)return;i(!0);let v=await SY(e,h);i(!1),l(v),yI(v)&&(JC(),t&&t(e,v))},p=h=>{h!==void 0&&d({answer:h})},f=()=>d({decline:!0}),m=n?NY(e):null,y=_Y(e.actor),b=CY(e.expires_at),g=AY(e.created_at);return yr.default.createElement("div",{"data-testid":"input-request-card","data-kind":e.kind,"data-state":s?.state||"pending",style:{border:"1px solid var(--color-border)",borderRadius:10,background:"var(--color-card)",padding:"12px 14px",display:"flex",flexDirection:"column",gap:8}},yr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},yr.default.createElement(ke,{tone:e.kind==="confirm"?"warning":"info",size:10},bSe[e.kind]||e.kind),yr.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},e.agent?.name||"An agent"," is asking"),m&&yr.default.createElement(Gr,{href:Re(m),onClick:()=>lt(m),title:"Open the run this request paused"},yr.default.createElement("span",{"data-testid":"input-request-run-link"},"run #",e.run_id)),b&&yr.default.createElement("span",{style:{...vI,marginLeft:"auto",color:b==="expired"?"var(--color-error-text)":vI.color}},b)),yr.default.createElement("div",{style:{fontSize:14,color:"var(--color-text-primary)",whiteSpace:"pre-wrap",overflowWrap:"anywhere"}},e.prompt),yr.default.createElement("div",{style:{...vI,display:"flex",gap:10,flexWrap:"wrap"}},y&&yr.default.createElement("span",{"data-testid":"input-request-actor"},"for ",y),e.tool_name&&yr.default.createElement("span",{"data-testid":"input-request-tool"},"via ",e.tool_name),g&&yr.default.createElement("span",null,g)),c?yr.default.createElement("div",{"data-testid":"input-request-outcome"},yr.default.createElement(ke,{tone:wSe[s.state]||"muted"},kY(e,s))):yr.default.createElement(yr.default.Fragment,null,(u==="text"||u==="choice")&&yr.default.createElement(wl,{blocks:bY(e),darkMode:o,onAction:h=>p(wY(e,h))}),u==="confirm"&&yr.default.createElement(_Se,{request:e,busy:a,onApprove:()=>p(!0),onDecline:f}),u==="secret"&&yr.default.createElement(kSe,{request:e,busy:a,onSubmit:p}),u!=="confirm"&&yr.default.createElement("div",null,yr.default.createElement(ce,{variant:"ghost",size:"sm",onClick:f,disabled:a,testId:"input-request-decline",style:{padding:"2px 0"}},"Decline")),s?.message&&yr.default.createElement("div",{"data-testid":"input-request-error",role:"alert",style:{fontSize:12,color:"var(--color-error-text)"}},s.message)))}function CSe({pending:e,settled:t=[],onSettled:r}){return e.length===0&&t.length===0?null:Ws.default.createElement("section",{"data-testid":"needs-input-lane","aria-label":"Needs input",style:{border:"1px solid var(--color-warning)",borderRadius:12,background:"var(--color-warning-soft)",padding:14,display:"flex",flexDirection:"column",gap:10}},Ws.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:10,flexWrap:"wrap"}},Ws.default.createElement(Ue,{color:"var(--color-warning-text)"},"Needs input"),Ws.default.createElement("span",{"data-testid":"needs-input-count",style:{fontFamily:U,fontSize:11,color:"var(--color-warning-text)"}},e.length," waiting"),Ws.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"Each run is paused until its request is answered. Answering continues the same run.")),e.map(n=>Ws.default.createElement(Qp,{key:n.id,request:n,onSettled:r})),t.map(({request:n,outcome:o})=>Ws.default.createElement(Qp,{key:n.id,request:n,initialOutcome:o})))}function xI({agentId:e=null}){let{requests:t}=QC({agentId:e}),[r,n]=(0,Ws.useState)([]),o=new Set(r.map(({request:s})=>s.id)),a=ph(t).filter(s=>!o.has(s.id));return Ws.default.createElement(CSe,{pending:a,settled:r,onSettled:(s,l)=>{n(u=>[...u.filter(c=>c.request.id!==s.id),{request:s,outcome:l}])}})}var mr=Z(J());function OY(e=[],t=""){let r=t.trim().toLowerCase();return e.filter(n=>n.status!=="archived"&&n.status!=="observed").filter(n=>!r||`${n.name||""} ${n.description||""}`.toLowerCase().includes(r)).sort((n,o)=>{let a=i=>i.status==="active"?0:1;return a(n)-a(o)||String(n.name||"").localeCompare(String(o.name||""))})}var PY=e=>`/agents/${e.id}/run?new=1`;function n0({inline:e=!1,label:t="New interaction"}){let[r,n]=(0,mr.useState)(e),[o,a]=(0,mr.useState)(null),[i,s]=(0,mr.useState)(null),[l,u]=(0,mr.useState)(""),c=(0,mr.useRef)(null);(0,mr.useEffect)(()=>{!r||o||fetch("/api/agents").then(f=>{if(!f.ok)throw new Error(`HTTP ${f.status}`);return f.json()}).then(f=>a(f.agents||[])).catch(f=>s(f.message))},[r,o]),(0,mr.useEffect)(()=>{if(e||!r)return;let f=m=>{c.current&&!c.current.contains(m.target)&&n(!1)};return document.addEventListener("mousedown",f),()=>document.removeEventListener("mousedown",f)},[e,r]);let d=(0,mr.useMemo)(()=>OY(o||[],l),[o,l]),p=mr.default.createElement("div",{"data-testid":"new-interaction-agents"},(o?.length||0)>6&&mr.default.createElement("input",{type:"search",value:l,onChange:f=>u(f.target.value),placeholder:"Find an agent","aria-label":"Find an agent",autoFocus:!e,className:"w-full mb-2 px-3 py-1.5 text-sm rounded-lg",style:{background:"var(--color-muted)",border:"1px solid var(--color-border)",color:"var(--color-text-primary)"}}),i&&mr.default.createElement("p",{className:"text-sm",style:{color:"var(--color-error)"}},"Could not load agents: ",i),!o&&!i&&mr.default.createElement("p",{className:"text-sm",style:{color:"var(--color-text-muted)"}},"Loading agents\u2026"),o&&d.length===0&&mr.default.createElement(Jr,null,o.length===0?"No agents in this workspace yet.":"No agent matches."," ",mr.default.createElement("a",{href:"#",onClick:f=>{f.preventDefault(),lt("/agents/new")},style:{color:"var(--color-info)"}},"Create an agent")),mr.default.createElement("ul",{className:"space-y-1 max-h-80 overflow-y-auto"},d.map(f=>mr.default.createElement("li",{key:f.id},mr.default.createElement("button",{type:"button","data-testid":`new-interaction-agent-${f.id}`,onClick:()=>lt(PY(f)),className:"w-full text-left px-3 py-2 rounded-lg block",style:{border:"1px solid var(--color-border)",background:"var(--color-card)",cursor:"pointer"}},mr.default.createElement("span",{className:"flex items-center justify-between gap-2"},mr.default.createElement("span",{className:"text-sm font-medium truncate min-w-0",style:{color:"var(--color-text-primary)"}},f.name),f.status&&f.status!=="active"&&mr.default.createElement(ke,{tone:"muted"},f.status)),mr.default.createElement("span",{className:"block truncate",style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},f.provider,"/",f.model),f.description&&mr.default.createElement("span",{className:"block text-xs truncate",style:{color:"var(--color-text-secondary)"}},f.description))))));return e?mr.default.createElement(je,{testId:"new-interaction-card"},mr.default.createElement("div",{className:"flex items-baseline justify-between mb-3 gap-3"},mr.default.createElement("div",null,mr.default.createElement(Ue,null,"Your agents"),mr.default.createElement("p",{className:"text-sm mt-1",style:{color:"var(--color-text-secondary)"}},"Start a new interaction. It runs with the instructions, tools and MCP servers saved on the agent."))),p):mr.default.createElement("div",{ref:c,className:"relative"},mr.default.createElement(ce,{variant:"primary",size:"sm",testId:"new-interaction",onClick:()=>n(f=>!f)},t),r&&mr.default.createElement("div",{className:"absolute right-0 mt-2 z-20 p-3 rounded-xl",style:{width:360,background:"var(--color-card)",border:"1px solid var(--color-border)",boxShadow:"0 8px 24px rgba(0,0,0,0.12)"}},mr.default.createElement(Ue,{style:{display:"block",marginBottom:8}},"Start a conversation with"),p))}var Ye=Z(J());var e2=(e,t)=>e!=null&&e>=400&&e<500||t>=5;var Hs=(e,t)=>`${e} ${t}${e===1?"":"s"}`,o0=(e,t)=>{let r=String(e??"");return r.length>t?`${r.slice(0,t-1)}\u2026`:r},t2=e=>String(e||"").replace(/_/g," ").replace(/^\w/,t=>t.toUpperCase()),MY=e=>String(e??"").replace(/\s+/g," ").trim(),Rp=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),fh=e=>{try{return JSON.stringify(e)??String(e)}catch{return String(e)}},r2=e=>{if(e==null||e===""||Number.isNaN(Number(e)))return null;let t=Number(e);return t===0?"$0.00":Math.abs(t)<.01?`$${t.toFixed(4)}`:`$${t.toFixed(2)}`},bI=e=>{if(e==null||e===""||Number.isNaN(Number(e)))return null;let t=Math.max(0,Number(e));if(t<1e3)return`${Math.round(t)}ms`;if(t<6e4)return`${(t/1e3).toFixed(1).replace(/\.0$/,"")}s`;let r=Math.round(t/1e3);return r<3600?`${Math.floor(r/60)}m ${r%60}s`:`${Math.floor(r/3600)}h ${Math.floor(r%3600/60)}m`},jY=(e,{num_turns:t,total_cost_usd:r,duration_ms:n}={})=>[e,t==null||t===""?null:Hs(Number(t),"turn"),r2(r),bI(n)].filter(Boolean).join(" \xB7 "),$Y=(e,t=Date.now())=>{if(!e)return null;let r=new Date(e).getTime();if(Number.isNaN(r))return null;let n=Math.ceil((r-t)/6e4);return n<=0?"past its expiry":n<60?`expires in ${n}m`:`expires in ${Math.floor(n/60)}h${n%60?` ${n%60}m`:""}`},at=(e,t)=>{let r=i=>Array.isArray(i)?i.filter(Boolean).join(", "):typeof i=="string"?i:"",n=Rp(e)?e:{},o=r(n.error)||r(n.errors),a=typeof n.message=="string"?n.message:"";return o&&a?`${o}: ${a}`:o||a||t},ASe={pending:{label:"Queued",tone:"progress"},provisioning:{label:"Booting",tone:"progress"},ready:{label:"Ready",tone:"success"},running:{label:"Running",tone:"success"},completed:{label:"Completed",tone:"neutral"},expired:{label:"Stopped",tone:"neutral"},failed:{label:"Failed",tone:"error"}},LY=e=>ASe[e]||{label:t2(e)||"Unknown",tone:"neutral"},n2=e=>["pending","provisioning"].includes(e?.status),zY=e=>e?.status==="ready",ESe={queued:{label:"Queued",tone:"progress"},running:{label:"Running",tone:"progress"},succeeded:{label:"Succeeded",tone:"success"},failed:{label:"Failed",tone:"error"},cancelled:{label:"Cancelled",tone:"neutral"}},fs=e=>ESe[e]||{label:t2(e)||"Unknown",tone:"neutral"},qs=e=>["queued","running"].includes(e?.status),l0=e=>["succeeded","failed","cancelled"].includes(e?.status),wI=e=>l0(e)&&e?.diff_pending===!0,SI=e=>l0(e)&&!wI(e),BY=e=>e?.status==="cancelled"&&SI(e)&&e?.diff==null&&!(Number(e?.event_count)>0),kI=e=>{if(!l0(e)){let t=Number(e?.event_count)||0;return t>0?Hs(t,"event"):""}return jY(null,e)},FY=e=>[fs(e?.status).label,kI(e)].filter(Boolean).join(" \xB7 "),UY=(e,t=80)=>{let r=String(e||"").split(` -`).map(n=>n.trim()).find(Boolean)||"";return o0(r,t)||"(empty prompt)"},sd=(e,t,r)=>{if(!t||t[r]==null)return e;let n=e.findIndex(a=>a[r]===t[r]);if(n===-1)return[t,...e];let o=e.slice();return o[n]={...e[n],...t},o},WY=(e,t,r)=>t&&e.some(n=>n[r]===t[r])?sd(e,t,r):e,HY=e=>{if(!e)return e;let{events:t,events_offset:r,dropped_events_count:n,diff:o,...a}=e;return a},qY=(e,t)=>{let r=new Set(t||[]),n={},o=[];return(e||[]).forEach(a=>{!a||a.status==="expired"||a.sandbox_type&&a.sandbox_type!=="app_runtime"||(r.has(a.repository)?(n[a.repository]||=[]).push(a):o.push(a))}),{byRepository:n,others:o}},KY=(e,t)=>{let r=Array.isArray(e)?e:[],n=Array.isArray(t?.events)?t.events:[],o=Math.max(0,Math.min(Number(t?.events_offset)||0,r.length));return[...r.slice(0,o),...n]},Sl=(e,t)=>{let r=String(e??"");if(!t)return r;let n=String(t).replace(/\/+$/,"");return r===n?".":r.startsWith(`${n}/`)?r.slice(n.length+1):r},NSe={Bash:e=>e.command,Read:(e,t)=>Sl(e.file_path,t),Write:(e,t)=>Sl(e.file_path,t),Edit:(e,t)=>Sl(e.file_path,t),MultiEdit:(e,t)=>{let r=Array.isArray(e.edits)?` (${Hs(e.edits.length,"edit")})`:"";return`${Sl(e.file_path,t)}${r}`},NotebookEdit:(e,t)=>Sl(e.notebook_path,t),NotebookRead:(e,t)=>Sl(e.notebook_path,t),Glob:(e,t)=>e.path?`${e.pattern} in ${Sl(e.path,t)}`:e.pattern,Grep:(e,t)=>[`"${e.pattern}"`,e.path&&`in ${Sl(e.path,t)}`,e.glob&&`(${e.glob})`].filter(Boolean).join(" "),LS:(e,t)=>Sl(e.path,t),WebFetch:e=>e.url,WebSearch:e=>e.query,Task:e=>e.description||e.prompt,Agent:e=>e.description||e.prompt,TodoWrite:e=>Array.isArray(e.todos)?Hs(e.todos.length,"todo"):"",BashOutput:e=>e.bash_id,KillShell:e=>e.shell_id,KillBash:e=>e.shell_id,Skill:e=>e.skill||e.command,SlashCommand:e=>e.command},TSe=["command","file_path","path","url","query","pattern","description","name","prompt"],OSe=(e,t,{cwd:r}={})=>{if(t==null)return"";if(!Rp(t))return o0(MY(typeof t=="string"?t:fh(t)),120);let n=NSe[e],o=n?n(t,r):null;if(o==null||o===""){let a=TSe.find(i=>typeof t[i]=="string"&&t[i].trim());a?o=["file_path","path"].includes(a)?Sl(t[a],r):t[a]:o=Object.keys(t).length?fh(t):""}return o0(MY(o),120)},PSe=e=>e==null?"":typeof e=="string"?e:Array.isArray(e)?e.map(t=>typeof t=="string"?t:t?.type==="text"?t.text??"":t?.type==="image"?"[image]":fh(t)).join(` -`):fh(e),MSe=(e,{chars:t=600,lines:r=12}={})=>{let n=String(e??"").replace(/\s+$/,""),o=n.split(` +`)));continue}let l=s.match(/^(#{1,4})\s+(.*)$/);if(l){n.push(Zn.default.createElement("div",{key:i++,className:"font-semibold mt-1",style:{fontSize:`${1.25-l[1].length*.05}em`}},Zx(l[2],`h${i}`))),a+=1;continue}if(XG(s)&&a+1Zn.default.createElement("th",{key:f,className:"text-left font-semibold px-2 py-1",style:{borderBottom:"1px solid rgba(127,127,127,0.35)"}},Zx(p,`th${d}-${f}`))))),Zn.default.createElement("tbody",null,c.map((p,f)=>Zn.default.createElement("tr",{key:f},u.map((m,y)=>Zn.default.createElement("td",{key:y,className:"px-2 py-1 align-top",style:{borderBottom:"1px solid rgba(127,127,127,0.15)"}},Zx(p[y]??"",`td${d}-${f}-${y}`)))))))));continue}if(/^\s*([-*]|\d+\.)\s+/.test(s)){let u=[];for(;aZn.default.createElement("li",{key:d},Zx(c,`li${i}-${d}`)))));continue}if(s.trim()===""){n.push(Zn.default.createElement("div",{key:i++,className:"h-2"})),a+=1;continue}n.push(Zn.default.createElement("div",{key:i++},Zx(s,`p${i}`))),a+=1}return Zn.default.createElement("div",{className:"break-words"},n)}var ei=Z(Q()),Fwe=e=>{let t=e.mcp_server||e.server;return t?`MCP server \xB7 ${t}`:typeof e.name=="string"&&e.name.startsWith("mcp__")?`MCP server \xB7 ${e.name.split("__")[1]}`:e.gem?`gem \xB7 ${e.gem}`:e.source?String(e.source):"agent-defined \xB7 method on the agent class"},Uwe=e=>Array.isArray(e.parameters)?e.parameters:e.parameters&&typeof e.parameters=="object"?Object.keys(e.parameters.properties||e.parameters):[];function iI({tool:e,darkMode:t}){let r=Uwe(e);return ei.default.createElement("div",{style:{display:"grid",gap:"4px"}},e.description&&ei.default.createElement("div",{className:"text-sm",style:{color:t?"rgba(255,255,255,0.75)":"#4b5563"}},e.description),ei.default.createElement("div",{className:"text-xs font-mono",style:{color:t?"rgba(255,255,255,0.45)":"#9ca3af",display:"flex",flexWrap:"wrap",columnGap:"16px",rowGap:"4px"}},ei.default.createElement("span",null,"params: ",r.length>0?r.join(", "):"none"),ei.default.createElement("span",null,"source: ",Fwe(e))))}function sI({tools:e,darkMode:t}){let[r,n]=(0,ei.useState)(null),o=(e||[]).filter(s=>s&&s.name);if(o.length===0)return null;let a=o.find(s=>s.name===r),i=s=>({background:t?"rgba(34,197,94,0.12)":"#f0fdf4",color:t?"#86efac":"#15803d",border:`1px solid ${s?t?"#4ade80":"#22c55e":"transparent"}`,borderRadius:"6px",padding:"2px 8px",fontSize:"11px",cursor:"pointer"});return ei.default.createElement("div",{style:{marginTop:"8px"}},ei.default.createElement("div",{className:"flex items-center gap-1.5 flex-wrap font-mono"},ei.default.createElement("span",{className:"text-xs uppercase",style:{letterSpacing:"0.05em",color:t?"rgba(255,255,255,0.45)":"#9ca3af"}},"tools"),o.map(s=>ei.default.createElement("button",{key:s.name,onClick:l=>{l.stopPropagation(),n(r===s.name?null:s.name)},title:r===s.name?"Hide definition":"Show definition",style:i(r===s.name)},"\u2699 ",s.name))),a&&ei.default.createElement("div",{onClick:s=>s.stopPropagation(),style:{marginTop:"6px",padding:"8px 10px",borderRadius:"8px",background:t?"rgba(34,197,94,0.06)":"#f7fef9",border:`1px solid ${t?"rgba(34,197,94,0.25)":"#bbf7d0"}`}},ei.default.createElement(iI,{tool:a,darkMode:t})))}var Wwe=["application/json","application/xml","application/x-yaml","application/csv"],Hwe=/\.(csv|md|txt|json|ya?ml)$/i;function JG(e){let t=String(e?.type||e?.content_type||"").toLowerCase(),r=String(e?.name||e?.filename||"");return t.startsWith("image/")?"image":t==="application/pdf"?"document":t.startsWith("text/")||Wwe.includes(t)||Hwe.test(r)?"text":"file"}function QG(e){let t=Number(e);return!Number.isFinite(t)||t<0?"":t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function RG(e){if(typeof e!="string")return!1;let t=e.trim();if(/^(data:image\/|blob:)/i.test(t))return!0;if(/^\/[\\/]/.test(t))return!1;if(t.startsWith("/"))return!0;if(!/^https?:\/\//i.test(t)||typeof window>"u"||!window.location)return!1;try{return new URL(t,window.location.href).origin===window.location.origin}catch{return!1}}var eY=e=>e==null?null:e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(2)}s`,Jx=e=>{if(e==null)return null;if(typeof e=="object")return JSON.stringify(e,null,2);try{return JSON.stringify(JSON.parse(e),null,2)}catch{return null}},qwe=["text","output","body","content"],tY=e=>{if(e==null)return null;if(typeof e=="object")return e;try{return JSON.parse(e)}catch{return null}},Kwe=e=>{let t=tY(e.tool_result)??tY(e.content);if(!t||typeof t!="object"||Array.isArray(t))return null;let r=qwe.find(a=>typeof t[a]=="string"&&t[a].trim().length>0);if(!r)return null;let n=[t.error&&"error",t.status!=null&&`status ${t.status}`,typeof t.url=="string"&&t.url.replace(/^https?:\/\//,""),typeof t.agent=="string"&&`\u2192 ${t.agent}`,t.truncated&&"truncated"].filter(Boolean).join(" \xB7 "),o=Object.fromEntries(Object.entries(t).filter(([a])=>a!==r));return{field:r,meta:n,body:t[r],rest:o}},Vwe=e=>!!(e.tool_name||e.tool_call_id||e.tool_arguments||e.tool_result||(e.tool_calls||[]).length>0||e.duration_ms!=null||Jx(e.content)),oY=280,Gwe=["tool","system","developer"],Qx=(e,t=oY)=>e.replace(/\s+/g," ").trim().slice(0,t),lI=e=>{if(e==null)return null;if(typeof e=="object")return JSON.stringify(e);try{return JSON.stringify(JSON.parse(e))}catch{return String(e)}},aY=e=>{let t=e.tool_calls;return t?Array.isArray(t)?t.map(r=>({name:r.function?.name||r.name||e.tool_name,args:lI(r.function?.arguments??r.arguments??r.input)})):[{name:e.tool_name,args:lI(t)}]:[]},iY=e=>!!(e&&String(e).trim()&&String(e).trim()!=="\u2014"),Ywe=e=>{let t=(e||[]).filter(Boolean),r=new Map,n=new Set;return t.forEach((o,a)=>{if(o.role!=="assistant"||iY(o.content))return;let i=aY(o);if(i.length===0)return;let s=new Set;Array.isArray(o.tool_calls)?o.tool_calls.forEach(u=>u.id&&s.add(u.id)):o.tool_call_id&&s.add(o.tool_call_id);let l=[];for(let u=a+1;u0&&c.tool_call_id&&!s.has(c.tool_call_id))break;l.push(u)}l.length!==0&&(l.forEach((u,c)=>{let d=t[u],p=i.find(f=>f.name&&f.name===d.tool_name)||i[Math.min(c,i.length-1)];p&&p.args&&!d.tool_arguments&&r.set(u,{tool_arguments:p.args,created_at:o.created_at||d.created_at})}),n.add(a))}),t.map((o,a)=>r.has(a)?{...o,...r.get(a)}:o).filter((o,a)=>!n.has(a))},rY=e=>Gwe.includes(e.role)&&typeof e.content=="string"&&Qx(e.content).length>=oY,Xwe=({message:e,darkMode:t})=>{let r=e.trace_duration_ms||0;if(!r||e.span_duration_ms==null)return null;let n=Math.min((e.span_start_ms||0)/r*100,98),o=Math.max(e.span_duration_ms/r*100,2),a=e.role==="tool"?"#22c55e":e.role==="assistant"?"#ef4444":"#60a5fa";return Le.default.createElement("span",{title:`${Math.round(e.span_duration_ms)}ms \xB7 starts at ${Math.round(e.span_start_ms||0)}ms of ${Math.round(r)}ms`,style:{position:"relative",width:"96px",height:"5px",borderRadius:"999px",background:t?"rgba(255,255,255,0.08)":"#f3f4f6",flexShrink:0,marginTop:"8px",display:"inline-block"}},Le.default.createElement("span",{style:{position:"absolute",top:0,bottom:0,left:`${n}%`,width:`${Math.min(o,100-n)}%`,borderRadius:"999px",background:a}}))},qC=e=>({background:e?"rgba(0,0,0,0.35)":"#f3f4f6",color:e?"#ffffff":"#111827",borderRadius:"6px",padding:"8px 10px",fontSize:"12px",overflowX:"auto",margin:0}),Ln=(e,t)=>{let{tone:r,label:n}=M6(e),o=Dn[r]||Dn.muted;return{background:o.soft,color:o.text,label:n,tone:r}},nY={image:"IMG",document:"PDF",text:"TXT",file:"FILE"};function KC({attachments:e,darkMode:t,testId:r,onRemove:n,removeTestId:o}){let a=(e||[]).filter(Boolean);if(a.length===0)return null;let i=Vi(t);return Le.default.createElement("div",{className:"flex flex-wrap gap-2 mt-1.5"},a.map((s,l)=>{let u=String(s.content_type||""),c=(s.kind==="image"||u.startsWith("image/"))&&RG(s.url),d=QG(s.byte_size);return Le.default.createElement("span",{key:s.id??`${s.filename}-${l}`,"data-testid":r,title:[s.filename,u,d].filter(Boolean).join(" \xB7 "),className:"inline-flex items-center gap-2 rounded-lg px-2 py-1 text-xs",style:{background:i.mutedBg,border:`1px solid ${i.cardBorder}`,color:i.textCell,maxWidth:"260px"}},c?Le.default.createElement("img",{src:s.url,alt:s.filename||"",style:{width:"36px",height:"36px",objectFit:"cover",borderRadius:"4px",flexShrink:0}}):Le.default.createElement("span",{className:"font-mono",style:{color:i.textMuted,flexShrink:0}},nY[s.kind]||nY.file),Le.default.createElement("span",{className:"min-w-0"},Le.default.createElement("span",{className:"block truncate"},s.filename||"attachment"),d&&Le.default.createElement("span",{className:"block font-mono",style:{color:i.textMuted}},d)),n&&Le.default.createElement("button",{type:"button","data-testid":o,onClick:p=>{p.stopPropagation(),n(s,l)},title:"Remove","aria-label":`Remove ${s.filename||"attachment"}`,className:"font-mono",style:{color:i.textMuted,background:"none",border:"none",cursor:"pointer",padding:"0 2px"}},"\u2715"))}))}var sY=e=>{let t=new Set;return Array.isArray(e.tool_calls)?e.tool_calls.forEach(r=>r&&r.id!=null&&t.add(r.id)):e.tool_call_id&&t.add(e.tool_call_id),t},Zwe=(e,t)=>{let r=ih(e);if(r)return r;let n=t.find(o=>o&&o.role==="assistant"&&(e.tool_call_id?sY(o).has(e.tool_call_id):ih(o)));return n?ih(n,{callId:e.tool_call_id}):null},Jwe=(e,t)=>{let r=sY(e);return t.some(n=>n&&n.role==="tool"&&n.tool_name===Yp&&(!n.tool_call_id||r.size===0||r.has(n.tool_call_id)))};function fs({messages:e,darkMode:t,tools:r,onUiAction:n,onEditMessage:o,onDeleteMessage:a,testIdPrefix:i}){let[s,l]=(0,Le.useState)({}),[u,c]=(0,Le.useState)(null),[d,p]=(0,Le.useState)(""),[f,m]=(0,Le.useState)(!1),[y,b]=(0,Le.useState)(null),g=A=>l(C=>({...C,[A]:!C[A]})),h={textPrimary:t?"#ffffff":"#111827",textSecondary:t?"rgba(255,255,255,0.6)":"#6b7280",textMuted:t?"rgba(255,255,255,0.4)":"#9ca3af"},v=A=>i?`${i}-${A}`:void 0,x=A=>A.stopPropagation(),S=A=>{c(A.id),p(A.content||""),b(null)},k=()=>{c(null),b(null)},w=async A=>{if(!f){m(!0),b(null);try{await o(A,d),c(null)}catch(C){b(C.message||"Could not save the message")}finally{m(!1)}}},_=Ywe(e);return Le.default.createElement("div",{className:"space-y-3"},_.map(A=>{let C=Ln(A.role,t),N=!!s[A.id],L=u===A.id,J=!!((o||a)&&["user","assistant"].includes(A.role)),B=A.role==="tool"&&A.tool_name===Yp?Zwe(A,_):null,K=A.role==="assistant"&&!L?eI(A.content):null,T=A.role==="assistant"&&!Jwe(A,_)?ih(A):null,P=rY(A)&&!N,I=Vwe(A)||rY(A),M=Jx(A.tool_arguments),j=Jx(A.tool_result)||Jx(A.content),O=A.tool_calls&&(!Array.isArray(A.tool_calls)||A.tool_calls.length>0)?Jx(A.tool_calls):null,F=A.role==="tool"?Kwe(A):null,V=A.tool_name?(r||[]).find(R=>R&&R.name===A.tool_name):null,z=A.role==="tool"?lI(A.tool_arguments):null,G=A.role==="tool"&&!!z,q=Ln("assistant",t),oe=Ln("tool",t),Me=A.role==="tool"&&!A.tool_arguments&&_.some(R=>R&&R.role==="assistant"&&(A.tool_call_id&&R.tool_call_id===A.tool_call_id||Array.isArray(R.tool_calls)&&R.tool_calls.some(te=>te.id&&te.id===A.tool_call_id))),fe=A.role==="assistant"&&!iY(A.content)?aY(A):[],le=qC(t);return Le.default.createElement("div",{key:A.id,className:"group","data-testid":i,"data-message-id":i?A.id:void 0,"data-role":i?A.role:void 0},Le.default.createElement("div",{className:`flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 ${I?"cursor-pointer":""}`,onClick:I?()=>g(A.id):void 0,style:N?{background:t?"rgba(255,255,255,0.04)":"rgba(0,0,0,0.03)"}:{}},Le.default.createElement("span",{className:"flex flex-col gap-1 flex-shrink-0 mt-0.5",style:{minWidth:"72px"}},(G?[q,oe]:[C]).map(R=>Le.default.createElement(ke,{key:R.label,tone:R.tone,style:{justifyContent:"center"}},R.label))),Le.default.createElement("div",{className:"min-w-0 flex-1"},Le.default.createElement("div",{className:"text-sm break-words",style:{color:h.textPrimary}},L?Le.default.createElement("div",{className:"space-y-2",onClick:x},Le.default.createElement("textarea",{"data-testid":v("editor"),value:d,onChange:R=>p(R.target.value),onKeyDown:R=>{R.key==="Escape"&&k(),R.key==="Enter"&&(R.metaKey||R.ctrlKey)&&w(A)},rows:Math.min(12,Math.max(3,d.split(` +`).length)),autoFocus:!0,className:"aa-field w-full",style:{padding:"8px 10px",borderRadius:"8px",border:`1px solid ${t?"rgba(255,255,255,0.2)":"#d1d5db"}`,background:t?"rgba(255,255,255,0.06)":"#ffffff",color:h.textPrimary,fontFamily:"inherit",fontSize:"13px",resize:"vertical"}}),Le.default.createElement("div",{className:"flex items-center gap-2 text-xs"},Le.default.createElement("button",{type:"button","data-testid":v("save"),onClick:()=>w(A),disabled:f,style:{padding:"4px 10px",borderRadius:"6px",background:"#ef4444",color:"#ffffff",border:"none",cursor:f?"wait":"pointer",fontWeight:500}},f?"Saving\u2026":"Save"),Le.default.createElement("button",{type:"button","data-testid":v("cancel"),onClick:k,disabled:f,style:{padding:"4px 10px",borderRadius:"6px",background:"transparent",color:h.textSecondary,border:`1px solid ${t?"rgba(255,255,255,0.2)":"#d1d5db"}`,cursor:"pointer"}},"Cancel"),y&&Le.default.createElement("span",{style:{color:"#dc2626"}},y))):B?Le.default.createElement("div",null,Le.default.createElement("div",{className:"font-mono text-xs mb-1",style:{color:oe.color}},"\u2699 ",A.tool_name," \xB7 ",B.length," block",B.length===1?"":"s"),Le.default.createElement(wl,{blocks:B,onAction:n,darkMode:t})):A.role==="tool"?Le.default.createElement("span",{style:{display:"grid",gap:"2px"}},z&&!Me&&Le.default.createElement("span",{className:"font-mono text-xs break-words"},A.tool_name&&Le.default.createElement("span",{style:{color:oe.color}},"\u2699 ",A.tool_name," "),Le.default.createElement("span",{style:{color:G?q.color:h.textMuted}},"in:")," ",Qx(z,180),z.length>180?"\u2026":""),F?Le.default.createElement("span",null,A.tool_name&&!(z&&!Me)&&Le.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:oe.color}},"\u2699 ",A.tool_name),(z||Me)&&Le.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:G?oe.color:h.textMuted}},"out:"),F.meta&&Le.default.createElement("span",{className:"font-mono text-xs mr-2",style:{color:h.textMuted}},F.meta),"\u201C",F.body.replace(/\s+/g," ").trim().slice(0,180),F.body.length>180?"\u2026":"","\u201D"):A.content?Le.default.createElement("span",null,A.tool_name&&!(z&&!Me)&&Le.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:oe.color}},"\u2699 ",A.tool_name),(z||Me)&&Le.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:G?oe.color:h.textMuted}},"out:"),"\u201C",Qx(A.content,180),A.content.replace(/\s+/g," ").trim().length>180?"\u2026":"","\u201D"):Le.default.createElement("span",{className:"whitespace-pre-wrap"},A.tool_name?`\u2192 ${A.tool_name}(...)`:"\u2014")):P?Le.default.createElement("span",{style:{color:h.textSecondary}},Qx(A.content),"\u2026"):fe.length>0?Le.default.createElement("span",{style:{display:"grid",gap:"2px"}},fe.map((R,te)=>Le.default.createElement("span",{key:te,className:"font-mono text-xs break-words"},R.name&&Le.default.createElement("span",{style:{color:h.textMuted}},R.name," "),Le.default.createElement("span",{style:{color:h.textMuted}},"in:")," ",R.args?Le.default.createElement(Le.default.Fragment,null,Qx(R.args,180),R.args.length>180?"\u2026":""):"\u2014"))):K&&K.blocks?Le.default.createElement(wl,{blocks:K.blocks,onAction:n,darkMode:t}):K&&K.object?Le.default.createElement(wl,{blocks:[{type:"object",value:K.object}],darkMode:t}):Le.default.createElement(Us,{text:A.content||"\u2014",darkMode:t,onUiAction:n}),T&&!L&&Le.default.createElement("div",{className:"mt-2"},Le.default.createElement(wl,{blocks:T,onAction:n,darkMode:t})),A.role==="user"&&Le.default.createElement(KC,{attachments:A.attachments,darkMode:t,testId:v("attachment")})),Le.default.createElement("div",{className:"text-xs mt-0.5 font-mono flex items-center gap-2 flex-wrap",style:{color:h.textMuted}},J&&!L&&Le.default.createElement("span",{className:"flex items-center gap-2 opacity-0 group-hover:opacity-100 focus-within:opacity-100 transition-opacity",onClick:x},o&&Le.default.createElement("button",{type:"button","data-testid":v("edit"),onClick:()=>S(A),className:"hover:underline",style:{color:h.textSecondary,background:"none",border:"none",padding:0,cursor:"pointer",font:"inherit"}},"Edit"),a&&Le.default.createElement("button",{type:"button","data-testid":v("delete"),onClick:()=>a(A),className:"hover:underline",style:{color:"#dc2626",background:"none",border:"none",padding:0,cursor:"pointer",font:"inherit"}},"Delete")),A.created_at&&Le.default.createElement("span",null,new Date(A.created_at).toLocaleTimeString()),A.tool_name&&A.role!=="tool"&&Le.default.createElement("span",{className:"px-1.5 py-0.5 rounded",style:{background:C.background,color:C.color}},"\u2699 ",A.tool_name),A.duration_ms!=null&&Le.default.createElement("span",null,eY(A.duration_ms)),(A.tool_calls||[]).length>0&&Le.default.createElement("span",null,A.tool_calls.length," tool call",A.tool_calls.length>1?"s":""),A.content_checksum&&Le.default.createElement("span",{title:"Content fingerprint"},"\u{1F512} ",A.content_checksum.slice(0,8)))),Le.default.createElement(Xwe,{message:A,darkMode:t}),I&&Le.default.createElement("svg",{className:`w-3.5 h-3.5 mt-1 flex-shrink-0 transition-transform ${N?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",style:{color:h.textMuted}},Le.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))),N&&Le.default.createElement("div",{className:"ml-3 mt-1 mb-2 pl-4 space-y-2 border-l-2",style:{borderColor:C.color+"55"}},Le.default.createElement("div",{className:"flex flex-wrap gap-x-5 gap-y-1 text-xs font-mono",style:{color:h.textSecondary}},A.created_at&&Le.default.createElement("span",null,new Date(A.created_at).toLocaleString()),A.tool_call_id&&Le.default.createElement("span",null,"call: ",A.tool_call_id),A.duration_ms!=null&&Le.default.createElement("span",null,"took ",eY(A.duration_ms)),A.content_checksum&&Le.default.createElement("span",null,"\u{1F512} ",A.content_checksum)),M&&Le.default.createElement("div",null,Le.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:G?q.color:h.textMuted}},"Arguments",G?" \xB7 from the agent":""),Le.default.createElement("pre",{style:le},M)),F?Le.default.createElement("div",null,Le.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:G?oe.color:h.textMuted}},"Result",G?" \xB7 from the tool":""),Object.keys(F.rest).length>0&&Le.default.createElement("pre",{style:le},JSON.stringify(F.rest,null,2)),Le.default.createElement("div",{className:"text-xs uppercase tracking-wide mt-2 mb-1",style:{color:h.textMuted}},F.field," \xB7 ",F.body.length.toLocaleString()," chars"),Le.default.createElement("pre",{style:{...le,whiteSpace:"pre-wrap",maxHeight:"320px",overflowY:"auto"}},F.body.slice(0,8e3),F.body.length>8e3?` +\u2026`:"")):j?Le.default.createElement("div",null,Le.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:h.textMuted}},A.role==="tool"?"Result":"Content (parsed)"),Le.default.createElement("pre",{style:le},j)):A.role==="tool"&&A.content?Le.default.createElement("div",null,Le.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:G?oe.color:h.textMuted}},"Result",G?" \xB7 from the tool":""," \xB7 ",A.content.length.toLocaleString()," chars"),Le.default.createElement("pre",{style:{...le,whiteSpace:"pre-wrap",maxHeight:"320px",overflowY:"auto"}},A.content.slice(0,8e3),A.content.length>8e3?` +\u2026`:"")):null,O&&Le.default.createElement("div",null,Le.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:h.textMuted}},"Requested tool calls"),Le.default.createElement("pre",{style:le},O)),V&&Le.default.createElement("div",null,Le.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:h.textMuted}},"Tool definition"),Le.default.createElement(iI,{tool:V,darkMode:t}))))}))}var or=Z(Q());var ln=Z(Q());var Jn=e=>({cardBg:e?"#1f1f1f":"#ffffff",cardBorder:e?"#2a2a2a":"#e5e7eb",innerBg:e?"rgba(255,255,255,0.04)":"#f9fafb",panelBg:e?"rgba(0,0,0,0.35)":"#f9fafb",preBg:e?"rgba(255,255,255,0.06)":"#eef0f3",trackBg:e?"rgba(255,255,255,0.08)":"#f3f4f6",hoverBg:e?"rgba(255,255,255,0.04)":"#f9fafb",controlBg:e?"rgba(255,255,255,0.06)":"#f3f4f6",controlActiveBg:e?"#2a2a2a":"#ffffff",textPrimary:e?"#ffffff":"#111827",textSecondary:e?"rgba(255,255,255,0.6)":"#6b7280",textMuted:e?"rgba(255,255,255,0.4)":"#9ca3af",textBody:e?"rgba(255,255,255,0.75)":"#4b5563",link:"#3b82f6",good:e?"#4ade80":"#16a34a",bad:"#ef4444"}),lY=(e,t=200)=>{let r=String(e??"").replace(/\s+/g," ").trim();return r.length>t?`${r.slice(0,t)}\u2026`:r};function Zp({open:e,darkMode:t,size:r=14,style:n}){return ln.default.createElement("svg",{className:`flex-shrink-0 transition-transform ${e?"rotate-180":""}`,width:r,height:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",style:{color:Jn(t).textMuted,...n},"aria-hidden":"true"},ln.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))}function VC({darkMode:e,id:t,children:r,style:n,className:o=""}){let a=Jn(e);return ln.default.createElement("div",{id:t,className:`rounded-xl border overflow-hidden transition-colors ${o}`,style:{backgroundColor:a.cardBg,borderColor:a.cardBorder,...n}},r)}var Ta={context:132,duration:76,tokens:104,cost:88,status:68,count:96,age:76};function ad({cells:e,darkMode:t,gap:r=16,className:n="",style:o}){let a=Jn(t),i=(e||[]).filter(Boolean);return i.length===0?null:ln.default.createElement("div",{className:`flex-shrink-0 text-sm ${n}`,style:{display:"grid",gridTemplateColumns:i.map(s=>s.width?`${s.width}px`:"minmax(0, auto)").join(" "),alignItems:"center",columnGap:`${r}px`,color:a.textSecondary,...o}},i.map(s=>{let l=s.content!=null&&s.content!==!1&&s.content!=="";return ln.default.createElement("div",{key:s.key,title:(l?s.title:s.empty)||void 0,className:"min-w-0 truncate",style:{textAlign:s.align||"right"}},l?s.content:ln.default.createElement("span",{style:{color:a.textMuted}},"\u2014"))}))}var uY=(e,{wrap:t=!0,maxHeight:r=320}={})=>({background:Jn(e).preBg,borderRadius:"6px",padding:"6px 8px",margin:"2px 0 4px 0",overflowX:"auto",overflowY:"auto",maxHeight:`${r}px`,whiteSpace:t?"pre-wrap":"pre"}),Qwe=e=>{if(e==null)return{text:"",json:!1};if(typeof e=="object")return{text:JSON.stringify(e,null,2),json:!0};let t=String(e);if(!/^[[{]/.test(t.trim()))return{text:t,json:!1};try{return{text:JSON.stringify(JSON.parse(t),null,2),json:!0}}catch{return{text:t,json:!1}}};function uh({lines:e,darkMode:t,onClick:r,indent:n=0,size:o="12px",style:a,max:i=200,hold:s=!1}){let[l,u]=ch(),c=Jn(t),d=(e||[]).filter(p=>p&&(p.text||s));return d.some(p=>p.text)?ln.default.createElement("div",{onClick:r,className:"min-w-0",style:{display:"grid",gap:"2px",paddingLeft:n?`${n}px`:0,fontFamily:Pt.mono,fontSize:o,color:c.textSecondary,cursor:r?"pointer":"default",...a}},d.map((p,f)=>{let m=`${p.label}-${f}`,y=l(m),b=p.max||i,g=!p.text,h=String(p.text??"").replace(/\s+/g," ").trim(),v=Qwe(p.text),x=!g&&(v.json||h.length>60||h!==String(p.text).trim());return ln.default.createElement("div",{key:m},ln.default.createElement("div",{onClick:x?S=>{S.stopPropagation(),u(m)}:void 0,title:x?y?"Collapse":"Expand":void 0,style:{cursor:x?"pointer":"default",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0}},ln.default.createElement("span",{style:{color:p.color||c.textMuted}},x?y?"\u25BE":"\u25B8":"\xA0"," ",p.label,":")," ",!y&&(g?ln.default.createElement("span",{style:{color:c.textMuted}},"\u2014"):lY(h,b))),y&&ln.default.createElement("pre",{onClick:S=>S.stopPropagation(),style:uY(t,{wrap:!v.json})},v.text))})):null}function Rx({options:e,value:t,onChange:r,darkMode:n,label:o,style:a}){let i=Jn(n);return ln.default.createElement("div",{className:"flex items-center gap-1 flex-shrink-0",style:a},o&&ln.default.createElement("span",{className:"text-xs mr-1",style:{color:i.textMuted}},o),e.map(s=>ln.default.createElement("button",{key:s.id,type:"button",onClick:l=>{l.stopPropagation(),r(s.id)},title:s.hint,className:"px-2 py-0.5 text-xs rounded transition-colors",style:t===s.id?{background:i.controlActiveBg,color:i.textPrimary,boxShadow:n?"none":"0 1px 2px rgba(0,0,0,0.08)"}:{color:i.textSecondary}},s.label)))}function cY({label:e,body:t,open:r,onToggle:n,darkMode:o,prose:a=!1,max:i=140}){let s=Jn(o);return ln.default.createElement("div",null,ln.default.createElement("div",{onClick:l=>{l.stopPropagation(),n()},title:r?"Collapse":"Expand",style:{cursor:"pointer",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},ln.default.createElement("span",{style:{color:s.textMuted}},r?"\u25BE":"\u25B8"," ",e,":")," ",!r&&ln.default.createElement("span",{style:{color:s.textMuted}},lY(t,i))),r&&ln.default.createElement("pre",{onClick:l=>l.stopPropagation(),style:uY(o,{wrap:a})},t))}function ch(e={}){let[t,r]=(0,ln.useState)(e),n=(0,ln.useCallback)(a=>{r(i=>({...i,[a]:!i[a]}))},[]);return[(0,ln.useCallback)(a=>!!t[a],[t]),n,r]}var uI={root:"#9ca3af",prompt:"#60a5fa",generate:"#a855f7",llm:"#ef4444",thinking:"#fbbf24",tool:"#22c55e",response:"#2dd4bf",embedding:"#818cf8"},pY=[{id:"time",label:"Time",hint:"Chronological \u2014 reads as a waterfall"},{id:"duration",label:"Slowest",hint:"Longest-running first"},{id:"name",label:"Name",hint:"Group repeated tool calls together"}],Qn=e=>e==null?"\u2014":e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(2)}s`,cI=e=>{switch(e){case"root":return Fo.spans.root;case"prompt":return Fo.spans.prompt;case"generate":return Fo.spans.generate;case"llm":return Fo.spans.llm;case"thinking":return Fo.spans.thinking;case"tool":return Fo.spans.tool;case"response":return Fo.spans.response;default:return"-"}},Rwe=(e,t)=>{let r=Math.max(e||0,1),n=Math.max(t||1,1);if(n<=1)return 100;let o=Math.log(r)/Math.log(n);return Math.min(100,Math.max(4,o*100))},eSe=(e,t)=>{let r=[...e||[]];switch(t){case"duration":return r.sort((n,o)=>(o.duration||0)-(n.duration||0));case"name":return r.sort((n,o)=>(n.name||"").localeCompare(o.name||""));default:return r.sort((n,o)=>(n.start||0)-(o.start||0))}},tSe=e=>{let t=e.tokens||{};return(t.input||0)+(t.output||0)+(t.thinking||0)},rSe=(e,t)=>{if(!t.duration_ms)return Qn(e.duration);let r=(e.duration||0)/t.duration_ms*100;return`${Qn(e.duration)} \xB7 ${r<1?r.toFixed(2):r.toFixed(1)}%`},nSe=e=>{if(typeof e!="string")return null;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return null}},dY=e=>e.endsWith(".instructions")?0:e.endsWith(".tools")?1:e.endsWith(".messages")?3:2,dI=e=>{let t=e.spans||[],r=a=>{for(let i of t){let s=(i.attributes||{})[a];if(s)return s}return null},n=r("llm.prompt");if(!n){let a=r("prompt.input.messages");if(a)try{n=[...JSON.parse(a)].reverse().find(l=>l&&l.role==="user"&&l.content)?.content}catch{}}let o=r("llm.completion")||r("llm.output.message");return{input:n,output:o}},oSe=e=>{let t=e.attributes||{},r=null,n="input",o="user";if(t["prompt.input.messages"])try{let u=[...JSON.parse(t["prompt.input.messages"])].reverse().find(c=>c&&c.role==="user"&&c.content);typeof u?.content=="string"&&(r=u.content)}catch{}if(!r&&t["llm.prompt"]&&(r=String(t["llm.prompt"])),!r&&(t["tool.input.args"]||t["tool.arguments"])){let l=t["tool.input.args"]||t["tool.arguments"];r=typeof l=="string"?l:JSON.stringify(l),n="in",o="assistant"}let a=null,i="output",s="assistant";return t["llm.output.message"]||t["llm.completion"]?a=t["llm.output.message"]||t["llm.completion"]:(t["tool.output.result"]||t["tool.result"])&&(a=t["tool.output.result"]||t["tool.result"],i="out",s="tool"),a!=null&&typeof a!="string"&&(a=JSON.stringify(a)),{input:r,output:a,inputLabel:n,inputTone:o,outputLabel:i,outputTone:s}},aSe=(e,t)=>{let r=oSe(e),n=dI(t);return r.input&&r.input===n.input&&(r.input=null),r.output&&r.output===n.output&&(r.output=null),r},iSe=e=>{let t={...e.attributes||{}},r=p=>{let f=t[p];return delete t[p],f},n=[],o=p=>n.push({id:`${e.span_id}-m${n.length}`,...p}),a=r("prompt.input.instructions")||r("llm.instructions");a&&o({role:"system",content:String(a)});let i=r("prompt.input.messages");if(i)try{JSON.parse(i).forEach(p=>{p&&o({role:p.role||"user",content:typeof p.content=="string"?p.content:JSON.stringify(p.content),tool_call_id:p.tool_call_id,tool_calls:p.tool_calls})})}catch{t["prompt.input.messages"]=i}let s=r("llm.prompt");s&&o({role:"user",content:String(s)});let l=r("tool.input.args")||r("tool.arguments"),u=r("tool.output.result")||r("tool.result");if(l||u){let p=r("tool.name");o({role:"tool",tool_name:p||(e.name||"").replace(/^tool\./,""),tool_arguments:l,content:u?String(u):null})}let c=r("llm.completion"),d=r("llm.output.message");return(c||d)&&o({role:"assistant",content:String(c||d)}),{messages:n,rest:t}},pI=e=>{for(let t of e?.spans||[]){let r=(t.attributes||{})["prompt.input.tools"];if(r)try{let n=typeof r=="string"?JSON.parse(r):r;if(Array.isArray(n)&&n.length>0)return n}catch{}}return[]};function sSe({span:e,darkMode:t,tools:r=[]}){let[n,o]=ch(),a=Jn(t),{messages:i,rest:s}=iSe(e),l=null,u=s["prompt.input.tools"];if(u)try{let f=typeof u=="string"?JSON.parse(u):u;Array.isArray(f)&&f.length>0&&(l=f,delete s["prompt.input.tools"])}catch{}let c=Object.entries(s).sort((f,m)=>dY(f[0])-dY(m[0])),d=i.length===1&&i[0].role==="tool"?i[0]:null,p=d?.tool_arguments==null?null:typeof d.tool_arguments=="string"?d.tool_arguments:JSON.stringify(d.tool_arguments);return or.default.createElement("div",{onClick:f=>f.stopPropagation(),style:{margin:"4px 0 8px 0",padding:"10px 12px",borderRadius:"8px",background:a.panelBg,border:`1px solid ${a.cardBorder}`,fontFamily:Pt.mono,fontSize:"12px",color:a.textBody,cursor:"default"}},or.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 20px"}},or.default.createElement("span",null,"duration: ",Qn(e.duration)),or.default.createElement("span",null,"status: ",e.status||"OK"),tSe(e)>0&&or.default.createElement("span",null,"tokens in:",e.tokens.input||0," out:",e.tokens.output||0,e.tokens.thinking>0?` thinking:${e.tokens.thinking}`:""),or.default.createElement("span",{style:{color:a.textMuted}},"span: ",e.span_id)),d&&or.default.createElement("div",{style:{marginTop:"8px",display:"grid",gap:"4px"}},or.default.createElement("div",{style:{fontSize:"12px",wordBreak:"break-all"}},or.default.createElement("span",{style:{color:Ln("tool",t).color}},"\u2699 ",d.tool_name),p&&or.default.createElement(or.default.Fragment,null," ",or.default.createElement("span",{style:{color:Ln("assistant",t).color}},"in:")," ",or.default.createElement("span",{style:{color:a.textBody}},p))),d.content&&or.default.createElement("div",{style:{fontSize:"12px"}},or.default.createElement("span",{style:{color:Ln("tool",t).color}},"out:")," ",or.default.createElement("span",{style:{color:a.textBody,whiteSpace:"pre-wrap",display:"inline-block",maxHeight:"240px",overflowY:"auto",verticalAlign:"top",maxWidth:"100%"}},d.content))),i.length>0&&!d&&or.default.createElement("div",{style:{marginTop:"10px",fontFamily:"ui-sans-serif, system-ui, sans-serif"}},or.default.createElement(fs,{messages:i,darkMode:t,tools:l||r})),l&&or.default.createElement(sI,{tools:l,darkMode:t}),c.length>0&&or.default.createElement("div",{style:{marginTop:"6px",display:"grid",gap:"2px"}},c.map(([f,m])=>{let y=f.match(/args|result|input|output/)?nSe(m):null,b=!y&&(f.endsWith(".instructions")||f.match(/input|output|result/))&&typeof m=="string"?m:null,g=y||b;if(!g)return or.default.createElement("div",{key:f,style:{wordBreak:"break-all"}},or.default.createElement("span",{style:{color:a.textMuted}},f,":")," ",typeof m=="string"?m:JSON.stringify(m));let h=`${e.span_id}:${f}`;return or.default.createElement(cY,{key:f,label:f,body:g,prose:!y,darkMode:t,open:n(h),onToggle:()=>o(h)})})))}function lSe({span:e,trace:t,darkMode:r,sort:n,longest:o,expanded:a,onToggle:i,tools:s}){let l=Jn(r),u=Object.keys(e.attributes||{}).length>0,c=a?null:aSe(e,t);return or.default.createElement(or.default.Fragment,null,or.default.createElement("div",{className:`py-0.5 px-1 -mx-1 rounded transition-colors ${u?`cursor-pointer ${r?"hover:bg-white/5":"hover:bg-gray-100"}`:""}`,style:{paddingLeft:n==="time"?`${(e.nested||0)*16}px`:0,background:a?l.hoverBg:void 0},onClick:u?()=>i():void 0,title:u?`${e.name} \u2014 click for span details`:e.name},or.default.createElement("div",{className:"flex items-baseline gap-2 min-w-0"},or.default.createElement("span",{className:"flex-shrink-0",style:{color:e.type==="thinking"?void 0:l.textMuted}},cI(e.type)),or.default.createElement("span",{className:"text-sm font-medium truncate",style:{color:e.error?l.bad:l.textPrimary}},e.name),or.default.createElement("span",{className:"text-xs ml-auto flex-shrink-0",style:{fontFamily:Pt.mono,color:l.textMuted}},rSe(e,t)),u&&or.default.createElement(Zp,{open:a,darkMode:r,size:13,style:{marginLeft:"2px"}})),or.default.createElement("div",{className:"h-3 relative rounded mt-0.5",style:{background:l.trackBg}},or.default.createElement("div",{className:"absolute h-3 rounded",style:{background:e.error?"#f87171":uI[e.type]||"#9ca3af",left:n==="time"?`${t.duration_ms?e.start/t.duration_ms*100:0}%`:0,width:n==="time"?`${t.duration_ms?Math.max(e.duration/t.duration_ms*100,1):1}%`:`${Rwe(e.duration,o)}%`}})),c&&or.default.createElement(uh,{darkMode:r,size:"11px",style:{marginTop:"2px"},lines:[{label:c.inputLabel,text:c.input,color:Ln(c.inputTone,r).color,max:160},{label:c.outputLabel,text:c.output,color:Ln(c.outputTone,r).color,max:160}]})),a&&or.default.createElement(sSe,{span:e,darkMode:r,tools:s}))}function fI({trace:e,darkMode:t,sort:r="time",tools:n,keyPrefix:o=""}){let[a,i]=ch(),s=Jn(t),l=eSe(e?.spans,r),u=n||pI(e);if(l.length===0)return or.default.createElement("div",{className:"text-sm py-2",style:{color:s.textMuted}},"No spans recorded for this trace.");let c=Math.max(...l.map(d=>d.duration||0),1);return or.default.createElement("div",{className:"space-y-2"},l.map((d,p)=>{let f=`${o}${d.span_id||p}`;return or.default.createElement(lSe,{key:f,span:d,trace:e,darkMode:t,sort:r,longest:c,tools:u,expanded:a(f),onToggle:()=>i(f)})}))}var uSe=[{id:"spans",label:"Spans",hint:"Timing waterfall with span details"},{id:"conversation",label:"Conversation",hint:"The run as a message stream \u2014 prompt, tool calls, response"}],cSe=e=>{let t=0,r=[];(e?.spans||[]).forEach(a=>{(a.nested||0)!==0&&(a.type==="tool"?r.push(a):(a.type==="llm"||a.type==="generate")&&(t=Math.max(t,a.duration||0)))});let n=r.reduce((a,i)=>a+(i.duration||0),0);t=Math.max(t-n,0);let o=e?.duration_ms||t+n||1;return{generation:t,tools:r,toolTotal:n,total:o,overhead:Math.max(o-t-n,0)}};function dSe({trace:e,darkMode:t}){let r=Jn(t),{generation:n,tools:o,toolTotal:a,total:i,overhead:s}=cSe(e);if(n===0&&a===0||n/i>=.99&&a/i<.01)return null;let l=c=>`${(c/i*100).toFixed(c/i<.01?2:1)}%`,u=(c,d)=>wt.default.createElement("div",{style:{width:`${Math.max(c/i*100,.4)}%`,background:d,height:"100%"}});return wt.default.createElement("div",{style:{marginTop:"14px",paddingTop:"12px",borderTop:`1px solid ${r.cardBorder}`}},wt.default.createElement("div",{style:{fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.05em",color:r.textSecondary,marginBottom:"6px"}},"Time breakdown \u2014 generation vs tools"),wt.default.createElement("div",{style:{display:"flex",height:"10px",borderRadius:"5px",overflow:"hidden",background:r.trackBg}},u(n,"#ef4444"),u(a,"#10b981"),s>0&&u(s,t?"rgba(255,255,255,0.2)":"#d1d5db")),wt.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 18px",marginTop:"8px",fontSize:"12px",fontFamily:Pt.mono,color:r.textBody}},wt.default.createElement("span",null,wt.default.createElement("span",{style:{color:"#ef4444"}},"\u25A0")," generation ",Qn(n)," (",l(n),")"),wt.default.createElement("span",null,wt.default.createElement("span",{style:{color:"#10b981"}},"\u25A0")," tools ",Qn(a)," (",l(a),")"),s>0&&wt.default.createElement("span",null,wt.default.createElement("span",{style:{color:r.textSecondary}},"\u25A0")," overhead ",Qn(s)," (",l(s),")")),o.length>0&&wt.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 18px",marginTop:"4px",fontSize:"12px",fontFamily:Pt.mono,color:r.textSecondary}},o.map((c,d)=>wt.default.createElement("span",{key:d},c.name," ",Qn(c.duration)," (",l(c.duration||0),")"))))}function pSe({trace:e,darkMode:t}){let[r,n]=(0,wt.useState)(null),[o,a]=(0,wt.useState)(!1),i=Jn(t);if((0,wt.useEffect)(()=>{if(e?.id==null)return;let l=!0;return n(null),a(!1),fetch(`/api/interactions/trace-${e.id}`).then(u=>u.ok?u.json():Promise.reject(new Error("request failed"))).then(u=>l&&n(u.interaction)).catch(()=>l&&a(!0)),()=>{l=!1}},[e?.id]),o)return wt.default.createElement("div",{className:"text-sm py-4",style:{color:i.bad}},"Couldn't load the conversation for this trace.");if(!r)return wt.default.createElement("div",{className:"text-sm py-4",style:{color:i.textMuted}},"Loading conversation\u2026");let s=r.instructions?[{id:`trace-${e.id}-system`,role:"system",content:r.instructions,created_at:r.created_at},...r.messages||[]]:r.messages||[];return s.length===0?wt.default.createElement("div",{className:"text-sm py-4",style:{color:i.textMuted}},"This trace predates content capture \u2014 no conversation to show."):wt.default.createElement(fs,{messages:s,darkMode:t,tools:pI(e)})}function e0({trace:e,darkMode:t,compact:r=!1,showConversation:n=!0}){let[o,a]=(0,wt.useState)("spans"),[i,s]=(0,wt.useState)("time"),l=Jn(t),u=(e?.spans||[]).length,c=FC(e),d=e?.tokens||{},p=(0,wt.useCallback)(f=>a(n?f:"spans"),[n]);return e?wt.default.createElement("div",null,wt.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2 mb-2"},wt.default.createElement("div",{className:"flex items-center gap-1"},n&&wt.default.createElement(Rx,{options:uSe,value:o,onChange:p,darkMode:t}),wt.default.createElement("span",{className:"text-xs ml-2",style:{color:l.textSecondary}},u," ",u===1?"span":"spans")),o==="spans"&&u>0&&wt.default.createElement(Rx,{options:pY,value:i,onChange:s,darkMode:t,label:"Sort"})),o==="conversation"?wt.default.createElement("div",{className:"rounded-lg border p-4",style:{background:l.cardBg,borderColor:l.cardBorder}},wt.default.createElement(pSe,{trace:e,darkMode:t})):wt.default.createElement(wt.default.Fragment,null,i==="time"?wt.default.createElement("div",{className:"flex justify-between text-xs mb-2",style:{color:l.textMuted}},wt.default.createElement("span",null,"0ms"),wt.default.createElement("span",null,Math.round((e.duration_ms||0)*.33),"ms"),wt.default.createElement("span",null,Math.round((e.duration_ms||0)*.66),"ms"),wt.default.createElement("span",null,Qn(e.duration_ms))):wt.default.createElement("div",{className:"text-xs mb-2",style:{color:l.textMuted}},"Bar length compares duration on a log scale"),wt.default.createElement(fI,{trace:e,darkMode:t,sort:i,keyPrefix:`${e.id||e.trace_id}:`})),c&&wt.default.createElement("div",{className:"mt-3"},wt.default.createElement(od,{...c,label:"Context pressure",darkMode:t})),wt.default.createElement(dSe,{trace:e,darkMode:t}),!r&&wt.default.createElement("div",{className:"mt-4 pt-4 border-t flex items-center flex-wrap gap-x-6 gap-y-1 text-sm",style:{borderColor:l.cardBorder,color:l.textSecondary}},wt.default.createElement("span",null,"Tokens:"),d.thinking>0&&wt.default.createElement("span",{className:"text-amber-500",style:{fontFamily:Pt.mono}},"T:",d.thinking.toLocaleString()),wt.default.createElement("span",{className:"text-blue-500",style:{fontFamily:Pt.mono}},"in:",(d.input||0).toLocaleString()),wt.default.createElement("span",{className:"text-green-500",style:{fontFamily:Pt.mono}},"out:",(d.output||0).toLocaleString()),e.provider&&wt.default.createElement("span",{style:{fontFamily:Pt.mono}},e.provider,e.model?` \xB7 ${e.model}`:"")),e.error&&wt.default.createElement("div",{className:"mt-4 p-3 rounded-lg border",style:{background:t?"rgba(239,68,68,0.1)":"#fef2f2",borderColor:t?"rgba(239,68,68,0.3)":"#fecaca"}},wt.default.createElement("span",{className:"text-sm",style:{color:t?"#fca5a5":"#b91c1c"}},e.error))):null}var fSe=e=>{let t=(e?.input||0)+(e?.output||0)+(e?.thinking||0);return t?t>=1e3?`${(t/1e3).toFixed(1)}K`:`${t}`:null},mSe=e=>e==null?null:`$${e.toFixed(4)}`;function GC({trace:e,darkMode:t,expanded:r,onToggle:n}){let o=Jn(t),a=dI(e),i=FC(e),s=e.status!=="ERROR",l=fSe(e.tokens);return zn.default.createElement(VC,{darkMode:t,id:`trace-row-${e.id}`},zn.default.createElement("div",{className:`p-4 flex items-center justify-between flex-wrap gap-y-2 cursor-pointer transition-colors ${t?"hover:bg-white/5":"hover:bg-gray-50"}`,onClick:n,style:r?{background:o.hoverBg}:void 0},zn.default.createElement("div",{className:"flex items-center gap-3 min-w-0"},zn.default.createElement("span",{className:"px-2 py-1 text-xs rounded flex-shrink-0",style:{fontFamily:Pt.mono,background:o.controlBg,color:o.textSecondary}},"TRACE"),zn.default.createElement("span",{className:"text-sm flex-shrink-0",style:{fontFamily:Pt.mono,color:o.textMuted}},e.short_id),zn.default.createElement("span",{className:"text-sm font-medium truncate",style:{color:o.textPrimary}},e.display_name)),zn.default.createElement("div",{className:"flex items-center gap-4 flex-shrink-0"},zn.default.createElement(ad,{darkMode:t,cells:[{key:"model",title:"Model that generated this trace",empty:"No model recorded for this trace",content:e.model&&zn.default.createElement("span",{className:"text-xs px-2 py-0.5 rounded",style:{fontFamily:Pt.mono,background:t?"rgba(99,102,241,0.2)":"#eef2ff",color:t?"#a5b4fc":"#4338ca"}},e.model)},{key:"context",width:Ta.context,empty:"Context: no generation in this trace reported its token counts",content:i&&zn.default.createElement(od,{compact:!0,...i,label:"Context",darkMode:t})},{key:"duration",width:Ta.duration,title:"Wall-clock duration",empty:"No duration recorded for this trace",content:e.duration_ms!=null&&zn.default.createElement(zn.default.Fragment,null,zn.default.createElement("i",{className:"fa-solid fa-clock mr-1"}),Qn(e.duration_ms))},{key:"tokens",width:Ta.tokens,title:"Tokens in, out and thinking",empty:"No token counts recorded for this trace",content:l&&`${l} tokens`},{key:"cost",width:Ta.cost,title:"Estimated cost of this trace",empty:"Nothing to price \u2014 this trace recorded no tokens",content:e.estimated_cost!=null&&zn.default.createElement(zn.default.Fragment,null,zn.default.createElement("i",{className:"fa-solid fa-coins mr-1"}),mSe(e.estimated_cost))},{key:"status",width:Ta.status,title:s?"Trace completed":e.error||"Trace ended in an error",content:zn.default.createElement("span",{style:{color:s?o.good:o.bad}},zn.default.createElement("i",{className:`fa-solid ${s?"fa-check":"fa-xmark"} mr-1`}),s?"OK":"ERROR")}]}),zn.default.createElement(Zp,{open:r,darkMode:t}))),!r&&zn.default.createElement(uh,{darkMode:t,onClick:n,hold:!0,style:{padding:"0 16px 12px"},lines:[{label:"input",text:a.input,color:Ln("user",t).color},{label:"output",text:a.output,color:Ln("assistant",t).color}]}),r&&zn.default.createElement("div",{className:"border-t p-4",style:{borderColor:o.cardBorder,background:o.innerBg}},zn.default.createElement(e0,{trace:e,darkMode:t})))}function fY(e,t=""){return`${(e||"").replace(/\/$/,"")}${t}`||"/"}function mY(e,t){let r=(e||"").replace(/\/$/,"");return r&&(t===r||t.startsWith(`${r}/`))?t.slice(r.length)||"/":t}function Re(e=""){return fY(window.ACTIVE_AGENT_DASHBOARD?.mountPath,e)}function id(e="",t={}){window.history.pushState(t,"",Re(e))}function Rn(e=window.location.pathname){return mY(window.ACTIVE_AGENT_DASHBOARD?.mountPath,e)}function lt(e,t={}){if(!e)return;let r=Rn(e);id(r,t),window.dispatchEvent(new CustomEvent("dashboard:navigate",{detail:{path:Re(r)}}))}var gY=({minutes:e,agentId:t=null,bucketSeconds:r=null})=>{let n=new URLSearchParams({minutes:String(e)});return r!=null&&n.set("bucket_seconds",String(r)),t!=null&&t!==""&&n.set("agent_id",String(t)),`/api/traces?${n.toString()}`};var gSe=(e,t,r,n=60)=>{let o=Date.now(),a=[],i=n*1e3,s=Math.max(1,Math.round(r*60/n));for(let l=s-1;l>=0;l--){let u=o-(l+1)*i,c=o-l*i,d=e.filter(m=>m.timestamp_ms>=u&&m.timestamp_msm.duration_ms).filter(m=>typeof m=="number"&&Number.isFinite(m)),f={};t.forEach(m=>{f[m]=d.filter(y=>y.agent===m).length}),a.push({time:r>1440?new Date(c).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit"}):new Date(c).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),timestamp:c,requests:d.length,errors:d.filter(m=>m.status==="ERROR").length,avgLatency:p.length>0?Math.round(p.reduce((m,y)=>m+y,0)/p.length):0,traces:d,...f})}return a},hY=(e,t,r,n)=>{let o=Array.isArray(e?.buckets)?e.buckets.map(s=>({time:n.minutes>1440?new Date(s.end_ms).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit"}):new Date(s.end_ms).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),timestamp:s.end_ms,requests:s.requests,errors:s.errors,avgLatency:s.avg_latency_ms,traces:t.filter(l=>l.timestamp_ms>=s.start_ms&&l.timestamp_ms[l,s.agents?.[l]||0]))})):gSe(t,r,n.minutes,n.bucketSeconds),a=t.map(s=>s.duration_ms).filter(s=>typeof s=="number"&&Number.isFinite(s)),i=e?.summary?{requests:e.summary.requests,errors:e.summary.errors,avgLatency:e.summary.avg_latency_ms,throughput:Number(e.summary.throughput_per_minute).toFixed(1)}:{requests:t.length,errors:t.filter(s=>s.status==="ERROR").length,avgLatency:a.length?Math.round(a.reduce((s,l)=>s+l,0)/a.length):0,throughput:(t.length/n.minutes).toFixed(1)};return{buckets:o,summary:i,truncated:e?.truncated===!0,total:e?.total_count??t.length}};var yY=["#6366f1","#10b981","#f59e0b","#ec4899","#3b82f6","#8b5cf6","#14b8a6","#f97316"],hSe=3e4,ySe=e=>{let t={};return e.forEach((r,n)=>{t[r]=yY[n%yY.length]}),t},vSe=e=>{let t={};return e.forEach(r=>{(r.spans||[]).forEach(n=>{if((n.nested||0)===0)return;let o=n.name||n.type||"unknown";t[o]||(t[o]={name:o,type:n.type,count:0,total:0,max:0,errors:0});let a=t[o];a.count+=1,a.total+=n.duration||0,a.max=Math.max(a.max,n.duration||0),n.error&&(a.errors+=1)})}),Object.values(t).map(r=>({...r,avg:r.total/r.count})).sort((r,n)=>n.total-r.total)};function Jp({agentId:e=null,embedded:t=!1}){let{darkMode:r}=ut(),[n,o]=(0,H.useState)([]),[a,i]=(0,H.useState)(null),[s,l]=(0,H.useState)([]),[u,c]=(0,H.useState)({}),[d,p]=(0,H.useState)(!0),[f,m]=(0,H.useState)(null),[y,b]=(0,H.useState)(null),g=(0,H.useRef)(new URLSearchParams(window.location.search).get("trace")),[h,v]=(0,H.useState)(null),[x,S]=(0,H.useState)({status:"all",agent:"all",action:"all"}),[k,w]=(0,H.useState)("time"),[_,A]=(0,H.useState)(null),[C,N]=(0,H.useState)("timeline"),[L,J]=(0,H.useState)("popular"),{timeWindow:B}=xl(),K=(0,H.useCallback)(async()=>{try{let E=await fetch(gY({minutes:B.minutes,bucketSeconds:B.bucketSeconds,agentId:e}));if(!E.ok)throw new Error(`Request failed (${E.status})`);let $=await E.json();o($.traces||[]),i($),l($.agents||[]),c($.agent_ids||{}),m(null)}catch(E){m(E.message)}finally{p(!1)}},[B.minutes,B.bucketSeconds,e]);(0,H.useEffect)(()=>{K();let E=setInterval(K,hSe);return()=>clearInterval(E)},[K]);let T=(0,H.useMemo)(()=>ySe(s),[s]);(0,H.useEffect)(()=>{A(null)},[B.id]);let P=(0,H.useMemo)(()=>hY(a,n,s,B),[a,n,s,B]),I=P.buckets,M=Math.max(0,Math.ceil(I.length/6)-1),j=(0,H.useMemo)(()=>{let E=n;if(_!==null){let $=I[_];$&&(E=$.traces||[])}if(x.status!=="all"&&(E=E.filter($=>x.status==="success"?$.status!=="ERROR":$.status==="ERROR")),x.agent!=="all"&&(E=E.filter($=>$.agent===x.agent)),x.action!=="all")if(x.action.includes("#")){let[$,ee]=x.action.split("#");E=E.filter(U=>U.agent===$&&U.action===ee)}else E=E.filter($=>$.action===x.action);return k==="latency"&&(E=[...E].sort(($,ee)=>(ee.duration_ms||0)-($.duration_ms||0))),h&&!E.some($=>$.id===h.id)&&(E=[h,...E]),E},[n,_,I,x,k,h]);(0,H.useEffect)(()=>{let E=g.current;if(!E)return;let $=U=>{g.current=null,b(U.id),setTimeout(()=>{document.getElementById(`trace-row-${U.id}`)?.scrollIntoView({behavior:"smooth",block:"start"})},150)},ee=n.find(U=>U.id===E||U.trace_id===E||U.short_id&&String(E).startsWith(U.short_id));if(ee){$(ee);return}n.length!==0&&fetch(`/api/traces/${encodeURIComponent(E)}`).then(U=>U.ok?U.json():Promise.reject(new Error("not found"))).then(({trace:U})=>{v(U),$(U)}).catch(()=>{g.current=null})},[n]);let O=(0,H.useMemo)(()=>{let E=_!==null?I[_]?.traces||[]:n,$={};E.forEach(U=>{U.agent&&($[U.agent]||($[U.agent]={agent:U.agent,count:0,totalDuration:0,cost:0,errors:0,actions:{},tokens:{thinking:0,input:0,output:0}}),$[U.agent].count++,$[U.agent].totalDuration+=U.duration_ms||0,$[U.agent].cost+=U.estimated_cost||0,U.status==="ERROR"&&$[U.agent].errors++,U.tokens&&($[U.agent].tokens.thinking+=U.tokens.thinking||0,$[U.agent].tokens.input+=U.tokens.input||0,$[U.agent].tokens.output+=U.tokens.output||0),U.action&&($[U.agent].actions[U.action]=($[U.agent].actions[U.action]||0)+1))});let ee={popular:U=>U.count,longest:U=>U.totalDuration/(U.count||1),cost:U=>U.cost,tokens:U=>(U.tokens.input||0)+(U.tokens.output||0)+(U.tokens.thinking||0),errors:U=>U.errors}[L]||(U=>U.count);return Object.values($).sort((U,me)=>ee(me)-ee(U)||me.count-U.count)},[n,I,_,L]),F=(0,H.useMemo)(()=>{let E=_!==null?I[_]?.traces||[]:n,$={};return E.forEach(ee=>{if(!ee.agent)return;let U=`${ee.agent}#${ee.action||"unknown"}`;$[U]||($[U]={key:U,agent:ee.agent,action:ee.action||"unknown",count:0,totalDuration:0,errors:0,minDuration:1/0,maxDuration:0,tokens:{thinking:0,input:0,output:0}}),$[U].count++,$[U].totalDuration+=ee.duration_ms||0,$[U].minDuration=Math.min($[U].minDuration,ee.duration_ms||0),$[U].maxDuration=Math.max($[U].maxDuration,ee.duration_ms||0),ee.status==="ERROR"&&$[U].errors++,ee.tokens&&($[U].tokens.thinking+=ee.tokens.thinking||0,$[U].tokens.input+=ee.tokens.input||0,$[U].tokens.output+=ee.tokens.output||0)}),Object.values($).forEach(ee=>{ee.minDuration===1/0&&(ee.minDuration=0)}),Object.values($).sort((ee,U)=>U.count-ee.count)},[n,I,_]),V=(0,H.useMemo)(()=>{let E=_!==null?I[_]?.traces||[]:n,$={};return E.forEach(ee=>{(ee.spans||[]).forEach(U=>{if(U.type!=="tool")return;let me=U.attributes?.["tool.name"]||U.name?.replace(/^tool\./,"")||"unknown";$[me]||($[me]={name:me,count:0,totalDuration:0,maxDuration:0,errors:0,agents:new Set}),$[me].count++,$[me].totalDuration+=U.duration||0,$[me].maxDuration=Math.max($[me].maxDuration,U.duration||0),U.error&&$[me].errors++,ee.agent&&$[me].agents.add(`${ee.agent}#${ee.action||"unknown"}`)})}),Object.values($).map(ee=>({...ee,agents:[...ee.agents],avgDuration:ee.count?ee.totalDuration/ee.count:0})).sort((ee,U)=>U.totalDuration-ee.totalDuration)},[n,I,_]),z=(0,H.useMemo)(()=>x.agent==="all"?F.map(E=>E.key):F.filter(E=>E.agent===x.agent).map(E=>E.key),[x.agent,F]),G=(0,H.useMemo)(()=>vSe(j),[j]),q=E=>{if(E&&E.activeTooltipIndex!==void 0){let $=E.activeTooltipIndex;A(_===$?null:$),b(null)}},oe=E=>(E?.input||0)+(E?.output||0)+(E?.thinking||0),Me=E=>{let $=E.count?E.errors/E.count:0;return[{label:`Calls ${B.label||""}`.trim(),value:E.count.toLocaleString()},{label:"Errors",value:`${($*100).toFixed(1)}%`,tone:E.errors>0?"bad":"good"},{label:"Avg time",value:`${Math.round(E.totalDuration/(E.count||1))}ms`},{label:"Tokens",value:oe(E.tokens).toLocaleString()},{label:"Cost",value:fe(E.cost),title:"Estimated from token counts at this model's published rates",tone:E.cost?void 0:"muted"},{label:"Actions",value:(E.agents?.length||0).toLocaleString()}]},fe=E=>E?E<.01?"<$0.01":`$${E.toFixed(2)}`:"\u2014",le=H.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:"8px",marginBottom:"12px"}},H.default.createElement("span",{style:{fontSize:"12px",color:r?"rgba(255,255,255,0.5)":"#6b7280"}},"Rank by"),H.default.createElement("select",{value:L,onChange:E=>J(E.target.value),style:{fontSize:"12px",padding:"4px 8px",borderRadius:"6px",border:`1px solid ${r?"rgba(255,255,255,0.15)":"#e5e7eb"}`,background:r?"rgba(255,255,255,0.05)":"#ffffff",color:r?"#f9fafb":"#111827"}},H.default.createElement("option",{value:"popular"},"Most calls"),H.default.createElement("option",{value:"longest"},"Longest average"),H.default.createElement("option",{value:"cost"},"Highest cost"),H.default.createElement("option",{value:"tokens"},"Most tokens"),H.default.createElement("option",{value:"errors"},"Most errors"))),R=E=>S($=>({...$,agent:$.agent===E?"all":E})),te=E=>{let $=u[E];if(!$)return R(E);let ee=Re(`/agents/${$}`);window.history.pushState(window.history.state,"",ee),window.dispatchEvent(new CustomEvent("dashboard:navigate",{detail:{path:ee}}))},He=E=>{let $=G[0]?.total||1,ee=E?"rgba(0,0,0,0.3)":"white",U=E?"1px solid rgba(255,255,255,0.1)":"1px solid #e5e7eb",me=E?"white":"#111827",et=E?"rgba(255,255,255,0.5)":"#6b7280",rt={llm:"#ef4444",tool:"#10b981",generate:"#8b5cf6",prompt:"#3b82f6"};return H.default.createElement("div",{style:{padding:E?"0 24px 24px 24px":0}},H.default.createElement("div",{style:{background:ee,border:U,borderRadius:"12px",padding:"16px"}},H.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,color:me,marginBottom:"4px"}},"Slowest operations"),H.default.createElement("div",{style:{fontSize:"12px",color:et,marginBottom:"14px"}},"Span durations aggregated across ",j.length," trace",j.length===1?"":"s"," \u2014 ranked by total time"),G.length===0?H.default.createElement("div",{style:{fontSize:"13px",color:et,padding:"12px 0"}},"No spans in the current selection"):H.default.createElement("div",{style:{display:"grid",gap:"10px"}},G.map(ge=>H.default.createElement("div",{key:ge.name,style:{display:"flex",alignItems:"center",gap:"12px"}},H.default.createElement("div",{style:{width:"220px",flexShrink:0,display:"flex",alignItems:"center",gap:"8px"}},H.default.createElement("span",{style:{color:et}},cI(ge.type)),H.default.createElement("span",{style:{fontSize:"13px",color:ge.errors>0?"#ef4444":me,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},ge.name)),H.default.createElement("div",{style:{flex:1,height:"18px",background:E?"rgba(255,255,255,0.06)":"#f3f4f6",borderRadius:"4px",position:"relative"}},H.default.createElement("div",{style:{position:"absolute",top:"3px",left:0,height:"12px",borderRadius:"3px",width:`${Math.max(ge.total/$*100,.5)}%`,background:rt[ge.type]||"#6366f1"}})),H.default.createElement("div",{style:{width:"260px",flexShrink:0,fontSize:"12px",color:et,fontFamily:Pt.mono,textAlign:"right"}},ge.count,"\xD7 \xB7 avg ",Qn(ge.avg)," \xB7 max ",Qn(ge.max)," \xB7 \u03A3 ",Qn(ge.total)))))))};if(d)return H.default.createElement("div",{className:"flex items-center justify-center h-64"},H.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let _e=P.summary,D=P.truncated&&H.default.createElement("div",{role:"status","data-testid":"trace-window-notice",style:{padding:"12px 24px",fontSize:13,color:r?"#fbbf24":"#92400e"}},"Showing newest ",n.length," of ",P.total," traces. Chart and totals cover the full window; lists and breakdowns use these loaded traces."),Y=_e.requests===0;return r?H.default.createElement("div",{className:"preview-content",style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)"}},D,H.default.createElement("div",{style:{padding:"24px 24px 0 24px",borderBottom:"1px solid rgba(255,255,255,0.1)",marginBottom:"16px",paddingBottom:"16px"}},H.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"}},H.default.createElement("div",null,!t&&H.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:"white",margin:0}},"Traces"),H.default.createElement("p",{style:{fontSize:"14px",color:"rgba(255,255,255,0.6)",marginTop:"4px"}},_!==null?`Viewing ${I[_]?.time} \u2022 ${j.length} requests`:`Last ${B.label} \u2022 Click timeline to drill down`)),H.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"12px"}},H.default.createElement("div",{style:{display:"flex",background:"rgba(255,255,255,0.1)",borderRadius:"8px",padding:"2px"}},["timeline","agents","actions","tools","spans"].map(E=>H.default.createElement("button",{key:E,onClick:()=>N(E),style:{padding:"6px 12px",background:C===E?"#ef4444":"transparent",color:"white",borderRadius:"6px",border:"none",fontSize:"13px",cursor:"pointer",textTransform:"capitalize"}},E))),!e&&H.default.createElement("select",{value:x.agent,onChange:E=>S({...x,agent:E.target.value,action:"all"}),style:{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px",maxWidth:"180px",textOverflow:"ellipsis"}},H.default.createElement("option",{value:"all"},"All Agents"),s.map(E=>H.default.createElement("option",{key:E,value:E},E))),H.default.createElement("select",{value:x.action,onChange:E=>S({...x,action:E.target.value}),style:{padding:"8px 12px",background:x.action!=="all"?"rgba(239, 68, 68, 0.3)":"rgba(255,255,255,0.1)",border:x.action!=="all"?"1px solid #ef4444":"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px",maxWidth:"220px",textOverflow:"ellipsis"}},H.default.createElement("option",{value:"all"},"All Actions"),z.map(E=>H.default.createElement("option",{key:E,value:E},E))),H.default.createElement("select",{value:x.status,onChange:E=>S({...x,status:E.target.value}),style:{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px"}},H.default.createElement("option",{value:"all"},"All Status"),H.default.createElement("option",{value:"success"},"Success"),H.default.createElement("option",{value:"error"},"Error")),H.default.createElement("select",{value:k,onChange:E=>w(E.target.value),style:{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px"}},H.default.createElement("option",{value:"time"},"Newest first"),H.default.createElement("option",{value:"latency"},"Slowest first")),_!==null&&H.default.createElement("button",{onClick:()=>A(null),style:{padding:"8px 16px",background:"rgba(255,255,255,0.2)",color:"white",borderRadius:"8px",border:"none",fontSize:"14px",fontWeight:"500",cursor:"pointer"}},"Clear Selection")))),f&&H.default.createElement("div",{style:{margin:"0 24px 16px 24px",padding:"12px 16px",background:"rgba(239, 68, 68, 0.1)",borderRadius:"8px",color:"#ef4444",fontSize:"13px"}},"Failed to load traces: ",f),H.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},H.default.createElement("div",{style:{background:"rgba(0,0,0,0.3)",borderRadius:"12px",padding:"16px",border:"1px solid rgba(255,255,255,0.1)"}},H.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"12px"}},H.default.createElement("div",{style:{fontSize:"14px",fontWeight:"600",color:"white"}},"Agent Requests / Minute"),H.default.createElement("div",{style:{display:"flex",gap:"16px",flexWrap:"wrap"}},Object.entries(T).map(([E,$])=>H.default.createElement("div",{key:E,style:{display:"flex",alignItems:"center",gap:"6px"}},H.default.createElement("div",{style:{width:"10px",height:"10px",borderRadius:"2px",background:$}}),H.default.createElement("span",{style:{fontSize:"11px",color:"rgba(255,255,255,0.7)"}},E.replace("Agent","")))))),H.default.createElement("div",{style:{height:"150px"}},H.default.createElement(Cc,{width:"100%",height:"100%"},H.default.createElement(rd,{data:I,onClick:q,style:{cursor:"pointer"}},H.default.createElement("defs",null,Object.entries(T).map(([E,$])=>H.default.createElement("linearGradient",{key:E,id:`gradient-${E}`,x1:"0",y1:"0",x2:"0",y2:"1"},H.default.createElement("stop",{offset:"5%",stopColor:$,stopOpacity:.8}),H.default.createElement("stop",{offset:"95%",stopColor:$,stopOpacity:.1})))),H.default.createElement(Cu,{strokeDasharray:"3 3",stroke:"rgba(255,255,255,0.1)"}),H.default.createElement(Tu,{dataKey:"time",stroke:"rgba(255,255,255,0.5)",tick:{fontSize:10,fill:"rgba(255,255,255,0.5)"},tickLine:!1,interval:M}),H.default.createElement(Pu,{stroke:"rgba(255,255,255,0.5)",tick:{fontSize:10,fill:"rgba(255,255,255,0.5)"},tickLine:!1,axisLine:!1,allowDecimals:!1}),H.default.createElement(Wc,{contentStyle:{background:"rgba(0,0,0,0.9)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",padding:"12px"},labelStyle:{color:"white",fontWeight:"600",marginBottom:"8px"},itemStyle:{color:"rgba(255,255,255,0.8)",fontSize:"12px"},formatter:(E,$)=>[E,$.replace("Agent","")]}),Object.keys(T).map(E=>H.default.createElement(Eu,{key:E,type:"monotone",dataKey:E,stackId:"1",stroke:T[E],fill:`url(#gradient-${E})`}))))),H.default.createElement("div",{style:{display:"flex",gap:"24px",marginTop:"12px",paddingTop:"12px",borderTop:"1px solid rgba(255,255,255,0.1)"}},H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"white"}},_e.requests),H.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Total Requests")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#ef4444"}},_e.errors),H.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Errors")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#10b981"}},_e.avgLatency,"ms"),H.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Avg Latency")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#f59e0b"}},_e.throughput,"/min"),H.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Throughput"))))),C==="agents"&&H.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},le,H.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(280px, 1fr))",gap:"16px"}},O.map(E=>H.default.createElement(Cm,{key:E.agent,name:E.agent,accentColor:T[E.agent],subtitle:E.agents?.length?E.agents.join(", "):void 0,badge:H.default.createElement("span",{style:{fontSize:"12px",padding:"2px 8px",background:T[E.agent]+"30",color:T[E.agent],borderRadius:"4px",whiteSpace:"nowrap"}},E.count," calls"),onClick:()=>te(E.agent),stats:Me(E),footer:H.default.createElement(H.default.Fragment,null,H.default.createElement("span",null,u[E.agent]?"Open agent \u2192":"Not linked to an agent record"),H.default.createElement("button",{onClick:$=>{$.stopPropagation(),R(E.agent)},style:{background:"none",border:"none",padding:0,cursor:"pointer",color:x.agent===E.agent?"#ef4444":"inherit",font:"inherit"}},x.agent===E.agent?"Clear filter":"Filter traces"))})))),C==="actions"&&H.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},H.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:"12px"}},F.map(E=>{let $=x.action===E.key;return H.default.createElement("div",{key:E.key,onClick:()=>{S({...x,action:$?"all":E.key}),N("timeline")},style:{background:$?"rgba(239, 68, 68, 0.15)":"rgba(0,0,0,0.3)",borderRadius:"10px",padding:"14px",border:$?"1px solid #ef4444":`1px solid ${T[E.agent]}30`,cursor:"pointer",transition:"all 0.15s"}},H.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"10px"}},H.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},H.default.createElement("div",{style:{width:"6px",height:"6px",borderRadius:"50%",background:T[E.agent]}}),H.default.createElement("span",{style:{fontSize:"14px",fontWeight:"600",color:"white"}},E.agent),H.default.createElement("span",{style:{fontSize:"13px",color:"rgba(255,255,255,0.7)"}},"#",E.action)),H.default.createElement("span",{style:{fontSize:"12px",padding:"2px 8px",background:T[E.agent]+"30",color:T[E.agent],borderRadius:"4px"}},E.count," calls")),H.default.createElement("div",{style:{display:"flex",gap:"16px",flexWrap:"wrap"}},H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Avg"),H.default.createElement("div",{style:{fontSize:"13px",color:"white",fontWeight:"500"}},Math.round(E.totalDuration/E.count),"ms")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Min/Max"),H.default.createElement("div",{style:{fontSize:"13px",color:"rgba(255,255,255,0.8)"}},Math.round(E.minDuration),"ms / ",Math.round(E.maxDuration),"ms")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Errors"),H.default.createElement("div",{style:{fontSize:"13px",color:E.errors>0?"#ef4444":"#10b981"}},E.errors," (",(E.errors/E.count*100).toFixed(0),"%)")),H.default.createElement("div",null,H.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Tokens"),H.default.createElement("div",{style:{fontSize:"13px",color:"rgba(255,255,255,0.8)"}},oe(E.tokens).toLocaleString()))))}))),C==="spans"&&He(!0),C==="timeline"&&!Y&&H.default.createElement("div",{className:"space-y-4"},j.length===0?H.default.createElement("div",{style:{textAlign:"center",padding:"32px",color:"rgba(255,255,255,0.5)",fontSize:"14px"}},"No traces match filters"):j.map(E=>H.default.createElement(GC,{key:E.id,trace:E,darkMode:!0,expanded:y===E.id,onToggle:()=>b(y===E.id?null:E.id)}))),Y&&C==="timeline"&&H.default.createElement("div",{style:{textAlign:"center",padding:"48px 0"}},H.default.createElement("div",{style:{color:"rgba(255,255,255,0.5)",fontSize:"18px"}},"No traces yet"),H.default.createElement("p",{style:{color:"rgba(255,255,255,0.4)",fontSize:"14px",marginTop:"8px"}},"Run an agent, or point your app's ActiveAgent telemetry at this workspace to see traces appear here"))):H.default.createElement("div",{className:"space-y-6"},D,H.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2"},H.default.createElement("div",null,H.default.createElement("h1",{className:"text-2xl font-bold text-gray-900"},"Traces"),H.default.createElement("p",{className:"text-sm text-gray-500"},_!==null?`Viewing ${I[_]?.time} \u2022 ${j.length} requests`:`Last ${B.label} \u2022 Click timeline to drill down`)),H.default.createElement("div",{className:"flex items-center space-x-3 flex-wrap gap-y-2 min-w-0"},H.default.createElement(bl,null),H.default.createElement("div",{className:"flex bg-gray-100 rounded-lg p-1"},["timeline","agents","actions","tools","spans"].map(E=>H.default.createElement("button",{key:E,onClick:()=>N(E),className:`px-3 py-1 text-sm rounded-md transition-colors capitalize ${C===E?"bg-white shadow text-gray-900":"text-gray-600"}`},E))),H.default.createElement("select",{value:x.agent,onChange:E=>S({...x,agent:E.target.value,action:"all"}),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500",style:{maxWidth:"180px",textOverflow:"ellipsis"}},H.default.createElement("option",{value:"all"},"All Agents"),s.map(E=>H.default.createElement("option",{key:E,value:E},E))),H.default.createElement("select",{value:x.action,onChange:E=>S({...x,action:E.target.value}),className:`px-3 py-2 border rounded-lg text-sm focus:ring-2 focus:ring-red-500 ${x.action!=="all"?"border-red-500 bg-red-50":"border-gray-300"}`,style:{maxWidth:"220px",textOverflow:"ellipsis"}},H.default.createElement("option",{value:"all"},"All Actions"),z.map(E=>H.default.createElement("option",{key:E,value:E},E))),H.default.createElement("select",{value:x.status,onChange:E=>S({...x,status:E.target.value}),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500"},H.default.createElement("option",{value:"all"},"All Status"),H.default.createElement("option",{value:"success"},"Success"),H.default.createElement("option",{value:"error"},"Error")),H.default.createElement("select",{value:k,onChange:E=>w(E.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500"},H.default.createElement("option",{value:"time"},"Newest first"),H.default.createElement("option",{value:"latency"},"Slowest first")),_!==null&&H.default.createElement("button",{onClick:()=>A(null),className:"px-4 py-2 bg-gray-200 text-gray-700 rounded-lg hover:bg-gray-300 transition-colors text-sm font-medium"},"Clear Selection"))),f&&H.default.createElement("div",{className:"p-3 bg-red-50 border border-red-200 rounded-lg text-sm text-red-700"},"Failed to load traces: ",f),H.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},H.default.createElement("div",{className:"flex justify-between items-center mb-3"},H.default.createElement("h3",{className:"text-sm font-semibold text-gray-700"},"Agent Requests / Minute"),H.default.createElement("div",{className:"flex gap-4 flex-wrap"},Object.entries(T).map(([E,$])=>H.default.createElement("div",{key:E,className:"flex items-center gap-1.5"},H.default.createElement("div",{className:"w-2.5 h-2.5 rounded-sm",style:{background:$}}),H.default.createElement("span",{className:"text-xs text-gray-500"},E.replace("Agent","")))))),H.default.createElement("div",{className:"h-36"},H.default.createElement(Cc,{width:"100%",height:"100%"},H.default.createElement(rd,{data:I,onClick:q,style:{cursor:"pointer"}},H.default.createElement("defs",null,Object.entries(T).map(([E,$])=>H.default.createElement("linearGradient",{key:E,id:`gradient-light-${E}`,x1:"0",y1:"0",x2:"0",y2:"1"},H.default.createElement("stop",{offset:"5%",stopColor:$,stopOpacity:.6}),H.default.createElement("stop",{offset:"95%",stopColor:$,stopOpacity:.05})))),H.default.createElement(Cu,{strokeDasharray:"3 3",stroke:"#e5e7eb"}),H.default.createElement(Tu,{dataKey:"time",stroke:"#9ca3af",tick:{fontSize:10,fill:"#6b7280"},tickLine:!1,interval:M}),H.default.createElement(Pu,{stroke:"#9ca3af",tick:{fontSize:10,fill:"#6b7280"},tickLine:!1,axisLine:!1,allowDecimals:!1}),H.default.createElement(Wc,{contentStyle:{background:"white",border:"1px solid #e5e7eb",borderRadius:"8px",boxShadow:"0 4px 6px -1px rgba(0,0,0,0.1)"},labelStyle:{color:"#111827",fontWeight:"600",marginBottom:"8px"},formatter:(E,$)=>[E,$.replace("Agent","")]}),Object.keys(T).map(E=>H.default.createElement(Eu,{key:E,type:"monotone",dataKey:E,stackId:"1",stroke:T[E],fill:`url(#gradient-light-${E})`}))))),H.default.createElement("div",{className:"flex gap-6 mt-3 pt-3 border-t border-gray-100"},H.default.createElement("div",null,H.default.createElement("div",{className:"text-lg font-bold text-gray-900"},_e.requests),H.default.createElement("div",{className:"text-xs text-gray-500"},"Total Requests")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-lg font-bold text-red-500"},_e.errors),H.default.createElement("div",{className:"text-xs text-gray-500"},"Errors")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-lg font-bold text-green-600"},_e.avgLatency,"ms"),H.default.createElement("div",{className:"text-xs text-gray-500"},"Avg Latency")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-lg font-bold text-amber-500"},_e.throughput,"/min"),H.default.createElement("div",{className:"text-xs text-gray-500"},"Throughput")))),C==="agents"&&H.default.createElement("div",null,le,H.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"},O.map(E=>H.default.createElement(Cm,{key:E.agent,name:E.agent,accentColor:T[E.agent],subtitle:E.agents?.length?E.agents.join(", "):void 0,badge:H.default.createElement("span",{className:"text-sm px-2 py-0.5 rounded",style:{background:T[E.agent]+"20",color:T[E.agent]}},E.count," calls"),onClick:()=>te(E.agent),stats:Me(E),footer:H.default.createElement(H.default.Fragment,null,H.default.createElement("span",null,u[E.agent]?"Open agent \u2192":"Not linked to an agent record"),H.default.createElement("button",{onClick:$=>{$.stopPropagation(),R(E.agent)},className:x.agent===E.agent?"text-red-600":"hover:text-gray-700"},x.agent===E.agent?"Clear filter":"Filter traces"))})))),C==="actions"&&H.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3"},F.map(E=>{let $=x.action===E.key;return H.default.createElement("div",{key:E.key,onClick:()=>{S({...x,action:$?"all":E.key}),N("timeline")},className:`rounded-xl p-4 cursor-pointer transition-all ${$?"bg-red-50 border-2 border-red-500":"bg-white border border-gray-200 hover:border-gray-300"}`,style:{borderLeftColor:T[E.agent],borderLeftWidth:$?"2px":"4px"}},H.default.createElement("div",{className:"flex items-center justify-between mb-3"},H.default.createElement("div",{className:"flex items-center gap-2"},H.default.createElement("div",{className:"w-2 h-2 rounded-full",style:{background:T[E.agent]}}),H.default.createElement("span",{className:"font-semibold text-gray-900"},E.agent),H.default.createElement("span",{className:"text-gray-500"},"#",E.action)),H.default.createElement("span",{className:"text-xs px-2 py-0.5 rounded",style:{background:T[E.agent]+"20",color:T[E.agent]}},E.count," calls")),H.default.createElement("div",{className:"flex flex-wrap gap-4 text-sm"},H.default.createElement("div",null,H.default.createElement("div",{className:"text-xs text-gray-500"},"Avg"),H.default.createElement("div",{className:"font-medium"},Math.round(E.totalDuration/E.count),"ms")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-xs text-gray-500"},"Min/Max"),H.default.createElement("div",{className:"text-gray-600"},Math.round(E.minDuration),"ms / ",Math.round(E.maxDuration),"ms")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-xs text-gray-500"},"Errors"),H.default.createElement("div",{className:E.errors>0?"text-red-600":"text-green-600"},E.errors," (",(E.errors/E.count*100).toFixed(0),"%)")),H.default.createElement("div",null,H.default.createElement("div",{className:"text-xs text-gray-500"},"Tokens"),H.default.createElement("div",{className:"text-gray-600"},oe(E.tokens).toLocaleString()))))})),C==="tools"&&(V.length===0?H.default.createElement("div",{className:"text-center py-8 text-gray-500 text-sm"},"No tool calls in this window"):H.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},H.default.createElement("div",{className:"flex items-center gap-4 px-4 py-2 text-xs font-medium text-gray-500 border-b border-gray-100"},H.default.createElement("div",{className:"flex-1"},"Tool"),H.default.createElement("div",{className:"w-20 text-right"},"Calls"),H.default.createElement("div",{className:"w-24 text-right"},"Total time"),H.default.createElement("div",{className:"w-20 text-right"},"Avg"),H.default.createElement("div",{className:"w-20 text-right"},"Slowest")),V.map(E=>{let $=V[0].totalDuration?E.totalDuration/V[0].totalDuration*100:0;return H.default.createElement("div",{key:E.name,className:"px-4 py-2 border-b border-gray-50 last:border-0"},H.default.createElement("div",{className:"flex items-center gap-4 text-sm"},H.default.createElement("div",{className:"flex-1 min-w-0"},H.default.createElement("div",{className:"font-medium text-gray-900 truncate",title:E.name},E.name),E.agents.length>0&&H.default.createElement("div",{className:"text-xs text-gray-400 truncate",title:E.agents.join(", ")},E.agents.join(", "))),H.default.createElement("div",{className:"w-20 text-right text-gray-700",style:{fontFamily:Pt.mono}},E.count.toLocaleString(),E.errors>0&&H.default.createElement("span",{className:"text-red-600 ml-1",title:`${E.errors} failed`},"(",E.errors,")")),H.default.createElement("div",{className:"w-24 text-right text-gray-900 font-medium",style:{fontFamily:Pt.mono}},Qn(E.totalDuration)),H.default.createElement("div",{className:"w-20 text-right text-gray-500",style:{fontFamily:Pt.mono}},Qn(E.avgDuration)),H.default.createElement("div",{className:"w-20 text-right text-gray-500",style:{fontFamily:Pt.mono}},Qn(E.maxDuration))),H.default.createElement("div",{className:"h-1 bg-gray-100 rounded mt-1.5"},H.default.createElement("div",{className:"h-1 bg-green-500 rounded",style:{width:`${Math.max($,1)}%`}})))}))),C==="spans"&&He(!1),C==="timeline"&&!Y&&H.default.createElement("div",{className:"space-y-4"},j.length===0?H.default.createElement("div",{className:"text-center py-8 text-gray-500"},"No traces match filters"):j.map(E=>H.default.createElement(GC,{key:E.id,trace:E,darkMode:!1,expanded:y===E.id,onToggle:()=>b(y===E.id?null:E.id)}))),Y&&C==="timeline"&&H.default.createElement("div",{className:"text-center py-12"},H.default.createElement("div",{className:"text-gray-400 text-lg"},"No traces yet"),H.default.createElement("p",{className:"text-gray-500 text-sm mt-2"},"Run an agent, or point your app's ActiveAgent telemetry at this workspace to see traces appear here")))}var xe=Z(Q());var YC=Z(Q());function mI({trace:e,darkMode:t,height:r=8}){let n=Jn(t);if(!e)return YC.default.createElement("div",{className:"rounded",style:{height:`${r}px`,background:n.trackBg}});let o=e.spans||[],a=e.duration_ms||1,i=[...o].sort((s,l)=>(s.nested||0)-(l.nested||0));return YC.default.createElement("div",{style:{position:"relative",height:`${r}px`,borderRadius:"999px",background:n.trackBg,overflow:"hidden",flex:1}},i.map((s,l)=>YC.default.createElement("div",{key:s.span_id||l,title:`${s.name} \xB7 ${Qn(s.duration)}`,style:{position:"absolute",top:0,bottom:0,left:`${Math.min(s.start/a*100,99)}%`,width:`${Math.max(s.duration/a*100,.8)}%`,background:s.error?"#ef4444":uI[s.type]||"#9ca3af"}})))}var Ws=Z(Q());var yr=Z(Q());var Du=Z(Q());var xSe=/\/agents\/(\d+)/;function ti(...e){return t=>e.some(r=>t.startsWith(r))?{}:null}function bSe(e){return t=>t===e?{}:null}function t0(e){return t=>e.test(t)?{agentId:t.match(xSe)?.[1]}:null}function XC(e){return({agent:t})=>t?`/agents/${t.id}${e}`:""}var wSe=e=>e.assistantEnabled!==!1,SSe=t0(/\/agents\/\d+\/(interactions|history)/),kSe=["recording","context","run","scenario_result"],_Se=/^\/replay\/(?:(context|run|scenario_result)\/)?(\d+)\/?$/;function CSe(e){let t=e.match(_Se);return t?{sessionKind:t[1]||"recording",sessionId:t[2]}:null}var gI=[{view:"assistant",match:bSe("/assistant"),path:"/assistant",enabled:wSe},{view:"traces",match:ti("/traces"),path:"/traces"},{view:"metrics",match:ti("/metrics"),path:"/metrics"},{view:"scenarios",match:ti("/scenarios"),path:"/scenarios"},{view:"scenarios",match:e=>e.startsWith("/catalogs")?{replacePath:e.replace("/catalogs","/scenarios")}:null},{view:"interactions",match:ti("/interactions"),path:"/interactions"},{view:"tools",match:ti("/tools"),path:"/tools"},{view:"mcp",match:e=>{if(!e.startsWith("/mcp"))return null;let t=e.match(/^\/mcp\/([^/?#]+)/)?.[1];return t?{focusServer:decodeURIComponent(t)}:{}},path:"/mcp"},{view:"evaluations",match:ti("/evaluations"),path:"/evaluations"},{view:"analytics",match:ti("/analytics"),path:"/analytics"},{view:"projects",match:ti("/projects"),path:"/projects"},{view:"exploration",match:ti("/explorations"),path:"/explorations"},{view:"builder",match:ti("/agents/new"),path:"/agents/new"},{view:"history",match:e=>{let t=SSe(e);return t&&e.includes("/history")&&(t.replacePath=e.replace("/history","/interactions")),t},path:XC("/interactions")},{view:"agent-analytics",match:t0(/\/agents\/\d+\/analytics/),path:XC("/analytics")},{view:"editor",match:t0(/\/agents\/\d+\/edit/),path:XC("/edit")},{view:"runner",match:t0(/\/agents\/\d+\/run/),path:XC("/run")},{view:"history",match:t0(/\/agents\/\d+\/?$/)},{view:"replay",match:CSe},{view:"sessions",match:ti("/sessions","/replay"),path:"/sessions"},{view:"sandbox",match:ti("/sandbox","/demo"),path:"/sandbox"},{view:"organization",match:ti("/organization"),path:"/organization"},{view:"settings",match:ti("/settings"),path:"/settings"}],ASe="list",vY=[{id:"agents",label:null,items:[{view:"assistant",label:"Ask ActiveAgents",glyph:">"},{view:"list",label:"Agents",icon:"agents",badge:"agentCount"},{view:"builder",label:"New Agent",icon:"newAgent"},{view:"sandbox",label:"Run Agents",icon:"demo"},{view:"projects",label:"Projects",glyph:""}]},{id:"observability",label:"Observability",items:[{view:"traces",label:"Traces",icon:"traces"},{view:"interactions",label:"Interactions",icon:"interactions",badge:"pendingInputCount",badgeTone:"attention",badgeTitle:"requests waiting for an answer"},{view:"tools",label:"Tools",icon:"tools"},{view:"mcp",label:"MCP Services",icon:"mcp"},{view:"metrics",label:"Metrics",icon:"metrics"},{view:"evaluations",label:"Evaluations",icon:"evaluations"},{view:"scenarios",label:"Scenarios",icon:"evaluations"},{view:"sessions",label:"Sessions",icon:"replay",also:["replay"]}]},{id:"workspace",label:"Workspace",items:[{view:"organization",label:"Organization",glyph:"\u{1F3E2}"},{view:"settings",label:"Settings",glyph:"\u2699\uFE0F"}]}];function xY(e={}){return{assistantEnabled:e.assistantEnabled!==!1}}function r0(e,t={}){return gI.every(r=>r.view!==e||!r.enabled||r.enabled(t))}function bY(e,t={}){for(let r of gI){if(r.enabled&&!r.enabled(t))continue;let n=r.match(e);if(n)return{view:r.view,...n}}return{view:ASe}}function ZC(e,{agent:t=null,features:r={}}={}){if(!r0(e,r))return null;let n=gI.find(o=>o.view===e&&o.path!==void 0);return n&&(typeof n.path=="function"?n.path({agent:t}):n.path)||""}function wY(e){for(let t of vY){let r=t.items.find(n=>n.also?.includes(e));if(r)return r.view}return e}function dh(e,t){return!kSe.includes(e)||!/^[1-9]\d*$/.test(String(t))?null:e==="recording"?`/replay/${t}`:`/replay/${e}/${t}`}function SY(e={}){return vY.map(t=>({...t,items:t.items.filter(r=>r0(r.view,e))}))}var hI="/api/input_requests",JC="action-agent:input-requests-changed",_Y=3e4,kY=100,ESe=["text","choice","confirm","secret"];function CY({agentId:e=null,runId:t=null}={}){let r=new URLSearchParams;e!=null&&r.set("agent_id",String(e)),t!=null&&r.set("run_id",String(t));let n=r.toString();return n?`${hI}?${n}`:hI}function ph(e){return(Array.isArray(e)?e:[]).filter(t=>t&&t.status==="pending")}function AY(e){let t=ph(e).length;if(t!==0)return t>=kY?`${kY-1}+`:t}function yI(e){let t=e?.status;return t==="pending"||t==="running"?"poll":t==="awaiting_input"?ph(e.input_requests).length>0?"awaiting":"poll":"finished"}function vI(e){return ESe.includes(e?.kind)?e.kind:null}function EY(e){return(Array.isArray(e?.options)?e.options:[]).map(t=>{if(t&&typeof t=="object"){let r=String(t.value??t.label??"");return{value:r,label:String(t.label??r)}}return t==null?null:{value:String(t),label:String(t)}}).filter(t=>t&&t.value!=="")}function NY(e){return e?.id==null?"answer":`answer-${e.id}`}function TY(e){switch(vI(e)){case"text":return[{type:"form",submit:"Answer",fields:[{name:NY(e),label:"Your answer",type:"textarea",required:!0}]}];case"choice":return[{type:"choices",options:EY(e).map(t=>t.label)}];default:return[]}}function OY(e,t){if(t?.kind==="form"){let r=t.values?.[NY(e)];return r==null?void 0:String(r)}if(t?.kind==="choice")return EY(e).find(r=>r.label===t.text)?.value}var NSe={answered:"Already answered",declined:"Already declined",expired:"Expired before it was answered",cancelled:"Cancelled: the run ended"};function TSe(e,t={}){if(e>=200&&e<300)return{state:t?.input_request?.status==="declined"?"declined":"answered"};if(e===409){let r=t?.status||null;return{state:"closed",status:r,message:NSe[r]||"No longer waiting for an answer"}}return e===422?{state:"invalid",message:t?.error||"That answer does not fit this request"}:e===404?{state:"error",message:"This request is no longer available"}:{state:"error",message:t?.error||`Request failed (${e})`}}function xI(e){return["answered","declined","closed"].includes(e?.state)}async function PY(e,{answer:t,decline:r=!1}={},n=globalThis.fetch){let o=`${hI}/${encodeURIComponent(e.id)}/${r?"decline":"answer"}`,a;try{a=await n(o,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(r?{}:{answer:t})})}catch{return{state:"error",message:"Could not reach the server. Try again."}}let i=await a.json().catch(()=>({}));return TSe(a.status,i)}function MY(e,t){return t?.state==="closed"?t.message:t?.state==="declined"?e?.kind==="confirm"?"Declined: the tool does not run":"Declined":t?.state==="answered"?e?.kind==="confirm"?"Approved: the tool runs":"Answered: the run continues":null}function IY(e){return e?e.name?String(e.name):e.id!=null?`${e.type||"user"} #${e.id}`:null:null}function DY(e,t=Date.now()){if(!e)return null;let r=new Date(e).getTime();if(Number.isNaN(r))return null;let n=Math.floor((r-t)/6e4);if(n<0)return"expired";if(n<60)return`expires in ${Math.max(n,1)}m`;let o=Math.floor(n/60);return o<48?`expires in ${o}h`:`expires in ${Math.floor(o/24)}d`}function jY(e,t=Date.now()){return e?`asked ${ov(e,t)}`:null}function $Y(e){let t=e?.arguments;return t==null||typeof t=="object"&&Object.keys(t).length===0?null:typeof t=="string"?t:JSON.stringify(t,null,2)}function LY(e){let t=e?.agent?.id,r=e?.run_id;if(t==null||r==null)return null;let n=ZC("runner",{agent:{id:t}});return n?`${n}?run=${encodeURIComponent(r)}`:null}function zY(e=""){let t=new URLSearchParams(e).get("run");return t&&/^\d+$/.test(t)?Number(t):null}function QC(){window.dispatchEvent(new CustomEvent(JC))}function RC({agentId:e=null,refreshKey:t,enabled:r=!0,intervalMs:n=_Y}={}){let[o,a]=(0,Du.useState)(null),[i,s]=(0,Du.useState)(null),l=(0,Du.useRef)(0),u=(0,Du.useCallback)(async()=>{let c=++l.current;try{let d=await fetch(CY({agentId:e}));if(!d.ok)throw new Error(`Request failed (${d.status})`);let p=await d.json();if(c!==l.current)return;a(Array.isArray(p.input_requests)?p.input_requests:[]),s(null)}catch(d){if(c!==l.current)return;s(d.message)}},[e]);return(0,Du.useEffect)(()=>{if(!r)return;u();let c=setInterval(u,n);return window.addEventListener(JC,u),()=>{clearInterval(c),window.removeEventListener(JC,u),l.current+=1}},[r,u,n,t]),{requests:o,error:i,refresh:u}}var OSe={text:"question",choice:"choice",confirm:"approval",secret:"secret"},PSe={answered:"success",declined:"muted",closed:"warning"},bI={fontFamily:W,fontSize:11,color:"var(--color-text-muted)"},MSe={flex:1,minWidth:0,padding:"7px 10px",borderRadius:8,border:"1px solid var(--color-border-strong)",background:"var(--color-surface)",color:"var(--color-text-primary)",fontFamily:W,fontSize:13};function ISe({request:e,busy:t,onSubmit:r}){let[n,o]=(0,yr.useState)("");return yr.default.createElement("form",{onSubmit:i=>{if(i.preventDefault(),!n||t)return;let s=n;o(""),r(s)},style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},yr.default.createElement("input",{type:"password",autoComplete:"off",spellCheck:!1,"data-aa-secret":"","data-testid":"input-request-secret","aria-label":e.prompt,value:n,onChange:i=>o(i.target.value),disabled:t,style:MSe}),yr.default.createElement(ce,{type:"submit",variant:"primary",size:"sm",disabled:t||!n,testId:"input-request-secret-submit"},t?"Sending\u2026":"Send"))}function DSe({request:e,busy:t,onApprove:r,onDecline:n}){let o=$Y(e);return yr.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8}},o&&yr.default.createElement("pre",{"data-testid":"input-request-arguments",style:{margin:0,padding:"8px 10px",borderRadius:8,maxHeight:200,overflow:"auto",whiteSpace:"pre-wrap",background:"var(--color-muted)",color:"var(--color-text-cell)",fontFamily:W,fontSize:12}},o),yr.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap"}},yr.default.createElement(ce,{variant:"primary",size:"sm",onClick:r,disabled:t,testId:"input-request-approve"},"Approve"),yr.default.createElement(ce,{variant:"secondary",size:"sm",onClick:n,disabled:t,testId:"input-request-decline"},"Decline")))}function Qp({request:e,onSettled:t,initialOutcome:r=null,showRunLink:n=!0}){let{darkMode:o}=ut(),[a,i]=(0,yr.useState)(!1),[s,l]=(0,yr.useState)(r),u=vI(e),c=xI(s),d=async h=>{if(a||c)return;i(!0);let v=await PY(e,h);i(!1),l(v),xI(v)&&(QC(),t&&t(e,v))},p=h=>{h!==void 0&&d({answer:h})},f=()=>d({decline:!0}),m=n?LY(e):null,y=IY(e.actor),b=DY(e.expires_at),g=jY(e.created_at);return yr.default.createElement("div",{"data-testid":"input-request-card","data-kind":e.kind,"data-state":s?.state||"pending",style:{border:"1px solid var(--color-border)",borderRadius:10,background:"var(--color-card)",padding:"12px 14px",display:"flex",flexDirection:"column",gap:8}},yr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},yr.default.createElement(ke,{tone:e.kind==="confirm"?"warning":"info",size:10},OSe[e.kind]||e.kind),yr.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},e.agent?.name||"An agent"," is asking"),m&&yr.default.createElement(Gr,{href:Re(m),onClick:()=>lt(m),title:"Open the run this request paused"},yr.default.createElement("span",{"data-testid":"input-request-run-link"},"run #",e.run_id)),b&&yr.default.createElement("span",{style:{...bI,marginLeft:"auto",color:b==="expired"?"var(--color-error-text)":bI.color}},b)),yr.default.createElement("div",{style:{fontSize:14,color:"var(--color-text-primary)",whiteSpace:"pre-wrap",overflowWrap:"anywhere"}},e.prompt),yr.default.createElement("div",{style:{...bI,display:"flex",gap:10,flexWrap:"wrap"}},y&&yr.default.createElement("span",{"data-testid":"input-request-actor"},"for ",y),e.tool_name&&yr.default.createElement("span",{"data-testid":"input-request-tool"},"via ",e.tool_name),g&&yr.default.createElement("span",null,g)),c?yr.default.createElement("div",{"data-testid":"input-request-outcome"},yr.default.createElement(ke,{tone:PSe[s.state]||"muted"},MY(e,s))):yr.default.createElement(yr.default.Fragment,null,(u==="text"||u==="choice")&&yr.default.createElement(wl,{blocks:TY(e),darkMode:o,onAction:h=>p(OY(e,h))}),u==="confirm"&&yr.default.createElement(DSe,{request:e,busy:a,onApprove:()=>p(!0),onDecline:f}),u==="secret"&&yr.default.createElement(ISe,{request:e,busy:a,onSubmit:p}),u!=="confirm"&&yr.default.createElement("div",null,yr.default.createElement(ce,{variant:"ghost",size:"sm",onClick:f,disabled:a,testId:"input-request-decline",style:{padding:"2px 0"}},"Decline")),s?.message&&yr.default.createElement("div",{"data-testid":"input-request-error",role:"alert",style:{fontSize:12,color:"var(--color-error-text)"}},s.message)))}function jSe({pending:e,settled:t=[],onSettled:r}){return e.length===0&&t.length===0?null:Ws.default.createElement("section",{"data-testid":"needs-input-lane","aria-label":"Needs input",style:{border:"1px solid var(--color-warning)",borderRadius:12,background:"var(--color-warning-soft)",padding:14,display:"flex",flexDirection:"column",gap:10}},Ws.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:10,flexWrap:"wrap"}},Ws.default.createElement(Ue,{color:"var(--color-warning-text)"},"Needs input"),Ws.default.createElement("span",{"data-testid":"needs-input-count",style:{fontFamily:W,fontSize:11,color:"var(--color-warning-text)"}},e.length," waiting"),Ws.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"Each run is paused until its request is answered. Answering continues the same run.")),e.map(n=>Ws.default.createElement(Qp,{key:n.id,request:n,onSettled:r})),t.map(({request:n,outcome:o})=>Ws.default.createElement(Qp,{key:n.id,request:n,initialOutcome:o})))}function wI({agentId:e=null}){let{requests:t}=RC({agentId:e}),[r,n]=(0,Ws.useState)([]),o=new Set(r.map(({request:s})=>s.id)),a=ph(t).filter(s=>!o.has(s.id));return Ws.default.createElement(jSe,{pending:a,settled:r,onSettled:(s,l)=>{n(u=>[...u.filter(c=>c.request.id!==s.id),{request:s,outcome:l}])}})}var mr=Z(Q());function BY(e=[],t=""){let r=t.trim().toLowerCase();return e.filter(n=>n.status!=="archived"&&n.status!=="observed").filter(n=>!r||`${n.name||""} ${n.description||""}`.toLowerCase().includes(r)).sort((n,o)=>{let a=i=>i.status==="active"?0:1;return a(n)-a(o)||String(n.name||"").localeCompare(String(o.name||""))})}var FY=e=>`/agents/${e.id}/run?new=1`;function n0({inline:e=!1,label:t="New interaction"}){let[r,n]=(0,mr.useState)(e),[o,a]=(0,mr.useState)(null),[i,s]=(0,mr.useState)(null),[l,u]=(0,mr.useState)(""),c=(0,mr.useRef)(null);(0,mr.useEffect)(()=>{!r||o||fetch("/api/agents").then(f=>{if(!f.ok)throw new Error(`HTTP ${f.status}`);return f.json()}).then(f=>a(f.agents||[])).catch(f=>s(f.message))},[r,o]),(0,mr.useEffect)(()=>{if(e||!r)return;let f=m=>{c.current&&!c.current.contains(m.target)&&n(!1)};return document.addEventListener("mousedown",f),()=>document.removeEventListener("mousedown",f)},[e,r]);let d=(0,mr.useMemo)(()=>BY(o||[],l),[o,l]),p=mr.default.createElement("div",{"data-testid":"new-interaction-agents"},(o?.length||0)>6&&mr.default.createElement("input",{type:"search",value:l,onChange:f=>u(f.target.value),placeholder:"Find an agent","aria-label":"Find an agent",autoFocus:!e,className:"w-full mb-2 px-3 py-1.5 text-sm rounded-lg",style:{background:"var(--color-muted)",border:"1px solid var(--color-border)",color:"var(--color-text-primary)"}}),i&&mr.default.createElement("p",{className:"text-sm",style:{color:"var(--color-error)"}},"Could not load agents: ",i),!o&&!i&&mr.default.createElement("p",{className:"text-sm",style:{color:"var(--color-text-muted)"}},"Loading agents\u2026"),o&&d.length===0&&mr.default.createElement(Jr,null,o.length===0?"No agents in this workspace yet.":"No agent matches."," ",mr.default.createElement("a",{href:"#",onClick:f=>{f.preventDefault(),lt("/agents/new")},style:{color:"var(--color-info)"}},"Create an agent")),mr.default.createElement("ul",{className:"space-y-1 max-h-80 overflow-y-auto"},d.map(f=>mr.default.createElement("li",{key:f.id},mr.default.createElement("button",{type:"button","data-testid":`new-interaction-agent-${f.id}`,onClick:()=>lt(FY(f)),className:"w-full text-left px-3 py-2 rounded-lg block",style:{border:"1px solid var(--color-border)",background:"var(--color-card)",cursor:"pointer"}},mr.default.createElement("span",{className:"flex items-center justify-between gap-2"},mr.default.createElement("span",{className:"text-sm font-medium truncate min-w-0",style:{color:"var(--color-text-primary)"}},f.name),f.status&&f.status!=="active"&&mr.default.createElement(ke,{tone:"muted"},f.status)),mr.default.createElement("span",{className:"block truncate",style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},f.provider,"/",f.model),f.description&&mr.default.createElement("span",{className:"block text-xs truncate",style:{color:"var(--color-text-secondary)"}},f.description))))));return e?mr.default.createElement(je,{testId:"new-interaction-card"},mr.default.createElement("div",{className:"flex items-baseline justify-between mb-3 gap-3"},mr.default.createElement("div",null,mr.default.createElement(Ue,null,"Your agents"),mr.default.createElement("p",{className:"text-sm mt-1",style:{color:"var(--color-text-secondary)"}},"Start a new interaction. It runs with the instructions, tools and MCP servers saved on the agent."))),p):mr.default.createElement("div",{ref:c,className:"relative"},mr.default.createElement(ce,{variant:"primary",size:"sm",testId:"new-interaction",onClick:()=>n(f=>!f)},t),r&&mr.default.createElement("div",{className:"absolute right-0 mt-2 z-20 p-3 rounded-xl",style:{width:360,background:"var(--color-card)",border:"1px solid var(--color-border)",boxShadow:"0 8px 24px rgba(0,0,0,0.12)"}},mr.default.createElement(Ue,{style:{display:"block",marginBottom:8}},"Start a conversation with"),p))}var Ye=Z(Q());var t2=(e,t)=>e!=null&&e>=400&&e<500||t>=5;var Hs=(e,t)=>`${e} ${t}${e===1?"":"s"}`,o0=(e,t)=>{let r=String(e??"");return r.length>t?`${r.slice(0,t-1)}\u2026`:r},r2=e=>String(e||"").replace(/_/g," ").replace(/^\w/,t=>t.toUpperCase()),UY=e=>String(e??"").replace(/\s+/g," ").trim(),Rp=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),fh=e=>{try{return JSON.stringify(e)??String(e)}catch{return String(e)}},n2=e=>{if(e==null||e===""||Number.isNaN(Number(e)))return null;let t=Number(e);return t===0?"$0.00":Math.abs(t)<.01?`$${t.toFixed(4)}`:`$${t.toFixed(2)}`},SI=e=>{if(e==null||e===""||Number.isNaN(Number(e)))return null;let t=Math.max(0,Number(e));if(t<1e3)return`${Math.round(t)}ms`;if(t<6e4)return`${(t/1e3).toFixed(1).replace(/\.0$/,"")}s`;let r=Math.round(t/1e3);return r<3600?`${Math.floor(r/60)}m ${r%60}s`:`${Math.floor(r/3600)}h ${Math.floor(r%3600/60)}m`},qY=(e,{num_turns:t,total_cost_usd:r,duration_ms:n}={})=>[e,t==null||t===""?null:Hs(Number(t),"turn"),n2(r),SI(n)].filter(Boolean).join(" \xB7 "),KY=(e,t=Date.now())=>{if(!e)return null;let r=new Date(e).getTime();if(Number.isNaN(r))return null;let n=Math.ceil((r-t)/6e4);return n<=0?"past its expiry":n<60?`expires in ${n}m`:`expires in ${Math.floor(n/60)}h${n%60?` ${n%60}m`:""}`},at=(e,t)=>{let r=i=>Array.isArray(i)?i.filter(Boolean).join(", "):typeof i=="string"?i:"",n=Rp(e)?e:{},o=r(n.error)||r(n.errors),a=typeof n.message=="string"?n.message:"";return o&&a?`${o}: ${a}`:o||a||t},$Se={pending:{label:"Queued",tone:"progress"},provisioning:{label:"Booting",tone:"progress"},ready:{label:"Ready",tone:"success"},running:{label:"Running",tone:"success"},completed:{label:"Completed",tone:"neutral"},expired:{label:"Stopped",tone:"neutral"},failed:{label:"Failed",tone:"error"}},VY=e=>$Se[e]||{label:r2(e)||"Unknown",tone:"neutral"},o2=e=>["pending","provisioning"].includes(e?.status),GY=e=>e?.status==="ready",LSe={queued:{label:"Queued",tone:"progress"},running:{label:"Running",tone:"progress"},succeeded:{label:"Succeeded",tone:"success"},failed:{label:"Failed",tone:"error"},cancelled:{label:"Cancelled",tone:"neutral"}},ms=e=>LSe[e]||{label:r2(e)||"Unknown",tone:"neutral"},qs=e=>["queued","running"].includes(e?.status),l0=e=>["succeeded","failed","cancelled"].includes(e?.status),kI=e=>l0(e)&&e?.diff_pending===!0,_I=e=>l0(e)&&!kI(e),YY=e=>e?.status==="cancelled"&&_I(e)&&e?.diff==null&&!(Number(e?.event_count)>0),CI=e=>{if(!l0(e)){let t=Number(e?.event_count)||0;return t>0?Hs(t,"event"):""}return qY(null,e)},XY=e=>[ms(e?.status).label,CI(e)].filter(Boolean).join(" \xB7 "),ZY=(e,t=80)=>{let r=String(e||"").split(` +`).map(n=>n.trim()).find(Boolean)||"";return o0(r,t)||"(empty prompt)"},sd=(e,t,r)=>{if(!t||t[r]==null)return e;let n=e.findIndex(a=>a[r]===t[r]);if(n===-1)return[t,...e];let o=e.slice();return o[n]={...e[n],...t},o},JY=(e,t,r)=>t&&e.some(n=>n[r]===t[r])?sd(e,t,r):e,QY=e=>{if(!e)return e;let{events:t,events_offset:r,dropped_events_count:n,diff:o,...a}=e;return a},RY=(e,t)=>{let r=new Set(t||[]),n={},o=[];return(e||[]).forEach(a=>{!a||a.status==="expired"||a.sandbox_type&&a.sandbox_type!=="app_runtime"||(r.has(a.repository)?(n[a.repository]||=[]).push(a):o.push(a))}),{byRepository:n,others:o}},eX=(e,t)=>{let r=Array.isArray(e)?e:[],n=Array.isArray(t?.events)?t.events:[],o=Math.max(0,Math.min(Number(t?.events_offset)||0,r.length));return[...r.slice(0,o),...n]},Sl=(e,t)=>{let r=String(e??"");if(!t)return r;let n=String(t).replace(/\/+$/,"");return r===n?".":r.startsWith(`${n}/`)?r.slice(n.length+1):r},zSe={Bash:e=>e.command,Read:(e,t)=>Sl(e.file_path,t),Write:(e,t)=>Sl(e.file_path,t),Edit:(e,t)=>Sl(e.file_path,t),MultiEdit:(e,t)=>{let r=Array.isArray(e.edits)?` (${Hs(e.edits.length,"edit")})`:"";return`${Sl(e.file_path,t)}${r}`},NotebookEdit:(e,t)=>Sl(e.notebook_path,t),NotebookRead:(e,t)=>Sl(e.notebook_path,t),Glob:(e,t)=>e.path?`${e.pattern} in ${Sl(e.path,t)}`:e.pattern,Grep:(e,t)=>[`"${e.pattern}"`,e.path&&`in ${Sl(e.path,t)}`,e.glob&&`(${e.glob})`].filter(Boolean).join(" "),LS:(e,t)=>Sl(e.path,t),WebFetch:e=>e.url,WebSearch:e=>e.query,Task:e=>e.description||e.prompt,Agent:e=>e.description||e.prompt,TodoWrite:e=>Array.isArray(e.todos)?Hs(e.todos.length,"todo"):"",BashOutput:e=>e.bash_id,KillShell:e=>e.shell_id,KillBash:e=>e.shell_id,Skill:e=>e.skill||e.command,SlashCommand:e=>e.command},BSe=["command","file_path","path","url","query","pattern","description","name","prompt"],FSe=(e,t,{cwd:r}={})=>{if(t==null)return"";if(!Rp(t))return o0(UY(typeof t=="string"?t:fh(t)),120);let n=zSe[e],o=n?n(t,r):null;if(o==null||o===""){let a=BSe.find(i=>typeof t[i]=="string"&&t[i].trim());a?o=["file_path","path"].includes(a)?Sl(t[a],r):t[a]:o=Object.keys(t).length?fh(t):""}return o0(UY(o),120)},USe=e=>e==null?"":typeof e=="string"?e:Array.isArray(e)?e.map(t=>typeof t=="string"?t:t?.type==="text"?t.text??"":t?.type==="image"?"[image]":fh(t)).join(` +`):fh(e),WSe=(e,{chars:t=600,lines:r=12}={})=>{let n=String(e??"").replace(/\s+$/,""),o=n.split(` `).slice(0,r).join(` -`);o.length>t&&(o=o.slice(0,t));let a=o.lengthe?.is_error===!0||e?.subtype!=null&&e.subtype!=="success",ISe=e=>{if(!VY(e))return"Done";if(IY[e.subtype])return IY[e.subtype];let t=String(e.subtype||"").replace(/^error_?/,"").replace(/_/g," ").trim();return t&&e.subtype!=="success"?`Error (${t})`:"Error"},DSe=e=>{if(e.subtype==="init"){let t=Array.isArray(e.tools)?Hs(e.tools.length,"tool"):null;return{kind:"system",text:["Session started",...[e.model&&`model ${e.model}`,e.permissionMode&&`${e.permissionMode} mode`,t].filter(Boolean)].join(" \xB7 ")}}if(e.subtype==="compact_boundary")return{kind:"system",text:"Conversation compacted"};if(e.subtype==="api_retry"){let t=e.attempt??"?",r=e.max_retries!=null?`${t}/${e.max_retries}`:String(t),n=[e.error_status,e.error].filter(o=>o!=null&&o!=="").join(" ");return{kind:"system",text:[`API retry ${r}`,n].filter(Boolean).join(" \xB7 ")}}return{kind:"system",text:e.subtype?`System: ${t2(e.subtype).toLowerCase()}`:"System event"}},jSe=/^(hook_|thinking_tokens$)/,$Se=e=>jSe.test(String(e?.subtype||"")),LSe=e=>{let t=e?.rate_limit_info||{},r=String(t.status||"");if(r===""||r==="allowed")return[];let n=Number(t.resetsAt),o=Number.isFinite(n)&&n>0?`resets ${new Date(n*1e3).toLocaleTimeString()}`:null;return[{kind:"system",text:[`Rate limit: ${t2(r).toLowerCase()}`,o].filter(Boolean).join(" \xB7 ")}]},RC=(e,t)=>({kind:"unknown",label:String(e||"event"),text:o0(fh(t),300)}),DY=(e,t,r)=>{if(typeof e=="string")return e.trim()?[{kind:t==="assistant"?"text":"user_text",text:e}]:[];if(!Rp(e))return[];switch(e.type){case"text":return String(e.text??"").trim()?[{kind:t==="assistant"?"text":"user_text",text:e.text}]:[];case"thinking":return String(e.thinking??"").trim()?[{kind:"thinking",text:e.thinking}]:[];case"redacted_thinking":return[{kind:"thinking",text:"(redacted)"}];case"tool_use":case"server_tool_use":{let n=String(e.name||"tool");return e.id&&(r.toolNames[e.id]=n),[{kind:"tool_use",name:n,summary:OSe(n,e.input,r),id:e.id||null}]}case"tool_result":{let{text:n,truncated:o}=MSe(PSe(e.content));return[{kind:"tool_result",name:r.toolNames[e.tool_use_id]||null,text:n,truncated:o,isError:e.is_error===!0}]}default:return[RC(`${t} ${e.type||"block"}`,e)]}},zSe=(e,t)=>{let r=e.message?.content;return typeof r=="string"?DY(r,e.type,t):Array.isArray(r)?r.flatMap(n=>DY(n,e.type,t)):[RC(e.type,e)]},BSe=(e,t={toolNames:{}})=>{if(t.toolNames||={},!Rp(e))return e==null||e===""?[]:[{kind:"raw",text:typeof e=="string"?e:fh(e)}];let r=!!e.parent_tool_use_id,n=o=>r?o.map(a=>({...a,nested:!0})):o;switch(e.type){case"thread.started":return[{kind:"system",text:"Codex session started"}];case"turn.started":case"turn.completed":return[];case"item.started":case"item.updated":case"item.completed":{let o=e.item||{};return e.type!=="item.completed"?[]:o.type==="agent_message"?[{kind:"text",text:String(o.text||"")}]:o.type==="reasoning"?[{kind:"thinking",text:String(o.text||"")}]:o.type==="command_execution"?[{kind:"tool_use",name:"Command",summary:String(o.command||"")},{kind:"tool_result",text:String(o.aggregated_output||""),isError:o.status==="failed"||o.exit_code!=null&&o.exit_code!==0}]:[RC(o.type||e.type,o)]}case"system":return e.subtype==="init"&&e.cwd&&(t.cwd=e.cwd),$Se(e)?[]:[DSe(e)];case"rate_limit_event":return LSe(e);case"assistant":case"user":return n(zSe(e,t));case"result":{let o=Array.isArray(e.permission_denials)?e.permission_denials.length:0,a=jY(ISe(e),e);return[{kind:"result",tone:VY(e)?"error":"success",text:o?`${a} \xB7 ${Hs(o,"permission denial")}`:a}]}case"raw":return e.text==null||e.text===""?[]:[{kind:"raw",text:String(e.text)}];default:return[RC(e.type,e)]}},o2=e=>{let t={toolNames:{}};return(e||[]).flatMap((r,n)=>BSe(r,t).map((o,a)=>({...o,key:`${n}:${a}`})))},GY=/^diff (--git|--cc|--combined) /,FSe="\u2026 diff truncated",u0=e=>{if(!e)return[];let t=!0,r=1;return String(e).replace(/\n$/,"").split(` -`).map(n=>{if(GY.test(n))return t=!0,{text:n,kind:"meta"};if(n===FSe)return{text:n,kind:"meta"};if(n.startsWith("@@"))return t=!1,r=Math.max(1,n.match(/^@+/)[0].length-1),{text:n,kind:"hunk"};if(t)return{text:n,kind:"meta"};let o=n.slice(0,r);return o.includes("+")?{text:n,kind:"add"}:o.includes("-")?{text:n,kind:"del"}:{text:n,kind:"context"}})},YY=e=>{let t=u0(e),r=t.filter(a=>a.kind==="meta"&&GY.test(a.text)).length,n=t.filter(a=>a.kind==="add").length,o=t.filter(a=>a.kind==="del").length;return`${Hs(r,"file")} changed \xB7 +${n} \u2212${o}`},c0="default",d0="other",XY=["sonnet","opus","haiku"],USe=/^[A-Za-z0-9][A-Za-z0-9._:[\]-]{0,99}$/,_I="actionagent.claudeCode.modelChoice",ZY=(e="claude_code")=>[{value:c0,label:`Default (${e==="codex"?"Codex":"Claude Code"}'s own)`},...e==="codex"?[]:XY.map(t=>({value:t,label:t})),{value:d0,label:"Other\u2026"}],CI=e=>e===c0||e===d0||XY.includes(e),AI=(e,t="")=>{if(!CI(e)||e===c0)return{model:null};if(e!==d0)return{model:e};let r=String(t??"").trim();return r?USe.test(r)?{model:r}:{error:`"${o0(r,40)}" is not a model name (letters, digits and . _ : [ ] -).`}:{error:"Enter a model id, or pick one of the options."}},JY=(e,t,r,n="claude_code")=>{let{model:o}=AI(t,r),a=o?{prompt:e,model:o}:{prompt:e};return n==="claude_code"?a:{...a,runner:n}},a2=e=>{let t={choice:c0,custom:""};if(typeof e!="string"||!e)return t;try{let r=JSON.parse(e);if(!Rp(r)||!CI(r.choice))return t;let n=typeof r.custom=="string"?r.custom.slice(0,100):"";return{choice:r.choice,custom:n}}catch{return t}},QY=(e,t="")=>JSON.stringify({choice:CI(e)?e:c0,custom:String(t??"").slice(0,100)}),EI=e=>e?.model||"default model",a0="api_key",i0="local_login",RY="claude /login",eX="sk-ant-api03-\u2026",tX="https://platform.claude.com",rX="https://code.claude.com/docs/en/legal-and-compliance.md",i2=e=>{let t=Rp(e?.claude_code_login)?e.claude_code_login:{},r=e?.claude_code_auth===i0;return{mode:e?.claude_code_auth==="sandbox_login"?"sandbox_login":r?i0:a0,connected:e?.claude_code_connected===!0,loggedIn:r&&t.logged_in===!0,authMethod:r&&typeof t.auth_method=="string"&&t.auth_method?t.auth_method:null}},nX=(e,t)=>{if(!e)return{view:"loading",status:"Loading\u2026",tone:"neutral",keyForm:!1,needsReplacing:!1,loginHint:null};if(e.mode==="sandbox_login")return{view:"sandbox_login",status:"Your subscription, inside each sandbox",tone:"neutral",keyForm:!0,needsReplacing:t?.needs_replacing===!0,loginHint:null};if(e.mode===i0){let r=e.authMethod?` (${e.authMethod})`:"";return{view:i0,status:e.loggedIn?`Using this machine's Claude Code login \xB7 logged in${r}`:"Using this machine's Claude Code login \xB7 not logged in",tone:e.loggedIn?"success":"error",keyForm:!1,needsReplacing:!1,loginHint:e.loggedIn?null:RY}}return t?t.configured&&t.needs_replacing===!0?{view:a0,status:"Needs an API key: the stored subscription token is no longer used",tone:"error",keyForm:!0,needsReplacing:!0,loginHint:null}:{view:a0,status:t.configured?`Connected (${t.hint})`:"Not connected",tone:t.configured?"success":"neutral",keyForm:!0,needsReplacing:!1,loginHint:null}:{view:"loading",status:"Loading\u2026",tone:"neutral",keyForm:!1,needsReplacing:!1,loginHint:null}},oX=e=>e?.connected===!0?null:e?.mode==="sandbox_login"?{text:"Sign in with your Claude subscription in this sandbox, or connect an Anthropic API key.",loginHint:null,after:null}:e?.mode===i0?{text:"Claude Code is not logged in on this machine. Run",loginHint:RY,after:"as the user the dashboard runs as."}:{text:"Connect an Anthropic API key under Claude Code below to run sessions in this checkout.",loginHint:null,after:null},s0="local_login",aX="codex login",s2=e=>{let t=Rp(e?.codex_login)?e.codex_login:{},r=e?.codex_auth===s0;return{supported:e?.codex_sessions_supported===!0,mode:r?s0:a0,connected:e?.codex_connected===!0,loggedIn:r&&t.logged_in===!0,authMethod:r&&typeof t.auth_method=="string"&&t.auth_method?t.auth_method:null}},iX=(e,t)=>{let r={view:"loading",status:"Loading\u2026",tone:"neutral",keyForm:!1,loginHint:null};if(!e)return r;if(e.mode===s0){let n=e.authMethod?` (${e.authMethod})`:"";return{view:s0,status:e.loggedIn?`Using this machine's Codex login \xB7 logged in${n}`:"Using this machine's Codex login \xB7 not logged in",tone:e.loggedIn?"success":"error",keyForm:!1,loginHint:e.loggedIn?null:aX}}return t?{view:a0,status:t.configured?`Connected \xB7 ${t.hint}`:"Not connected",tone:t.configured?"success":"neutral",keyForm:!0,loginHint:null}:r},sX=e=>!e||e.supported!==!0?{text:"This sandbox backend does not support Codex.",loginHint:null,after:null}:e.connected===!0?null:e.mode===s0?{text:"Codex is not logged in on this machine. Run",loginHint:aX,after:"as the user the dashboard runs as."}:{text:"Connect an OpenAI API key in the Codex integration below.",loginHint:null,after:null};var uX=1500,NI=[{id:"all",label:"All"},{id:"agent",label:"Agent runs"},{id:"claude_code",label:"Claude Code"},{id:"codex",label:"Codex"}],WSe=new Set(NI.map(e=>e.id)),TI=e=>e?.source==="code_session"||/^code-\d+$/.test(String(e?.id??"")),ef=e=>{let t=/^code-(\d+)$/.exec(String(e??""));return t?Number(t[1]):null},cX=(e,t="")=>{let r=new URLSearchParams(t),n=WSe.has(r.get("source"))?r.get("source"):"all",o=/^\d+$/.test(r.get("project")||"")?Number(r.get("project")):null,a=String(e||"").replace(/^\/interactions\/?/,"").replace(/\/$/,"");if(a==="latest")return{view:"latest",source:n,project:o,codeId:null};let i=ef(a);return i?{view:"conversation",source:n,project:o,codeId:i}:{view:"list",source:n,project:o,codeId:null}},ms=e=>`/interactions/code-${e}`,l2=({source:e="all",project:t=null}={})=>{let r=new URLSearchParams;e&&e!=="all"&&r.set("source",e),t&&r.set("project",String(t));let n=r.toString();return`/interactions${n?`?${n}`:""}`},OI=({minutes:e=null,agentId:t=null,source:r="all",project:n=null}={})=>{let o=new URLSearchParams;return e&&o.set("minutes",String(e)),t&&o.set("agent_id",String(t)),r&&r!=="all"&&o.set("source",r),n&&o.set("project_id",String(n)),o.toString()},dX=e=>{let t=(e||[]).filter(TI);if(t.length===0)return null;let r=[...t].sort((n,o)=>String(o.last_activity_at).localeCompare(String(n.last_activity_at)));return r.find(n=>n.active)||r[0]},pX=e=>(e||[]).filter(t=>(t.events||[]).length>0).map(t=>`after[${encodeURIComponent(t.id)}]=${t.events_offset+t.events.length}`).join("&"),fX=(e,t)=>{if(!t)return e;if(!e)return t;let r=new Map((e.turns||[]).map(o=>[o.id,o])),n=(t.turns||[]).map(o=>{let a=r.get(o.id);if(!a||o.events_offset===0)return o;let i=(a.events||[]).slice(0,o.events_offset-a.events_offset);return{...o,events_offset:a.events_offset,events:[...i,...o.events||[]]}});return{...t,turns:n}},mX=e=>(e?.turns||[]).some(qs),gX=e=>{let t=[`Turn ${Number(e.turn_index)+1}`];return e.total_cost_usd!=null&&t.push(r2(e.total_cost_usd)),e.duration_ms!=null&&t.push(bI(e.duration_ms)),e.diff_stat&&t.push(`${Hs(e.diff_stat.files,"file")} +${e.diff_stat.additions} \u2212${e.diff_stat.deletions} since checkout`),t.join(" \xB7 ")},u2=e=>{let t=[Hs(e.turn_count??(e.turns||[]).length,"turn")];e.total_cost_usd&&t.push(r2(e.total_cost_usd));let r=e.tokens?.total||0;return r&&t.push(`${r>=1e3?`${(r/1e3).toFixed(1)}k`:r} tokens`),t.join(" \xB7 ")},hX=e=>{let t=e?.turns||[],r=t[t.length-1];if(!r||qs(r))return null;for(let n of[...r.events||[]].reverse()){let o=n?.message?.content;if(Array.isArray(o)){for(let a of[...o].reverse())if(a?.type==="tool_use"&&/(^|__)browser_request_person$/.test(String(a.name||""))){let i=typeof a.input?.reason=="string"?a.input.reason:null;if(i)return{reason:i,turn:r.turn_index}}}}return null},f0=e=>e?.runner==="codex"?"Codex":"Claude Code",yX=(e,{handoff:t=null}={})=>{if(e?.sandbox_status&&e.sandbox_status!=="ready")return`The sandbox is ${e.sandbox_status}: boot it again to continue this conversation.`;let r=(e?.turns||[]).filter(a=>a.status==="queued").length,n=(e?.turns||[]).some(a=>a.status==="running"),o=t?` ${f0(e)} will be told you drove the browser.`:"";return n?`Your message waits for the turn that runs${r?` (and ${Hs(r,"more")})`:""}.${o}`:`Sends the next turn, resuming this conversation.${o}`},vX=(e,t)=>{let r=new URLSearchParams(e||"").get("browser");return r==="1"||r==="0"?r==="1":t==="1"},tf=50,c2=25,d2=75,lX=5,p0=e=>{let t=Number(e);return Number.isFinite(t)?Math.min(d2,Math.max(c2,Math.round(t*10)/10)):tf},xX=(e,{left:t,width:r})=>r>0?p0((e-t)/r*100):tf,bX=(e,t)=>{switch(t){case"ArrowLeft":return p0(e-lX);case"ArrowRight":return p0(e+lX);case"Home":return c2;case"End":return d2;case"Enter":return tf;default:return null}};var Ee=Z(J());var Ut=Z(J());var g0={padding:16,border:"1px solid var(--color-border)",borderRadius:12,background:"var(--color-muted)",color:"var(--color-text-primary)"},PI={width:"100%",boxSizing:"border-box",padding:"12px 14px",borderRadius:8,border:"1px solid var(--color-border)",background:"var(--color-background)",color:"var(--color-text-primary)",fontFamily:"var(--font-mono)",fontSize:13};function MI({title:e,onClose:t,children:r}){let n=(0,Ut.useRef)(null);return(0,Ut.useEffect)(()=>{let o=n.current;return o?.showModal?.(),()=>o?.close?.()},[]),Ut.default.createElement("dialog",{ref:n,className:"aa-fix-dialog","aria-label":e,onCancel:o=>{o.preventDefault(),t()},style:{width:"min(760px, calc(100vw - 32px))",maxHeight:"calc(100dvh - 40px)",boxSizing:"border-box",padding:0,borderRadius:16,border:"1px solid var(--color-border)",background:"var(--color-card, var(--color-background))",color:"var(--color-text-primary)"}},Ut.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:12,padding:"20px 24px",borderBottom:"1px solid var(--color-border)"}},Ut.default.createElement("h2",{style:{margin:0,fontSize:19,letterSpacing:"-0.02em"}},e),Ut.default.createElement("button",{type:"button","aria-label":"Close dialog",onClick:t,style:{background:"none",border:0,color:"var(--color-text-secondary)",cursor:"pointer",fontSize:24}},"\xD7")),Ut.default.createElement("div",{style:{padding:24,display:"flex",flexDirection:"column",gap:18}},r))}async function m0(e,t="GET",r){let n=await fetch(e,{method:t,headers:r?{"Content-Type":"application/json"}:void 0,body:r?JSON.stringify(r):void 0,cache:"no-store"}),o=await n.json().catch(()=>({}));if(!n.ok)throw new Error(o.error||"Could not connect Claude Code. Please try again.");return o.login}var HSe=e=>e==="expired"?"This sign-in expired. Start again to get a fresh authorization page.":e==="completed"?"Claude Code signed in, but not with a Claude subscription. Start again and choose your Claude.ai account.":"Sign-in did not finish. Start again to retry.";function rf({sandbox:e,onConnected:t,onChange:r}){let n=`/api/sandboxes/${encodeURIComponent(e.session_id)}/claude_login`,[o,a]=(0,Ut.useState)(null),[i,s]=(0,Ut.useState)(!1),[l,u]=(0,Ut.useState)(""),[c,d]=(0,Ut.useState)(!1),[p,f]=(0,Ut.useState)(null),m=(0,Ut.useRef)(null),y=(0,Ut.useRef)(t);y.current=t,(0,Ut.useEffect)(()=>{let v=!1;return m0(n).then(x=>{v||a(x)}).catch(x=>{v||f(x.message)}),()=>{v=!0}},[n]),(0,Ut.useEffect)(()=>{if(!i)return;let v=!1,x,S=async()=>{try{let k=await m0(n);if(v)return;if(a(k),k.authorize_url&&m.current&&(m.current.location=k.authorize_url,m.current=null),k.logged_in){s(!1),u(""),d(!1),r?.(),y.current?.();return}if(!["starting","awaiting_code","submitted"].includes(k.status)){f(HSe(k.status)),d(!1);return}x=setTimeout(S,1200)}catch(k){v||(f(k.message),d(!1))}};return x=setTimeout(S,300),()=>{v=!0,clearTimeout(x)}},[n,i]);let b=async()=>{f(null),u(""),d(!0),m.current=window.open("about:blank","_blank"),m.current&&(m.current.opener=null);try{a(await m0(n,"POST")),s(!0)}catch(v){m.current?.close(),m.current=null,f(v.message)}finally{d(!1)}},g=async()=>{m.current?.close(),m.current=null,u(""),s(!1),d(!0);try{a(await m0(n,"DELETE")),r?.()}catch(v){f(v.message)}finally{d(!1)}},h=async v=>{if(v.preventDefault(),!l.trim()||c)return;let x=l.trim();u(""),d(!0),f(null);try{a(await m0(`${n}/code`,"POST",{claude_login_code:x}))}catch(S){f(S.message),d(!1)}};return Ut.default.createElement("section",{style:g0,"data-testid":"sandbox-claude-login"},Ut.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:10}},Ut.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:8}},Ut.default.createElement("strong",null,"Claude Code"),Ut.default.createElement(ke,{tone:o?.logged_in?"success":"accent"},o?.logged_in?"Your subscription connected":"Use your Claude subscription")),o?.logged_in&&Ut.default.createElement(ce,{size:"sm",variant:"ghost",onClick:g,disabled:c},"Disconnect")),Ut.default.createElement("p",{style:{fontSize:13,lineHeight:"20px",color:"var(--color-text-secondary)",margin:"10px 0"}},"Usage counts against your own Claude Pro, Max, or Team plan. Your login stays inside this sandbox and ends when the sandbox stops."),!o?.logged_in&&Ut.default.createElement(ce,{variant:"primary",onClick:b,disabled:c||e.status!=="ready"},c?"Connecting\u2026":"Sign in with your Claude subscription"),p&&!i&&Ut.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)",fontSize:13}},p),i&&Ut.default.createElement(MI,{title:"Connect your Claude subscription",onClose:g},Ut.default.createElement("p",{style:{margin:0,fontSize:14,lineHeight:"22px",color:"var(--color-text-secondary)"}},"Authorize Claude Code on Claude\u2019s website. Then paste the one-time code below to finish signing in to this sandbox."),Ut.default.createElement("div",{style:{...g0,fontSize:12}},Ut.default.createElement("strong",null,e.repository||"Checkout sandbox"),Ut.default.createElement("div",{style:{marginTop:6,fontFamily:"var(--font-mono)",color:"var(--color-text-muted)"}},e.session_id)),o?.authorize_url?Ut.default.createElement("a",{href:o.authorize_url,target:"_blank",rel:"noreferrer",style:{color:"var(--color-text-link, var(--color-accent-ui))",fontSize:13}},"Reopen Claude authorization page \u2197"):Ut.default.createElement("p",{role:"status",style:{fontSize:13}},o?.status==="submitted"?"Confirming your sign-in\u2026":"Preparing Claude\u2019s authorization page\u2026"),Ut.default.createElement("form",{onSubmit:h,style:{display:"flex",flexDirection:"column",gap:12},"data-aa-secret":""},Ut.default.createElement("label",{htmlFor:`claude-login-code-${e.session_id}`,style:{fontSize:12,fontWeight:600}},"Authentication code"),Ut.default.createElement("input",{id:`claude-login-code-${e.session_id}`,type:"password","data-aa-secret":"",autoComplete:"off",spellCheck:!1,maxLength:2048,value:l,onChange:v=>u(v.target.value),placeholder:"Paste the code from Claude",style:PI,disabled:c||o?.status!=="awaiting_code"}),Ut.default.createElement(ce,{variant:"primary",type:"submit",disabled:!l.trim()||c||o?.status!=="awaiting_code"},c?"Completing connection\u2026":"Complete connection")),p&&Ut.default.createElement(Ut.default.Fragment,null,Ut.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)",fontSize:13}},p),Ut.default.createElement(ce,{onClick:b,disabled:c},"Start sign-in again")),Ut.default.createElement("p",{style:{margin:0,fontSize:12,lineHeight:"18px",color:"var(--color-text-muted)"}},"The code is sent once to Claude Code running in your sandbox. ActiveAgent does not store your Claude subscription token.")))}var Dr=Z(J());function h0({session:e,evaluationId:t,sandboxId:r,onRetry:n}){let[o,a]=(0,Dr.useState)(null),[i,s]=(0,Dr.useState)(!1),l=e?.verification;if(!e?.evaluation_run_id)return null;let u=l?.rows||[],c=l?.status==="complete",d=async()=>{s(!0),a(null);try{let f=await fetch(`/api/evaluations/${t}/run`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sandbox_id:r,models:e.fix_item?.models})}),m=await f.json();if(!f.ok)throw new Error(m.error||"Could not run the full suite.");a({run:m.run.id})}catch(f){a({error:f.message})}finally{s(!1)}},p=f=>f==null?"\u2014":Number(f).toFixed(2);return Dr.default.createElement("section",{"data-testid":"fix-verification",style:{display:"flex",flexDirection:"column",gap:12,minWidth:0}},Dr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Dr.default.createElement("strong",{style:{fontSize:13}},"Before & after"),Dr.default.createElement(ke,{tone:c?"info":"muted"},l?.status||(e.status==="succeeded"?e.diff?"Preparing verification":"No changes to verify":e.status))),l?.error&&Dr.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)",margin:0,fontSize:13}},l.error),Dr.default.createElement("div",{style:{overflowX:"auto"}},Dr.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:12}},Dr.default.createElement("thead",null,Dr.default.createElement("tr",null,["Scenario / model","Before","After","Score \u0394","Fault"].map(f=>Dr.default.createElement("th",{key:f,style:{textAlign:"left",padding:"8px 10px",borderBottom:"1px solid var(--color-border)",color:"var(--color-text-muted)",whiteSpace:"nowrap"}},f)))),Dr.default.createElement("tbody",null,u.map(f=>Dr.default.createElement("tr",{key:`${f.scenario_key}/${f.model}`},Dr.default.createElement("td",{style:{padding:10,fontFamily:"var(--font-mono)"}},f.scenario_key,Dr.default.createElement("div",{style:{color:"var(--color-text-muted)",fontSize:10,marginTop:4}},f.model)),Dr.default.createElement("td",{style:{padding:10}},f.before," \xB7 ",p(f.before_score)),Dr.default.createElement("td",{style:{padding:10,color:f.change==="fixed"?"var(--color-success-text)":["regressed","still_failing"].includes(f.change)?"var(--color-error-text)":"var(--color-text-secondary)"}},f.after||"pending",f.after_score!=null&&` \xB7 ${p(f.after_score)}`,Dr.default.createElement("div",{style:{fontSize:10,marginTop:4}},f.change.replaceAll("_"," "))),Dr.default.createElement("td",{style:{padding:10,fontFamily:"var(--font-mono)"}},f.score_change==null?"\u2014":`${f.score_change>0?"+":""}${p(f.score_change)}`),Dr.default.createElement("td",{style:{padding:10}},f.fault||(f.after?"none":f.before_fault)||"\u2014")))))),Dr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12,flexWrap:"wrap",fontSize:12}},Dr.default.createElement("a",{href:Re(`/evaluations/${t}/runs/${e.evaluation_run_id}`)},"Original run"),l?.run_id&&Dr.default.createElement("a",{href:Re(`/evaluations/${t}/runs/${l.run_id}`)},"Verification run"),c&&Dr.default.createElement(ce,{size:"sm",onClick:d,disabled:i},i?"Starting\u2026":"Re-run the full suite"),n&&["succeeded","failed","cancelled"].includes(e.status)&&(c||l?.error||e.status!=="succeeded"||!e.diff)&&Dr.default.createElement(ce,{size:"sm",onClick:n},"Try again")),o?.run&&Dr.default.createElement("a",{style:{fontSize:12},href:Re(`/evaluations/${t}/runs/${o.run}`)},"Full suite queued \u2014 open run \u2192"),o?.error&&Dr.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)"}},o.error))}var On=e=>{let t=Number(e)||0;return Math.abs(t)>=1e6?`${(t/1e6).toFixed(1)}M`:Math.abs(t)>=1e3?`${(t/1e3).toFixed(1)}K`:`${Math.round(t)}`},y0=e=>e==null?"\u2014":On(e),II=(e,t)=>e==null&&t==null?"\u2014":`${y0(e)}\u2192${y0(t)}`,Bn=e=>{if(e==null||Number.isNaN(Number(e)))return"\u2014";let t=Number(e);return t>=1e3?`${(t/1e3).toFixed(t>=1e4?1:2).replace(/\.?0+$/,"")}s`:`${Math.round(t)}ms`},v0=e=>{if(e==null)return"\u2014";let t=Number(e);return t===0?"$0.00":Math.abs(t)<.01?`$${t.toFixed(4)}`:`$${t.toFixed(2)}`},x0=(e,t=4)=>e==null?"\u2014":`$${Number(e).toFixed(t)}`;var mh=(e,t="%",r=0)=>{if(e==null||Number.isNaN(Number(e)))return"\u2014";let n=Number(e);return`${n>0?"+":n<0?"-":""}${Math.abs(n).toFixed(r)}${t}`},wo=e=>{if(!e)return"";let t=Math.floor((Date.now()-new Date(e).getTime())/6e4);if(t<1)return"just now";if(t<60)return`${t} min ago`;if(t<1440){let n=Math.floor(t/60);return`${n} hour${n===1?"":"s"} ago`}let r=Math.floor(t/1440);return`${r} day${r===1?"":"s"} ago`},bn=(e,t=null)=>{let r=String(e||""),n=r.lastIndexOf("/");return n>0?{short:r.slice(n+1),provider:r.slice(0,n)}:{short:r,provider:t||""}};var qSe=2e4,SX=()=>{try{return a2(window.localStorage.getItem(_I))}catch{return a2(null)}},KSe=(e,t)=>{try{window.localStorage.setItem(_I,QY(e,t))}catch{}},CX=e=>({backgroundColor:e?"#1a1a1a":"#ffffff"}),kX={success:{dark:"bg-green-900/30 text-green-300",light:"bg-green-50 text-green-700"},error:{dark:"bg-red-900/30 text-red-300",light:"bg-red-50 text-red-700"},progress:{dark:"bg-amber-900/30 text-amber-300",light:"bg-amber-50 text-amber-700"},neutral:{dark:"bg-gray-700 text-gray-300",light:"bg-gray-100 text-gray-600"}};function Ks({tone:e="neutral",children:t}){let{darkMode:r}=ut(),n=kX[e]||kX.neutral;return Ee.default.createElement("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium ${r?n.dark:n.light}`},e==="progress"&&Ee.default.createElement("span",{className:"mr-1 h-1.5 w-1.5 rounded-full bg-current animate-pulse"}),t)}function b0({sandbox:e,claudeCode:t,codex:r,onRecheckConnection:n,readOnly:o=!1,focusSessionId:a=null,title:i="Code sessions"}){let{darkMode:s}=ut(),l=`/api/sandboxes/${encodeURIComponent(e.session_id)}/code_sessions`,[u,c]=(0,Ee.useState)(null),[d,p]=(0,Ee.useState)(null),[f,m]=(0,Ee.useState)(null),[y,b]=(0,Ee.useState)(null),[g,h]=(0,Ee.useState)(0),[v,x]=(0,Ee.useState)(0),[S,k]=(0,Ee.useState)(""),[w,_]=(0,Ee.useState)("claude_code"),A=w==="codex"?"Codex":"Claude Code",[C,N]=(0,Ee.useState)(SX),[L,Q]=(0,Ee.useState)(!1),[B,K]=(0,Ee.useState)(!1),[T,O]=(0,Ee.useState)(null),I=(0,Ee.useRef)(null),P=(0,Ee.useRef)(!0),j=(0,Ee.useCallback)(async()=>{let $=await fetch(l),ee=await $.json().catch(()=>({}));if(!$.ok)throw new Error(at(ee,`Could not load code sessions (HTTP ${$.status}).`));return ee.code_sessions||[]},[l]);(0,Ee.useEffect)(()=>{let $=!1;return c(null),p(null),j().then(ee=>{if($)return;c(ee);let F=ee.find(me=>me.id===a)||ee.find(qs)||ee[0];p(me=>me??F?.id??null)}).catch(ee=>{$||(c([]),O(ee.message))}),()=>{$=!0}},[j]),(0,Ee.useEffect)(()=>{a!=null&&p(a)},[a]),(0,Ee.useEffect)(()=>{if(d==null)return;let $=!1,ee=null,F=[],me=0;m(null),b(null),P.current=!0;let et=async()=>{let rt=!0,ge=null;try{let ue=await fetch(`${l}/${d}?after=${F.length}`);ge=ue.status;let Fe=await ue.json().catch(()=>({}));if($)return;if(!ue.ok)throw new Error(at(Fe,`Could not load the session (HTTP ${ue.status}).`));let Je=Fe.code_session;F=KY(F,Je),me=0,b(null),m({...Je,events:F}),c(Tt=>sd(Tt||[],HY(Je),"id"));let ot=Je.evaluation_run_id&&Je.status==="succeeded"&&Je.diff&&!Je.verification?.error&&!["complete","failed"].includes(Je.verification?.status);SI(Je)&&!ot&&(rt=!1)}catch(ue){if($)return;me+=1,b(ue.message),e2(ge,me)&&(rt=!1)}rt&&!$&&(ee=setTimeout(et,1500))};return et(),()=>{$=!0,clearTimeout(ee)}},[l,d,g]);let M=(u||[]).find(qs)||null,W=M&&M.id!==d?M.id:null,Y=w==="codex"?sX(r):oX(t),z=Y?"not_connected":M?"busy":null;(0,Ee.useEffect)(()=>{if(W==null)return;let $=!1,ee=setTimeout(async()=>{try{let F=await j();$||c(F)}catch{}$||x(F=>F+1)},1500*2);return()=>{$=!0,clearTimeout(ee)}},[W,v,j]);let V=(0,Ee.useMemo)(()=>o2(f?.events),[f?.events]);(0,Ee.useLayoutEffect)(()=>{let $=I.current;$&&P.current&&($.scrollTop=$.scrollHeight)},[V.length]);let q=$=>{let ee=$.currentTarget;P.current=ee.scrollHeight-ee.scrollTop-ee.clientHeight<40},oe=AI(C.choice,C.custom).error||null,Me=$=>{N(ee=>{let F={...ee,...$};return w==="claude_code"&&KSe(F.choice,F.custom),F})},fe=async()=>{let $=S.trim();if(!(!$||z||L||oe)){Q(!0),O(null);try{let ee=await fetch(l,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(JY($,C.choice,C.custom,w))}),F=await ee.json().catch(()=>({}));if(!ee.ok)throw F.code_session&&(c(me=>sd(me||[],F.code_session,"id")),p(F.code_session.id)),new Error(at(F,`Could not start ${A} (HTTP ${ee.status}).`));c(me=>sd(me||[],F.code_session,"id")),p(F.code_session.id),k("")}catch(ee){O(ee.message)}finally{Q(!1)}}},le=async $=>{K(!0),O(null);try{let ee=await fetch(`${l}/${$.id}/cancel`,{method:"POST"}),F=await ee.json().catch(()=>({}));if(!ee.ok)throw new Error(at(F,`Could not cancel the session (HTTP ${ee.status}).`));c(me=>sd(me||[],F.code_session,"id")),m(me=>me&&me.id===F.code_session.id?{...me,...F.code_session}:me)}catch(ee){O(ee.message)}finally{K(!1)}},R=s?"text-gray-400":"text-gray-500",te=s?"text-white":"text-gray-900",He=s?"border-gray-700":"border-gray-200",_e=`px-3 py-1 text-sm rounded ${s?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,D=`underline ${s?"text-gray-300 hover:text-white":"text-gray-700 hover:text-gray-900"}`,G=`p-2 rounded text-xs border ${s?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`,E=f&&f.id===d?f:(u||[]).find($=>$.id===d)||null;return Ee.default.createElement("div",{className:`mt-2 p-3 rounded-lg border space-y-3 ${He}`},!o&&t?.mode==="sandbox_login"&&Ee.default.createElement(rf,{sandbox:e,onChange:n}),Ee.default.createElement("div",{className:"flex items-center justify-between"},Ee.default.createElement("p",{className:`text-sm font-medium ${te}`},i),Ee.default.createElement("p",{className:`text-xs ${R}`},"A session edits this checkout and never commits or pushes. Publishing is a separate step, below.")),o&&T&&Ee.default.createElement("div",{className:G},T),!o&&Ee.default.createElement("div",{className:"space-y-2"},Ee.default.createElement("label",{className:`flex items-center gap-2 text-xs ${R}`},"Agent",Ee.default.createElement("select",{"aria-label":"Coding agent",value:w,onChange:$=>{_($.target.value),N($.target.value==="claude_code"?SX():a2(null))},disabled:L,className:`px-2 py-1 border rounded ${s?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`},Ee.default.createElement("option",{value:"claude_code"},"Claude Code"),Ee.default.createElement("option",{value:"codex",disabled:!r?.supported},"Codex",r?.supported?"":" (backend unavailable)"))),Ee.default.createElement("textarea",{value:S,onChange:$=>k($.target.value),onKeyDown:$=>{$.key==="Enter"&&($.metaKey||$.ctrlKey)&&fe()},rows:3,maxLength:qSe,disabled:z==="not_connected"||L,placeholder:`What should ${A} do in this checkout?`,className:`w-full px-3 py-2 border rounded-lg text-sm disabled:opacity-60 ${s?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),Ee.default.createElement("div",{className:"flex flex-wrap items-center gap-2"},Ee.default.createElement("label",{htmlFor:`code-session-model-${e.session_id}`,className:`text-xs ${R}`},"Model"),Ee.default.createElement("select",{id:`code-session-model-${e.session_id}`,value:C.choice,onChange:$=>Me({choice:$.target.value}),disabled:L,className:`px-2 py-1 border rounded text-xs ${s?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`},ZY(w).map($=>Ee.default.createElement("option",{key:$.value,value:$.value},$.label))),C.choice===d0&&Ee.default.createElement("input",{type:"text",value:C.custom,onChange:$=>Me({custom:$.target.value}),disabled:L,maxLength:100,placeholder:w==="codex"?"Model id":"claude-sonnet-4-5","aria-label":"Model id","aria-invalid":!!oe,className:`flex-1 min-w-[10rem] px-2 py-1 border rounded text-xs font-mono ${s?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`})),oe&&C.custom.trim()&&Ee.default.createElement("p",{className:`text-xs ${s?"text-red-300":"text-red-700"}`},oe),Ee.default.createElement("div",{className:"flex items-center justify-between gap-3"},Ee.default.createElement("p",{className:`text-xs ${R}`},z==="not_connected"&&Ee.default.createElement(Ee.default.Fragment,null,Y.text,Y.loginHint&&Ee.default.createElement(Ee.default.Fragment,null," ",Ee.default.createElement("code",{className:"font-mono"},Y.loginHint)," ",Y.after)," ",n&&Ee.default.createElement("button",{type:"button",onClick:n,className:D},"Check again")),z==="busy"&&Ee.default.createElement(Ee.default.Fragment,null,"A session is ",M.status," in this checkout; wait for it to finish or cancel it."," ",M.id!==d&&Ee.default.createElement("button",{type:"button",onClick:()=>p(M.id),className:D},"Show it"))),Ee.default.createElement("button",{type:"button",onClick:fe,disabled:!!z||L||!S.trim()||!!oe,className:"shrink-0 px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600 disabled:opacity-50"},L?"Starting\u2026":`Run ${A}`)),T&&Ee.default.createElement("div",{className:G},T)),u&&u.length>0&&Ee.default.createElement("div",{className:"space-y-1"},Ee.default.createElement("p",{className:`text-xs font-medium uppercase tracking-wide ${R}`},"Sessions"),Ee.default.createElement("div",{className:"max-h-40 overflow-y-auto space-y-1"},u.map($=>{let{label:ee,tone:F}=fs($.status),me=$.id===d;return Ee.default.createElement("button",{key:$.id,type:"button",title:FY($),onClick:()=>me?h(et=>et+1):p($.id),className:`w-full text-left px-2 py-1.5 rounded flex items-center gap-2 text-sm ${me?s?"bg-gray-700":"bg-gray-200":s?"hover:bg-gray-800":"hover:bg-gray-100"}`},Ee.default.createElement(Ks,{tone:F},ee),Ee.default.createElement("span",{className:`text-xs ${R}`},$.runner==="codex"?"Codex":"Claude Code"),Ee.default.createElement("span",{className:`flex-1 truncate ${te}`},UY($.prompt)),Ee.default.createElement("span",{className:`shrink-0 text-xs font-mono ${R}`},EI($)),Ee.default.createElement("span",{className:`shrink-0 text-xs ${R}`},wo($.created_at)))}))),u===null&&Ee.default.createElement("p",{className:`text-xs ${R}`},"Loading sessions\u2026"),E&&Ee.default.createElement(VSe,{session:E,rows:V,loaded:!!(f&&f.id===E.id),detailError:y,cancelling:B,onCancel:()=>le(E),onReload:()=>h($=>$+1),transcriptRef:I,onTranscriptScroll:q,classes:{muted:R,strong:te,border:He,secondaryButton:_e,linkButton:D,errorBox:G}}))}function VSe({session:e,rows:t,loaded:r,detailError:n,cancelling:o,onCancel:a,onReload:i,transcriptRef:s,onTranscriptScroll:l,classes:u}){let{darkMode:c}=ut(),{muted:d,strong:p,border:f,secondaryButton:m,linkButton:y,errorBox:b}=u,{label:g,tone:h}=fs(e.status),v=qs(e),x=l0(e),S=BY(e),k=Number(e.dropped_events_count)||0;return Ee.default.createElement("div",{className:`pt-3 border-t space-y-2 ${f}`},Ee.default.createElement("div",{className:"flex items-center justify-between gap-3"},Ee.default.createElement("div",{className:"flex items-center gap-2 min-w-0"},Ee.default.createElement(Ks,{tone:h},g),Ee.default.createElement("span",{className:`text-xs truncate ${d}`},[kI(e),EI(e)].filter(Boolean).join(" \xB7 "))),Ee.default.createElement("div",{className:"flex items-center gap-2 shrink-0"},Ee.default.createElement("a",{href:Re(ms(e.conversation_id||e.id)),onClick:w=>{w.preventDefault(),lt(ms(e.conversation_id||e.id))},className:y,"data-testid":"code-session-open-interaction"},"Open in Interactions"),v&&Ee.default.createElement("button",{type:"button",onClick:a,disabled:o,className:`${m} shrink-0 disabled:opacity-50`},o?"Cancelling\u2026":"Cancel"))),Ee.default.createElement("p",{className:`text-xs whitespace-pre-wrap break-words max-h-24 overflow-y-auto ${d}`},e.prompt),n&&Ee.default.createElement("div",{className:b},n),Ee.default.createElement("div",{ref:s,onScroll:l,className:"max-h-96 overflow-y-auto rounded p-2 space-y-1.5",style:CX(c)},!r&&Ee.default.createElement("p",{className:`text-xs ${d}`},"Loading transcript\u2026"),r&&t.length===0&&Ee.default.createElement("p",{className:`text-xs ${d}`},e.status==="queued"?"Waiting for the sandbox to start the agent\u2026":v?"The agent is starting\u2026":S?"Cancelled before the agent started.":"No transcript was recorded."),t.map(w=>Ee.default.createElement(DI,{key:w.key,row:w,darkMode:c,muted:d,strong:p})),k>0&&Ee.default.createElement("p",{className:`text-xs italic ${d}`},k," later event",k===1?" was":"s were"," not kept: a transcript keeps its first 1,000.")),e.error_message&&Ee.default.createElement("pre",{className:`${b} whitespace-pre-wrap break-words font-mono max-h-48 overflow-y-auto`},e.error_message),e.evaluation_run_id&&Ee.default.createElement(h0,{session:e,evaluationId:e.evaluation_id,sandboxId:e.sandbox_session_id}),x&&r&&Ee.default.createElement(jI,{diff:e.diff,pending:wI(e),onReload:i,muted:d,linkButton:y,darkMode:c}))}function DI({row:e,darkMode:t,muted:r,strong:n}){let o=e.nested?`ml-4 pl-2 border-l ${t?"border-gray-700":"border-gray-200"}`:"";switch(e.kind){case"text":return Ee.default.createElement("p",{className:`text-sm whitespace-pre-wrap break-words ${n} ${o}`},e.text);case"user_text":return Ee.default.createElement("p",{className:`text-sm whitespace-pre-wrap break-words ${r} ${o}`},e.text);case"thinking":return Ee.default.createElement("p",{className:`text-xs italic whitespace-pre-wrap break-words line-clamp-3 ${r} ${o}`},e.text);case"tool_use":return Ee.default.createElement("p",{className:`text-xs font-mono break-words ${o}`},Ee.default.createElement("span",{className:`font-semibold ${t?"text-blue-300":"text-blue-700"}`},e.name),e.summary&&Ee.default.createElement("span",{className:r}," ",e.summary));case"tool_result":return Ee.default.createElement("pre",{className:`ml-4 text-xs font-mono whitespace-pre-wrap break-words ${e.isError?t?"text-red-400":"text-red-600":r} ${o}`,title:e.name?`${e.name} result`:void 0},e.text||"(no output)");case"result":return Ee.default.createElement("p",{className:`text-sm font-medium ${e.tone==="error"?t?"text-red-400":"text-red-600":t?"text-green-400":"text-green-600"}`},e.text);case"system":return Ee.default.createElement("p",{className:`text-xs ${r}`},e.text);case"raw":return Ee.default.createElement("pre",{className:`text-xs font-mono whitespace-pre-wrap break-words ${r} ${o}`},e.text);default:return Ee.default.createElement("pre",{className:`text-xs font-mono whitespace-pre-wrap break-words ${r} ${o}`},"[",e.label,"] ",e.text)}}var _X={add:{dark:"text-green-400",light:"text-green-700"},del:{dark:"text-red-400",light:"text-red-700"},hunk:{dark:"text-blue-300",light:"text-blue-700"},meta:{dark:"text-gray-400 font-semibold",light:"text-gray-500 font-semibold"},context:{dark:"text-gray-300",light:"text-gray-700"}};function jI({diff:e,pending:t,onReload:r,muted:n,linkButton:o,darkMode:a}){let i=(0,Ee.useMemo)(()=>u0(e),[e]);return e==null?t?Ee.default.createElement("p",{className:`text-xs ${n}`},"The diff is recorded once the agent has stopped."," ",Ee.default.createElement("button",{type:"button",onClick:r,className:o},"Refresh")):Ee.default.createElement("p",{className:`text-xs ${n}`},"No diff was recorded."):i.length===0?Ee.default.createElement("p",{className:`text-xs ${n}`},"No changes in the checkout."):Ee.default.createElement("div",{className:"space-y-1"},Ee.default.createElement("p",{className:`text-xs ${n}`},"Diff \xB7 ",YY(e)),Ee.default.createElement("pre",{className:"max-h-96 overflow-auto rounded p-2 text-xs font-mono",style:CX(a)},i.map((s,l)=>{let u=_X[s.kind]||_X.context;return Ee.default.createElement("div",{key:l,className:a?u.dark:u.light},s.text||" ")})))}var gt=Z(J());function p2(e){return(e.altKey?1:0)|(e.ctrlKey?2:0)|(e.metaKey?4:0)|(e.shiftKey?8:0)}var AX=["left","middle","right"];function EX(e,t,r){if(!r||!(r.width>0)||!(r.height>0))return null;let n=(e-r.left)/r.width,o=(t-r.top)/r.height;return n<0||n>1||o<0||o>1?null:{x:n,y:o}}function f2(e,t,r){let n=EX(t.clientX,t.clientY,r);if(!n)return null;let o={type:"mouse",action:e,...n,modifiers:p2(t)};return e==="move"?{...o,button:t.buttons&1?"left":"none"}:{...o,button:AX[t.button]||"left",clickCount:Math.min(Math.max(t.detail||1,1),3)}}function NX(e,t,r){let n=f2("up",e,t);return n||!r?n:{type:"mouse",action:"up",x:r.x,y:r.y,modifiers:p2(e),button:AX[e.button]||"left",clickCount:1}}var GSe=16,YSe=800;function TX(e,t){let r=EX(e.clientX,e.clientY,t);if(!r)return null;let n=e.deltaMode===1?GSe:e.deltaMode===2?YSe:1;return{type:"wheel",...r,deltaX:e.deltaX*n,deltaY:e.deltaY*n,modifiers:p2(e)}}function $I(e,t){return t.isComposing||t.key==="Process"||t.key==="Unidentified"||!t.key?null:{type:"key",action:e,key:t.key,code:t.code||"",keyCode:t.keyCode||void 0,modifiers:p2(t)}}function OX(e){return typeof e=="string"&&e!==""?{type:"text",text:e.slice(0,2e3)}:null}var XSe=600;function PX(e,t){return e.key!=="Escape"||e.repeat||t===null?!1:e.timeStamp-t<=XSe}var LI=32*1024;function MX(e){let t="";for(let r=0;r=1024*1024?`${Math.round(e/(1024*1024)*10)/10} MB`:e>=1024?`${Math.round(e/1024)} KB`:`${e} bytes`}function DX(e,t){let r=Array.from(e||[]);if(!t)return{error:"The page is no longer asking for a file."};if(r.length===0)return{error:"Choose a file to upload."};let n=t.multiple?t.max_files:1;if(r.length>n)return{error:n===1?"This field takes one file.":`This field takes at most ${n} files.`};let o=r.find(a=>a.size>t.max_file_bytes);return o?{error:`${o.name} is larger than ${IX(t.max_file_bytes)}.`}:{files:r.map(a=>({name:a.name,size:a.size})),total:r.reduce((a,i)=>a+i.size,0)}}function jX(e){if(!e)return null;let t=e.total>0?Math.min(100,Math.floor(e.sent/e.total*100)):100;return`Uploading ${IX(e.total)}\u2026 ${t}%`}function $X(e){return!e.fileChooser||e.control.mine?null:e.control.yours?"The page is asking for a file. Choose it in the view you are driving from.":`The page is asking ${e.control.by||"the person driving"} for a file.`}var w0={ready:!1,control:{held:!1,mine:!1,yours:!1,by:null,since:null},agent:{waiting:!1,tool:null,since:null,client:null},page:null,frameSize:null,fileChooser:null,personRequest:null,error:null};function LX(e,t){switch(t?.type){case"ready":return{...e,ready:!0,control:{...w0.control,...t.control},agent:{...w0.agent,...t.agent},page:t.page||null,fileChooser:t.file_chooser||null,personRequest:t.person_request||null};case"frame":return e.frameSize?.width===t.width&&e.frameSize?.height===t.height?e:{...e,frameSize:{width:t.width,height:t.height}};case"control":return{...e,control:{held:t.held,mine:t.mine,yours:t.yours===!0,by:t.by,since:t.since}};case"agent":return{...e,agent:{waiting:t.waiting,tool:t.tool,since:t.since,client:t.client||null}};case"person_requested":return{...e,personRequest:t.request||null};case"page":return{...e,page:t.page||null};case"file_chooser":return{...e,fileChooser:t.chooser||null};case"file_upload":return t.status==="failed"?{...e,error:t.message||"The upload failed"}:e;case"error":return{...e,error:t.message||"The browser refused that"};case"clear_error":return{...e,error:null};case"reset":return w0;default:return e}}function zX(e){if(!e.agent.waiting||!e.control.held)return null;let t=e.agent.tool?` (${e.agent.tool})`:"",r=e.agent.client||"The agent";return e.control.mine?`${r} is waiting for you to hand back control${t}.`:e.control.yours?`${r} is waiting for you to hand back control in your other view${t}.`:`${r} is waiting for ${e.control.by||"the person driving"} to hand back control${t}.`}function BX(e){let t=e.personRequest;return!t||e.control.held?null:`${t.client||"The agent"} needs a person: ${t.reason}`}function FX({by:e=null,takenAt:t,releasedAt:r,page:n=null}){let o=a=>Number.isFinite(a)?new Date(a).toISOString():null;return{by:e||null,taken_at:o(t),released_at:o(r),page_url:typeof n?.url=="string"&&/^https?:\/\//.test(n.url)?n.url:null}}function UX(e){return e.control.held?e.control.mine?"You are driving":e.control.yours?"You are driving in another view":`Held by ${e.control.by||"someone else"}`:null}function WX(e,{taking:t=!1}={}){let{held:r,yours:n}=e.control,o="Take over";return t?o="Taking over\u2026":r&&n&&(o="Continue driving here"),{label:o,disabled:t||r&&!n}}function HX(e){if(!e)return null;let t=e.tabs>1?` \xB7 tab ${e.tab} of ${e.tabs}`:"";return`${e.url||"a page with no address to show"}${t}`}var ZSe={1001:"The browser stopped.",4401:"The live view did not accept the ticket. Try again.",4408:"The live view timed out before it opened. Try again.",4429:"Too many people are watching this browser."};function qX(e,{requested:t=!1}={}){return t?null:ZSe[e]||"The live view lost its connection to the browser."}var JSe={starting:{label:"Starting",tone:"progress"},running:{label:"Running",tone:"success"},stopped:{label:"Stopped",tone:"neutral"},failed:{label:"Failed",tone:"error"}};function KX(e){return e?.status?JSe[e.status]||{label:e.status,tone:"neutral"}:null}function VX(e){return e?.status==="starting"||e?.status==="running"}function GX({inWindow:e=!1,modes:t=[]}={}){return{mode:e&&t.includes("headed")?"headed":"headless"}}async function YX(e,t){let r=await fetch(`/api/sandboxes/${encodeURIComponent(e)}/browser/tickets`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({mode:t})}),n=await r.json().catch(()=>({}));if(r.status===403&&n.code==="forbidden")throw new Error("You do not have permission to take over this browser.");if(!r.ok)throw new Error(at(n,`Could not open the live view (HTTP ${r.status}).`));return n}var XX=e=>(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()==="v",QSe=1024*1024,RSe=e=>new Promise(t=>{setTimeout(t,e)});function eke({chooser:e,upload:t,onFiles:r,onCancel:n}){let{darkMode:o}=ut(),a=o?"text-gray-400":"text-gray-500",i=o?"text-white":"text-gray-900",s=e.multiple;return gt.default.createElement("div",{role:"dialog","aria-label":"Choose a file for the page","data-testid":"live-view-file-chooser",className:`absolute inset-x-4 top-4 p-3 rounded border shadow space-y-2 ${o?"bg-gray-800 border-gray-600":"bg-white border-gray-300"}`},gt.default.createElement("p",{className:`text-sm font-medium ${i}`},"The page asked for ",s?"files":"a file"),gt.default.createElement("p",{className:`text-xs ${a}`},"Choose ",s?`up to ${e.max_files} files`:"one"," from this computer, or drop ",s?"them":"it"," on the view. ",e.accept?`The page takes ${e.accept}. `:"","Only the browser receives the files, and they stay in the sandbox until the browser stops."),t?gt.default.createElement("p",{className:`text-xs ${i}`,role:"status"},jX(t)):gt.default.createElement("input",{type:"file",multiple:s,accept:e.accept||void 0,onChange:l=>r(l.target.files),"aria-label":s?"Files for the page":"File for the page",className:`block text-xs ${i}`}),gt.default.createElement("button",{type:"button",onClick:n,className:`px-3 py-1 text-sm rounded ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},"Cancel"))}function S0({sessionId:e,headed:t=!1,watchOnOpen:r=!1,onHandBack:n=null,handBackLabel:o="Hand back"}){let{darkMode:a}=ut(),[i,s]=(0,gt.useReducer)(LX,w0),[l,u]=(0,gt.useState)("idle"),[c,d]=(0,gt.useState)(null),[p,f]=(0,gt.useState)(!1),[m,y]=(0,gt.useState)(null),b=(0,gt.useRef)(null),g=(0,gt.useRef)(!1),h=(0,gt.useRef)(0),v=(0,gt.useRef)(!1),x=(0,gt.useRef)(null),S=(0,gt.useRef)(null),k=(0,gt.useRef)({pending:null,decoding:!1}),w=(0,gt.useRef)({message:null,scheduled:!1}),_=(0,gt.useRef)(null),A=(0,gt.useRef)(null),C=(0,gt.useRef)(0),N=i.control.mine,L=(0,gt.useRef)(null),Q=(0,gt.useRef)(i);Q.current=i,(0,gt.useEffect)(()=>{if(N){L.current=i.control.since||Date.now();return}if(L.current===null)return;let F=L.current;L.current=null,n?.(FX({by:null,takenAt:F,releasedAt:Date.now(),page:Q.current.page}))},[N]);let B=(0,gt.useCallback)(F=>{let me=b.current;F&&me?.readyState===WebSocket.OPEN&&me.send(JSON.stringify(F))},[]),K=(0,gt.useCallback)(F=>{let me=k.current;if(me.pending=F,me.decoding)return;let et=()=>{let rt=me.pending;if(me.pending=null,me.decoding=!!rt,!rt)return;let ge=new Image;ge.onload=()=>{let ue=x.current;ue&&((ue.width!==ge.naturalWidth||ue.height!==ge.naturalHeight)&&(ue.width=ge.naturalWidth,ue.height=ge.naturalHeight),ue.getContext("2d")?.drawImage(ge,0,0)),et()},ge.onerror=et,ge.src=`data:image/jpeg;base64,${rt.data}`};et()},[]),T=(0,gt.useCallback)(()=>{h.current+=1;let F=b.current;if(!F){u("idle");return}v.current&&F.readyState===WebSocket.OPEN&&F.send(JSON.stringify({type:"hand_back"})),g.current=!0,F.close(1e3)},[]);(0,gt.useEffect)(()=>T,[T]);let O=async()=>{h.current+=1;let F=h.current;d(null),u("connecting");try{let{ticket:me,url:et}=await YX(e,"view");if(h.current!==F)return;let rt=new WebSocket(et);b.current=rt,g.current=!1,rt.onopen=()=>rt.send(JSON.stringify({type:"auth",ticket:me})),rt.onmessage=ge=>{let ue;try{ue=JSON.parse(ge.data)}catch{return}ue.type==="ready"&&u("open"),ue.type==="frame"&&K(ue),(ue.type==="file_upload"&&ue.status!=="progress"||ue.type==="file_chooser"&&!ue.chooser)&&(C.current+=1,y(null)),s(ue)},rt.onclose=ge=>{b.current===rt&&(b.current=null,C.current+=1,y(null),u("idle"),s({type:"reset"}),d(qX(ge.code,{requested:g.current})))}}catch(me){if(h.current!==F)return;u("idle"),d(me.message)}},I=(0,gt.useRef)(!1);(0,gt.useEffect)(()=>{!r||I.current||(I.current=!0,O())},[r]);let P=async()=>{s({type:"clear_error"}),f(!0);try{let{ticket:F}=await YX(e,"control");B({type:"take_control",ticket:F})}catch(F){d(F.message)}finally{f(!1)}},j=()=>{B({type:"hand_back"}),x.current?.blur()},M=async F=>{let me=i.fileChooser,et=DX(F,me);if(et.error){d(et.error);return}let rt=b.current;if(!rt||rt.readyState!==WebSocket.OPEN)return;C.current+=1;let ge=C.current;d(null),s({type:"clear_error"}),B({type:"file_upload",chooser:me.id,files:et.files});let ue=0;y({sent:ue,total:et.total});try{for(let Fe of Array.from(F))for(let Je=0;JeQSe&&C.current===ge;)await RSe(50);if(C.current!==ge||rt.readyState!==WebSocket.OPEN)return;let ot=new Uint8Array(await Fe.slice(Je,Je+LI).arrayBuffer());B({type:"file_chunk",chooser:me.id,data:MX(ot)}),ue+=ot.length,y({sent:ue,total:et.total})}}catch(Fe){d(`Could not read the file: ${Fe.message}`),W()}},W=()=>{C.current+=1,y(null),i.fileChooser&&B({type:"file_cancel",chooser:i.fileChooser.id})},Y=N&&!!i.fileChooser,z=Y?{onDragOver:F=>{F.preventDefault(),F.dataTransfer.dropEffect="copy"},onDrop:F=>{F.preventDefault(),m||M(F.dataTransfer.files)}}:{};(0,gt.useEffect)(()=>{v.current=N,N?x.current?.focus():x.current?.blur()},[N]),(0,gt.useEffect)(()=>{let F=x.current;if(!F||!N)return;let me=et=>{et.preventDefault(),B(TX(et,F.getBoundingClientRect()))};return F.addEventListener("wheel",me,{passive:!1}),()=>F.removeEventListener("wheel",me)},[N,B,l]);let V=()=>x.current?.getBoundingClientRect(),q=F=>{F&&(_.current={x:F.x,y:F.y},B(F))},oe=N?{onMouseDown:F=>{F.preventDefault(),x.current?.focus(),q(f2("down",F,V())),window.addEventListener("mouseup",me=>q(NX(me,V(),_.current)),{once:!0})},onMouseMove:F=>{let me=w.current;me.message=f2("move",F,V()),!me.scheduled&&(me.scheduled=!0,requestAnimationFrame(()=>{me.scheduled=!1,q(me.message),me.message=null}))},onContextMenu:F=>F.preventDefault(),onKeyDown:F=>{if(PX(F,A.current)){F.preventDefault(),A.current=null,S.current?.focus();return}if(A.current=F.key==="Escape"&&!F.repeat?F.timeStamp:null,XX(F))return;let me=$I("down",F);me&&(F.preventDefault(),B(me))},onKeyUp:F=>{if(XX(F))return;let me=$I("up",F);me&&(F.preventDefault(),B(me))},onPaste:F=>{F.preventDefault(),B(OX(F.clipboardData?.getData("text/plain")))}}:{},Me=a?"text-gray-400":"text-gray-500",fe=a?"text-white":"text-gray-900",le=`px-3 py-1 text-sm rounded disabled:opacity-50 ${a?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,R="px-3 py-1 text-sm rounded text-white bg-blue-600 hover:bg-blue-700 disabled:opacity-50",te=zX(i),He=BX(i),_e=UX(i),D=WX(i,{taking:p}),G=HX(i.page),E=$X(i),$=l==="open",{frameSize:ee}=i;return gt.default.createElement("div",{className:"space-y-2"},gt.default.createElement("div",{className:"flex flex-wrap items-center gap-2"},l==="idle"?gt.default.createElement("button",{type:"button",onClick:O,className:le},"Watch live"):gt.default.createElement("button",{type:"button",onClick:T,className:le},"Stop watching"),$&&(N?gt.default.createElement("button",{ref:S,type:"button",onClick:j,className:R},o):gt.default.createElement("button",{ref:S,type:"button",onClick:P,disabled:D.disabled,className:R},D.label)),_e&>.default.createElement("span",{className:`text-xs font-medium ${fe}`},_e),l==="connecting"&>.default.createElement("span",{className:`text-xs ${Me}`},"Connecting\u2026")),c&>.default.createElement("p",{className:`text-xs ${Me}`,role:"status"},c),i.error&>.default.createElement("p",{className:`text-xs ${a?"text-red-400":"text-red-600"}`,role:"alert"},i.error),He&>.default.createElement("p",{role:"alert","data-testid":"live-view-person-request",className:`p-2 rounded text-xs border ${a?"bg-blue-900/20 border-blue-800 text-blue-200":"bg-blue-50 border-blue-200 text-blue-800"}`},He,$?" Take over to help, then hand back.":" Watch live, then take over to help."),te&>.default.createElement("p",{role:"status",className:`p-2 rounded text-xs border ${a?"bg-amber-900/20 border-amber-800 text-amber-300":"bg-amber-50 border-amber-200 text-amber-800"}`},te),l!=="idle"&>.default.createElement("div",{className:"space-y-1"},G&>.default.createElement("p",{className:`text-xs font-mono truncate ${Me}`,title:G},G),E&>.default.createElement("p",{className:`text-xs ${Me}`,role:"status"},E),gt.default.createElement("div",{className:"relative","data-testid":"live-view-frame",...z},gt.default.createElement("canvas",{ref:x,tabIndex:N?0:-1,role:N?"application":"img","aria-label":N?"The sandbox's browser: your mouse and keys go to it. Press Escape twice to leave it.":"Live view of the sandbox's browser",className:`block w-full rounded border bg-black ${N?"cursor-default outline-none focus:ring-2 focus:ring-blue-500":""} ${a?"border-gray-700":"border-gray-200"}`,style:{aspectRatio:ee?`${ee.width} / ${ee.height}`:"16 / 10"},...oe}),Y&>.default.createElement(eke,{chooser:i.fileChooser,upload:m,onFiles:F=>{M(F)},onCancel:W})),N&>.default.createElement("p",{className:`text-xs ${Me}`},"Your mouse and keys go to the browser, and the agent waits until you hand back. Press Escape twice to move focus out of the view. That, or clicking outside it, only stops your keys reaching the browser: the agent keeps waiting until you press Hand back or Stop watching.")),t&>.default.createElement("p",{className:`text-xs ${Me}`},"This browser also has a window open on this machine. Clicking or typing in that window changes the page too, but the agent does not wait for it: take over here first."))}var tke={settings:"Started from Settings",boot_fix:"Fixing a failed boot",evaluation_fix:"Implementing an evaluation fix",chat:"Chat"};function rke({turn:e,sandboxId:t,darkMode:r,muted:n,strong:o}){let a=(0,Ye.useMemo)(()=>o2(e.events),[e.events]),[i,s]=(0,Ye.useState)(void 0),l=fs(e.status),u=async()=>{if(i!==void 0){s(void 0);return}let c=await fetch(`/api/sandboxes/${encodeURIComponent(t)}/code_sessions/${e.id}?after=1000000000`),d=await c.json().catch(()=>({}));s(c.ok?d.code_session?.diff??null:null)};return Ye.default.createElement("li",{className:`rounded border p-3 space-y-2 ${r?"border-gray-700":"border-gray-200"}`,"data-testid":"code-interaction-turn"},Ye.default.createElement("div",{className:"flex flex-wrap items-center gap-2"},Ye.default.createElement(Ks,{tone:l.tone},l.label),Ye.default.createElement("span",{className:`text-xs ${n}`},gX(e))),e.context_note&&Ye.default.createElement("p",{className:`text-xs italic ${n}`,title:"Sent to Claude Code ahead of the message"},"Dashboard note: ",e.context_note),Ye.default.createElement("p",{className:`text-sm whitespace-pre-wrap break-words font-medium ${o}`},e.prompt),Ye.default.createElement("div",{className:"space-y-1"},a.length===0&&Ye.default.createElement("p",{className:`text-xs ${n}`},qs(e)?"Waiting for Claude Code\u2026":"No transcript was recorded."),a.map(c=>Ye.default.createElement(DI,{key:c.key,row:c,darkMode:r,muted:n,strong:o}))),e.error_message&&Ye.default.createElement("p",{className:`text-xs ${r?"text-red-400":"text-red-600"}`},e.error_message),!qs(e)&&Ye.default.createElement("div",{className:"space-y-1"},Ye.default.createElement("button",{type:"button",onClick:u,className:`text-xs underline ${n}`},i===void 0?"Show the checkout\u2019s diff after this turn":"Hide the diff"),i!==void 0&&Ye.default.createElement(jI,{diff:i,pending:!1,muted:n,darkMode:r,linkButton:"underline"})))}function zI({rootId:e,onBack:t=null}){let{darkMode:r}=ut(),[n,o]=(0,Ye.useState)(null),[a,i]=(0,Ye.useState)(null),[s,l]=(0,Ye.useState)(""),[u,c]=(0,Ye.useState)(!1),[d,p]=(0,Ye.useState)(null),[f,m]=(0,Ye.useState)(oke),y=(0,Ye.useRef)(null);y.current=n;let b=(0,Ye.useRef)(null),g=(0,Ye.useRef)(null),h=(0,Ye.useRef)(null),v=ike(g,!!n),x=(0,Ye.useRef)(null),[S,k]=(0,Ye.useState)(nke),[w,_]=(0,Ye.useState)(!1),A=f&&!!v,C=me=>{k(me),ZX(me)},N=(0,Ye.useRef)(null),L=(0,Ye.useRef)(S);L.current=S;let Q=me=>{me.button!==0||!x.current||(me.preventDefault(),me.currentTarget.setPointerCapture?.(me.pointerId),N.current=x.current.getBoundingClientRect(),_(!0))},B=me=>{if(!N.current)return;let et=xX(me.clientX,N.current);L.current=et,k(et)},K=me=>{N.current&&(me.currentTarget.releasePointerCapture?.(me.pointerId),N.current=null,_(!1),ZX(L.current))},T=me=>{let et=bX(S,me.key);et!==null&&(me.preventDefault(),C(et))},O=me=>{m(et=>{let rt=typeof me=="function"?me(et):me;return ake(rt),rt})},I=(0,Ye.useCallback)(async()=>{let me=pX(y.current?.turns),et=await fetch(`/api/interactions/code-${e}${me?`?${me}`:""}`),rt=await et.json().catch(()=>({}));if(!et.ok){i(at(rt,`Could not load the conversation (HTTP ${et.status}).`));return}i(null),o(ge=>fX(ge,rt.interaction))},[e]);(0,Ye.useEffect)(()=>{o(null),y.current=null,I()},[I]);let P=mX(n);(0,Ye.useEffect)(()=>{if(!P)return;let me=setInterval(()=>{I()},uX);return()=>clearInterval(me)},[P,I]);let j=n?.turns?.length||0,M=n?.turns?.reduce((me,et)=>me+(et.events?.length||0),0)||0,W=(0,Ye.useRef)(!0);(0,Ye.useEffect)(()=>{let me=h.current;me&&W.current&&(me.scrollTop=me.scrollHeight)},[j,M,v]);let Y=()=>{let me=h.current;me&&(W.current=me.scrollHeight-me.scrollTop-me.clientHeight<48)},z=n?.sandbox_session_id,V=n?.turns?.[n.turns.length-1],q=hX(n),oe=n?.browser?.status==="running",Me=async me=>{me?.preventDefault();let et=s.trim();if(!(!et||!z)){c(!0),i(null);try{let rt=await fetch(`/api/sandboxes/${encodeURIComponent(z)}/code_sessions/${e}/messages`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:et,...d?{handoff:d}:{}})}),ge=await rt.json().catch(()=>({}));if(!rt.ok)throw new Error(at(ge,`The message was not sent (HTTP ${rt.status}).`));l(""),p(null),await I()}catch(rt){i(rt.message)}finally{c(!1)}}},fe=async()=>{let me=(n?.turns||[]).filter(qs);for(let et of me)await fetch(`/api/sandboxes/${encodeURIComponent(z)}/code_sessions/${et.id}/cancel`,{method:"POST"});await I()},le=me=>{p(me),l(et=>et||"I've handed the browser back. "),b.current?.focus()},R=r?"text-gray-400":"text-gray-500",te=r?"text-white":"text-gray-900",He=`rounded-lg border p-4 ${r?"bg-gray-900 border-gray-700":"bg-white border-gray-200"}`,_e=`px-3 py-1 text-sm rounded disabled:opacity-50 ${r?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,D="px-3 py-1 text-sm rounded text-white bg-red-600 hover:bg-red-700 disabled:opacity-50",G=`p-2 rounded text-sm border ${r?"bg-blue-900/20 border-blue-800 text-blue-200":"bg-blue-50 border-blue-200 text-blue-800"}`;if(!n)return Ye.default.createElement("div",{className:He,"data-testid":"code-interaction"},a?Ye.default.createElement("p",{className:`text-sm ${r?"text-red-400":"text-red-600"}`},a):Ye.default.createElement("p",{className:`text-sm ${R}`},"Loading\u2026"));let E=fs(n.status),$=`flex items-center justify-between gap-2 px-4 py-2 border-b ${r?"border-gray-700":"border-gray-200"}`,ee=`rounded-lg border flex flex-col min-h-0 ${r?"bg-gray-900 border-gray-700":"bg-white border-gray-200"}`,F=`px-2 py-0.5 text-xs rounded ${r?"text-gray-300 hover:bg-gray-700":"text-gray-600 hover:bg-gray-100"}`;return Ye.default.createElement("div",{ref:g,className:"flex flex-col gap-3",style:v?{height:v}:void 0,"data-testid":"code-interaction"},Ye.default.createElement("div",{className:"flex flex-wrap items-start justify-between gap-3 shrink-0"},Ye.default.createElement("div",{className:"space-y-1"},t&&Ye.default.createElement("button",{type:"button",onClick:t,className:`text-xs ${R}`},"\u2190 Interactions"),Ye.default.createElement("h2",{className:`text-xl font-bold ${te}`},n.display_name),Ye.default.createElement("div",{className:"flex flex-wrap items-center gap-2"},Ye.default.createElement(Ks,{tone:E.tone},E.label),Ye.default.createElement("span",{className:`text-xs ${R}`},tke[n.origin]||n.origin," \xB7 ",u2(n)),n.project&&Ye.default.createElement("a",{href:Re(`/projects/${n.project.id}`),onClick:me=>{me.preventDefault(),lt(`/projects/${n.project.id}`)},className:"text-xs underline"},n.project.name))),Ye.default.createElement("div",{className:"flex items-center gap-2"},P&&Ye.default.createElement("button",{type:"button",onClick:fe,className:_e},"Stop"),Ye.default.createElement("button",{type:"button",onClick:()=>O(me=>!me),className:_e,"aria-pressed":f,"aria-controls":`code-interaction-${e}-browser`},f?"Hide browser":"Show browser"))),q&&!f&&Ye.default.createElement("p",{role:"alert",className:`${G} shrink-0`},"Claude Code needs you: ",q.reason," ",Ye.default.createElement("button",{type:"button",onClick:()=>O(!0),className:"underline"},"Show the browser")),Ye.default.createElement("div",{ref:x,className:`flex-1 min-h-0 flex flex-col gap-4 ${A?"lg:flex-row lg:gap-0":""} ${w?"select-none cursor-col-resize":""}`},Ye.default.createElement("section",{className:`${ee} lg:h-full min-w-0`,style:A?{flex:`0 0 ${S}%`}:void 0,"aria-label":"Conversation",id:`code-interaction-${e}-conversation`},Ye.default.createElement("div",{className:$},Ye.default.createElement("span",{className:`text-sm font-medium ${te}`},"Conversation"),!f&&Ye.default.createElement("button",{type:"button",onClick:()=>O(!0),className:F},"Show browser \u203A")),Ye.default.createElement("ol",{ref:h,onScroll:Y,className:"space-y-3 p-4 flex-1 min-h-0 overflow-y-auto"},n.turns.map(me=>Ye.default.createElement(rke,{key:me.id,turn:me,sandboxId:z,darkMode:r,muted:R,strong:te}))),Ye.default.createElement("form",{onSubmit:Me,className:`space-y-2 p-4 border-t shrink-0 ${r?"border-gray-700":"border-gray-200"}`},Ye.default.createElement("label",{htmlFor:`code-interaction-${e}-message`,className:`text-xs font-medium ${te}`},"Message ",f0(n)),Ye.default.createElement("textarea",{id:`code-interaction-${e}-message`,ref:b,value:s,onChange:me=>l(me.target.value),rows:3,className:`w-full text-sm rounded border p-2 ${r?"bg-gray-800 border-gray-600 text-white":"bg-white border-gray-300"}`,placeholder:V?.result?"Reply, or ask for the next change":"What should happen next?"}),Ye.default.createElement("div",{className:"flex flex-wrap items-center justify-between gap-2"},Ye.default.createElement("span",{className:`text-xs ${R}`,role:"status"},yX(n,{handoff:d})),Ye.default.createElement("button",{type:"submit",className:D,disabled:u||!s.trim()},u?"Sending\u2026":"Send")),a&&Ye.default.createElement("p",{className:`text-xs ${r?"text-red-400":"text-red-600"}`,role:"alert"},a))),A&&Ye.default.createElement("div",{role:"separator","aria-orientation":"vertical","aria-label":"Resize the conversation and the browser","aria-controls":`code-interaction-${e}-conversation`,"aria-valuenow":Math.round(S),"aria-valuemin":c2,"aria-valuemax":d2,tabIndex:0,onPointerDown:Q,onPointerMove:B,onPointerUp:K,onPointerCancel:K,onKeyDown:T,onDoubleClick:()=>C(tf),className:"group hidden lg:flex w-4 shrink-0 cursor-col-resize items-center justify-center touch-none focus:outline-none","data-testid":"code-interaction-separator"},Ye.default.createElement("span",{className:`h-12 w-1 rounded-full transition-colors ${w?"bg-red-500":r?"bg-gray-600 group-hover:bg-gray-400 group-focus-visible:bg-red-500":"bg-gray-300 group-hover:bg-gray-500 group-focus-visible:bg-red-500"}`})),f&&Ye.default.createElement("section",{id:`code-interaction-${e}-browser`,className:`${ee} lg:h-full min-w-0 flex-1`,"aria-label":"The sandbox\u2019s browser","data-testid":"code-interaction-browser"},Ye.default.createElement("div",{className:$},Ye.default.createElement("span",{className:`text-sm font-medium ${te}`},"The sandbox\u2019s browser"),Ye.default.createElement("button",{type:"button",onClick:()=>O(!1),className:F,"aria-label":"Hide the browser"},"Hide \xD7")),Ye.default.createElement("div",{className:"p-4 space-y-2 flex-1 min-h-0 overflow-y-auto"},q&&Ye.default.createElement("p",{role:"alert",className:G},f0(n)," needs you: ",q.reason),oe?Ye.default.createElement(S0,{sessionId:z,watchOnOpen:!0,onHandBack:le,handBackLabel:`Hand back to ${f0(n)}`}):Ye.default.createElement("p",{className:`text-xs ${R}`},"The browser is not running."," ",n.project?Ye.default.createElement("a",{href:Re(`/projects/${n.project.id}?tab=browser`),onClick:me=>{me.preventDefault(),lt(`/projects/${n.project.id}?tab=browser`)},className:"underline"},"Start it from the project"):"Start it from Settings \u2192 Integrations",", and Claude Code reaches it from its next turn.")))))}var JX="activeagents.codeInteraction.showBrowser",QX="activeagents.codeInteraction.split";function nke(){try{let e=window.localStorage.getItem(QX);return e===null?tf:p0(e)}catch{return tf}}function ZX(e){try{window.localStorage.setItem(QX,String(e))}catch{}}function oke(){let e=null;try{e=window.localStorage.getItem(JX)}catch{}return vX(window.location.search,e)}function ake(e){try{window.localStorage.setItem(JX,e?"1":"0")}catch{}let t=new URL(window.location.href);t.searchParams.set("browser",e?"1":"0"),window.history.replaceState(window.history.state,"",t)}function ike(e,t){let[r,n]=(0,Ye.useState)(null);return(0,Ye.useLayoutEffect)(()=>{let o=window.matchMedia("(min-width: 1024px)"),a=()=>{let i=e.current;if(!i||!o.matches){n(null);return}let s=i.getBoundingClientRect().top+window.scrollY;n(Math.max(420,Math.floor(window.innerHeight-s-24)))};return a(),window.addEventListener("resize",a),o.addEventListener("change",a),()=>{window.removeEventListener("resize",a),o.removeEventListener("change",a)}},[e,t]),r}var RX=Z(J());function ld({kind:e,id:t,title:r="Replay this session",testId:n="replay-link",style:o}){let a=dh(e,t);return a?RX.default.createElement("a",{href:Re(a),"data-testid":n,title:r,onClick:i=>{i.stopPropagation(),!(i.metaKey||i.ctrlKey||i.shiftKey||i.button!==0)&&(i.preventDefault(),lt(a))},style:{fontFamily:U,fontSize:11,color:"var(--color-info)",textDecoration:"none",whiteSpace:"nowrap",...o}},"replay ->"):null}var ske=e=>{let t=null;if((e?.generations||[]).forEach(a=>{let i=a.tokens||{},s=(i.input||0)+(i.output||0);s>0&&(!t||s>t.total)&&(t={input:i.input||0,output:i.output||0,cached:i.cached||0,thinking:i.thinking||0,model:a.model,total:s})}),!t)return null;let r=nd(e?.instructions),n=0;(e?.messages||[]).forEach(a=>{a.role==="tool"&&(n+=nd(a.content)+nd(a.tool_arguments))}),n=Math.min(n,t.input);let o=Math.max(t.input-r-n,0);return{used:t.total,limit:Yx(t.model),cached:t.cached,thinking:t.thinking,segments:[{key:"messages",label:"Messages",tokens:o},{key:"tool_results",label:"Tool results",tokens:n},{key:"instructions",label:"Instructions",tokens:r},{key:"output",label:"Generated output",tokens:t.output}]}},eZ=["#6366f1","#10b981","#f59e0b","#ec4899","#3b82f6","#8b5cf6","#14b8a6","#f97316"],lke=[{id:"recent",label:"Recent"},{id:"tokens",label:"Tokens"},{id:"messages",label:"Messages"}],uke=[{id:"conversation",label:"Conversation",hint:"Messages, tool calls and responses in order"},{id:"spans",label:"Spans",hint:"Each generation as a trace \u2014 waterfall, span details, timings"}],cke=3e4,ju=e=>e==null?"0":e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString(),tZ=e=>{if(!e)return"";let t=Math.floor((Date.now()-new Date(e).getTime())/1e3);return t<60?"just now":t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`};function dke({generation:e,darkMode:t,maxMs:r,expanded:n,onToggle:o}){let a=Jn(t),[i,s]=(0,xe.useState)(null),[l,u]=(0,xe.useState)(!1),c=e.trace_id,d=(e.duration_seconds||0)*1e3;(0,xe.useEffect)(()=>{if(!c)return;let m=!0;return fetch(`/api/traces/${encodeURIComponent(c)}`).then(y=>y.ok?y.json():Promise.reject(new Error("not found"))).then(({trace:y})=>m&&s(y)).catch(()=>m&&u(!0)),()=>{m=!1}},[c]);let p=!!i,f=(i?.spans||[]).length;return xe.default.createElement("div",{className:`rounded-lg px-2 py-1.5 -mx-2 transition-colors ${p?t?"hover:bg-white/5":"hover:bg-gray-100":""}`,style:n?{background:a.hoverBg}:void 0},xe.default.createElement("div",{className:p?"cursor-pointer":void 0,onClick:p?o:void 0,title:p?`${f} spans \u2014 click for the trace`:void 0},xe.default.createElement("div",{className:"flex flex-wrap items-center gap-3 text-xs font-mono",style:{color:a.textSecondary}},xe.default.createElement("span",{title:e.cache_hit?`${ju(e.tokens.cached)} cached prompt tokens`:"No prompt cache hit",style:{color:e.cache_hit?a.good:a.textMuted}},e.cache_hit?"\u26A1 cache hit":"\u25CF generated"),e.thinking&&xe.default.createElement("span",{className:"text-amber-500",title:`${ju(e.tokens.thinking)} thinking tokens`},"\u{1F9E0} ",ju(e.tokens.thinking)),xe.default.createElement("span",null,e.model||"unknown-model"),e.provider&&xe.default.createElement("span",null,e.provider),xe.default.createElement("span",{className:"text-blue-500"},"in:",ju(e.tokens.input)),xe.default.createElement("span",{className:"text-green-500"},"out:",ju(e.tokens.output)),e.finish_reason&&xe.default.createElement("span",null,e.finish_reason),e.duration_seconds!=null&&xe.default.createElement("span",null,Qn(d)),c&&xe.default.createElement("a",{href:Re(`/traces?trace=${c}`),title:`${c} \u2014 open in Traces`,style:{color:a.link},className:"hover:underline",onClick:m=>m.stopPropagation()},"trace:",c.slice(0,8)," \u2192"),l&&xe.default.createElement("span",{style:{color:a.textMuted}},"trace unavailable")),xe.default.createElement("div",{className:"flex items-center gap-2 mt-1"},c&&!l?xe.default.createElement(pI,{trace:i,darkMode:t}):d>0?xe.default.createElement("div",{className:"rounded flex-1",style:{height:"8px",background:a.trackBg}},xe.default.createElement("div",{className:"rounded",style:{height:"8px",width:`${Math.max(d/r*100,2)}%`,background:"#ef4444"}})):null,p&&xe.default.createElement(xe.default.Fragment,null,xe.default.createElement("span",{className:"font-mono flex-shrink-0",style:{fontSize:"10px",color:a.textMuted}},f," ",f===1?"span":"spans"),xe.default.createElement(Zp,{open:n,darkMode:t,size:12})))),n&&i&&xe.default.createElement("div",{className:"mt-2 rounded-lg border p-3",style:{background:a.cardBg,borderColor:a.cardBorder}},xe.default.createElement(e0,{trace:i,darkMode:t,compact:!0})))}function $u({agentId:e=null,embedded:t=!1}){let{darkMode:r}=ut(),[n,o]=(0,xe.useState)([]),[a,i]=(0,xe.useState)(!0),[s,l]=(0,xe.useState)(null),[u,c]=(0,xe.useState)(null),[d,p]=(0,xe.useState)({}),{timeWindow:f}=xl(),m=!t&&!e,y=()=>m?cX(Rn(),window.location.search):{view:"list",source:"all",project:null,codeId:null},[b,g]=(0,xe.useState)(y),[h,v]=(0,xe.useState)([]),{source:x,project:S}=b;(0,xe.useEffect)(()=>{if(!m)return;let z=()=>g(y());return window.addEventListener("popstate",z),window.addEventListener("dashboard:navigate",z),()=>{window.removeEventListener("popstate",z),window.removeEventListener("dashboard:navigate",z)}},[m]),(0,xe.useEffect)(()=>{m&&fetch("/api/projects").then(z=>z.ok?z.json():{projects:[]}).then(z=>v(z.projects||[])).catch(()=>{})},[m]);let k=z=>{id(z),g(y())},w=z=>k(l2({source:x,project:S,...z})),_=z=>k(ms(z));(0,xe.useEffect)(()=>{if(b.view!=="latest")return;let z=OI({source:x==="all"?"claude_code":x,project:S});fetch(`/api/interactions?${z}`).then(V=>V.json()).then(V=>{let q=dX(V.interactions),oe=q?ms(ef(q.id)):l2({source:x,project:S});window.history.replaceState({},"",Re(oe)),g(y())}).catch(()=>{})},[b.view,x,S]);let A=(0,xe.useCallback)(async()=>{try{let z=await fetch(`/api/interactions?${OI({minutes:f.minutes,agentId:e,source:x,project:S})}`);if(!z.ok)throw new Error(`Request failed (${z.status})`);let V=await z.json();o(V.interactions||[]),l(null)}catch(z){l(z.message)}finally{i(!1)}},[f.minutes,e,x,S]);(0,xe.useEffect)(()=>{A();let z=setInterval(A,cke);return()=>clearInterval(z)},[A]);let[C,N]=(0,xe.useState)("recent"),L=(0,xe.useMemo)(()=>{let z=[...new Set(n.map(V=>V.display_name).filter(Boolean))].sort();return Object.fromEntries(z.map((V,q)=>[V,eZ[q%eZ.length]]))},[n]),Q=(0,xe.useMemo)(()=>{let z=n.reduce((q,oe)=>q+(oe.tokens?.total||0),0),V=new Set(n.map(q=>q.display_name).filter(Boolean));return{interactions:n.length,tokens:z,agents:V.size,avgTokens:n.length?Math.round(z/n.length):0}},[n]),B=(0,xe.useMemo)(()=>{if(n.length===0)return[];let z=Date.now(),V=f.bucketSeconds*1e3,q=Math.max(1,Math.round(f.minutes*60/f.bucketSeconds)),oe=Object.keys(L);return Array.from({length:q},(Me,fe)=>{let le=z-(q-1-fe)*V,R=le-V,te=n.filter(He=>{let _e=new Date(He.last_activity_at).getTime();return _e>=R&&_e1440?new Date(le).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit"}):new Date(le).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),...Object.fromEntries(oe.map(He=>[He,te.filter(_e=>_e.display_name===He).length]))}})},[n,L,f]),K=Math.max(0,Math.ceil(B.length/6)-1),T=(0,xe.useCallback)(z=>{let V=[...z];switch(C){case"tokens":return V.sort((q,oe)=>(oe.tokens?.total||0)-(q.tokens?.total||0));case"messages":return V.sort((q,oe)=>(oe.message_count||0)-(q.message_count||0));default:return V.sort((q,oe)=>String(oe.last_activity_at).localeCompare(String(q.last_activity_at)))}},[C]),O=(0,xe.useMemo)(()=>{let z=new Map;n.forEach(q=>{let oe=q.agent_name||q.agent?.name||"Unattributed",Me=q.action_name,fe=`${oe}#${Me||""}`;z.has(fe)||z.set(fe,{key:fe,title:Me?`${oe} ${Me.charAt(0).toUpperCase()}${Me.slice(1)} Agent Interactions`:`${oe} Interactions`,sessions:[],tokens:0,lastActivity:q.last_activity_at});let le=z.get(fe);le.sessions.push(q),le.tokens+=q.tokens?.total||0,q.last_activity_at>le.lastActivity&&(le.lastActivity=q.last_activity_at)});let V=[...z.values()].map(q=>({...q,sessions:T(q.sessions)}));return C==="tokens"?V.sort((q,oe)=>oe.tokens-q.tokens):C==="messages"?V.sort((q,oe)=>oe.sessions.length-q.sessions.length):V.sort((q,oe)=>String(oe.lastActivity).localeCompare(String(q.lastActivity)))},[n,C,T]),I=async z=>{if(m&&ef(z)){_(ef(z));return}if(u===z){c(null);return}if(c(z),!d[z])try{let V=await fetch(`/api/interactions/${z}`);if(V.ok){let q=await V.json();p(oe=>({...oe,[z]:q.interaction}))}}catch{}},[P,j]=(0,xe.useState)({}),[M,W]=ch(),Y=Jn(r);return m&&b.view==="conversation"?xe.default.createElement(zI,{rootId:b.codeId,onBack:()=>k(l2({source:x,project:S}))}):a?xe.default.createElement("div",{className:"flex items-center justify-center h-64"},xe.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"})):xe.default.createElement("div",{className:"space-y-6"},xe.default.createElement("div",{className:"flex items-start justify-between"},!t&&xe.default.createElement("div",null,xe.default.createElement("h1",{className:"text-2xl font-bold",style:{color:Y.textPrimary}},"Interactions"),xe.default.createElement("p",{className:"text-sm mt-1",style:{color:Y.textSecondary}},"Persisted conversation streams per agent \u2014 messages, generations and provenance")),xe.default.createElement("div",{className:"flex items-center gap-3"},xe.default.createElement("div",{className:"flex items-center rounded-lg p-1",style:{background:r?"rgba(255,255,255,0.06)":"#f3f4f6"}},xe.default.createElement("span",{className:"text-xs px-1",style:{color:Y.textMuted}},"Sort"),lke.map(z=>xe.default.createElement("button",{key:z.id,onClick:()=>N(z.id),className:"px-2 py-1 text-xs rounded transition-colors",style:C===z.id?{background:r?"#2a2a2a":"#ffffff",color:Y.textPrimary,boxShadow:r?"none":"0 1px 2px rgba(0,0,0,0.08)"}:{color:Y.textSecondary}},z.label))),xe.default.createElement(bl,null),m&&xe.default.createElement(n0,null))),m&&xe.default.createElement("div",{className:"flex flex-wrap items-center gap-3","data-testid":"interactions-filters"},xe.default.createElement("div",{className:"flex items-center rounded-lg p-1",role:"group","aria-label":"Source",style:{background:r?"rgba(255,255,255,0.06)":"#f3f4f6"}},NI.map(z=>xe.default.createElement("button",{key:z.id,type:"button",onClick:()=>w({source:z.id}),"aria-pressed":x===z.id,className:"px-2 py-1 text-xs rounded transition-colors",style:x===z.id?{background:r?"#2a2a2a":"#ffffff",color:Y.textPrimary}:{color:Y.textSecondary}},z.label))),h.length>0&&xe.default.createElement("label",{className:"flex items-center gap-1 text-xs",style:{color:Y.textSecondary}},"Project",xe.default.createElement("select",{value:S||"",onChange:z=>w({project:z.target.value?Number(z.target.value):null}),className:"text-xs rounded border px-1 py-0.5",style:{background:Y.cardBg,borderColor:Y.cardBorder,color:Y.textPrimary}},xe.default.createElement("option",{value:""},"All projects"),h.map(z=>xe.default.createElement("option",{key:z.id,value:z.id},z.name)))),xe.default.createElement("button",{type:"button",onClick:()=>k(`/interactions/latest${S?`?project=${S}`:""}`),className:"px-2 py-1 text-xs rounded border",style:{borderColor:Y.cardBorder,color:Y.textPrimary},title:"Open the most recent Claude Code or Codex conversation"},"Latest conversation")),xe.default.createElement(xI,{agentId:e}),s&&xe.default.createElement("div",{className:"p-3 rounded-lg text-sm",style:{background:r?"rgba(239,68,68,0.1)":"#fef2f2",color:"#ef4444"}},"Failed to load interactions: ",s),n.length>0&&xe.default.createElement("div",{className:"rounded-xl border p-4",style:{backgroundColor:Y.cardBg,borderColor:Y.cardBorder}},xe.default.createElement("div",{className:"flex items-center justify-between mb-3"},xe.default.createElement("h3",{className:"text-sm font-semibold",style:{color:Y.textPrimary}},"Interactions over time"),xe.default.createElement("div",{className:"flex items-center gap-3 flex-wrap justify-end"},Object.entries(L).map(([z,V])=>xe.default.createElement("span",{key:z,className:"flex items-center gap-1.5 text-xs",style:{color:Y.textSecondary}},xe.default.createElement("span",{className:"inline-block w-2 h-2 rounded-full",style:{background:V}}),z)))),xe.default.createElement("div",{className:"h-32"},xe.default.createElement(Cc,{width:"100%",height:"100%"},xe.default.createElement(rd,{data:B},xe.default.createElement("defs",null,Object.entries(L).map(([z,V])=>xe.default.createElement("linearGradient",{key:z,id:`ix-gradient-${z.replace(/\W/g,"-")}`,x1:"0",y1:"0",x2:"0",y2:"1"},xe.default.createElement("stop",{offset:"5%",stopColor:V,stopOpacity:.6}),xe.default.createElement("stop",{offset:"95%",stopColor:V,stopOpacity:.05})))),xe.default.createElement(Cu,{strokeDasharray:"3 3",stroke:r?"#2a2a2a":"#e5e7eb"}),xe.default.createElement(Tu,{dataKey:"time",stroke:r?"rgba(255,255,255,0.4)":"#9ca3af",tick:{fontSize:10,fill:r?"rgba(255,255,255,0.5)":"#6b7280"},tickLine:!1,interval:K}),xe.default.createElement(Pu,{stroke:r?"rgba(255,255,255,0.4)":"#9ca3af",tick:{fontSize:10,fill:r?"rgba(255,255,255,0.5)":"#6b7280"},tickLine:!1,axisLine:!1,allowDecimals:!1}),xe.default.createElement(Wc,{contentStyle:{background:r?"#1f1f1f":"white",border:`1px solid ${Y.cardBorder}`,borderRadius:"8px"},labelStyle:{color:Y.textPrimary,fontWeight:"600",marginBottom:"4px"}}),Object.entries(L).map(([z,V])=>xe.default.createElement(Eu,{key:z,type:"monotone",dataKey:z,stackId:"1",stroke:V,strokeWidth:2,fill:`url(#ix-gradient-${z.replace(/\W/g,"-")})`}))))),xe.default.createElement("div",{className:"flex items-center gap-8 pt-3 mt-3 border-t",style:{borderColor:Y.cardBorder}},[{label:"Interactions",value:Q.interactions.toLocaleString()},{label:"Agents",value:Q.agents.toLocaleString()},{label:"Total tokens",value:ju(Q.tokens)},{label:"Avg / interaction",value:ju(Q.avgTokens)}].map(z=>xe.default.createElement("div",{key:z.label},xe.default.createElement("div",{className:"text-lg font-bold",style:{color:Y.textPrimary}},z.value),xe.default.createElement("div",{className:"text-xs",style:{color:Y.textSecondary}},z.label))))),n.length===0?xe.default.createElement("div",{className:"text-center py-12"},xe.default.createElement("div",{className:"text-lg",style:{color:Y.textMuted}},"No interactions in the last ",f.label),xe.default.createElement("p",{className:"text-sm mt-2",style:{color:Y.textSecondary}},"Widen the time window, or run an agent to start recording its conversation stream")):xe.default.createElement("div",{className:"space-y-8"},O.map(z=>xe.default.createElement("div",{key:z.key,className:"space-y-4"},xe.default.createElement("div",{className:"flex items-baseline justify-between"},xe.default.createElement("h2",{className:"text-sm font-semibold",style:{color:Y.textPrimary}},z.title),xe.default.createElement("span",{className:"text-xs",style:{color:Y.textMuted}},z.sessions.length," ",z.sessions.length===1?"interaction":"interactions",z.tokens>0&&` \xB7 ${ju(z.tokens)} tokens`)),z.sessions.map(V=>{let q=d[V.id],oe=u===V.id,Me=P[V.id]||"conversation",fe=V.tokens?.total||0,le=(V.tokens?.input||0)+(V.tokens?.output||0)||fe;return xe.default.createElement(KC,{key:V.id,darkMode:r,className:"shadow-sm"},xe.default.createElement("div",{className:`flex items-center justify-between flex-wrap gap-y-2 p-4 cursor-pointer transition-colors ${r?"hover:bg-white/5":"hover:bg-gray-50"}`,onClick:()=>I(V.id),style:oe?{background:Y.hoverBg}:void 0},xe.default.createElement("div",{className:"flex items-center gap-3 min-w-0"},TI(V)?xe.default.createElement("span",{className:"px-2 py-1 text-xs font-medium rounded flex-shrink-0",style:{background:r?"rgba(249,115,22,0.15)":"#fff7ed",color:r?"#fdba74":"#c2410c"},title:`${V.turn_count} ${V.turn_count===1?"turn":"turns"}${V.active?", one running now":""}`},V.runner==="codex"?"CODEX":"CLAUDE CODE",V.active?" \xB7 LIVE":""):V.source==="telemetry"?xe.default.createElement("span",{className:"px-2 py-1 text-xs font-medium rounded flex-shrink-0",style:{background:r?"rgba(168,85,247,0.15)":"#faf5ff",color:r?"#d8b4fe":"#7e22ce"},title:"Reported by an app running this agent outside the platform"},"REPORTED"):xe.default.createElement("span",{className:"px-2 py-1 text-xs font-medium bg-blue-100 text-blue-700 rounded flex-shrink-0"},"SESSION"),xe.default.createElement("span",{className:"font-mono text-sm truncate",style:{color:Y.textPrimary}},V.display_name),V.agent&&xe.default.createElement("span",{className:"text-sm truncate",style:{color:Y.textSecondary}},V.agent.name),V.service_name&&xe.default.createElement("span",{className:"text-sm truncate font-mono",style:{color:Y.textMuted}},V.service_name)),xe.default.createElement("div",{className:"flex items-center gap-4 flex-shrink-0"},xe.default.createElement(ad,{darkMode:r,cells:[{key:"activity",width:Na.count,content:V.message_count>0?`${V.message_count} messages`:`${V.tool_count||0} tool ${V.tool_count===1?"call":"calls"}`},{key:"tokens",width:Na.tokens,title:"Tokens across this interaction",empty:"No token counts recorded for this interaction",content:fe>0&&`${ju(fe)} tokens`},{key:"context",width:Na.context,empty:"Context: this interaction recorded no token counts",content:fe>0&&xe.default.createElement(od,{compact:!0,darkMode:r,label:"Context",used:le,limit:Yx(V.model),segments:[{key:"messages",label:"Context",tokens:le}]})},{key:"age",width:Na.age,title:V.last_activity_at||void 0,empty:"No activity recorded",content:tZ(V.last_activity_at)&&xe.default.createElement("span",{style:{color:Y.textMuted}},tZ(V.last_activity_at))}]}),V.source!=="telemetry"&&xe.default.createElement(ld,{kind:"context",id:V.id,title:"Replay this conversation"}),xe.default.createElement(Zp,{open:oe,darkMode:r}))),!oe&&xe.default.createElement(uh,{darkMode:r,onClick:()=>I(V.id),hold:!0,style:{padding:"0 16px 12px"},lines:[{label:"input",text:V.preview?.input,color:Ln("user",r).color},{label:"output",text:V.preview?.output,color:Ln("assistant",r).color}]}),oe&&xe.default.createElement("div",{className:"border-t p-4 space-y-3",style:{borderColor:Y.cardBorder,background:Y.innerBg}},q?xe.default.createElement(xe.default.Fragment,null,xe.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2"},xe.default.createElement(Rx,{options:uke,value:Me,onChange:R=>j(te=>({...te,[V.id]:R})),darkMode:r}),xe.default.createElement("span",{className:"text-xs",style:{color:Y.textSecondary}},q.messages.length," ",q.messages.length===1?"message":"messages",q.generations.length>0&&` \xB7 ${q.generations.length} ${q.generations.length===1?"generation":"generations"}`)),Me==="conversation"&&xe.default.createElement(xe.default.Fragment,null,q.messages.length===0&&xe.default.createElement("div",{className:"text-sm",style:{color:Y.textMuted}},"No conversation content captured for this run. Enable content capture in the reporting app to record prompts, tool arguments, and responses."),xe.default.createElement(ps,{darkMode:r,messages:q.instructions?[{id:`ctx-${V.id}-system`,role:"system",content:q.instructions,created_at:V.created_at},...q.messages]:q.messages}),(()=>{let R=ske(q);return R?xe.default.createElement("div",{className:"pt-3 mt-2 border-t",style:{borderColor:Y.cardBorder}},xe.default.createElement(od,{...R,label:"Context pressure",estimated:!0,darkMode:r})):null})()),Me==="spans"&&(q.generations.length===0?xe.default.createElement("div",{className:"text-sm",style:{color:Y.textMuted}},"No generations recorded for this interaction \u2014 nothing to trace."):xe.default.createElement("div",{className:"space-y-2"},q.generations.map(R=>xe.default.createElement(dke,{key:R.id,generation:R,darkMode:r,maxMs:Math.max(...q.generations.map(te=>(te.duration_seconds||0)*1e3),1),expanded:M(`${V.id}:${R.id}`),onToggle:()=>W(`${V.id}:${R.id}`)}))))):xe.default.createElement("div",{className:"flex justify-center py-6"},xe.default.createElement("div",{className:"animate-spin rounded-full h-6 w-6 border-b-2 border-red-500"}))))})))))}var Ne=Z(J());function nZ(e,t,r=null){let n=d=>Object.values(t[d]||{})[0]??null,o=(d,p)=>{if(!p)return null;let f=p.scenario||p;return{key:d,prompt:f.prompt,group:f.group??null,notes:f.notes??null,expectations:f.expectations||{},position:f.position}},a=(d,p)=>{let f=o(d.key,p),m=["prompt","group","notes","expectations"].some(y=>JSON.stringify(d[y]??null)!==JSON.stringify(f[y]??null));return{...d,...f,catalogChanged:m}},i=(d,p)=>({...o(d,p),id:null,enabled:!1,orphan:!0}),s=(d,p,f,m)=>{if(!r)return m();let y=r.get(d);if(y&&y.scenario===p&&y.first===f)return y.row;let b=m();return r.set(d,{scenario:p,first:f,row:b}),b},l=new Set(e.map(d=>d.key)),u=e.map(d=>{let p=n(d.key);return p?s(d.key,d,p,()=>a(d,p)):d}),c=Object.keys(t).filter(d=>!l.has(d)).map(d=>{let p=n(d);return s(d,null,p,()=>i(d,p))});return[...u,...c]}var rZ=e=>/^[1-9]\d*$/.test(e||"")?e:null;function BI(e){let t=new URLSearchParams(e),r=rZ(t.get("evaluation"));return r?{evaluationId:r,runId:rZ(t.get("run"))}:null}async function oZ(e,t,r){if(!t||e.some(a=>String(a.id)===String(t)))return e;let n=await r(`/api/evaluations/${encodeURIComponent(t)}`);if(!n.ok)throw new Error(`Requested evaluation is unavailable (HTTP ${n.status})`);let o=await n.json();if(!o.evaluation)throw new Error("Requested evaluation is unavailable");return[o.evaluation,...e]}var be=Z(J());async function ud(e,{navigator:t=globalThis.navigator,document:r=globalThis.document}={}){let n=String(e??"");if(t?.clipboard?.writeText)try{return await t.clipboard.writeText(n),!0}catch{}if(!r?.body||typeof r.execCommand!="function")return!1;let o=r.createElement("textarea");o.value=n,o.setAttribute("readonly",""),o.style.position="fixed",o.style.top="0",o.style.left="0",o.style.opacity="0",r.body.appendChild(o);try{return o.select(),typeof o.setSelectionRange=="function"&&o.setSelectionRange(0,n.length),r.execCommand("copy")===!0}catch{return!1}finally{r.body.removeChild(o)}}function gh(e){if(!e)return null;let t=`/api${e}`;return{report:t,markdown:`${t}.md`,html:`${t}?download=1`,json:`${t}.json?download=1`,md:`${t}.md?download=1`}}function m2(e,{part:t=null,model:r=null,scenario:n=null}={}){if(!e)return null;let o=new URLSearchParams;t&&o.set("part",t),r&&r!=="all"&&o.set("model",r),n&&o.set("scenario",n);let a=o.toString();return a?`${e}?${a}`:e}async function aZ(e,{fetch:t=globalThis.fetch,navigator:r=globalThis.navigator,document:n=globalThis.document,ClipboardItem:o=globalThis.ClipboardItem,Blob:a=globalThis.Blob}={}){if(!e||typeof t!="function")return!1;let i=()=>t(e,{headers:{Accept:"text/markdown"},credentials:"same-origin"}).then(s=>{if(!s.ok)throw new Error(`HTTP ${s.status}`);return s.text()});if(o&&a&&r?.clipboard?.write)try{let s=i();return await r.clipboard.write([new o({"text/plain":s.then(l=>new a([l],{type:"text/plain"}))})]),!0}catch{}try{return await ud(await i(),{navigator:r,document:n})}catch{return!1}}var pke=["trace_error_rate","trace_latency"],qI=[{id:"rules",label:"Rule-based"},{id:"telemetry",label:"Telemetry"},{id:"judge",label:"LLM judge"}],St=(e,t)=>`${e} ${t}${e===1?"":"s"}`,k0=(e,t)=>{let r=String(e||"");return r.length>t?`${r.slice(0,t-1)}\u2026`:r},iZ=e=>String(e||"").replace(/_/g," ").replace(/^\w/,t=>t.toUpperCase()),WI=e=>`${Math.round(Number(Math.abs(Number(e)*100).toFixed(9)))}%`,fke=(e,t)=>t>0?`${e}/${t} \xB7 ${WI(e/t)}`:"\u2014",sZ=e=>{let t=Number(e)||0;return t>=1e3?`${(t/1e3).toFixed(t%1e3===0?0:1)}s`:`${Math.round(t)}ms`},kl=e=>e?.type==="llm_judge"?"judge":pke.includes(e?.type)?"telemetry":"rules",g2=e=>{let t=e?.config||{};switch(e?.type){case"response_present":return"Response present";case"min_length":return"Response length";case"max_latency_ms":return"Latency";case"token_budget":return"Output tokens";case"contains":return"Must contain";case"not_contains":return"Must not contain";case"trace_error_rate":return"Trace error rate";case"trace_latency":return"Trace latency";case"llm_judge":return t.description||iZ(e.key);default:return iZ(e?.key)}},vh=e=>{let t=e?.config||{};switch(e?.type){case"response_present":return"non-empty output";case"min_length":return`\u2265 ${t.chars??40} chars`;case"max_latency_ms":return`\u2264 ${sZ(t.ms??5e3)}`;case"token_budget":return`\u2264 ${t.output_tokens??1e3} output tokens`;case"contains":return`matches /${t.pattern||""}/i`;case"not_contains":return`no /${t.pattern||""}/i`;case"trace_error_rate":return`error rate \u2264 ${t.max_error_rate??5}% \xB7 ${t.window_hours??168}h`;case"trace_latency":return`avg \u2264 ${sZ(t.max_avg_ms??5e3)} \xB7 ${t.window_hours??168}h`;case"llm_judge":return t.prompt?`judge: ${k0(t.prompt,72)}`:"judge scores 0.0\u20131.0";default:return""}},_0=(e,t)=>(e?.criteria||[]).find(r=>r.key===t)||{key:t,type:t,config:{}},xh=(e,t=null)=>{let r=t?.scores||{};if(Object.prototype.hasOwnProperty.call(r,"_judge_label"))return r._judge_label||"rules";let n=r._verdict?.judge;return n&&n!=="pass rate"?n:e?.judge_kind==="judge_defined"?`judge-defined KPIs${e.judge_model?` \xB7 ${e.judge_model}`:""}`:e?.judge_kind==="llm"?e.judge_model||"LLM judge":"rules"},KI=(e,t=null)=>t?.models?.length||Object.keys(t?.scores?._models||t?.scores?._cohorts||{}).length||(e?.compare_models||[]).length||1,nf=(e,t=null)=>{let r=KI(e,t);if(e?.scenario_suite){let a=t?.samples_evaluated&&r?Math.round(t.samples_evaluated/r):e.scenario_count||0;return`${St(a,"scenario")} \xD7 ${St(r,"model")}`}let n=(e?.criteria||[]).length,o=n===1?"criterion":"criteria";return r>1?`${n} ${o} \xD7 ${St(r,"model")}`:`${n} ${o} \xB7 ${St(e?.sample_size??0,"sample")}`},VI=e=>e!=null&&typeof e=="object"&&!Array.isArray(e)&&!("score"in e)&&!("skipped"in e),bh=e=>Object.entries(e?.scores||{}).filter(([t,r])=>!t.startsWith("_")&&r&&typeof r=="object");var C0=e=>{let t=e?.scores?._cohorts||e?.scores?._models;if(t&&typeof t=="object"&&Object.keys(t).length)return Object.keys(t);if(Array.isArray(e?.models)&&e.models.length)return e.models;let r=[];return bh(e).forEach(([,n])=>{VI(n)&&Object.keys(n).forEach(o=>{r.includes(o)||r.push(o)})}),r},of=(e,t)=>!e||typeof e!="object"?null:VI(e)?t&&e[t]||null:e,uZ=e=>e&&e.samples_evaluated?(e.samples_passed||0)/e.samples_evaluated:null,mke=e=>!!e&&["pending","running"].includes(e.status),yh=(e,t)=>!e||typeof e!="object"?null:e.priced!=null?e.priced:e.cost!=null?t??null:0,af=(e,t)=>e!=null&&t?e/t:null,h2=(e,t)=>{if(!e||typeof e!="object")return!1;if(Number(e.estimated)>0||e.cost_basis==="estimated"||e.cost_basis==="mixed")return!0;let r=yh(e,t);return r!=null&&t!=null&&e.cost!=null&&r{if(!e)return[];let t=e.scores||{},r=t._models;if(r&&typeof r=="object"&&Object.keys(r).length)return Object.entries(r).map(([a,i])=>({label:a,model:i.model||a,provider:i.provider||null,samples:i.scenarios??null,passed:i.passed??null,errored:i.errored??0,avg_score:i.avg_score??null,avg_duration_ms:i.avg_duration_ms??null,p50_duration_ms:i.p50_duration_ms??null,p95_duration_ms:i.p95_duration_ms??null,input_tokens:i.input_tokens??null,output_tokens:i.output_tokens??null,cost:i.cost??null,priced:yh(i,i.scenarios),reported:i.reported??null,estimated:h2(i,i.scenarios),judge_cost:i.judge_cost??null,judge_calls:i.judge_calls??0,faults:i.faults||{},kind:"replay"}));let n=t._cohorts;if(n&&typeof n=="object"&&Object.keys(n).length)return Object.entries(n).map(([a,i])=>({label:a,model:a,provider:i.provider||null,samples:i.samples??null,passed:i.passed??null,errored:0,avg_score:null,avg_duration_ms:i.avg_duration_ms??null,input_tokens:i.input_tokens??null,output_tokens:i.output_tokens??null,cost:i.cost??null,priced:yh(i,i.samples),reported:0,estimated:i.cost!=null,judge_cost:null,judge_calls:0,faults:{},kind:"sample"}));let o=C0(e);return o.length?o.map(a=>{let i=bh(e).map(([,s])=>of(s,a)).filter(s=>s&&s.total!=null).map(s=>s.total);return{label:a,model:a,provider:null,samples:i.length?Math.max(...i):null,passed:null,errored:0,avg_score:null,avg_duration_ms:null,input_tokens:null,output_tokens:null,cost:null,priced:null,reported:null,estimated:!1,judge_cost:null,judge_calls:0,faults:{},kind:e.selection||t._selection?"replay":"sample"}}):[{label:null,model:null,provider:null,samples:e.samples_evaluated??null,passed:e.samples_passed??null,errored:0,avg_score:null,avg_duration_ms:null,input_tokens:null,output_tokens:null,cost:null,priced:null,reported:null,estimated:!1,judge_cost:null,judge_calls:0,faults:{},kind:"sample"}]},cZ=(e,t)=>{let r=bh(e).map(([,o])=>of(o,t)).filter(Boolean),n=r.filter(o=>o.score!=null);return{avg:n.length?n.reduce((o,a)=>o+a.score,0)/n.length:null,scored:n.length,cleared:n.filter(o=>o.score>=.7).length,below:n.filter(o=>o.score<.7).length,skipped:r.filter(o=>o.skipped).length}},dZ=20,sf=(e=[],t=null)=>Number.isFinite(t)?Math.max(t,e.length):e.length,A0=(e=[],t=null)=>{let r=sf(e,t),n=e.length=dZ;return`${St(r,"run")}${n?` \xB7 latest ${e.length}`:""}`},pZ=3,fZ=(e=[],{limit:t=null,selectedId:r=null}={})=>{let n=e.map((o,a)=>a);return!Number.isFinite(t)||e.length<=t?n:n.filter(o=>o{if(!r)return"skipped";let o=t.map(s=>e[s]),a=o.filter(s=>s&&s.status!=="pending"),i=a.some(s=>s.status!=="passed");return t.length>0&&a.length===t.length?i?"failed":"passed":n?o.some(Boolean)?"running":"queued":i?"failed":"missing"},Sh=(e,t,r=[],n=null)=>Number.isFinite(e?.number)?e.number:sf(r,n)-t,E0=(e,t,{olderNumber:r=t?.number,comparable:n=!0}={})=>{if(!e||e.status!=="complete")return null;if(!t)return{text:"first run",tone:"muted"};let o=Number.isFinite(r)?`#${r}`:"previous";if(t.status!=="complete")return{text:`${o} ${t.status}`,tone:"muted"};if(!n)return{text:"partial run",tone:"muted"};let a=(e.samples_passed||0)-(t.samples_passed||0);return a===0?{text:`same as ${o}`,tone:"muted"}:{text:`${a>0?"+":""}${a} passed vs ${o}`,tone:a>0?"success":"error"}},mZ=(e,t)=>{if(!e||!t)return null;let r=e.agent_version?.id??null,n=t.agent_version?.id??null;return r==null||n==null?{kind:"unrecorded",text:"release not recorded"}:r===n?{kind:"same",text:"same version"}:{kind:"new",text:`new version${e.agent_version?.number!=null?` v${e.agent_version.number}`:""}`}},gZ=e=>{if(!e||!("version_state"in e)&&!e.agent_version)return null;let t=e.agent_version;if(!t)return{text:"release not recorded",tone:"warning",title:"This run named no release, so nothing says which version of the agent it scored"};let r=t.release_digest?` \xB7 ${String(t.release_digest).slice(0,7)}`:"",n=`v${t.number}${r}`,o=e.version_state||"current";return o==="earlier"?{text:n,tone:"muted",title:`An earlier version of the agent${t.revision?` \xB7 ${t.revision}`:""}`}:o==="unrecorded"?{text:n,tone:"warning",title:"The version this run scored was not recorded"}:{text:n,tone:"success",title:`The agent's current version${t.revision?` \xB7 ${t.revision}`:""}`}},Ni=e=>{let t=e?.usage;if(!t||typeof t!="object")return null;let r=t.replays??t.samples??null,n=t.cost??null,o=yh(t,r||0),a=r!=null||n!=null?{cost:n,count:r||0,priced:o,reported:t.reported??null,estimatedCount:t.estimated??null,basis:t.cost_basis??null,estimated:h2(t,r||0),unit:t.replays!=null?"replay":"sample",perInteraction:t.per_interaction??af(n,o),inputTokens:t.input_tokens??null,outputTokens:t.output_tokens??null,modelTimeMs:t.model_time_ms??null}:null,i=t.judge,s=i&&typeof i=="object"?{cost:i.cost??null,calls:i.calls||0,byKind:i.by_kind||{},model:i.model||null,inputTokens:i.input_tokens??null,outputTokens:i.output_tokens??null,source:i.source||null,estimated:i.estimated??(i.source==null||i.source!=="reported"),run:i.run&&typeof i.run=="object"?i.run:null}:null;if(!a&&!s)return null;let l=t.total??(a?.cost!=null||s?.cost!=null?(a?.cost||0)+(s?.cost||0):null),u=!!(a?.cost!=null&&a.estimated||s?.cost!=null&&s.estimated);return{agent:a,judge:s,total:l,totalEstimated:u,runtimeMs:t.runtime_ms??null}},hZ=e=>{let t=e?.agent||null,r=e?.judge||null;return t&&t.count>0&&t.cost==null?r?"judge only \xB7 agent unpriced":"agent unpriced":t&&r?"agent + judge":t?"agent only":"judge only"},N0=e=>{switch(e?.source){case"traces":return"from traces";case"meter":return"metered";case"reported":return"reported";default:return null}},T0=e=>{if(!e)return"";let t=["define","score","recommend","verdict"];return Object.entries(e.byKind||{}).sort(([n],[o])=>t.indexOf(n)-t.indexOf(o)).map(([n,o])=>`${n} ${o}`).join(" \xB7 ")},gke=(e=[])=>{let t=null,r=0,n=0,o=null,a=0,i=!1,s=!1;return e.forEach(l=>{let u=Ni(l);u&&(a+=1,u.agent&&(r+=u.agent.count,n+=u.agent.priced),u.agent?.cost!=null&&(t=(t||0)+u.agent.cost,u.agent.estimated&&(i=!0)),u.judge?.cost!=null&&(o=(o||0)+u.judge.cost,u.judge.estimated&&(s=!0)))}),{agentCost:t,interactions:r,pricedInteractions:n,perInteraction:af(t,n),judgeCost:o,priced:a,estimated:i,judgeEstimated:s}},kh=e=>{if(!e)return null;if(e.headline_run&&typeof e.headline_run=="object")return e.headline_run;let t=e.latest_run||null;return e.headline_run_id!=null?t&&t.id===e.headline_run_id?t:null:t&&t.status==="complete"?t:null},GI=e=>e?e.standing?e.standing:e.archived_at?"archived":kh(e)?"current":"none":"none",hke=["current","unrecorded"],yZ=(e=[],{focusId:t=null}={})=>{let r=t!=null?e.filter(d=>String(d.id)===String(t)):[],n=r.length>0,o=n?r:e,a={total:0,stale:0,archived:0,none:0},i=[],s={},l=[],u=0,c=0;return o.forEach(d=>{let p=kh(d),f=GI(d);if(!(n?!!p:!!p&&hke.includes(f))){a.total+=1,f==="archived"?a.archived+=1:f==="stale"?a.stale+=1:a.none+=1;return}i.push(p),l.push({id:d.id,name:d.name||`evaluation ${d.id}`}),u+=p.samples_evaluated||0,c+=p.samples_passed||0,(d.per_model&&typeof d.per_model=="object"&&Object.keys(d.per_model).length?Object.entries(d.per_model).map(([b,g])=>({label:b,passed:g?.passed||0,total:g?.total||0})):wh(p).filter(b=>b.label&&b.samples>0).map(b=>({label:b.label,passed:b.passed||0,total:b.samples||0}))).forEach(({label:b,passed:g,total:h})=>{let v=s[b]||={label:b,passed:0,total:0,byEvaluation:{}};v.passed+=g,v.total+=h;let x=v.byEvaluation[d.id]||={passed:0,total:0};x.passed+=g,x.total+=h})}),{evaluations:o.length,counted:i.length,notCounted:a,runs:i,samplesScored:u,samplesPassed:c,passRatio:u?c/u:null,perModel:Object.values(s),columns:l,spend:gke(i),focused:n}},FI=1.96,yke=(e,t)=>{let r=Number(t)||0;if(r<=0)return 0;let n=(Number(e)||0)/r,o=FI*FI,a=n+o/(2*r),i=FI*Math.sqrt(n*(1-n)/r+o/(4*r*r));return Math.max(0,(a-i)/(1+o/r))},vZ=e=>(e?.perModel||[]).filter(t=>t.total>0).map(t=>({...t,ratio:t.passed/t.total,lower:yke(t.passed,t.total)})).sort((t,r)=>r.lower-t.lower||r.total-t.total||t.label.localeCompare(r.label)).map((t,r)=>({...t,rank:r+1})),xZ=e=>{let t=e?.notCounted;if(!t||!t.total)return null;let r=[];return t.stale&&r.push(`${t.stale} stale`),t.archived&&r.push(`${t.archived} archived`),t.none&&r.push(`${t.none} ${t.none===1?"has":"have"} no complete run`),[`${t.total} not counted`,...r].join(" \xB7 ")},v2=(e,t)=>{if(!t)return[];let r=[],n=`/agents/${e?.agent?.id}/run`;t.status==="failed"&&r.push({kind:"failed",label:"run failed",scope:Number.isFinite(t.number)?`run #${t.number}`:"latest run",text:t.error_message||"The run ended before any criterion was scored.",action:{label:"Run agent",path:n,hint:"Run Agent ->"}});let o=Array.isArray(t.scores?._missing_models)?t.scores._missing_models:[];o.length&&r.push({kind:"missing",label:`no generations \xD7${o.length}`,scope:"comparison cohorts",text:"The comparison asked for these models, but the agent has no recorded generations under them. Run the agent under each model, then run the evaluation again.",chipsLabel:"missing models",chips:o,action:{label:"Run agent",path:n,hint:"Run Agent ->"}});let a={judge:[],telemetry:[],rules:[]},i=[];bh(t).forEach(([u,c])=>{let d=_0(e,u);(VI(c)?Object.entries(c):[[null,c]]).forEach(([f,m])=>{!m||typeof m!="object"||(m.skipped?a[kl(d)].push({key:u,model:f,reason:m.reason}):m.score!=null&&m.score<.7&&i.push({key:u,model:f,stats:m,criterion:d}))})});let s=u=>[...new Set(u.map(c=>c.key))],l=u=>`${s(u).length} ${s(u).length===1?"criterion":"criteria"}`;if(a.judge.length&&r.push({kind:"judge",label:`judge skipped \xD7${a.judge.length}`,scope:l(a.judge),text:a.judge[0].reason||"The LLM judge could not score these criteria.",chipsLabel:"unscored criteria",chips:s(a.judge),action:{label:"Add provider key",path:"/settings",hint:"Settings ->"}}),a.telemetry.length&&r.push({kind:"telemetry",label:`no telemetry \xD7${a.telemetry.length}`,scope:l(a.telemetry),text:a.telemetry[0].reason||"No traces were recorded for this agent in the criterion window.",chipsLabel:"unscored criteria",chips:s(a.telemetry),action:{label:"Open traces",path:"/traces",hint:"Traces ->"}}),a.rules.length&&r.push({kind:"samples",label:`no samples \xD7${a.rules.length}`,scope:l(a.rules),text:a.rules[0].reason||"No generation could be scored against these criteria.",chipsLabel:"unscored criteria",chips:s(a.rules),action:{label:"Run agent",path:n,hint:"Run Agent ->"}}),i.length){let u=[...new Set(i.map(c=>c.model).filter(Boolean))];r.push({kind:"below",label:`below pass mark \xD7${i.length}`,scope:`${l(i)}${u.length?` \xB7 ${St(u.length,"model")}`:""}`,text:`Scored under the pass mark (pass \u2265 ${WI(.7)}). Each line is what the criterion expects against how the samples did; tighten the agent's instructions or revisit the budget before running again.`,details:i.map(c=>`${c.key}${c.model?` \xB7 ${c.model}`:""} ${WI(c.stats.score)} \xB7 expects ${vh(c.criterion)} \xB7 ${fke(c.stats.passed,c.stats.total)} passed`)})}return r},lZ=e=>String(e||"").replace(/_/g," "),bZ=e=>{let t=e?.scores?._comparison;if(!t||typeof t!="object"||!Array.isArray(t.ranking)||t.ranking.length<2)return null;let r=t.method||{};return{rows:t.ranking.map(n=>{let o=t.models?.[n]||{};return{label:n,passRate:o.pass_rate??null,interval:Array.isArray(o.interval)&&o.interval.length===2?o.interval:null,scenarios:o.scenarios??0}}),conclusion:t.conclusion||null,confidence:Math.round(Number(r.confidence??.95)*100),resamples:r.resamples??null}},x2=(e,{results:t=[],scenarioCount:r=0,labelFor:n=a=>a?.model,columns:o=null}={})=>{let a=wh(e),i=new Map(a.map(c=>[c.label,c])),s=o&&o.length?o:a.map(c=>c.label),l=e?.scores?._verdict?.winner||null;return s.map(c=>{let d=i.get(c)||{},p=t.filter(C=>n(C)===c),f=p.filter(C=>C?.status&&C.status!=="pending"),m=d.samples??(r||p.length||null),y=d.passed??f.filter(C=>C.status==="passed").length,b=Object.keys(d.faults||{}).length?d.faults:f.reduce((C,N)=>N.fault?{...C,[N.fault]:(C[N.fault]||0)+1}:C,{}),g=C=>p.find(N=>N.fault===C)||null,h=C=>C==="low_quality"?1:0,v=Object.entries(b).sort((C,N)=>N[1]-C[1]||(g(N[0])?1:0)-(g(C[0])?1:0)||h(C[0])-h(N[0])||C[0].localeCompare(N[0])),[x,S]=v[0]||[],k=x?g(x):null,w=m||null,_=C=>C==null||!w?null:C/w,A=d.avg_score??(f.length&&f.some(C=>C.score!=null)?f.filter(C=>C.score!=null).reduce((C,N)=>C+Number(N.score),0)/f.filter(C=>C.score!=null).length:null);return{label:c,model:d.model||c,provider:d.provider||null,winner:l===c,passed:y,total:m,scored:d.samples??f.length,passRate:m?y/m:null,avgScore:A==null?null:Number(A),avgDurationMs:d.avg_duration_ms??null,p50DurationMs:d.p50_duration_ms??null,p95DurationMs:d.p95_duration_ms??null,inputTokens:d.input_tokens??null,outputTokens:d.output_tokens??null,avgInputTokens:_(d.input_tokens),avgOutputTokens:_(d.output_tokens),avgTokens:d.input_tokens==null&&d.output_tokens==null?null:_((d.input_tokens||0)+(d.output_tokens||0)),cost:d.cost??null,priced:d.priced??null,reported:d.reported??null,estimated:d.estimated??!1,judgeCost:d.judge_cost??null,judgeCalls:d.judge_calls??0,costPerInteraction:af(d.cost,d.priced),faults:v.map(([C,N])=>({fault:C,name:lZ(C),count:N})),typicalFault:x?{fault:x,name:lZ(x),count:S,scenarioKey:k?.scenario_key||null,summary:(k?.diagnosis?.summary||k?.recommendation||"").toString().trim()||null}:null}}).sort((c,d)=>(d.passRate??-1)-(c.passRate??-1)||(d.avgScore??-1)-(c.avgScore??-1)||s.indexOf(c.label)-s.indexOf(d.label))},wZ=(e,{max:t=120}={})=>{if(!e)return"\u2014";if(!e.typicalFault)return e.scored?"no faults":"\u2014";let{name:r,count:n,scenarioKey:o,summary:a}=e.typicalFault,i=`${r} \xD7${n}`;if(!a)return i;let s=o?`${o}: ${a}`:a;return`${i} \xB7 ${k0(s,t)}`},SZ=(e=[],t=[],r=n=>n?.model)=>e.map(n=>{let o=n.kind==="instruction"?t.filter(s=>(n.scenario_keys||[]).includes(s?.scenario_key)&&s?.fault):t.filter(s=>s?.fault===n.fault);if(!o.length)return n;let a={},i={};return o.forEach(s=>{let l=r(s);l&&(a[l]=(a[l]||0)+1,i[l]=[...new Set([...i[l]||[],s.scenario_key].filter(Boolean))])}),{...n,count_by_model:a,scenario_keys_by_model:i}}),YI=(e=[],t=null)=>!t||t==="all"?e:e.filter(r=>!Array.isArray(r.models)||r.models.length===0||r.models.includes(t)).map(r=>{if(!Array.isArray(r.models)||!r.models.length)return r;let n={...r,models:[t]};return r.count_by_model?.[t]!=null&&(n.count=r.count_by_model[t]),r.scenario_keys_by_model?.[t]&&(n.scenario_keys=r.scenario_keys_by_model[t]),n}),kZ=(e=[],t=[])=>Object.fromEntries(t.map(r=>[r,YI(e,r).length])),b2=e=>(Array.isArray(e)?e:[]).filter(t=>t&&t.session_id&&t.status==="ready"&&(t.sandbox_type==null||t.sandbox_type==="app_runtime")&&!("runtime_server_key"in t&&!t.runtime_server_key)).map(t=>({value:t.session_id,label:_Z(t)})),_Z=e=>{if(!e||!e.session_id)return null;let t=[e.repository,e.repository_ref].filter(Boolean).join("@"),r=String(e.session_id).slice(0,8);return t?`${t} \xB7 ${r}`:`sandbox ${r}`},O0=e=>_Z(e?.sandbox),CZ=(e={},t=[],r=null)=>{let n={...e,models:t};return r&&(n.sandbox_id=r),n},w2=(e,t)=>e&&(t||[]).some(r=>r.value===e)?e:"",lf=e=>e?.selection||e?.scores?._selection||{},AZ=e=>(lf(e).models||[]).map(t=>typeof t=="string"?t:t?.label).filter(Boolean);function P0(e,t=[]){let r=lf(e);if(Array.isArray(r.scenario_keys)&&r.scenario_keys.length)return r.scenario_keys;if(!e)return[];if(Array.isArray(r.keys)&&r.keys.length)return r.keys;if(Array.isArray(r.scenario_ids)&&r.scenario_ids.length){let o=r.scenario_ids.map(String);return t.filter(a=>o.includes(String(a.id))).map(a=>a.key)}let n=t.filter(o=>o.enabled!==!1);return r.group?n.filter(o=>o.group===r.group).map(o=>o.key):mke(e)||e.status==="failed"?n.map(o=>o.key):[]}var XI=(e,t=[])=>{let r=lf(e);if(r.group)return`partial: ${r.group}`;let n=r.scenario_keys||r.keys,o=t.filter(a=>a.enabled!==!1).length;return Array.isArray(n)&&n.length&&n.length{let r=new Set(t.filter(a=>a&&a.enabled!==!1).map(a=>a.key)),n=[],o=[];return[...new Set((e||[]).filter(a=>a!=null))].forEach(a=>(r.has(a)?n:o).push(a)),{keys:n,dropped:o}},EZ=(e=[],t=[])=>uf((e||[]).filter(r=>r&&r.scenario_key&&r.status!=="pending"&&r.status!=="passed").map(r=>r.scenario_key),t),NZ=(e,t=[])=>{let r=lf(e);if(r.group)return{group:r.group};let n=Array.isArray(r.scenario_keys)&&r.scenario_keys.length?r.scenario_keys:r.keys;return Array.isArray(n)&&n.length?{keys:uf(n,t).keys}:{}},ZI=272,JI=16,TZ=32,OZ=940,QI="clamp(360px, calc(100vh - 240px), 900px)",PZ=320,vke=3,MZ=3,IZ=720,HI="aa.evaluations.detail",DZ=e=>368+138*e,jZ=e=>504+170*e,$Z=e=>{try{let t=e?.getItem(HI);return t==="tools"||t==="steps"?t:null}catch{return null}},LZ=(e,t)=>{try{t==null?e?.removeItem?.(HI):e?.setItem(HI,t)}catch{}},zZ=(e=[])=>(e.find(t=>t?.step==="running")||e.find(t=>t?.step==="queued"))?.key??null,BZ=(e=[])=>{if(!e.length)return"none";let t=e.filter(n=>n!=="skipped"&&n!=="none");if(!t.length)return e.every(n=>n==="none")?"none":"skipped";if(t.includes("loading"))return"loading";if(t.includes("running"))return"running";let r=t.filter(n=>n==="queued").length;return r&&rnull,r="suite")=>{if(r!=="failed-first")return e;let n=[],o=new Map;return e.forEach(a=>{let i=a?.group||"",s=o.get(i);s||(s={failed:0,rows:[]},o.set(i,s),n.push(s));let l=t(a)==="failed";l&&(s.failed+=1),s.rows.push({row:a,failed:l})}),n.sort((a,i)=>i.failed-a.failed).flatMap(a=>[...a.rows.filter(i=>i.failed),...a.rows.filter(i=>!i.failed)].map(i=>i.row))},RI=(e=[],t=new Set)=>{let r=t instanceof Set?t:new Set(t||[]),n=new Set;if(!r.size)return n;let o=new Set;return e.forEach(a=>{(r.has(a?.key)?o:n).add(a?.group||"")}),o.forEach(a=>n.delete(a)),n},eD=(e={},t=[])=>{let r=t.map(n=>e?.[n]).filter(n=>n&&n.status!=="pending"&&n.duration_ms!=null&&Number.isFinite(Number(n.duration_ms))).map(n=>Number(n.duration_ms));return r.length?Math.max(...r):null},UI=e=>e!=null&&Number.isFinite(Number(e))?Number(e):null,S2=e=>{if(!e||e.status==="pending")return null;let t={durationMs:UI(e.duration_ms),inputTokens:UI(e.input_tokens),outputTokens:UI(e.output_tokens)};return t.durationMs==null&&t.inputTokens==null&&t.outputTokens==null?null:t},UZ=(e=[])=>{let t={durationMs:null,inputTokens:null,outputTokens:null,count:0};return e.forEach(r=>{let n=S2(r);n&&(t.count+=1,["durationMs","inputTokens","outputTokens"].forEach(o=>{n[o]!=null&&(t[o]=(t[o]||0)+n[o])}))}),t.count?t:null},WZ=(e={},t=[])=>{let r=UZ(t.map(n=>e?.[n]));return!r||r.inputTokens==null&&r.outputTokens==null?null:{input:r.inputTokens,output:r.outputTokens}},HZ=(e=[])=>{let t=e.filter(Boolean);if(!t.length)return null;let r=n=>t.some(o=>o[n]!=null)?t.reduce((o,a)=>o+(a[n]||0),0):null;return{input:r("input"),output:r("output")}},tD=(e={},t=[],r=Object.keys(e))=>Object.fromEntries(t.map(n=>[n,UZ(r.map(o=>e[o]?.[n]))])),qZ=(e=[],t={},r=[])=>{let n=e.map(o=>eD(t[o?.key],r)).filter(o=>o!=null);return n.length?n.reduce((o,a)=>o+a,0):null},KZ=(e,t=Date.now())=>{if(!e)return null;let r=e.usage?.runtime_ms;if(r!=null&&Number.isFinite(Number(r)))return Number(r);if(e.status==="pending"||e.status==="failed"||!e.created_at)return null;let n=Date.parse(e.created_at),o=e.completed_at?Date.parse(e.completed_at):t;return!Number.isFinite(n)||!Number.isFinite(o)?null:Math.max(0,o-n)},hh=e=>String(e).padStart(2,"0"),VZ=e=>{let t=Math.max(0,Math.floor(Number(e)/1e3));return{hours:Math.floor(t/3600),minutes:Math.floor(t%3600/60),seconds:t%60,total:t}},GZ=e=>{if(e==null||!Number.isFinite(Number(e)))return"\u2014";let{hours:t,minutes:r,seconds:n}=VZ(e);return t?`${t}:${hh(r)}:${hh(n)}`:`${hh(r)}:${hh(n)}`},rD=e=>{if(e==null||!Number.isFinite(Number(e)))return"\u2014";let{hours:t,minutes:r,seconds:n,total:o}=VZ(e);return o<60?`${o}s`:t?`${t}h ${hh(r)}m`:`${r}m ${hh(n)}s`},k2=e=>{if(e==null||!Number.isFinite(Number(e)))return"\u2014";let t=Number(e);return t>=6e4?rD(t):t>=1e3?`${(t/1e3).toFixed(t>=1e4?1:2).replace(/\.?0+$/,"")}s`:`${Math.round(t)}ms`},YZ=e=>{let t=Number(e)||0;return t<=500?3e3:t<=2e3?6e3:1e4},xke=(e,t)=>!!e&&!!t&&e.id===t.id&&e.status===t.status&&e.score===t.score&&e.fault===t.fault&&e.cost===t.cost&&(e.judge_usage?.cost??null)===(t.judge_usage?.cost??null)&&(e.output||"").length===(t.output||"").length,XZ=(e=[],t=[])=>{let r=new Map;(e||[]).forEach(i=>{i&&i.id!=null&&r.set(i.id,i)});let n=0,o=(t||[]).map(i=>{let s=i&&i.id!=null?r.get(i.id):null;return s&&xke(s,i)?(n+=1,s):i}),a=o.length!==(e||[]).length||n!==o.length;return{results:a?o:e||[],changed:a}},ZZ=(e=[],t=n=>n?.model,r={})=>{let n={};(e||[]).forEach(i=>{!i||!i.scenario_key||((n[i.scenario_key]||={})[t(i)]=i)});let o=Object.keys(n),a=0;return o.forEach(i=>{let s=r?.[i];if(!s)return;let l=Object.keys(n[i]);l.length===Object.keys(s).length&&l.every(u=>s[u]===n[i][u])&&(n[i]=s,a+=1)}),r&&a===o.length&&o.length===Object.keys(r).length?r:n},JZ=(e=[],t=vke)=>{if(e.length<=t)return e;let r=n=>e.reduce((o,a)=>o+(Number(a?.[n])||0),0);return[{label:"combined",short:`${e.length} models`,passed:r("passed"),total:r("total"),title:e.map(n=>`${n.short} ${n.passed??"\u2014"}/${n.total??"\u2014"}`).join(" \xB7 ")}]},nD=(e={},t=[])=>{let r=new Set((t||[]).filter(a=>a!=null).map(String)),n=Object.entries(e||{}),o=n.filter(([a])=>r.has(String(a)));return o.length===n.length?e||{}:Object.fromEntries(o)},QZ=({rowTop:e=0,headerHeight:t=0,boxHeight:r=0}={})=>Math.max(0,e-t-Math.round((r-t)/3)),RZ=({rowTop:e=0,headerHeight:t=0,groupRowHeight:r=0}={})=>Math.max(0,e-t-r);var bke=[[/^claude/i,"anthropic"],[/^(gpt-|o\d|chatgpt|text-embedding)/i,"openai"],[/:/,"ollama"]],eJ=["openai","anthropic","ollama","openrouter","mock"];function wke(e,t=eJ){let r=String(e??"").trim(),n=r.indexOf("/"),o=n>=0?r.slice(0,n):r,a=n>=0?r.slice(n+1):"";if(a.trim()){if(t.includes(o))return{provider:o,model:a};if(t.includes("openrouter"))return{provider:"openrouter",model:r}}let i=bke.find(([s,l])=>s.test(r)&&t.includes(l));return{provider:i?i[1]:null,model:r}}function Ske(e,t,r=eJ){let n=wke(t,r);return n.provider===e&&n.model===t?t:`${e}/${t}`}function tJ(e,t){return t.flatMap(r=>(e?.[r]||[]).flatMap(n=>{let o=String(n??"").trim();return o?[{provider:r,id:o,qualified:Ske(r,o)}]:[]}))}function M0(e,{providers:t,qualify:r=!0}){let n=tJ(e,t).map(o=>r?o.qualified:o.id);return[...new Set(n)]}function rJ(e,t,{providers:r,qualify:n,restore:o=new Map}){let a=tJ(t,r),i=new Set(a.map(c=>n?c.qualified:c.id)),s=new Map;a.forEach(c=>{let d=n?c.id:c.qualified;s.has(d)||s.set(d,n?c.qualified:c.id)});let l=c=>i.has(c)?c:s.get(c)??c;if(n){let c=e.flatMap(d=>o.get(d)??[l(d)]);return{models:[...new Set(c)],restore:new Map}}let u=new Map;return e.forEach(c=>{let d=l(c);u.set(d,[...u.get(d)||[],c])}),{models:[...u.keys()],restore:u}}function cd(e){return[...new Set(String(e??"").split(",").map(t=>t.trim()).filter(Boolean))]}function I0(e){return e.join(", ")}function nJ(e,t){return[...new Set([...e,...cd(t)])]}function oJ(e){let t=e.lastIndexOf(",");return t<0?{complete:"",rest:e.trimStart()}:{complete:e.slice(0,t),rest:e.slice(t+1).trimStart()}}function aJ(e,t,r){return(!e||e==="insertReplacementText")&&r.includes(t)}function iJ({key:e,repeat:t=!1},r,n){return e==="Enter"&&r.trim()?"commit":e==="Backspace"&&!t&&r===""&&n>0?"removeLast":null}var _h=Z(J()),Vs=typeof window>"u"?_h.useEffect:_h.useLayoutEffect;function D0(e){let[t,r]=(0,_h.useState)(0);return Vs(()=>{let n=e.current;if(!n)return;let o=()=>r(n.clientWidth);if(o(),typeof ResizeObserver>"u")return window.addEventListener("resize",o),()=>window.removeEventListener("resize",o);let a=new ResizeObserver(o);return a.observe(n),()=>a.disconnect()},[e]),t}var ta=Z(J());function j0({value:e,onChange:t,models:r=[],placeholder:n,style:o,title:a,describedBy:i,inputId:s,inputLabel:l,testId:u}){let[c,d]=(0,ta.useState)(""),[p,f]=(0,ta.useState)(""),m=(0,ta.useRef)(null),y=(0,ta.useId)(),b=cd(e),g=(0,ta.useRef)(b);g.current=b;let h=_=>{let A=nJ(g.current,_);A.length!==g.current.length&&(t(I0(A)),f(`Added ${A.slice(g.current.length).join(", ")}`)),d("")},v=_=>{t(I0(g.current.filter(A=>A!==_))),f(`Removed ${_}`),m.current?.focus()},x=(_,A)=>{if(_.includes(",")){let{complete:C,rest:N}=oJ(_);h(C),d(N)}else aJ(A.nativeEvent?.inputType,_,r)?h(_):d(_.trimStart())},S=_=>{let A=iJ(_,c,g.current.length);A==="commit"?(_.preventDefault(),setTimeout(()=>h(m.current?.value||""),0)):A==="removeLast"&&(_.preventDefault(),v(g.current[g.current.length-1]))},k=r.filter(_=>!b.includes(_)),w=[i,a&&`${y}-title`,`${y}-selected`].filter(Boolean).join(" ");return ta.default.createElement("div",{"data-testid":u,onClick:_=>{_.target===_.currentTarget&&m.current?.focus()},style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:4,cursor:"text",...o}},b.map(_=>ta.default.createElement("span",{key:_,style:kke},ta.default.createElement("span",{style:{overflowWrap:"anywhere"}},_),ta.default.createElement("button",{type:"button",onClick:()=>v(_),"aria-label":`Remove ${_}`,title:`Remove ${_}`,style:_ke},"\xD7"))),ta.default.createElement(ru,{inputRef:m,id:s,"aria-label":l,"aria-describedby":w,title:a,value:c,models:k,onChange:x,onKeyDown:S,onBlur:()=>{c.trim()&&h(c)},placeholder:b.length?"Add a model":n,style:{flex:"1 1 80px",minWidth:80,padding:0,border:"none",background:"transparent",font:"inherit",color:"inherit"}}),a&&ta.default.createElement("span",{id:`${y}-title`,style:oD},a),ta.default.createElement("span",{id:`${y}-selected`,style:oD},b.length?`Chosen: ${b.join(", ")}`:"No models chosen"),ta.default.createElement("span",{role:"status","aria-live":"polite",style:oD},p))}var kke={display:"inline-flex",alignItems:"center",gap:2,maxWidth:"100%",padding:"0 2px 0 8px",borderRadius:999,fontFamily:U,fontSize:11,lineHeight:"18px",background:"var(--color-muted)",border:"1px solid var(--color-border)",color:"var(--color-text-primary)"},_ke={padding:"0 5px",border:"none",borderRadius:999,background:"transparent",cursor:"pointer",fontSize:13,lineHeight:"18px",color:"var(--color-text-muted)"},oD={position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0 0 0 0)",whiteSpace:"nowrap",border:0};var Ze=Z(J());var Ti=Z(J());var Cke="What the agent spent answering \u2014 the operating cost of these interactions, and of one on average",Ake="What the judge model spent scoring, recommending and ruling \u2014 the evaluation's own offline cost",cf="var(--color-text-muted)",_2=e=>e?.agent?.unit==="replay"?"replay":"sampled interaction",Lu=(e,t=!1)=>Pr(e,{estimated:t}),sJ=(e,{total:t=!1}={})=>{if(!e)return null;let r=[];if(e.agent){let n=[`agent ${Pr(e.agent.cost,{estimated:e.agent.estimated})}`,St(e.agent.count,_2(e))];e.agent.perInteraction!=null&&n.push(`${Lu(e.agent.perInteraction,e.agent.estimated)} each`),r.push(n.join(" \xB7 "))}return e.judge&&r.push(`judge ${Pr(e.judge.cost,{estimated:e.judge.estimated})} \xB7 ${St(e.judge.calls,"call")}`),t&&e.total!=null&&r.push(`total ${Pr(e.total,{estimated:e.totalEstimated})}`),r.join(" \xB7 ")};function df({label:e,value:t,sub:r,title:n,valueColor:o,testId:a,valueTestId:i,onClick:s,onKeyDown:l,role:u,tabIndex:c,style:d}){return Ti.default.createElement("div",{"data-testid":a,title:n,role:u,tabIndex:c,onClick:s,onKeyDown:l,style:{padding:"10px 16px",minWidth:0,marginLeft:-1,marginTop:-1,borderLeft:"1px solid var(--color-border-light)",borderTop:"1px solid var(--color-border-light)",...d}},Ti.default.createElement(Ue,{size:10,color:cf},e),Ti.default.createElement("div",{"data-testid":i,style:{marginTop:4,fontFamily:U,fontSize:18,fontWeight:700,lineHeight:1.1,color:o||"var(--color-text-primary)"}},t),Ti.default.createElement("div",{style:{marginTop:4,fontFamily:U,fontSize:11,color:"var(--color-text-secondary)",textWrap:"pretty"}},r))}var lJ={value:"\u2026",valueColor:cf,sub:"priced when the run completes"};function aD({spend:e,pending:t=!1,failed:r=!1}){let n=e?.agent||null,o=n&&(n.inputTokens!=null||n.outputTokens!=null)?` \xB7 in ${On(n.inputTokens)} \xB7 out ${On(n.outputTokens)}`:"",a=r?{value:"\u2014",valueColor:cf,sub:"nothing replayed"}:t?lJ:{value:n?Pr(n.cost,{estimated:n.estimated}):"\u2014",valueColor:n?.cost!=null?void 0:cf,sub:n?`${St(n.count,_2(e))}${n.perInteraction!=null?` \xB7 ${Lu(n.perInteraction,n.estimated)} per interaction`:""}${o}`:"nothing replayed or sampled"};return Ti.default.createElement(df,{label:"Agent cost",title:Cke,testId:"run-spend-agent",...a})}function iD({spend:e,judgedBy:t=null,pending:r=!1,failed:n=!1}){let o=e?.judge||null,i=o?[St(o.calls,"call"),T0(o),o.model,N0(o),"offline"].filter(Boolean).join(" \xB7 "):t&&t!=="rules"?`judge ${t} \xB7 spend not recorded`:"no judge asked \xB7 rules only",s=n?{value:"\u2014",valueColor:cf,sub:i}:r?lJ:{value:o?Pr(o.cost,{estimated:o.estimated}):"\u2014",valueColor:o?void 0:cf,sub:i};return Ti.default.createElement(df,{label:"Judge cost",title:Ake,testId:"run-spend-judge",...s})}function sD({spend:e,judgedBy:t=null,testId:r="run-spend"}){if(!e)return null;let{total:n,totalEstimated:o}=e;return Ti.default.createElement(je,{padding:0,testId:r,style:{overflow:"hidden"}},Ti.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))"}},Ti.default.createElement(aD,{spend:e}),Ti.default.createElement(iD,{spend:e,judgedBy:t}),Ti.default.createElement(df,{label:"Total",title:"Agent and judge together \u2014 what this run cost end to end",value:n!=null?Pr(n,{estimated:o}):"\u2014",sub:hZ(e),testId:"run-spend-total"})),o&&Ti.default.createElement("div",{"data-testid":"run-spend-legend",style:{padding:"6px 16px",borderTop:"1px solid var(--color-border-light)",fontFamily:U,fontSize:11,color:cf}},il))}function ff({run:e,testId:t,short:r=!1}){if(!e)return Ze.default.createElement(ke,{tone:"muted",testId:t},"no runs");if(e.status==="failed")return Ze.default.createElement(ke,{tone:"error",testId:t},"failed");if(e.status==="pending")return Ze.default.createElement(ke,{tone:"warning",testId:t},"queued");if(e.status==="running")return Ze.default.createElement(ke,{tone:"warning",testId:t},"running");if(e.samples_evaluated){let n=Vn(e.samples_passed||0,e.samples_evaluated);return Ze.default.createElement(ke,{tone:eu(uZ(e)),testId:t,title:r?`${n} passed`:void 0},r?n:`${n} passed`)}if(e.average_score!=null){let n=Number(e.average_score);return Ze.default.createElement(ke,{tone:n>=.85?"success":n>=.7?"warning":"error",testId:t,title:"mean score across criteria"},`score ${aa(n)}`)}return Ze.default.createElement(ke,{tone:"muted",testId:t},"no samples")}function A2({run:e,testId:t="run-version"}){let r=gZ(e);return r?Ze.default.createElement(ke,{tone:r.tone,size:10,style:{padding:"1px 6px"},title:r.title,testId:t},r.text):null}var pf={success:"var(--color-success)",error:"var(--color-error)",muted:"var(--color-text-muted)"},$0={same:"var(--color-text-muted)",new:"var(--color-info)",unrecorded:"var(--color-warning-text)"},uJ=Na.cost+32,Eke=e=>wh(e).filter(t=>t.samples>0).map(t=>({label:t.label,short:bn(t.label||"").short||"all samples",passed:t.passed,total:t.samples})),dJ=(e,t,r)=>[`@${r||t?.agent?.name||"agent"}`,nf(t,e),xh(t,e),O0(e)&&`against ${O0(e)}`].filter(Boolean).join(" \xB7 ");function E2({runs:e=[],runCount:t=null,evaluation:r,agentName:n,selectedId:o=null,previousRun:a=null,barsFor:i=null,deltaFor:s=null}){return e.map((l,u)=>{let c=Sh(l,u,e,t),d=e[u+1]||(u===0&&e.length===1?a:null),p=d?Number.isFinite(d.number)?d.number:c-1:null,f=s?s(l,d,p):E0(l,d,{olderNumber:p}),m=f&&d?mZ(l,d):null,y=Ni(l);return{run:l,number:c,latest:u===0,when:wo(l.completed_at||l.created_at),meta:dJ(l,r,n),bars:i?i(l):Eke(l),delta:f,version:m,spend:y,selected:l.id===o}})}function dD({runs:e=[],runCount:t=null,evaluation:r,agentName:n,selectedId:o=null,onOpen:a,previousRun:i=null,barsFor:s=null,deltaFor:l=null,title:u="Runs",testId:c="suite-runs-panel"}){let{darkMode:d}=ut(),p=E2({runs:e,runCount:t,evaluation:r,agentName:n,selectedId:o,previousRun:i,barsFor:s,deltaFor:l});return Ze.default.createElement(Zr,{title:u,meta:A0(e,t),testId:c,bodyStyle:{overflowX:"auto"}},p.length===0&&Ze.default.createElement(Jr,null,"[ ] no runs yet"),Ze.default.createElement("div",{style:{minWidth:920}},p.map(f=>Ze.default.createElement("div",{key:f.run.id,role:"button",tabIndex:0,"data-testid":"evaluation-run","data-run-id":f.run.id,"data-selected":f.selected?"true":"false",onClick:()=>a?.(f.run),onKeyDown:m=>{(m.key==="Enter"||m.key===" ")&&(m.preventDefault(),a?.(f.run))},className:f.selected?void 0:"hover:bg-[var(--color-hover)]",style:{display:"grid",gridTemplateColumns:"minmax(220px, 1.4fr) minmax(180px, 1fr) auto",gap:16,alignItems:"center",padding:"10px 14px 10px 12px",borderTop:"1px solid var(--color-border-light)",cursor:"pointer",background:f.selected?"var(--color-muted)":void 0,borderLeft:`2px solid ${f.selected?"var(--color-accent-ui)":"transparent"}`}},Ze.default.createElement("div",{style:{minWidth:0}},Ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Ze.default.createElement("span",{style:{fontFamily:U,fontSize:12,fontWeight:700,color:"var(--color-text-primary)"}},`Run #${f.number}`),Ze.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},f.when),f.latest&&Ze.default.createElement(ke,{tone:"info",size:10,style:{padding:"1px 6px"}},"latest"),f.run.status==="failed"&&Ze.default.createElement(ke,{tone:"error",size:10,style:{padding:"1px 6px"}},"failed"),(f.run.status==="running"||f.run.status==="pending")&&Ze.default.createElement(ke,{tone:"warning",size:10,style:{padding:"1px 6px"}},f.run.status==="pending"?"queued":"running"),Ze.default.createElement(A2,{run:f.run})),Ze.default.createElement("div",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)",marginTop:3,textWrap:"pretty"}},f.meta),f.run.status==="failed"&&f.run.error_message&&Ze.default.createElement("div",{style:{fontFamily:U,fontSize:11,color:"var(--color-error)",marginTop:3,textWrap:"pretty"}},`[!] ${f.run.error_message}`)),Ze.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:4,minWidth:0}},f.bars.map(m=>m.passed==null||m.total==null?Ze.default.createElement("div",{key:m.label||"all",style:{display:"flex",alignItems:"center",gap:8}},Ze.default.createElement("span",{style:{fontFamily:U,fontSize:10,color:"var(--color-text-muted)",width:128,flexShrink:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:m.label||void 0},m.short),Ze.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},"\u2014")):Ze.default.createElement(tu,{key:m.label||"all",label:m.short,passed:m.passed,total:m.total}))),Ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12}},Ze.default.createElement(ad,{darkMode:d,cells:[{key:"agent",width:uJ,title:f.spend?.agent?`Agent: ${St(f.spend.agent.count,_2(f.spend))}${f.spend.agent.perInteraction!=null?` \xB7 ${Lu(f.spend.agent.perInteraction,f.spend.agent.estimated)} per interaction`:""}${f.spend.agent.estimated?" \xB7 ~ estimated from tokens \xD7 model rates":""}`:void 0,empty:"Agent cost: nothing replayed or sampled in this run",content:f.spend?.agent?.cost!=null&&Ze.default.createElement("span",{style:{fontFamily:U,fontSize:11}},Ze.default.createElement("span",{style:{color:"var(--color-text-muted)"}},"agent "),Pr(f.spend.agent.cost,{estimated:f.spend.agent.estimated}))},{key:"judge",width:uJ,title:f.spend?.judge?`Judge: ${St(f.spend.judge.calls,"call")}${T0(f.spend.judge)?` \xB7 ${T0(f.spend.judge)}`:""}${N0(f.spend.judge)?` \xB7 ${N0(f.spend.judge)}`:""} \xB7 offline`:void 0,empty:"Judge cost: no judge was asked in this run",content:f.spend?.judge?.cost!=null&&Ze.default.createElement("span",{style:{fontFamily:U,fontSize:11}},Ze.default.createElement("span",{style:{color:"var(--color-text-muted)"}},"judge "),Pr(f.spend.judge.cost,{estimated:f.spend.judge.estimated}))},{key:"delta",width:136,title:f.delta?`Samples passed, against the run before${f.version?` \xB7 ${f.version.text}`:""}`:void 0,empty:"Movement is read once the run completes",content:f.delta&&Ze.default.createElement("span",{style:{display:"flex",flexDirection:"column",gap:1}},Ze.default.createElement("span",{style:{fontFamily:U,fontSize:11,fontWeight:600,color:pf[f.delta.tone]||pf.muted}},f.delta.text),f.version&&Ze.default.createElement("span",{"data-testid":"run-version-delta",style:{fontFamily:U,fontSize:10,color:$0[f.version.kind]||$0.same}},f.version.text))},{key:"badge",width:132,content:Ze.default.createElement(ff,{run:f.run,testId:f.latest?"suite-pass-badge":void 0})},{key:"open",width:20,content:Ze.default.createElement(wa,{kind:"link",color:"var(--color-info)",weight:400})}]}))))))}var cJ='[data-testid="evaluation-run"]',Nke=150,lD=(e,t)=>e&&t!=null?e.querySelector(`[data-run-id="${CSS.escape(String(t))}"]`):null,uD=(e,t,r="y")=>{if(!e||!t)return;if(r==="x"){let o=t.offsetLeft;(oe.scrollLeft+e.clientWidth)&&(e.scrollLeft=Math.max(o-8,0));return}let n=t.offsetTop;(ne.scrollTop+e.clientHeight-t.offsetHeight)&&(e.scrollTop=Math.max(n-8,0))},Tke=(e=[])=>{let t=e.filter(o=>o.total!=null),r=o=>t.reduce((a,i)=>a+(Number(i[o])||0),0),n=r("total");return n>0?{passed:r("passed"),failed:r("failed"),total:n}:null},Oke=(e,{evaluation:t,agentName:r,bars:n,selectedId:o})=>({run:e,number:Number.isFinite(e.number)?e.number:"?",latest:!1,when:wo(e.completed_at||e.created_at),meta:dJ(e,t,r),bars:n||[],delta:null,version:null,spend:Ni(e),selected:e.id===o}),cD={fontFamily:U,fontSize:10,color:"var(--color-text-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"};function Pke({bar:e}){let t=e.title||void 0;return e.passed==null||e.total==null?Ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8},title:t},Ze.default.createElement("span",{style:{...cD,width:96,flexShrink:0},title:e.label||void 0},e.short),Ze.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},"\u2014")):Ze.default.createElement("div",{title:t},Ze.default.createElement(tu,{label:e.short,labelWidth:96,passed:e.passed,total:e.total,height:4,valueWidth:44}))}function C2({row:e,selected:t=!1,tabIndex:r=-1,card:n=!1,onOpen:o,noteFor:a=null,style:i}){let{run:s}=e,l=a?a(s):null,u=n&&s.status==="running"?Tke(e.bars):null,c=JZ(s.status==="failed"?e.bars.filter(p=>p.passed!=null&&p.total!=null):e.bars),d=()=>o?.(s);return Ze.default.createElement("div",{role:"button",tabIndex:r,"aria-current":t?"true":void 0,"data-testid":"evaluation-run","data-run-id":s.id,"data-selected":t?"true":"false",onClick:d,onKeyDown:p=>{(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),d())},className:t?void 0:"hover:bg-[var(--color-hover)]",title:e.meta,style:{display:"flex",flexDirection:"column",gap:5,padding:"9px 12px 9px 10px",borderTop:"1px solid var(--color-border-light)",cursor:"pointer",background:t?"var(--color-muted)":void 0,borderLeft:`2px solid ${t?"var(--color-accent-ui)":"transparent"}`,...i}},Ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0,flexWrap:n?"wrap":"nowrap"}},Ze.default.createElement("span",{style:{fontFamily:U,fontSize:12,fontWeight:700,color:"var(--color-text-primary)"}},`#${e.number}`),Ze.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},e.when),Ze.default.createElement(A2,{run:s}),Ze.default.createElement("span",{style:{marginLeft:"auto",flexShrink:0}},Ze.default.createElement(ff,{run:s,short:!0,testId:e.latest?"suite-pass-badge":void 0}))),c.map(p=>Ze.default.createElement(Pke,{key:p.label||"all",bar:p})),u&&Ze.default.createElement(Z1,{parts:[{value:u.passed,tone:"success"},{value:u.failed,tone:"error"}],total:u.total,height:3,title:`${u.passed} of ${u.total} passed so far${u.failed?` \xB7 ${u.failed} failed`:""}`,testId:"evaluation-run-progress"}),s.status==="failed"&&s.error_message&&Ze.default.createElement("div",{style:{...cD,color:"var(--color-error)"},title:s.error_message},`[!] ${s.error_message}`),l&&Ze.default.createElement("div",{"data-testid":"evaluation-run-note",style:cD,title:l},l),(e.delta||e.spend?.agent?.cost!=null)&&Ze.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,fontFamily:U,fontSize:10,minWidth:0}},e.delta&&Ze.default.createElement("span",{style:{fontWeight:600,color:pf[e.delta.tone]||pf.muted,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:e.version?.text},e.delta.text),e.spend?.agent?.cost!=null&&Ze.default.createElement("span",{style:{marginLeft:"auto",color:"var(--color-text-muted)",whiteSpace:"nowrap"}},Pr(e.spend.agent.cost,{estimated:e.spend.agent.estimated}))))}function pD({rows:e=null,runs:t=[],runCount:r=null,evaluation:n,agentName:o,selectedId:a=null,onOpen:i,previousRun:s=null,barsFor:l=null,deltaFor:u=null,noteFor:c=null,linkedRun:d=null,linkedBars:p=null,layout:f="rail",limit:m=null,maxHeight:y=null,expandedHeight:b=PZ,testId:g="suite-runs-panel",style:h}){let v=e??E2({runs:t,runCount:r,evaluation:n,agentName:o,selectedId:a,previousRun:s,barsFor:l,deltaFor:u}),x=t.length||!e?t:e.map(q=>q.run),S=a??v.find(q=>q.selected)?.run.id??null,k=q=>q.run.id===S,w=d&&!v.some(q=>q.run.id===d.id)?Oke(d,{evaluation:n,agentName:o,bars:p,selectedId:S}):null,_=f==="strip",A=_?fZ(v.map(q=>q.run),{limit:m,selectedId:S}).map(q=>v[q]):v,C=w?[w,...A]:A,N=v.length-A.length,L=_&&Number.isFinite(m)&&N>0,Q=sf(x,r)-x.length,B=(C.find(k)||C[0])?.run.id??null,K=(v.find(k)||v[0])?.run.id??null,[T,O]=(0,Ze.useState)(!1),I=(0,Ze.useRef)(null),P=(0,Ze.useRef)(null),j=(0,Ze.useRef)(null),M=(0,Ze.useRef)(null);(0,Ze.useEffect)(()=>()=>clearTimeout(M.current),[]),(0,Ze.useEffect)(()=>{L||O(!1)},[L]);let W=new Map(C.concat(v).map(q=>[String(q.run.id),q.run])),Y=q=>{clearTimeout(M.current),M.current=setTimeout(()=>i?.(q),Nke)},z=(q,{next:oe,prev:Me,axis:fe})=>le=>{let R=q.current,te=R?Array.from(R.querySelectorAll(cJ)):[];if(te.length===0)return;let He=le.target.closest(cJ),_e=te.indexOf(He),D;if(le.key===oe)D=te[Math.min(_e+1,te.length-1)];else if(le.key===Me)D=te[Math.max(_e-1,0)];else if(le.key==="Home")D=te[0];else if(le.key==="End")D=te[te.length-1];else return;if(le.preventDefault(),!D||D===He)return;D.focus({preventScroll:!0}),uD(R,D,fe);let G=W.get(D.dataset.runId);G&&Y(G)};Vs(()=>{if(T||j.current==null)return;let q=lD(P.current,j.current);j.current=null,q?.focus({preventScroll:!0})},[T]),Vs(()=>{S!=null&&(uD(P.current,lD(P.current,S),"x"),uD(I.current,lD(I.current,S),"y"))},[S,f,T]);let V=Q>0&&Ze.default.createElement("div",{style:{fontFamily:U,fontSize:10,color:"var(--color-text-muted)",padding:"8px 12px",borderTop:"1px solid var(--color-border-light)"}},`${St(Q,"older run")} \xB7 reachable by link`);return _?Ze.default.createElement(Zr,{title:"Runs",meta:A0(x,r),testId:g,style:h},Ze.default.createElement("div",{ref:P,"data-testid":"run-strip",onKeyDown:z(P,{next:"ArrowRight",prev:"ArrowLeft",axis:"x"}),style:{display:"flex",overflowX:"auto",scrollbarGutter:"stable",position:"relative"}},C.length===0&&Ze.default.createElement(Jr,{style:{flex:1}},"[ ] no runs yet"),C.map((q,oe)=>Ze.default.createElement(C2,{key:q.run.id,row:q,card:!0,selected:k(q),tabIndex:B===q.run.id?0:-1,onOpen:i,noteFor:c,style:{flex:"1 1 0",minWidth:200,borderTop:"none",borderRight:oeO(q=>!q),className:"bg-transparent hover:bg-[var(--color-hover)]",style:{display:"block",width:"100%",textAlign:"left",padding:"6px 12px",border:0,borderTop:"1px solid var(--color-border-light)",cursor:"pointer",fontFamily:U,fontSize:11,color:"var(--color-text-secondary)"}},T?`[-] latest ${m}`:`[+] ${St(N,"earlier run")}`),L&&T&&Ze.default.createElement("div",{ref:I,onKeyDown:z(I,{next:"ArrowDown",prev:"ArrowUp",axis:"y"}),style:{maxHeight:b,overflowY:"auto",position:"relative",scrollbarGutter:"stable"}},v.map(q=>Ze.default.createElement(C2,{key:q.run.id,row:q,selected:k(q),tabIndex:K===q.run.id?0:-1,noteFor:c,onOpen:oe=>{j.current=oe.id,O(!1),i?.(oe)}})),V)):Ze.default.createElement(Zr,{title:"Runs",meta:A0(x,r),testId:g,style:{display:"flex",flexDirection:"column",maxHeight:y||void 0,...h},bodyStyle:{flex:1,minHeight:0,display:"flex",flexDirection:"column"}},Ze.default.createElement("div",{ref:I,onKeyDown:z(I,{next:"ArrowDown",prev:"ArrowUp",axis:"y"}),style:{flex:1,minHeight:0,overflowY:"auto",position:"relative",scrollbarGutter:"stable"}},w&&Ze.default.createElement(Ze.default.Fragment,null,Ze.default.createElement("div",{"data-testid":"runs-rail-linked",style:{fontFamily:U,fontSize:10,color:"var(--color-text-muted)",padding:"4px 12px",background:"var(--color-muted)"}},`linked \xB7 older than the latest ${x.length}`),Ze.default.createElement(C2,{row:w,selected:k(w),tabIndex:B===w.run.id?0:-1,onOpen:i,noteFor:c})),!w&&v.length===0&&Ze.default.createElement(Jr,null,"[ ] no runs yet"),v.map(q=>Ze.default.createElement(C2,{key:q.run.id,row:q,selected:k(q),tabIndex:B===q.run.id?0:-1,onOpen:i,noteFor:c})),V))}var pJ=(e=[],t=null)=>{let r=e[0],n=Number.isFinite(t)?Math.max(t,e.length):e.length;return[St(n,"run"),r?`latest #${Sh(r,0,e,t)} ${wo(r.completed_at||r.created_at)}`:null,r?.status==="complete"&&r.samples_evaluated?`${Vn(r.samples_passed||0,r.samples_evaluated)} passed`:null].filter(Boolean).join(" \xB7 ")};var Mt=Z(J());var dd=Z(J());function _l({text:e=null,url:t=null,label:r="Copy as Markdown",title:n,testId:o="copy-markdown",style:a}){let[i,s]=(0,dd.useState)("idle"),l=(0,dd.useRef)(null);return(0,dd.useEffect)(()=>()=>clearTimeout(l.current),[]),!e&&!t?null:dd.default.createElement(ce,{size:"sm",variant:"ghost",onClick:async c=>{c?.stopPropagation?.();let d=e?await ud(e):await aZ(t);s(d?"copied":"failed"),clearTimeout(l.current),l.current=setTimeout(()=>s("idle"),2e3)},testId:o,title:n||"Copy as GitHub-flavored Markdown, for an issue or a pull request",style:{padding:"4px 8px",fontSize:12,color:i==="failed"?"var(--color-error)":i==="copied"?"var(--color-success-text)":"var(--color-text-secondary)",...a}},i==="copied"?"Copied":i==="failed"?"Copy failed":r)}var Oi="var(--color-text-muted)",fD=3,fJ={passed:0,total:0},mJ={items:0,faults:0,scenarios:0},Mke={keys:[],dropped:[]},Cl=(e,t,r={})=>({fontFamily:U,fontSize:e,color:t,...r}),L0=e=>typeof window>"u"?"#":Re(e),Ike=e=>{let[t,r]=(0,Mt.useState)(()=>Date.now());return(0,Mt.useEffect)(()=>{if(!e)return;r(Date.now());let n=setInterval(()=>r(Date.now()),1e3);return()=>clearInterval(n)},[e]),t};function gJ({short:e,label:t}){return Mt.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},Mt.default.createElement("span",{style:Cl(10,Oi,{width:110,flexShrink:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),title:t||void 0},e),Mt.default.createElement("span",{style:Cl(11,Oi)},"\u2014"))}function mD({run:e,runNumber:t=null,latestNumber:r=null,isLatest:n=!1,runningElsewhere:o=null,agentName:a="agent",scenarioCount:i=0,groupCount:s=0,columns:l=[],judgedBy:u="rules",bars:c=[],delta:d=null,version:p=null,totals:f=fJ,settledCount:m=0,settledFailed:y=0,expectedResults:b=0,running:g=!1,loading:h=!1,spend:v=null,fixSummary:x=mJ,selectionLabel:S=null,sandboxLabel:k=null,reportPath:w=null,rerun:_=Mke,onSelectLatest:A,onWatchLatest:C,onJumpToFix:N,onRerunFailed:L,onRunAgain:Q}){let{darkMode:B}=ut(),K=Ike(g);if(!e)return null;let T=gh(w),O=e.status==="failed",I=e.status==="complete",P=g?`started ${wo(e.created_at)}`:wo(e.completed_at||e.created_at),j=`@${a} \xB7 ${St(i,"scenario")}${s?` in ${St(s,"group")}`:""} \xD7 ${St(l.length,"model")} \xB7 judged by ${u}${k?` \xB7 against ${k}`:""}`,M=_?.keys||[],W=_?.dropped||[],Y=W.length?`${M.length} of ${M.length+W.length}`:`${M.length}`,z="Replay every scenario that failed on any model, under the models in the picker"+(W.length?` \xB7 not replayed (disabled or removed): ${W.join(", ")}`:""),V=KZ(e,K),q=[{key:"duration",width:Na.duration,content:V!=null&&Mt.default.createElement("span",{style:Cl(11)},g?GZ(V):rD(V)),title:e.usage?.runtime_ms!=null?"Wall clock, as the run recorded it":"From the run's start to its end",empty:"Duration is read once the run starts"},{key:"delta",width:136,content:d&&Mt.default.createElement("span",{style:{display:"flex",flexDirection:"column",gap:1}},Mt.default.createElement("span",{style:Cl(11,pf[d.tone]||pf.muted,{fontWeight:600})},d.text),p&&Mt.default.createElement("span",{"data-testid":"run-version-delta",style:Cl(10,$0[p.kind]||$0.same)},p.text)),title:"Samples passed, against the run before",empty:I&&!d?"Movement is read against the run before, which is not loaded":"Movement is read once the run completes"},{key:"badge",content:Mt.default.createElement(ff,{run:e,testId:"suite-run-badge"})}],oe=f||fJ,Me=oe.total>0?oe.passed/oe.total:null,fe=O?{value:"\u2014",valueColor:Oi,sub:m?`${m} of ${b} before it failed`:"run failed"}:g?{value:`${oe.passed} passed`,sub:Mt.default.createElement("span",{"data-testid":"suite-run-progress"},`${m} of ${b} results in${y?` \xB7 ${y} failed`:""}`)}:{value:Vn(oe.passed,oe.total),valueColor:Me==null?Oi:Dn[eu(Me)].text,sub:`${Math.max(oe.total-oe.passed,0)} failed \xB7 ${St(i,"scenario")} \xD7 ${St(l.length,"model")}`},le=c.slice(0,fD),R=Mt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:5,fontWeight:400,lineHeight:"normal"}},c.length===0&&l.length===0&&Mt.default.createElement("span",{style:Cl(11,Oi)},"\u2014"),c.length===0&&l.map(ee=>Mt.default.createElement(gJ,{key:ee,short:bn(ee).short,label:ee})),le.map(ee=>ee.passed==null||ee.total==null?Mt.default.createElement(gJ,{key:ee.label||"all",short:ee.short,label:ee.label}):Mt.default.createElement(tu,{key:ee.label||"all",label:ee.short,labelWidth:110,passed:ee.passed,total:ee.total,height:4,valueWidth:48}))),te=c.length>fD?Mt.default.createElement("span",{style:Cl(10,Oi)},`+${c.length-fD} more`):void 0,He=x||mJ,_e=O?{value:"\u2014",valueColor:Oi,sub:"\u2014"}:h?{value:"\u2026",valueColor:Oi,sub:"loading\u2026"}:g?{value:"\u2026",valueColor:Oi,sub:"scoring\u2026"}:He.items>0?{value:He.items,valueColor:Dn.error.text,sub:Mt.default.createElement("span",{style:{color:"var(--color-info)"}},`${St(He.faults,"fault")} across ${St(He.scenarios,"scenario")} ${nv.link}`)}:{value:"0",valueColor:Oi,sub:"nothing to fix"},D=()=>N?.(),E=O?{}:{role:"button",tabIndex:0,onClick:D,onKeyDown:ee=>{(ee.key==="Enter"||ee.key===" ")&&(ee.preventDefault(),D())},style:{cursor:"pointer"}},$=`The faults this run found, grouped into fixes${O?"":" \u2014 opens What to fix"}`;return Mt.default.createElement(je,{padding:0,testId:"suite-run-header",style:{overflow:"hidden"}},Mt.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",padding:"10px 16px",borderBottom:"1px solid var(--color-border-light)"}},Mt.default.createElement("span",{style:Cl(13,"var(--color-text-primary)",{fontWeight:700})},`Run #${t??"?"}`),Mt.default.createElement("span",{style:Cl(11,Oi,{whiteSpace:"nowrap"})},P),n&&Mt.default.createElement(ke,{tone:"info",size:10,style:{padding:"1px 6px"}},"latest"),Mt.default.createElement(A2,{run:e}),Mt.default.createElement("span",{style:Cl(11,Oi,{minWidth:0,textWrap:"pretty"})},j),S&&Mt.default.createElement(ke,{tone:"muted",size:10,style:{padding:"1px 6px"},testId:"suite-run-selection"},S),!n&&Mt.default.createElement(Gr,{onClick:()=>A?.(),title:"Show the suite's latest run",testId:"suite-latest-run"},`latest${r!=null?` #${r}`:""}`),o&&Mt.default.createElement(Gr,{onClick:()=>C?.(),title:"A newer run is going; show it as it replays",testId:"suite-watch-latest"},`#${o.number??r??"?"} is running \xB7 watch`),I&&!h&&M.length>0&&Mt.default.createElement(Gr,{onClick:()=>L?.(),title:z,testId:"suite-rerun-failed"},`re-run failed (${Y})`),O&&Mt.default.createElement(Gr,{onClick:()=>Q?.(),title:"Replay what this run was asked to, under the models in the picker",testId:"suite-run-again"},"run again"),w&&Mt.default.createElement(Gr,{href:L0(w),onClick:()=>lt(w),title:"The run rendered as a report page",testId:"suite-run-report"},"run report"),T&&Mt.default.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:10,flexWrap:"wrap"},"data-testid":"suite-run-exports"},Mt.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:Oi}},"download"),Mt.default.createElement(Gr,{href:L0(T.html),title:"The report as one self-contained HTML page",testId:"suite-run-download-html"},"html"),Mt.default.createElement(Gr,{href:L0(T.json),title:"The run as the evaluation report envelope another install imports",testId:"suite-run-download-json"},"json"),Mt.default.createElement(Gr,{href:L0(T.md),title:"The report as GitHub-flavored Markdown",testId:"suite-run-download-md"},"markdown"),Mt.default.createElement(_l,{url:L0(T.markdown),label:"copy markdown",testId:"suite-run-copy-markdown",title:"Copy the whole report as GitHub-flavored Markdown",style:{padding:"0 4px",fontFamily:U,fontSize:11}})),Mt.default.createElement("span",{style:{marginLeft:"auto"}},Mt.default.createElement(ad,{darkMode:B,cells:q}))),Mt.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))"}},Mt.default.createElement(df,{label:"Passed",title:"Results that passed, over every scenario \xD7 model the run covers",testId:"suite-run-passed",...fe}),Mt.default.createElement(df,{label:"Models",title:"Each model's passed scenarios \u2014 counted from the results that have landed while the run goes",testId:"suite-run-models",value:R,sub:te}),Mt.default.createElement(aD,{spend:v,pending:g,failed:O}),Mt.default.createElement(iD,{spend:v,judgedBy:u,pending:g,failed:O}),Mt.default.createElement(df,{label:"To fix",title:$,testId:"suite-to-fix",...E,..._e})),g&&b>0&&Mt.default.createElement(Z1,{parts:[{value:m-y,tone:"success"},{value:y,tone:"error"}],total:b,height:4,radius:0,role:"progressbar","aria-label":"Results in","aria-valuemin":0,"aria-valuemax":b,"aria-valuenow":m,"aria-valuetext":`${m} of ${b} results in${y?`, ${y} failed`:""}`,testId:"suite-run-progress-bar"}),O&&Mt.default.createElement("div",{"data-testid":"suite-run-error",style:{padding:"8px 16px",background:"var(--color-error-soft)",color:"var(--color-error-text)",fontSize:13}},`[!] ${e.error_message||"unknown error"}`))}var Oo=Z(J());function gf({evaluation:e,run:t=null,keys:r=null,spend:n=null,spendTotal:o=!1,reportPath:a=null,onDelete:i,deleting:s=!1,deleteLabel:l="Delete evaluation"}){let u=(r||(e.criteria||[]).map(m=>m.key)).map(m=>_0(e,m)),c={fontFamily:U,fontSize:11,color:"var(--color-text-muted)"},d={fontFamily:U,fontSize:11,color:"var(--color-text-cell)"},p=(m,y,b)=>Oo.default.createElement("span",{"data-testid":y,title:b,style:{...c,fontSize:10,textTransform:"uppercase",letterSpacing:"0.04em",marginLeft:2}},m),f=sJ(n,{total:o});return Oo.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:6,paddingTop:12,borderTop:"1px solid var(--color-border-light)"},"data-testid":"criteria-footer"},Oo.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap",rowGap:4}},Oo.default.createElement("span",{style:c},"judge"),Oo.default.createElement("span",{style:{...d,fontWeight:600}},xh(e,t)),Oo.default.createElement("span",{style:{...c,marginLeft:8}},"criteria"),u.length===0&&Oo.default.createElement("span",{style:c},e.judge_kind==="judge_defined"?"defined by the judge on the first run":e.scenario_suite?"each scenario's own expectations":"\u2014"),u.map((m,y)=>Oo.default.createElement(Oo.default.Fragment,{key:m.key||y},y>0&&Oo.default.createElement("span",{style:c},"\xB7"),Oo.default.createElement("span",{style:d,title:vh(m)||void 0},g2(m)),kl(m)==="telemetry"&&p("telemetry","score-source-telemetry","Scored from the agent's telemetry traces, not from sampled generations"),kl(m)==="judge"&&p("judge",void 0,"Scored by the judge model; needs provider credentials"))),Oo.default.createElement("span",{style:{...c,marginLeft:8},title:"A sample or scenario passes at or above this score","data-testid":"criteria-threshold"},Q1(.7))),Oo.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:16,flexWrap:"wrap",rowGap:4}},Oo.default.createElement("span",{style:{...c,whiteSpace:"nowrap"},title:"Run this evaluation again from the API"},"POST /api/evaluations/",e.id,"/run"),f&&Oo.default.createElement("span",{style:{...c,minWidth:0,textWrap:"pretty"},title:"What this run spent: the agent's replays or sampled interactions, and the judge's own calls"},f),f&&n?.totalEstimated&&Oo.default.createElement("span",{style:{...c,whiteSpace:"nowrap"},"data-testid":"criteria-cost-legend"},il),a&&Oo.default.createElement(Gr,{href:Re(a),onClick:()=>lt(a),title:"The run rendered as a report page"},"run report"),i&&Oo.default.createElement("button",{type:"button",onClick:m=>{m.stopPropagation(),i()},disabled:s,title:"Delete this evaluation and its runs",style:{marginLeft:"auto",background:"transparent",border:"none",padding:0,cursor:s?"not-allowed":"pointer",fontFamily:U,fontSize:11,color:"var(--color-error)",opacity:s?.5:1}},s?"Deleting\u2026":l)))}var Dke=["tools","contains","not_contains"];function jke(e){let t=e.expectations||{},r=[];return Dke.forEach(n=>{t[n]?.length&&r.push(`${n}: ${t[n].join(", ")}`)}),e.notes&&r.push(`notes: ${e.notes}`),r.push(`key: ${e.key}`),`${e.prompt} | ${r.join(" | ")}`}function hJ(e){let t=[],r=null;return e.forEach(n=>{(n.group||"")!==(r||"")&&(r=n.group,r&&t.push(`# ${r}`)),t.push(jke(n))}),t.join(` -`)}var se=Z(J());var jr=Z(J());var $ke=e=>e>=.85?"success":e>=.7?"warning":"error";function Ch({label:e,children:t,title:r,nowrap:n=!0}){return jr.default.createElement("span",{style:{whiteSpace:n?"nowrap":"normal"},title:r},e," ",jr.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},t))}function z0({label:e,short:t,provider:r,winner:n=!1,passed:o,total:a,avgScore:i,criteria:s,latencyMs:l,p50Ms:u=null,p95Ms:c=null,inputTokens:d,outputTokens:p,cost:f,perInteraction:m,estimated:y=!1,judgeCost:b=null,judgeCalls:g=0,judgeEstimated:h=!1,unit:v="interaction",badges:x=[],note:S,testId:k="model-scorecard"}){let w=o!=null&&a>0,_=w?o/a:null,A=w?eu(_):i!=null?$ke(i):"muted",C=Dn[A].strong,N=b!=null||g>0;return jr.default.createElement(je,{padding:"14px 16px",testId:k,style:{display:"flex",flexDirection:"column",gap:10,minWidth:0}},jr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},jr.default.createElement("span",{style:{fontFamily:U,fontSize:14,fontWeight:700,color:"var(--color-text-primary)"},title:e||void 0},t||e||"all samples"),r&&jr.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},r),n&&jr.default.createElement(ke,{tone:"info",size:10,style:{padding:"1px 6px"},testId:"judges-pick"},"judge's pick")),jr.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,flexWrap:"wrap"}},jr.default.createElement("span",{style:{fontFamily:U,fontSize:26,fontWeight:700,lineHeight:1,color:C},"data-testid":"model-scorecard-headline"},w?Vn(o,a):i!=null?aa(i):"\u2014"),jr.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-secondary)"}},w?`${v==="scenario"?"scenarios":"samples"} passed`:i!=null?"mean score":"nothing scored")),jr.default.createElement("span",{style:{display:"block",height:6,borderRadius:999,background:"var(--color-muted)",overflow:"hidden"}},jr.default.createElement("span",{style:{display:"block",height:"100%",borderRadius:999,background:C,width:`${Math.round((_??i??0)*100)}%`}})),jr.default.createElement("div",{style:{display:"flex",gap:14,flexWrap:"wrap",fontFamily:U,fontSize:11,color:"var(--color-text-secondary)"}},jr.default.createElement(Ch,{label:"score"},aa(i)),s&&jr.default.createElement(Ch,{label:"criteria"},Vn(s.cleared,s.scored)),l!=null&&jr.default.createElement(Ch,{label:"latency"},Bn(l)),u!=null&&jr.default.createElement(Ch,{label:"p50 / p95"},`${Bn(u)} / ${Bn(c)}`),(d!=null||p!=null)&&jr.default.createElement("span",{style:{whiteSpace:"nowrap"}},jr.default.createElement("span",{style:{color:"var(--color-token-in)"}},"in")," ",jr.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},y0(d))," \xB7 ",jr.default.createElement("span",{style:{color:"var(--color-token-out)"}},"out")," ",jr.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},y0(p))),f!=null&&jr.default.createElement(Ch,{label:"cost",title:`What the agent spent under this model${m!=null?` \u2014 ${Lu(m,y)} per ${v}`:""}${y?` \xB7 ${Em()}`:""}`},Pr(f,{estimated:y}),m!=null&&jr.default.createElement("span",{style:{fontWeight:400,color:"var(--color-text-muted)"}},` \xB7 ${Lu(m,y)} / ${v}`)),N&&jr.default.createElement(Ch,{label:"judge",title:"What the judge spent on this model's answers \u2014 the evaluation's own cost, not the model's"},Pr(b,{estimated:h}),jr.default.createElement("span",{style:{fontWeight:400,color:"var(--color-text-muted)"}},` \xB7 ${St(g,"call")}`))),(x.length>0||S)&&jr.default.createElement("div",{style:{display:"flex",gap:6,flexWrap:"wrap",alignItems:"center"}},x.map(L=>jr.default.createElement(ke,{key:L.text,tone:L.tone,testId:L.testId},L.text)),S&&jr.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:S.color||"var(--color-text-muted)"}},S.text)))}var vr=Z(J());var gD={fontFamily:U,fontSize:10,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",color:"var(--color-text-muted)",padding:"8px 12px",textAlign:"left",verticalAlign:"bottom",whiteSpace:"nowrap"},hD={padding:"9px 12px",verticalAlign:"top",fontSize:13,color:"var(--color-text-cell)",borderTop:"1px solid var(--color-border-light)"},hf={...hD,fontFamily:U,fontSize:12,whiteSpace:"nowrap",textAlign:"right"},yf={...gD,textAlign:"right"},B0=e=>e==null?"var(--color-text-muted)":e>=.85?"var(--color-success-text)":e>=.5?"var(--color-warning-text)":"var(--color-error)";function F0({rows:e=[],unit:t="scenario",judgedBy:r=null,judgeEstimated:n=!1,title:o="Model comparison",testId:a="model-comparison-table"}){if(!e.length)return null;let i=e.some(p=>p.cost!=null),s=e.some(p=>p.judgeCost!=null||p.judgeCalls>0),l=e.some(p=>p.avgTokens!=null),u=e.some(p=>p.avgDurationMs!=null),c=e.some(p=>p.p50DurationMs!=null),d=e.some(p=>p.cost!=null&&p.estimated||p.judgeCost!=null&&n);return vr.default.createElement(je,{padding:0,style:{overflow:"hidden"},testId:a},vr.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:10,padding:"10px 12px",flexWrap:"wrap"}},vr.default.createElement(Ue,null,o),vr.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},`${e.length} models \xB7 best first${r?` \xB7 judged by ${r}`:""}`),d&&vr.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"},"data-testid":"model-comparison-legend"},il)),vr.default.createElement("div",{style:{overflowX:"auto"}},vr.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},vr.default.createElement("thead",null,vr.default.createElement("tr",{style:{background:"var(--color-muted)"}},vr.default.createElement("th",{style:gD},"Model"),vr.default.createElement("th",{style:yf},"Passed"),vr.default.createElement("th",{style:yf},"Mean score"),u&&vr.default.createElement("th",{style:yf},"Avg latency"),c&&vr.default.createElement("th",{style:yf,title:"Median and 95th percentile latency, nearest rank"},"P50 / P95"),l&&vr.default.createElement("th",{style:yf,title:`Average input + output tokens per ${t}`},"Avg tokens"),i&&vr.default.createElement("th",{style:yf,title:`Cohort spend, and per ${t}`},"Cost"),s&&vr.default.createElement("th",{style:yf,title:"What the judge spent scoring this model's answers"},"Judge"),vr.default.createElement("th",{style:{...gD,width:"34%"}},"Typical fault"))),vr.default.createElement("tbody",null,e.map(p=>{let{short:f,provider:m}=bn(p.label,p.provider||"");return vr.default.createElement("tr",{key:p.label,"data-testid":"model-comparison-row","data-model":p.label},vr.default.createElement("td",{style:{...hD,whiteSpace:"nowrap"}},vr.default.createElement("span",{style:{fontFamily:U,fontSize:12,fontWeight:600,color:"var(--color-text-primary)"},title:p.label},f),p.winner&&vr.default.createElement("span",{style:{marginLeft:6,fontFamily:U,fontSize:10,fontWeight:700,color:"var(--color-warning-text)"},title:"the judge's pick"},"\u2605 pick"),m&&vr.default.createElement("span",{style:{display:"block",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},m)),vr.default.createElement("td",{style:{...hf,color:B0(p.passRate),fontWeight:600}},Vn(p.passed,p.total)),vr.default.createElement("td",{style:hf},aa(p.avgScore)),u&&vr.default.createElement("td",{style:hf},p.avgDurationMs==null?"\u2014":Bn(p.avgDurationMs)),c&&vr.default.createElement("td",{style:hf,"data-testid":"model-comparison-percentiles"},p.p50DurationMs==null?"\u2014":`${Bn(p.p50DurationMs)} / ${Bn(p.p95DurationMs)}`),l&&vr.default.createElement("td",{style:hf,title:p.avgInputTokens==null?void 0:`${Math.round(p.avgInputTokens)} in \xB7 ${Math.round(p.avgOutputTokens||0)} out per ${t}`},p.avgTokens==null?"\u2014":On(Math.round(p.avgTokens))),i&&vr.default.createElement("td",{style:hf,title:p.cost!=null&&p.estimated?Em():void 0,"data-testid":"model-comparison-cost"},Pr(p.cost,{estimated:p.estimated}),p.costPerInteraction!=null&&vr.default.createElement("span",{style:{display:"block",fontWeight:400,color:"var(--color-text-muted)"}},`${Pr(p.costPerInteraction,{estimated:p.estimated})}/${t}`)),s&&vr.default.createElement("td",{style:hf,"data-testid":"model-comparison-judge"},p.judgeCost==null&&!p.judgeCalls?"\u2014":Pr(p.judgeCost,{estimated:n}),p.judgeCalls>0&&vr.default.createElement("span",{style:{display:"block",fontWeight:400,color:"var(--color-text-muted)"}},St(p.judgeCalls,"call"))),vr.default.createElement("td",{style:{...hD,color:p.typicalFault?"var(--color-text-cell)":"var(--color-text-muted)",textWrap:"pretty"}},wZ(p)))})))))}var Po=Z(J());var Lke=[0,25,50,75,100],zke={display:"grid",gridTemplateColumns:"minmax(64px, 200px) minmax(96px, 1fr) auto",alignItems:"center",gap:"6px 12px",padding:"10px 12px",border:"1px solid var(--color-border-light)",borderRadius:10},yJ={display:"contents"},yD={gridColumn:"1 / -1"},Bke={fontFamily:U,fontSize:11,color:"var(--color-text-secondary)"};function Fke({passRate:e,interval:t}){return Po.default.createElement("span",{"aria-hidden":"true",style:{position:"relative",display:"block",height:14}},Po.default.createElement("span",{style:{position:"absolute",left:0,right:0,top:6,height:2,background:"var(--color-muted)"}}),t&&Po.default.createElement("span",{"data-testid":"comparison-interval-range",style:{position:"absolute",top:3,height:8,left:`${t[0]}%`,width:`${Math.max(0,Math.round((t[1]-t[0])*10)/10)}%`,boxSizing:"border-box",border:"1px solid var(--color-info)",borderRadius:999,background:"var(--color-info-soft)"}}),e!=null&&Po.default.createElement("span",{style:{position:"absolute",top:2,left:`${e}%`,width:10,height:10,marginLeft:-5,borderRadius:"50%",background:"var(--color-info)"}}))}function vD({plot:e,testId:t="comparison-intervals"}){if(!e)return null;let r=`${e.confidence}% CI`;return Po.default.createElement("div",{style:zke,"data-testid":t},Po.default.createElement(Ue,{size:10,color:"var(--color-text-muted)",style:yD},`Pass rate \xB7 ${r}`),e.rows.map(n=>{let{short:o}=bn(n.label,"");return Po.default.createElement("div",{key:n.label,style:yJ,"data-testid":"comparison-interval-row","data-model":n.label},Po.default.createElement("span",{style:{fontFamily:U,fontSize:12,fontWeight:600,color:"var(--color-text-primary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:n.label},o),Po.default.createElement(Fke,{passRate:n.passRate,interval:n.interval}),Po.default.createElement("span",{style:Bke},Po.default.createElement("strong",{style:{color:"var(--color-text-primary)"}},n.passRate==null?"\u2014":`${n.passRate}%`),` ${n.interval?`${n.interval[0]} to ${n.interval[1]}`:"no interval"} \xB7 ${St(n.scenarios,"scenario")}`))}),Po.default.createElement("div",{style:yJ,"aria-hidden":"true"},Po.default.createElement("span",null),Po.default.createElement("span",{style:{position:"relative",display:"block",height:14}},Lke.map(n=>Po.default.createElement("span",{key:n,style:{position:"absolute",left:`${n}%`,transform:"translateX(-50%)",fontFamily:U,fontSize:10,color:"var(--color-text-muted)"}},`${n}%`))),Po.default.createElement("span",null)),e.conclusion&&Po.default.createElement("div",{style:{...yD,fontSize:12,lineHeight:"18px",color:"var(--color-text-cell)",textWrap:"pretty"},"data-testid":"comparison-conclusion"},e.conclusion),e.resamples!=null&&Po.default.createElement("span",{style:{...yD,fontFamily:U,fontSize:10,color:"var(--color-text-muted)"}},`${r} from ${Number(e.resamples).toLocaleString("en-US")} resamples of whole scenarios`))}var $r=Z(J());var vJ={evaluation:"pinned on this evaluation",provider_key:"the provider key's default model",config:"the host's config/active_agent.yml",provider_default:"the provider's own default"},Uke={openrouter:"openrouter/auto"},xJ=(e,t)=>{let r=t?.scores?._judge;if(!r||typeof r!="object")return null;let n=vJ[r.model_source]?r.model_source:"provider_default",o=Object.entries(r.answered||{}).filter(([,i])=>Number(i)>0).sort(([i,s],[l,u])=>u-s||i.localeCompare(l)),a=r.model||null;return{agent:r.agent||"EvaluationJudgeAgent",provider:r.provider||null,requested:a,source:n,sourceText:vJ[n],providerDefault:Uke[r.provider]||null,answered:o,auto:!a,pinned:e?.judge_model||null,suggestion:e?.judge_model||a||(o.length===1?o[0][0]:"")}},bJ=e=>{if(!e)return"";let t=e.requested?`${e.requested} (${e.sourceText})`:`${e.providerDefault||"no model"} (${e.sourceText})`,r=e.answered.map(([n,o])=>`${n} \xD7${o}`).join(", ");return`${e.agent} on ${e.provider||"no provider"} \xB7 asked for ${t}${r?` \xB7 answered by ${r}`:""}`};var wJ="/settings?tab=api-keys",N2=(e=11)=>({fontFamily:U,fontSize:e,color:"var(--color-text-secondary)"});function xD({evaluation:e,run:t,label:r,onChanged:n,testId:o="judge-chip"}){let a=xJ(e,t),[i,s]=(0,$r.useState)(!1),[l,u]=(0,$r.useState)(a?.suggestion||""),[c,d]=(0,$r.useState)(!1),[p,f]=(0,$r.useState)(null);if((0,$r.useEffect)(()=>{u(a?.suggestion||"")},[a?.suggestion]),!r)return null;if(!a)return $r.default.createElement("span",{style:N2()},`judged by ${r}`);let m=async b=>{d(!0),f(null);try{let g=await fetch(`/api/evaluations/${e.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({evaluation:{judge_model:b}})}),h=await g.json().catch(()=>({}));if(!g.ok){f((h.errors||[h.error]).filter(Boolean).join(", ")||`Saving the judge failed (HTTP ${g.status})`);return}await n?.()}finally{d(!1)}},y=(b,g)=>$r.default.createElement($r.default.Fragment,null,$r.default.createElement(Ue,{size:10},b),$r.default.createElement("span",{style:{...N2(12),color:"var(--color-text-cell)",overflowWrap:"anywhere"}},g));return $r.default.createElement("span",{style:{display:"inline-flex",flexDirection:"column",gap:8,minWidth:0},"data-testid":o},$r.default.createElement("button",{type:"button",onClick:()=>s(!i),title:bJ(a),"aria-expanded":i,style:{...N2(),display:"inline-flex",alignItems:"center",gap:6,background:"none",border:"none",padding:0,cursor:"pointer"}},$r.default.createElement("span",null,"judged by ",$r.default.createElement("span",{style:{color:"var(--color-info)"}},r)),a.auto&&$r.default.createElement(ke,{tone:"warning",size:10,title:"No judge model is pinned: the provider chose"},"auto"),a.answered.length>1&&$r.default.createElement(ke,{tone:"error",size:10,title:"More than one model judged this run"},`${a.answered.length} models`)),i&&$r.default.createElement(je,{padding:"12px 14px",testId:`${o}-panel`,style:{display:"flex",flexDirection:"column",gap:10,maxWidth:560}},$r.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"max-content 1fr",columnGap:14,rowGap:6,alignItems:"baseline"}},y("Judge agent",a.agent),y("Provider",a.provider||"\u2014"),y("Asked for",a.requested?`${a.requested} \xB7 ${a.sourceText}`:`${a.providerDefault||"no model"} \xB7 ${a.sourceText}`),y("Answered by",a.answered.length?a.answered.map(([b,g])=>`${b} \xD7${g}`).join(", "):"no calls recorded")),a.auto&&$r.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},a.answered.length>1?"Different models judged this run. Pin one so runs are judged alike.":"No judge model is pinned, so a later run can be judged by a different model. Pin one to compare runs."),e?.id!=null&&$r.default.createElement("form",{onSubmit:b=>{b.preventDefault(),l.trim()&&m(l.trim())},style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},$r.default.createElement("input",{value:l,onChange:b=>u(b.target.value),placeholder:a.provider==="openrouter"?"e.g. anthropic/claude-sonnet-4.5":"judge model id","aria-label":"Judge model","data-testid":`${o}-model`,style:{flex:"1 1 220px",padding:"6px 10px",borderRadius:8,fontSize:12,fontFamily:U,boxSizing:"border-box",background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"}}),$r.default.createElement(ce,{size:"sm",variant:"primary",type:"submit",disabled:c||!l.trim()||l.trim()===a.pinned,testId:`${o}-pin`},"Pin judge model"),a.pinned&&$r.default.createElement(ce,{size:"sm",onClick:()=>m(""),disabled:c,testId:`${o}-unpin`},"Unpin")),$r.default.createElement("div",{style:{display:"flex",gap:12,flexWrap:"wrap",alignItems:"baseline"}},$r.default.createElement("span",{style:N2()},a.pinned?`next run: ${a.pinned}`:`next run: ${a.providerDefault||`${a.provider} default`}`),$r.default.createElement(Gr,{href:Re(wJ),onClick:()=>lt(wJ)},`${a.provider||"provider"} key in Settings`)),p&&$r.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},p)))}var pd=Z(J());function U0({build:e,testId:t="copy-fix-prompt",style:r}){let[n,o]=(0,pd.useState)("idle"),a=(0,pd.useRef)(null);(0,pd.useEffect)(()=>()=>clearTimeout(a.current),[]);let i=async()=>{let l="";try{l=e?.()||""}catch{l=""}let u=l?await ud(l):!1;o(u?"copied":"failed"),clearTimeout(a.current),a.current=setTimeout(()=>o("idle"),2e3)},s=n==="copied"?"Copied":n==="failed"?"Copy failed":"Copy fix prompt";return pd.default.createElement(ce,{size:"sm",variant:"ghost",onClick:i,testId:t,title:"Copy a Markdown brief of this fix \u2014 the scenarios, what they expect, what the agent did, and how to verify \u2014 for your coding harness",style:{padding:"4px 8px",fontSize:12,color:n==="failed"?"var(--color-error)":n==="copied"?"var(--color-success-text)":"var(--color-text-secondary)",...r}},s)}var T2=()=>{if(typeof window>"u"||!window.location)return"";let e=String(window.ACTIVE_AGENT_DASHBOARD?.mountPath||"").replace(/\/+$/,"");return`${window.location.origin}${e}`};var At=Z(J());var Pe=Z(J());var O2="Update from the sandbox",Wke=new Set(["queued","publishing"]);function W0(e){return!!(e&&Wke.has(e.status))}function kJ(e){if(!e)return{label:"None",tone:"neutral"};switch(e.status){case"queued":return{label:"Queued",tone:"progress"};case"publishing":return{label:"Publishing",tone:"progress"};case"draft_refused":return{label:"Branch published",tone:"neutral"};case"failed":return e.number?{label:`${SJ(e)} \xB7 update failed`,tone:"error"}:e.head_commit?{label:"Branch published \xB7 pull request not opened",tone:"error"}:{label:"Failed",tone:"error"};default:return{label:SJ(e),tone:Hke(e)}}}function SJ(e){return e.state==="merged"?"Merged":e.state==="closed"?"Closed":e.draft?"Draft":"Open"}function Hke(e){return e.state==="closed"?"error":e.state==="merged"?"success":e.draft?"neutral":"success"}function _J(e){return!e?.head_commit||!e.number||W0(e)?!1:!["closed","merged"].includes(e.state)}function CJ(e){return!!(e?.head_commit&&!e.number&&!W0(e))}function AJ(e,t,r){let n=new Set(Ah(t,r).map(o=>o.path));return(e?.files||[]).map(o=>o.path).filter(o=>!n.has(o))}function EJ(e){return(e||[]).some(t=>t.refusal==="not_read")}function NJ(e){let t=(e||"").split(/[\s,]+/).filter(Boolean);return t.length?t:null}function P2(e){return e==="changed_since_preview"}function M2(e){return new Set((e||[]).filter(t=>!t.refusal).map(t=>t.path))}function I2(e,t){let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r}function Ah(e,t){return(e||[]).filter(r=>!r.refusal&&t.has(r.path))}function TJ(e,t){let r=e||[],n=r.filter(l=>!l.refusal),o=r.length-n.length,a=Ah(r,t).length,i=n.length===1?"file":"files",s=[`${a} of ${n.length} ${i} selected`];return o>0&&s.push(`${o} cannot be published`),s.join(" \xB7 ")}function OJ(e){return{added:"A",modified:"M",deleted:"D"}[e.status]||"?"}var qke=/[\x00-\x20\x7f~^:?*[\\]|\.\.|@\{|\/\/|^[/-]|\/$|\.$|^@$/;function Kke(e){let t=(e||"").trim();return t?t.length>200?"A branch name is at most 200 characters.":!/^[\x00-\x7f]*$/.test(t)||qke.test(t)||t.split("/").some(r=>r.startsWith(".")||r.endsWith(".lock"))?`"${t}" is not a valid branch name.`:null:"Name the branch."}function PJ({files:e,selection:t,title:r,branch:n,message:o,update:a=!1}){return Ah(e,t).length===0?"Choose at least one file.":a?(o||"").trim()?null:"Add a commit message.":(r||"").trim()?Kke(n):"Add a title."}function D2({files:e,selection:t,title:r,body:n,branch:o,message:a,allowlist:i=null,update:s=!1}){let l=Ah(e,t).map(c=>({path:c.path,digest:c.digest})),u=s?{files:l,message:(a||"").trim(),update:!0}:{files:l,title:(r||"").trim(),body:n||"",branch:(o||"").trim()};return i?{...u,allowlist:i}:u}function MJ(e,t,r){let n=new URLSearchParams;(t||[]).forEach(a=>n.append("paths[]",a)),r&&r.trim()&&n.set("title",r.trim());let o=n.toString();return`/api/sandboxes/${encodeURIComponent(e)}/pull_request/patch${o?`?${o}`:""}`}function bD(e){let t=Number(e);return!Number.isFinite(t)||t<0?"":t<1024?`${t} ${t===1?"byte":"bytes"}`:t<1024*1024?`${Math.round(t/1024)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function IJ(e){return e?.repository?`Changes from a sandbox of ${e.repository}`:"Changes from a sandbox"}var DJ={add:{dark:"text-green-400",light:"text-green-700"},del:{dark:"text-red-400",light:"text-red-700"},hunk:{dark:"text-blue-300",light:"text-blue-700"},meta:{dark:"text-gray-400 font-semibold",light:"text-gray-500 font-semibold"},context:{dark:"text-gray-300",light:"text-gray-700"}};function jJ(e){return/[.!?]$/.test(e)?e:`${e}.`}function $J(){let{darkMode:e}=ut();return{darkMode:e,muted:e?"text-gray-400":"text-gray-500",strong:e?"text-white":"text-gray-900",border:e?"border-gray-700":"border-gray-200",link:`underline ${e?"text-gray-300 hover:text-white":"text-gray-700 hover:text-gray-900"}`,secondaryButton:`px-3 py-1 text-sm rounded ${e?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,primaryButton:"px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600 disabled:opacity-50",input:`w-full px-3 py-2 border rounded-lg text-sm ${e?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`,errorBox:`p-2 rounded text-xs border ${e?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`,surface:{backgroundColor:e?"#1a1a1a":"#ffffff"}}}function H0({sandbox:e,codeSession:t=null}){let r=`/api/sandboxes/${encodeURIComponent(e.session_id)}/pull_request`,[n,o]=(0,Pe.useState)(null),[a,i]=(0,Pe.useState)(null),[s,l]=(0,Pe.useState)(null),[u,c]=(0,Pe.useState)(0),[d,p]=(0,Pe.useState)(!1),f=(0,Pe.useCallback)(async()=>{let g=await fetch(r),h=await g.json().catch(()=>({}));if(!g.ok)throw new Error(at(h,`Could not load the pull request (HTTP ${g.status}).`));return h},[r]);(0,Pe.useEffect)(()=>{let g=!1,h=null,v=async()=>{try{let x=await f();if(g)return;o(x),i(null),W0(x.pull_request)&&(h=setTimeout(v,2e3))}catch(x){g||i(x.message)}};return v(),()=>{g=!0,clearTimeout(h)}},[f,u]);let m=async g=>{p(!0),i(null);try{let h=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(g?{regular:!0}:{open:!0})}),v=await h.json().catch(()=>({}));if(!h.ok)throw new Error(at(v,`Could not open the pull request (HTTP ${h.status}).`));c(x=>x+1)}catch(h){i(h.message)}finally{p(!1)}},y=n?.pull_request||null,b=n?.publishing||null;return b&&!b.supported?null:Pe.default.createElement(Pe.default.Fragment,null,Pe.default.createElement(Gke,{pullRequest:y,publishing:b,error:a,opening:d,onOpenDialog:g=>l({mode:g}),onOpenBranch:m}),s&&Pe.default.createElement(Yke,{codeSession:t,sandbox:e,pullRequest:y,publishing:b,mode:s.mode,onClose:()=>l(null),onPublished:()=>{l(null),c(g=>g+1)}}))}function Gke({pullRequest:e,publishing:t,error:r,opening:n,onOpenDialog:o,onOpenBranch:a}){let i=$J(),{muted:s,strong:l,border:u,link:c,secondaryButton:d,primaryButton:p,errorBox:f}=i,{label:m,tone:y}=kJ(e),b=W0(e),g=!!t?.available,h=_J(e),v=CJ(e);return Pe.default.createElement("div",{className:`mt-2 p-3 rounded-lg border space-y-2 ${u}`},Pe.default.createElement("div",{className:"flex items-center justify-between gap-3"},Pe.default.createElement("p",{className:`text-sm font-medium ${l}`},"Pull request"),Pe.default.createElement("div",{className:"flex items-center gap-2"},t?.patch_available&&!g&&Pe.default.createElement("button",{type:"button",onClick:()=>o("patch"),className:d},"Download patch\u2026"),g&&h&&Pe.default.createElement("button",{type:"button",onClick:()=>o("update"),disabled:b,className:`${d} disabled:opacity-50`},"Update draft PR"),g&&Pe.default.createElement("button",{type:"button",onClick:()=>o("create"),disabled:b,className:p},"Open draft PR"))),t&&!g&&Pe.default.createElement("p",{className:`text-xs ${s}`},jJ(t.refusal||"Publishing is not available for this sandbox"),t.patch_available&&" You can download its changes as a patch instead."),e&&Pe.default.createElement("div",{className:"space-y-1"},Pe.default.createElement("div",{className:"flex items-center gap-2 min-w-0 text-sm"},Pe.default.createElement(Ks,{tone:y},m),e.url?Pe.default.createElement("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:`truncate ${c}`},"#",e.number," ",e.title):Pe.default.createElement("span",{className:`truncate ${l}`},e.title)),Pe.default.createElement("p",{className:`text-xs font-mono truncate ${s}`},e.branch,e.base_branch?` \u2192 ${e.base_branch}`:"",e.files?.length?` \xB7 ${e.files.length} file${e.files.length===1?"":"s"}`:""),e.status==="draft_refused"&&Pe.default.createElement("p",{className:`text-xs ${s}`},e.error_message),e.status==="failed"&&e.error_message&&Pe.default.createElement("p",{className:f},e.error_message),v&&Pe.default.createElement("div",{className:"flex flex-wrap items-center gap-3 text-xs"},e.compare_url&&Pe.default.createElement("a",{href:e.compare_url,target:"_blank",rel:"noopener noreferrer",className:c},"Compare on GitHub"),g&&Pe.default.createElement("button",{type:"button",onClick:()=>a(e.status==="draft_refused"),disabled:n,className:`${d} disabled:opacity-50`},n&&"Opening\u2026",!n&&(e.status==="draft_refused"?"Open as a regular pull request":"Open the draft PR again")))),r&&Pe.default.createElement("div",{className:f},r))}function Yke({sandbox:e,pullRequest:t,publishing:r,mode:n,onClose:o,onPublished:a,codeSession:i}){let s=`/api/sandboxes/${encodeURIComponent(e.session_id)}/pull_request`,l=n==="update",[u,c]=(0,Pe.useState)(null),[d,p]=(0,Pe.useState)(!0),[f,m]=(0,Pe.useState)(null),[y,b]=(0,Pe.useState)(new Set),[g,h]=(0,Pe.useState)(l?t?.title||"":IJ(e)),[v,x]=(0,Pe.useState)(""),[S,k]=(0,Pe.useState)(l&&t?.branch||""),[w,_]=(0,Pe.useState)(O2),[A,C]=(0,Pe.useState)(""),[N,L]=(0,Pe.useState)(null),[Q,B]=(0,Pe.useState)(!1),[K,T]=(0,Pe.useState)(0);return(0,Pe.useEffect)(()=>{let I=!1;return p(!0),(async()=>{try{let P=await fetch(`${s}/preview`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(N?{allowlist:N}:{})}),j=await P.json().catch(()=>({}));if(I)return;if(!P.ok)throw new Error(at(j,`Could not read the sandbox's changes (HTTP ${P.status}).`));c(j.preview),b(M2(j.preview.files)),k(M=>M||j.preview.suggested_branch||"")}catch(P){I||m(P.message)}finally{I||p(!1)}})(),()=>{I=!0}},[s,K,N]),Pe.default.createElement(wD,{sandbox:e,preview:u,loading:d,error:f,publishing:r,pullRequest:t,selection:y,onToggle:I=>b(P=>I2(P,I)),fields:{title:g,body:v,branch:S,message:w,allowlist:A},onField:(I,P)=>({title:h,body:x,branch:k,message:_,allowlist:C})[I](P),allowlistApplied:!!N,onApplyAllowlist:()=>{m(null),L(NJ(A))},mode:n,submitting:Q,onSubmit:async()=>{B(!0),m(null);try{let I=await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...D2({files:u?.files,selection:y,title:g,body:v,branch:S,message:w,allowlist:N,update:l}),...i&&!l?{code_session_id:i.id}:{}})}),P=await I.json().catch(()=>({}));if(!I.ok)throw P2(P.code)&&T(j=>j+1),new Error(at(P,`Could not publish (HTTP ${I.status}).`));a(P.pull_request)}catch(I){m(I.message)}finally{B(!1)}},onCancel:o})}function wD({sandbox:e,preview:t,loading:r,error:n,publishing:o,pullRequest:a,selection:i,onToggle:s,fields:l,onField:u,allowlistApplied:c,onApplyAllowlist:d,mode:p,submitting:f,onSubmit:m,onCancel:y,patchHref:b}){let g=$J(),{muted:h,strong:v,border:x,link:S,secondaryButton:k,primaryButton:w,input:_,errorBox:A,darkMode:C}=g,N=t?.files||[],L=(0,Pe.useMemo)(()=>Ah(N,i),[N,i]),Q=!!o?.available,B=p==="patch"||!Q,K=p==="update"&&!B,T=t&&!B?PJ({files:N,selection:i,title:l.title,branch:l.branch,message:l.message,update:K}):null,O=K?AJ(a,N,i):[],I="Open draft PR";B?I="Download patch":K&&(I="Update draft PR");let P=`Publishes the files you tick from ${e.repository}@${e.repository_ref} through the GitHub API, as one commit on a new branch.`;return B?P=`Downloads the files you tick from ${e.repository}@${e.repository_ref} as a patch for git am or git apply.`:K&&(P="Publishes the files you tick as one commit on the pull request's branch, which then holds the checkout commit with exactly these files changed."),Pe.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4",role:"dialog","aria-modal":"true","aria-label":I},Pe.default.createElement("div",{className:`w-full max-w-4xl max-h-[90vh] overflow-y-auto rounded-lg border p-5 space-y-4 ${x} ${C?"bg-gray-900":"bg-white"}`},Pe.default.createElement("div",{className:"flex items-start justify-between gap-3"},Pe.default.createElement("div",null,Pe.default.createElement("p",{className:`text-lg font-medium ${v}`},I),Pe.default.createElement("p",{className:`text-xs ${h}`},P," Nothing under .github/ is ever published.")),Pe.default.createElement("button",{type:"button",onClick:y,className:k},"Close")),r&&Pe.default.createElement("p",{className:`text-sm ${h}`},"Reading the sandbox's changes\u2026"),n&&Pe.default.createElement("div",{className:A},n),t&&Pe.default.createElement(Pe.default.Fragment,null,d&&(EJ(N)||c)&&Pe.default.createElement("div",{className:"flex flex-wrap items-end gap-2"},Pe.default.createElement("label",{className:`flex-1 min-w-[16rem] text-xs space-y-1 ${h}`},Pe.default.createElement("span",null,"Only read paths matching"),Pe.default.createElement("input",{type:"text",value:l.allowlist,onChange:j=>u("allowlist",j.target.value),disabled:f||r,placeholder:"app/**, lib/*.rb",className:`${_} font-mono`})),Pe.default.createElement("button",{type:"button",onClick:d,disabled:f||r,className:`${k} disabled:opacity-50`},"Read again")),Pe.default.createElement("div",{className:"space-y-1"},Pe.default.createElement("p",{className:`text-xs font-medium uppercase tracking-wide ${h}`},"Files \xB7 ",TJ(N,i)),N.length===0&&Pe.default.createElement("p",{className:`text-sm ${h}`},"The sandbox has no changes."),Pe.default.createElement("ul",{className:"space-y-1"},N.map(j=>Pe.default.createElement("li",{key:j.path,className:"flex items-center gap-2 text-sm"},Pe.default.createElement("input",{type:"checkbox","aria-label":`Publish ${j.path}`,checked:!j.refusal&&i.has(j.path),disabled:!!j.refusal||f,onChange:()=>s(j.path)}),Pe.default.createElement("span",{className:`w-4 text-xs font-mono ${h}`},OJ(j)),Pe.default.createElement("span",{className:`font-mono truncate ${j.refusal?h:v}`},j.path),j.size!=null&&j.status!=="deleted"&&Pe.default.createElement("span",{className:`shrink-0 text-xs ${h}`},bD(j.size)),j.refusal&&Pe.default.createElement("span",{className:`shrink-0 text-xs ${C?"text-amber-300":"text-amber-700"}`},j.refusal_message))))),O.length>0&&Pe.default.createElement("p",{className:`text-xs ${C?"text-amber-300":"text-amber-700"}`},"Not ticked, so returned to how they are in the checkout commit: ",Pe.default.createElement("span",{className:"font-mono"},O.join(", "))),L.length>0&&Pe.default.createElement("div",{className:"space-y-2"},Pe.default.createElement("p",{className:`text-xs font-medium uppercase tracking-wide ${h}`},"What will be published"),L.map(j=>Pe.default.createElement(Xke,{key:j.path,file:j,classes:g}))),!B&&Pe.default.createElement("label",{className:`block text-xs space-y-1 ${h}`},Pe.default.createElement("span",null,"Branch"),Pe.default.createElement("input",{type:"text",value:l.branch,onChange:j=>u("branch",j.target.value),disabled:K||f,maxLength:200,className:`${_} font-mono`})),K?Pe.default.createElement("label",{className:`block text-xs space-y-1 ${h}`},Pe.default.createElement("span",null,"Commit message"),Pe.default.createElement("input",{type:"text",value:l.message,onChange:j=>u("message",j.target.value),disabled:f,className:_})):Pe.default.createElement("label",{className:`block text-xs space-y-1 ${h}`},Pe.default.createElement("span",null,"Title"),Pe.default.createElement("input",{type:"text",value:l.title,onChange:j=>u("title",j.target.value),disabled:f,maxLength:256,className:_})),!B&&!K&&Pe.default.createElement("label",{className:`block text-xs space-y-1 ${h}`},Pe.default.createElement("span",null,"Description"),Pe.default.createElement("textarea",{value:l.body,onChange:j=>u("body",j.target.value),disabled:f,rows:4,className:_})),Pe.default.createElement("div",{className:"flex flex-wrap items-center justify-between gap-3"},Pe.default.createElement("p",{className:`text-xs ${h}`},!Q&&jJ(o?.refusal||"Publishing is not available for this sandbox"),Q&&T),Pe.default.createElement("div",{className:"flex items-center gap-3"},L.length>0&&Pe.default.createElement("a",{href:Re((b||((j,M)=>MJ(e.session_id,j,M)))(L.map(j=>j.path),K?l.message:l.title)),className:`text-sm ${S}`},"Download patch"),Pe.default.createElement("button",{type:"button",onClick:y,className:k},"Cancel"),!B&&Pe.default.createElement("button",{type:"button",onClick:m,disabled:!!T||f,className:w},f?"Publishing\u2026":I))))))}function Xke({file:e,classes:t}){let{muted:r,border:n,darkMode:o,surface:a}=t,i=(0,Pe.useMemo)(()=>u0(e.diff),[e.diff]);return Pe.default.createElement("div",{className:`rounded border ${n}`},Pe.default.createElement("p",{className:`px-2 py-1 text-xs font-mono border-b ${n} ${r}`},e.path),e.binary?Pe.default.createElement("p",{className:`px-2 py-1 text-xs ${r}`},"Binary file, ",bD(e.size),": published as it is in the sandbox."):Pe.default.createElement("pre",{className:"max-h-72 overflow-auto p-2 text-xs font-mono",style:a},i.map((s,l)=>{let u=DJ[s.kind]||DJ.context;return Pe.default.createElement("div",{key:l,className:o?u.dark:u.light},s.text||" ")})))}var Zke=(e,t)=>e?.kind===t?.kind&&(t?.kind==="instruction"?e?.quote===t?.quote:e?.fault===t?.fault)&&[...e?.scenario_keys||[]].sort().join("\0")===[...t?.scenario_keys||[]].sort().join("\0")&&(!(t?.models||[]).length||[...e?.models||[]].sort().join("\0")===[...t.models].sort().join("\0")),j2=new Map,Jke=e=>(j2.has(e)||j2.set(e,(async()=>{let t=await fetch(e),r=await t.json().catch(()=>({}));if(!t.ok)throw new Error(r.error||"Could not load the fix workspace.");return r})().finally(()=>j2.delete(e))),j2.get(e));function SD({item:e,evaluation:t,run:r}){let[n,o]=(0,At.useState)(!1),[a,i]=(0,At.useState)(null),[s,l]=(0,At.useState)(""),[u,c]=(0,At.useState)(null),[d,p]=(0,At.useState)(!1),[f,m]=(0,At.useState)(null),y=`/api/evaluations/${t?.id}/runs/${r?.id}/fixes`,b=(0,At.useCallback)(async()=>{let _=await Jke(y);return i(_),l(A=>A||_.sandboxes?.find(C=>C.status==="ready")?.session_id||""),_},[y]);if((0,At.useEffect)(()=>{if(!t?.id||!r?.id)return;let _=!1,A,C=async()=>{try{await b()}catch(N){_||c(N.message)}!_&&n&&(A=setTimeout(C,2500))};return C(),()=>{_=!0,clearTimeout(A)}},[b,n,t?.id,r?.id]),!t?.id||!r?.id||!["fault","instruction"].includes(e.kind))return null;let g=(a?.code_sessions||[]).filter(_=>Zke(_.fix_item,e));if(!n&&g.length===0&&(!a?.project||!a?.supported))return null;let h=g.find(_=>_.id===f)||g[0],v=a?.sandboxes?.find(_=>_.session_id===(h?.sandbox_session_id||s)),x=h&&(["queued","running"].includes(h.status)||h.status==="succeeded"&&h.diff&&!h.verification?.error&&!["complete","failed"].includes(h.verification?.status)),S=a?.auth_mode!=="sandbox_login"||v?.claude_login?.credential_mode,k=async(_=null)=>{if(!(!v||d||x)){p(!0),c(null);try{let A=await fetch(`/api/sandboxes/${encodeURIComponent(v.session_id)}/code_sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({evaluation_run_id:r.id,fix_item:{kind:e.kind,fault:e.fault,quote:e.quote,scenario_keys:e.scenario_keys,models:e.models},previous_code_session_id:_?.id})}),C=await A.json();if(!A.ok)throw new Error(C.error||"Could not start this fix.");m(C.code_session.id),await b()}catch(A){c(A.message)}finally{p(!1)}}},w=h?h.verification?.status==="complete"?3:h.status==="succeeded"?2:1:0;return At.default.createElement(At.default.Fragment,null,At.default.createElement(ce,{size:"sm",variant:"primary",onClick:()=>o(!0),testId:"implement-fix"},h?"Review implementation":"Implement with Claude Code"),h?.verification?.status==="complete"&&At.default.createElement("span",{style:{fontSize:11,color:"var(--color-text-muted)"}},h.verification.counts.fixed||0," fixed \xB7 ",h.verification.counts.regressed||0," regressed"),n&&At.default.createElement(MI,{title:"Implement evaluation fix",onClose:()=>o(!1)},At.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap"}},["Connect","Implement","Verify","Draft PR"].map((_,A)=>At.default.createElement(ke,{key:_,tone:A===w?"accent":A_.status==="ready")&&At.default.createElement("label",{style:{fontSize:12,fontWeight:600}},"Checkout sandbox",At.default.createElement("select",{"aria-label":"Checkout sandbox",style:{...PI,marginTop:8},value:s,onChange:_=>l(_.target.value)},At.default.createElement("option",{value:""},"Choose a sandbox"),a.sandboxes.filter(_=>_.status==="ready").map(_=>At.default.createElement("option",{key:_.session_id,value:_.session_id},_.repository," \xB7 ",_.repository_ref," \xB7 ",_.session_id.slice(0,8))))),a&&!v&&At.default.createElement("div",{style:g0},At.default.createElement("p",{style:{fontSize:13,marginTop:0}},"Start a checkout sandbox for this evaluation\u2019s project, then return here to implement the fix."),At.default.createElement("a",{href:Re(a.project?`/projects/${a.project.id}`:"/projects")},"Open ",a.project?.name||"Projects"," \u2192"),At.default.createElement(ce,{size:"sm",onClick:()=>b().catch(_=>c(_.message)),style:{marginLeft:12}},"Check again")),v&&a?.auth_mode==="sandbox_login"&&!x&&At.default.createElement(rf,{sandbox:v,onConnected:b,onChange:b}),v&&At.default.createElement("p",{style:{margin:0,fontSize:12,color:"var(--color-text-secondary)"}},"This session will use ",At.default.createElement("strong",null,v.claude_login?.credential_mode==="sandbox_login"?"your Claude subscription":a?.auth_mode==="local_login"?"this machine\u2019s Claude login":S?"the account\u2019s Anthropic API key":"your sandbox login after you connect"),". Verification uses the agent\u2019s own provider credentials."),!h&&At.default.createElement(ce,{variant:"primary",disabled:!v||!S||d||!!a?.refusal||!a?.supported,onClick:()=>k()},d?"Starting\u2026":"Implement this fix"),h&&At.default.createElement(At.default.Fragment,null,At.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"}},At.default.createElement(ke,{tone:h.status==="failed"?"error":"info"},"Claude Code \xB7 ",h.status),At.default.createElement("span",{style:{fontSize:11,color:"var(--color-text-muted)"}},"Session #",h.id)),["queued","running"].includes(h.status)&&At.default.createElement(ce,{size:"sm",onClick:async()=>{try{if(!(await fetch(`/api/sandboxes/${encodeURIComponent(v.session_id)}/code_sessions/${h.id}/cancel`,{method:"POST"})).ok)throw new Error("Could not cancel this session.");await b()}catch(_){c(_.message)}}},"Cancel session"),h.result&&At.default.createElement("p",{style:{fontSize:13,lineHeight:"20px",whiteSpace:"pre-wrap"}},h.result),h.error_message&&At.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)"}},h.error_message),h.diff&&At.default.createElement("details",null,At.default.createElement("summary",{style:{cursor:"pointer",fontSize:13}},"Review code changes"),At.default.createElement("pre",{style:{...g0,maxHeight:240,overflow:"auto",fontSize:11}},h.diff)),At.default.createElement(h0,{session:h,evaluationId:t.id,sandboxId:v?.session_id,onRetry:()=>k(h)}),h.verification?.status==="complete"&&v&&At.default.createElement(H0,{sandbox:v,codeSession:h})),u&&At.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)",fontSize:13}},u)))}var kD=6,Qke=600,Eh=12,Nh=e=>String(e||"").replace(/_/g," "),gs=e=>String(e??"").trim(),q0=e=>[...new Set(e.filter(Boolean))],_D=e=>gs(e).split(` +`);o.length>t&&(o=o.slice(0,t));let a=o.lengthe?.is_error===!0||e?.subtype!=null&&e.subtype!=="success",HSe=e=>{if(!tX(e))return"Done";if(WY[e.subtype])return WY[e.subtype];let t=String(e.subtype||"").replace(/^error_?/,"").replace(/_/g," ").trim();return t&&e.subtype!=="success"?`Error (${t})`:"Error"},qSe=e=>{if(e.subtype==="init"){let t=Array.isArray(e.tools)?Hs(e.tools.length,"tool"):null;return{kind:"system",text:["Session started",...[e.model&&`model ${e.model}`,e.permissionMode&&`${e.permissionMode} mode`,t].filter(Boolean)].join(" \xB7 ")}}if(e.subtype==="compact_boundary")return{kind:"system",text:"Conversation compacted"};if(e.subtype==="api_retry"){let t=e.attempt??"?",r=e.max_retries!=null?`${t}/${e.max_retries}`:String(t),n=[e.error_status,e.error].filter(o=>o!=null&&o!=="").join(" ");return{kind:"system",text:[`API retry ${r}`,n].filter(Boolean).join(" \xB7 ")}}return{kind:"system",text:e.subtype?`System: ${r2(e.subtype).toLowerCase()}`:"System event"}},KSe=/^(hook_|thinking_tokens$)/,VSe=e=>KSe.test(String(e?.subtype||"")),GSe=e=>{let t=e?.rate_limit_info||{},r=String(t.status||"");if(r===""||r==="allowed")return[];let n=Number(t.resetsAt),o=Number.isFinite(n)&&n>0?`resets ${new Date(n*1e3).toLocaleTimeString()}`:null;return[{kind:"system",text:[`Rate limit: ${r2(r).toLowerCase()}`,o].filter(Boolean).join(" \xB7 ")}]},e2=(e,t)=>({kind:"unknown",label:String(e||"event"),text:o0(fh(t),300)}),HY=(e,t,r)=>{if(typeof e=="string")return e.trim()?[{kind:t==="assistant"?"text":"user_text",text:e}]:[];if(!Rp(e))return[];switch(e.type){case"text":return String(e.text??"").trim()?[{kind:t==="assistant"?"text":"user_text",text:e.text}]:[];case"thinking":return String(e.thinking??"").trim()?[{kind:"thinking",text:e.thinking}]:[];case"redacted_thinking":return[{kind:"thinking",text:"(redacted)"}];case"tool_use":case"server_tool_use":{let n=String(e.name||"tool");return e.id&&(r.toolNames[e.id]=n),[{kind:"tool_use",name:n,summary:FSe(n,e.input,r),id:e.id||null}]}case"tool_result":{let{text:n,truncated:o}=WSe(USe(e.content));return[{kind:"tool_result",name:r.toolNames[e.tool_use_id]||null,text:n,truncated:o,isError:e.is_error===!0}]}default:return[e2(`${t} ${e.type||"block"}`,e)]}},YSe=(e,t)=>{let r=e.message?.content;return typeof r=="string"?HY(r,e.type,t):Array.isArray(r)?r.flatMap(n=>HY(n,e.type,t)):[e2(e.type,e)]},XSe=(e,t={toolNames:{}})=>{if(t.toolNames||={},!Rp(e))return e==null||e===""?[]:[{kind:"raw",text:typeof e=="string"?e:fh(e)}];let r=!!e.parent_tool_use_id,n=o=>r?o.map(a=>({...a,nested:!0})):o;switch(e.type){case"thread.started":return[{kind:"system",text:"Codex session started"}];case"turn.started":case"turn.completed":return[];case"item.started":case"item.updated":case"item.completed":{let o=e.item||{};return e.type!=="item.completed"?[]:o.type==="agent_message"?[{kind:"text",text:String(o.text||"")}]:o.type==="reasoning"?[{kind:"thinking",text:String(o.text||"")}]:o.type==="command_execution"?[{kind:"tool_use",name:"Command",summary:String(o.command||"")},{kind:"tool_result",text:String(o.aggregated_output||""),isError:o.status==="failed"||o.exit_code!=null&&o.exit_code!==0}]:[e2(o.type||e.type,o)]}case"system":return e.subtype==="init"&&e.cwd&&(t.cwd=e.cwd),VSe(e)?[]:[qSe(e)];case"rate_limit_event":return GSe(e);case"assistant":case"user":return n(YSe(e,t));case"result":{let o=Array.isArray(e.permission_denials)?e.permission_denials.length:0,a=qY(HSe(e),e);return[{kind:"result",tone:tX(e)?"error":"success",text:o?`${a} \xB7 ${Hs(o,"permission denial")}`:a}]}case"raw":return e.text==null||e.text===""?[]:[{kind:"raw",text:String(e.text)}];default:return[e2(e.type,e)]}},a2=e=>{let t={toolNames:{}};return(e||[]).flatMap((r,n)=>XSe(r,t).map((o,a)=>({...o,key:`${n}:${a}`})))},rX=/^diff (--git|--cc|--combined) /,ZSe="\u2026 diff truncated",u0=e=>{if(!e)return[];let t=!0,r=1;return String(e).replace(/\n$/,"").split(` +`).map(n=>{if(rX.test(n))return t=!0,{text:n,kind:"meta"};if(n===ZSe)return{text:n,kind:"meta"};if(n.startsWith("@@"))return t=!1,r=Math.max(1,n.match(/^@+/)[0].length-1),{text:n,kind:"hunk"};if(t)return{text:n,kind:"meta"};let o=n.slice(0,r);return o.includes("+")?{text:n,kind:"add"}:o.includes("-")?{text:n,kind:"del"}:{text:n,kind:"context"}})},nX=e=>{let t=u0(e),r=t.filter(a=>a.kind==="meta"&&rX.test(a.text)).length,n=t.filter(a=>a.kind==="add").length,o=t.filter(a=>a.kind==="del").length;return`${Hs(r,"file")} changed \xB7 +${n} \u2212${o}`},c0="default",d0="other",oX=["sonnet","opus","haiku"],JSe=/^[A-Za-z0-9][A-Za-z0-9._:[\]-]{0,99}$/,AI="actionagent.claudeCode.modelChoice",aX=(e="claude_code")=>[{value:c0,label:`Default (${e==="codex"?"Codex":"Claude Code"}'s own)`},...e==="codex"?[]:oX.map(t=>({value:t,label:t})),{value:d0,label:"Other\u2026"}],EI=e=>e===c0||e===d0||oX.includes(e),NI=(e,t="")=>{if(!EI(e)||e===c0)return{model:null};if(e!==d0)return{model:e};let r=String(t??"").trim();return r?JSe.test(r)?{model:r}:{error:`"${o0(r,40)}" is not a model name (letters, digits and . _ : [ ] -).`}:{error:"Enter a model id, or pick one of the options."}},iX=(e,t,r,n="claude_code")=>{let{model:o}=NI(t,r),a=o?{prompt:e,model:o}:{prompt:e};return n==="claude_code"?a:{...a,runner:n}},i2=e=>{let t={choice:c0,custom:""};if(typeof e!="string"||!e)return t;try{let r=JSON.parse(e);if(!Rp(r)||!EI(r.choice))return t;let n=typeof r.custom=="string"?r.custom.slice(0,100):"";return{choice:r.choice,custom:n}}catch{return t}},sX=(e,t="")=>JSON.stringify({choice:EI(e)?e:c0,custom:String(t??"").slice(0,100)}),TI=e=>e?.model||"default model",a0="api_key",i0="local_login",lX="claude /login",uX="sk-ant-api03-\u2026",cX="https://platform.claude.com",dX="https://code.claude.com/docs/en/legal-and-compliance.md",s2=e=>{let t=Rp(e?.claude_code_login)?e.claude_code_login:{},r=e?.claude_code_auth===i0;return{mode:e?.claude_code_auth==="sandbox_login"?"sandbox_login":r?i0:a0,connected:e?.claude_code_connected===!0,loggedIn:r&&t.logged_in===!0,authMethod:r&&typeof t.auth_method=="string"&&t.auth_method?t.auth_method:null}},pX=(e,t)=>{if(!e)return{view:"loading",status:"Loading\u2026",tone:"neutral",keyForm:!1,needsReplacing:!1,loginHint:null};if(e.mode==="sandbox_login")return{view:"sandbox_login",status:"Your subscription, inside each sandbox",tone:"neutral",keyForm:!0,needsReplacing:t?.needs_replacing===!0,loginHint:null};if(e.mode===i0){let r=e.authMethod?` (${e.authMethod})`:"";return{view:i0,status:e.loggedIn?`Using this machine's Claude Code login \xB7 logged in${r}`:"Using this machine's Claude Code login \xB7 not logged in",tone:e.loggedIn?"success":"error",keyForm:!1,needsReplacing:!1,loginHint:e.loggedIn?null:lX}}return t?t.configured&&t.needs_replacing===!0?{view:a0,status:"Needs an API key: the stored subscription token is no longer used",tone:"error",keyForm:!0,needsReplacing:!0,loginHint:null}:{view:a0,status:t.configured?`Connected (${t.hint})`:"Not connected",tone:t.configured?"success":"neutral",keyForm:!0,needsReplacing:!1,loginHint:null}:{view:"loading",status:"Loading\u2026",tone:"neutral",keyForm:!1,needsReplacing:!1,loginHint:null}},fX=e=>e?.connected===!0?null:e?.mode==="sandbox_login"?{text:"Sign in with your Claude subscription in this sandbox, or connect an Anthropic API key.",loginHint:null,after:null}:e?.mode===i0?{text:"Claude Code is not logged in on this machine. Run",loginHint:lX,after:"as the user the dashboard runs as."}:{text:"Connect an Anthropic API key under Claude Code below to run sessions in this checkout.",loginHint:null,after:null},s0="local_login",mX="codex login",l2=e=>{let t=Rp(e?.codex_login)?e.codex_login:{},r=e?.codex_auth===s0;return{supported:e?.codex_sessions_supported===!0,mode:r?s0:a0,connected:e?.codex_connected===!0,loggedIn:r&&t.logged_in===!0,authMethod:r&&typeof t.auth_method=="string"&&t.auth_method?t.auth_method:null}},gX=(e,t)=>{let r={view:"loading",status:"Loading\u2026",tone:"neutral",keyForm:!1,loginHint:null};if(!e)return r;if(e.mode===s0){let n=e.authMethod?` (${e.authMethod})`:"";return{view:s0,status:e.loggedIn?`Using this machine's Codex login \xB7 logged in${n}`:"Using this machine's Codex login \xB7 not logged in",tone:e.loggedIn?"success":"error",keyForm:!1,loginHint:e.loggedIn?null:mX}}return t?{view:a0,status:t.configured?`Connected \xB7 ${t.hint}`:"Not connected",tone:t.configured?"success":"neutral",keyForm:!0,loginHint:null}:r},hX=e=>!e||e.supported!==!0?{text:"This sandbox backend does not support Codex.",loginHint:null,after:null}:e.connected===!0?null:e.mode===s0?{text:"Codex is not logged in on this machine. Run",loginHint:mX,after:"as the user the dashboard runs as."}:{text:"Connect an OpenAI API key in the Codex integration below.",loginHint:null,after:null};var vX=1500,OI=[{id:"all",label:"All"},{id:"agent",label:"Agent runs"},{id:"claude_code",label:"Claude Code"},{id:"codex",label:"Codex"}],QSe=new Set(OI.map(e=>e.id)),PI=e=>e?.source==="code_session"||/^code-\d+$/.test(String(e?.id??"")),ef=e=>{let t=/^code-(\d+)$/.exec(String(e??""));return t?Number(t[1]):null},xX=(e,t="")=>{let r=new URLSearchParams(t),n=QSe.has(r.get("source"))?r.get("source"):"all",o=/^\d+$/.test(r.get("project")||"")?Number(r.get("project")):null,a=String(e||"").replace(/^\/interactions\/?/,"").replace(/\/$/,"");if(a==="latest")return{view:"latest",source:n,project:o,codeId:null};let i=ef(a);return i?{view:"conversation",source:n,project:o,codeId:i}:{view:"list",source:n,project:o,codeId:null}},gs=e=>`/interactions/code-${e}`,u2=({source:e="all",project:t=null}={})=>{let r=new URLSearchParams;e&&e!=="all"&&r.set("source",e),t&&r.set("project",String(t));let n=r.toString();return`/interactions${n?`?${n}`:""}`},MI=({minutes:e=null,agentId:t=null,source:r="all",project:n=null}={})=>{let o=new URLSearchParams;return e&&o.set("minutes",String(e)),t&&o.set("agent_id",String(t)),r&&r!=="all"&&o.set("source",r),n&&o.set("project_id",String(n)),o.toString()},bX=e=>{let t=(e||[]).filter(PI);if(t.length===0)return null;let r=[...t].sort((n,o)=>String(o.last_activity_at).localeCompare(String(n.last_activity_at)));return r.find(n=>n.active)||r[0]},wX=e=>(e||[]).filter(t=>(t.events||[]).length>0).map(t=>`after[${encodeURIComponent(t.id)}]=${t.events_offset+t.events.length}`).join("&"),SX=(e,t)=>{if(!t)return e;if(!e)return t;let r=new Map((e.turns||[]).map(o=>[o.id,o])),n=(t.turns||[]).map(o=>{let a=r.get(o.id);if(!a||o.events_offset===0)return o;let i=(a.events||[]).slice(0,o.events_offset-a.events_offset);return{...o,events_offset:a.events_offset,events:[...i,...o.events||[]]}});return{...t,turns:n}},kX=e=>(e?.turns||[]).some(qs),_X=e=>{let t=[`Turn ${Number(e.turn_index)+1}`];return e.total_cost_usd!=null&&t.push(n2(e.total_cost_usd)),e.duration_ms!=null&&t.push(SI(e.duration_ms)),e.diff_stat&&t.push(`${Hs(e.diff_stat.files,"file")} +${e.diff_stat.additions} \u2212${e.diff_stat.deletions} since checkout`),t.join(" \xB7 ")},c2=e=>{let t=[Hs(e.turn_count??(e.turns||[]).length,"turn")];e.total_cost_usd&&t.push(n2(e.total_cost_usd));let r=e.tokens?.total||0;return r&&t.push(`${r>=1e3?`${(r/1e3).toFixed(1)}k`:r} tokens`),t.join(" \xB7 ")},CX=e=>{let t=e?.turns||[],r=t[t.length-1];if(!r||qs(r))return null;for(let n of[...r.events||[]].reverse()){let o=n?.message?.content;if(Array.isArray(o)){for(let a of[...o].reverse())if(a?.type==="tool_use"&&/(^|__)browser_request_person$/.test(String(a.name||""))){let i=typeof a.input?.reason=="string"?a.input.reason:null;if(i)return{reason:i,turn:r.turn_index}}}}return null},f0=e=>e?.runner==="codex"?"Codex":"Claude Code",AX=(e,{handoff:t=null}={})=>{if(e?.sandbox_status&&e.sandbox_status!=="ready")return`The sandbox is ${e.sandbox_status}: boot it again to continue this conversation.`;let r=(e?.turns||[]).filter(a=>a.status==="queued").length,n=(e?.turns||[]).some(a=>a.status==="running"),o=t?` ${f0(e)} will be told you drove the browser.`:"";return n?`Your message waits for the turn that runs${r?` (and ${Hs(r,"more")})`:""}.${o}`:`Sends the next turn, resuming this conversation.${o}`},EX=(e,t)=>{let r=new URLSearchParams(e||"").get("browser");return r==="1"||r==="0"?r==="1":t==="1"},tf=50,d2=25,p2=75,yX=5,p0=e=>{let t=Number(e);return Number.isFinite(t)?Math.min(p2,Math.max(d2,Math.round(t*10)/10)):tf},NX=(e,{left:t,width:r})=>r>0?p0((e-t)/r*100):tf,TX=(e,t)=>{switch(t){case"ArrowLeft":return p0(e-yX);case"ArrowRight":return p0(e+yX);case"Home":return d2;case"End":return p2;case"Enter":return tf;default:return null}};var Ee=Z(Q());var Ut=Z(Q());var g0={padding:16,border:"1px solid var(--color-border)",borderRadius:12,background:"var(--color-muted)",color:"var(--color-text-primary)"},II={width:"100%",boxSizing:"border-box",padding:"12px 14px",borderRadius:8,border:"1px solid var(--color-border)",background:"var(--color-background)",color:"var(--color-text-primary)",fontFamily:"var(--font-mono)",fontSize:13};function DI({title:e,onClose:t,children:r}){let n=(0,Ut.useRef)(null);return(0,Ut.useEffect)(()=>{let o=n.current;return o?.showModal?.(),()=>o?.close?.()},[]),Ut.default.createElement("dialog",{ref:n,className:"aa-fix-dialog","aria-label":e,onCancel:o=>{o.preventDefault(),t()},style:{width:"min(760px, calc(100vw - 32px))",maxHeight:"calc(100dvh - 40px)",boxSizing:"border-box",padding:0,borderRadius:16,border:"1px solid var(--color-border)",background:"var(--color-card, var(--color-background))",color:"var(--color-text-primary)"}},Ut.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:12,padding:"20px 24px",borderBottom:"1px solid var(--color-border)"}},Ut.default.createElement("h2",{style:{margin:0,fontSize:19,letterSpacing:"-0.02em"}},e),Ut.default.createElement("button",{type:"button","aria-label":"Close dialog",onClick:t,style:{background:"none",border:0,color:"var(--color-text-secondary)",cursor:"pointer",fontSize:24}},"\xD7")),Ut.default.createElement("div",{style:{padding:24,display:"flex",flexDirection:"column",gap:18}},r))}async function m0(e,t="GET",r){let n=await fetch(e,{method:t,headers:r?{"Content-Type":"application/json"}:void 0,body:r?JSON.stringify(r):void 0,cache:"no-store"}),o=await n.json().catch(()=>({}));if(!n.ok)throw new Error(o.error||"Could not connect Claude Code. Please try again.");return o.login}var RSe=e=>e==="expired"?"This sign-in expired. Start again to get a fresh authorization page.":e==="completed"?"Claude Code signed in, but not with a Claude subscription. Start again and choose your Claude.ai account.":"Sign-in did not finish. Start again to retry.";function rf({sandbox:e,onConnected:t,onChange:r}){let n=`/api/sandboxes/${encodeURIComponent(e.session_id)}/claude_login`,[o,a]=(0,Ut.useState)(null),[i,s]=(0,Ut.useState)(!1),[l,u]=(0,Ut.useState)(""),[c,d]=(0,Ut.useState)(!1),[p,f]=(0,Ut.useState)(null),m=(0,Ut.useRef)(null),y=(0,Ut.useRef)(t);y.current=t,(0,Ut.useEffect)(()=>{let v=!1;return m0(n).then(x=>{v||a(x)}).catch(x=>{v||f(x.message)}),()=>{v=!0}},[n]),(0,Ut.useEffect)(()=>{if(!i)return;let v=!1,x,S=async()=>{try{let k=await m0(n);if(v)return;if(a(k),k.authorize_url&&m.current&&(m.current.location=k.authorize_url,m.current=null),k.logged_in){s(!1),u(""),d(!1),r?.(),y.current?.();return}if(!["starting","awaiting_code","submitted"].includes(k.status)){f(RSe(k.status)),d(!1);return}x=setTimeout(S,1200)}catch(k){v||(f(k.message),d(!1))}};return x=setTimeout(S,300),()=>{v=!0,clearTimeout(x)}},[n,i]);let b=async()=>{f(null),u(""),d(!0),m.current=window.open("about:blank","_blank"),m.current&&(m.current.opener=null);try{a(await m0(n,"POST")),s(!0)}catch(v){m.current?.close(),m.current=null,f(v.message)}finally{d(!1)}},g=async()=>{m.current?.close(),m.current=null,u(""),s(!1),d(!0);try{a(await m0(n,"DELETE")),r?.()}catch(v){f(v.message)}finally{d(!1)}},h=async v=>{if(v.preventDefault(),!l.trim()||c)return;let x=l.trim();u(""),d(!0),f(null);try{a(await m0(`${n}/code`,"POST",{claude_login_code:x}))}catch(S){f(S.message),d(!1)}};return Ut.default.createElement("section",{style:g0,"data-testid":"sandbox-claude-login"},Ut.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:10}},Ut.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:8}},Ut.default.createElement("strong",null,"Claude Code"),Ut.default.createElement(ke,{tone:o?.logged_in?"success":"accent"},o?.logged_in?"Your subscription connected":"Use your Claude subscription")),o?.logged_in&&Ut.default.createElement(ce,{size:"sm",variant:"ghost",onClick:g,disabled:c},"Disconnect")),Ut.default.createElement("p",{style:{fontSize:13,lineHeight:"20px",color:"var(--color-text-secondary)",margin:"10px 0"}},"Usage counts against your own Claude Pro, Max, or Team plan. Your login stays inside this sandbox and ends when the sandbox stops."),!o?.logged_in&&Ut.default.createElement(ce,{variant:"primary",onClick:b,disabled:c||e.status!=="ready"},c?"Connecting\u2026":"Sign in with your Claude subscription"),p&&!i&&Ut.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)",fontSize:13}},p),i&&Ut.default.createElement(DI,{title:"Connect your Claude subscription",onClose:g},Ut.default.createElement("p",{style:{margin:0,fontSize:14,lineHeight:"22px",color:"var(--color-text-secondary)"}},"Authorize Claude Code on Claude\u2019s website. Then paste the one-time code below to finish signing in to this sandbox."),Ut.default.createElement("div",{style:{...g0,fontSize:12}},Ut.default.createElement("strong",null,e.repository||"Checkout sandbox"),Ut.default.createElement("div",{style:{marginTop:6,fontFamily:"var(--font-mono)",color:"var(--color-text-muted)"}},e.session_id)),o?.authorize_url?Ut.default.createElement("a",{href:o.authorize_url,target:"_blank",rel:"noreferrer",style:{color:"var(--color-text-link, var(--color-accent-ui))",fontSize:13}},"Reopen Claude authorization page \u2197"):Ut.default.createElement("p",{role:"status",style:{fontSize:13}},o?.status==="submitted"?"Confirming your sign-in\u2026":"Preparing Claude\u2019s authorization page\u2026"),Ut.default.createElement("form",{onSubmit:h,style:{display:"flex",flexDirection:"column",gap:12},"data-aa-secret":""},Ut.default.createElement("label",{htmlFor:`claude-login-code-${e.session_id}`,style:{fontSize:12,fontWeight:600}},"Authentication code"),Ut.default.createElement("input",{id:`claude-login-code-${e.session_id}`,type:"password","data-aa-secret":"",autoComplete:"off",spellCheck:!1,maxLength:2048,value:l,onChange:v=>u(v.target.value),placeholder:"Paste the code from Claude",style:II,disabled:c||o?.status!=="awaiting_code"}),Ut.default.createElement(ce,{variant:"primary",type:"submit",disabled:!l.trim()||c||o?.status!=="awaiting_code"},c?"Completing connection\u2026":"Complete connection")),p&&Ut.default.createElement(Ut.default.Fragment,null,Ut.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)",fontSize:13}},p),Ut.default.createElement(ce,{onClick:b,disabled:c},"Start sign-in again")),Ut.default.createElement("p",{style:{margin:0,fontSize:12,lineHeight:"18px",color:"var(--color-text-muted)"}},"The code is sent once to Claude Code running in your sandbox. ActiveAgent does not store your Claude subscription token.")))}var Dr=Z(Q());function h0({session:e,evaluationId:t,sandboxId:r,onRetry:n}){let[o,a]=(0,Dr.useState)(null),[i,s]=(0,Dr.useState)(!1),l=e?.verification;if(!e?.evaluation_run_id)return null;let u=l?.rows||[],c=l?.status==="complete",d=async()=>{s(!0),a(null);try{let f=await fetch(`/api/evaluations/${t}/run`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sandbox_id:r,models:e.fix_item?.models})}),m=await f.json();if(!f.ok)throw new Error(m.error||"Could not run the full suite.");a({run:m.run.id})}catch(f){a({error:f.message})}finally{s(!1)}},p=f=>f==null?"\u2014":Number(f).toFixed(2);return Dr.default.createElement("section",{"data-testid":"fix-verification",style:{display:"flex",flexDirection:"column",gap:12,minWidth:0}},Dr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Dr.default.createElement("strong",{style:{fontSize:13}},"Before & after"),Dr.default.createElement(ke,{tone:c?"info":"muted"},l?.status||(e.status==="succeeded"?e.diff?"Preparing verification":"No changes to verify":e.status))),l?.error&&Dr.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)",margin:0,fontSize:13}},l.error),Dr.default.createElement("div",{style:{overflowX:"auto"}},Dr.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:12}},Dr.default.createElement("thead",null,Dr.default.createElement("tr",null,["Scenario / model","Before","After","Score \u0394","Fault"].map(f=>Dr.default.createElement("th",{key:f,style:{textAlign:"left",padding:"8px 10px",borderBottom:"1px solid var(--color-border)",color:"var(--color-text-muted)",whiteSpace:"nowrap"}},f)))),Dr.default.createElement("tbody",null,u.map(f=>Dr.default.createElement("tr",{key:`${f.scenario_key}/${f.model}`},Dr.default.createElement("td",{style:{padding:10,fontFamily:"var(--font-mono)"}},f.scenario_key,Dr.default.createElement("div",{style:{color:"var(--color-text-muted)",fontSize:10,marginTop:4}},f.model)),Dr.default.createElement("td",{style:{padding:10}},f.before," \xB7 ",p(f.before_score)),Dr.default.createElement("td",{style:{padding:10,color:f.change==="fixed"?"var(--color-success-text)":["regressed","still_failing"].includes(f.change)?"var(--color-error-text)":"var(--color-text-secondary)"}},f.after||"pending",f.after_score!=null&&` \xB7 ${p(f.after_score)}`,Dr.default.createElement("div",{style:{fontSize:10,marginTop:4}},f.change.replaceAll("_"," "))),Dr.default.createElement("td",{style:{padding:10,fontFamily:"var(--font-mono)"}},f.score_change==null?"\u2014":`${f.score_change>0?"+":""}${p(f.score_change)}`),Dr.default.createElement("td",{style:{padding:10}},f.fault||(f.after?"none":f.before_fault)||"\u2014")))))),Dr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12,flexWrap:"wrap",fontSize:12}},Dr.default.createElement("a",{href:Re(`/evaluations/${t}/runs/${e.evaluation_run_id}`)},"Original run"),l?.run_id&&Dr.default.createElement("a",{href:Re(`/evaluations/${t}/runs/${l.run_id}`)},"Verification run"),c&&Dr.default.createElement(ce,{size:"sm",onClick:d,disabled:i},i?"Starting\u2026":"Re-run the full suite"),n&&["succeeded","failed","cancelled"].includes(e.status)&&(c||l?.error||e.status!=="succeeded"||!e.diff)&&Dr.default.createElement(ce,{size:"sm",onClick:n},"Try again")),o?.run&&Dr.default.createElement("a",{style:{fontSize:12},href:Re(`/evaluations/${t}/runs/${o.run}`)},"Full suite queued \u2014 open run \u2192"),o?.error&&Dr.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)"}},o.error))}var On=e=>{let t=Number(e)||0;return Math.abs(t)>=1e6?`${(t/1e6).toFixed(1)}M`:Math.abs(t)>=1e3?`${(t/1e3).toFixed(1)}K`:`${Math.round(t)}`},y0=e=>e==null?"\u2014":On(e),jI=(e,t)=>e==null&&t==null?"\u2014":`${y0(e)}\u2192${y0(t)}`,Bn=e=>{if(e==null||Number.isNaN(Number(e)))return"\u2014";let t=Number(e);return t>=1e3?`${(t/1e3).toFixed(t>=1e4?1:2).replace(/\.?0+$/,"")}s`:`${Math.round(t)}ms`},v0=e=>{if(e==null)return"\u2014";let t=Number(e);return t===0?"$0.00":Math.abs(t)<.01?`$${t.toFixed(4)}`:`$${t.toFixed(2)}`},x0=(e,t=4)=>e==null?"\u2014":`$${Number(e).toFixed(t)}`;var mh=(e,t="%",r=0)=>{if(e==null||Number.isNaN(Number(e)))return"\u2014";let n=Number(e);return`${n>0?"+":n<0?"-":""}${Math.abs(n).toFixed(r)}${t}`},wo=e=>{if(!e)return"";let t=Math.floor((Date.now()-new Date(e).getTime())/6e4);if(t<1)return"just now";if(t<60)return`${t} min ago`;if(t<1440){let n=Math.floor(t/60);return`${n} hour${n===1?"":"s"} ago`}let r=Math.floor(t/1440);return`${r} day${r===1?"":"s"} ago`},bn=(e,t=null)=>{let r=String(e||""),n=r.lastIndexOf("/");return n>0?{short:r.slice(n+1),provider:r.slice(0,n)}:{short:r,provider:t||""}};var eke=2e4,PX=()=>{try{return i2(window.localStorage.getItem(AI))}catch{return i2(null)}},tke=(e,t)=>{try{window.localStorage.setItem(AI,sX(e,t))}catch{}},DX=e=>({backgroundColor:e?"#1a1a1a":"#ffffff"}),MX={success:{dark:"bg-green-900/30 text-green-300",light:"bg-green-50 text-green-700"},error:{dark:"bg-red-900/30 text-red-300",light:"bg-red-50 text-red-700"},progress:{dark:"bg-amber-900/30 text-amber-300",light:"bg-amber-50 text-amber-700"},neutral:{dark:"bg-gray-700 text-gray-300",light:"bg-gray-100 text-gray-600"}};function Ks({tone:e="neutral",children:t}){let{darkMode:r}=ut(),n=MX[e]||MX.neutral;return Ee.default.createElement("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium ${r?n.dark:n.light}`},e==="progress"&&Ee.default.createElement("span",{className:"mr-1 h-1.5 w-1.5 rounded-full bg-current animate-pulse"}),t)}function b0({sandbox:e,claudeCode:t,codex:r,onRecheckConnection:n,readOnly:o=!1,focusSessionId:a=null,title:i="Code sessions"}){let{darkMode:s}=ut(),l=`/api/sandboxes/${encodeURIComponent(e.session_id)}/code_sessions`,[u,c]=(0,Ee.useState)(null),[d,p]=(0,Ee.useState)(null),[f,m]=(0,Ee.useState)(null),[y,b]=(0,Ee.useState)(null),[g,h]=(0,Ee.useState)(0),[v,x]=(0,Ee.useState)(0),[S,k]=(0,Ee.useState)(""),[w,_]=(0,Ee.useState)("claude_code"),A=w==="codex"?"Codex":"Claude Code",[C,N]=(0,Ee.useState)(PX),[L,J]=(0,Ee.useState)(!1),[B,K]=(0,Ee.useState)(!1),[T,P]=(0,Ee.useState)(null),I=(0,Ee.useRef)(null),M=(0,Ee.useRef)(!0),j=(0,Ee.useCallback)(async()=>{let $=await fetch(l),ee=await $.json().catch(()=>({}));if(!$.ok)throw new Error(at(ee,`Could not load code sessions (HTTP ${$.status}).`));return ee.code_sessions||[]},[l]);(0,Ee.useEffect)(()=>{let $=!1;return c(null),p(null),j().then(ee=>{if($)return;c(ee);let U=ee.find(me=>me.id===a)||ee.find(qs)||ee[0];p(me=>me??U?.id??null)}).catch(ee=>{$||(c([]),P(ee.message))}),()=>{$=!0}},[j]),(0,Ee.useEffect)(()=>{a!=null&&p(a)},[a]),(0,Ee.useEffect)(()=>{if(d==null)return;let $=!1,ee=null,U=[],me=0;m(null),b(null),M.current=!0;let et=async()=>{let rt=!0,ge=null;try{let ue=await fetch(`${l}/${d}?after=${U.length}`);ge=ue.status;let Fe=await ue.json().catch(()=>({}));if($)return;if(!ue.ok)throw new Error(at(Fe,`Could not load the session (HTTP ${ue.status}).`));let Je=Fe.code_session;U=eX(U,Je),me=0,b(null),m({...Je,events:U}),c(Tt=>sd(Tt||[],QY(Je),"id"));let ot=Je.evaluation_run_id&&Je.status==="succeeded"&&Je.diff&&!Je.verification?.error&&!["complete","failed"].includes(Je.verification?.status);_I(Je)&&!ot&&(rt=!1)}catch(ue){if($)return;me+=1,b(ue.message),t2(ge,me)&&(rt=!1)}rt&&!$&&(ee=setTimeout(et,1500))};return et(),()=>{$=!0,clearTimeout(ee)}},[l,d,g]);let O=(u||[]).find(qs)||null,F=O&&O.id!==d?O.id:null,V=w==="codex"?hX(r):fX(t),z=V?"not_connected":O?"busy":null;(0,Ee.useEffect)(()=>{if(F==null)return;let $=!1,ee=setTimeout(async()=>{try{let U=await j();$||c(U)}catch{}$||x(U=>U+1)},1500*2);return()=>{$=!0,clearTimeout(ee)}},[F,v,j]);let G=(0,Ee.useMemo)(()=>a2(f?.events),[f?.events]);(0,Ee.useLayoutEffect)(()=>{let $=I.current;$&&M.current&&($.scrollTop=$.scrollHeight)},[G.length]);let q=$=>{let ee=$.currentTarget;M.current=ee.scrollHeight-ee.scrollTop-ee.clientHeight<40},oe=NI(C.choice,C.custom).error||null,Me=$=>{N(ee=>{let U={...ee,...$};return w==="claude_code"&&tke(U.choice,U.custom),U})},fe=async()=>{let $=S.trim();if(!(!$||z||L||oe)){J(!0),P(null);try{let ee=await fetch(l,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(iX($,C.choice,C.custom,w))}),U=await ee.json().catch(()=>({}));if(!ee.ok)throw U.code_session&&(c(me=>sd(me||[],U.code_session,"id")),p(U.code_session.id)),new Error(at(U,`Could not start ${A} (HTTP ${ee.status}).`));c(me=>sd(me||[],U.code_session,"id")),p(U.code_session.id),k("")}catch(ee){P(ee.message)}finally{J(!1)}}},le=async $=>{K(!0),P(null);try{let ee=await fetch(`${l}/${$.id}/cancel`,{method:"POST"}),U=await ee.json().catch(()=>({}));if(!ee.ok)throw new Error(at(U,`Could not cancel the session (HTTP ${ee.status}).`));c(me=>sd(me||[],U.code_session,"id")),m(me=>me&&me.id===U.code_session.id?{...me,...U.code_session}:me)}catch(ee){P(ee.message)}finally{K(!1)}},R=s?"text-gray-400":"text-gray-500",te=s?"text-white":"text-gray-900",He=s?"border-gray-700":"border-gray-200",_e=`px-3 py-1 text-sm rounded ${s?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,D=`underline ${s?"text-gray-300 hover:text-white":"text-gray-700 hover:text-gray-900"}`,Y=`p-2 rounded text-xs border ${s?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`,E=f&&f.id===d?f:(u||[]).find($=>$.id===d)||null;return Ee.default.createElement("div",{className:`mt-2 p-3 rounded-lg border space-y-3 ${He}`},!o&&t?.mode==="sandbox_login"&&Ee.default.createElement(rf,{sandbox:e,onChange:n}),Ee.default.createElement("div",{className:"flex items-center justify-between"},Ee.default.createElement("p",{className:`text-sm font-medium ${te}`},i),Ee.default.createElement("p",{className:`text-xs ${R}`},"A session edits this checkout and never commits or pushes. Publishing is a separate step, below.")),o&&T&&Ee.default.createElement("div",{className:Y},T),!o&&Ee.default.createElement("div",{className:"space-y-2"},Ee.default.createElement("label",{className:`flex items-center gap-2 text-xs ${R}`},"Agent",Ee.default.createElement("select",{"aria-label":"Coding agent",value:w,onChange:$=>{_($.target.value),N($.target.value==="claude_code"?PX():i2(null))},disabled:L,className:`px-2 py-1 border rounded ${s?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`},Ee.default.createElement("option",{value:"claude_code"},"Claude Code"),Ee.default.createElement("option",{value:"codex",disabled:!r?.supported},"Codex",r?.supported?"":" (backend unavailable)"))),Ee.default.createElement("textarea",{value:S,onChange:$=>k($.target.value),onKeyDown:$=>{$.key==="Enter"&&($.metaKey||$.ctrlKey)&&fe()},rows:3,maxLength:eke,disabled:z==="not_connected"||L,placeholder:`What should ${A} do in this checkout?`,className:`w-full px-3 py-2 border rounded-lg text-sm disabled:opacity-60 ${s?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),Ee.default.createElement("div",{className:"flex flex-wrap items-center gap-2"},Ee.default.createElement("label",{htmlFor:`code-session-model-${e.session_id}`,className:`text-xs ${R}`},"Model"),Ee.default.createElement("select",{id:`code-session-model-${e.session_id}`,value:C.choice,onChange:$=>Me({choice:$.target.value}),disabled:L,className:`px-2 py-1 border rounded text-xs ${s?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`},aX(w).map($=>Ee.default.createElement("option",{key:$.value,value:$.value},$.label))),C.choice===d0&&Ee.default.createElement("input",{type:"text",value:C.custom,onChange:$=>Me({custom:$.target.value}),disabled:L,maxLength:100,placeholder:w==="codex"?"Model id":"claude-sonnet-4-5","aria-label":"Model id","aria-invalid":!!oe,className:`flex-1 min-w-[10rem] px-2 py-1 border rounded text-xs font-mono ${s?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`})),oe&&C.custom.trim()&&Ee.default.createElement("p",{className:`text-xs ${s?"text-red-300":"text-red-700"}`},oe),Ee.default.createElement("div",{className:"flex items-center justify-between gap-3"},Ee.default.createElement("p",{className:`text-xs ${R}`},z==="not_connected"&&Ee.default.createElement(Ee.default.Fragment,null,V.text,V.loginHint&&Ee.default.createElement(Ee.default.Fragment,null," ",Ee.default.createElement("code",{className:"font-mono"},V.loginHint)," ",V.after)," ",n&&Ee.default.createElement("button",{type:"button",onClick:n,className:D},"Check again")),z==="busy"&&Ee.default.createElement(Ee.default.Fragment,null,"A session is ",O.status," in this checkout; wait for it to finish or cancel it."," ",O.id!==d&&Ee.default.createElement("button",{type:"button",onClick:()=>p(O.id),className:D},"Show it"))),Ee.default.createElement("button",{type:"button",onClick:fe,disabled:!!z||L||!S.trim()||!!oe,className:"shrink-0 px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600 disabled:opacity-50"},L?"Starting\u2026":`Run ${A}`)),T&&Ee.default.createElement("div",{className:Y},T)),u&&u.length>0&&Ee.default.createElement("div",{className:"space-y-1"},Ee.default.createElement("p",{className:`text-xs font-medium uppercase tracking-wide ${R}`},"Sessions"),Ee.default.createElement("div",{className:"max-h-40 overflow-y-auto space-y-1"},u.map($=>{let{label:ee,tone:U}=ms($.status),me=$.id===d;return Ee.default.createElement("button",{key:$.id,type:"button",title:XY($),onClick:()=>me?h(et=>et+1):p($.id),className:`w-full text-left px-2 py-1.5 rounded flex items-center gap-2 text-sm ${me?s?"bg-gray-700":"bg-gray-200":s?"hover:bg-gray-800":"hover:bg-gray-100"}`},Ee.default.createElement(Ks,{tone:U},ee),Ee.default.createElement("span",{className:`text-xs ${R}`},$.runner==="codex"?"Codex":"Claude Code"),Ee.default.createElement("span",{className:`flex-1 truncate ${te}`},ZY($.prompt)),Ee.default.createElement("span",{className:`shrink-0 text-xs font-mono ${R}`},TI($)),Ee.default.createElement("span",{className:`shrink-0 text-xs ${R}`},wo($.created_at)))}))),u===null&&Ee.default.createElement("p",{className:`text-xs ${R}`},"Loading sessions\u2026"),E&&Ee.default.createElement(rke,{session:E,rows:G,loaded:!!(f&&f.id===E.id),detailError:y,cancelling:B,onCancel:()=>le(E),onReload:()=>h($=>$+1),transcriptRef:I,onTranscriptScroll:q,classes:{muted:R,strong:te,border:He,secondaryButton:_e,linkButton:D,errorBox:Y}}))}function rke({session:e,rows:t,loaded:r,detailError:n,cancelling:o,onCancel:a,onReload:i,transcriptRef:s,onTranscriptScroll:l,classes:u}){let{darkMode:c}=ut(),{muted:d,strong:p,border:f,secondaryButton:m,linkButton:y,errorBox:b}=u,{label:g,tone:h}=ms(e.status),v=qs(e),x=l0(e),S=YY(e),k=Number(e.dropped_events_count)||0;return Ee.default.createElement("div",{className:`pt-3 border-t space-y-2 ${f}`},Ee.default.createElement("div",{className:"flex items-center justify-between gap-3"},Ee.default.createElement("div",{className:"flex items-center gap-2 min-w-0"},Ee.default.createElement(Ks,{tone:h},g),Ee.default.createElement("span",{className:`text-xs truncate ${d}`},[CI(e),TI(e)].filter(Boolean).join(" \xB7 "))),Ee.default.createElement("div",{className:"flex items-center gap-2 shrink-0"},Ee.default.createElement("a",{href:Re(gs(e.conversation_id||e.id)),onClick:w=>{w.preventDefault(),lt(gs(e.conversation_id||e.id))},className:y,"data-testid":"code-session-open-interaction"},"Open in Interactions"),v&&Ee.default.createElement("button",{type:"button",onClick:a,disabled:o,className:`${m} shrink-0 disabled:opacity-50`},o?"Cancelling\u2026":"Cancel"))),Ee.default.createElement("p",{className:`text-xs whitespace-pre-wrap break-words max-h-24 overflow-y-auto ${d}`},e.prompt),n&&Ee.default.createElement("div",{className:b},n),Ee.default.createElement("div",{ref:s,onScroll:l,className:"max-h-96 overflow-y-auto rounded p-2 space-y-1.5",style:DX(c)},!r&&Ee.default.createElement("p",{className:`text-xs ${d}`},"Loading transcript\u2026"),r&&t.length===0&&Ee.default.createElement("p",{className:`text-xs ${d}`},e.status==="queued"?"Waiting for the sandbox to start the agent\u2026":v?"The agent is starting\u2026":S?"Cancelled before the agent started.":"No transcript was recorded."),t.map(w=>Ee.default.createElement($I,{key:w.key,row:w,darkMode:c,muted:d,strong:p})),k>0&&Ee.default.createElement("p",{className:`text-xs italic ${d}`},k," later event",k===1?" was":"s were"," not kept: a transcript keeps its first 1,000.")),e.error_message&&Ee.default.createElement("pre",{className:`${b} whitespace-pre-wrap break-words font-mono max-h-48 overflow-y-auto`},e.error_message),e.evaluation_run_id&&Ee.default.createElement(h0,{session:e,evaluationId:e.evaluation_id,sandboxId:e.sandbox_session_id}),x&&r&&Ee.default.createElement(LI,{diff:e.diff,pending:kI(e),onReload:i,muted:d,linkButton:y,darkMode:c}))}function $I({row:e,darkMode:t,muted:r,strong:n}){let o=e.nested?`ml-4 pl-2 border-l ${t?"border-gray-700":"border-gray-200"}`:"";switch(e.kind){case"text":return Ee.default.createElement("p",{className:`text-sm whitespace-pre-wrap break-words ${n} ${o}`},e.text);case"user_text":return Ee.default.createElement("p",{className:`text-sm whitespace-pre-wrap break-words ${r} ${o}`},e.text);case"thinking":return Ee.default.createElement("p",{className:`text-xs italic whitespace-pre-wrap break-words line-clamp-3 ${r} ${o}`},e.text);case"tool_use":return Ee.default.createElement("p",{className:`text-xs font-mono break-words ${o}`},Ee.default.createElement("span",{className:`font-semibold ${t?"text-blue-300":"text-blue-700"}`},e.name),e.summary&&Ee.default.createElement("span",{className:r}," ",e.summary));case"tool_result":return Ee.default.createElement("pre",{className:`ml-4 text-xs font-mono whitespace-pre-wrap break-words ${e.isError?t?"text-red-400":"text-red-600":r} ${o}`,title:e.name?`${e.name} result`:void 0},e.text||"(no output)");case"result":return Ee.default.createElement("p",{className:`text-sm font-medium ${e.tone==="error"?t?"text-red-400":"text-red-600":t?"text-green-400":"text-green-600"}`},e.text);case"system":return Ee.default.createElement("p",{className:`text-xs ${r}`},e.text);case"raw":return Ee.default.createElement("pre",{className:`text-xs font-mono whitespace-pre-wrap break-words ${r} ${o}`},e.text);default:return Ee.default.createElement("pre",{className:`text-xs font-mono whitespace-pre-wrap break-words ${r} ${o}`},"[",e.label,"] ",e.text)}}var IX={add:{dark:"text-green-400",light:"text-green-700"},del:{dark:"text-red-400",light:"text-red-700"},hunk:{dark:"text-blue-300",light:"text-blue-700"},meta:{dark:"text-gray-400 font-semibold",light:"text-gray-500 font-semibold"},context:{dark:"text-gray-300",light:"text-gray-700"}};function LI({diff:e,pending:t,onReload:r,muted:n,linkButton:o,darkMode:a}){let i=(0,Ee.useMemo)(()=>u0(e),[e]);return e==null?t?Ee.default.createElement("p",{className:`text-xs ${n}`},"The diff is recorded once the agent has stopped."," ",Ee.default.createElement("button",{type:"button",onClick:r,className:o},"Refresh")):Ee.default.createElement("p",{className:`text-xs ${n}`},"No diff was recorded."):i.length===0?Ee.default.createElement("p",{className:`text-xs ${n}`},"No changes in the checkout."):Ee.default.createElement("div",{className:"space-y-1"},Ee.default.createElement("p",{className:`text-xs ${n}`},"Diff \xB7 ",nX(e)),Ee.default.createElement("pre",{className:"max-h-96 overflow-auto rounded p-2 text-xs font-mono",style:DX(a)},i.map((s,l)=>{let u=IX[s.kind]||IX.context;return Ee.default.createElement("div",{key:l,className:a?u.dark:u.light},s.text||" ")})))}var gt=Z(Q());function f2(e){return(e.altKey?1:0)|(e.ctrlKey?2:0)|(e.metaKey?4:0)|(e.shiftKey?8:0)}var jX=["left","middle","right"];function $X(e,t,r){if(!r||!(r.width>0)||!(r.height>0))return null;let n=(e-r.left)/r.width,o=(t-r.top)/r.height;return n<0||n>1||o<0||o>1?null:{x:n,y:o}}function m2(e,t,r){let n=$X(t.clientX,t.clientY,r);if(!n)return null;let o={type:"mouse",action:e,...n,modifiers:f2(t)};return e==="move"?{...o,button:t.buttons&1?"left":"none"}:{...o,button:jX[t.button]||"left",clickCount:Math.min(Math.max(t.detail||1,1),3)}}function LX(e,t,r){let n=m2("up",e,t);return n||!r?n:{type:"mouse",action:"up",x:r.x,y:r.y,modifiers:f2(e),button:jX[e.button]||"left",clickCount:1}}var nke=16,oke=800;function zX(e,t){let r=$X(e.clientX,e.clientY,t);if(!r)return null;let n=e.deltaMode===1?nke:e.deltaMode===2?oke:1;return{type:"wheel",...r,deltaX:e.deltaX*n,deltaY:e.deltaY*n,modifiers:f2(e)}}function zI(e,t){return t.isComposing||t.key==="Process"||t.key==="Unidentified"||!t.key?null:{type:"key",action:e,key:t.key,code:t.code||"",keyCode:t.keyCode||void 0,modifiers:f2(t)}}function BX(e){return typeof e=="string"&&e!==""?{type:"text",text:e.slice(0,2e3)}:null}var ake=600;function FX(e,t){return e.key!=="Escape"||e.repeat||t===null?!1:e.timeStamp-t<=ake}var BI=32*1024;function UX(e){let t="";for(let r=0;r=1024*1024?`${Math.round(e/(1024*1024)*10)/10} MB`:e>=1024?`${Math.round(e/1024)} KB`:`${e} bytes`}function HX(e,t){let r=Array.from(e||[]);if(!t)return{error:"The page is no longer asking for a file."};if(r.length===0)return{error:"Choose a file to upload."};let n=t.multiple?t.max_files:1;if(r.length>n)return{error:n===1?"This field takes one file.":`This field takes at most ${n} files.`};let o=r.find(a=>a.size>t.max_file_bytes);return o?{error:`${o.name} is larger than ${WX(t.max_file_bytes)}.`}:{files:r.map(a=>({name:a.name,size:a.size})),total:r.reduce((a,i)=>a+i.size,0)}}function qX(e){if(!e)return null;let t=e.total>0?Math.min(100,Math.floor(e.sent/e.total*100)):100;return`Uploading ${WX(e.total)}\u2026 ${t}%`}function KX(e){return!e.fileChooser||e.control.mine?null:e.control.yours?"The page is asking for a file. Choose it in the view you are driving from.":`The page is asking ${e.control.by||"the person driving"} for a file.`}var w0={ready:!1,control:{held:!1,mine:!1,yours:!1,by:null,since:null},agent:{waiting:!1,tool:null,since:null,client:null},page:null,frameSize:null,fileChooser:null,personRequest:null,error:null};function VX(e,t){switch(t?.type){case"ready":return{...e,ready:!0,control:{...w0.control,...t.control},agent:{...w0.agent,...t.agent},page:t.page||null,fileChooser:t.file_chooser||null,personRequest:t.person_request||null};case"frame":return e.frameSize?.width===t.width&&e.frameSize?.height===t.height?e:{...e,frameSize:{width:t.width,height:t.height}};case"control":return{...e,control:{held:t.held,mine:t.mine,yours:t.yours===!0,by:t.by,since:t.since}};case"agent":return{...e,agent:{waiting:t.waiting,tool:t.tool,since:t.since,client:t.client||null}};case"person_requested":return{...e,personRequest:t.request||null};case"page":return{...e,page:t.page||null};case"file_chooser":return{...e,fileChooser:t.chooser||null};case"file_upload":return t.status==="failed"?{...e,error:t.message||"The upload failed"}:e;case"error":return{...e,error:t.message||"The browser refused that"};case"clear_error":return{...e,error:null};case"reset":return w0;default:return e}}function GX(e){if(!e.agent.waiting||!e.control.held)return null;let t=e.agent.tool?` (${e.agent.tool})`:"",r=e.agent.client||"The agent";return e.control.mine?`${r} is waiting for you to hand back control${t}.`:e.control.yours?`${r} is waiting for you to hand back control in your other view${t}.`:`${r} is waiting for ${e.control.by||"the person driving"} to hand back control${t}.`}function YX(e){let t=e.personRequest;return!t||e.control.held?null:`${t.client||"The agent"} needs a person: ${t.reason}`}function XX({by:e=null,takenAt:t,releasedAt:r,page:n=null}){let o=a=>Number.isFinite(a)?new Date(a).toISOString():null;return{by:e||null,taken_at:o(t),released_at:o(r),page_url:typeof n?.url=="string"&&/^https?:\/\//.test(n.url)?n.url:null}}function ZX(e){return e.control.held?e.control.mine?"You are driving":e.control.yours?"You are driving in another view":`Held by ${e.control.by||"someone else"}`:null}function JX(e,{taking:t=!1}={}){let{held:r,yours:n}=e.control,o="Take over";return t?o="Taking over\u2026":r&&n&&(o="Continue driving here"),{label:o,disabled:t||r&&!n}}function QX(e){if(!e)return null;let t=e.tabs>1?` \xB7 tab ${e.tab} of ${e.tabs}`:"";return`${e.url||"a page with no address to show"}${t}`}var ike={1001:"The browser stopped.",4401:"The live view did not accept the ticket. Try again.",4408:"The live view timed out before it opened. Try again.",4429:"Too many people are watching this browser."};function RX(e,{requested:t=!1}={}){return t?null:ike[e]||"The live view lost its connection to the browser."}var ske={starting:{label:"Starting",tone:"progress"},running:{label:"Running",tone:"success"},stopped:{label:"Stopped",tone:"neutral"},failed:{label:"Failed",tone:"error"}};function eZ(e){return e?.status?ske[e.status]||{label:e.status,tone:"neutral"}:null}function tZ(e){return e?.status==="starting"||e?.status==="running"}function rZ({inWindow:e=!1,modes:t=[]}={}){return{mode:e&&t.includes("headed")?"headed":"headless"}}async function nZ(e,t){let r=await fetch(`/api/sandboxes/${encodeURIComponent(e)}/browser/tickets`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({mode:t})}),n=await r.json().catch(()=>({}));if(r.status===403&&n.code==="forbidden")throw new Error("You do not have permission to take over this browser.");if(!r.ok)throw new Error(at(n,`Could not open the live view (HTTP ${r.status}).`));return n}var oZ=e=>(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()==="v",lke=1024*1024,uke=e=>new Promise(t=>{setTimeout(t,e)});function cke({chooser:e,upload:t,onFiles:r,onCancel:n}){let{darkMode:o}=ut(),a=o?"text-gray-400":"text-gray-500",i=o?"text-white":"text-gray-900",s=e.multiple;return gt.default.createElement("div",{role:"dialog","aria-label":"Choose a file for the page","data-testid":"live-view-file-chooser",className:`absolute inset-x-4 top-4 p-3 rounded border shadow space-y-2 ${o?"bg-gray-800 border-gray-600":"bg-white border-gray-300"}`},gt.default.createElement("p",{className:`text-sm font-medium ${i}`},"The page asked for ",s?"files":"a file"),gt.default.createElement("p",{className:`text-xs ${a}`},"Choose ",s?`up to ${e.max_files} files`:"one"," from this computer, or drop ",s?"them":"it"," on the view. ",e.accept?`The page takes ${e.accept}. `:"","Only the browser receives the files, and they stay in the sandbox until the browser stops."),t?gt.default.createElement("p",{className:`text-xs ${i}`,role:"status"},qX(t)):gt.default.createElement("input",{type:"file",multiple:s,accept:e.accept||void 0,onChange:l=>r(l.target.files),"aria-label":s?"Files for the page":"File for the page",className:`block text-xs ${i}`}),gt.default.createElement("button",{type:"button",onClick:n,className:`px-3 py-1 text-sm rounded ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},"Cancel"))}function S0({sessionId:e,headed:t=!1,watchOnOpen:r=!1,onHandBack:n=null,handBackLabel:o="Hand back"}){let{darkMode:a}=ut(),[i,s]=(0,gt.useReducer)(VX,w0),[l,u]=(0,gt.useState)("idle"),[c,d]=(0,gt.useState)(null),[p,f]=(0,gt.useState)(!1),[m,y]=(0,gt.useState)(null),b=(0,gt.useRef)(null),g=(0,gt.useRef)(!1),h=(0,gt.useRef)(0),v=(0,gt.useRef)(!1),x=(0,gt.useRef)(null),S=(0,gt.useRef)(null),k=(0,gt.useRef)({pending:null,decoding:!1}),w=(0,gt.useRef)({message:null,scheduled:!1}),_=(0,gt.useRef)(null),A=(0,gt.useRef)(null),C=(0,gt.useRef)(0),N=i.control.mine,L=(0,gt.useRef)(null),J=(0,gt.useRef)(i);J.current=i,(0,gt.useEffect)(()=>{if(N){L.current=i.control.since||Date.now();return}if(L.current===null)return;let U=L.current;L.current=null,n?.(XX({by:null,takenAt:U,releasedAt:Date.now(),page:J.current.page}))},[N]);let B=(0,gt.useCallback)(U=>{let me=b.current;U&&me?.readyState===WebSocket.OPEN&&me.send(JSON.stringify(U))},[]),K=(0,gt.useCallback)(U=>{let me=k.current;if(me.pending=U,me.decoding)return;let et=()=>{let rt=me.pending;if(me.pending=null,me.decoding=!!rt,!rt)return;let ge=new Image;ge.onload=()=>{let ue=x.current;ue&&((ue.width!==ge.naturalWidth||ue.height!==ge.naturalHeight)&&(ue.width=ge.naturalWidth,ue.height=ge.naturalHeight),ue.getContext("2d")?.drawImage(ge,0,0)),et()},ge.onerror=et,ge.src=`data:image/jpeg;base64,${rt.data}`};et()},[]),T=(0,gt.useCallback)(()=>{h.current+=1;let U=b.current;if(!U){u("idle");return}v.current&&U.readyState===WebSocket.OPEN&&U.send(JSON.stringify({type:"hand_back"})),g.current=!0,U.close(1e3)},[]);(0,gt.useEffect)(()=>T,[T]);let P=async()=>{h.current+=1;let U=h.current;d(null),u("connecting");try{let{ticket:me,url:et}=await nZ(e,"view");if(h.current!==U)return;let rt=new WebSocket(et);b.current=rt,g.current=!1,rt.onopen=()=>rt.send(JSON.stringify({type:"auth",ticket:me})),rt.onmessage=ge=>{let ue;try{ue=JSON.parse(ge.data)}catch{return}ue.type==="ready"&&u("open"),ue.type==="frame"&&K(ue),(ue.type==="file_upload"&&ue.status!=="progress"||ue.type==="file_chooser"&&!ue.chooser)&&(C.current+=1,y(null)),s(ue)},rt.onclose=ge=>{b.current===rt&&(b.current=null,C.current+=1,y(null),u("idle"),s({type:"reset"}),d(RX(ge.code,{requested:g.current})))}}catch(me){if(h.current!==U)return;u("idle"),d(me.message)}},I=(0,gt.useRef)(!1);(0,gt.useEffect)(()=>{!r||I.current||(I.current=!0,P())},[r]);let M=async()=>{s({type:"clear_error"}),f(!0);try{let{ticket:U}=await nZ(e,"control");B({type:"take_control",ticket:U})}catch(U){d(U.message)}finally{f(!1)}},j=()=>{B({type:"hand_back"}),x.current?.blur()},O=async U=>{let me=i.fileChooser,et=HX(U,me);if(et.error){d(et.error);return}let rt=b.current;if(!rt||rt.readyState!==WebSocket.OPEN)return;C.current+=1;let ge=C.current;d(null),s({type:"clear_error"}),B({type:"file_upload",chooser:me.id,files:et.files});let ue=0;y({sent:ue,total:et.total});try{for(let Fe of Array.from(U))for(let Je=0;Jelke&&C.current===ge;)await uke(50);if(C.current!==ge||rt.readyState!==WebSocket.OPEN)return;let ot=new Uint8Array(await Fe.slice(Je,Je+BI).arrayBuffer());B({type:"file_chunk",chooser:me.id,data:UX(ot)}),ue+=ot.length,y({sent:ue,total:et.total})}}catch(Fe){d(`Could not read the file: ${Fe.message}`),F()}},F=()=>{C.current+=1,y(null),i.fileChooser&&B({type:"file_cancel",chooser:i.fileChooser.id})},V=N&&!!i.fileChooser,z=V?{onDragOver:U=>{U.preventDefault(),U.dataTransfer.dropEffect="copy"},onDrop:U=>{U.preventDefault(),m||O(U.dataTransfer.files)}}:{};(0,gt.useEffect)(()=>{v.current=N,N?x.current?.focus():x.current?.blur()},[N]),(0,gt.useEffect)(()=>{let U=x.current;if(!U||!N)return;let me=et=>{et.preventDefault(),B(zX(et,U.getBoundingClientRect()))};return U.addEventListener("wheel",me,{passive:!1}),()=>U.removeEventListener("wheel",me)},[N,B,l]);let G=()=>x.current?.getBoundingClientRect(),q=U=>{U&&(_.current={x:U.x,y:U.y},B(U))},oe=N?{onMouseDown:U=>{U.preventDefault(),x.current?.focus(),q(m2("down",U,G())),window.addEventListener("mouseup",me=>q(LX(me,G(),_.current)),{once:!0})},onMouseMove:U=>{let me=w.current;me.message=m2("move",U,G()),!me.scheduled&&(me.scheduled=!0,requestAnimationFrame(()=>{me.scheduled=!1,q(me.message),me.message=null}))},onContextMenu:U=>U.preventDefault(),onKeyDown:U=>{if(FX(U,A.current)){U.preventDefault(),A.current=null,S.current?.focus();return}if(A.current=U.key==="Escape"&&!U.repeat?U.timeStamp:null,oZ(U))return;let me=zI("down",U);me&&(U.preventDefault(),B(me))},onKeyUp:U=>{if(oZ(U))return;let me=zI("up",U);me&&(U.preventDefault(),B(me))},onPaste:U=>{U.preventDefault(),B(BX(U.clipboardData?.getData("text/plain")))}}:{},Me=a?"text-gray-400":"text-gray-500",fe=a?"text-white":"text-gray-900",le=`px-3 py-1 text-sm rounded disabled:opacity-50 ${a?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,R="px-3 py-1 text-sm rounded text-white bg-blue-600 hover:bg-blue-700 disabled:opacity-50",te=GX(i),He=YX(i),_e=ZX(i),D=JX(i,{taking:p}),Y=QX(i.page),E=KX(i),$=l==="open",{frameSize:ee}=i;return gt.default.createElement("div",{className:"space-y-2"},gt.default.createElement("div",{className:"flex flex-wrap items-center gap-2"},l==="idle"?gt.default.createElement("button",{type:"button",onClick:P,className:le},"Watch live"):gt.default.createElement("button",{type:"button",onClick:T,className:le},"Stop watching"),$&&(N?gt.default.createElement("button",{ref:S,type:"button",onClick:j,className:R},o):gt.default.createElement("button",{ref:S,type:"button",onClick:M,disabled:D.disabled,className:R},D.label)),_e&>.default.createElement("span",{className:`text-xs font-medium ${fe}`},_e),l==="connecting"&>.default.createElement("span",{className:`text-xs ${Me}`},"Connecting\u2026")),c&>.default.createElement("p",{className:`text-xs ${Me}`,role:"status"},c),i.error&>.default.createElement("p",{className:`text-xs ${a?"text-red-400":"text-red-600"}`,role:"alert"},i.error),He&>.default.createElement("p",{role:"alert","data-testid":"live-view-person-request",className:`p-2 rounded text-xs border ${a?"bg-blue-900/20 border-blue-800 text-blue-200":"bg-blue-50 border-blue-200 text-blue-800"}`},He,$?" Take over to help, then hand back.":" Watch live, then take over to help."),te&>.default.createElement("p",{role:"status",className:`p-2 rounded text-xs border ${a?"bg-amber-900/20 border-amber-800 text-amber-300":"bg-amber-50 border-amber-200 text-amber-800"}`},te),l!=="idle"&>.default.createElement("div",{className:"space-y-1"},Y&>.default.createElement("p",{className:`text-xs font-mono truncate ${Me}`,title:Y},Y),E&>.default.createElement("p",{className:`text-xs ${Me}`,role:"status"},E),gt.default.createElement("div",{className:"relative","data-testid":"live-view-frame",...z},gt.default.createElement("canvas",{ref:x,tabIndex:N?0:-1,role:N?"application":"img","aria-label":N?"The sandbox's browser: your mouse and keys go to it. Press Escape twice to leave it.":"Live view of the sandbox's browser",className:`block w-full rounded border bg-black ${N?"cursor-default outline-none focus:ring-2 focus:ring-blue-500":""} ${a?"border-gray-700":"border-gray-200"}`,style:{aspectRatio:ee?`${ee.width} / ${ee.height}`:"16 / 10"},...oe}),V&>.default.createElement(cke,{chooser:i.fileChooser,upload:m,onFiles:U=>{O(U)},onCancel:F})),N&>.default.createElement("p",{className:`text-xs ${Me}`},"Your mouse and keys go to the browser, and the agent waits until you hand back. Press Escape twice to move focus out of the view. That, or clicking outside it, only stops your keys reaching the browser: the agent keeps waiting until you press Hand back or Stop watching.")),t&>.default.createElement("p",{className:`text-xs ${Me}`},"This browser also has a window open on this machine. Clicking or typing in that window changes the page too, but the agent does not wait for it: take over here first."))}var dke={settings:"Started from Settings",boot_fix:"Fixing a failed boot",evaluation_fix:"Implementing an evaluation fix",chat:"Chat"};function pke({turn:e,sandboxId:t,darkMode:r,muted:n,strong:o}){let a=(0,Ye.useMemo)(()=>a2(e.events),[e.events]),[i,s]=(0,Ye.useState)(void 0),l=ms(e.status),u=async()=>{if(i!==void 0){s(void 0);return}let c=await fetch(`/api/sandboxes/${encodeURIComponent(t)}/code_sessions/${e.id}?after=1000000000`),d=await c.json().catch(()=>({}));s(c.ok?d.code_session?.diff??null:null)};return Ye.default.createElement("li",{className:`rounded border p-3 space-y-2 ${r?"border-gray-700":"border-gray-200"}`,"data-testid":"code-interaction-turn"},Ye.default.createElement("div",{className:"flex flex-wrap items-center gap-2"},Ye.default.createElement(Ks,{tone:l.tone},l.label),Ye.default.createElement("span",{className:`text-xs ${n}`},_X(e))),e.context_note&&Ye.default.createElement("p",{className:`text-xs italic ${n}`,title:"Sent to Claude Code ahead of the message"},"Dashboard note: ",e.context_note),Ye.default.createElement("p",{className:`text-sm whitespace-pre-wrap break-words font-medium ${o}`},e.prompt),Ye.default.createElement("div",{className:"space-y-1"},a.length===0&&Ye.default.createElement("p",{className:`text-xs ${n}`},qs(e)?"Waiting for Claude Code\u2026":"No transcript was recorded."),a.map(c=>Ye.default.createElement($I,{key:c.key,row:c,darkMode:r,muted:n,strong:o}))),e.error_message&&Ye.default.createElement("p",{className:`text-xs ${r?"text-red-400":"text-red-600"}`},e.error_message),!qs(e)&&Ye.default.createElement("div",{className:"space-y-1"},Ye.default.createElement("button",{type:"button",onClick:u,className:`text-xs underline ${n}`},i===void 0?"Show the checkout\u2019s diff after this turn":"Hide the diff"),i!==void 0&&Ye.default.createElement(LI,{diff:i,pending:!1,muted:n,darkMode:r,linkButton:"underline"})))}function FI({rootId:e,onBack:t=null}){let{darkMode:r}=ut(),[n,o]=(0,Ye.useState)(null),[a,i]=(0,Ye.useState)(null),[s,l]=(0,Ye.useState)(""),[u,c]=(0,Ye.useState)(!1),[d,p]=(0,Ye.useState)(null),[f,m]=(0,Ye.useState)(mke),y=(0,Ye.useRef)(null);y.current=n;let b=(0,Ye.useRef)(null),g=(0,Ye.useRef)(null),h=(0,Ye.useRef)(null),v=hke(g,!!n),x=(0,Ye.useRef)(null),[S,k]=(0,Ye.useState)(fke),[w,_]=(0,Ye.useState)(!1),A=f&&!!v,C=me=>{k(me),aZ(me)},N=(0,Ye.useRef)(null),L=(0,Ye.useRef)(S);L.current=S;let J=me=>{me.button!==0||!x.current||(me.preventDefault(),me.currentTarget.setPointerCapture?.(me.pointerId),N.current=x.current.getBoundingClientRect(),_(!0))},B=me=>{if(!N.current)return;let et=NX(me.clientX,N.current);L.current=et,k(et)},K=me=>{N.current&&(me.currentTarget.releasePointerCapture?.(me.pointerId),N.current=null,_(!1),aZ(L.current))},T=me=>{let et=TX(S,me.key);et!==null&&(me.preventDefault(),C(et))},P=me=>{m(et=>{let rt=typeof me=="function"?me(et):me;return gke(rt),rt})},I=(0,Ye.useCallback)(async()=>{let me=wX(y.current?.turns),et=await fetch(`/api/interactions/code-${e}${me?`?${me}`:""}`),rt=await et.json().catch(()=>({}));if(!et.ok){i(at(rt,`Could not load the conversation (HTTP ${et.status}).`));return}i(null),o(ge=>SX(ge,rt.interaction))},[e]);(0,Ye.useEffect)(()=>{o(null),y.current=null,I()},[I]);let M=kX(n);(0,Ye.useEffect)(()=>{if(!M)return;let me=setInterval(()=>{I()},vX);return()=>clearInterval(me)},[M,I]);let j=n?.turns?.length||0,O=n?.turns?.reduce((me,et)=>me+(et.events?.length||0),0)||0,F=(0,Ye.useRef)(!0);(0,Ye.useEffect)(()=>{let me=h.current;me&&F.current&&(me.scrollTop=me.scrollHeight)},[j,O,v]);let V=()=>{let me=h.current;me&&(F.current=me.scrollHeight-me.scrollTop-me.clientHeight<48)},z=n?.sandbox_session_id,G=n?.turns?.[n.turns.length-1],q=CX(n),oe=n?.browser?.status==="running",Me=async me=>{me?.preventDefault();let et=s.trim();if(!(!et||!z)){c(!0),i(null);try{let rt=await fetch(`/api/sandboxes/${encodeURIComponent(z)}/code_sessions/${e}/messages`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:et,...d?{handoff:d}:{}})}),ge=await rt.json().catch(()=>({}));if(!rt.ok)throw new Error(at(ge,`The message was not sent (HTTP ${rt.status}).`));l(""),p(null),await I()}catch(rt){i(rt.message)}finally{c(!1)}}},fe=async()=>{let me=(n?.turns||[]).filter(qs);for(let et of me)await fetch(`/api/sandboxes/${encodeURIComponent(z)}/code_sessions/${et.id}/cancel`,{method:"POST"});await I()},le=me=>{p(me),l(et=>et||"I've handed the browser back. "),b.current?.focus()},R=r?"text-gray-400":"text-gray-500",te=r?"text-white":"text-gray-900",He=`rounded-lg border p-4 ${r?"bg-gray-900 border-gray-700":"bg-white border-gray-200"}`,_e=`px-3 py-1 text-sm rounded disabled:opacity-50 ${r?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,D="px-3 py-1 text-sm rounded text-white bg-red-600 hover:bg-red-700 disabled:opacity-50",Y=`p-2 rounded text-sm border ${r?"bg-blue-900/20 border-blue-800 text-blue-200":"bg-blue-50 border-blue-200 text-blue-800"}`;if(!n)return Ye.default.createElement("div",{className:He,"data-testid":"code-interaction"},a?Ye.default.createElement("p",{className:`text-sm ${r?"text-red-400":"text-red-600"}`},a):Ye.default.createElement("p",{className:`text-sm ${R}`},"Loading\u2026"));let E=ms(n.status),$=`flex items-center justify-between gap-2 px-4 py-2 border-b ${r?"border-gray-700":"border-gray-200"}`,ee=`rounded-lg border flex flex-col min-h-0 ${r?"bg-gray-900 border-gray-700":"bg-white border-gray-200"}`,U=`px-2 py-0.5 text-xs rounded ${r?"text-gray-300 hover:bg-gray-700":"text-gray-600 hover:bg-gray-100"}`;return Ye.default.createElement("div",{ref:g,className:"flex flex-col gap-3",style:v?{height:v}:void 0,"data-testid":"code-interaction"},Ye.default.createElement("div",{className:"flex flex-wrap items-start justify-between gap-3 shrink-0"},Ye.default.createElement("div",{className:"space-y-1"},t&&Ye.default.createElement("button",{type:"button",onClick:t,className:`text-xs ${R}`},"\u2190 Interactions"),Ye.default.createElement("h2",{className:`text-xl font-bold ${te}`},n.display_name),Ye.default.createElement("div",{className:"flex flex-wrap items-center gap-2"},Ye.default.createElement(Ks,{tone:E.tone},E.label),Ye.default.createElement("span",{className:`text-xs ${R}`},dke[n.origin]||n.origin," \xB7 ",c2(n)),n.project&&Ye.default.createElement("a",{href:Re(`/projects/${n.project.id}`),onClick:me=>{me.preventDefault(),lt(`/projects/${n.project.id}`)},className:"text-xs underline"},n.project.name))),Ye.default.createElement("div",{className:"flex items-center gap-2"},M&&Ye.default.createElement("button",{type:"button",onClick:fe,className:_e},"Stop"),Ye.default.createElement("button",{type:"button",onClick:()=>P(me=>!me),className:_e,"aria-pressed":f,"aria-controls":`code-interaction-${e}-browser`},f?"Hide browser":"Show browser"))),q&&!f&&Ye.default.createElement("p",{role:"alert",className:`${Y} shrink-0`},"Claude Code needs you: ",q.reason," ",Ye.default.createElement("button",{type:"button",onClick:()=>P(!0),className:"underline"},"Show the browser")),Ye.default.createElement("div",{ref:x,className:`flex-1 min-h-0 flex flex-col gap-4 ${A?"lg:flex-row lg:gap-0":""} ${w?"select-none cursor-col-resize":""}`},Ye.default.createElement("section",{className:`${ee} lg:h-full min-w-0`,style:A?{flex:`0 0 ${S}%`}:void 0,"aria-label":"Conversation",id:`code-interaction-${e}-conversation`},Ye.default.createElement("div",{className:$},Ye.default.createElement("span",{className:`text-sm font-medium ${te}`},"Conversation"),!f&&Ye.default.createElement("button",{type:"button",onClick:()=>P(!0),className:U},"Show browser \u203A")),Ye.default.createElement("ol",{ref:h,onScroll:V,className:"space-y-3 p-4 flex-1 min-h-0 overflow-y-auto"},n.turns.map(me=>Ye.default.createElement(pke,{key:me.id,turn:me,sandboxId:z,darkMode:r,muted:R,strong:te}))),Ye.default.createElement("form",{onSubmit:Me,className:`space-y-2 p-4 border-t shrink-0 ${r?"border-gray-700":"border-gray-200"}`},Ye.default.createElement("label",{htmlFor:`code-interaction-${e}-message`,className:`text-xs font-medium ${te}`},"Message ",f0(n)),Ye.default.createElement("textarea",{id:`code-interaction-${e}-message`,ref:b,value:s,onChange:me=>l(me.target.value),rows:3,className:`w-full text-sm rounded border p-2 ${r?"bg-gray-800 border-gray-600 text-white":"bg-white border-gray-300"}`,placeholder:G?.result?"Reply, or ask for the next change":"What should happen next?"}),Ye.default.createElement("div",{className:"flex flex-wrap items-center justify-between gap-2"},Ye.default.createElement("span",{className:`text-xs ${R}`,role:"status"},AX(n,{handoff:d})),Ye.default.createElement("button",{type:"submit",className:D,disabled:u||!s.trim()},u?"Sending\u2026":"Send")),a&&Ye.default.createElement("p",{className:`text-xs ${r?"text-red-400":"text-red-600"}`,role:"alert"},a))),A&&Ye.default.createElement("div",{role:"separator","aria-orientation":"vertical","aria-label":"Resize the conversation and the browser","aria-controls":`code-interaction-${e}-conversation`,"aria-valuenow":Math.round(S),"aria-valuemin":d2,"aria-valuemax":p2,tabIndex:0,onPointerDown:J,onPointerMove:B,onPointerUp:K,onPointerCancel:K,onKeyDown:T,onDoubleClick:()=>C(tf),className:"group hidden lg:flex w-4 shrink-0 cursor-col-resize items-center justify-center touch-none focus:outline-none","data-testid":"code-interaction-separator"},Ye.default.createElement("span",{className:`h-12 w-1 rounded-full transition-colors ${w?"bg-red-500":r?"bg-gray-600 group-hover:bg-gray-400 group-focus-visible:bg-red-500":"bg-gray-300 group-hover:bg-gray-500 group-focus-visible:bg-red-500"}`})),f&&Ye.default.createElement("section",{id:`code-interaction-${e}-browser`,className:`${ee} lg:h-full min-w-0 flex-1`,"aria-label":"The sandbox\u2019s browser","data-testid":"code-interaction-browser"},Ye.default.createElement("div",{className:$},Ye.default.createElement("span",{className:`text-sm font-medium ${te}`},"The sandbox\u2019s browser"),Ye.default.createElement("button",{type:"button",onClick:()=>P(!1),className:U,"aria-label":"Hide the browser"},"Hide \xD7")),Ye.default.createElement("div",{className:"p-4 space-y-2 flex-1 min-h-0 overflow-y-auto"},q&&Ye.default.createElement("p",{role:"alert",className:Y},f0(n)," needs you: ",q.reason),oe?Ye.default.createElement(S0,{sessionId:z,watchOnOpen:!0,onHandBack:le,handBackLabel:`Hand back to ${f0(n)}`}):Ye.default.createElement("p",{className:`text-xs ${R}`},"The browser is not running."," ",n.project?Ye.default.createElement("a",{href:Re(`/projects/${n.project.id}?tab=browser`),onClick:me=>{me.preventDefault(),lt(`/projects/${n.project.id}?tab=browser`)},className:"underline"},"Start it from the project"):"Start it from Settings \u2192 Integrations",", and Claude Code reaches it from its next turn.")))))}var iZ="activeagents.codeInteraction.showBrowser",sZ="activeagents.codeInteraction.split";function fke(){try{let e=window.localStorage.getItem(sZ);return e===null?tf:p0(e)}catch{return tf}}function aZ(e){try{window.localStorage.setItem(sZ,String(e))}catch{}}function mke(){let e=null;try{e=window.localStorage.getItem(iZ)}catch{}return EX(window.location.search,e)}function gke(e){try{window.localStorage.setItem(iZ,e?"1":"0")}catch{}let t=new URL(window.location.href);t.searchParams.set("browser",e?"1":"0"),window.history.replaceState(window.history.state,"",t)}function hke(e,t){let[r,n]=(0,Ye.useState)(null);return(0,Ye.useLayoutEffect)(()=>{let o=window.matchMedia("(min-width: 1024px)"),a=()=>{let i=e.current;if(!i||!o.matches){n(null);return}let s=i.getBoundingClientRect().top+window.scrollY;n(Math.max(420,Math.floor(window.innerHeight-s-24)))};return a(),window.addEventListener("resize",a),o.addEventListener("change",a),()=>{window.removeEventListener("resize",a),o.removeEventListener("change",a)}},[e,t]),r}var lZ=Z(Q());function ld({kind:e,id:t,title:r="Replay this session",testId:n="replay-link",style:o}){let a=dh(e,t);return a?lZ.default.createElement("a",{href:Re(a),"data-testid":n,title:r,onClick:i=>{i.stopPropagation(),!(i.metaKey||i.ctrlKey||i.shiftKey||i.button!==0)&&(i.preventDefault(),lt(a))},style:{fontFamily:W,fontSize:11,color:"var(--color-info)",textDecoration:"none",whiteSpace:"nowrap",...o}},"replay ->"):null}var yke=e=>{let t=null;if((e?.generations||[]).forEach(a=>{let i=a.tokens||{},s=(i.input||0)+(i.output||0);s>0&&(!t||s>t.total)&&(t={input:i.input||0,output:i.output||0,cached:i.cached||0,thinking:i.thinking||0,model:a.model,total:s})}),!t)return null;let r=nd(e?.instructions),n=0;(e?.messages||[]).forEach(a=>{a.role==="tool"&&(n+=nd(a.content)+nd(a.tool_arguments))}),n=Math.min(n,t.input);let o=Math.max(t.input-r-n,0);return{used:t.total,limit:Yx(t.model),cached:t.cached,thinking:t.thinking,segments:[{key:"messages",label:"Messages",tokens:o},{key:"tool_results",label:"Tool results",tokens:n},{key:"instructions",label:"Instructions",tokens:r},{key:"output",label:"Generated output",tokens:t.output}]}},uZ=["#6366f1","#10b981","#f59e0b","#ec4899","#3b82f6","#8b5cf6","#14b8a6","#f97316"],vke=[{id:"recent",label:"Recent"},{id:"tokens",label:"Tokens"},{id:"messages",label:"Messages"}],xke=[{id:"conversation",label:"Conversation",hint:"Messages, tool calls and responses in order"},{id:"spans",label:"Spans",hint:"Each generation as a trace \u2014 waterfall, span details, timings"}],bke=3e4,ju=e=>e==null?"0":e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString(),cZ=e=>{if(!e)return"";let t=Math.floor((Date.now()-new Date(e).getTime())/1e3);return t<60?"just now":t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`};function wke({generation:e,darkMode:t,maxMs:r,expanded:n,onToggle:o}){let a=Jn(t),[i,s]=(0,xe.useState)(null),[l,u]=(0,xe.useState)(!1),c=e.trace_id,d=(e.duration_seconds||0)*1e3;(0,xe.useEffect)(()=>{if(!c)return;let m=!0;return fetch(`/api/traces/${encodeURIComponent(c)}`).then(y=>y.ok?y.json():Promise.reject(new Error("not found"))).then(({trace:y})=>m&&s(y)).catch(()=>m&&u(!0)),()=>{m=!1}},[c]);let p=!!i,f=(i?.spans||[]).length;return xe.default.createElement("div",{className:`rounded-lg px-2 py-1.5 -mx-2 transition-colors ${p?t?"hover:bg-white/5":"hover:bg-gray-100":""}`,style:n?{background:a.hoverBg}:void 0},xe.default.createElement("div",{className:p?"cursor-pointer":void 0,onClick:p?o:void 0,title:p?`${f} spans \u2014 click for the trace`:void 0},xe.default.createElement("div",{className:"flex flex-wrap items-center gap-3 text-xs font-mono",style:{color:a.textSecondary}},xe.default.createElement("span",{title:e.cache_hit?`${ju(e.tokens.cached)} cached prompt tokens`:"No prompt cache hit",style:{color:e.cache_hit?a.good:a.textMuted}},e.cache_hit?"\u26A1 cache hit":"\u25CF generated"),e.thinking&&xe.default.createElement("span",{className:"text-amber-500",title:`${ju(e.tokens.thinking)} thinking tokens`},"\u{1F9E0} ",ju(e.tokens.thinking)),xe.default.createElement("span",null,e.model||"unknown-model"),e.provider&&xe.default.createElement("span",null,e.provider),xe.default.createElement("span",{className:"text-blue-500"},"in:",ju(e.tokens.input)),xe.default.createElement("span",{className:"text-green-500"},"out:",ju(e.tokens.output)),e.finish_reason&&xe.default.createElement("span",null,e.finish_reason),e.duration_seconds!=null&&xe.default.createElement("span",null,Qn(d)),c&&xe.default.createElement("a",{href:Re(`/traces?trace=${c}`),title:`${c} \u2014 open in Traces`,style:{color:a.link},className:"hover:underline",onClick:m=>m.stopPropagation()},"trace:",c.slice(0,8)," \u2192"),l&&xe.default.createElement("span",{style:{color:a.textMuted}},"trace unavailable")),xe.default.createElement("div",{className:"flex items-center gap-2 mt-1"},c&&!l?xe.default.createElement(mI,{trace:i,darkMode:t}):d>0?xe.default.createElement("div",{className:"rounded flex-1",style:{height:"8px",background:a.trackBg}},xe.default.createElement("div",{className:"rounded",style:{height:"8px",width:`${Math.max(d/r*100,2)}%`,background:"#ef4444"}})):null,p&&xe.default.createElement(xe.default.Fragment,null,xe.default.createElement("span",{className:"font-mono flex-shrink-0",style:{fontSize:"10px",color:a.textMuted}},f," ",f===1?"span":"spans"),xe.default.createElement(Zp,{open:n,darkMode:t,size:12})))),n&&i&&xe.default.createElement("div",{className:"mt-2 rounded-lg border p-3",style:{background:a.cardBg,borderColor:a.cardBorder}},xe.default.createElement(e0,{trace:i,darkMode:t,compact:!0})))}function $u({agentId:e=null,embedded:t=!1}){let{darkMode:r}=ut(),[n,o]=(0,xe.useState)([]),[a,i]=(0,xe.useState)(!0),[s,l]=(0,xe.useState)(null),[u,c]=(0,xe.useState)(null),[d,p]=(0,xe.useState)({}),{timeWindow:f}=xl(),m=!t&&!e,y=()=>m?xX(Rn(),window.location.search):{view:"list",source:"all",project:null,codeId:null},[b,g]=(0,xe.useState)(y),[h,v]=(0,xe.useState)([]),{source:x,project:S}=b;(0,xe.useEffect)(()=>{if(!m)return;let z=()=>g(y());return window.addEventListener("popstate",z),window.addEventListener("dashboard:navigate",z),()=>{window.removeEventListener("popstate",z),window.removeEventListener("dashboard:navigate",z)}},[m]),(0,xe.useEffect)(()=>{m&&fetch("/api/projects").then(z=>z.ok?z.json():{projects:[]}).then(z=>v(z.projects||[])).catch(()=>{})},[m]);let k=z=>{id(z),g(y())},w=z=>k(u2({source:x,project:S,...z})),_=z=>k(gs(z));(0,xe.useEffect)(()=>{if(b.view!=="latest")return;let z=MI({source:x==="all"?"claude_code":x,project:S});fetch(`/api/interactions?${z}`).then(G=>G.json()).then(G=>{let q=bX(G.interactions),oe=q?gs(ef(q.id)):u2({source:x,project:S});window.history.replaceState({},"",Re(oe)),g(y())}).catch(()=>{})},[b.view,x,S]);let A=(0,xe.useCallback)(async()=>{try{let z=await fetch(`/api/interactions?${MI({minutes:f.minutes,agentId:e,source:x,project:S})}`);if(!z.ok)throw new Error(`Request failed (${z.status})`);let G=await z.json();o(G.interactions||[]),l(null)}catch(z){l(z.message)}finally{i(!1)}},[f.minutes,e,x,S]);(0,xe.useEffect)(()=>{A();let z=setInterval(A,bke);return()=>clearInterval(z)},[A]);let[C,N]=(0,xe.useState)("recent"),L=(0,xe.useMemo)(()=>{let z=[...new Set(n.map(G=>G.display_name).filter(Boolean))].sort();return Object.fromEntries(z.map((G,q)=>[G,uZ[q%uZ.length]]))},[n]),J=(0,xe.useMemo)(()=>{let z=n.reduce((q,oe)=>q+(oe.tokens?.total||0),0),G=new Set(n.map(q=>q.display_name).filter(Boolean));return{interactions:n.length,tokens:z,agents:G.size,avgTokens:n.length?Math.round(z/n.length):0}},[n]),B=(0,xe.useMemo)(()=>{if(n.length===0)return[];let z=Date.now(),G=f.bucketSeconds*1e3,q=Math.max(1,Math.round(f.minutes*60/f.bucketSeconds)),oe=Object.keys(L);return Array.from({length:q},(Me,fe)=>{let le=z-(q-1-fe)*G,R=le-G,te=n.filter(He=>{let _e=new Date(He.last_activity_at).getTime();return _e>=R&&_e1440?new Date(le).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit"}):new Date(le).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),...Object.fromEntries(oe.map(He=>[He,te.filter(_e=>_e.display_name===He).length]))}})},[n,L,f]),K=Math.max(0,Math.ceil(B.length/6)-1),T=(0,xe.useCallback)(z=>{let G=[...z];switch(C){case"tokens":return G.sort((q,oe)=>(oe.tokens?.total||0)-(q.tokens?.total||0));case"messages":return G.sort((q,oe)=>(oe.message_count||0)-(q.message_count||0));default:return G.sort((q,oe)=>String(oe.last_activity_at).localeCompare(String(q.last_activity_at)))}},[C]),P=(0,xe.useMemo)(()=>{let z=new Map;n.forEach(q=>{let oe=q.agent_name||q.agent?.name||"Unattributed",Me=q.action_name,fe=`${oe}#${Me||""}`;z.has(fe)||z.set(fe,{key:fe,title:Me?`${oe} ${Me.charAt(0).toUpperCase()}${Me.slice(1)} Agent Interactions`:`${oe} Interactions`,sessions:[],tokens:0,lastActivity:q.last_activity_at});let le=z.get(fe);le.sessions.push(q),le.tokens+=q.tokens?.total||0,q.last_activity_at>le.lastActivity&&(le.lastActivity=q.last_activity_at)});let G=[...z.values()].map(q=>({...q,sessions:T(q.sessions)}));return C==="tokens"?G.sort((q,oe)=>oe.tokens-q.tokens):C==="messages"?G.sort((q,oe)=>oe.sessions.length-q.sessions.length):G.sort((q,oe)=>String(oe.lastActivity).localeCompare(String(q.lastActivity)))},[n,C,T]),I=async z=>{if(m&&ef(z)){_(ef(z));return}if(u===z){c(null);return}if(c(z),!d[z])try{let G=await fetch(`/api/interactions/${z}`);if(G.ok){let q=await G.json();p(oe=>({...oe,[z]:q.interaction}))}}catch{}},[M,j]=(0,xe.useState)({}),[O,F]=ch(),V=Jn(r);return m&&b.view==="conversation"?xe.default.createElement(FI,{rootId:b.codeId,onBack:()=>k(u2({source:x,project:S}))}):a?xe.default.createElement("div",{className:"flex items-center justify-center h-64"},xe.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"})):xe.default.createElement("div",{className:"space-y-6"},xe.default.createElement("div",{className:"flex items-start justify-between"},!t&&xe.default.createElement("div",null,xe.default.createElement("h1",{className:"text-2xl font-bold",style:{color:V.textPrimary}},"Interactions"),xe.default.createElement("p",{className:"text-sm mt-1",style:{color:V.textSecondary}},"Persisted conversation streams per agent \u2014 messages, generations and provenance")),xe.default.createElement("div",{className:"flex items-center gap-3"},xe.default.createElement("div",{className:"flex items-center rounded-lg p-1",style:{background:r?"rgba(255,255,255,0.06)":"#f3f4f6"}},xe.default.createElement("span",{className:"text-xs px-1",style:{color:V.textMuted}},"Sort"),vke.map(z=>xe.default.createElement("button",{key:z.id,onClick:()=>N(z.id),className:"px-2 py-1 text-xs rounded transition-colors",style:C===z.id?{background:r?"#2a2a2a":"#ffffff",color:V.textPrimary,boxShadow:r?"none":"0 1px 2px rgba(0,0,0,0.08)"}:{color:V.textSecondary}},z.label))),xe.default.createElement(bl,null),m&&xe.default.createElement(n0,null))),m&&xe.default.createElement("div",{className:"flex flex-wrap items-center gap-3","data-testid":"interactions-filters"},xe.default.createElement("div",{className:"flex items-center rounded-lg p-1",role:"group","aria-label":"Source",style:{background:r?"rgba(255,255,255,0.06)":"#f3f4f6"}},OI.map(z=>xe.default.createElement("button",{key:z.id,type:"button",onClick:()=>w({source:z.id}),"aria-pressed":x===z.id,className:"px-2 py-1 text-xs rounded transition-colors",style:x===z.id?{background:r?"#2a2a2a":"#ffffff",color:V.textPrimary}:{color:V.textSecondary}},z.label))),h.length>0&&xe.default.createElement("label",{className:"flex items-center gap-1 text-xs",style:{color:V.textSecondary}},"Project",xe.default.createElement("select",{value:S||"",onChange:z=>w({project:z.target.value?Number(z.target.value):null}),className:"text-xs rounded border px-1 py-0.5",style:{background:V.cardBg,borderColor:V.cardBorder,color:V.textPrimary}},xe.default.createElement("option",{value:""},"All projects"),h.map(z=>xe.default.createElement("option",{key:z.id,value:z.id},z.name)))),xe.default.createElement("button",{type:"button",onClick:()=>k(`/interactions/latest${S?`?project=${S}`:""}`),className:"px-2 py-1 text-xs rounded border",style:{borderColor:V.cardBorder,color:V.textPrimary},title:"Open the most recent Claude Code or Codex conversation"},"Latest conversation")),xe.default.createElement(wI,{agentId:e}),s&&xe.default.createElement("div",{className:"p-3 rounded-lg text-sm",style:{background:r?"rgba(239,68,68,0.1)":"#fef2f2",color:"#ef4444"}},"Failed to load interactions: ",s),n.length>0&&xe.default.createElement("div",{className:"rounded-xl border p-4",style:{backgroundColor:V.cardBg,borderColor:V.cardBorder}},xe.default.createElement("div",{className:"flex items-center justify-between mb-3"},xe.default.createElement("h3",{className:"text-sm font-semibold",style:{color:V.textPrimary}},"Interactions over time"),xe.default.createElement("div",{className:"flex items-center gap-3 flex-wrap justify-end"},Object.entries(L).map(([z,G])=>xe.default.createElement("span",{key:z,className:"flex items-center gap-1.5 text-xs",style:{color:V.textSecondary}},xe.default.createElement("span",{className:"inline-block w-2 h-2 rounded-full",style:{background:G}}),z)))),xe.default.createElement("div",{className:"h-32"},xe.default.createElement(Cc,{width:"100%",height:"100%"},xe.default.createElement(rd,{data:B},xe.default.createElement("defs",null,Object.entries(L).map(([z,G])=>xe.default.createElement("linearGradient",{key:z,id:`ix-gradient-${z.replace(/\W/g,"-")}`,x1:"0",y1:"0",x2:"0",y2:"1"},xe.default.createElement("stop",{offset:"5%",stopColor:G,stopOpacity:.6}),xe.default.createElement("stop",{offset:"95%",stopColor:G,stopOpacity:.05})))),xe.default.createElement(Cu,{strokeDasharray:"3 3",stroke:r?"#2a2a2a":"#e5e7eb"}),xe.default.createElement(Tu,{dataKey:"time",stroke:r?"rgba(255,255,255,0.4)":"#9ca3af",tick:{fontSize:10,fill:r?"rgba(255,255,255,0.5)":"#6b7280"},tickLine:!1,interval:K}),xe.default.createElement(Pu,{stroke:r?"rgba(255,255,255,0.4)":"#9ca3af",tick:{fontSize:10,fill:r?"rgba(255,255,255,0.5)":"#6b7280"},tickLine:!1,axisLine:!1,allowDecimals:!1}),xe.default.createElement(Wc,{contentStyle:{background:r?"#1f1f1f":"white",border:`1px solid ${V.cardBorder}`,borderRadius:"8px"},labelStyle:{color:V.textPrimary,fontWeight:"600",marginBottom:"4px"}}),Object.entries(L).map(([z,G])=>xe.default.createElement(Eu,{key:z,type:"monotone",dataKey:z,stackId:"1",stroke:G,strokeWidth:2,fill:`url(#ix-gradient-${z.replace(/\W/g,"-")})`}))))),xe.default.createElement("div",{className:"flex items-center gap-8 pt-3 mt-3 border-t",style:{borderColor:V.cardBorder}},[{label:"Interactions",value:J.interactions.toLocaleString()},{label:"Agents",value:J.agents.toLocaleString()},{label:"Total tokens",value:ju(J.tokens)},{label:"Avg / interaction",value:ju(J.avgTokens)}].map(z=>xe.default.createElement("div",{key:z.label},xe.default.createElement("div",{className:"text-lg font-bold",style:{color:V.textPrimary}},z.value),xe.default.createElement("div",{className:"text-xs",style:{color:V.textSecondary}},z.label))))),n.length===0?xe.default.createElement("div",{className:"text-center py-12"},xe.default.createElement("div",{className:"text-lg",style:{color:V.textMuted}},"No interactions in the last ",f.label),xe.default.createElement("p",{className:"text-sm mt-2",style:{color:V.textSecondary}},"Widen the time window, or run an agent to start recording its conversation stream")):xe.default.createElement("div",{className:"space-y-8"},P.map(z=>xe.default.createElement("div",{key:z.key,className:"space-y-4"},xe.default.createElement("div",{className:"flex items-baseline justify-between"},xe.default.createElement("h2",{className:"text-sm font-semibold",style:{color:V.textPrimary}},z.title),xe.default.createElement("span",{className:"text-xs",style:{color:V.textMuted}},z.sessions.length," ",z.sessions.length===1?"interaction":"interactions",z.tokens>0&&` \xB7 ${ju(z.tokens)} tokens`)),z.sessions.map(G=>{let q=d[G.id],oe=u===G.id,Me=M[G.id]||"conversation",fe=G.tokens?.total||0,le=(G.tokens?.input||0)+(G.tokens?.output||0)||fe;return xe.default.createElement(VC,{key:G.id,darkMode:r,className:"shadow-sm"},xe.default.createElement("div",{className:`flex items-center justify-between flex-wrap gap-y-2 p-4 cursor-pointer transition-colors ${r?"hover:bg-white/5":"hover:bg-gray-50"}`,onClick:()=>I(G.id),style:oe?{background:V.hoverBg}:void 0},xe.default.createElement("div",{className:"flex items-center gap-3 min-w-0"},PI(G)?xe.default.createElement("span",{className:"px-2 py-1 text-xs font-medium rounded flex-shrink-0",style:{background:r?"rgba(249,115,22,0.15)":"#fff7ed",color:r?"#fdba74":"#c2410c"},title:`${G.turn_count} ${G.turn_count===1?"turn":"turns"}${G.active?", one running now":""}`},G.runner==="codex"?"CODEX":"CLAUDE CODE",G.active?" \xB7 LIVE":""):G.source==="telemetry"?xe.default.createElement("span",{className:"px-2 py-1 text-xs font-medium rounded flex-shrink-0",style:{background:r?"rgba(168,85,247,0.15)":"#faf5ff",color:r?"#d8b4fe":"#7e22ce"},title:"Reported by an app running this agent outside the platform"},"REPORTED"):xe.default.createElement("span",{className:"px-2 py-1 text-xs font-medium bg-blue-100 text-blue-700 rounded flex-shrink-0"},"SESSION"),xe.default.createElement("span",{className:"font-mono text-sm truncate",style:{color:V.textPrimary}},G.display_name),G.agent&&xe.default.createElement("span",{className:"text-sm truncate",style:{color:V.textSecondary}},G.agent.name),G.service_name&&xe.default.createElement("span",{className:"text-sm truncate font-mono",style:{color:V.textMuted}},G.service_name)),xe.default.createElement("div",{className:"flex items-center gap-4 flex-shrink-0"},xe.default.createElement(ad,{darkMode:r,cells:[{key:"activity",width:Ta.count,content:G.message_count>0?`${G.message_count} messages`:`${G.tool_count||0} tool ${G.tool_count===1?"call":"calls"}`},{key:"tokens",width:Ta.tokens,title:"Tokens across this interaction",empty:"No token counts recorded for this interaction",content:fe>0&&`${ju(fe)} tokens`},{key:"context",width:Ta.context,empty:"Context: this interaction recorded no token counts",content:fe>0&&xe.default.createElement(od,{compact:!0,darkMode:r,label:"Context",used:le,limit:Yx(G.model),segments:[{key:"messages",label:"Context",tokens:le}]})},{key:"age",width:Ta.age,title:G.last_activity_at||void 0,empty:"No activity recorded",content:cZ(G.last_activity_at)&&xe.default.createElement("span",{style:{color:V.textMuted}},cZ(G.last_activity_at))}]}),G.source!=="telemetry"&&xe.default.createElement(ld,{kind:"context",id:G.id,title:"Replay this conversation"}),xe.default.createElement(Zp,{open:oe,darkMode:r}))),!oe&&xe.default.createElement(uh,{darkMode:r,onClick:()=>I(G.id),hold:!0,style:{padding:"0 16px 12px"},lines:[{label:"input",text:G.preview?.input,color:Ln("user",r).color},{label:"output",text:G.preview?.output,color:Ln("assistant",r).color}]}),oe&&xe.default.createElement("div",{className:"border-t p-4 space-y-3",style:{borderColor:V.cardBorder,background:V.innerBg}},q?xe.default.createElement(xe.default.Fragment,null,xe.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2"},xe.default.createElement(Rx,{options:xke,value:Me,onChange:R=>j(te=>({...te,[G.id]:R})),darkMode:r}),xe.default.createElement("span",{className:"text-xs",style:{color:V.textSecondary}},q.messages.length," ",q.messages.length===1?"message":"messages",q.generations.length>0&&` \xB7 ${q.generations.length} ${q.generations.length===1?"generation":"generations"}`)),Me==="conversation"&&xe.default.createElement(xe.default.Fragment,null,q.messages.length===0&&xe.default.createElement("div",{className:"text-sm",style:{color:V.textMuted}},"No conversation content captured for this run. Enable content capture in the reporting app to record prompts, tool arguments, and responses."),xe.default.createElement(fs,{darkMode:r,messages:q.instructions?[{id:`ctx-${G.id}-system`,role:"system",content:q.instructions,created_at:G.created_at},...q.messages]:q.messages}),(()=>{let R=yke(q);return R?xe.default.createElement("div",{className:"pt-3 mt-2 border-t",style:{borderColor:V.cardBorder}},xe.default.createElement(od,{...R,label:"Context pressure",estimated:!0,darkMode:r})):null})()),Me==="spans"&&(q.generations.length===0?xe.default.createElement("div",{className:"text-sm",style:{color:V.textMuted}},"No generations recorded for this interaction \u2014 nothing to trace."):xe.default.createElement("div",{className:"space-y-2"},q.generations.map(R=>xe.default.createElement(wke,{key:R.id,generation:R,darkMode:r,maxMs:Math.max(...q.generations.map(te=>(te.duration_seconds||0)*1e3),1),expanded:O(`${G.id}:${R.id}`),onToggle:()=>F(`${G.id}:${R.id}`)}))))):xe.default.createElement("div",{className:"flex justify-center py-6"},xe.default.createElement("div",{className:"animate-spin rounded-full h-6 w-6 border-b-2 border-red-500"}))))})))))}var Ne=Z(Q());function pZ(e,t,r=null){let n=d=>Object.values(t[d]||{})[0]??null,o=(d,p)=>{if(!p)return null;let f=p.scenario||p;return{key:d,prompt:f.prompt,group:f.group??null,notes:f.notes??null,expectations:f.expectations||{},position:f.position}},a=(d,p)=>{let f=o(d.key,p),m=["prompt","group","notes","expectations"].some(y=>JSON.stringify(d[y]??null)!==JSON.stringify(f[y]??null));return{...d,...f,catalogChanged:m}},i=(d,p)=>({...o(d,p),id:null,enabled:!1,orphan:!0}),s=(d,p,f,m)=>{if(!r)return m();let y=r.get(d);if(y&&y.scenario===p&&y.first===f)return y.row;let b=m();return r.set(d,{scenario:p,first:f,row:b}),b},l=new Set(e.map(d=>d.key)),u=e.map(d=>{let p=n(d.key);return p?s(d.key,d,p,()=>a(d,p)):d}),c=Object.keys(t).filter(d=>!l.has(d)).map(d=>{let p=n(d);return s(d,null,p,()=>i(d,p))});return[...u,...c]}var dZ=e=>/^[1-9]\d*$/.test(e||"")?e:null;function UI(e){let t=new URLSearchParams(e),r=dZ(t.get("evaluation"));return r?{evaluationId:r,runId:dZ(t.get("run"))}:null}async function fZ(e,t,r){if(!t||e.some(a=>String(a.id)===String(t)))return e;let n=await r(`/api/evaluations/${encodeURIComponent(t)}`);if(!n.ok)throw new Error(`Requested evaluation is unavailable (HTTP ${n.status})`);let o=await n.json();if(!o.evaluation)throw new Error("Requested evaluation is unavailable");return[o.evaluation,...e]}var be=Z(Q());async function ud(e,{navigator:t=globalThis.navigator,document:r=globalThis.document}={}){let n=String(e??"");if(t?.clipboard?.writeText)try{return await t.clipboard.writeText(n),!0}catch{}if(!r?.body||typeof r.execCommand!="function")return!1;let o=r.createElement("textarea");o.value=n,o.setAttribute("readonly",""),o.style.position="fixed",o.style.top="0",o.style.left="0",o.style.opacity="0",r.body.appendChild(o);try{return o.select(),typeof o.setSelectionRange=="function"&&o.setSelectionRange(0,n.length),r.execCommand("copy")===!0}catch{return!1}finally{r.body.removeChild(o)}}function gh(e){if(!e)return null;let t=`/api${e}`;return{report:t,markdown:`${t}.md`,html:`${t}?download=1`,json:`${t}.json?download=1`,md:`${t}.md?download=1`}}function g2(e,{part:t=null,model:r=null,scenario:n=null}={}){if(!e)return null;let o=new URLSearchParams;t&&o.set("part",t),r&&r!=="all"&&o.set("model",r),n&&o.set("scenario",n);let a=o.toString();return a?`${e}?${a}`:e}async function mZ(e,{fetch:t=globalThis.fetch,navigator:r=globalThis.navigator,document:n=globalThis.document,ClipboardItem:o=globalThis.ClipboardItem,Blob:a=globalThis.Blob}={}){if(!e||typeof t!="function")return!1;let i=()=>t(e,{headers:{Accept:"text/markdown"},credentials:"same-origin"}).then(s=>{if(!s.ok)throw new Error(`HTTP ${s.status}`);return s.text()});if(o&&a&&r?.clipboard?.write)try{let s=i();return await r.clipboard.write([new o({"text/plain":s.then(l=>new a([l],{type:"text/plain"}))})]),!0}catch{}try{return await ud(await i(),{navigator:r,document:n})}catch{return!1}}var Ske=["trace_error_rate","trace_latency"],VI=[{id:"rules",label:"Rule-based"},{id:"telemetry",label:"Telemetry"},{id:"judge",label:"LLM judge"}],St=(e,t)=>`${e} ${t}${e===1?"":"s"}`,k0=(e,t)=>{let r=String(e||"");return r.length>t?`${r.slice(0,t-1)}\u2026`:r},gZ=e=>String(e||"").replace(/_/g," ").replace(/^\w/,t=>t.toUpperCase()),qI=e=>`${Math.round(Number(Math.abs(Number(e)*100).toFixed(9)))}%`,kke=(e,t)=>t>0?`${e}/${t} \xB7 ${qI(e/t)}`:"\u2014",hZ=e=>{let t=Number(e)||0;return t>=1e3?`${(t/1e3).toFixed(t%1e3===0?0:1)}s`:`${Math.round(t)}ms`},kl=e=>e?.type==="llm_judge"?"judge":Ske.includes(e?.type)?"telemetry":"rules",h2=e=>{let t=e?.config||{};switch(e?.type){case"response_present":return"Response present";case"min_length":return"Response length";case"max_latency_ms":return"Latency";case"token_budget":return"Output tokens";case"contains":return"Must contain";case"not_contains":return"Must not contain";case"trace_error_rate":return"Trace error rate";case"trace_latency":return"Trace latency";case"llm_judge":return t.description||gZ(e.key);default:return gZ(e?.key)}},vh=e=>{let t=e?.config||{};switch(e?.type){case"response_present":return"non-empty output";case"min_length":return`\u2265 ${t.chars??40} chars`;case"max_latency_ms":return`\u2264 ${hZ(t.ms??5e3)}`;case"token_budget":return`\u2264 ${t.output_tokens??1e3} output tokens`;case"contains":return`matches /${t.pattern||""}/i`;case"not_contains":return`no /${t.pattern||""}/i`;case"trace_error_rate":return`error rate \u2264 ${t.max_error_rate??5}% \xB7 ${t.window_hours??168}h`;case"trace_latency":return`avg \u2264 ${hZ(t.max_avg_ms??5e3)} \xB7 ${t.window_hours??168}h`;case"llm_judge":return t.prompt?`judge: ${k0(t.prompt,72)}`:"judge scores 0.0\u20131.0";default:return""}},_0=(e,t)=>(e?.criteria||[]).find(r=>r.key===t)||{key:t,type:t,config:{}},xh=(e,t=null)=>{let r=t?.scores||{};if(Object.prototype.hasOwnProperty.call(r,"_judge_label"))return r._judge_label||"rules";let n=r._verdict?.judge;return n&&n!=="pass rate"?n:e?.judge_kind==="judge_defined"?`judge-defined KPIs${e.judge_model?` \xB7 ${e.judge_model}`:""}`:e?.judge_kind==="llm"?e.judge_model||"LLM judge":"rules"},GI=(e,t=null)=>t?.models?.length||Object.keys(t?.scores?._models||t?.scores?._cohorts||{}).length||(e?.compare_models||[]).length||1,nf=(e,t=null)=>{let r=GI(e,t);if(e?.scenario_suite){let a=t?.samples_evaluated&&r?Math.round(t.samples_evaluated/r):e.scenario_count||0;return`${St(a,"scenario")} \xD7 ${St(r,"model")}`}let n=(e?.criteria||[]).length,o=n===1?"criterion":"criteria";return r>1?`${n} ${o} \xD7 ${St(r,"model")}`:`${n} ${o} \xB7 ${St(e?.sample_size??0,"sample")}`},YI=e=>e!=null&&typeof e=="object"&&!Array.isArray(e)&&!("score"in e)&&!("skipped"in e),bh=e=>Object.entries(e?.scores||{}).filter(([t,r])=>!t.startsWith("_")&&r&&typeof r=="object");var C0=e=>{let t=e?.scores?._cohorts||e?.scores?._models;if(t&&typeof t=="object"&&Object.keys(t).length)return Object.keys(t);if(Array.isArray(e?.models)&&e.models.length)return e.models;let r=[];return bh(e).forEach(([,n])=>{YI(n)&&Object.keys(n).forEach(o=>{r.includes(o)||r.push(o)})}),r},of=(e,t)=>!e||typeof e!="object"?null:YI(e)?t&&e[t]||null:e,vZ=e=>e&&e.samples_evaluated?(e.samples_passed||0)/e.samples_evaluated:null,_ke=e=>!!e&&["pending","running"].includes(e.status),yh=(e,t)=>!e||typeof e!="object"?null:e.priced!=null?e.priced:e.cost!=null?t??null:0,af=(e,t)=>e!=null&&t?e/t:null,y2=(e,t)=>{if(!e||typeof e!="object")return!1;if(Number(e.estimated)>0||e.cost_basis==="estimated"||e.cost_basis==="mixed")return!0;let r=yh(e,t);return r!=null&&t!=null&&e.cost!=null&&r{if(!e)return[];let t=e.scores||{},r=t._models;if(r&&typeof r=="object"&&Object.keys(r).length)return Object.entries(r).map(([a,i])=>({label:a,model:i.model||a,provider:i.provider||null,samples:i.scenarios??null,passed:i.passed??null,errored:i.errored??0,avg_score:i.avg_score??null,avg_duration_ms:i.avg_duration_ms??null,p50_duration_ms:i.p50_duration_ms??null,p95_duration_ms:i.p95_duration_ms??null,input_tokens:i.input_tokens??null,output_tokens:i.output_tokens??null,cost:i.cost??null,priced:yh(i,i.scenarios),reported:i.reported??null,estimated:y2(i,i.scenarios),judge_cost:i.judge_cost??null,judge_calls:i.judge_calls??0,faults:i.faults||{},kind:"replay"}));let n=t._cohorts;if(n&&typeof n=="object"&&Object.keys(n).length)return Object.entries(n).map(([a,i])=>({label:a,model:a,provider:i.provider||null,samples:i.samples??null,passed:i.passed??null,errored:0,avg_score:null,avg_duration_ms:i.avg_duration_ms??null,input_tokens:i.input_tokens??null,output_tokens:i.output_tokens??null,cost:i.cost??null,priced:yh(i,i.samples),reported:0,estimated:i.cost!=null,judge_cost:null,judge_calls:0,faults:{},kind:"sample"}));let o=C0(e);return o.length?o.map(a=>{let i=bh(e).map(([,s])=>of(s,a)).filter(s=>s&&s.total!=null).map(s=>s.total);return{label:a,model:a,provider:null,samples:i.length?Math.max(...i):null,passed:null,errored:0,avg_score:null,avg_duration_ms:null,input_tokens:null,output_tokens:null,cost:null,priced:null,reported:null,estimated:!1,judge_cost:null,judge_calls:0,faults:{},kind:e.selection||t._selection?"replay":"sample"}}):[{label:null,model:null,provider:null,samples:e.samples_evaluated??null,passed:e.samples_passed??null,errored:0,avg_score:null,avg_duration_ms:null,input_tokens:null,output_tokens:null,cost:null,priced:null,reported:null,estimated:!1,judge_cost:null,judge_calls:0,faults:{},kind:"sample"}]},xZ=(e,t)=>{let r=bh(e).map(([,o])=>of(o,t)).filter(Boolean),n=r.filter(o=>o.score!=null);return{avg:n.length?n.reduce((o,a)=>o+a.score,0)/n.length:null,scored:n.length,cleared:n.filter(o=>o.score>=.7).length,below:n.filter(o=>o.score<.7).length,skipped:r.filter(o=>o.skipped).length}},bZ=20,sf=(e=[],t=null)=>Number.isFinite(t)?Math.max(t,e.length):e.length,A0=(e=[],t=null)=>{let r=sf(e,t),n=e.length=bZ;return`${St(r,"run")}${n?` \xB7 latest ${e.length}`:""}`},wZ=3,SZ=(e=[],{limit:t=null,selectedId:r=null}={})=>{let n=e.map((o,a)=>a);return!Number.isFinite(t)||e.length<=t?n:n.filter(o=>o{if(!r)return"skipped";let o=t.map(s=>e[s]),a=o.filter(s=>s&&s.status!=="pending"),i=a.some(s=>s.status!=="passed");return t.length>0&&a.length===t.length?i?"failed":"passed":n?o.some(Boolean)?"running":"queued":i?"failed":"missing"},Sh=(e,t,r=[],n=null)=>Number.isFinite(e?.number)?e.number:sf(r,n)-t,E0=(e,t,{olderNumber:r=t?.number,comparable:n=!0}={})=>{if(!e||e.status!=="complete")return null;if(!t)return{text:"first run",tone:"muted"};let o=Number.isFinite(r)?`#${r}`:"previous";if(t.status!=="complete")return{text:`${o} ${t.status}`,tone:"muted"};if(!n)return{text:"partial run",tone:"muted"};let a=(e.samples_passed||0)-(t.samples_passed||0);return a===0?{text:`same as ${o}`,tone:"muted"}:{text:`${a>0?"+":""}${a} passed vs ${o}`,tone:a>0?"success":"error"}},kZ=(e,t)=>{if(!e||!t)return null;let r=e.agent_version?.id??null,n=t.agent_version?.id??null;return r==null||n==null?{kind:"unrecorded",text:"release not recorded"}:r===n?{kind:"same",text:"same version"}:{kind:"new",text:`new version${e.agent_version?.number!=null?` v${e.agent_version.number}`:""}`}},_Z=e=>{if(!e||!("version_state"in e)&&!e.agent_version)return null;let t=e.agent_version;if(!t)return{text:"release not recorded",tone:"warning",title:"This run named no release, so nothing says which version of the agent it scored"};let r=t.release_digest?` \xB7 ${String(t.release_digest).slice(0,7)}`:"",n=`v${t.number}${r}`,o=e.version_state||"current";return o==="earlier"?{text:n,tone:"muted",title:`An earlier version of the agent${t.revision?` \xB7 ${t.revision}`:""}`}:o==="unrecorded"?{text:n,tone:"warning",title:"The version this run scored was not recorded"}:{text:n,tone:"success",title:`The agent's current version${t.revision?` \xB7 ${t.revision}`:""}`}},Oi=e=>{let t=e?.usage;if(!t||typeof t!="object")return null;let r=t.replays??t.samples??null,n=t.cost??null,o=yh(t,r||0),a=r!=null||n!=null?{cost:n,count:r||0,priced:o,reported:t.reported??null,estimatedCount:t.estimated??null,basis:t.cost_basis??null,estimated:y2(t,r||0),unit:t.replays!=null?"replay":"sample",perInteraction:t.per_interaction??af(n,o),inputTokens:t.input_tokens??null,outputTokens:t.output_tokens??null,modelTimeMs:t.model_time_ms??null}:null,i=t.judge,s=i&&typeof i=="object"?{cost:i.cost??null,calls:i.calls||0,byKind:i.by_kind||{},model:i.model||null,inputTokens:i.input_tokens??null,outputTokens:i.output_tokens??null,source:i.source||null,estimated:i.estimated??(i.source==null||i.source!=="reported"),run:i.run&&typeof i.run=="object"?i.run:null}:null;if(!a&&!s)return null;let l=t.total??(a?.cost!=null||s?.cost!=null?(a?.cost||0)+(s?.cost||0):null),u=!!(a?.cost!=null&&a.estimated||s?.cost!=null&&s.estimated);return{agent:a,judge:s,total:l,totalEstimated:u,runtimeMs:t.runtime_ms??null}},CZ=e=>{let t=e?.agent||null,r=e?.judge||null;return t&&t.count>0&&t.cost==null?r?"judge only \xB7 agent unpriced":"agent unpriced":t&&r?"agent + judge":t?"agent only":"judge only"},N0=e=>{switch(e?.source){case"traces":return"from traces";case"meter":return"metered";case"reported":return"reported";default:return null}},T0=e=>{if(!e)return"";let t=["define","score","recommend","verdict"];return Object.entries(e.byKind||{}).sort(([n],[o])=>t.indexOf(n)-t.indexOf(o)).map(([n,o])=>`${n} ${o}`).join(" \xB7 ")},Cke=(e=[])=>{let t=null,r=0,n=0,o=null,a=0,i=!1,s=!1;return e.forEach(l=>{let u=Oi(l);u&&(a+=1,u.agent&&(r+=u.agent.count,n+=u.agent.priced),u.agent?.cost!=null&&(t=(t||0)+u.agent.cost,u.agent.estimated&&(i=!0)),u.judge?.cost!=null&&(o=(o||0)+u.judge.cost,u.judge.estimated&&(s=!0)))}),{agentCost:t,interactions:r,pricedInteractions:n,perInteraction:af(t,n),judgeCost:o,priced:a,estimated:i,judgeEstimated:s}},kh=e=>{if(!e)return null;if(e.headline_run&&typeof e.headline_run=="object")return e.headline_run;let t=e.latest_run||null;return e.headline_run_id!=null?t&&t.id===e.headline_run_id?t:null:t&&t.status==="complete"?t:null},XI=e=>e?e.standing?e.standing:e.archived_at?"archived":kh(e)?"current":"none":"none",Ake=["current","unrecorded"],AZ=(e=[],{focusId:t=null}={})=>{let r=t!=null?e.filter(d=>String(d.id)===String(t)):[],n=r.length>0,o=n?r:e,a={total:0,stale:0,archived:0,none:0},i=[],s={},l=[],u=0,c=0;return o.forEach(d=>{let p=kh(d),f=XI(d);if(!(n?!!p:!!p&&Ake.includes(f))){a.total+=1,f==="archived"?a.archived+=1:f==="stale"?a.stale+=1:a.none+=1;return}i.push(p),l.push({id:d.id,name:d.name||`evaluation ${d.id}`}),u+=p.samples_evaluated||0,c+=p.samples_passed||0,(d.per_model&&typeof d.per_model=="object"&&Object.keys(d.per_model).length?Object.entries(d.per_model).map(([b,g])=>({label:b,passed:g?.passed||0,total:g?.total||0})):wh(p).filter(b=>b.label&&b.samples>0).map(b=>({label:b.label,passed:b.passed||0,total:b.samples||0}))).forEach(({label:b,passed:g,total:h})=>{let v=s[b]||={label:b,passed:0,total:0,byEvaluation:{}};v.passed+=g,v.total+=h;let x=v.byEvaluation[d.id]||={passed:0,total:0};x.passed+=g,x.total+=h})}),{evaluations:o.length,counted:i.length,notCounted:a,runs:i,samplesScored:u,samplesPassed:c,passRatio:u?c/u:null,perModel:Object.values(s),columns:l,spend:Cke(i),focused:n}},WI=1.96,Eke=(e,t)=>{let r=Number(t)||0;if(r<=0)return 0;let n=(Number(e)||0)/r,o=WI*WI,a=n+o/(2*r),i=WI*Math.sqrt(n*(1-n)/r+o/(4*r*r));return Math.max(0,(a-i)/(1+o/r))},EZ=e=>(e?.perModel||[]).filter(t=>t.total>0).map(t=>({...t,ratio:t.passed/t.total,lower:Eke(t.passed,t.total)})).sort((t,r)=>r.lower-t.lower||r.total-t.total||t.label.localeCompare(r.label)).map((t,r)=>({...t,rank:r+1})),NZ=e=>{let t=e?.notCounted;if(!t||!t.total)return null;let r=[];return t.stale&&r.push(`${t.stale} stale`),t.archived&&r.push(`${t.archived} archived`),t.none&&r.push(`${t.none} ${t.none===1?"has":"have"} no complete run`),[`${t.total} not counted`,...r].join(" \xB7 ")},x2=(e,t)=>{if(!t)return[];let r=[],n=`/agents/${e?.agent?.id}/run`;t.status==="failed"&&r.push({kind:"failed",label:"run failed",scope:Number.isFinite(t.number)?`run #${t.number}`:"latest run",text:t.error_message||"The run ended before any criterion was scored.",action:{label:"Run agent",path:n,hint:"Run Agent ->"}});let o=Array.isArray(t.scores?._missing_models)?t.scores._missing_models:[];o.length&&r.push({kind:"missing",label:`no generations \xD7${o.length}`,scope:"comparison cohorts",text:"The comparison asked for these models, but the agent has no recorded generations under them. Run the agent under each model, then run the evaluation again.",chipsLabel:"missing models",chips:o,action:{label:"Run agent",path:n,hint:"Run Agent ->"}});let a={judge:[],telemetry:[],rules:[]},i=[];bh(t).forEach(([u,c])=>{let d=_0(e,u);(YI(c)?Object.entries(c):[[null,c]]).forEach(([f,m])=>{!m||typeof m!="object"||(m.skipped?a[kl(d)].push({key:u,model:f,reason:m.reason}):m.score!=null&&m.score<.7&&i.push({key:u,model:f,stats:m,criterion:d}))})});let s=u=>[...new Set(u.map(c=>c.key))],l=u=>`${s(u).length} ${s(u).length===1?"criterion":"criteria"}`;if(a.judge.length&&r.push({kind:"judge",label:`judge skipped \xD7${a.judge.length}`,scope:l(a.judge),text:a.judge[0].reason||"The LLM judge could not score these criteria.",chipsLabel:"unscored criteria",chips:s(a.judge),action:{label:"Add provider key",path:"/settings",hint:"Settings ->"}}),a.telemetry.length&&r.push({kind:"telemetry",label:`no telemetry \xD7${a.telemetry.length}`,scope:l(a.telemetry),text:a.telemetry[0].reason||"No traces were recorded for this agent in the criterion window.",chipsLabel:"unscored criteria",chips:s(a.telemetry),action:{label:"Open traces",path:"/traces",hint:"Traces ->"}}),a.rules.length&&r.push({kind:"samples",label:`no samples \xD7${a.rules.length}`,scope:l(a.rules),text:a.rules[0].reason||"No generation could be scored against these criteria.",chipsLabel:"unscored criteria",chips:s(a.rules),action:{label:"Run agent",path:n,hint:"Run Agent ->"}}),i.length){let u=[...new Set(i.map(c=>c.model).filter(Boolean))];r.push({kind:"below",label:`below pass mark \xD7${i.length}`,scope:`${l(i)}${u.length?` \xB7 ${St(u.length,"model")}`:""}`,text:`Scored under the pass mark (pass \u2265 ${qI(.7)}). Each line is what the criterion expects against how the samples did; tighten the agent's instructions or revisit the budget before running again.`,details:i.map(c=>`${c.key}${c.model?` \xB7 ${c.model}`:""} ${qI(c.stats.score)} \xB7 expects ${vh(c.criterion)} \xB7 ${kke(c.stats.passed,c.stats.total)} passed`)})}return r},yZ=e=>String(e||"").replace(/_/g," "),TZ=e=>{let t=e?.scores?._comparison;if(!t||typeof t!="object"||!Array.isArray(t.ranking)||t.ranking.length<2)return null;let r=t.method||{};return{rows:t.ranking.map(n=>{let o=t.models?.[n]||{};return{label:n,passRate:o.pass_rate??null,interval:Array.isArray(o.interval)&&o.interval.length===2?o.interval:null,scenarios:o.scenarios??0}}),conclusion:t.conclusion||null,confidence:Math.round(Number(r.confidence??.95)*100),resamples:r.resamples??null}},b2=(e,{results:t=[],scenarioCount:r=0,labelFor:n=a=>a?.model,columns:o=null}={})=>{let a=wh(e),i=new Map(a.map(c=>[c.label,c])),s=o&&o.length?o:a.map(c=>c.label),l=e?.scores?._verdict?.winner||null;return s.map(c=>{let d=i.get(c)||{},p=t.filter(C=>n(C)===c),f=p.filter(C=>C?.status&&C.status!=="pending"),m=d.samples??(r||p.length||null),y=d.passed??f.filter(C=>C.status==="passed").length,b=Object.keys(d.faults||{}).length?d.faults:f.reduce((C,N)=>N.fault?{...C,[N.fault]:(C[N.fault]||0)+1}:C,{}),g=C=>p.find(N=>N.fault===C)||null,h=C=>C==="low_quality"?1:0,v=Object.entries(b).sort((C,N)=>N[1]-C[1]||(g(N[0])?1:0)-(g(C[0])?1:0)||h(C[0])-h(N[0])||C[0].localeCompare(N[0])),[x,S]=v[0]||[],k=x?g(x):null,w=m||null,_=C=>C==null||!w?null:C/w,A=d.avg_score??(f.length&&f.some(C=>C.score!=null)?f.filter(C=>C.score!=null).reduce((C,N)=>C+Number(N.score),0)/f.filter(C=>C.score!=null).length:null);return{label:c,model:d.model||c,provider:d.provider||null,winner:l===c,passed:y,total:m,scored:d.samples??f.length,passRate:m?y/m:null,avgScore:A==null?null:Number(A),avgDurationMs:d.avg_duration_ms??null,p50DurationMs:d.p50_duration_ms??null,p95DurationMs:d.p95_duration_ms??null,inputTokens:d.input_tokens??null,outputTokens:d.output_tokens??null,avgInputTokens:_(d.input_tokens),avgOutputTokens:_(d.output_tokens),avgTokens:d.input_tokens==null&&d.output_tokens==null?null:_((d.input_tokens||0)+(d.output_tokens||0)),cost:d.cost??null,priced:d.priced??null,reported:d.reported??null,estimated:d.estimated??!1,judgeCost:d.judge_cost??null,judgeCalls:d.judge_calls??0,costPerInteraction:af(d.cost,d.priced),faults:v.map(([C,N])=>({fault:C,name:yZ(C),count:N})),typicalFault:x?{fault:x,name:yZ(x),count:S,scenarioKey:k?.scenario_key||null,summary:(k?.diagnosis?.summary||k?.recommendation||"").toString().trim()||null}:null}}).sort((c,d)=>(d.passRate??-1)-(c.passRate??-1)||(d.avgScore??-1)-(c.avgScore??-1)||s.indexOf(c.label)-s.indexOf(d.label))},OZ=(e,{max:t=120}={})=>{if(!e)return"\u2014";if(!e.typicalFault)return e.scored?"no faults":"\u2014";let{name:r,count:n,scenarioKey:o,summary:a}=e.typicalFault,i=`${r} \xD7${n}`;if(!a)return i;let s=o?`${o}: ${a}`:a;return`${i} \xB7 ${k0(s,t)}`},PZ=(e=[],t=[],r=n=>n?.model)=>e.map(n=>{let o=n.kind==="instruction"?t.filter(s=>(n.scenario_keys||[]).includes(s?.scenario_key)&&s?.fault):t.filter(s=>s?.fault===n.fault);if(!o.length)return n;let a={},i={};return o.forEach(s=>{let l=r(s);l&&(a[l]=(a[l]||0)+1,i[l]=[...new Set([...i[l]||[],s.scenario_key].filter(Boolean))])}),{...n,count_by_model:a,scenario_keys_by_model:i}}),ZI=(e=[],t=null)=>!t||t==="all"?e:e.filter(r=>!Array.isArray(r.models)||r.models.length===0||r.models.includes(t)).map(r=>{if(!Array.isArray(r.models)||!r.models.length)return r;let n={...r,models:[t]};return r.count_by_model?.[t]!=null&&(n.count=r.count_by_model[t]),r.scenario_keys_by_model?.[t]&&(n.scenario_keys=r.scenario_keys_by_model[t]),n}),MZ=(e=[],t=[])=>Object.fromEntries(t.map(r=>[r,ZI(e,r).length])),w2=e=>(Array.isArray(e)?e:[]).filter(t=>t&&t.session_id&&t.status==="ready"&&(t.sandbox_type==null||t.sandbox_type==="app_runtime")&&!("runtime_server_key"in t&&!t.runtime_server_key)).map(t=>({value:t.session_id,label:IZ(t)})),IZ=e=>{if(!e||!e.session_id)return null;let t=[e.repository,e.repository_ref].filter(Boolean).join("@"),r=String(e.session_id).slice(0,8);return t?`${t} \xB7 ${r}`:`sandbox ${r}`},O0=e=>IZ(e?.sandbox),DZ=(e={},t=[],r=null)=>{let n={...e,models:t};return r&&(n.sandbox_id=r),n},S2=(e,t)=>e&&(t||[]).some(r=>r.value===e)?e:"",lf=e=>e?.selection||e?.scores?._selection||{},jZ=e=>(lf(e).models||[]).map(t=>typeof t=="string"?t:t?.label).filter(Boolean);function P0(e,t=[]){let r=lf(e);if(Array.isArray(r.scenario_keys)&&r.scenario_keys.length)return r.scenario_keys;if(!e)return[];if(Array.isArray(r.keys)&&r.keys.length)return r.keys;if(Array.isArray(r.scenario_ids)&&r.scenario_ids.length){let o=r.scenario_ids.map(String);return t.filter(a=>o.includes(String(a.id))).map(a=>a.key)}let n=t.filter(o=>o.enabled!==!1);return r.group?n.filter(o=>o.group===r.group).map(o=>o.key):_ke(e)||e.status==="failed"?n.map(o=>o.key):[]}var JI=(e,t=[])=>{let r=lf(e);if(r.group)return`partial: ${r.group}`;let n=r.scenario_keys||r.keys,o=t.filter(a=>a.enabled!==!1).length;return Array.isArray(n)&&n.length&&n.length{let r=new Set(t.filter(a=>a&&a.enabled!==!1).map(a=>a.key)),n=[],o=[];return[...new Set((e||[]).filter(a=>a!=null))].forEach(a=>(r.has(a)?n:o).push(a)),{keys:n,dropped:o}},$Z=(e=[],t=[])=>uf((e||[]).filter(r=>r&&r.scenario_key&&r.status!=="pending"&&r.status!=="passed").map(r=>r.scenario_key),t),LZ=(e,t=[])=>{let r=lf(e);if(r.group)return{group:r.group};let n=Array.isArray(r.scenario_keys)&&r.scenario_keys.length?r.scenario_keys:r.keys;return Array.isArray(n)&&n.length?{keys:uf(n,t).keys}:{}},QI=272,RI=16,zZ=32,BZ=940,eD="clamp(360px, calc(100vh - 240px), 900px)",FZ=320,Nke=3,UZ=3,WZ=720,KI="aa.evaluations.detail",HZ=e=>368+138*e,qZ=e=>504+170*e,KZ=e=>{try{let t=e?.getItem(KI);return t==="tools"||t==="steps"?t:null}catch{return null}},VZ=(e,t)=>{try{t==null?e?.removeItem?.(KI):e?.setItem(KI,t)}catch{}},GZ=(e=[])=>(e.find(t=>t?.step==="running")||e.find(t=>t?.step==="queued"))?.key??null,YZ=(e=[])=>{if(!e.length)return"none";let t=e.filter(n=>n!=="skipped"&&n!=="none");if(!t.length)return e.every(n=>n==="none")?"none":"skipped";if(t.includes("loading"))return"loading";if(t.includes("running"))return"running";let r=t.filter(n=>n==="queued").length;return r&&rnull,r="suite")=>{if(r!=="failed-first")return e;let n=[],o=new Map;return e.forEach(a=>{let i=a?.group||"",s=o.get(i);s||(s={failed:0,rows:[]},o.set(i,s),n.push(s));let l=t(a)==="failed";l&&(s.failed+=1),s.rows.push({row:a,failed:l})}),n.sort((a,i)=>i.failed-a.failed).flatMap(a=>[...a.rows.filter(i=>i.failed),...a.rows.filter(i=>!i.failed)].map(i=>i.row))},tD=(e=[],t=new Set)=>{let r=t instanceof Set?t:new Set(t||[]),n=new Set;if(!r.size)return n;let o=new Set;return e.forEach(a=>{(r.has(a?.key)?o:n).add(a?.group||"")}),o.forEach(a=>n.delete(a)),n},rD=(e={},t=[])=>{let r=t.map(n=>e?.[n]).filter(n=>n&&n.status!=="pending"&&n.duration_ms!=null&&Number.isFinite(Number(n.duration_ms))).map(n=>Number(n.duration_ms));return r.length?Math.max(...r):null},HI=e=>e!=null&&Number.isFinite(Number(e))?Number(e):null,k2=e=>{if(!e||e.status==="pending")return null;let t={durationMs:HI(e.duration_ms),inputTokens:HI(e.input_tokens),outputTokens:HI(e.output_tokens)};return t.durationMs==null&&t.inputTokens==null&&t.outputTokens==null?null:t},ZZ=(e=[])=>{let t={durationMs:null,inputTokens:null,outputTokens:null,count:0};return e.forEach(r=>{let n=k2(r);n&&(t.count+=1,["durationMs","inputTokens","outputTokens"].forEach(o=>{n[o]!=null&&(t[o]=(t[o]||0)+n[o])}))}),t.count?t:null},JZ=(e={},t=[])=>{let r=ZZ(t.map(n=>e?.[n]));return!r||r.inputTokens==null&&r.outputTokens==null?null:{input:r.inputTokens,output:r.outputTokens}},QZ=(e=[])=>{let t=e.filter(Boolean);if(!t.length)return null;let r=n=>t.some(o=>o[n]!=null)?t.reduce((o,a)=>o+(a[n]||0),0):null;return{input:r("input"),output:r("output")}},nD=(e={},t=[],r=Object.keys(e))=>Object.fromEntries(t.map(n=>[n,ZZ(r.map(o=>e[o]?.[n]))])),RZ=(e=[],t={},r=[])=>{let n=e.map(o=>rD(t[o?.key],r)).filter(o=>o!=null);return n.length?n.reduce((o,a)=>o+a,0):null},eJ=(e,t=Date.now())=>{if(!e)return null;let r=e.usage?.runtime_ms;if(r!=null&&Number.isFinite(Number(r)))return Number(r);if(e.status==="pending"||e.status==="failed"||!e.created_at)return null;let n=Date.parse(e.created_at),o=e.completed_at?Date.parse(e.completed_at):t;return!Number.isFinite(n)||!Number.isFinite(o)?null:Math.max(0,o-n)},hh=e=>String(e).padStart(2,"0"),tJ=e=>{let t=Math.max(0,Math.floor(Number(e)/1e3));return{hours:Math.floor(t/3600),minutes:Math.floor(t%3600/60),seconds:t%60,total:t}},rJ=e=>{if(e==null||!Number.isFinite(Number(e)))return"\u2014";let{hours:t,minutes:r,seconds:n}=tJ(e);return t?`${t}:${hh(r)}:${hh(n)}`:`${hh(r)}:${hh(n)}`},oD=e=>{if(e==null||!Number.isFinite(Number(e)))return"\u2014";let{hours:t,minutes:r,seconds:n,total:o}=tJ(e);return o<60?`${o}s`:t?`${t}h ${hh(r)}m`:`${r}m ${hh(n)}s`},_2=e=>{if(e==null||!Number.isFinite(Number(e)))return"\u2014";let t=Number(e);return t>=6e4?oD(t):t>=1e3?`${(t/1e3).toFixed(t>=1e4?1:2).replace(/\.?0+$/,"")}s`:`${Math.round(t)}ms`},nJ=e=>{let t=Number(e)||0;return t<=500?3e3:t<=2e3?6e3:1e4},Tke=(e,t)=>!!e&&!!t&&e.id===t.id&&e.status===t.status&&e.score===t.score&&e.fault===t.fault&&e.cost===t.cost&&(e.judge_usage?.cost??null)===(t.judge_usage?.cost??null)&&(e.output||"").length===(t.output||"").length,oJ=(e=[],t=[])=>{let r=new Map;(e||[]).forEach(i=>{i&&i.id!=null&&r.set(i.id,i)});let n=0,o=(t||[]).map(i=>{let s=i&&i.id!=null?r.get(i.id):null;return s&&Tke(s,i)?(n+=1,s):i}),a=o.length!==(e||[]).length||n!==o.length;return{results:a?o:e||[],changed:a}},aJ=(e=[],t=n=>n?.model,r={})=>{let n={};(e||[]).forEach(i=>{!i||!i.scenario_key||((n[i.scenario_key]||={})[t(i)]=i)});let o=Object.keys(n),a=0;return o.forEach(i=>{let s=r?.[i];if(!s)return;let l=Object.keys(n[i]);l.length===Object.keys(s).length&&l.every(u=>s[u]===n[i][u])&&(n[i]=s,a+=1)}),r&&a===o.length&&o.length===Object.keys(r).length?r:n},iJ=(e=[],t=Nke)=>{if(e.length<=t)return e;let r=n=>e.reduce((o,a)=>o+(Number(a?.[n])||0),0);return[{label:"combined",short:`${e.length} models`,passed:r("passed"),total:r("total"),title:e.map(n=>`${n.short} ${n.passed??"\u2014"}/${n.total??"\u2014"}`).join(" \xB7 ")}]},aD=(e={},t=[])=>{let r=new Set((t||[]).filter(a=>a!=null).map(String)),n=Object.entries(e||{}),o=n.filter(([a])=>r.has(String(a)));return o.length===n.length?e||{}:Object.fromEntries(o)},sJ=({rowTop:e=0,headerHeight:t=0,boxHeight:r=0}={})=>Math.max(0,e-t-Math.round((r-t)/3)),lJ=({rowTop:e=0,headerHeight:t=0,groupRowHeight:r=0}={})=>Math.max(0,e-t-r);var Oke=[[/^claude/i,"anthropic"],[/^(gpt-|o\d|chatgpt|text-embedding)/i,"openai"],[/:/,"ollama"]],uJ=["openai","anthropic","ollama","openrouter","mock"];function Pke(e,t=uJ){let r=String(e??"").trim(),n=r.indexOf("/"),o=n>=0?r.slice(0,n):r,a=n>=0?r.slice(n+1):"";if(a.trim()){if(t.includes(o))return{provider:o,model:a};if(t.includes("openrouter"))return{provider:"openrouter",model:r}}let i=Oke.find(([s,l])=>s.test(r)&&t.includes(l));return{provider:i?i[1]:null,model:r}}function Mke(e,t,r=uJ){let n=Pke(t,r);return n.provider===e&&n.model===t?t:`${e}/${t}`}function cJ(e,t){return t.flatMap(r=>(e?.[r]||[]).flatMap(n=>{let o=String(n??"").trim();return o?[{provider:r,id:o,qualified:Mke(r,o)}]:[]}))}function M0(e,{providers:t,qualify:r=!0}){let n=cJ(e,t).map(o=>r?o.qualified:o.id);return[...new Set(n)]}function dJ(e,t,{providers:r,qualify:n,restore:o=new Map}){let a=cJ(t,r),i=new Set(a.map(c=>n?c.qualified:c.id)),s=new Map;a.forEach(c=>{let d=n?c.id:c.qualified;s.has(d)||s.set(d,n?c.qualified:c.id)});let l=c=>i.has(c)?c:s.get(c)??c;if(n){let c=e.flatMap(d=>o.get(d)??[l(d)]);return{models:[...new Set(c)],restore:new Map}}let u=new Map;return e.forEach(c=>{let d=l(c);u.set(d,[...u.get(d)||[],c])}),{models:[...u.keys()],restore:u}}function cd(e){return[...new Set(String(e??"").split(",").map(t=>t.trim()).filter(Boolean))]}function I0(e){return e.join(", ")}function pJ(e,t){return[...new Set([...e,...cd(t)])]}function fJ(e){let t=e.lastIndexOf(",");return t<0?{complete:"",rest:e.trimStart()}:{complete:e.slice(0,t),rest:e.slice(t+1).trimStart()}}function mJ(e,t,r){return(!e||e==="insertReplacementText")&&r.includes(t)}function gJ({key:e,repeat:t=!1},r,n){return e==="Enter"&&r.trim()?"commit":e==="Backspace"&&!t&&r===""&&n>0?"removeLast":null}var _h=Z(Q()),Vs=typeof window>"u"?_h.useEffect:_h.useLayoutEffect;function D0(e){let[t,r]=(0,_h.useState)(0);return Vs(()=>{let n=e.current;if(!n)return;let o=()=>r(n.clientWidth);if(o(),typeof ResizeObserver>"u")return window.addEventListener("resize",o),()=>window.removeEventListener("resize",o);let a=new ResizeObserver(o);return a.observe(n),()=>a.disconnect()},[e]),t}var ta=Z(Q());function j0({value:e,onChange:t,models:r=[],placeholder:n,style:o,title:a,describedBy:i,inputId:s,inputLabel:l,testId:u}){let[c,d]=(0,ta.useState)(""),[p,f]=(0,ta.useState)(""),m=(0,ta.useRef)(null),y=(0,ta.useId)(),b=cd(e),g=(0,ta.useRef)(b);g.current=b;let h=_=>{let A=pJ(g.current,_);A.length!==g.current.length&&(t(I0(A)),f(`Added ${A.slice(g.current.length).join(", ")}`)),d("")},v=_=>{t(I0(g.current.filter(A=>A!==_))),f(`Removed ${_}`),m.current?.focus()},x=(_,A)=>{if(_.includes(",")){let{complete:C,rest:N}=fJ(_);h(C),d(N)}else mJ(A.nativeEvent?.inputType,_,r)?h(_):d(_.trimStart())},S=_=>{let A=gJ(_,c,g.current.length);A==="commit"?(_.preventDefault(),setTimeout(()=>h(m.current?.value||""),0)):A==="removeLast"&&(_.preventDefault(),v(g.current[g.current.length-1]))},k=r.filter(_=>!b.includes(_)),w=[i,a&&`${y}-title`,`${y}-selected`].filter(Boolean).join(" ");return ta.default.createElement("div",{"data-testid":u,onClick:_=>{_.target===_.currentTarget&&m.current?.focus()},style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:4,cursor:"text",...o}},b.map(_=>ta.default.createElement("span",{key:_,style:Ike},ta.default.createElement("span",{style:{overflowWrap:"anywhere"}},_),ta.default.createElement("button",{type:"button",onClick:()=>v(_),"aria-label":`Remove ${_}`,title:`Remove ${_}`,style:Dke},"\xD7"))),ta.default.createElement(ru,{inputRef:m,id:s,"aria-label":l,"aria-describedby":w,title:a,value:c,models:k,onChange:x,onKeyDown:S,onBlur:()=>{c.trim()&&h(c)},placeholder:b.length?"Add a model":n,style:{flex:"1 1 80px",minWidth:80,padding:0,border:"none",background:"transparent",font:"inherit",color:"inherit"}}),a&&ta.default.createElement("span",{id:`${y}-title`,style:iD},a),ta.default.createElement("span",{id:`${y}-selected`,style:iD},b.length?`Chosen: ${b.join(", ")}`:"No models chosen"),ta.default.createElement("span",{role:"status","aria-live":"polite",style:iD},p))}var Ike={display:"inline-flex",alignItems:"center",gap:2,maxWidth:"100%",padding:"0 2px 0 8px",borderRadius:999,fontFamily:W,fontSize:11,lineHeight:"18px",background:"var(--color-muted)",border:"1px solid var(--color-border)",color:"var(--color-text-primary)"},Dke={padding:"0 5px",border:"none",borderRadius:999,background:"transparent",cursor:"pointer",fontSize:13,lineHeight:"18px",color:"var(--color-text-muted)"},iD={position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0 0 0 0)",whiteSpace:"nowrap",border:0};var Ze=Z(Q());var Pi=Z(Q());var jke="What the agent spent answering \u2014 the operating cost of these interactions, and of one on average",$ke="What the judge model spent scoring, recommending and ruling \u2014 the evaluation's own offline cost",cf="var(--color-text-muted)",C2=e=>e?.agent?.unit==="replay"?"replay":"sampled interaction",Lu=(e,t=!1)=>Pr(e,{estimated:t}),hJ=(e,{total:t=!1}={})=>{if(!e)return null;let r=[];if(e.agent){let n=[`agent ${Pr(e.agent.cost,{estimated:e.agent.estimated})}`,St(e.agent.count,C2(e))];e.agent.perInteraction!=null&&n.push(`${Lu(e.agent.perInteraction,e.agent.estimated)} each`),r.push(n.join(" \xB7 "))}return e.judge&&r.push(`judge ${Pr(e.judge.cost,{estimated:e.judge.estimated})} \xB7 ${St(e.judge.calls,"call")}`),t&&e.total!=null&&r.push(`total ${Pr(e.total,{estimated:e.totalEstimated})}`),r.join(" \xB7 ")};function df({label:e,value:t,sub:r,title:n,valueColor:o,testId:a,valueTestId:i,onClick:s,onKeyDown:l,role:u,tabIndex:c,style:d}){return Pi.default.createElement("div",{"data-testid":a,title:n,role:u,tabIndex:c,onClick:s,onKeyDown:l,style:{padding:"10px 16px",minWidth:0,marginLeft:-1,marginTop:-1,borderLeft:"1px solid var(--color-border-light)",borderTop:"1px solid var(--color-border-light)",...d}},Pi.default.createElement(Ue,{size:10,color:cf},e),Pi.default.createElement("div",{"data-testid":i,style:{marginTop:4,fontFamily:W,fontSize:18,fontWeight:700,lineHeight:1.1,color:o||"var(--color-text-primary)"}},t),Pi.default.createElement("div",{style:{marginTop:4,fontFamily:W,fontSize:11,color:"var(--color-text-secondary)",textWrap:"pretty"}},r))}var yJ={value:"\u2026",valueColor:cf,sub:"priced when the run completes"};function sD({spend:e,pending:t=!1,failed:r=!1}){let n=e?.agent||null,o=n&&(n.inputTokens!=null||n.outputTokens!=null)?` \xB7 in ${On(n.inputTokens)} \xB7 out ${On(n.outputTokens)}`:"",a=r?{value:"\u2014",valueColor:cf,sub:"nothing replayed"}:t?yJ:{value:n?Pr(n.cost,{estimated:n.estimated}):"\u2014",valueColor:n?.cost!=null?void 0:cf,sub:n?`${St(n.count,C2(e))}${n.perInteraction!=null?` \xB7 ${Lu(n.perInteraction,n.estimated)} per interaction`:""}${o}`:"nothing replayed or sampled"};return Pi.default.createElement(df,{label:"Agent cost",title:jke,testId:"run-spend-agent",...a})}function lD({spend:e,judgedBy:t=null,pending:r=!1,failed:n=!1}){let o=e?.judge||null,i=o?[St(o.calls,"call"),T0(o),o.model,N0(o),"offline"].filter(Boolean).join(" \xB7 "):t&&t!=="rules"?`judge ${t} \xB7 spend not recorded`:"no judge asked \xB7 rules only",s=n?{value:"\u2014",valueColor:cf,sub:i}:r?yJ:{value:o?Pr(o.cost,{estimated:o.estimated}):"\u2014",valueColor:o?void 0:cf,sub:i};return Pi.default.createElement(df,{label:"Judge cost",title:$ke,testId:"run-spend-judge",...s})}function uD({spend:e,judgedBy:t=null,testId:r="run-spend"}){if(!e)return null;let{total:n,totalEstimated:o}=e;return Pi.default.createElement(je,{padding:0,testId:r,style:{overflow:"hidden"}},Pi.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))"}},Pi.default.createElement(sD,{spend:e}),Pi.default.createElement(lD,{spend:e,judgedBy:t}),Pi.default.createElement(df,{label:"Total",title:"Agent and judge together \u2014 what this run cost end to end",value:n!=null?Pr(n,{estimated:o}):"\u2014",sub:CZ(e),testId:"run-spend-total"})),o&&Pi.default.createElement("div",{"data-testid":"run-spend-legend",style:{padding:"6px 16px",borderTop:"1px solid var(--color-border-light)",fontFamily:W,fontSize:11,color:cf}},il))}function ff({run:e,testId:t,short:r=!1}){if(!e)return Ze.default.createElement(ke,{tone:"muted",testId:t},"no runs");if(e.status==="failed")return Ze.default.createElement(ke,{tone:"error",testId:t},"failed");if(e.status==="pending")return Ze.default.createElement(ke,{tone:"warning",testId:t},"queued");if(e.status==="running")return Ze.default.createElement(ke,{tone:"warning",testId:t},"running");if(e.samples_evaluated){let n=Vn(e.samples_passed||0,e.samples_evaluated);return Ze.default.createElement(ke,{tone:eu(vZ(e)),testId:t,title:r?`${n} passed`:void 0},r?n:`${n} passed`)}if(e.average_score!=null){let n=Number(e.average_score);return Ze.default.createElement(ke,{tone:n>=.85?"success":n>=.7?"warning":"error",testId:t,title:"mean score across criteria"},`score ${ia(n)}`)}return Ze.default.createElement(ke,{tone:"muted",testId:t},"no samples")}function E2({run:e,testId:t="run-version"}){let r=_Z(e);return r?Ze.default.createElement(ke,{tone:r.tone,size:10,style:{padding:"1px 6px"},title:r.title,testId:t},r.text):null}var pf={success:"var(--color-success)",error:"var(--color-error)",muted:"var(--color-text-muted)"},$0={same:"var(--color-text-muted)",new:"var(--color-info)",unrecorded:"var(--color-warning-text)"},vJ=Ta.cost+32,Lke=e=>wh(e).filter(t=>t.samples>0).map(t=>({label:t.label,short:bn(t.label||"").short||"all samples",passed:t.passed,total:t.samples})),bJ=(e,t,r)=>[`@${r||t?.agent?.name||"agent"}`,nf(t,e),xh(t,e),O0(e)&&`against ${O0(e)}`].filter(Boolean).join(" \xB7 ");function N2({runs:e=[],runCount:t=null,evaluation:r,agentName:n,selectedId:o=null,previousRun:a=null,barsFor:i=null,deltaFor:s=null}){return e.map((l,u)=>{let c=Sh(l,u,e,t),d=e[u+1]||(u===0&&e.length===1?a:null),p=d?Number.isFinite(d.number)?d.number:c-1:null,f=s?s(l,d,p):E0(l,d,{olderNumber:p}),m=f&&d?kZ(l,d):null,y=Oi(l);return{run:l,number:c,latest:u===0,when:wo(l.completed_at||l.created_at),meta:bJ(l,r,n),bars:i?i(l):Lke(l),delta:f,version:m,spend:y,selected:l.id===o}})}function fD({runs:e=[],runCount:t=null,evaluation:r,agentName:n,selectedId:o=null,onOpen:a,previousRun:i=null,barsFor:s=null,deltaFor:l=null,title:u="Runs",testId:c="suite-runs-panel"}){let{darkMode:d}=ut(),p=N2({runs:e,runCount:t,evaluation:r,agentName:n,selectedId:o,previousRun:i,barsFor:s,deltaFor:l});return Ze.default.createElement(Zr,{title:u,meta:A0(e,t),testId:c,bodyStyle:{overflowX:"auto"}},p.length===0&&Ze.default.createElement(Jr,null,"[ ] no runs yet"),Ze.default.createElement("div",{style:{minWidth:920}},p.map(f=>Ze.default.createElement("div",{key:f.run.id,role:"button",tabIndex:0,"data-testid":"evaluation-run","data-run-id":f.run.id,"data-selected":f.selected?"true":"false",onClick:()=>a?.(f.run),onKeyDown:m=>{(m.key==="Enter"||m.key===" ")&&(m.preventDefault(),a?.(f.run))},className:f.selected?void 0:"hover:bg-[var(--color-hover)]",style:{display:"grid",gridTemplateColumns:"minmax(220px, 1.4fr) minmax(180px, 1fr) auto",gap:16,alignItems:"center",padding:"10px 14px 10px 12px",borderTop:"1px solid var(--color-border-light)",cursor:"pointer",background:f.selected?"var(--color-muted)":void 0,borderLeft:`2px solid ${f.selected?"var(--color-accent-ui)":"transparent"}`}},Ze.default.createElement("div",{style:{minWidth:0}},Ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Ze.default.createElement("span",{style:{fontFamily:W,fontSize:12,fontWeight:700,color:"var(--color-text-primary)"}},`Run #${f.number}`),Ze.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},f.when),f.latest&&Ze.default.createElement(ke,{tone:"info",size:10,style:{padding:"1px 6px"}},"latest"),f.run.status==="failed"&&Ze.default.createElement(ke,{tone:"error",size:10,style:{padding:"1px 6px"}},"failed"),(f.run.status==="running"||f.run.status==="pending")&&Ze.default.createElement(ke,{tone:"warning",size:10,style:{padding:"1px 6px"}},f.run.status==="pending"?"queued":"running"),Ze.default.createElement(E2,{run:f.run})),Ze.default.createElement("div",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)",marginTop:3,textWrap:"pretty"}},f.meta),f.run.status==="failed"&&f.run.error_message&&Ze.default.createElement("div",{style:{fontFamily:W,fontSize:11,color:"var(--color-error)",marginTop:3,textWrap:"pretty"}},`[!] ${f.run.error_message}`)),Ze.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:4,minWidth:0}},f.bars.map(m=>m.passed==null||m.total==null?Ze.default.createElement("div",{key:m.label||"all",style:{display:"flex",alignItems:"center",gap:8}},Ze.default.createElement("span",{style:{fontFamily:W,fontSize:10,color:"var(--color-text-muted)",width:128,flexShrink:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:m.label||void 0},m.short),Ze.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},"\u2014")):Ze.default.createElement(tu,{key:m.label||"all",label:m.short,passed:m.passed,total:m.total}))),Ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12}},Ze.default.createElement(ad,{darkMode:d,cells:[{key:"agent",width:vJ,title:f.spend?.agent?`Agent: ${St(f.spend.agent.count,C2(f.spend))}${f.spend.agent.perInteraction!=null?` \xB7 ${Lu(f.spend.agent.perInteraction,f.spend.agent.estimated)} per interaction`:""}${f.spend.agent.estimated?" \xB7 ~ estimated from tokens \xD7 model rates":""}`:void 0,empty:"Agent cost: nothing replayed or sampled in this run",content:f.spend?.agent?.cost!=null&&Ze.default.createElement("span",{style:{fontFamily:W,fontSize:11}},Ze.default.createElement("span",{style:{color:"var(--color-text-muted)"}},"agent "),Pr(f.spend.agent.cost,{estimated:f.spend.agent.estimated}))},{key:"judge",width:vJ,title:f.spend?.judge?`Judge: ${St(f.spend.judge.calls,"call")}${T0(f.spend.judge)?` \xB7 ${T0(f.spend.judge)}`:""}${N0(f.spend.judge)?` \xB7 ${N0(f.spend.judge)}`:""} \xB7 offline`:void 0,empty:"Judge cost: no judge was asked in this run",content:f.spend?.judge?.cost!=null&&Ze.default.createElement("span",{style:{fontFamily:W,fontSize:11}},Ze.default.createElement("span",{style:{color:"var(--color-text-muted)"}},"judge "),Pr(f.spend.judge.cost,{estimated:f.spend.judge.estimated}))},{key:"delta",width:136,title:f.delta?`Samples passed, against the run before${f.version?` \xB7 ${f.version.text}`:""}`:void 0,empty:"Movement is read once the run completes",content:f.delta&&Ze.default.createElement("span",{style:{display:"flex",flexDirection:"column",gap:1}},Ze.default.createElement("span",{style:{fontFamily:W,fontSize:11,fontWeight:600,color:pf[f.delta.tone]||pf.muted}},f.delta.text),f.version&&Ze.default.createElement("span",{"data-testid":"run-version-delta",style:{fontFamily:W,fontSize:10,color:$0[f.version.kind]||$0.same}},f.version.text))},{key:"badge",width:132,content:Ze.default.createElement(ff,{run:f.run,testId:f.latest?"suite-pass-badge":void 0})},{key:"open",width:20,content:Ze.default.createElement(Sa,{kind:"link",color:"var(--color-info)",weight:400})}]}))))))}var xJ='[data-testid="evaluation-run"]',zke=150,cD=(e,t)=>e&&t!=null?e.querySelector(`[data-run-id="${CSS.escape(String(t))}"]`):null,dD=(e,t,r="y")=>{if(!e||!t)return;if(r==="x"){let o=t.offsetLeft;(oe.scrollLeft+e.clientWidth)&&(e.scrollLeft=Math.max(o-8,0));return}let n=t.offsetTop;(ne.scrollTop+e.clientHeight-t.offsetHeight)&&(e.scrollTop=Math.max(n-8,0))},Bke=(e=[])=>{let t=e.filter(o=>o.total!=null),r=o=>t.reduce((a,i)=>a+(Number(i[o])||0),0),n=r("total");return n>0?{passed:r("passed"),failed:r("failed"),total:n}:null},Fke=(e,{evaluation:t,agentName:r,bars:n,selectedId:o})=>({run:e,number:Number.isFinite(e.number)?e.number:"?",latest:!1,when:wo(e.completed_at||e.created_at),meta:bJ(e,t,r),bars:n||[],delta:null,version:null,spend:Oi(e),selected:e.id===o}),pD={fontFamily:W,fontSize:10,color:"var(--color-text-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"};function Uke({bar:e}){let t=e.title||void 0;return e.passed==null||e.total==null?Ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8},title:t},Ze.default.createElement("span",{style:{...pD,width:96,flexShrink:0},title:e.label||void 0},e.short),Ze.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},"\u2014")):Ze.default.createElement("div",{title:t},Ze.default.createElement(tu,{label:e.short,labelWidth:96,passed:e.passed,total:e.total,height:4,valueWidth:44}))}function A2({row:e,selected:t=!1,tabIndex:r=-1,card:n=!1,onOpen:o,noteFor:a=null,style:i}){let{run:s}=e,l=a?a(s):null,u=n&&s.status==="running"?Bke(e.bars):null,c=iJ(s.status==="failed"?e.bars.filter(p=>p.passed!=null&&p.total!=null):e.bars),d=()=>o?.(s);return Ze.default.createElement("div",{role:"button",tabIndex:r,"aria-current":t?"true":void 0,"data-testid":"evaluation-run","data-run-id":s.id,"data-selected":t?"true":"false",onClick:d,onKeyDown:p=>{(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),d())},className:t?void 0:"hover:bg-[var(--color-hover)]",title:e.meta,style:{display:"flex",flexDirection:"column",gap:5,padding:"9px 12px 9px 10px",borderTop:"1px solid var(--color-border-light)",cursor:"pointer",background:t?"var(--color-muted)":void 0,borderLeft:`2px solid ${t?"var(--color-accent-ui)":"transparent"}`,...i}},Ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0,flexWrap:n?"wrap":"nowrap"}},Ze.default.createElement("span",{style:{fontFamily:W,fontSize:12,fontWeight:700,color:"var(--color-text-primary)"}},`#${e.number}`),Ze.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},e.when),Ze.default.createElement(E2,{run:s}),Ze.default.createElement("span",{style:{marginLeft:"auto",flexShrink:0}},Ze.default.createElement(ff,{run:s,short:!0,testId:e.latest?"suite-pass-badge":void 0}))),c.map(p=>Ze.default.createElement(Uke,{key:p.label||"all",bar:p})),u&&Ze.default.createElement(J1,{parts:[{value:u.passed,tone:"success"},{value:u.failed,tone:"error"}],total:u.total,height:3,title:`${u.passed} of ${u.total} passed so far${u.failed?` \xB7 ${u.failed} failed`:""}`,testId:"evaluation-run-progress"}),s.status==="failed"&&s.error_message&&Ze.default.createElement("div",{style:{...pD,color:"var(--color-error)"},title:s.error_message},`[!] ${s.error_message}`),l&&Ze.default.createElement("div",{"data-testid":"evaluation-run-note",style:pD,title:l},l),(e.delta||e.spend?.agent?.cost!=null)&&Ze.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,fontFamily:W,fontSize:10,minWidth:0}},e.delta&&Ze.default.createElement("span",{style:{fontWeight:600,color:pf[e.delta.tone]||pf.muted,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:e.version?.text},e.delta.text),e.spend?.agent?.cost!=null&&Ze.default.createElement("span",{style:{marginLeft:"auto",color:"var(--color-text-muted)",whiteSpace:"nowrap"}},Pr(e.spend.agent.cost,{estimated:e.spend.agent.estimated}))))}function mD({rows:e=null,runs:t=[],runCount:r=null,evaluation:n,agentName:o,selectedId:a=null,onOpen:i,previousRun:s=null,barsFor:l=null,deltaFor:u=null,noteFor:c=null,linkedRun:d=null,linkedBars:p=null,layout:f="rail",limit:m=null,maxHeight:y=null,expandedHeight:b=FZ,testId:g="suite-runs-panel",style:h}){let v=e??N2({runs:t,runCount:r,evaluation:n,agentName:o,selectedId:a,previousRun:s,barsFor:l,deltaFor:u}),x=t.length||!e?t:e.map(q=>q.run),S=a??v.find(q=>q.selected)?.run.id??null,k=q=>q.run.id===S,w=d&&!v.some(q=>q.run.id===d.id)?Fke(d,{evaluation:n,agentName:o,bars:p,selectedId:S}):null,_=f==="strip",A=_?SZ(v.map(q=>q.run),{limit:m,selectedId:S}).map(q=>v[q]):v,C=w?[w,...A]:A,N=v.length-A.length,L=_&&Number.isFinite(m)&&N>0,J=sf(x,r)-x.length,B=(C.find(k)||C[0])?.run.id??null,K=(v.find(k)||v[0])?.run.id??null,[T,P]=(0,Ze.useState)(!1),I=(0,Ze.useRef)(null),M=(0,Ze.useRef)(null),j=(0,Ze.useRef)(null),O=(0,Ze.useRef)(null);(0,Ze.useEffect)(()=>()=>clearTimeout(O.current),[]),(0,Ze.useEffect)(()=>{L||P(!1)},[L]);let F=new Map(C.concat(v).map(q=>[String(q.run.id),q.run])),V=q=>{clearTimeout(O.current),O.current=setTimeout(()=>i?.(q),zke)},z=(q,{next:oe,prev:Me,axis:fe})=>le=>{let R=q.current,te=R?Array.from(R.querySelectorAll(xJ)):[];if(te.length===0)return;let He=le.target.closest(xJ),_e=te.indexOf(He),D;if(le.key===oe)D=te[Math.min(_e+1,te.length-1)];else if(le.key===Me)D=te[Math.max(_e-1,0)];else if(le.key==="Home")D=te[0];else if(le.key==="End")D=te[te.length-1];else return;if(le.preventDefault(),!D||D===He)return;D.focus({preventScroll:!0}),dD(R,D,fe);let Y=F.get(D.dataset.runId);Y&&V(Y)};Vs(()=>{if(T||j.current==null)return;let q=cD(M.current,j.current);j.current=null,q?.focus({preventScroll:!0})},[T]),Vs(()=>{S!=null&&(dD(M.current,cD(M.current,S),"x"),dD(I.current,cD(I.current,S),"y"))},[S,f,T]);let G=J>0&&Ze.default.createElement("div",{style:{fontFamily:W,fontSize:10,color:"var(--color-text-muted)",padding:"8px 12px",borderTop:"1px solid var(--color-border-light)"}},`${St(J,"older run")} \xB7 reachable by link`);return _?Ze.default.createElement(Zr,{title:"Runs",meta:A0(x,r),testId:g,style:h},Ze.default.createElement("div",{ref:M,"data-testid":"run-strip",onKeyDown:z(M,{next:"ArrowRight",prev:"ArrowLeft",axis:"x"}),style:{display:"flex",overflowX:"auto",scrollbarGutter:"stable",position:"relative"}},C.length===0&&Ze.default.createElement(Jr,{style:{flex:1}},"[ ] no runs yet"),C.map((q,oe)=>Ze.default.createElement(A2,{key:q.run.id,row:q,card:!0,selected:k(q),tabIndex:B===q.run.id?0:-1,onOpen:i,noteFor:c,style:{flex:"1 1 0",minWidth:200,borderTop:"none",borderRight:oeP(q=>!q),className:"bg-transparent hover:bg-[var(--color-hover)]",style:{display:"block",width:"100%",textAlign:"left",padding:"6px 12px",border:0,borderTop:"1px solid var(--color-border-light)",cursor:"pointer",fontFamily:W,fontSize:11,color:"var(--color-text-secondary)"}},T?`[-] latest ${m}`:`[+] ${St(N,"earlier run")}`),L&&T&&Ze.default.createElement("div",{ref:I,onKeyDown:z(I,{next:"ArrowDown",prev:"ArrowUp",axis:"y"}),style:{maxHeight:b,overflowY:"auto",position:"relative",scrollbarGutter:"stable"}},v.map(q=>Ze.default.createElement(A2,{key:q.run.id,row:q,selected:k(q),tabIndex:K===q.run.id?0:-1,noteFor:c,onOpen:oe=>{j.current=oe.id,P(!1),i?.(oe)}})),G)):Ze.default.createElement(Zr,{title:"Runs",meta:A0(x,r),testId:g,style:{display:"flex",flexDirection:"column",maxHeight:y||void 0,...h},bodyStyle:{flex:1,minHeight:0,display:"flex",flexDirection:"column"}},Ze.default.createElement("div",{ref:I,onKeyDown:z(I,{next:"ArrowDown",prev:"ArrowUp",axis:"y"}),style:{flex:1,minHeight:0,overflowY:"auto",position:"relative",scrollbarGutter:"stable"}},w&&Ze.default.createElement(Ze.default.Fragment,null,Ze.default.createElement("div",{"data-testid":"runs-rail-linked",style:{fontFamily:W,fontSize:10,color:"var(--color-text-muted)",padding:"4px 12px",background:"var(--color-muted)"}},`linked \xB7 older than the latest ${x.length}`),Ze.default.createElement(A2,{row:w,selected:k(w),tabIndex:B===w.run.id?0:-1,onOpen:i,noteFor:c})),!w&&v.length===0&&Ze.default.createElement(Jr,null,"[ ] no runs yet"),v.map(q=>Ze.default.createElement(A2,{key:q.run.id,row:q,selected:k(q),tabIndex:B===q.run.id?0:-1,onOpen:i,noteFor:c})),G))}var wJ=(e=[],t=null)=>{let r=e[0],n=Number.isFinite(t)?Math.max(t,e.length):e.length;return[St(n,"run"),r?`latest #${Sh(r,0,e,t)} ${wo(r.completed_at||r.created_at)}`:null,r?.status==="complete"&&r.samples_evaluated?`${Vn(r.samples_passed||0,r.samples_evaluated)} passed`:null].filter(Boolean).join(" \xB7 ")};var Mt=Z(Q());var dd=Z(Q());function _l({text:e=null,url:t=null,label:r="Copy as Markdown",title:n,testId:o="copy-markdown",style:a}){let[i,s]=(0,dd.useState)("idle"),l=(0,dd.useRef)(null);return(0,dd.useEffect)(()=>()=>clearTimeout(l.current),[]),!e&&!t?null:dd.default.createElement(ce,{size:"sm",variant:"ghost",onClick:async c=>{c?.stopPropagation?.();let d=e?await ud(e):await mZ(t);s(d?"copied":"failed"),clearTimeout(l.current),l.current=setTimeout(()=>s("idle"),2e3)},testId:o,title:n||"Copy as GitHub-flavored Markdown, for an issue or a pull request",style:{padding:"4px 8px",fontSize:12,color:i==="failed"?"var(--color-error)":i==="copied"?"var(--color-success-text)":"var(--color-text-secondary)",...a}},i==="copied"?"Copied":i==="failed"?"Copy failed":r)}var Mi="var(--color-text-muted)",gD=3,SJ={passed:0,total:0},kJ={items:0,faults:0,scenarios:0},Wke={keys:[],dropped:[]},Cl=(e,t,r={})=>({fontFamily:W,fontSize:e,color:t,...r}),L0=e=>typeof window>"u"?"#":Re(e),Hke=e=>{let[t,r]=(0,Mt.useState)(()=>Date.now());return(0,Mt.useEffect)(()=>{if(!e)return;r(Date.now());let n=setInterval(()=>r(Date.now()),1e3);return()=>clearInterval(n)},[e]),t};function _J({short:e,label:t}){return Mt.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},Mt.default.createElement("span",{style:Cl(10,Mi,{width:110,flexShrink:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),title:t||void 0},e),Mt.default.createElement("span",{style:Cl(11,Mi)},"\u2014"))}function hD({run:e,runNumber:t=null,latestNumber:r=null,isLatest:n=!1,runningElsewhere:o=null,agentName:a="agent",scenarioCount:i=0,groupCount:s=0,columns:l=[],judgedBy:u="rules",bars:c=[],delta:d=null,version:p=null,totals:f=SJ,settledCount:m=0,settledFailed:y=0,expectedResults:b=0,running:g=!1,loading:h=!1,spend:v=null,fixSummary:x=kJ,selectionLabel:S=null,sandboxLabel:k=null,reportPath:w=null,rerun:_=Wke,onSelectLatest:A,onWatchLatest:C,onJumpToFix:N,onRerunFailed:L,onRunAgain:J}){let{darkMode:B}=ut(),K=Hke(g);if(!e)return null;let T=gh(w),P=e.status==="failed",I=e.status==="complete",M=g?`started ${wo(e.created_at)}`:wo(e.completed_at||e.created_at),j=`@${a} \xB7 ${St(i,"scenario")}${s?` in ${St(s,"group")}`:""} \xD7 ${St(l.length,"model")} \xB7 judged by ${u}${k?` \xB7 against ${k}`:""}`,O=_?.keys||[],F=_?.dropped||[],V=F.length?`${O.length} of ${O.length+F.length}`:`${O.length}`,z="Replay every scenario that failed on any model, under the models in the picker"+(F.length?` \xB7 not replayed (disabled or removed): ${F.join(", ")}`:""),G=eJ(e,K),q=[{key:"duration",width:Ta.duration,content:G!=null&&Mt.default.createElement("span",{style:Cl(11)},g?rJ(G):oD(G)),title:e.usage?.runtime_ms!=null?"Wall clock, as the run recorded it":"From the run's start to its end",empty:"Duration is read once the run starts"},{key:"delta",width:136,content:d&&Mt.default.createElement("span",{style:{display:"flex",flexDirection:"column",gap:1}},Mt.default.createElement("span",{style:Cl(11,pf[d.tone]||pf.muted,{fontWeight:600})},d.text),p&&Mt.default.createElement("span",{"data-testid":"run-version-delta",style:Cl(10,$0[p.kind]||$0.same)},p.text)),title:"Samples passed, against the run before",empty:I&&!d?"Movement is read against the run before, which is not loaded":"Movement is read once the run completes"},{key:"badge",content:Mt.default.createElement(ff,{run:e,testId:"suite-run-badge"})}],oe=f||SJ,Me=oe.total>0?oe.passed/oe.total:null,fe=P?{value:"\u2014",valueColor:Mi,sub:m?`${m} of ${b} before it failed`:"run failed"}:g?{value:`${oe.passed} passed`,sub:Mt.default.createElement("span",{"data-testid":"suite-run-progress"},`${m} of ${b} results in${y?` \xB7 ${y} failed`:""}`)}:{value:Vn(oe.passed,oe.total),valueColor:Me==null?Mi:Dn[eu(Me)].text,sub:`${Math.max(oe.total-oe.passed,0)} failed \xB7 ${St(i,"scenario")} \xD7 ${St(l.length,"model")}`},le=c.slice(0,gD),R=Mt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:5,fontWeight:400,lineHeight:"normal"}},c.length===0&&l.length===0&&Mt.default.createElement("span",{style:Cl(11,Mi)},"\u2014"),c.length===0&&l.map(ee=>Mt.default.createElement(_J,{key:ee,short:bn(ee).short,label:ee})),le.map(ee=>ee.passed==null||ee.total==null?Mt.default.createElement(_J,{key:ee.label||"all",short:ee.short,label:ee.label}):Mt.default.createElement(tu,{key:ee.label||"all",label:ee.short,labelWidth:110,passed:ee.passed,total:ee.total,height:4,valueWidth:48}))),te=c.length>gD?Mt.default.createElement("span",{style:Cl(10,Mi)},`+${c.length-gD} more`):void 0,He=x||kJ,_e=P?{value:"\u2014",valueColor:Mi,sub:"\u2014"}:h?{value:"\u2026",valueColor:Mi,sub:"loading\u2026"}:g?{value:"\u2026",valueColor:Mi,sub:"scoring\u2026"}:He.items>0?{value:He.items,valueColor:Dn.error.text,sub:Mt.default.createElement("span",{style:{color:"var(--color-info)"}},`${St(He.faults,"fault")} across ${St(He.scenarios,"scenario")} ${nv.link}`)}:{value:"0",valueColor:Mi,sub:"nothing to fix"},D=()=>N?.(),E=P?{}:{role:"button",tabIndex:0,onClick:D,onKeyDown:ee=>{(ee.key==="Enter"||ee.key===" ")&&(ee.preventDefault(),D())},style:{cursor:"pointer"}},$=`The faults this run found, grouped into fixes${P?"":" \u2014 opens What to fix"}`;return Mt.default.createElement(je,{padding:0,testId:"suite-run-header",style:{overflow:"hidden"}},Mt.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",padding:"10px 16px",borderBottom:"1px solid var(--color-border-light)"}},Mt.default.createElement("span",{style:Cl(13,"var(--color-text-primary)",{fontWeight:700})},`Run #${t??"?"}`),Mt.default.createElement("span",{style:Cl(11,Mi,{whiteSpace:"nowrap"})},M),n&&Mt.default.createElement(ke,{tone:"info",size:10,style:{padding:"1px 6px"}},"latest"),Mt.default.createElement(E2,{run:e}),Mt.default.createElement("span",{style:Cl(11,Mi,{minWidth:0,textWrap:"pretty"})},j),S&&Mt.default.createElement(ke,{tone:"muted",size:10,style:{padding:"1px 6px"},testId:"suite-run-selection"},S),!n&&Mt.default.createElement(Gr,{onClick:()=>A?.(),title:"Show the suite's latest run",testId:"suite-latest-run"},`latest${r!=null?` #${r}`:""}`),o&&Mt.default.createElement(Gr,{onClick:()=>C?.(),title:"A newer run is going; show it as it replays",testId:"suite-watch-latest"},`#${o.number??r??"?"} is running \xB7 watch`),I&&!h&&O.length>0&&Mt.default.createElement(Gr,{onClick:()=>L?.(),title:z,testId:"suite-rerun-failed"},`re-run failed (${V})`),P&&Mt.default.createElement(Gr,{onClick:()=>J?.(),title:"Replay what this run was asked to, under the models in the picker",testId:"suite-run-again"},"run again"),w&&Mt.default.createElement(Gr,{href:L0(w),onClick:()=>lt(w),title:"The run rendered as a report page",testId:"suite-run-report"},"run report"),T&&Mt.default.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:10,flexWrap:"wrap"},"data-testid":"suite-run-exports"},Mt.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:Mi}},"download"),Mt.default.createElement(Gr,{href:L0(T.html),title:"The report as one self-contained HTML page",testId:"suite-run-download-html"},"html"),Mt.default.createElement(Gr,{href:L0(T.json),title:"The run as the evaluation report envelope another install imports",testId:"suite-run-download-json"},"json"),Mt.default.createElement(Gr,{href:L0(T.md),title:"The report as GitHub-flavored Markdown",testId:"suite-run-download-md"},"markdown"),Mt.default.createElement(_l,{url:L0(T.markdown),label:"copy markdown",testId:"suite-run-copy-markdown",title:"Copy the whole report as GitHub-flavored Markdown",style:{padding:"0 4px",fontFamily:W,fontSize:11}})),Mt.default.createElement("span",{style:{marginLeft:"auto"}},Mt.default.createElement(ad,{darkMode:B,cells:q}))),Mt.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))"}},Mt.default.createElement(df,{label:"Passed",title:"Results that passed, over every scenario \xD7 model the run covers",testId:"suite-run-passed",...fe}),Mt.default.createElement(df,{label:"Models",title:"Each model's passed scenarios \u2014 counted from the results that have landed while the run goes",testId:"suite-run-models",value:R,sub:te}),Mt.default.createElement(sD,{spend:v,pending:g,failed:P}),Mt.default.createElement(lD,{spend:v,judgedBy:u,pending:g,failed:P}),Mt.default.createElement(df,{label:"To fix",title:$,testId:"suite-to-fix",...E,..._e})),g&&b>0&&Mt.default.createElement(J1,{parts:[{value:m-y,tone:"success"},{value:y,tone:"error"}],total:b,height:4,radius:0,role:"progressbar","aria-label":"Results in","aria-valuemin":0,"aria-valuemax":b,"aria-valuenow":m,"aria-valuetext":`${m} of ${b} results in${y?`, ${y} failed`:""}`,testId:"suite-run-progress-bar"}),P&&Mt.default.createElement("div",{"data-testid":"suite-run-error",style:{padding:"8px 16px",background:"var(--color-error-soft)",color:"var(--color-error-text)",fontSize:13}},`[!] ${e.error_message||"unknown error"}`))}var Oo=Z(Q());function gf({evaluation:e,run:t=null,keys:r=null,spend:n=null,spendTotal:o=!1,reportPath:a=null,onDelete:i,deleting:s=!1,deleteLabel:l="Delete evaluation"}){let u=(r||(e.criteria||[]).map(m=>m.key)).map(m=>_0(e,m)),c={fontFamily:W,fontSize:11,color:"var(--color-text-muted)"},d={fontFamily:W,fontSize:11,color:"var(--color-text-cell)"},p=(m,y,b)=>Oo.default.createElement("span",{"data-testid":y,title:b,style:{...c,fontSize:10,textTransform:"uppercase",letterSpacing:"0.04em",marginLeft:2}},m),f=hJ(n,{total:o});return Oo.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:6,paddingTop:12,borderTop:"1px solid var(--color-border-light)"},"data-testid":"criteria-footer"},Oo.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap",rowGap:4}},Oo.default.createElement("span",{style:c},"judge"),Oo.default.createElement("span",{style:{...d,fontWeight:600}},xh(e,t)),Oo.default.createElement("span",{style:{...c,marginLeft:8}},"criteria"),u.length===0&&Oo.default.createElement("span",{style:c},e.judge_kind==="judge_defined"?"defined by the judge on the first run":e.scenario_suite?"each scenario's own expectations":"\u2014"),u.map((m,y)=>Oo.default.createElement(Oo.default.Fragment,{key:m.key||y},y>0&&Oo.default.createElement("span",{style:c},"\xB7"),Oo.default.createElement("span",{style:d,title:vh(m)||void 0},h2(m)),kl(m)==="telemetry"&&p("telemetry","score-source-telemetry","Scored from the agent's telemetry traces, not from sampled generations"),kl(m)==="judge"&&p("judge",void 0,"Scored by the judge model; needs provider credentials"))),Oo.default.createElement("span",{style:{...c,marginLeft:8},title:"A sample or scenario passes at or above this score","data-testid":"criteria-threshold"},R1(.7))),Oo.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:16,flexWrap:"wrap",rowGap:4}},Oo.default.createElement("span",{style:{...c,whiteSpace:"nowrap"},title:"Run this evaluation again from the API"},"POST /api/evaluations/",e.id,"/run"),f&&Oo.default.createElement("span",{style:{...c,minWidth:0,textWrap:"pretty"},title:"What this run spent: the agent's replays or sampled interactions, and the judge's own calls"},f),f&&n?.totalEstimated&&Oo.default.createElement("span",{style:{...c,whiteSpace:"nowrap"},"data-testid":"criteria-cost-legend"},il),a&&Oo.default.createElement(Gr,{href:Re(a),onClick:()=>lt(a),title:"The run rendered as a report page"},"run report"),i&&Oo.default.createElement("button",{type:"button",onClick:m=>{m.stopPropagation(),i()},disabled:s,title:"Delete this evaluation and its runs",style:{marginLeft:"auto",background:"transparent",border:"none",padding:0,cursor:s?"not-allowed":"pointer",fontFamily:W,fontSize:11,color:"var(--color-error)",opacity:s?.5:1}},s?"Deleting\u2026":l)))}var qke=["tools","contains","not_contains"];function Kke(e){let t=e.expectations||{},r=[];return qke.forEach(n=>{t[n]?.length&&r.push(`${n}: ${t[n].join(", ")}`)}),e.notes&&r.push(`notes: ${e.notes}`),r.push(`key: ${e.key}`),`${e.prompt} | ${r.join(" | ")}`}function CJ(e){let t=[],r=null;return e.forEach(n=>{(n.group||"")!==(r||"")&&(r=n.group,r&&t.push(`# ${r}`)),t.push(Kke(n))}),t.join(` +`)}var se=Z(Q());var jr=Z(Q());var Vke=e=>e>=.85?"success":e>=.7?"warning":"error";function Ch({label:e,children:t,title:r,nowrap:n=!0}){return jr.default.createElement("span",{style:{whiteSpace:n?"nowrap":"normal"},title:r},e," ",jr.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},t))}function z0({label:e,short:t,provider:r,winner:n=!1,passed:o,total:a,avgScore:i,criteria:s,latencyMs:l,p50Ms:u=null,p95Ms:c=null,inputTokens:d,outputTokens:p,cost:f,perInteraction:m,estimated:y=!1,judgeCost:b=null,judgeCalls:g=0,judgeEstimated:h=!1,unit:v="interaction",badges:x=[],note:S,testId:k="model-scorecard"}){let w=o!=null&&a>0,_=w?o/a:null,A=w?eu(_):i!=null?Vke(i):"muted",C=Dn[A].strong,N=b!=null||g>0;return jr.default.createElement(je,{padding:"14px 16px",testId:k,style:{display:"flex",flexDirection:"column",gap:10,minWidth:0}},jr.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},jr.default.createElement("span",{style:{fontFamily:W,fontSize:14,fontWeight:700,color:"var(--color-text-primary)"},title:e||void 0},t||e||"all samples"),r&&jr.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},r),n&&jr.default.createElement(ke,{tone:"info",size:10,style:{padding:"1px 6px"},testId:"judges-pick"},"judge's pick")),jr.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,flexWrap:"wrap"}},jr.default.createElement("span",{style:{fontFamily:W,fontSize:26,fontWeight:700,lineHeight:1,color:C},"data-testid":"model-scorecard-headline"},w?Vn(o,a):i!=null?ia(i):"\u2014"),jr.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-secondary)"}},w?`${v==="scenario"?"scenarios":"samples"} passed`:i!=null?"mean score":"nothing scored")),jr.default.createElement("span",{style:{display:"block",height:6,borderRadius:999,background:"var(--color-muted)",overflow:"hidden"}},jr.default.createElement("span",{style:{display:"block",height:"100%",borderRadius:999,background:C,width:`${Math.round((_??i??0)*100)}%`}})),jr.default.createElement("div",{style:{display:"flex",gap:14,flexWrap:"wrap",fontFamily:W,fontSize:11,color:"var(--color-text-secondary)"}},jr.default.createElement(Ch,{label:"score"},ia(i)),s&&jr.default.createElement(Ch,{label:"criteria"},Vn(s.cleared,s.scored)),l!=null&&jr.default.createElement(Ch,{label:"latency"},Bn(l)),u!=null&&jr.default.createElement(Ch,{label:"p50 / p95"},`${Bn(u)} / ${Bn(c)}`),(d!=null||p!=null)&&jr.default.createElement("span",{style:{whiteSpace:"nowrap"}},jr.default.createElement("span",{style:{color:"var(--color-token-in)"}},"in")," ",jr.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},y0(d))," \xB7 ",jr.default.createElement("span",{style:{color:"var(--color-token-out)"}},"out")," ",jr.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},y0(p))),f!=null&&jr.default.createElement(Ch,{label:"cost",title:`What the agent spent under this model${m!=null?` \u2014 ${Lu(m,y)} per ${v}`:""}${y?` \xB7 ${Em()}`:""}`},Pr(f,{estimated:y}),m!=null&&jr.default.createElement("span",{style:{fontWeight:400,color:"var(--color-text-muted)"}},` \xB7 ${Lu(m,y)} / ${v}`)),N&&jr.default.createElement(Ch,{label:"judge",title:"What the judge spent on this model's answers \u2014 the evaluation's own cost, not the model's"},Pr(b,{estimated:h}),jr.default.createElement("span",{style:{fontWeight:400,color:"var(--color-text-muted)"}},` \xB7 ${St(g,"call")}`))),(x.length>0||S)&&jr.default.createElement("div",{style:{display:"flex",gap:6,flexWrap:"wrap",alignItems:"center"}},x.map(L=>jr.default.createElement(ke,{key:L.text,tone:L.tone,testId:L.testId},L.text)),S&&jr.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:S.color||"var(--color-text-muted)"}},S.text)))}var vr=Z(Q());var yD={fontFamily:W,fontSize:10,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",color:"var(--color-text-muted)",padding:"8px 12px",textAlign:"left",verticalAlign:"bottom",whiteSpace:"nowrap"},vD={padding:"9px 12px",verticalAlign:"top",fontSize:13,color:"var(--color-text-cell)",borderTop:"1px solid var(--color-border-light)"},hf={...vD,fontFamily:W,fontSize:12,whiteSpace:"nowrap",textAlign:"right"},yf={...yD,textAlign:"right"},B0=e=>e==null?"var(--color-text-muted)":e>=.85?"var(--color-success-text)":e>=.5?"var(--color-warning-text)":"var(--color-error)";function F0({rows:e=[],unit:t="scenario",judgedBy:r=null,judgeEstimated:n=!1,title:o="Model comparison",testId:a="model-comparison-table"}){if(!e.length)return null;let i=e.some(p=>p.cost!=null),s=e.some(p=>p.judgeCost!=null||p.judgeCalls>0),l=e.some(p=>p.avgTokens!=null),u=e.some(p=>p.avgDurationMs!=null),c=e.some(p=>p.p50DurationMs!=null),d=e.some(p=>p.cost!=null&&p.estimated||p.judgeCost!=null&&n);return vr.default.createElement(je,{padding:0,style:{overflow:"hidden"},testId:a},vr.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:10,padding:"10px 12px",flexWrap:"wrap"}},vr.default.createElement(Ue,null,o),vr.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},`${e.length} models \xB7 best first${r?` \xB7 judged by ${r}`:""}`),d&&vr.default.createElement("span",{style:{marginLeft:"auto",fontFamily:W,fontSize:11,color:"var(--color-text-muted)"},"data-testid":"model-comparison-legend"},il)),vr.default.createElement("div",{style:{overflowX:"auto"}},vr.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},vr.default.createElement("thead",null,vr.default.createElement("tr",{style:{background:"var(--color-muted)"}},vr.default.createElement("th",{style:yD},"Model"),vr.default.createElement("th",{style:yf},"Passed"),vr.default.createElement("th",{style:yf},"Mean score"),u&&vr.default.createElement("th",{style:yf},"Avg latency"),c&&vr.default.createElement("th",{style:yf,title:"Median and 95th percentile latency, nearest rank"},"P50 / P95"),l&&vr.default.createElement("th",{style:yf,title:`Average input + output tokens per ${t}`},"Avg tokens"),i&&vr.default.createElement("th",{style:yf,title:`Cohort spend, and per ${t}`},"Cost"),s&&vr.default.createElement("th",{style:yf,title:"What the judge spent scoring this model's answers"},"Judge"),vr.default.createElement("th",{style:{...yD,width:"34%"}},"Typical fault"))),vr.default.createElement("tbody",null,e.map(p=>{let{short:f,provider:m}=bn(p.label,p.provider||"");return vr.default.createElement("tr",{key:p.label,"data-testid":"model-comparison-row","data-model":p.label},vr.default.createElement("td",{style:{...vD,whiteSpace:"nowrap"}},vr.default.createElement("span",{style:{fontFamily:W,fontSize:12,fontWeight:600,color:"var(--color-text-primary)"},title:p.label},f),p.winner&&vr.default.createElement("span",{style:{marginLeft:6,fontFamily:W,fontSize:10,fontWeight:700,color:"var(--color-warning-text)"},title:"the judge's pick"},"\u2605 pick"),m&&vr.default.createElement("span",{style:{display:"block",fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},m)),vr.default.createElement("td",{style:{...hf,color:B0(p.passRate),fontWeight:600}},Vn(p.passed,p.total)),vr.default.createElement("td",{style:hf},ia(p.avgScore)),u&&vr.default.createElement("td",{style:hf},p.avgDurationMs==null?"\u2014":Bn(p.avgDurationMs)),c&&vr.default.createElement("td",{style:hf,"data-testid":"model-comparison-percentiles"},p.p50DurationMs==null?"\u2014":`${Bn(p.p50DurationMs)} / ${Bn(p.p95DurationMs)}`),l&&vr.default.createElement("td",{style:hf,title:p.avgInputTokens==null?void 0:`${Math.round(p.avgInputTokens)} in \xB7 ${Math.round(p.avgOutputTokens||0)} out per ${t}`},p.avgTokens==null?"\u2014":On(Math.round(p.avgTokens))),i&&vr.default.createElement("td",{style:hf,title:p.cost!=null&&p.estimated?Em():void 0,"data-testid":"model-comparison-cost"},Pr(p.cost,{estimated:p.estimated}),p.costPerInteraction!=null&&vr.default.createElement("span",{style:{display:"block",fontWeight:400,color:"var(--color-text-muted)"}},`${Pr(p.costPerInteraction,{estimated:p.estimated})}/${t}`)),s&&vr.default.createElement("td",{style:hf,"data-testid":"model-comparison-judge"},p.judgeCost==null&&!p.judgeCalls?"\u2014":Pr(p.judgeCost,{estimated:n}),p.judgeCalls>0&&vr.default.createElement("span",{style:{display:"block",fontWeight:400,color:"var(--color-text-muted)"}},St(p.judgeCalls,"call"))),vr.default.createElement("td",{style:{...vD,color:p.typicalFault?"var(--color-text-cell)":"var(--color-text-muted)",textWrap:"pretty"}},OZ(p)))})))))}var Po=Z(Q());var Gke=[0,25,50,75,100],Yke={display:"grid",gridTemplateColumns:"minmax(64px, 200px) minmax(96px, 1fr) auto",alignItems:"center",gap:"6px 12px",padding:"10px 12px",border:"1px solid var(--color-border-light)",borderRadius:10},AJ={display:"contents"},xD={gridColumn:"1 / -1"},Xke={fontFamily:W,fontSize:11,color:"var(--color-text-secondary)"};function Zke({passRate:e,interval:t}){return Po.default.createElement("span",{"aria-hidden":"true",style:{position:"relative",display:"block",height:14}},Po.default.createElement("span",{style:{position:"absolute",left:0,right:0,top:6,height:2,background:"var(--color-muted)"}}),t&&Po.default.createElement("span",{"data-testid":"comparison-interval-range",style:{position:"absolute",top:3,height:8,left:`${t[0]}%`,width:`${Math.max(0,Math.round((t[1]-t[0])*10)/10)}%`,boxSizing:"border-box",border:"1px solid var(--color-info)",borderRadius:999,background:"var(--color-info-soft)"}}),e!=null&&Po.default.createElement("span",{style:{position:"absolute",top:2,left:`${e}%`,width:10,height:10,marginLeft:-5,borderRadius:"50%",background:"var(--color-info)"}}))}function bD({plot:e,testId:t="comparison-intervals"}){if(!e)return null;let r=`${e.confidence}% CI`;return Po.default.createElement("div",{style:Yke,"data-testid":t},Po.default.createElement(Ue,{size:10,color:"var(--color-text-muted)",style:xD},`Pass rate \xB7 ${r}`),e.rows.map(n=>{let{short:o}=bn(n.label,"");return Po.default.createElement("div",{key:n.label,style:AJ,"data-testid":"comparison-interval-row","data-model":n.label},Po.default.createElement("span",{style:{fontFamily:W,fontSize:12,fontWeight:600,color:"var(--color-text-primary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:n.label},o),Po.default.createElement(Zke,{passRate:n.passRate,interval:n.interval}),Po.default.createElement("span",{style:Xke},Po.default.createElement("strong",{style:{color:"var(--color-text-primary)"}},n.passRate==null?"\u2014":`${n.passRate}%`),` ${n.interval?`${n.interval[0]} to ${n.interval[1]}`:"no interval"} \xB7 ${St(n.scenarios,"scenario")}`))}),Po.default.createElement("div",{style:AJ,"aria-hidden":"true"},Po.default.createElement("span",null),Po.default.createElement("span",{style:{position:"relative",display:"block",height:14}},Gke.map(n=>Po.default.createElement("span",{key:n,style:{position:"absolute",left:`${n}%`,transform:"translateX(-50%)",fontFamily:W,fontSize:10,color:"var(--color-text-muted)"}},`${n}%`))),Po.default.createElement("span",null)),e.conclusion&&Po.default.createElement("div",{style:{...xD,fontSize:12,lineHeight:"18px",color:"var(--color-text-cell)",textWrap:"pretty"},"data-testid":"comparison-conclusion"},e.conclusion),e.resamples!=null&&Po.default.createElement("span",{style:{...xD,fontFamily:W,fontSize:10,color:"var(--color-text-muted)"}},`${r} from ${Number(e.resamples).toLocaleString("en-US")} resamples of whole scenarios`))}var $r=Z(Q());var EJ={evaluation:"pinned on this evaluation",provider_key:"the provider key's default model",config:"the host's config/active_agent.yml",provider_default:"the provider's own default"},Jke={openrouter:"openrouter/auto"},NJ=(e,t)=>{let r=t?.scores?._judge;if(!r||typeof r!="object")return null;let n=EJ[r.model_source]?r.model_source:"provider_default",o=Object.entries(r.answered||{}).filter(([,i])=>Number(i)>0).sort(([i,s],[l,u])=>u-s||i.localeCompare(l)),a=r.model||null;return{agent:r.agent||"EvaluationJudgeAgent",provider:r.provider||null,requested:a,source:n,sourceText:EJ[n],providerDefault:Jke[r.provider]||null,answered:o,auto:!a,pinned:e?.judge_model||null,suggestion:e?.judge_model||a||(o.length===1?o[0][0]:"")}},TJ=e=>{if(!e)return"";let t=e.requested?`${e.requested} (${e.sourceText})`:`${e.providerDefault||"no model"} (${e.sourceText})`,r=e.answered.map(([n,o])=>`${n} \xD7${o}`).join(", ");return`${e.agent} on ${e.provider||"no provider"} \xB7 asked for ${t}${r?` \xB7 answered by ${r}`:""}`};var OJ="/settings?tab=api-keys",T2=(e=11)=>({fontFamily:W,fontSize:e,color:"var(--color-text-secondary)"});function wD({evaluation:e,run:t,label:r,onChanged:n,testId:o="judge-chip"}){let a=NJ(e,t),[i,s]=(0,$r.useState)(!1),[l,u]=(0,$r.useState)(a?.suggestion||""),[c,d]=(0,$r.useState)(!1),[p,f]=(0,$r.useState)(null);if((0,$r.useEffect)(()=>{u(a?.suggestion||"")},[a?.suggestion]),!r)return null;if(!a)return $r.default.createElement("span",{style:T2()},`judged by ${r}`);let m=async b=>{d(!0),f(null);try{let g=await fetch(`/api/evaluations/${e.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({evaluation:{judge_model:b}})}),h=await g.json().catch(()=>({}));if(!g.ok){f((h.errors||[h.error]).filter(Boolean).join(", ")||`Saving the judge failed (HTTP ${g.status})`);return}await n?.()}finally{d(!1)}},y=(b,g)=>$r.default.createElement($r.default.Fragment,null,$r.default.createElement(Ue,{size:10},b),$r.default.createElement("span",{style:{...T2(12),color:"var(--color-text-cell)",overflowWrap:"anywhere"}},g));return $r.default.createElement("span",{style:{display:"inline-flex",flexDirection:"column",gap:8,minWidth:0},"data-testid":o},$r.default.createElement("button",{type:"button",onClick:()=>s(!i),title:TJ(a),"aria-expanded":i,style:{...T2(),display:"inline-flex",alignItems:"center",gap:6,background:"none",border:"none",padding:0,cursor:"pointer"}},$r.default.createElement("span",null,"judged by ",$r.default.createElement("span",{style:{color:"var(--color-info)"}},r)),a.auto&&$r.default.createElement(ke,{tone:"warning",size:10,title:"No judge model is pinned: the provider chose"},"auto"),a.answered.length>1&&$r.default.createElement(ke,{tone:"error",size:10,title:"More than one model judged this run"},`${a.answered.length} models`)),i&&$r.default.createElement(je,{padding:"12px 14px",testId:`${o}-panel`,style:{display:"flex",flexDirection:"column",gap:10,maxWidth:560}},$r.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"max-content 1fr",columnGap:14,rowGap:6,alignItems:"baseline"}},y("Judge agent",a.agent),y("Provider",a.provider||"\u2014"),y("Asked for",a.requested?`${a.requested} \xB7 ${a.sourceText}`:`${a.providerDefault||"no model"} \xB7 ${a.sourceText}`),y("Answered by",a.answered.length?a.answered.map(([b,g])=>`${b} \xD7${g}`).join(", "):"no calls recorded")),a.auto&&$r.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},a.answered.length>1?"Different models judged this run. Pin one so runs are judged alike.":"No judge model is pinned, so a later run can be judged by a different model. Pin one to compare runs."),e?.id!=null&&$r.default.createElement("form",{onSubmit:b=>{b.preventDefault(),l.trim()&&m(l.trim())},style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},$r.default.createElement("input",{value:l,onChange:b=>u(b.target.value),placeholder:a.provider==="openrouter"?"e.g. anthropic/claude-sonnet-4.5":"judge model id","aria-label":"Judge model","data-testid":`${o}-model`,style:{flex:"1 1 220px",padding:"6px 10px",borderRadius:8,fontSize:12,fontFamily:W,boxSizing:"border-box",background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"}}),$r.default.createElement(ce,{size:"sm",variant:"primary",type:"submit",disabled:c||!l.trim()||l.trim()===a.pinned,testId:`${o}-pin`},"Pin judge model"),a.pinned&&$r.default.createElement(ce,{size:"sm",onClick:()=>m(""),disabled:c,testId:`${o}-unpin`},"Unpin")),$r.default.createElement("div",{style:{display:"flex",gap:12,flexWrap:"wrap",alignItems:"baseline"}},$r.default.createElement("span",{style:T2()},a.pinned?`next run: ${a.pinned}`:`next run: ${a.providerDefault||`${a.provider} default`}`),$r.default.createElement(Gr,{href:Re(OJ),onClick:()=>lt(OJ)},`${a.provider||"provider"} key in Settings`)),p&&$r.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},p)))}var pd=Z(Q());function U0({build:e,testId:t="copy-fix-prompt",style:r}){let[n,o]=(0,pd.useState)("idle"),a=(0,pd.useRef)(null);(0,pd.useEffect)(()=>()=>clearTimeout(a.current),[]);let i=async()=>{let l="";try{l=e?.()||""}catch{l=""}let u=l?await ud(l):!1;o(u?"copied":"failed"),clearTimeout(a.current),a.current=setTimeout(()=>o("idle"),2e3)},s=n==="copied"?"Copied":n==="failed"?"Copy failed":"Copy fix prompt";return pd.default.createElement(ce,{size:"sm",variant:"ghost",onClick:i,testId:t,title:"Copy a Markdown brief of this fix \u2014 the scenarios, what they expect, what the agent did, and how to verify \u2014 for your coding harness",style:{padding:"4px 8px",fontSize:12,color:n==="failed"?"var(--color-error)":n==="copied"?"var(--color-success-text)":"var(--color-text-secondary)",...r}},s)}var O2=()=>{if(typeof window>"u"||!window.location)return"";let e=String(window.ACTIVE_AGENT_DASHBOARD?.mountPath||"").replace(/\/+$/,"");return`${window.location.origin}${e}`};var At=Z(Q());var Pe=Z(Q());var P2="Update from the sandbox",Qke=new Set(["queued","publishing"]);function W0(e){return!!(e&&Qke.has(e.status))}function MJ(e){if(!e)return{label:"None",tone:"neutral"};switch(e.status){case"queued":return{label:"Queued",tone:"progress"};case"publishing":return{label:"Publishing",tone:"progress"};case"draft_refused":return{label:"Branch published",tone:"neutral"};case"failed":return e.number?{label:`${PJ(e)} \xB7 update failed`,tone:"error"}:e.head_commit?{label:"Branch published \xB7 pull request not opened",tone:"error"}:{label:"Failed",tone:"error"};default:return{label:PJ(e),tone:Rke(e)}}}function PJ(e){return e.state==="merged"?"Merged":e.state==="closed"?"Closed":e.draft?"Draft":"Open"}function Rke(e){return e.state==="closed"?"error":e.state==="merged"?"success":e.draft?"neutral":"success"}function IJ(e){return!e?.head_commit||!e.number||W0(e)?!1:!["closed","merged"].includes(e.state)}function DJ(e){return!!(e?.head_commit&&!e.number&&!W0(e))}function jJ(e,t,r){let n=new Set(Ah(t,r).map(o=>o.path));return(e?.files||[]).map(o=>o.path).filter(o=>!n.has(o))}function $J(e){return(e||[]).some(t=>t.refusal==="not_read")}function LJ(e){let t=(e||"").split(/[\s,]+/).filter(Boolean);return t.length?t:null}function M2(e){return e==="changed_since_preview"}function I2(e){return new Set((e||[]).filter(t=>!t.refusal).map(t=>t.path))}function D2(e,t){let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r}function Ah(e,t){return(e||[]).filter(r=>!r.refusal&&t.has(r.path))}function zJ(e,t){let r=e||[],n=r.filter(l=>!l.refusal),o=r.length-n.length,a=Ah(r,t).length,i=n.length===1?"file":"files",s=[`${a} of ${n.length} ${i} selected`];return o>0&&s.push(`${o} cannot be published`),s.join(" \xB7 ")}function BJ(e){return{added:"A",modified:"M",deleted:"D"}[e.status]||"?"}var e_e=/[\x00-\x20\x7f~^:?*[\\]|\.\.|@\{|\/\/|^[/-]|\/$|\.$|^@$/;function t_e(e){let t=(e||"").trim();return t?t.length>200?"A branch name is at most 200 characters.":!/^[\x00-\x7f]*$/.test(t)||e_e.test(t)||t.split("/").some(r=>r.startsWith(".")||r.endsWith(".lock"))?`"${t}" is not a valid branch name.`:null:"Name the branch."}function FJ({files:e,selection:t,title:r,branch:n,message:o,update:a=!1}){return Ah(e,t).length===0?"Choose at least one file.":a?(o||"").trim()?null:"Add a commit message.":(r||"").trim()?t_e(n):"Add a title."}function j2({files:e,selection:t,title:r,body:n,branch:o,message:a,allowlist:i=null,update:s=!1}){let l=Ah(e,t).map(c=>({path:c.path,digest:c.digest})),u=s?{files:l,message:(a||"").trim(),update:!0}:{files:l,title:(r||"").trim(),body:n||"",branch:(o||"").trim()};return i?{...u,allowlist:i}:u}function UJ(e,t,r){let n=new URLSearchParams;(t||[]).forEach(a=>n.append("paths[]",a)),r&&r.trim()&&n.set("title",r.trim());let o=n.toString();return`/api/sandboxes/${encodeURIComponent(e)}/pull_request/patch${o?`?${o}`:""}`}function SD(e){let t=Number(e);return!Number.isFinite(t)||t<0?"":t<1024?`${t} ${t===1?"byte":"bytes"}`:t<1024*1024?`${Math.round(t/1024)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function WJ(e){return e?.repository?`Changes from a sandbox of ${e.repository}`:"Changes from a sandbox"}var HJ={add:{dark:"text-green-400",light:"text-green-700"},del:{dark:"text-red-400",light:"text-red-700"},hunk:{dark:"text-blue-300",light:"text-blue-700"},meta:{dark:"text-gray-400 font-semibold",light:"text-gray-500 font-semibold"},context:{dark:"text-gray-300",light:"text-gray-700"}};function qJ(e){return/[.!?]$/.test(e)?e:`${e}.`}function KJ(){let{darkMode:e}=ut();return{darkMode:e,muted:e?"text-gray-400":"text-gray-500",strong:e?"text-white":"text-gray-900",border:e?"border-gray-700":"border-gray-200",link:`underline ${e?"text-gray-300 hover:text-white":"text-gray-700 hover:text-gray-900"}`,secondaryButton:`px-3 py-1 text-sm rounded ${e?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,primaryButton:"px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600 disabled:opacity-50",input:`w-full px-3 py-2 border rounded-lg text-sm ${e?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`,errorBox:`p-2 rounded text-xs border ${e?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`,surface:{backgroundColor:e?"#1a1a1a":"#ffffff"}}}function H0({sandbox:e,codeSession:t=null}){let r=`/api/sandboxes/${encodeURIComponent(e.session_id)}/pull_request`,[n,o]=(0,Pe.useState)(null),[a,i]=(0,Pe.useState)(null),[s,l]=(0,Pe.useState)(null),[u,c]=(0,Pe.useState)(0),[d,p]=(0,Pe.useState)(!1),f=(0,Pe.useCallback)(async()=>{let g=await fetch(r),h=await g.json().catch(()=>({}));if(!g.ok)throw new Error(at(h,`Could not load the pull request (HTTP ${g.status}).`));return h},[r]);(0,Pe.useEffect)(()=>{let g=!1,h=null,v=async()=>{try{let x=await f();if(g)return;o(x),i(null),W0(x.pull_request)&&(h=setTimeout(v,2e3))}catch(x){g||i(x.message)}};return v(),()=>{g=!0,clearTimeout(h)}},[f,u]);let m=async g=>{p(!0),i(null);try{let h=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(g?{regular:!0}:{open:!0})}),v=await h.json().catch(()=>({}));if(!h.ok)throw new Error(at(v,`Could not open the pull request (HTTP ${h.status}).`));c(x=>x+1)}catch(h){i(h.message)}finally{p(!1)}},y=n?.pull_request||null,b=n?.publishing||null;return b&&!b.supported?null:Pe.default.createElement(Pe.default.Fragment,null,Pe.default.createElement(n_e,{pullRequest:y,publishing:b,error:a,opening:d,onOpenDialog:g=>l({mode:g}),onOpenBranch:m}),s&&Pe.default.createElement(o_e,{codeSession:t,sandbox:e,pullRequest:y,publishing:b,mode:s.mode,onClose:()=>l(null),onPublished:()=>{l(null),c(g=>g+1)}}))}function n_e({pullRequest:e,publishing:t,error:r,opening:n,onOpenDialog:o,onOpenBranch:a}){let i=KJ(),{muted:s,strong:l,border:u,link:c,secondaryButton:d,primaryButton:p,errorBox:f}=i,{label:m,tone:y}=MJ(e),b=W0(e),g=!!t?.available,h=IJ(e),v=DJ(e);return Pe.default.createElement("div",{className:`mt-2 p-3 rounded-lg border space-y-2 ${u}`},Pe.default.createElement("div",{className:"flex items-center justify-between gap-3"},Pe.default.createElement("p",{className:`text-sm font-medium ${l}`},"Pull request"),Pe.default.createElement("div",{className:"flex items-center gap-2"},t?.patch_available&&!g&&Pe.default.createElement("button",{type:"button",onClick:()=>o("patch"),className:d},"Download patch\u2026"),g&&h&&Pe.default.createElement("button",{type:"button",onClick:()=>o("update"),disabled:b,className:`${d} disabled:opacity-50`},"Update draft PR"),g&&Pe.default.createElement("button",{type:"button",onClick:()=>o("create"),disabled:b,className:p},"Open draft PR"))),t&&!g&&Pe.default.createElement("p",{className:`text-xs ${s}`},qJ(t.refusal||"Publishing is not available for this sandbox"),t.patch_available&&" You can download its changes as a patch instead."),e&&Pe.default.createElement("div",{className:"space-y-1"},Pe.default.createElement("div",{className:"flex items-center gap-2 min-w-0 text-sm"},Pe.default.createElement(Ks,{tone:y},m),e.url?Pe.default.createElement("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:`truncate ${c}`},"#",e.number," ",e.title):Pe.default.createElement("span",{className:`truncate ${l}`},e.title)),Pe.default.createElement("p",{className:`text-xs font-mono truncate ${s}`},e.branch,e.base_branch?` \u2192 ${e.base_branch}`:"",e.files?.length?` \xB7 ${e.files.length} file${e.files.length===1?"":"s"}`:""),e.status==="draft_refused"&&Pe.default.createElement("p",{className:`text-xs ${s}`},e.error_message),e.status==="failed"&&e.error_message&&Pe.default.createElement("p",{className:f},e.error_message),v&&Pe.default.createElement("div",{className:"flex flex-wrap items-center gap-3 text-xs"},e.compare_url&&Pe.default.createElement("a",{href:e.compare_url,target:"_blank",rel:"noopener noreferrer",className:c},"Compare on GitHub"),g&&Pe.default.createElement("button",{type:"button",onClick:()=>a(e.status==="draft_refused"),disabled:n,className:`${d} disabled:opacity-50`},n&&"Opening\u2026",!n&&(e.status==="draft_refused"?"Open as a regular pull request":"Open the draft PR again")))),r&&Pe.default.createElement("div",{className:f},r))}function o_e({sandbox:e,pullRequest:t,publishing:r,mode:n,onClose:o,onPublished:a,codeSession:i}){let s=`/api/sandboxes/${encodeURIComponent(e.session_id)}/pull_request`,l=n==="update",[u,c]=(0,Pe.useState)(null),[d,p]=(0,Pe.useState)(!0),[f,m]=(0,Pe.useState)(null),[y,b]=(0,Pe.useState)(new Set),[g,h]=(0,Pe.useState)(l?t?.title||"":WJ(e)),[v,x]=(0,Pe.useState)(""),[S,k]=(0,Pe.useState)(l&&t?.branch||""),[w,_]=(0,Pe.useState)(P2),[A,C]=(0,Pe.useState)(""),[N,L]=(0,Pe.useState)(null),[J,B]=(0,Pe.useState)(!1),[K,T]=(0,Pe.useState)(0);return(0,Pe.useEffect)(()=>{let I=!1;return p(!0),(async()=>{try{let M=await fetch(`${s}/preview`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(N?{allowlist:N}:{})}),j=await M.json().catch(()=>({}));if(I)return;if(!M.ok)throw new Error(at(j,`Could not read the sandbox's changes (HTTP ${M.status}).`));c(j.preview),b(I2(j.preview.files)),k(O=>O||j.preview.suggested_branch||"")}catch(M){I||m(M.message)}finally{I||p(!1)}})(),()=>{I=!0}},[s,K,N]),Pe.default.createElement(kD,{sandbox:e,preview:u,loading:d,error:f,publishing:r,pullRequest:t,selection:y,onToggle:I=>b(M=>D2(M,I)),fields:{title:g,body:v,branch:S,message:w,allowlist:A},onField:(I,M)=>({title:h,body:x,branch:k,message:_,allowlist:C})[I](M),allowlistApplied:!!N,onApplyAllowlist:()=>{m(null),L(LJ(A))},mode:n,submitting:J,onSubmit:async()=>{B(!0),m(null);try{let I=await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...j2({files:u?.files,selection:y,title:g,body:v,branch:S,message:w,allowlist:N,update:l}),...i&&!l?{code_session_id:i.id}:{}})}),M=await I.json().catch(()=>({}));if(!I.ok)throw M2(M.code)&&T(j=>j+1),new Error(at(M,`Could not publish (HTTP ${I.status}).`));a(M.pull_request)}catch(I){m(I.message)}finally{B(!1)}},onCancel:o})}function kD({sandbox:e,preview:t,loading:r,error:n,publishing:o,pullRequest:a,selection:i,onToggle:s,fields:l,onField:u,allowlistApplied:c,onApplyAllowlist:d,mode:p,submitting:f,onSubmit:m,onCancel:y,patchHref:b}){let g=KJ(),{muted:h,strong:v,border:x,link:S,secondaryButton:k,primaryButton:w,input:_,errorBox:A,darkMode:C}=g,N=t?.files||[],L=(0,Pe.useMemo)(()=>Ah(N,i),[N,i]),J=!!o?.available,B=p==="patch"||!J,K=p==="update"&&!B,T=t&&!B?FJ({files:N,selection:i,title:l.title,branch:l.branch,message:l.message,update:K}):null,P=K?jJ(a,N,i):[],I="Open draft PR";B?I="Download patch":K&&(I="Update draft PR");let M=`Publishes the files you tick from ${e.repository}@${e.repository_ref} through the GitHub API, as one commit on a new branch.`;return B?M=`Downloads the files you tick from ${e.repository}@${e.repository_ref} as a patch for git am or git apply.`:K&&(M="Publishes the files you tick as one commit on the pull request's branch, which then holds the checkout commit with exactly these files changed."),Pe.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4",role:"dialog","aria-modal":"true","aria-label":I},Pe.default.createElement("div",{className:`w-full max-w-4xl max-h-[90vh] overflow-y-auto rounded-lg border p-5 space-y-4 ${x} ${C?"bg-gray-900":"bg-white"}`},Pe.default.createElement("div",{className:"flex items-start justify-between gap-3"},Pe.default.createElement("div",null,Pe.default.createElement("p",{className:`text-lg font-medium ${v}`},I),Pe.default.createElement("p",{className:`text-xs ${h}`},M," Nothing under .github/ is ever published.")),Pe.default.createElement("button",{type:"button",onClick:y,className:k},"Close")),r&&Pe.default.createElement("p",{className:`text-sm ${h}`},"Reading the sandbox's changes\u2026"),n&&Pe.default.createElement("div",{className:A},n),t&&Pe.default.createElement(Pe.default.Fragment,null,d&&($J(N)||c)&&Pe.default.createElement("div",{className:"flex flex-wrap items-end gap-2"},Pe.default.createElement("label",{className:`flex-1 min-w-[16rem] text-xs space-y-1 ${h}`},Pe.default.createElement("span",null,"Only read paths matching"),Pe.default.createElement("input",{type:"text",value:l.allowlist,onChange:j=>u("allowlist",j.target.value),disabled:f||r,placeholder:"app/**, lib/*.rb",className:`${_} font-mono`})),Pe.default.createElement("button",{type:"button",onClick:d,disabled:f||r,className:`${k} disabled:opacity-50`},"Read again")),Pe.default.createElement("div",{className:"space-y-1"},Pe.default.createElement("p",{className:`text-xs font-medium uppercase tracking-wide ${h}`},"Files \xB7 ",zJ(N,i)),N.length===0&&Pe.default.createElement("p",{className:`text-sm ${h}`},"The sandbox has no changes."),Pe.default.createElement("ul",{className:"space-y-1"},N.map(j=>Pe.default.createElement("li",{key:j.path,className:"flex items-center gap-2 text-sm"},Pe.default.createElement("input",{type:"checkbox","aria-label":`Publish ${j.path}`,checked:!j.refusal&&i.has(j.path),disabled:!!j.refusal||f,onChange:()=>s(j.path)}),Pe.default.createElement("span",{className:`w-4 text-xs font-mono ${h}`},BJ(j)),Pe.default.createElement("span",{className:`font-mono truncate ${j.refusal?h:v}`},j.path),j.size!=null&&j.status!=="deleted"&&Pe.default.createElement("span",{className:`shrink-0 text-xs ${h}`},SD(j.size)),j.refusal&&Pe.default.createElement("span",{className:`shrink-0 text-xs ${C?"text-amber-300":"text-amber-700"}`},j.refusal_message))))),P.length>0&&Pe.default.createElement("p",{className:`text-xs ${C?"text-amber-300":"text-amber-700"}`},"Not ticked, so returned to how they are in the checkout commit: ",Pe.default.createElement("span",{className:"font-mono"},P.join(", "))),L.length>0&&Pe.default.createElement("div",{className:"space-y-2"},Pe.default.createElement("p",{className:`text-xs font-medium uppercase tracking-wide ${h}`},"What will be published"),L.map(j=>Pe.default.createElement(a_e,{key:j.path,file:j,classes:g}))),!B&&Pe.default.createElement("label",{className:`block text-xs space-y-1 ${h}`},Pe.default.createElement("span",null,"Branch"),Pe.default.createElement("input",{type:"text",value:l.branch,onChange:j=>u("branch",j.target.value),disabled:K||f,maxLength:200,className:`${_} font-mono`})),K?Pe.default.createElement("label",{className:`block text-xs space-y-1 ${h}`},Pe.default.createElement("span",null,"Commit message"),Pe.default.createElement("input",{type:"text",value:l.message,onChange:j=>u("message",j.target.value),disabled:f,className:_})):Pe.default.createElement("label",{className:`block text-xs space-y-1 ${h}`},Pe.default.createElement("span",null,"Title"),Pe.default.createElement("input",{type:"text",value:l.title,onChange:j=>u("title",j.target.value),disabled:f,maxLength:256,className:_})),!B&&!K&&Pe.default.createElement("label",{className:`block text-xs space-y-1 ${h}`},Pe.default.createElement("span",null,"Description"),Pe.default.createElement("textarea",{value:l.body,onChange:j=>u("body",j.target.value),disabled:f,rows:4,className:_})),Pe.default.createElement("div",{className:"flex flex-wrap items-center justify-between gap-3"},Pe.default.createElement("p",{className:`text-xs ${h}`},!J&&qJ(o?.refusal||"Publishing is not available for this sandbox"),J&&T),Pe.default.createElement("div",{className:"flex items-center gap-3"},L.length>0&&Pe.default.createElement("a",{href:Re((b||((j,O)=>UJ(e.session_id,j,O)))(L.map(j=>j.path),K?l.message:l.title)),className:`text-sm ${S}`},"Download patch"),Pe.default.createElement("button",{type:"button",onClick:y,className:k},"Cancel"),!B&&Pe.default.createElement("button",{type:"button",onClick:m,disabled:!!T||f,className:w},f?"Publishing\u2026":I))))))}function a_e({file:e,classes:t}){let{muted:r,border:n,darkMode:o,surface:a}=t,i=(0,Pe.useMemo)(()=>u0(e.diff),[e.diff]);return Pe.default.createElement("div",{className:`rounded border ${n}`},Pe.default.createElement("p",{className:`px-2 py-1 text-xs font-mono border-b ${n} ${r}`},e.path),e.binary?Pe.default.createElement("p",{className:`px-2 py-1 text-xs ${r}`},"Binary file, ",SD(e.size),": published as it is in the sandbox."):Pe.default.createElement("pre",{className:"max-h-72 overflow-auto p-2 text-xs font-mono",style:a},i.map((s,l)=>{let u=HJ[s.kind]||HJ.context;return Pe.default.createElement("div",{key:l,className:o?u.dark:u.light},s.text||" ")})))}var i_e=(e,t)=>e?.kind===t?.kind&&(t?.kind==="instruction"?e?.quote===t?.quote:e?.fault===t?.fault)&&[...e?.scenario_keys||[]].sort().join("\0")===[...t?.scenario_keys||[]].sort().join("\0")&&(!(t?.models||[]).length||[...e?.models||[]].sort().join("\0")===[...t.models].sort().join("\0")),$2=new Map,s_e=e=>($2.has(e)||$2.set(e,(async()=>{let t=await fetch(e),r=await t.json().catch(()=>({}));if(!t.ok)throw new Error(r.error||"Could not load the fix workspace.");return r})().finally(()=>$2.delete(e))),$2.get(e));function _D({item:e,evaluation:t,run:r}){let[n,o]=(0,At.useState)(!1),[a,i]=(0,At.useState)(null),[s,l]=(0,At.useState)(""),[u,c]=(0,At.useState)(null),[d,p]=(0,At.useState)(!1),[f,m]=(0,At.useState)(null),y=`/api/evaluations/${t?.id}/runs/${r?.id}/fixes`,b=(0,At.useCallback)(async()=>{let _=await s_e(y);return i(_),l(A=>A||_.sandboxes?.find(C=>C.status==="ready")?.session_id||""),_},[y]);if((0,At.useEffect)(()=>{if(!t?.id||!r?.id)return;let _=!1,A,C=async()=>{try{await b()}catch(N){_||c(N.message)}!_&&n&&(A=setTimeout(C,2500))};return C(),()=>{_=!0,clearTimeout(A)}},[b,n,t?.id,r?.id]),!t?.id||!r?.id||!["fault","instruction"].includes(e.kind))return null;let g=(a?.code_sessions||[]).filter(_=>i_e(_.fix_item,e));if(!n&&g.length===0&&(!a?.project||!a?.supported))return null;let h=g.find(_=>_.id===f)||g[0],v=a?.sandboxes?.find(_=>_.session_id===(h?.sandbox_session_id||s)),x=h&&(["queued","running"].includes(h.status)||h.status==="succeeded"&&h.diff&&!h.verification?.error&&!["complete","failed"].includes(h.verification?.status)),S=a?.auth_mode!=="sandbox_login"||v?.claude_login?.credential_mode,k=async(_=null)=>{if(!(!v||d||x)){p(!0),c(null);try{let A=await fetch(`/api/sandboxes/${encodeURIComponent(v.session_id)}/code_sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({evaluation_run_id:r.id,fix_item:{kind:e.kind,fault:e.fault,quote:e.quote,scenario_keys:e.scenario_keys,models:e.models},previous_code_session_id:_?.id})}),C=await A.json();if(!A.ok)throw new Error(C.error||"Could not start this fix.");m(C.code_session.id),await b()}catch(A){c(A.message)}finally{p(!1)}}},w=h?h.verification?.status==="complete"?3:h.status==="succeeded"?2:1:0;return At.default.createElement(At.default.Fragment,null,At.default.createElement(ce,{size:"sm",variant:"primary",onClick:()=>o(!0),testId:"implement-fix"},h?"Review implementation":"Implement with Claude Code"),h?.verification?.status==="complete"&&At.default.createElement("span",{style:{fontSize:11,color:"var(--color-text-muted)"}},h.verification.counts.fixed||0," fixed \xB7 ",h.verification.counts.regressed||0," regressed"),n&&At.default.createElement(DI,{title:"Implement evaluation fix",onClose:()=>o(!1)},At.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap"}},["Connect","Implement","Verify","Draft PR"].map((_,A)=>At.default.createElement(ke,{key:_,tone:A===w?"accent":A_.status==="ready")&&At.default.createElement("label",{style:{fontSize:12,fontWeight:600}},"Checkout sandbox",At.default.createElement("select",{"aria-label":"Checkout sandbox",style:{...II,marginTop:8},value:s,onChange:_=>l(_.target.value)},At.default.createElement("option",{value:""},"Choose a sandbox"),a.sandboxes.filter(_=>_.status==="ready").map(_=>At.default.createElement("option",{key:_.session_id,value:_.session_id},_.repository," \xB7 ",_.repository_ref," \xB7 ",_.session_id.slice(0,8))))),a&&!v&&At.default.createElement("div",{style:g0},At.default.createElement("p",{style:{fontSize:13,marginTop:0}},"Start a checkout sandbox for this evaluation\u2019s project, then return here to implement the fix."),At.default.createElement("a",{href:Re(a.project?`/projects/${a.project.id}`:"/projects")},"Open ",a.project?.name||"Projects"," \u2192"),At.default.createElement(ce,{size:"sm",onClick:()=>b().catch(_=>c(_.message)),style:{marginLeft:12}},"Check again")),v&&a?.auth_mode==="sandbox_login"&&!x&&At.default.createElement(rf,{sandbox:v,onConnected:b,onChange:b}),v&&At.default.createElement("p",{style:{margin:0,fontSize:12,color:"var(--color-text-secondary)"}},"This session will use ",At.default.createElement("strong",null,v.claude_login?.credential_mode==="sandbox_login"?"your Claude subscription":a?.auth_mode==="local_login"?"this machine\u2019s Claude login":S?"the account\u2019s Anthropic API key":"your sandbox login after you connect"),". Verification uses the agent\u2019s own provider credentials."),!h&&At.default.createElement(ce,{variant:"primary",disabled:!v||!S||d||!!a?.refusal||!a?.supported,onClick:()=>k()},d?"Starting\u2026":"Implement this fix"),h&&At.default.createElement(At.default.Fragment,null,At.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"}},At.default.createElement(ke,{tone:h.status==="failed"?"error":"info"},"Claude Code \xB7 ",h.status),At.default.createElement("span",{style:{fontSize:11,color:"var(--color-text-muted)"}},"Session #",h.id)),["queued","running"].includes(h.status)&&At.default.createElement(ce,{size:"sm",onClick:async()=>{try{if(!(await fetch(`/api/sandboxes/${encodeURIComponent(v.session_id)}/code_sessions/${h.id}/cancel`,{method:"POST"})).ok)throw new Error("Could not cancel this session.");await b()}catch(_){c(_.message)}}},"Cancel session"),h.result&&At.default.createElement("p",{style:{fontSize:13,lineHeight:"20px",whiteSpace:"pre-wrap"}},h.result),h.error_message&&At.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)"}},h.error_message),h.diff&&At.default.createElement("details",null,At.default.createElement("summary",{style:{cursor:"pointer",fontSize:13}},"Review code changes"),At.default.createElement("pre",{style:{...g0,maxHeight:240,overflow:"auto",fontSize:11}},h.diff)),At.default.createElement(h0,{session:h,evaluationId:t.id,sandboxId:v?.session_id,onRetry:()=>k(h)}),h.verification?.status==="complete"&&v&&At.default.createElement(H0,{sandbox:v,codeSession:h})),u&&At.default.createElement("p",{role:"alert",style:{color:"var(--color-error-text)",fontSize:13}},u)))}var CD=6,l_e=600,Eh=12,Nh=e=>String(e||"").replace(/_/g," "),hs=e=>String(e??"").trim(),q0=e=>[...new Set(e.filter(Boolean))],AD=e=>hs(e).split(` `).map(t=>`> ${t}`).join(` -`),CD=(e,t=Qke)=>{let r=gs(e);return r.length>t?`${r.slice(0,t-1)}\u2026`:r},Gs=e=>`\`${String(e).replace(/`/g,"\u02CB")}\``,$2=e=>String(e||"").replace(/\/+$/,""),LJ=e=>e?e.kind==="instruction"?"Add to the instructions":e.kind==="fault"?`Fix: ${Nh(e.fault)}`:`Fix: ${Nh(e.label||e.kind)}`:"Fix",zJ=(e,t)=>{let r=q0(e?.models||[]);return r.length?r:q0(C0(t).map(n=>typeof n=="string"?n:n?.label))},Rke=e=>!e||typeof e!="object"?[]:Object.entries(e).flatMap(([t,r])=>{let n=Array.isArray(r)?r:r==null||r===""?[]:[r];return n.length?[`${Nh(t)}: ${n.map(o=>typeof o=="object"?JSON.stringify(o):String(o)).join(", ")}`]:[]}),e_e=e=>!Array.isArray(e)||!e.length?"none":e.map(t=>{if(typeof t=="string")return t;let r=t?.name||t?.tool||"tool",n=t?.error?` (error: ${CD(t.detail||t.error,80)})`:"";return`${r}${n}`}).join(", "),t_e=(e,t=[],{labelFor:r=n=>n?.model}={})=>{let n=new Set(e?.scenario_keys||[]),o=new Set(e?.models||[]),a=t.filter(l=>l&&l.status&&l.status!=="pending"&&n.has(l.scenario_key)),i=o.size?a.filter(l=>o.has(r(l))):a,s=i.filter(l=>e?.kind==="instruction"?gs(l.diagnosis?.judge?.instruction_change)===gs(e.quote):e?.kind==="fault"?l.fault===e.fault:!0);return s.length?s:i},r_e=(e,t,r)=>{let n=(t||[]).find(a=>a?.key===e);if(n)return n;let o=r.find(a=>a?.scenario_key===e&&(a.prompt||a.scenario));return o?{...o.scenario||{},prompt:o.scenario?.prompt||o.prompt}:null},n_e=(e,t,r)=>{let n=t[0],o=n?.prompt||n?.scenario?.prompt||r?.prompt,a=n?.scenario?.expectations||r?.expectations,i=n?.scenario?.notes||r?.notes,s=[`### ${Gs(e)}`];o&&s.push("","Prompt:",_D(o));let l=Rke(a);return l.length&&s.push("",`Expects: ${l.join("; ")}`),i&&s.push("",`Notes: ${gs(i)}`),t.forEach(u=>{let c=[u.provider,u.model].filter(Boolean).join("/")||"model",d=u.score==null?"":` \xB7 score ${Number(u.score).toFixed(2)}`,p=u.fault||(u.status==="errored"?"run_error":null);s.push("",`**${c}** \xB7 ${u.status}${d}${p?` \xB7 ${Nh(p)}`:""}`),s.push(`- Tools called: ${e_e(u.tool_calls)}`);let f=u.diagnosis||{},m=[f.summary,f.recommendation||u.recommendation].map(gs).filter(Boolean).join(" ");if(m&&s.push(`- Diagnosis: ${m}`),f.judge?.suggested_tool?.name){let y=f.judge.suggested_tool;s.push(`- Suggested tool: ${Gs(y.name)}${y.description?` (${gs(y.description)})`:""}`)}u.error_message&&s.push(`- Error: ${CD(u.error_message,200)}`),u.id!=null&&s.push(`- Result id: ${u.id}${u.agent_run_id?` \xB7 agent run ${u.agent_run_id}`:""}`),u.output?s.push("","Answer:",_D(CD(u.output))):s.push("- Answer: not retained for this run")}),s},BJ=({evaluation:e,run:t,runNumber:r,agentName:n,dashboardUrl:o})=>{let a=e?.agent||{},i=n||a.name||"the agent",s=$2(o),l=[],u=t?.id!=null?`run ${r!=null?`#${r} `:""}(id ${t.id})`:null;return l.push(`Agent **${i}**${a.id!=null?` (id ${a.id}${a.slug?`, slug ${Gs(a.slug)}`:""})`:""}.`),e?.name&&l.push(`Evaluation **${e.name}**${e.id!=null?` (id ${e.id})`:""}${u?`, ${u}`:""}.`),s&&e?.id!=null&&l.push(`Dashboard: ${s}/evaluations/${e.id}${t?.id!=null?`/runs/${t.id}`:""}`),l},FJ=({evaluation:e,run:t,runNumber:r,keys:n=[],models:o=[],dashboardUrl:a})=>{let i=$2(a),s=e?.id,l=[`evaluation_id: ${s??""}`];n.length&&l.push(`keys: [${n.map(c=>`"${c}"`).join(", ")}]`),o.length&&l.push(`models: [${o.map(c=>`"${c}"`).join(", ")}]`);let u=["## Verify","","1. Make the change in the agent, not in the scenarios or their expectations.",`2. Re-run with the dashboard's MCP tool ${Gs("evaluations_run")} (${l.join(", ")})${i?`, served at ${i}/mcp`:""}${s!=null?`, or POST ${i||""}/api/evaluations/${s}/run with the same ${n.length?"keys[] and ":""}models[]`:""}.`,`3. Poll ${Gs("evaluation_runs_get")} until the run is complete${n.length?": every scenario above should pass with no fault":" and nothing is skipped or below the pass mark"}.`];return t?.id!=null&&u.push(`4. ${Gs("evaluation_runs_compare")} against run ${r!=null?`#${r} `:""}(id ${t.id}) should list them as fixed and nothing as regressed.`),u.push("","When done, say what you changed and which run proved it."),u},UJ=({item:e,evaluation:t=null,run:r=null,runNumber:n=null,results:o=[],scenarios:a=[],agentName:i=null,dashboardUrl:s="",labelFor:l,target:u="dashboard"}={})=>{if(!e)return"";u==="sandbox"&&(s="");let c=$2(s),d=q0(e.scenario_keys||[]),p=zJ(e,r),f=t_e(e,o,{labelFor:l}),m=new Map;f.forEach(x=>m.set(x.scenario_key,[...m.get(x.scenario_key)||[],x]));let y=[`# ${LJ(e)}`,"",...BJ({evaluation:t,run:r,runNumber:n,agentName:i,dashboardUrl:s}),""];y.push("## What went wrong","");let b=e.count||d.length,g=`${Nh(e.fault)} on ${d.length} scenario${d.length===1?"":"s"}${p.length&&(e.models||[]).length?` under ${p.join(", ")}`:""}`;if(y.push(`${b>1?`${b} results: `:""}${g}.`),e.recommendation&&y.push("",gs(e.recommendation)),e.quote&&y.push("","The judge proposes adding this to the instructions:","",_D(e.quote)),e.note&&y.push("",gs(e.note)),q0((e.tools||[]).map(x=>typeof x=="string"?x:x?.name)).length&&(y.push("",`## ${e.tools_label?e.tools_label[0].toUpperCase()+e.tools_label.slice(1):"Tools"}`,""),(e.tools||[]).forEach(x=>{let S=typeof x=="string"?x:x?.name;if(!S)return;let k=typeof x=="object"?x.note:null,w=typeof x=="object"?x.server:null,_=w?` \xB7 served by ${w.name||w.key}${w.status?` (${w.status})`:""}`:"";y.push(`- ${Gs(S)}${k&&k!==w?.name?` \u2014 ${gs(k)}`:""}${_}`)}),e.server)){let x=e.server.status==="enabled";y.push("",`MCP server **${e.server.name||e.server.key}** (${Gs(e.server.key)}) is ${x?"enabled":`${e.server.status||"not enabled"}`} for the agent${c?`: ${c}/mcp/${e.server.key}`:""}.`)}y.push("",`## Scenario${d.length===1?"":"s"} (${d.length})`),d.slice(0,kD).forEach(x=>{y.push("",...n_e(x,m.get(x)||[],r_e(x,a,o)))}),d.length>kD&&y.push("",`Also failing: ${d.slice(kD).map(Gs).join(", ")}.`),y.push("","## Where to look","");let v=t?.agent?.id;return y.push(`- The agent's instructions and action prompts${c&&v!=null?`: ${c}/agents/${v}/edit`:""}.`),y.push(`- Its tools and MCP servers${c?`: ${c}/tools`:""}.`),e.action?.label&&y.push(`- On the dashboard: **${e.action.label}**${e.action.hint?` (${e.action.hint})`:""}${c&&e.action.path?` ${c}${e.action.path.startsWith("/")?"":"/"}${e.action.path}`:""}.`),u==="sandbox"?y.push("","- Find the agent in app/agents/ and its prompt views in app/views/agents/.","","## Verify","","1. Change the agent, not the scenarios or their expectations.","2. Run the relevant tests in this checkout. Do not commit or push.",`3. The dashboard will re-run these scenarios when you finish: ${d.join(", ")}; models: ${p.join(", ")}.`,"","Summarize your changes. Do not read or copy the sandbox\u2019s Claude credentials."):y.push("",...FJ({evaluation:t,run:r,runNumber:n,keys:d,models:p,dashboardUrl:s})),`${y.join(` +`),ED=(e,t=l_e)=>{let r=hs(e);return r.length>t?`${r.slice(0,t-1)}\u2026`:r},Gs=e=>`\`${String(e).replace(/`/g,"\u02CB")}\``,L2=e=>String(e||"").replace(/\/+$/,""),VJ=e=>e?e.kind==="instruction"?"Add to the instructions":e.kind==="fault"?`Fix: ${Nh(e.fault)}`:`Fix: ${Nh(e.label||e.kind)}`:"Fix",GJ=(e,t)=>{let r=q0(e?.models||[]);return r.length?r:q0(C0(t).map(n=>typeof n=="string"?n:n?.label))},u_e=e=>!e||typeof e!="object"?[]:Object.entries(e).flatMap(([t,r])=>{let n=Array.isArray(r)?r:r==null||r===""?[]:[r];return n.length?[`${Nh(t)}: ${n.map(o=>typeof o=="object"?JSON.stringify(o):String(o)).join(", ")}`]:[]}),c_e=e=>!Array.isArray(e)||!e.length?"none":e.map(t=>{if(typeof t=="string")return t;let r=t?.name||t?.tool||"tool",n=t?.error?` (error: ${ED(t.detail||t.error,80)})`:"";return`${r}${n}`}).join(", "),d_e=(e,t=[],{labelFor:r=n=>n?.model}={})=>{let n=new Set(e?.scenario_keys||[]),o=new Set(e?.models||[]),a=t.filter(l=>l&&l.status&&l.status!=="pending"&&n.has(l.scenario_key)),i=o.size?a.filter(l=>o.has(r(l))):a,s=i.filter(l=>e?.kind==="instruction"?hs(l.diagnosis?.judge?.instruction_change)===hs(e.quote):e?.kind==="fault"?l.fault===e.fault:!0);return s.length?s:i},p_e=(e,t,r)=>{let n=(t||[]).find(a=>a?.key===e);if(n)return n;let o=r.find(a=>a?.scenario_key===e&&(a.prompt||a.scenario));return o?{...o.scenario||{},prompt:o.scenario?.prompt||o.prompt}:null},f_e=(e,t,r)=>{let n=t[0],o=n?.prompt||n?.scenario?.prompt||r?.prompt,a=n?.scenario?.expectations||r?.expectations,i=n?.scenario?.notes||r?.notes,s=[`### ${Gs(e)}`];o&&s.push("","Prompt:",AD(o));let l=u_e(a);return l.length&&s.push("",`Expects: ${l.join("; ")}`),i&&s.push("",`Notes: ${hs(i)}`),t.forEach(u=>{let c=[u.provider,u.model].filter(Boolean).join("/")||"model",d=u.score==null?"":` \xB7 score ${Number(u.score).toFixed(2)}`,p=u.fault||(u.status==="errored"?"run_error":null);s.push("",`**${c}** \xB7 ${u.status}${d}${p?` \xB7 ${Nh(p)}`:""}`),s.push(`- Tools called: ${c_e(u.tool_calls)}`);let f=u.diagnosis||{},m=[f.summary,f.recommendation||u.recommendation].map(hs).filter(Boolean).join(" ");if(m&&s.push(`- Diagnosis: ${m}`),f.judge?.suggested_tool?.name){let y=f.judge.suggested_tool;s.push(`- Suggested tool: ${Gs(y.name)}${y.description?` (${hs(y.description)})`:""}`)}u.error_message&&s.push(`- Error: ${ED(u.error_message,200)}`),u.id!=null&&s.push(`- Result id: ${u.id}${u.agent_run_id?` \xB7 agent run ${u.agent_run_id}`:""}`),u.output?s.push("","Answer:",AD(ED(u.output))):s.push("- Answer: not retained for this run")}),s},YJ=({evaluation:e,run:t,runNumber:r,agentName:n,dashboardUrl:o})=>{let a=e?.agent||{},i=n||a.name||"the agent",s=L2(o),l=[],u=t?.id!=null?`run ${r!=null?`#${r} `:""}(id ${t.id})`:null;return l.push(`Agent **${i}**${a.id!=null?` (id ${a.id}${a.slug?`, slug ${Gs(a.slug)}`:""})`:""}.`),e?.name&&l.push(`Evaluation **${e.name}**${e.id!=null?` (id ${e.id})`:""}${u?`, ${u}`:""}.`),s&&e?.id!=null&&l.push(`Dashboard: ${s}/evaluations/${e.id}${t?.id!=null?`/runs/${t.id}`:""}`),l},XJ=({evaluation:e,run:t,runNumber:r,keys:n=[],models:o=[],dashboardUrl:a})=>{let i=L2(a),s=e?.id,l=[`evaluation_id: ${s??""}`];n.length&&l.push(`keys: [${n.map(c=>`"${c}"`).join(", ")}]`),o.length&&l.push(`models: [${o.map(c=>`"${c}"`).join(", ")}]`);let u=["## Verify","","1. Make the change in the agent, not in the scenarios or their expectations.",`2. Re-run with the dashboard's MCP tool ${Gs("evaluations_run")} (${l.join(", ")})${i?`, served at ${i}/mcp`:""}${s!=null?`, or POST ${i||""}/api/evaluations/${s}/run with the same ${n.length?"keys[] and ":""}models[]`:""}.`,`3. Poll ${Gs("evaluation_runs_get")} until the run is complete${n.length?": every scenario above should pass with no fault":" and nothing is skipped or below the pass mark"}.`];return t?.id!=null&&u.push(`4. ${Gs("evaluation_runs_compare")} against run ${r!=null?`#${r} `:""}(id ${t.id}) should list them as fixed and nothing as regressed.`),u.push("","When done, say what you changed and which run proved it."),u},ZJ=({item:e,evaluation:t=null,run:r=null,runNumber:n=null,results:o=[],scenarios:a=[],agentName:i=null,dashboardUrl:s="",labelFor:l,target:u="dashboard"}={})=>{if(!e)return"";u==="sandbox"&&(s="");let c=L2(s),d=q0(e.scenario_keys||[]),p=GJ(e,r),f=d_e(e,o,{labelFor:l}),m=new Map;f.forEach(x=>m.set(x.scenario_key,[...m.get(x.scenario_key)||[],x]));let y=[`# ${VJ(e)}`,"",...YJ({evaluation:t,run:r,runNumber:n,agentName:i,dashboardUrl:s}),""];y.push("## What went wrong","");let b=e.count||d.length,g=`${Nh(e.fault)} on ${d.length} scenario${d.length===1?"":"s"}${p.length&&(e.models||[]).length?` under ${p.join(", ")}`:""}`;if(y.push(`${b>1?`${b} results: `:""}${g}.`),e.recommendation&&y.push("",hs(e.recommendation)),e.quote&&y.push("","The judge proposes adding this to the instructions:","",AD(e.quote)),e.note&&y.push("",hs(e.note)),q0((e.tools||[]).map(x=>typeof x=="string"?x:x?.name)).length&&(y.push("",`## ${e.tools_label?e.tools_label[0].toUpperCase()+e.tools_label.slice(1):"Tools"}`,""),(e.tools||[]).forEach(x=>{let S=typeof x=="string"?x:x?.name;if(!S)return;let k=typeof x=="object"?x.note:null,w=typeof x=="object"?x.server:null,_=w?` \xB7 served by ${w.name||w.key}${w.status?` (${w.status})`:""}`:"";y.push(`- ${Gs(S)}${k&&k!==w?.name?` \u2014 ${hs(k)}`:""}${_}`)}),e.server)){let x=e.server.status==="enabled";y.push("",`MCP server **${e.server.name||e.server.key}** (${Gs(e.server.key)}) is ${x?"enabled":`${e.server.status||"not enabled"}`} for the agent${c?`: ${c}/mcp/${e.server.key}`:""}.`)}y.push("",`## Scenario${d.length===1?"":"s"} (${d.length})`),d.slice(0,CD).forEach(x=>{y.push("",...f_e(x,m.get(x)||[],p_e(x,a,o)))}),d.length>CD&&y.push("",`Also failing: ${d.slice(CD).map(Gs).join(", ")}.`),y.push("","## Where to look","");let v=t?.agent?.id;return y.push(`- The agent's instructions and action prompts${c&&v!=null?`: ${c}/agents/${v}/edit`:""}.`),y.push(`- Its tools and MCP servers${c?`: ${c}/tools`:""}.`),e.action?.label&&y.push(`- On the dashboard: **${e.action.label}**${e.action.hint?` (${e.action.hint})`:""}${c&&e.action.path?` ${c}${e.action.path.startsWith("/")?"":"/"}${e.action.path}`:""}.`),u==="sandbox"?y.push("","- Find the agent in app/agents/ and its prompt views in app/views/agents/.","","## Verify","","1. Change the agent, not the scenarios or their expectations.","2. Run the relevant tests in this checkout. Do not commit or push.",`3. The dashboard will re-run these scenarios when you finish: ${d.join(", ")}; models: ${p.join(", ")}.`,"","Summarize your changes. Do not read or copy the sandbox\u2019s Claude credentials."):y.push("",...XJ({evaluation:t,run:r,runNumber:n,keys:d,models:p,dashboardUrl:s})),`${y.join(` `)} -`},WJ=({item:e,evaluation:t=null,run:r=null,runNumber:n=null,agentName:o=null,dashboardUrl:a=""}={})=>{if(!e)return"";let i=[`# ${LJ(e)}`,"",...BJ({evaluation:t,run:r,runNumber:n,agentName:o,dashboardUrl:a}),""];i.push("## What went wrong",""),i.push(`${e.label||Nh(e.kind)}${e.scope?` \xB7 ${e.scope}`:""}.`),e.text&&i.push("",gs(e.text)),Array.isArray(e.chips)&&e.chips.length&&i.push("",`${e.chipsLabel?e.chipsLabel[0].toUpperCase()+e.chipsLabel.slice(1):"Items"}: ${e.chips.slice(0,Eh).map(Gs).join(", ")}${e.chips.length>Eh?` and ${e.chips.length-Eh} more`:""}.`),Array.isArray(e.details)&&e.details.length&&(i.push(""),e.details.slice(0,Eh).forEach(d=>i.push(`- ${gs(d)}`)),e.details.length>Eh&&i.push(`- and ${e.details.length-Eh} more`));let s=(t?.criteria||[]).filter(d=>(e.chips||[]).includes(d?.key));s.length&&(i.push("","## Criteria",""),s.forEach(d=>{i.push(`- ${Gs(d.key)} (${d.type})${d.config&&Object.keys(d.config).length?`: ${JSON.stringify(d.config)}`:""}`)}));let l=$2(a);i.push("","## Where to look","");let u=t?.agent?.id;i.push(`- The agent's instructions, model config and tools${l&&u!=null?`: ${l}/agents/${u}/edit`:""}.`),e.action?.label&&i.push(`- On the dashboard: **${e.action.label}**${e.action.hint?` (${e.action.hint})`:""}${l&&e.action.path?` ${l}${e.action.path.startsWith("/")?"":"/"}${e.action.path}`:""}.`);let c=q0(e.kind==="missing"?e.chips||[]:zJ({},r));return i.push("",...FJ({evaluation:t,run:r,runNumber:n,keys:[],models:c,dashboardUrl:a})),`${i.join(` +`},JJ=({item:e,evaluation:t=null,run:r=null,runNumber:n=null,agentName:o=null,dashboardUrl:a=""}={})=>{if(!e)return"";let i=[`# ${VJ(e)}`,"",...YJ({evaluation:t,run:r,runNumber:n,agentName:o,dashboardUrl:a}),""];i.push("## What went wrong",""),i.push(`${e.label||Nh(e.kind)}${e.scope?` \xB7 ${e.scope}`:""}.`),e.text&&i.push("",hs(e.text)),Array.isArray(e.chips)&&e.chips.length&&i.push("",`${e.chipsLabel?e.chipsLabel[0].toUpperCase()+e.chipsLabel.slice(1):"Items"}: ${e.chips.slice(0,Eh).map(Gs).join(", ")}${e.chips.length>Eh?` and ${e.chips.length-Eh} more`:""}.`),Array.isArray(e.details)&&e.details.length&&(i.push(""),e.details.slice(0,Eh).forEach(d=>i.push(`- ${hs(d)}`)),e.details.length>Eh&&i.push(`- and ${e.details.length-Eh} more`));let s=(t?.criteria||[]).filter(d=>(e.chips||[]).includes(d?.key));s.length&&(i.push("","## Criteria",""),s.forEach(d=>{i.push(`- ${Gs(d.key)} (${d.type})${d.config&&Object.keys(d.config).length?`: ${JSON.stringify(d.config)}`:""}`)}));let l=L2(a);i.push("","## Where to look","");let u=t?.agent?.id;i.push(`- The agent's instructions, model config and tools${l&&u!=null?`: ${l}/agents/${u}/edit`:""}.`),e.action?.label&&i.push(`- On the dashboard: **${e.action.label}**${e.action.hint?` (${e.action.hint})`:""}${l&&e.action.path?` ${l}${e.action.path.startsWith("/")?"":"/"}${e.action.path}`:""}.`);let c=q0(e.kind==="missing"?e.chips||[]:GJ({},r));return i.push("",...XJ({evaluation:t,run:r,runNumber:n,keys:[],models:c,dashboardUrl:a})),`${i.join(` `)} -`};var fd=e=>[...new Set(e)],ND=(e,t)=>{let r=e?.expectations?.[t];return Array.isArray(r)?r:r==null||r===""?[]:[r]},Th=e=>String(e||"").replace(/_/g," "),Al=e=>e?.status==="passed",El=e=>!!e&&e.status!=="pending",md=e=>!!e&&["pending","running"].includes(e.status);function K0(e,t=[],r=null){if(Array.isArray(e?.models)&&e.models.length)return e.models;let n=Object.keys(e?.scores?._models||{});if(n.length)return n;let o=AZ(e);if(o.length)return o;let a=fd(t.map(s=>zu(e,s)));if(a.length)return a;let i=r?.compare_models||[];return i.length?i:e?["agent's model"]:[]}function zu(e,t){let n=(lf(e).models||[]).filter(i=>i&&typeof i=="object").find(i=>i.model===t.model&&(i.provider||"")===(t.provider||""));if(n?.label)return n.label;let o=e?.scores?._models||{};if(o[t.model])return t.model;let a=[t.provider,t.model].filter(Boolean).join("/");return o[a]?a:t.model}function OD(e,t){let r=e?.scores?._models?.[t],n=(lf(e).models||[]).find(o=>o&&typeof o=="object"&&o.label===t);return bn(t,r?.provider||n?.provider||"")}function Oh(e,t=[],r=[]){let n=P0(e,r);if(n.length)return n.length;let o=Object.values(e?.scores?._models||{});return o.length?Math.max(...o.map(a=>a.scenarios||0)):e?.samples_evaluated&&t.length?Math.round(e.samples_evaluated/t.length):0}function KJ(e,t,r=[],n=0){let o=e?.scores?._models?.[t];if(o&&o.scenarios!=null){let i=o.passed||0,s=o.scenarios||0;return{passed:i,failed:Math.max(s-i,0),total:s}}let a=r.filter(i=>zu(e,i)===t);return{passed:a.filter(Al).length,failed:a.filter(i=>El(i)&&!Al(i)).length,total:n||a.length}}function VJ(e,t=[],r=null,n=[]){let o=K0(e,t,r),a=Oh(e,o,n);return o.map(i=>{let s={label:i,short:bn(i).short};return e?.scores?._models?.[i]?.scenarios!=null||md(e)||t.some(u=>zu(e,u)===i)?{...s,...KJ(e,i,t,a)}:{...s,passed:null,failed:null,total:null}})}function GJ(e,t=[],r=[],n=[]){if(e?.status==="complete"&&e.samples_evaluated!=null)return{passed:e.samples_passed||0,total:e.samples_evaluated||0};let o=Oh(e,r,n)*Math.max(r.length,1);return{passed:t.filter(Al).length,total:o}}function YJ(e,t=[]){let r=[],n={};return(Array.isArray(e)?e:[]).forEach(o=>{let a=typeof o=="string"?o:String(o?.name||"");a&&(n[a]||(n[a]={name:a,count:0,errored:!1},r.push(a)),n[a].count+=1,o&&typeof o=="object"&&o.error&&(n[a].errored=!0))}),r.map(o=>{let a=n[o],i=t.includes(o);return{...a,hit:i,label:`${o}${a.errored?" \u2717":""}${a.count>1?` \xD7${a.count}`:""}`,color:a.errored?"var(--color-error)":i?"var(--color-success-text)":"var(--color-text-muted)",weight:a.errored||i?600:400}})}var o_e=(e,t)=>{let r=String(e||"").trim();return r.length>t?`${r.slice(0,t-1)}\u2026`:r},AD=e=>e?.diagnosis?.judge?.instruction_change;function XJ(e,t=[]){let r=e?.scores?._recommendations||[];if(Array.isArray(e?.fix_items)){let a=r.length>0||t.some(AD);if(e.fix_items.length>0||!a)return e.fix_items}let n=r.map(a=>a_e(a,t)),o=new Set;return t.forEach(a=>{let i=AD(a);if(!i||o.has(i))return;o.add(i);let s=t.filter(l=>AD(l)===i);n.push({kind:"instruction",fault:"instruction change",count:s.length,scenario_keys:fd(s.map(l=>l.scenario_key)),models:fd(s.map(l=>zu(e,l))),recommendation:a.diagnosis.judge.recommendation||a.recommendation||"",quote:i,tools_label:null,tools:[],server:null,note:null,action:{label:"Add to instructions",hint:"Agent -> Instructions",path:null}})}),n}function a_e(e,t){let r=e.fault,n=t.filter(u=>u.fault===r),o=(e.suggested_tools||[]).map(u=>typeof u=="string"?u:u?.name).filter(Boolean),a=null,i=[],s=null,l=null;if(r==="expected_tool_not_called"){a="missing tools";let u=fd(n.flatMap(d=>d.diagnosis?.evidence?.unavailable||[]));u.length||(u=fd(n.flatMap(d=>{let p=d.diagnosis?.evidence||{};return(p.expected||[]).filter(f=>!(p.called||[]).includes(f))}))),i=u.map(d=>({name:d,note:null,server:null}));let c=n.filter(d=>d.diagnosis?.summary&&(d.diagnosis?.evidence?.unavailable||[]).length===0);c.length&&c.length`${d.scenario_key} is the exception: ${d.diagnosis.summary} ${d.diagnosis.recommendation||""}`.trim()).join(" "))}else if(r==="tool_error"){a="failing tools";let u={};n.forEach(c=>(c.tool_calls||[]).forEach(d=>{!d||typeof d!="object"||!d.error||!d.name||u[d.name]||(u[d.name]={name:d.name,note:o_e(d.detail,60)||null,server:null})})),i=Object.values(u),l={label:"Open failing tools",hint:"Tools ->",path:"/tools"}}else a=o.length?"suggested tools":null,i=fd(o).map(u=>({name:u,note:null,server:null}));return!l&&a==="suggested tools"&&i.length&&(l={label:"Open suggested tools",hint:"Tools ->",path:"/tools"}),{kind:"fault",fault:r,count:e.count||n.length,scenario_keys:e.scenario_keys||fd(n.map(u=>u.scenario_key)),models:e.models||[],recommendation:e.recommendation||"",quote:null,tools_label:a,tools:i,server:null,note:s,action:l}}var PD=e=>e?.cost_source==="estimated",ZJ=e=>{let t=e?.judge_usage;return t?t.estimated??(t.source!=null&&t.source!=="reported"):!1},L2=e=>{if(!e)return null;let t=e.judge_usage?.cost??null;if(e.cost==null&&t==null)return null;let r=[Pr(e.cost,{estimated:PD(e)})];return t!=null&&r.push(`judge ${Pr(t,{estimated:ZJ(e)})}`),r.join(" \xB7 ")},JJ=e=>{if(!PD(e))return;let t=e.cost_rate||null;return Em({inputTokens:t?.input_tokens??e.input_tokens,outputTokens:t?.output_tokens??e.output_tokens,rate:t})},i_e=(e,t,r={})=>{let n=e?.costs?.scenarios?.[t];if(n&&typeof n=="object")return n.cost==null&&n.judge_cost==null?null:{cost:n.cost??null,judgeCost:n.judge_cost??null,total:n.total??null,estimated:!!n.estimated};let o=Object.values(r||{}).filter(El),a=o.map(u=>u.cost).filter(u=>u!=null),i=o.map(u=>u.judge_usage?.cost).filter(u=>u!=null);if(!a.length&&!i.length)return null;let s=a.length?a.reduce((u,c)=>u+Number(c),0):null,l=i.length?i.reduce((u,c)=>u+Number(c),0):null;return{cost:s,judgeCost:l,total:(s||0)+(l||0),estimated:o.some(u=>PD(u)||ZJ(u))||a.length>0&&a.length{let t=e.filter(Boolean);if(!t.length)return null;let r=t.filter(i=>i.cost!=null),n=t.filter(i=>i.judgeCost!=null),o=r.length?r.reduce((i,s)=>i+s.cost,0):null,a=n.length?n.reduce((i,s)=>i+s.judgeCost,0):null;return{cost:o,judgeCost:a,total:(o||0)+(a||0),estimated:t.some(i=>i.estimated)}};function QJ({entry:e,compact:t=!1,testId:r,tokens:n=null}){let o={display:"flex",flexDirection:"column",gap:1,minWidth:0,textAlign:"right"},a=n&&(n.input!=null||n.output!=null)?se.default.createElement("span",{"data-testid":r?`${r}-tokens`:void 0,title:"input\u2192output tokens across the models",style:{...Ur(10.5),whiteSpace:"nowrap"}},II(n.input,n.output)):null;if(!e)return se.default.createElement("span",{style:o,"data-testid":r},se.default.createElement("span",{style:Ur(12)},"\u2014"),a);if(t){let i=e.total??(e.cost!=null||e.judgeCost!=null?(e.cost||0)+(e.judgeCost||0):null),s=[];return e.cost!=null&&s.push(`agent ${Pr(e.cost,{estimated:e.estimated})}`),e.judgeCost!=null&&s.push(`judge ${Pr(e.judgeCost,{estimated:e.estimated})}`),se.default.createElement("span",{style:o,"data-testid":r},se.default.createElement("span",{title:s.join(" \xB7 ")||void 0,style:{fontFamily:U,fontSize:11,fontWeight:600,color:"var(--color-text-primary)",whiteSpace:"nowrap"}},Pr(i,{estimated:e.estimated})),a)}return se.default.createElement("span",{style:{...o,fontFamily:U,fontSize:11,color:"var(--color-text-secondary)"},"data-testid":r},se.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},Pr(e.cost,{estimated:e.estimated})),e.judgeCost!=null&&se.default.createElement("span",{style:{color:"var(--color-text-muted)",whiteSpace:"nowrap"}},`judge ${Pr(e.judgeCost,{estimated:e.estimated})}`),a)}var Ur=(e,t="var(--color-text-muted)",r={})=>({fontFamily:U,fontSize:e,color:t,...r});function RJ({calls:e,empty:t,style:r}){return se.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"2px 8px",fontFamily:U,fontSize:11,...r}},e.map(n=>se.default.createElement("span",{key:n.name,style:{color:n.color,fontWeight:n.weight}},n.label)),e.length===0&&se.default.createElement("span",{style:{color:"var(--color-text-muted)"}},t))}function eQ({run:e,columns:t,results:r=[],scenarioCount:n=0,judgedBy:o,verdict:a,evaluation:i=null,onJudgeChanged:s,markdownUrl:l=null}){let u=e?.scores?._models||{},c=Ni(e)?.judge?.estimated??!0;return se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10},"data-testid":"suite-models-panel"},se.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:10,flexWrap:"wrap"}},se.default.createElement(Ue,null,"Models"),se.default.createElement(xD,{evaluation:i,run:e,label:o,onChanged:s,testId:"suite-judge"}),se.default.createElement(_l,{url:m2(l,{part:"verdict"}),testId:"copy-verdict-markdown",title:"Copy the verdict and the model comparison as Markdown",style:{marginLeft:"auto"}})),t.length===0&&se.default.createElement(Jr,{style:{border:"1px solid var(--color-border-light)",borderRadius:10}},"[ ] no models scored yet"),t.length>1&&se.default.createElement(F0,{rows:x2(e,{results:r,scenarioCount:n,columns:t,labelFor:d=>zu(e,d)}),unit:"scenario",judgedBy:o,judgeEstimated:c}),t.length>1&&se.default.createElement(vD,{plot:bZ(e)}),t.length>0&&se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(260px, 1fr))",gap:12}},t.map(d=>{let{short:p,provider:f}=OD(e,d),m=u[d],{passed:y,total:b}=KJ(e,d,r,n),g=Object.entries(m?.faults||{}),h=yh(m,m?.scenarios),v=m&&g.length===0?{text:"[+] no faults",color:"var(--color-success-text)"}:!m&&md(e)?{text:"scoring\u2026"}:null;return se.default.createElement(z0,{key:d,label:d,short:p,provider:f,winner:a?.winner===d,passed:y,total:b,avgScore:m?.avg_score,latencyMs:m?.avg_duration_ms,p50Ms:m?.p50_duration_ms??null,p95Ms:m?.p95_duration_ms??null,inputTokens:m?.input_tokens,outputTokens:m?.output_tokens,cost:m?.cost,perInteraction:af(m?.cost,h),estimated:h2(m,m?.scenarios),judgeCost:m?.judge_cost,judgeCalls:m?.judge_calls||0,judgeEstimated:c,unit:"scenario",badges:g.map(([x,S])=>({tone:"error",text:`${Th(x)} \xD7${S}`})),note:v})})),a?.rationale&&se.default.createElement(je,{padding:"12px 16px",testId:"suite-verdict",style:{display:"flex",flexDirection:"column",gap:6}},se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},se.default.createElement(Ue,null,"Verdict"),a.judge&&se.default.createElement("span",{style:Ur(11)},`judged by ${a.judge}`)),se.default.createElement("div",{style:{fontSize:13,lineHeight:"19px",color:"var(--color-text-cell)",textWrap:"pretty"}},se.default.createElement("strong",{style:{color:"var(--color-text-primary)",fontFamily:U,fontSize:12}},a.winner),a.rationale?` \xB7 ${a.rationale}`:"")))}var l_e=(e,t)=>e==="tools"?["minmax(220px, 1.6fr)","130px",...Array(t).fill("minmax(160px, 1fr)"),"110px"].join(" "):["minmax(200px, 1.6fr)",...Array(t).fill("minmax(130px, 1fr)"),"80px","48px"].join(" "),TD={tools:10,steps:8},ED=[],u_e={},HJ=new Set,z2=e=>typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(String(e)):String(e).replace(/["\\]/g,"\\$&"),c_e=600,qJ=e=>typeof e=="number"?`${e}px`:e,d_e=e=>["INPUT","TEXTAREA","SELECT"].includes(e?.tagName);function p_e({result:e,expects:t,pending:r,compact:n=!1}){if(!e)return se.default.createElement("span",{style:{...Ur(12),fontWeight:600}},r?"\u2026":"\u2014");if(!El(e))return se.default.createElement("span",{style:{...Ur(12),fontWeight:600}},"\u2026");let o=Al(e),a=o?"var(--color-success)":"var(--color-error)",i=YJ(e.tool_calls,t);if(n){let s=e.fault?Th(e.fault):e.status==="errored"?"errored":null,l=L2(e),u=`${i.map(c=>c.label).join(" ")||"no tools called"}${l?` \xB7 ${l}`:""}`;return se.default.createElement("span",{title:u,style:{display:"flex",flexDirection:"column",gap:1,minWidth:0}},se.default.createElement("span",{style:{display:"flex",alignItems:"baseline",gap:6,minWidth:0,fontFamily:U,fontSize:12,whiteSpace:"nowrap"}},se.default.createElement("span",{style:{fontWeight:700,color:a,flexShrink:0}},o?"[+]":"[!]"),se.default.createElement("span",{style:{fontWeight:600,color:a,flexShrink:0}},aa(e.score)),s&&se.default.createElement("span",{style:{fontSize:11,color:"var(--color-error-text)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis"}},s)),se.default.createElement(B2,{metrics:S2(e)}))}return se.default.createElement("div",{style:{minWidth:0,display:"flex",flexDirection:"column",gap:3}},se.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:6,flexWrap:"wrap",fontFamily:U,fontSize:12}},se.default.createElement("span",{style:{fontWeight:700,color:a}},o?"[+]":"[!]"),se.default.createElement("span",{style:{fontWeight:600,color:a}},aa(e.score)),e.fault&&se.default.createElement("span",{style:{fontSize:11,color:"var(--color-error-text)"}},Th(e.fault))),se.default.createElement(RJ,{calls:i,empty:"no tools called"}),se.default.createElement(B2,{metrics:S2(e)}),L2(e)&&se.default.createElement("span",{style:{...Ur(11,"var(--color-text-secondary)"),whiteSpace:"nowrap"},title:JJ(e),"data-testid":"scenario-cell-cost"},L2(e)))}var f_e=e=>{if(!e)return null;let t=[];e.durationMs!=null&&t.push(k2(e.durationMs));let r=II(e.inputTokens,e.outputTokens);return r!=="\u2014"&&t.push(r),t.length?t.join(" \xB7 "):null};function B2({metrics:e,testId:t="scenario-cell-metrics",title:r="time to answer \xB7 input\u2192output tokens",style:n}){let o=f_e(e);return o?se.default.createElement("span",{"data-testid":t,title:r,style:{...Ur(10.5),whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0,...n}},o):null}var F2={passed:{text:"[+]",color:"var(--color-success)",title:"passed on every model"},failed:{text:"[!]",color:"var(--color-error)",title:"failed on at least one model"},running:{text:"[~]",color:"var(--color-warning-text)",title:"running"},queued:{text:"[ ]",color:"var(--color-text-muted)",title:"queued"},missing:{text:"[?]",color:"var(--color-text-muted)",title:"the run ended without its results"},skipped:{text:"[-]",color:"var(--color-text-muted)",title:"not in this run"},none:{text:"[ ]",color:"var(--color-text-muted)",title:"not run yet"},loading:{text:"[ ]",color:"var(--color-text-muted)",title:"loading results\u2026"}},m_e=(e,t)=>e===t||!!e&&!!t&&e.cost===t.cost&&e.judgeCost===t.judgeCost&&e.total===t.total&&e.estimated===t.estimated,g_e=(e,t)=>e===t||!!e&&!!t&&e.input===t.input&&e.output===t.output,h_e=(e,t)=>e.scenario===t.scenario&&e.results===t.results&&e.columns===t.columns&&e.step===t.step&&e.current===t.current&&e.open===t.open&&e.detail===t.detail&&e.showKey===t.showKey&&e.grid===t.grid&&e.inSelection===t.inSelection&&e.running===t.running&&e.loading===t.loading&&e.tabIndex===t.tabIndex&&m_e(e.costEntry,t.costEntry)&&g_e(e.tokens,t.tokens)&&e.timeMs===t.timeMs,y_e=se.default.memo(function({scenario:t,results:r,columns:n,step:o,current:a,open:i,detail:s,showKey:l,grid:u,inSelection:c,running:d,loading:p,costEntry:f,tokens:m=null,timeMs:y,tabIndex:b,onToggle:g,onFocus:h}){let v=t.key,x=s==="steps",S=ND(t,"tools"),k=t.enabled===!1,w=F2[o]||F2.none,_=`${v}${k?" \xB7 disabled":""}`,A=se.default.createElement("span",{"data-testid":"scenario-step",title:w.title,style:{...Ur(11,w.color),fontWeight:700,flexShrink:0}},w.text),C={fontFamily:U,fontSize:11,padding:"2px 6px",border:"1px solid var(--color-border)",borderRadius:4,color:"var(--color-text-cell)",whiteSpace:"nowrap"};return se.default.createElement("div",{"data-testid":"scenario-row","data-scenario-key":v,"data-step":o,"data-nav":v,"data-current":a?"true":void 0,role:"button","aria-expanded":i,tabIndex:b,title:x&&!l?`${_} \xB7 ${t.prompt||""}`:void 0,onClick:()=>g(v),onKeyDown:N=>{(N.key==="Enter"||N.key===" ")&&(N.preventDefault(),g(v))},onFocus:N=>h(v,N),className:i?void 0:"hover:bg-[var(--color-hover)]",style:{display:"grid",gridTemplateColumns:u,gap:TD[s]??TD.steps,padding:x?"6px 12px":"10px 12px",alignItems:x?"center":void 0,borderTop:"1px solid var(--color-border-light)",cursor:"pointer",background:i?"var(--color-muted)":void 0,boxShadow:a?"inset 2px 0 0 var(--color-warning)":void 0,opacity:k?.5:1}},x?se.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,minWidth:0}},A,l&&se.default.createElement("span",{style:{...Ur(11),minWidth:0,maxWidth:"40%",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},_),se.default.createElement("span",{title:l?t.prompt:void 0,style:{flex:1,minWidth:0,fontSize:13,color:t.orphan?"var(--color-text-muted)":"var(--color-text-primary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},t.prompt)):se.default.createElement(se.default.Fragment,null,se.default.createElement("div",{style:{minWidth:0}},se.default.createElement("div",{style:{...Ur(11),marginBottom:2,display:"flex",gap:6}},A,se.default.createElement("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"}},_)),se.default.createElement("div",{style:{fontSize:13,lineHeight:"18px",color:"var(--color-text-primary)",textWrap:"pretty"}},t.prompt)),se.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:4,alignContent:"flex-start",minWidth:0}},S.map(N=>se.default.createElement("span",{key:N,style:C},N)),S.length===0&&ND(t,"contains").map(N=>se.default.createElement("span",{key:`contains-${N}`,style:C,title:"the answer must contain this"},`contains: ${N}`)))),n.map(N=>se.default.createElement(p_e,{key:N,result:r?.[N],expects:S,pending:(d||p)&&c,compact:x})),se.default.createElement(QJ,{entry:f,compact:x,testId:"scenario-row-cost",tokens:m}),x&&se.default.createElement("span",{"data-testid":"scenario-row-time",title:"the slowest answer across the models",style:{...Ur(11),textAlign:"right",whiteSpace:"nowrap"}},k2(y)))},h_e);function tQ({rows:e=ED,columns:t=ED,run:r=null,resultsByKey:n=u_e,runKeys:o=HJ,running:a=!1,loading:i=!1,stepsByKey:s=null,currentKey:l=null,bars:u=ED,detail:c="steps",showKey:d=!0,collapsedGroups:p=HJ,onToggleGroup:f,openKey:m=null,onToggleRow:y,following:b=!1,onStopFollowing:g,emptyLabel:h,maxHeight:v=null,renderDetail:x,boxRef:S=null,testId:k="scenario-matrix"}){let w=t.length===0?"tools":c,_=w==="steps",A=l_e(w,t.length),C=TD[w],N=_?DZ(t.length):jZ(t.length),L=ue=>o.has(ue.key)||!!n[ue.key],Q=ue=>r?i?L(ue)?"loading":"skipped":y2(n[ue.key],t,{inRun:L(ue),running:a}):"none",B=ue=>s?.[ue.key]??Q(ue),K=new Map(e.map(ue=>[ue.key,i_e(r,ue.key,n[ue.key])])),T=[...K.values()].some(ue=>ue?.estimated),O=new Map(e.map(ue=>[ue.key,WZ(n[ue.key],t)])),I=tD(n,t),P=e.some(ue=>ue.group),j=[];e.forEach(ue=>{let Fe=ue.group||"",Je=j.find(ot=>ot.name===Fe);Je||(Je={name:Fe,rows:[]},j.push(Je)),Je.rows.push(ue)});let M=ue=>(ue||P)&&p.has(ue),[W,Y]=(0,se.useState)(null),z=[];j.forEach(ue=>{(ue.name||P)&&z.push(`group:${ue.name}`),M(ue.name)||ue.rows.forEach(Fe=>z.push(Fe.key))});let V=new Set(z),q=[W,m,l].find(ue=>ue!=null&&V.has(ue))??z[0]??null,oe=(0,se.useRef)(null),Me=(0,se.useRef)(null),[fe,le]=(0,se.useState)(50),[R,te]=(0,se.useState)(0),He=(0,se.useRef)(fe),_e=(0,se.useRef)({});Vs(()=>{He.current=fe,_e.current={onToggleRow:y,onStopFollowing:g}});let D=(0,se.useCallback)(ue=>{oe.current=ue,S&&(S.current=ue)},[S]),G=(0,se.useCallback)(ue=>_e.current.onToggleRow?.(ue),[]),E=(0,se.useCallback)((ue,Fe)=>{Y(ue);let Je=oe.current;Je&&!Je.contains(Fe.relatedTarget)&&_e.current.onStopFollowing?.()},[]),$=()=>g?.();Vs(()=>{let ue=Me.current;if(!ue)return;let Fe=()=>{let ot=ue.offsetHeight;ot&&le(Tt=>Tt===ot?Tt:ot)};if(Fe(),typeof ResizeObserver>"u")return;let Je=new ResizeObserver(Fe);return Je.observe(ue),()=>Je.disconnect()},[]);let ee=(0,se.useCallback)(ue=>{if(!ue){te(0);return}let Fe=()=>te(ue.offsetHeight);Fe();let Je=typeof ResizeObserver>"u"?null:new ResizeObserver(Fe);Je?.observe(ue);let ot=oe.current,Tt=ue.previousElementSibling;if(ot&&Tt?.hasAttribute("data-scenario-key")){let Lt=Tt.closest("[data-group]")?.querySelector('[data-testid="scenario-group-row"]');ot.scrollTo({top:RZ({rowTop:Tt.offsetTop,headerHeight:He.current,groupRowHeight:Lt?.offsetHeight??0}),behavior:"smooth"})}return()=>{Je?.disconnect(),te(0)}},[]),F=(0,se.useRef)(null),me=(0,se.useRef)(null),et=(0,se.useRef)(0);Vs(()=>{let ue=oe.current;if(!ue||!b||!l){F.current=l;return}let Fe=ue.querySelector(`[data-scenario-key="${z2(l)}"]`);if(!Fe)return;let Je=QZ({rowTop:Fe.offsetTop,headerHeight:fe,boxHeight:ue.clientHeight});if(Math.abs(Je-ue.scrollTop)>4){let ot=Date.now(){let Fe=oe.current;if(!Fe||!ue)return;let Je=ue.hasAttribute("data-scenario-key")?ue.closest("[data-group]")?.querySelector('[data-testid="scenario-group-row"]'):null,ot=He.current+(Je?.offsetHeight??0);ue.offsetTop-otFe.scrollTop+Fe.clientHeight&&(Fe.scrollTop=ue.offsetTop+ue.offsetHeight-Fe.clientHeight)};return se.default.createElement("div",{ref:D,"data-testid":k,"data-detail":w,onWheel:$,onTouchMove:$,onKeyDown:ue=>{if(d_e(ue.target))return;let Fe=oe.current;if(Fe){if(ue.key==="ArrowDown"||ue.key==="ArrowUp"){let Je=[...Fe.querySelectorAll("[data-nav]")];if(!Je.length)return;let ot=Je.indexOf(ue.target);ot<0&&(ot=Je.findIndex(Lt=>Lt.hasAttribute("data-scenario-key")&&Lt.parentElement?.contains(ue.target)));let Tt=ot<0?Je[0]:Je[Math.min(Math.max(ot+(ue.key==="ArrowDown"?1:-1),0),Je.length-1)];ue.preventDefault(),g?.(),Tt&&Tt!==ue.target&&(Tt.focus({preventScroll:!0}),rt(Tt));return}ue.key==="Escape"&&m&&(y?.(m),Fe.querySelector(`[data-scenario-key="${z2(m)}"]`)?.focus({preventScroll:!0}))}},style:{border:"1px solid var(--color-border-light)",borderRadius:10,overflow:"auto",position:"relative",scrollbarGutter:"stable",maxHeight:v?R?`calc(${qJ(v)} + ${R}px)`:qJ(v):void 0}},se.default.createElement("div",{style:{minWidth:N}},se.default.createElement("div",{ref:Me,style:{display:"grid",gridTemplateColumns:A,gap:C,padding:"8px 12px",alignItems:"end",position:"sticky",top:0,zIndex:2,backgroundColor:"var(--color-surface)",backgroundImage:"linear-gradient(var(--color-muted), var(--color-muted))"}},se.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},_?"Step":"Scenario"),!_&&se.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},"Expects"),t.map(ue=>{let{short:Fe,provider:Je}=OD(r,ue),ot=u.find(Tt=>Tt.label===ue);return se.default.createElement("span",{key:ue,style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},title:ue},se.default.createElement("span",{style:{fontFamily:U,fontSize:11,fontWeight:600,color:"var(--color-text-primary)"}},Fe),se.default.createElement("span",{style:Ur(10)},Je||" "),ot&&ot.passed!=null&&ot.total!=null&&se.default.createElement(tu,{passed:ot.passed,total:ot.total,height:4,valueWidth:48,style:{marginTop:3}}),se.default.createElement(B2,{metrics:I[ue],testId:"scenario-column-totals",title:"this model's answers' time added up, and its input\u2192output tokens, over the results in",style:{marginTop:2}}))}),se.default.createElement("span",{style:{textAlign:"right"},title:"What the scenario cost across every model, and what judging it cost; under it, its input\u2192output tokens"},se.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},"Cost")),_&&se.default.createElement("span",{style:{textAlign:"right"},title:"The slowest answer across the run's models; a group's add up"},se.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},"Time"))),j.map(ue=>{let Fe=ue.name,Je=M(Fe),ot=`group:${Fe}`,Tt=ue.rows.filter(L),Lt=F2[BZ(ue.rows.map(B))]||F2.none,Hr=tD(n,t,ue.rows.map(yt=>yt.key)),Io=t.map(yt=>{let to=Hr[yt];if(!Tt.length)return{label:yt,text:"not in this run",color:"var(--color-text-muted)",weight:400,metrics:to};if(i)return{label:yt,text:"loading\u2026",color:"var(--color-text-muted)",weight:400,metrics:to};let xs=Tt.filter(pt=>El(n[pt.key]?.[yt]));if(a&&!xs.length)return{label:yt,text:"queued",color:"var(--color-text-muted)",weight:400,metrics:to};let bs=xs.filter(pt=>Al(n[pt.key][yt])).length,ve=Tt.length,nt=ve&&bs===ve?"var(--color-success-text)":bs===0?"var(--color-error-text)":"var(--color-text-cell)";return{label:yt,text:`${Vn(bs,ve)} passed`,color:nt,weight:600,metrics:to}}),vs=s_e(ue.rows.map(yt=>K.get(yt.key))),Mi=HZ(ue.rows.map(yt=>O.get(yt.key)));return se.default.createElement("div",{key:Fe||"__ungrouped","data-group":Fe},(Fe||P)&&se.default.createElement("div",{"data-testid":"scenario-group-row","data-group":Fe,"data-collapsed":Je?"true":"false","data-nav":ot,role:"button","aria-expanded":!Je,tabIndex:q===ot?0:-1,onClick:()=>f?.(Fe),onKeyDown:yt=>{(yt.key==="Enter"||yt.key===" "||yt.key==="ArrowLeft"&&!Je||yt.key==="ArrowRight"&&Je)&&(yt.preventDefault(),f?.(Fe))},onFocus:yt=>E(ot,yt),style:{display:"grid",gridTemplateColumns:A,gap:C,padding:"7px 12px",alignItems:"center",borderTop:"1px solid var(--color-border-light)",background:"var(--color-background)",cursor:"pointer",position:"sticky",top:fe,zIndex:1}},se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0}},se.default.createElement(wa,{kind:"chevron",open:!Je}),se.default.createElement("span",{"data-testid":"scenario-group-step",title:Lt.title,style:{...Ur(11,Lt.color),fontWeight:700,flexShrink:0}},Lt.text),se.default.createElement("span",{style:{fontSize:12,fontWeight:600,color:"var(--color-text-primary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},Fe||"ungrouped"),_&&se.default.createElement("span",{style:{...Ur(11),whiteSpace:"nowrap"}},`\xB7 ${St(ue.rows.length,"scenario")}`)),!_&&se.default.createElement("span",{style:Ur(11)},St(ue.rows.length,"scenario")),Io.map(yt=>se.default.createElement("span",{key:yt.label,style:{display:"flex",flexDirection:"column",gap:1,minWidth:0}},se.default.createElement("span",{style:{fontFamily:U,fontSize:11,fontWeight:yt.weight,color:yt.color,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},yt.text),se.default.createElement(B2,{metrics:yt.metrics,testId:"scenario-group-metrics",title:"the group's answers' time added up, and their input\u2192output tokens, on this model"}))),se.default.createElement(QJ,{entry:vs,compact:_,testId:"scenario-group-cost",tokens:Mi}),_&&se.default.createElement("span",{"data-testid":"scenario-group-time",title:"the group's scenarios' times added up",style:{...Ur(11),textAlign:"right",whiteSpace:"nowrap"}},k2(qZ(ue.rows,n,t)))),!Je&&ue.rows.map(yt=>{let to=m===yt.key;return se.default.createElement("div",{key:yt.key},se.default.createElement(y_e,{scenario:yt,results:n[yt.key],columns:t,step:B(yt),current:yt.key===l,open:to,detail:w,showKey:d,grid:A,inSelection:L(yt),running:a,loading:i,costEntry:K.get(yt.key)??null,tokens:O.get(yt.key)??null,timeMs:eD(n[yt.key],t),tabIndex:q===yt.key?0:-1,onToggle:G,onFocus:E}),to&&se.default.createElement("div",{ref:ee},x?.(yt)))}))}),e.length===0&&se.default.createElement(Jr,{style:{borderTop:"1px solid var(--color-border-light)"}},h||"[+] nothing failed in this group"),T&&se.default.createElement("div",{style:{...Ur(11),padding:"6px 12px",borderTop:"1px solid var(--color-border-light)",textAlign:"right"},"data-testid":"scenario-matrix-legend"},il)))}function v_e(e){let t=[];e.duration_ms!=null&&t.push(Bn(e.duration_ms)),(e.input_tokens!=null||e.output_tokens!=null)&&t.push(`${On((e.input_tokens||0)+(e.output_tokens||0))} tokens`);let r=L2(e);return r&&t.push(r),t.join(" \xB7 ")}function x_e({label:e,run:t,result:r,expects:n,running:o}){let{short:a}=OD(t,e),i=se.default.createElement("span",{style:{fontFamily:U,fontSize:12,fontWeight:600,color:"var(--color-text-primary)"},title:e},a),s=(g,h)=>se.default.createElement("div",{"data-testid":"scenario-result-detail",style:{background:"var(--color-card)",border:"1px solid var(--color-border-light)",borderRadius:10,overflow:"hidden",minWidth:0}},se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 12px",borderBottom:"1px solid var(--color-border-light)",flexWrap:"wrap"}},i,h),se.default.createElement("div",{style:{padding:"10px 12px",display:"flex",flexDirection:"column",gap:10}},g));if(!r||!El(r))return s(se.default.createElement("span",{style:Ur(11)},o?"waiting for this replay\u2026":"not part of this run"),se.default.createElement(ke,{tone:"muted"},o?"pending":"no result"));let u=Al(r)?"success":"error",c=YJ(r.tool_calls,n),d=r.diagnosis||{},p=d.judge||{},f=r.fault||(r.status==="errored"?"run_error":null),m=[d.summary,d.recommendation||r.recommendation].filter(Boolean).join(" ")||r.error_message||"",y=Object.entries(r.scores||{}),b=v_e(r);return s(se.default.createElement(se.default.Fragment,null,se.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,flexWrap:"wrap",fontFamily:U,fontSize:11}},se.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},"tools"),se.default.createElement(RJ,{calls:c,empty:"none called",style:{display:"contents"}})),f&&se.default.createElement("div",{style:{background:"var(--color-error-soft)",borderRadius:8,padding:"8px 10px",fontSize:12,lineHeight:"18px",color:"var(--color-error-text)",textWrap:"pretty"}},se.default.createElement("span",{style:{fontFamily:U,fontWeight:700}},`[!] ${Th(f)}`),m?` \u2014 ${m}`:"",p.suggested_tool?.name&&se.default.createElement("div",{style:{marginTop:4,fontFamily:U,fontSize:11}},`suggested tool: ${p.suggested_tool.name}${p.suggested_tool.description?` \u2014 ${p.suggested_tool.description}`:""}`),p.instruction_change&&se.default.createElement("div",{style:{marginTop:4,fontStyle:"italic"}},`instruction change: \u201C${p.instruction_change}\u201D`)),r.output?se.default.createElement("div",{style:{fontFamily:"var(--font-text)",fontSize:13,lineHeight:"19px",color:"var(--color-text-cell)",maxHeight:190,overflow:"auto",whiteSpace:"pre-wrap",textWrap:"pretty"}},r.output):se.default.createElement("div",{style:Ur(11)},"answer not retained for this run"),y.length>0&&se.default.createElement("div",{style:{...Ur(11),display:"flex",flexWrap:"wrap",gap:"2px 10px"},title:"score per criterion"},y.map(([g,h])=>se.default.createElement("span",{key:g},Th(g)," ",se.default.createElement("span",{style:{color:"var(--color-text-secondary)"}},h==null?"skipped":aa(h)))))),se.default.createElement(se.default.Fragment,null,se.default.createElement(ke,{tone:u},r.score==null?r.status:`${r.status} \xB7 ${aa(r.score)}`),b&&se.default.createElement("span",{style:{marginLeft:"auto",...Ur(11)},title:JJ(r)},b),r.agent_run_id&&se.default.createElement(ld,{kind:"scenario_result",id:r.id,title:"Replay this scenario's run",testId:"scenario-result-replay",style:b?void 0:{marginLeft:"auto"}})))}function rQ({scenario:e,run:t,columns:r,resultsByKey:n,running:o,inRun:a=!0,onRerun:i,onToggleEnabled:s,canMutate:l=!0,markdownUrl:u=null}){let c=ND(e,"tools"),d=n[e.key]||{},p=r.some(m=>d[m]),f=a||p;return se.default.createElement("div",{style:{borderTop:"1px solid var(--color-border-light)",background:"var(--color-background)",padding:"12px 12px 14px"},"data-testid":"scenario-drilldown"},se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:10,flexWrap:"wrap"}},se.default.createElement("span",{style:Ur(11)},e.key),se.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-cell)"}},"expects"),se.default.createElement("span",{style:{fontFamily:U,fontSize:11,fontWeight:600,color:"var(--color-text-primary)"}},c.join(" or ")||"\u2014"),t&&p&&se.default.createElement(_l,{url:m2(u,{part:"scenario",scenario:e.key}),testId:"copy-scenario-markdown",title:"Copy this scenario \u2014 the prompt, expectations and each model's result \u2014 as Markdown",style:{marginLeft:"auto"}}),l&&se.default.createElement("span",{style:{marginLeft:t&&p&&u?0:"auto",display:"flex",alignItems:"center",gap:14}},se.default.createElement("button",{type:"button",onClick:m=>{m.stopPropagation(),s?.(e)},title:e.enabled===!1?"Enable this scenario":"Disable this scenario",style:{background:"transparent",border:"none",padding:0,cursor:"pointer",fontFamily:U,fontSize:11,color:e.enabled===!1?"var(--color-text-muted)":"var(--color-text-cell)"}},e.enabled===!1?"[ ] enabled":"[x] enabled"),se.default.createElement(Gr,{onClick:()=>i?.(e),title:"Run only this scenario under the selected models"},"re-run scenario"))),e.notes&&se.default.createElement("div",{style:{fontSize:12,fontStyle:"italic",color:"var(--color-text-secondary)",marginBottom:10}},e.notes),e.catalogChanged&&se.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)",marginBottom:10}},"This run used an earlier version of this question. Re-running uses the current version."),t?f?se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(300px, 1fr))",gap:12}},r.map(m=>se.default.createElement(x_e,{key:m,label:m,run:t,result:d[m],expects:c,running:o}))):se.default.createElement("div",{style:Ur(11)},"Not part of this run \u2014 use \u201Cre-run scenario\u201D to replay it."):se.default.createElement("div",{style:Ur(11)},"No runs yet \u2014 use \u201Cre-run scenario\u201D to replay this one on its own."))}function nQ({items:e,columns:t=[],agentName:r,onNavigate:n,onOpenScenario:o,run:a=null,results:i=[],evaluation:s=null,runNumber:l=null,scenarios:u=[],onRerun:c=null,runnableFor:d=null,markdownUrl:p=null}){let f=w=>d?d(w):uf(w.scenario_keys||[],u),[m,y]=(0,se.useState)("all"),b=t.length>1,g=b?m:"all",h=b?SZ(e,i,w=>zu(a,w)):e,v=YI(h,g),x=b?kZ(h,t):{},S=w=>UJ({item:w,evaluation:s,run:a,runNumber:l,results:i,scenarios:u,agentName:r,dashboardUrl:T2(),labelFor:_=>zu(a,_)}),k=w=>{let _=St((w.scenario_keys||[]).length,"scenario");if(w.kind==="instruction")return`${(w.scenario_keys||[]).join(", ")} \xB7 judge suggestion`;let A=fd(w.models||[]);if(t.length<=1||A.length===0)return _;let N=A.length>=t.length?t.length===2?"both models":"all models":A.map(L=>bn(L).short).join(", ");return`${_} \xB7 ${N}`};return se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10},"data-testid":"fix-list"},se.default.createElement(_l,{url:m2(p,{part:"fix_items",model:g}),label:g==="all"?"Copy What to fix as Markdown":`Copy What to fix for ${bn(g).short} as Markdown`,testId:"copy-fixes-markdown",title:"Copy What to fix as Markdown, for the model the filter shows",style:{alignSelf:"flex-end"}}),b&&se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},"data-testid":"fix-list-model-filter"},se.default.createElement("span",{style:Ur(11)},"for"),se.default.createElement(jn,{square:!0,mono:!0,selected:g==="all",onClick:()=>y("all"),testId:"fix-filter-all"},`all models ${e.length}`),t.map(w=>se.default.createElement(jn,{key:w,square:!0,mono:!0,selected:g===w,onClick:()=>y(w),title:`Only what ${w} needs fixed`,testId:"fix-filter-model"},`${bn(w).short} ${x[w]??0}`))),v.length===0&&se.default.createElement(Jr,{style:{border:"1px solid var(--color-border-light)",borderRadius:10,padding:"14px 12px"}},`[+] nothing to fix for ${bn(g).short}`),se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:12}},v.map((w,_)=>{let A=w.kind==="instruction",C=A?"info":"error",N=[],L=new Set;(w.tools||[]).forEach(O=>{let I=typeof O=="string"?O:O?.name;!I||L.has(I)||(L.add(I),N.push({name:I,note:typeof O=="object"&&(O.note||O.server?.name)||null}))});let Q=w.server,B=Q?.status==="enabled",K=r||"the agent",T=c?f(w):null;return se.default.createElement("div",{key:`${w.fault}-${_}`,"data-testid":"scenario-recommendation",style:{border:"1px solid var(--color-border)",borderRadius:10,padding:"12px 14px",display:"flex",flexDirection:"column",gap:10,minWidth:0}},se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},se.default.createElement(wa,{kind:A?"info":"fault"}),se.default.createElement(ke,{tone:C},`${Th(w.fault)}${w.count>1?` \xD7${w.count}`:""}`),o&&(w.scenario_keys||[]).length>0?se.default.createElement("button",{type:"button",onClick:()=>o(w.scenario_keys),title:`Show ${(w.scenario_keys||[]).join(", ")} \u2014 the question, the answer and the tools it called`,style:{...Ur(11),background:"none",border:0,padding:0,cursor:"pointer",color:"var(--color-text-link, var(--color-text-primary))",textDecoration:"underline",textUnderlineOffset:2}},k(w)):se.default.createElement("span",{style:Ur(11)},k(w))),w.recommendation&&se.default.createElement("p",{style:{margin:0,fontSize:13,lineHeight:"19px",color:"var(--color-text-cell)",textWrap:"pretty"}},w.recommendation),w.quote&&se.default.createElement("div",{style:{background:"var(--color-muted)",borderRadius:8,padding:"8px 10px",fontSize:12,lineHeight:"18px",color:"var(--color-text-cell)",fontStyle:"italic"}},"\u201C",w.quote,"\u201D"),N.length>0&&se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:6}},se.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},w.tools_label||"tools"),se.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:6}},N.map(O=>se.default.createElement("span",{key:O.name,style:{display:"inline-flex",alignItems:"center",gap:6,padding:"3px 8px",borderRadius:6,border:"1px solid var(--color-border)",fontFamily:U,fontSize:11,maxWidth:"100%"}},se.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},O.name),O.note&&se.default.createElement("span",{style:{color:"var(--color-text-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:O.note},O.note))))),Q&&se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",fontSize:12,color:"var(--color-text-cell)"}},se.default.createElement("span",null,"served by"),se.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},Q.name||Q.key),se.default.createElement(ke,{tone:B?"success":"warning",size:10,style:{padding:"1px 6px"}},B?`enabled for ${K}`:`${Q.status||"unknown"} \xB7 not enabled for ${K}`)),w.note&&se.default.createElement("div",{style:{fontSize:12,lineHeight:"18px",color:"var(--color-text-secondary)",textWrap:"pretty"}},w.note),se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:"auto",paddingTop:2,flexWrap:"wrap"}},w.action?.path&&se.default.createElement(ce,{size:"sm",onClick:()=>n?.(w.action.path)},w.action.label),w.action?.hint&&se.default.createElement("span",{style:{...Ur(11),whiteSpace:"nowrap"}},w.action.hint),T&&(T.keys.length?se.default.createElement(Gr,{onClick:()=>c(w,T),title:"Replay these scenarios under the models in the picker",testId:"fix-item-rerun"},`re-run ${St(T.keys.length,"scenario")}`):se.default.createElement("span",{style:{...Ur(11),whiteSpace:"nowrap"},title:`${T.dropped.join(", ")} \xB7 disabled or no longer in the suite`,"data-testid":"fix-item-rerun-none"},"re-run \xB7 none enabled")),se.default.createElement(U0,{build:()=>S(w),style:{marginLeft:"auto"}}),se.default.createElement(_l,{text:w.markdown,testId:"copy-fix-markdown",title:"Copy this fix as Markdown, for an issue or a pull request"}),se.default.createElement(SD,{item:w,evaluation:s,run:a})))})))}var oQ=e=>{let{results:t,fix_items:r,...n}=e;return n},b_e={keys:[],dropped:[]},MD={padding:"6px 10px",borderRadius:8,fontSize:12,fontFamily:U,background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"},vf={border:"1px solid var(--color-border-light)",borderRadius:10},w_e=(e,t)=>e.size===t.size&&[...e].every(r=>t.has(r)),aQ=()=>typeof localStorage<"u"?localStorage:null,iQ=()=>typeof document<"u"&&document.visibilityState==="hidden";function ID({evaluation:e,modelProviders:t,onChanged:r,onDelete:n,deleting:o=!1,initialRunId:a=null,onRunSelected:i}){let s=e.id,l=e.agent?.name||"Agent",[u,c]=(0,be.useState)(!1),[d,p]=(0,be.useState)(null),[f,m]=(0,be.useState)(e.scenarios||[]),[y,b]=(0,be.useState)(e.scenario_groups||[]),[g,h]=(0,be.useState)(e.latest_run?[e.latest_run]:[]),[v,x]=(0,be.useState)(null),[S,k]=(0,be.useState)(a??e.latest_run?.id??null),[w,_]=(0,be.useState)({}),[A,C]=(0,be.useState)({}),[N,L]=(0,be.useState)(null),[Q,B]=(0,be.useState)((e.compare_models||[]).join(", ")),K=(0,be.useMemo)(()=>t===void 0?[]:t??R1,[t]),T=bc(K),O=(0,be.useMemo)(()=>M0(T,{providers:K}),[T,K]),[I,P]=(0,be.useState)(null),[j,M]=(0,be.useState)(!1),[W,Y]=(0,be.useState)([]),[z,V]=(0,be.useState)(""),[q,oe]=(0,be.useState)(!1),[Me,fe]=(0,be.useState)(""),[le,R]=(0,be.useState)(null),[te,He]=(0,be.useState)(null),[_e,D]=(0,be.useState)(!1),[G,E]=(0,be.useState)(null),[$,ee]=(0,be.useState)(!0),[F,me]=(0,be.useState)(()=>{let pe=e.scenarios||[],tt=(a==null||a===e.latest_run?.id)&&e.latest_run||null;return RI(pe,new Set(P0(tt,pe)))}),[et,rt]=(0,be.useState)(()=>new Map),[ge,ue]=(0,be.useState)(()=>$Z(aQ())),[Fe,Je]=(0,be.useState)("suite"),ot=(0,be.useRef)(null),Tt=(0,be.useRef)(null),Lt=(0,be.useRef)(null),Hr=(0,be.useRef)(new Map),Io=(0,be.useRef)(new Map),vs=(0,be.useRef)({}),Mi=(0,be.useRef)(w),yt=(0,be.useRef)(S),to=(0,be.useRef)(null),xs=D0(ot),bs=xs-TZ,ve=xs===0||bs>=OZ,nt=xs===0?0:bs-(ve?ZI+JI:0),pt=ge??"steps",Qt=nt===0||nt>=IZ,Hn=(0,be.useCallback)(async()=>{let pe=await fetch(`/api/evaluations/${s}/scenarios`);if(!pe.ok)return;let tt=await pe.json();m(tt.scenarios||[]),b(tt.groups||[])},[s]),co=(0,be.useCallback)(async()=>{try{let pe=await fetch(`/api/evaluations/${s}`);if(!pe.ok)return p(`Could not load this suite (HTTP ${pe.status})`),null;let Ct=(await pe.json()).evaluation||{};return m(Ct.scenarios||[]),b(Ct.scenario_groups||[]),h(Ct.runs||[]),x(Number.isFinite(Ct.run_count)?Ct.run_count:null),p(null),Ct}catch(pe){return p(`Could not load this suite: ${pe.message}`),null}finally{c(!0)}},[s]);Vs(()=>{Mi.current=w,yt.current=S});let nn=(0,be.useCallback)(pe=>{if(!pe)return Promise.resolve(null);if(Hr.current.has(pe))return Hr.current.get(pe);let tt=(async()=>{try{let Ct=await fetch(`/api/evaluations/${s}/runs/${pe}`);if(!Ct.ok)return C(Js=>({...Js,[pe]:`HTTP ${Ct.status}`})),null;let lr=(await Ct.json()).run;if(!lr)return C(Js=>({...Js,[pe]:"no run in the response"})),null;C(Js=>{if(!(pe in Js))return Js;let{[pe]:_s,...Nd}=Js;return Nd});let jo=Mi.current[lr.id],{results:Pf,changed:Ku}=XZ(jo?.results,lr.results);if(!(!!jo&&!Ku&&jo.status===lr.status&&jo.completed_at===lr.completed_at&&(jo.fix_items?.length??0)===(lr.fix_items?.length??0))){let Js=oQ(lr);_(_s=>({..._s,[lr.id]:{...lr,results:Pf}})),h(_s=>_s.some(Nd=>Nd.id===lr.id)?_s.map(Nd=>Nd.id===lr.id?{...Nd,...Js}:Nd):_s),L(_s=>_s&&_s.id===lr.id?{..._s,...Js}:_s)}return lr}catch(Ct){return C(rr=>({...rr,[pe]:Ct.message})),null}finally{Hr.current.delete(pe)}})();return Hr.current.set(pe,tt),tt},[s]),Oa=pe=>{L(oQ(pe)),k(pe.id),E(null)};(0,be.useEffect)(()=>{let pe=!1;return(async()=>{let tt=await co();if(pe)return;let Ct=tt?.runs?.[0]?.id??null,rr=!!(a&&tt?.runs?.some(Ku=>Ku.id===a));if(a&&!rr){let Ku=await nn(a);if(pe)return;if(Ku){Oa(Ku);return}}let lr=rr?a:null,jo=yt.current,Pf=lr||(jo&&tt?.runs?.some(Ku=>Ku.id===jo)?jo:Ct);k(Pf),Pf&&nn(Pf)})(),()=>{pe=!0}},[co,nn]);let Pa=e.latest_run?.id??null;(0,be.useEffect)(()=>{!Pa||g.some(pe=>pe.id===Pa)||co()},[Pa,g,co]);let ws=w[S]||g.find(pe=>pe.id===S)||(N?.id===S?N:null),po=g[0]||null,Wu=md(ws)?ws.id:md(po)?po.id:null;(0,be.useEffect)(()=>{if(!Wu)return;let pe=!1,tt=()=>YZ(Mi.current[Wu]?.results?.length??0),Ct=lr=>{clearTimeout(to.current),to.current=setTimeout(async()=>{if(pe||iQ())return;let jo=null;try{jo=await nn(Wu)}catch{jo=null}if(!pe){if(jo&&!md(jo)){await co(),r?.();return}Ct(tt())}},lr)},rr=()=>{document.visibilityState==="visible"&&Ct(0)};return iQ()||Ct(tt()),typeof document<"u"&&document.addEventListener("visibilitychange",rr),()=>{pe=!0,clearTimeout(to.current),typeof document<"u"&&document.removeEventListener("visibilitychange",rr)}},[Wu,nn,co,r]);let Ss=(0,be.useCallback)(async()=>{try{let pe=await fetch("/api/sandboxes?sandbox_type=app_runtime");if(!pe.ok)return;let tt=await pe.json(),Ct=b2(tt.sandboxes);Y(Ct),V(rr=>w2(rr,Ct))}catch{}},[]);(0,be.useEffect)(()=>{Ss()},[Ss]);let Hu=cd(Q),ro=async pe=>{M(!0),P(null);try{let tt=await fetch(`/api/evaluations/${s}/run`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(CZ(pe,Hu,z))}),Ct=await tt.json().catch(()=>({}));if(!tt.ok)throw Ct.code==="sandbox_refused"&&Ss(),new Error((Ct.errors||[Ct.error]).filter(Boolean).join(", ")||"Run failed to start");let rr=Ct.run;h(lr=>[rr,...lr.filter(jo=>jo.id!==rr.id)]),x(lr=>lr==null?null:lr+1),_(lr=>({...lr,[rr.id]:{...rr,results:[]}})),k(rr.id),E(null),ee(!0),Je("suite"),r?.()}catch(tt){P(tt.message)}finally{M(!1)}},Pl=pe=>[pe,po?.id,S].slice(0,MZ),qh=pe=>{k(pe),E(null),_(tt=>nD(tt,Pl(pe))),w[pe]||nn(pe)},fb=pe=>{qh(pe.id),i?.(pe.id)};(0,be.useEffect)(()=>{if(!a||a===S)return;if(g.some(tt=>tt.id===a)||N?.id===a){qh(a);return}if(!u)return;let pe=!1;return(async()=>{let tt=await nn(a);pe||!tt||(_(Ct=>nD(Ct,Pl(tt.id))),Oa(tt))})(),()=>{pe=!0}},[a]);let mb=async pe=>{pe.id&&(await fetch(`/api/evaluations/${s}/scenarios/${pe.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({scenario:{enabled:pe.enabled===!1}})}),await Hn())},kA=async()=>{R(null);let pe=await fetch(`/api/evaluations/${s}/scenarios`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({scenarios_text:Me})}),tt=await pe.json().catch(()=>({}));if(!pe.ok){R((tt.errors||[tt.error]).filter(Boolean).join(", ")||"Could not save scenarios");return}m(tt.scenarios||[]),b(tt.groups||[]),oe(!1),r?.()},Qe=ws,Ma=!!Qe&&!Array.isArray(Qe.results),Kh=Qe?A[Qe.id]:null,fo=(0,be.useMemo)(()=>(Qe?.results||[]).filter(pe=>pe&&pe.scenario_key),[Qe]),Vh=K0(Qe,fo,e).join("\0"),ya=(0,be.useMemo)(()=>Vh?Vh.split("\0"):[],[Vh]),Ia=(0,be.useMemo)(()=>ZZ(fo,pe=>zu(Qe,pe),vs.current),[fo,Qe]);Vs(()=>{vs.current=Ia});let Tf=(0,be.useMemo)(()=>new Set(P0(Qe,f)),[Qe,f]),Da=md(Qe),Gh=Oh(Qe,ya,f),wd=GJ(Qe,fo,ya,f),Sd=(0,be.useCallback)(pe=>Tf.has(pe.key)||!!Ia[pe.key],[Tf,Ia]),mo=(0,be.useMemo)(()=>nZ(f,Ia,Io.current),[f,Ia]),Ml=(0,be.useMemo)(()=>{let pe={};return mo.forEach(tt=>{let Ct=Sd(tt);pe[tt.key]=Ma?Ct?"loading":"skipped":Qe?y2(Ia[tt.key],ya,{inRun:Ct,running:Da}):"none"}),pe},[mo,Sd,Ia,ya,Qe,Ma,Da]),gb=(0,be.useCallback)(pe=>Ml[pe.key],[Ml]),Yh=(0,be.useMemo)(()=>Da?zZ(mo.map(pe=>({key:pe.key,step:Ml[pe.key]}))):null,[Da,mo,Ml]),kd=(0,be.useCallback)(pe=>ya.some(tt=>{let Ct=Ia[pe.key]?.[tt];return El(Ct)&&!Al(Ct)}),[ya,Ia]),hb=(0,be.useMemo)(()=>mo.filter(kd).length,[mo,kd]),_d=!!Qe&&Qe.status==="complete"&&!Ma,Xh=(0,be.useMemo)(()=>FZ(mo.filter(pe=>!te||(pe.group||"")===te).filter(pe=>!_e||kd(pe)),gb,_d?Fe:"suite"),[mo,te,_e,kd,gb,_d,Fe]),_A=new Set(mo.filter(Sd).map(pe=>pe.group).filter(Boolean)).size,Cd=fo.filter(El).length,yb=fo.filter(pe=>El(pe)&&!Al(pe)).length,CA=Gh*Math.max(ya.length,1),Zh=new Set(fo.filter(pe=>El(pe)&&!Al(pe)).map(pe=>pe.scenario_key)).size,Of=Qe?.scores?._verdict||null,Il=Object.prototype.hasOwnProperty.call(Qe?.scores||{},"_judge_label")?Qe.scores._judge_label||"rules":Of?.judge&&Of.judge!=="pass rate"?Of.judge:e.judge_model||"rules",Ad=(0,be.useMemo)(()=>Qe?XJ(Qe,fo):[],[Qe,fo]),Jh=(0,be.useMemo)(()=>Ma?b_e:EZ(fo,f),[Ma,fo,f]),Qh=Object.keys(Qe?.scores||{}).filter(pe=>!pe.startsWith("_")),qu=(0,be.useCallback)(pe=>VJ(pe,pe.id===Qe?.id?fo:(w[pe.id]?.results||[]).filter(tt=>tt&&tt.scenario_key),e,f),[Qe,fo,w,e,f]),vb=(0,be.useCallback)((pe,tt,Ct)=>{if(!tt||tt.status!=="complete"||pe.status!=="complete")return E0(pe,tt,{olderNumber:Ct});let rr=K0(pe,pe.id===Qe?.id?fo:[],e),lr=K0(tt,[],e),jo=Oh(tt,lr,f)===Oh(pe,rr,f)&&lr.length===rr.length;return E0(pe,tt,{olderNumber:Ct,comparable:jo})},[Qe,fo,e,f]),ie=(0,be.useMemo)(()=>E2({runs:g,runCount:v,evaluation:e,agentName:l,selectedId:Qe?.id??null,previousRun:e.previous_run,barsFor:qu,deltaFor:vb}),[g,v,e,l,Qe?.id,qu,vb]),Ie=ie.find(pe=>pe.run.id===Qe?.id)||null,st=Ie?.number??(Number.isFinite(Qe?.number)?Qe.number:null),zt=Ie?.bars??(Qe?qu(Qe):[]),kn=sf(g,v),ni=!!Qe&&po?.id===Qe.id,Do=md(po)&&po.id!==Qe?.id?po:null,ja=u||f.length>0,ks=ja?f.length:e.scenario_count??0,Ed=ja?f.filter(pe=>pe.enabled!==!1&&(!te||(pe.group||"")===te)).length:ks,ite=`Run ${St(Ed,"scenario")}${Hu.length?` \xD7 ${St(Hu.length,"model")}`:""}`,ste=`@${l} \xB7 ${St(ks,"scenario")}${y.length?` in ${St(y.length,"group")}`:""} \xB7 ${d?"not loaded":u?g.length?St(kn,"run"):"no runs yet":"loading\u2026"}`,xb=Qe&&Qe.status==="complete"?`/evaluations/${s}/runs/${Qe.id}/report`:null,AA=xb?Re(gh(xb).markdown):null,lte=[...new Set([...y,...mo.map(pe=>pe.group).filter(Boolean)])],ute=[{label:`All ${mo.length||ks}`,value:null}].concat(lte.map(pe=>({label:ja?`${pe} ${mo.filter(tt=>tt.group===pe).length}`:pe,value:pe}))),Rh=(0,be.useMemo)(()=>{let pe=[...new Set(mo.map(tt=>tt.group||""))];return pe.some(Boolean)?pe:[]},[mo]),cte=Rh.some(pe=>!F.has(pe)),EA=mo.length===0,dte=_e?"[+] nothing failed in this group":"[ ] no scenarios";(0,be.useEffect)(()=>{ee(!0),rt(new Map),Je("suite"),E(null)},[Qe?.id]),(0,be.useEffect)(()=>{me(RI(f,Tf))},[Qe?.id,u]);let Ej=(0,be.useRef)(Qe?.id??null);(0,be.useEffect)(()=>{if(Ej.current!==(Qe?.id??null)){Ej.current=Qe?.id??null;return}!Da||!$||me(pe=>{let tt=new Set(pe);return Rh.forEach(Ct=>{if(et.has(Ct))return;let rr=mo.filter(lr=>(lr.group||"")===Ct&&Sd(lr));rr.length&&(rr.every(lr=>Ml[lr.key]==="passed")&&tt.add(Ct),rr.some(lr=>lr.key===Yh)&&tt.delete(Ct))}),w_e(tt,pe)?pe:tt})},[Qe?.id,Yh,Cd,$,Da]);let pte=pe=>{let tt=F.has(pe);me(Ct=>{let rr=new Set(Ct);return tt?rr.delete(pe):rr.add(pe),rr}),rt(Ct=>new Map(Ct).set(pe,tt))},Nj=pe=>{me(new Set(pe?[]:Rh)),rt(new Map(Rh.map(tt=>[tt,pe])))},fte=pe=>{ue(pe),LZ(aQ(),pe)},mte=(0,be.useCallback)(pe=>{E(tt=>tt===pe?null:pe),ee(!1)},[]),gte=(0,be.useCallback)(()=>ee(!1),[]),hte=(0,be.useCallback)(pe=>{let tt=Array.isArray(pe)?pe[0]:pe;if(!tt)return;let Ct=mo.find(rr=>rr.key===tt)?.group||"";He(null),D(!1),me(rr=>{if(!rr.has(Ct))return rr;let lr=new Set(rr);return lr.delete(Ct),lr}),rt(rr=>new Map(rr).set(Ct,!0)),E(tt),ee(!1),requestAnimationFrame(()=>{let rr=Tt.current;rr&&(rr.scrollIntoView({behavior:"smooth",block:"start"}),rr.querySelector(`[data-scenario-key="${z2(tt)}"]`)?.focus({preventScroll:!0}))})},[mo]),yte=()=>{Lt.current?.scrollIntoView({behavior:"smooth",block:"start"}),Lt.current?.focus({preventScroll:!0})},vte=()=>{Qe&&(C(pe=>{let{[Qe.id]:tt,...Ct}=pe;return Ct}),nn(Qe.id))},Tj=()=>{po&&fb(po)},Oj=EA&&d?be.default.createElement(Jr,{style:vf},"[!] suite not loaded"):EA&&!u?be.default.createElement(Jr,{style:vf},"loading\u2026"):EA?be.default.createElement(Jr,{style:vf},"No scenarios yet \u2014 paste some with \u201CEdit scenarios\u201D."):S!=null&&!Qe?be.default.createElement(Jr,{style:vf},"loading\u2026"):Kh&&!Array.isArray(Qe.results)?be.default.createElement(Jr,{style:vf},`[!] results not loaded (${Kh}) \xB7 `,be.default.createElement(Gr,{onClick:vte,title:"Fetch this run's results again",testId:"suite-detail-retry"},"retry")):be.default.createElement(tQ,{rows:Xh,columns:Qe?ya:[],run:Qe,resultsByKey:Ia,runKeys:Tf,running:Da,loading:Ma,stepsByKey:Ml,currentKey:Yh,bars:zt,detail:pt,showKey:Qt,collapsedGroups:F,onToggleGroup:pte,openKey:G,onToggleRow:mte,following:$,onStopFollowing:gte,emptyLabel:dte,maxHeight:QI,boxRef:Tt,renderDetail:pe=>be.default.createElement(rQ,{scenario:pe,run:Qe,columns:Qe?ya:[],resultsByKey:Ia,running:Da,inRun:Sd(pe),canMutate:!pe.orphan,onRerun:tt=>ro({keys:[tt.key]}),onToggleEnabled:mb,markdownUrl:AA})}),Pj={rows:ie,runs:g,runCount:v,evaluation:e,agentName:l,selectedId:Qe?.id??null,onOpen:fb,noteFor:pe=>XI(pe,f),linkedRun:N,linkedBars:N&&qu(N)};return be.default.createElement("div",{ref:ot,style:{padding:16,display:"flex",flexDirection:"column",gap:16},"data-testid":"scenario-suite-panel","data-layout":ve?"rail":"strip"},be.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"}},be.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-secondary)"}},ste),be.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},be.default.createElement(ce,{size:"sm",onClick:()=>{fe(hJ(f)),R(null),oe(!q)}},q?"Cancel":"Edit scenarios"),be.default.createElement(j0,{value:Q,onChange:B,models:O,inputLabel:"Models to run",placeholder:"models, e.g. gpt-5-mini, ollama/qwen3:8b",title:"Blank runs the suite's saved models, or the agent's own model when it has none. Prefix a typed name with its provider (ollama/llama3.2) when the name alone is ambiguous.",style:{...MD,minWidth:250,maxWidth:420},testId:"suite-models-picker"}),W.length>0&&be.default.createElement("select",{value:z,onChange:pe=>V(pe.target.value),style:{...MD,maxWidth:260},"aria-label":"Run against sandbox",title:"Replays also reach this checkout sandbox's app runtime, as if the agent listed it in its MCP servers. The agent is not changed.","data-testid":"suite-run-sandbox"},be.default.createElement("option",{value:""},"Run against: agent's own tools"),W.map(pe=>be.default.createElement("option",{key:pe.value,value:pe.value},`Run against sandbox ${pe.label}`))),be.default.createElement(ce,{variant:"primary",size:"sm",disabled:j||!u||Ed===0,onClick:()=>ro(te?{group:te}:{}),testId:"suite-run-button"},j?"Starting\u2026":ite))),(d||I)&&be.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)",background:"var(--color-error-soft)",borderRadius:8,padding:"8px 12px"}},d||I),q&&be.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8}},be.default.createElement("textarea",{value:Me,onChange:pe=>fe(pe.target.value),rows:Math.min(Math.max(f.length+4,6),24),style:{...MD,width:"100%",boxSizing:"border-box",lineHeight:"18px"}}),be.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12,fontSize:12,color:"var(--color-text-muted)",flexWrap:"wrap"}},be.default.createElement("span",{style:{flex:1,minWidth:240}},"One message per line. ",be.default.createElement("code",{style:{fontFamily:U}},"# Heading")," starts a group; ",be.default.createElement("code",{style:{fontFamily:U}},"| tools: a, b"),", ",be.default.createElement("code",{style:{fontFamily:U}},"| contains: x"),", ",be.default.createElement("code",{style:{fontFamily:U}},"| not_contains: y")," set expectations. Keep a scenario's ",be.default.createElement("code",{style:{fontFamily:U}},"key")," to keep its history."),be.default.createElement(ce,{variant:"primary",size:"sm",onClick:kA},"Save scenarios")),le&&be.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},le)),Qe&&be.default.createElement(mD,{run:Qe,runNumber:st,latestNumber:kn,isLatest:ni,runningElsewhere:Do,agentName:l,scenarioCount:Gh,groupCount:_A,columns:ya,judgedBy:Il,bars:zt,delta:Ie?.delta??null,version:Ie?.version??null,totals:wd,settledCount:Cd,settledFailed:yb,expectedResults:CA,running:Da,loading:Ma,spend:Ni(Qe),fixSummary:{items:Ad.length,faults:Math.max(wd.total-wd.passed,0),scenarios:Zh},selectionLabel:XI(Qe,f),sandboxLabel:O0(Qe),reportPath:xb,rerun:Jh,onSelectLatest:Tj,onWatchLatest:Tj,onJumpToFix:yte,onRerunFailed:()=>ro({keys:Jh.keys}),onRunAgain:()=>ro(NZ(Qe,f))}),!ve&&be.default.createElement(pD,{layout:"strip",limit:pZ,...Pj}),be.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},be.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},be.default.createElement(Ue,{style:{marginRight:4}},"Scenarios"),ute.map(pe=>be.default.createElement(jn,{key:pe.label,selected:te===pe.value,onClick:()=>He(pe.value)},pe.label)),be.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},be.default.createElement(jn,{square:!0,mono:!0,selected:pt==="tools",onClick:()=>fte(pt==="tools"?"steps":"tools"),style:{background:"transparent"},title:"Show the tools each replay called and what each cell cost",testId:"suite-detail-toggle"},pt==="tools"?"[x] tools":"[ ] tools"),be.default.createElement(jn,{square:!0,mono:!0,selected:_e,onClick:()=>D(!_e),style:{background:"transparent"},title:"Hide scenarios that passed on every model",testId:"suite-failed-only"},`${_e?"[x]":"[ ]"} failed only${!Ma&&hb?` \xB7 ${hb}`:""}`),Qe&&Qe.status!=="failed"&&(_d?be.default.createElement(jn,{square:!0,mono:!0,selected:Fe==="failed-first",onClick:()=>Je(Fe==="failed-first"?"suite":"failed-first"),style:{background:"transparent"},title:"Groups with the most failures first, and failed scenarios first within each",testId:"suite-order-toggle"},Fe==="failed-first"?"[x] failed first":"[ ] failed first"):be.default.createElement(jn,{square:!0,mono:!0,disabled:!0,style:{background:"transparent"},title:"applies once the run completes",testId:"suite-order-toggle"},"[ ] failed first")),Da&&be.default.createElement(jn,{square:!0,mono:!0,selected:$,onClick:()=>ee(pe=>!pe),style:{background:"transparent"},title:"Keep the step being replayed in view as the run goes",testId:"suite-follow"},$?"[x] follow":"[ ] follow"),Rh.length>1&&(cte?be.default.createElement(Gr,{onClick:()=>Nj(!1),title:"Fold every group",testId:"suite-collapse-all"},"collapse all"):be.default.createElement(Gr,{onClick:()=>Nj(!0),title:"Unfold every group",testId:"suite-collapse-all"},"expand all")))),ve?be.default.createElement("div",{style:{display:"grid",gridTemplateColumns:`${ZI}px minmax(0, 1fr)`,gap:JI,alignItems:"start"}},be.default.createElement(pD,{layout:"rail",maxHeight:QI,...Pj}),Oj):Oj),Qe&&Qe.status!=="failed"&&be.default.createElement(eQ,{run:Qe,columns:ya,results:fo,scenarioCount:Gh,judgedBy:Il,verdict:Of,evaluation:e,onJudgeChanged:r,markdownUrl:AA}),Qe&&Qe.status!=="failed"&&be.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},be.default.createElement("div",{ref:Lt,tabIndex:-1,style:{display:"flex",alignItems:"baseline",gap:10,outline:"none"},"data-testid":"suite-fix-heading"},be.default.createElement(Ue,null,"What to fix"),be.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},Ma?"loading\u2026":`${St(Ad.length,"item")} \xB7 ${St(Math.max(wd.total-wd.passed,0),"fault")} across ${St(Zh,"scenario")}`)),Ma?be.default.createElement(Jr,{style:{...vf,padding:"14px 12px"}},"[ ] loading\u2026"):Ad.length>0?be.default.createElement(nQ,{items:Ad,columns:ya,agentName:l,onNavigate:lt,onOpenScenario:hte,run:Qe,results:fo,evaluation:e,runNumber:st,scenarios:f,onRerun:pe=>ro({keys:uf(pe.scenario_keys||[],f).keys}),runnableFor:pe=>uf(pe.scenario_keys||[],f),markdownUrl:AA}):be.default.createElement(Jr,{style:{...vf,padding:"14px 12px"}},Da?"[ ] scoring\u2026":"[+] nothing to fix")),be.default.createElement(gf,{evaluation:e,run:Qe,keys:Qh.length?Qh:null,spend:Ni(Qe),spendTotal:!0,reportPath:xb,onDelete:n,deleting:o,deleteLabel:"Delete suite"}))}var it=Z(J());var DD=[{type:"response_present",key:"response_present",label:"Response present",config:{}},{type:"min_length",key:"response_length",label:"Response length \u2265 40 chars",config:{chars:40}},{type:"max_latency_ms",key:"latency",label:"Latency \u2264 5s",config:{ms:5e3}},{type:"token_budget",key:"token_budget",label:"Output \u2264 1000 tokens",config:{output_tokens:1e3}}],sQ=[{type:"trace_error_rate",key:"trace_error_rate",label:"Trace error rate \u2264 5% (telemetry, 7d)",config:{max_error_rate:5,window_hours:168}},{type:"trace_latency",key:"trace_latency",label:"Avg trace latency \u2264 5s (telemetry, 7d)",config:{max_avg_ms:5e3,window_hours:168}}],Bu={padding:"8px 12px",borderRadius:8,fontSize:13,fontFamily:"inherit",boxSizing:"border-box",background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"},lQ={margin:"6px 0 0",fontSize:12,color:"var(--color-text-muted)"},S_e={openai:"OpenAI",anthropic:"Anthropic",ollama:"Ollama",openrouter:"OpenRouter"};function jD({agents:e,agentId:t,judgeProvider:r,judgeProviderError:n=!1,modelProviders:o,onCreated:a,onCancel:i}){let[s,l]=(0,it.useState)({agent_id:t?String(t):"",name:"",sample_size:20,criteria:DD.map(C=>C.key),containsPattern:"",llmJudgePrompt:"",judgeKind:"manual",judgeModel:"",compareModels:"",scenariosText:"",compareRestore:new Map}),[u,c]=(0,it.useState)(null),[d,p]=(0,it.useState)(!1),f=(0,it.useId)(),m=(0,it.useMemo)(()=>o===void 0?[]:o??R1,[o]),y=bc(r&&!m.includes(r)?[...m,r]:m),b=__e(s.agent_id),g=(0,it.useMemo)(()=>M0(y,{providers:m.length?m:r?[r]:[]}),[y,m,r]),h=!!s.scenariosText.trim(),v=(0,it.useMemo)(()=>h?M0(y,{providers:m}):b,[y,m,h,b]),x=C=>l(N=>({...N,...C})),S=C=>l(N=>{let L=!!C.trim();if(L===!!N.scenariosText.trim())return{...N,scenariosText:C};let{models:Q,restore:B}=rJ(cd(N.compareModels),y,{providers:m,qualify:L,restore:N.compareRestore});return{...N,scenariosText:C,compareModels:I0(Q),compareRestore:B}}),k=(C,N)=>x({criteria:N?[...s.criteria,C]:s.criteria.filter(L=>L!==C)}),w=()=>{let C=[...DD,...sQ].filter(N=>s.criteria.includes(N.key)).map(({key:N,type:L,config:Q})=>({key:N,type:L,config:Q}));return s.containsPattern.trim()&&C.push({key:"contains",type:"contains",config:{pattern:s.containsPattern.trim()}}),s.llmJudgePrompt.trim()&&C.push({key:"quality",type:"llm_judge",config:{prompt:s.llmJudgePrompt.trim()}}),C},_=async C=>{C.preventDefault(),p(!0),c(null);try{let N=await fetch("/api/evaluations",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({evaluation:{agent_id:s.agent_id,name:s.name,sample_size:s.sample_size,judge_kind:s.judgeKind==="judge_defined"?"judge_defined":s.llmJudgePrompt.trim()?"llm":"rules",judge_model:s.judgeModel.trim()||void 0,compare_models:cd(s.compareModels),criteria:s.judgeKind==="judge_defined"?[]:w(),scenarios_text:s.scenariosText.trim()||void 0}})}),L=await N.json().catch(()=>({}));if(!N.ok)throw new Error((L.errors||[L.error]).filter(Boolean).join(", ")||`Failed to create evaluation (HTTP ${N.status})`);a?.(L.evaluation)}catch(N){c(N.message)}finally{p(!1)}},A=C=>it.default.createElement("label",{key:C.key,style:{display:"flex",alignItems:"center",gap:8,fontSize:13,color:"var(--color-text-primary)"}},it.default.createElement("input",{type:"checkbox",checked:s.criteria.includes(C.key),onChange:N=>k(C.key,N.target.checked),style:{accentColor:"var(--color-accent-ui)"}}),C.label);return it.default.createElement(je,{testId:"new-evaluation-form"},it.default.createElement("form",{onSubmit:_,style:{display:"flex",flexDirection:"column",gap:16}},it.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",style:{display:"block",marginBottom:6}},"Agent"),it.default.createElement("select",{required:!0,disabled:!!t,value:s.agent_id,onChange:C=>x({agent_id:C.target.value}),style:{...Bu,width:"100%",opacity:t?.7:1}},!t&&it.default.createElement("option",{value:""},"Select agent\u2026"),e.map(C=>it.default.createElement("option",{key:C.id,value:C.id},C.name)))),it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",style:{display:"block",marginBottom:6}},"Name"),it.default.createElement("input",{required:!0,type:"text",value:s.name,onChange:C=>x({name:C.target.value}),placeholder:"Response Quality",style:{...Bu,width:"100%"}})),it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",style:{display:"block",marginBottom:6}},"Sample size"),it.default.createElement("input",{type:"number",min:"1",max:"100",value:s.sample_size,onChange:C=>x({sample_size:C.target.value}),style:{...Bu,width:"100%",fontFamily:U}}))),it.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",style:{display:"block",marginBottom:6}},"KPI definition"),it.default.createElement("select",{value:s.judgeKind,onChange:C=>x({judgeKind:C.target.value}),style:{...Bu,width:"100%"}},it.default.createElement("option",{value:"manual"},"Manual criteria"),it.default.createElement("option",{value:"judge_defined"},"Judge defines KPIs from agent goals"))),it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",htmlFor:`${f}-judge`,style:{display:"block",marginBottom:6}},"Judge model (optional)"),it.default.createElement(ru,{id:`${f}-judge`,"aria-describedby":r===void 0?void 0:`${f}-judge-provider`,value:s.judgeModel,models:g,onChange:C=>x({judgeModel:C}),style:{...Bu,width:"100%",fontFamily:U,fontSize:12}}),r!==void 0&&it.default.createElement("p",{id:`${f}-judge-provider`,style:lQ},k_e(r,n))),it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",htmlFor:`${f}-compare`,style:{display:"block",marginBottom:6}},"Compare models (optional)"),it.default.createElement(j0,{inputId:`${f}-compare`,describedBy:`${f}-compare-hint`,value:s.compareModels,onChange:C=>x({compareModels:C}),models:v,placeholder:"e.g. claude-haiku-4-5, qwen3:8b",style:{...Bu,width:"100%",fontFamily:U,fontSize:12}}),it.default.createElement("p",{id:`${f}-compare-hint`,style:lQ},h?"Each model replays the scenarios. Any model name can be typed.":"Compares the agent's generations recorded under each model name. Add scenarios to try any model."))),it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",style:{display:"block",marginBottom:6}},"Scenarios (optional) \u2014 paste user messages to replay, one per line"),it.default.createElement("textarea",{value:s.scenariosText,onChange:C=>S(C.target.value),rows:s.scenariosText?8:3,placeholder:`# Open tickets +`};var fd=e=>[...new Set(e)],OD=(e,t)=>{let r=e?.expectations?.[t];return Array.isArray(r)?r:r==null||r===""?[]:[r]},Th=e=>String(e||"").replace(/_/g," "),Al=e=>e?.status==="passed",El=e=>!!e&&e.status!=="pending",md=e=>!!e&&["pending","running"].includes(e.status);function K0(e,t=[],r=null){if(Array.isArray(e?.models)&&e.models.length)return e.models;let n=Object.keys(e?.scores?._models||{});if(n.length)return n;let o=jZ(e);if(o.length)return o;let a=fd(t.map(s=>zu(e,s)));if(a.length)return a;let i=r?.compare_models||[];return i.length?i:e?["agent's model"]:[]}function zu(e,t){let n=(lf(e).models||[]).filter(i=>i&&typeof i=="object").find(i=>i.model===t.model&&(i.provider||"")===(t.provider||""));if(n?.label)return n.label;let o=e?.scores?._models||{};if(o[t.model])return t.model;let a=[t.provider,t.model].filter(Boolean).join("/");return o[a]?a:t.model}function MD(e,t){let r=e?.scores?._models?.[t],n=(lf(e).models||[]).find(o=>o&&typeof o=="object"&&o.label===t);return bn(t,r?.provider||n?.provider||"")}function Oh(e,t=[],r=[]){let n=P0(e,r);if(n.length)return n.length;let o=Object.values(e?.scores?._models||{});return o.length?Math.max(...o.map(a=>a.scenarios||0)):e?.samples_evaluated&&t.length?Math.round(e.samples_evaluated/t.length):0}function eQ(e,t,r=[],n=0){let o=e?.scores?._models?.[t];if(o&&o.scenarios!=null){let i=o.passed||0,s=o.scenarios||0;return{passed:i,failed:Math.max(s-i,0),total:s}}let a=r.filter(i=>zu(e,i)===t);return{passed:a.filter(Al).length,failed:a.filter(i=>El(i)&&!Al(i)).length,total:n||a.length}}function tQ(e,t=[],r=null,n=[]){let o=K0(e,t,r),a=Oh(e,o,n);return o.map(i=>{let s={label:i,short:bn(i).short};return e?.scores?._models?.[i]?.scenarios!=null||md(e)||t.some(u=>zu(e,u)===i)?{...s,...eQ(e,i,t,a)}:{...s,passed:null,failed:null,total:null}})}function rQ(e,t=[],r=[],n=[]){if(e?.status==="complete"&&e.samples_evaluated!=null)return{passed:e.samples_passed||0,total:e.samples_evaluated||0};let o=Oh(e,r,n)*Math.max(r.length,1);return{passed:t.filter(Al).length,total:o}}function nQ(e,t=[]){let r=[],n={};return(Array.isArray(e)?e:[]).forEach(o=>{let a=typeof o=="string"?o:String(o?.name||"");a&&(n[a]||(n[a]={name:a,count:0,errored:!1},r.push(a)),n[a].count+=1,o&&typeof o=="object"&&o.error&&(n[a].errored=!0))}),r.map(o=>{let a=n[o],i=t.includes(o);return{...a,hit:i,label:`${o}${a.errored?" \u2717":""}${a.count>1?` \xD7${a.count}`:""}`,color:a.errored?"var(--color-error)":i?"var(--color-success-text)":"var(--color-text-muted)",weight:a.errored||i?600:400}})}var m_e=(e,t)=>{let r=String(e||"").trim();return r.length>t?`${r.slice(0,t-1)}\u2026`:r},ND=e=>e?.diagnosis?.judge?.instruction_change;function oQ(e,t=[]){let r=e?.scores?._recommendations||[];if(Array.isArray(e?.fix_items)){let a=r.length>0||t.some(ND);if(e.fix_items.length>0||!a)return e.fix_items}let n=r.map(a=>g_e(a,t)),o=new Set;return t.forEach(a=>{let i=ND(a);if(!i||o.has(i))return;o.add(i);let s=t.filter(l=>ND(l)===i);n.push({kind:"instruction",fault:"instruction change",count:s.length,scenario_keys:fd(s.map(l=>l.scenario_key)),models:fd(s.map(l=>zu(e,l))),recommendation:a.diagnosis.judge.recommendation||a.recommendation||"",quote:i,tools_label:null,tools:[],server:null,note:null,action:{label:"Add to instructions",hint:"Agent -> Instructions",path:null}})}),n}function g_e(e,t){let r=e.fault,n=t.filter(u=>u.fault===r),o=(e.suggested_tools||[]).map(u=>typeof u=="string"?u:u?.name).filter(Boolean),a=null,i=[],s=null,l=null;if(r==="expected_tool_not_called"){a="missing tools";let u=fd(n.flatMap(d=>d.diagnosis?.evidence?.unavailable||[]));u.length||(u=fd(n.flatMap(d=>{let p=d.diagnosis?.evidence||{};return(p.expected||[]).filter(f=>!(p.called||[]).includes(f))}))),i=u.map(d=>({name:d,note:null,server:null}));let c=n.filter(d=>d.diagnosis?.summary&&(d.diagnosis?.evidence?.unavailable||[]).length===0);c.length&&c.length`${d.scenario_key} is the exception: ${d.diagnosis.summary} ${d.diagnosis.recommendation||""}`.trim()).join(" "))}else if(r==="tool_error"){a="failing tools";let u={};n.forEach(c=>(c.tool_calls||[]).forEach(d=>{!d||typeof d!="object"||!d.error||!d.name||u[d.name]||(u[d.name]={name:d.name,note:m_e(d.detail,60)||null,server:null})})),i=Object.values(u),l={label:"Open failing tools",hint:"Tools ->",path:"/tools"}}else a=o.length?"suggested tools":null,i=fd(o).map(u=>({name:u,note:null,server:null}));return!l&&a==="suggested tools"&&i.length&&(l={label:"Open suggested tools",hint:"Tools ->",path:"/tools"}),{kind:"fault",fault:r,count:e.count||n.length,scenario_keys:e.scenario_keys||fd(n.map(u=>u.scenario_key)),models:e.models||[],recommendation:e.recommendation||"",quote:null,tools_label:a,tools:i,server:null,note:s,action:l}}var ID=e=>e?.cost_source==="estimated",aQ=e=>{let t=e?.judge_usage;return t?t.estimated??(t.source!=null&&t.source!=="reported"):!1},z2=e=>{if(!e)return null;let t=e.judge_usage?.cost??null;if(e.cost==null&&t==null)return null;let r=[Pr(e.cost,{estimated:ID(e)})];return t!=null&&r.push(`judge ${Pr(t,{estimated:aQ(e)})}`),r.join(" \xB7 ")},iQ=e=>{if(!ID(e))return;let t=e.cost_rate||null;return Em({inputTokens:t?.input_tokens??e.input_tokens,outputTokens:t?.output_tokens??e.output_tokens,rate:t})},h_e=(e,t,r={})=>{let n=e?.costs?.scenarios?.[t];if(n&&typeof n=="object")return n.cost==null&&n.judge_cost==null?null:{cost:n.cost??null,judgeCost:n.judge_cost??null,total:n.total??null,estimated:!!n.estimated};let o=Object.values(r||{}).filter(El),a=o.map(u=>u.cost).filter(u=>u!=null),i=o.map(u=>u.judge_usage?.cost).filter(u=>u!=null);if(!a.length&&!i.length)return null;let s=a.length?a.reduce((u,c)=>u+Number(c),0):null,l=i.length?i.reduce((u,c)=>u+Number(c),0):null;return{cost:s,judgeCost:l,total:(s||0)+(l||0),estimated:o.some(u=>ID(u)||aQ(u))||a.length>0&&a.length{let t=e.filter(Boolean);if(!t.length)return null;let r=t.filter(i=>i.cost!=null),n=t.filter(i=>i.judgeCost!=null),o=r.length?r.reduce((i,s)=>i+s.cost,0):null,a=n.length?n.reduce((i,s)=>i+s.judgeCost,0):null;return{cost:o,judgeCost:a,total:(o||0)+(a||0),estimated:t.some(i=>i.estimated)}};function sQ({entry:e,compact:t=!1,testId:r,tokens:n=null}){let o={display:"flex",flexDirection:"column",gap:1,minWidth:0,textAlign:"right"},a=n&&(n.input!=null||n.output!=null)?se.default.createElement("span",{"data-testid":r?`${r}-tokens`:void 0,title:"input\u2192output tokens across the models",style:{...Ur(10.5),whiteSpace:"nowrap"}},jI(n.input,n.output)):null;if(!e)return se.default.createElement("span",{style:o,"data-testid":r},se.default.createElement("span",{style:Ur(12)},"\u2014"),a);if(t){let i=e.total??(e.cost!=null||e.judgeCost!=null?(e.cost||0)+(e.judgeCost||0):null),s=[];return e.cost!=null&&s.push(`agent ${Pr(e.cost,{estimated:e.estimated})}`),e.judgeCost!=null&&s.push(`judge ${Pr(e.judgeCost,{estimated:e.estimated})}`),se.default.createElement("span",{style:o,"data-testid":r},se.default.createElement("span",{title:s.join(" \xB7 ")||void 0,style:{fontFamily:W,fontSize:11,fontWeight:600,color:"var(--color-text-primary)",whiteSpace:"nowrap"}},Pr(i,{estimated:e.estimated})),a)}return se.default.createElement("span",{style:{...o,fontFamily:W,fontSize:11,color:"var(--color-text-secondary)"},"data-testid":r},se.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},Pr(e.cost,{estimated:e.estimated})),e.judgeCost!=null&&se.default.createElement("span",{style:{color:"var(--color-text-muted)",whiteSpace:"nowrap"}},`judge ${Pr(e.judgeCost,{estimated:e.estimated})}`),a)}var Ur=(e,t="var(--color-text-muted)",r={})=>({fontFamily:W,fontSize:e,color:t,...r});function lQ({calls:e,empty:t,style:r}){return se.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"2px 8px",fontFamily:W,fontSize:11,...r}},e.map(n=>se.default.createElement("span",{key:n.name,style:{color:n.color,fontWeight:n.weight}},n.label)),e.length===0&&se.default.createElement("span",{style:{color:"var(--color-text-muted)"}},t))}function uQ({run:e,columns:t,results:r=[],scenarioCount:n=0,judgedBy:o,verdict:a,evaluation:i=null,onJudgeChanged:s,markdownUrl:l=null}){let u=e?.scores?._models||{},c=Oi(e)?.judge?.estimated??!0;return se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10},"data-testid":"suite-models-panel"},se.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:10,flexWrap:"wrap"}},se.default.createElement(Ue,null,"Models"),se.default.createElement(wD,{evaluation:i,run:e,label:o,onChanged:s,testId:"suite-judge"}),se.default.createElement(_l,{url:g2(l,{part:"verdict"}),testId:"copy-verdict-markdown",title:"Copy the verdict and the model comparison as Markdown",style:{marginLeft:"auto"}})),t.length===0&&se.default.createElement(Jr,{style:{border:"1px solid var(--color-border-light)",borderRadius:10}},"[ ] no models scored yet"),t.length>1&&se.default.createElement(F0,{rows:b2(e,{results:r,scenarioCount:n,columns:t,labelFor:d=>zu(e,d)}),unit:"scenario",judgedBy:o,judgeEstimated:c}),t.length>1&&se.default.createElement(bD,{plot:TZ(e)}),t.length>0&&se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(260px, 1fr))",gap:12}},t.map(d=>{let{short:p,provider:f}=MD(e,d),m=u[d],{passed:y,total:b}=eQ(e,d,r,n),g=Object.entries(m?.faults||{}),h=yh(m,m?.scenarios),v=m&&g.length===0?{text:"[+] no faults",color:"var(--color-success-text)"}:!m&&md(e)?{text:"scoring\u2026"}:null;return se.default.createElement(z0,{key:d,label:d,short:p,provider:f,winner:a?.winner===d,passed:y,total:b,avgScore:m?.avg_score,latencyMs:m?.avg_duration_ms,p50Ms:m?.p50_duration_ms??null,p95Ms:m?.p95_duration_ms??null,inputTokens:m?.input_tokens,outputTokens:m?.output_tokens,cost:m?.cost,perInteraction:af(m?.cost,h),estimated:y2(m,m?.scenarios),judgeCost:m?.judge_cost,judgeCalls:m?.judge_calls||0,judgeEstimated:c,unit:"scenario",badges:g.map(([x,S])=>({tone:"error",text:`${Th(x)} \xD7${S}`})),note:v})})),a?.rationale&&se.default.createElement(je,{padding:"12px 16px",testId:"suite-verdict",style:{display:"flex",flexDirection:"column",gap:6}},se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},se.default.createElement(Ue,null,"Verdict"),a.judge&&se.default.createElement("span",{style:Ur(11)},`judged by ${a.judge}`)),se.default.createElement("div",{style:{fontSize:13,lineHeight:"19px",color:"var(--color-text-cell)",textWrap:"pretty"}},se.default.createElement("strong",{style:{color:"var(--color-text-primary)",fontFamily:W,fontSize:12}},a.winner),a.rationale?` \xB7 ${a.rationale}`:"")))}var v_e=(e,t)=>e==="tools"?["minmax(220px, 1.6fr)","130px",...Array(t).fill("minmax(160px, 1fr)"),"110px"].join(" "):["minmax(200px, 1.6fr)",...Array(t).fill("minmax(130px, 1fr)"),"80px","48px"].join(" "),PD={tools:10,steps:8},TD=[],x_e={},QJ=new Set,B2=e=>typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(String(e)):String(e).replace(/["\\]/g,"\\$&"),b_e=600,RJ=e=>typeof e=="number"?`${e}px`:e,w_e=e=>["INPUT","TEXTAREA","SELECT"].includes(e?.tagName);function S_e({result:e,expects:t,pending:r,compact:n=!1}){if(!e)return se.default.createElement("span",{style:{...Ur(12),fontWeight:600}},r?"\u2026":"\u2014");if(!El(e))return se.default.createElement("span",{style:{...Ur(12),fontWeight:600}},"\u2026");let o=Al(e),a=o?"var(--color-success)":"var(--color-error)",i=nQ(e.tool_calls,t);if(n){let s=e.fault?Th(e.fault):e.status==="errored"?"errored":null,l=z2(e),u=`${i.map(c=>c.label).join(" ")||"no tools called"}${l?` \xB7 ${l}`:""}`;return se.default.createElement("span",{title:u,style:{display:"flex",flexDirection:"column",gap:1,minWidth:0}},se.default.createElement("span",{style:{display:"flex",alignItems:"baseline",gap:6,minWidth:0,fontFamily:W,fontSize:12,whiteSpace:"nowrap"}},se.default.createElement("span",{style:{fontWeight:700,color:a,flexShrink:0}},o?"[+]":"[!]"),se.default.createElement("span",{style:{fontWeight:600,color:a,flexShrink:0}},ia(e.score)),s&&se.default.createElement("span",{style:{fontSize:11,color:"var(--color-error-text)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis"}},s)),se.default.createElement(F2,{metrics:k2(e)}))}return se.default.createElement("div",{style:{minWidth:0,display:"flex",flexDirection:"column",gap:3}},se.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:6,flexWrap:"wrap",fontFamily:W,fontSize:12}},se.default.createElement("span",{style:{fontWeight:700,color:a}},o?"[+]":"[!]"),se.default.createElement("span",{style:{fontWeight:600,color:a}},ia(e.score)),e.fault&&se.default.createElement("span",{style:{fontSize:11,color:"var(--color-error-text)"}},Th(e.fault))),se.default.createElement(lQ,{calls:i,empty:"no tools called"}),se.default.createElement(F2,{metrics:k2(e)}),z2(e)&&se.default.createElement("span",{style:{...Ur(11,"var(--color-text-secondary)"),whiteSpace:"nowrap"},title:iQ(e),"data-testid":"scenario-cell-cost"},z2(e)))}var k_e=e=>{if(!e)return null;let t=[];e.durationMs!=null&&t.push(_2(e.durationMs));let r=jI(e.inputTokens,e.outputTokens);return r!=="\u2014"&&t.push(r),t.length?t.join(" \xB7 "):null};function F2({metrics:e,testId:t="scenario-cell-metrics",title:r="time to answer \xB7 input\u2192output tokens",style:n}){let o=k_e(e);return o?se.default.createElement("span",{"data-testid":t,title:r,style:{...Ur(10.5),whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0,...n}},o):null}var U2={passed:{text:"[+]",color:"var(--color-success)",title:"passed on every model"},failed:{text:"[!]",color:"var(--color-error)",title:"failed on at least one model"},running:{text:"[~]",color:"var(--color-warning-text)",title:"running"},queued:{text:"[ ]",color:"var(--color-text-muted)",title:"queued"},missing:{text:"[?]",color:"var(--color-text-muted)",title:"the run ended without its results"},skipped:{text:"[-]",color:"var(--color-text-muted)",title:"not in this run"},none:{text:"[ ]",color:"var(--color-text-muted)",title:"not run yet"},loading:{text:"[ ]",color:"var(--color-text-muted)",title:"loading results\u2026"}},__e=(e,t)=>e===t||!!e&&!!t&&e.cost===t.cost&&e.judgeCost===t.judgeCost&&e.total===t.total&&e.estimated===t.estimated,C_e=(e,t)=>e===t||!!e&&!!t&&e.input===t.input&&e.output===t.output,A_e=(e,t)=>e.scenario===t.scenario&&e.results===t.results&&e.columns===t.columns&&e.step===t.step&&e.current===t.current&&e.open===t.open&&e.detail===t.detail&&e.showKey===t.showKey&&e.grid===t.grid&&e.inSelection===t.inSelection&&e.running===t.running&&e.loading===t.loading&&e.tabIndex===t.tabIndex&&__e(e.costEntry,t.costEntry)&&C_e(e.tokens,t.tokens)&&e.timeMs===t.timeMs,E_e=se.default.memo(function({scenario:t,results:r,columns:n,step:o,current:a,open:i,detail:s,showKey:l,grid:u,inSelection:c,running:d,loading:p,costEntry:f,tokens:m=null,timeMs:y,tabIndex:b,onToggle:g,onFocus:h}){let v=t.key,x=s==="steps",S=OD(t,"tools"),k=t.enabled===!1,w=U2[o]||U2.none,_=`${v}${k?" \xB7 disabled":""}`,A=se.default.createElement("span",{"data-testid":"scenario-step",title:w.title,style:{...Ur(11,w.color),fontWeight:700,flexShrink:0}},w.text),C={fontFamily:W,fontSize:11,padding:"2px 6px",border:"1px solid var(--color-border)",borderRadius:4,color:"var(--color-text-cell)",whiteSpace:"nowrap"};return se.default.createElement("div",{"data-testid":"scenario-row","data-scenario-key":v,"data-step":o,"data-nav":v,"data-current":a?"true":void 0,role:"button","aria-expanded":i,tabIndex:b,title:x&&!l?`${_} \xB7 ${t.prompt||""}`:void 0,onClick:()=>g(v),onKeyDown:N=>{(N.key==="Enter"||N.key===" ")&&(N.preventDefault(),g(v))},onFocus:N=>h(v,N),className:i?void 0:"hover:bg-[var(--color-hover)]",style:{display:"grid",gridTemplateColumns:u,gap:PD[s]??PD.steps,padding:x?"6px 12px":"10px 12px",alignItems:x?"center":void 0,borderTop:"1px solid var(--color-border-light)",cursor:"pointer",background:i?"var(--color-muted)":void 0,boxShadow:a?"inset 2px 0 0 var(--color-warning)":void 0,opacity:k?.5:1}},x?se.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,minWidth:0}},A,l&&se.default.createElement("span",{style:{...Ur(11),minWidth:0,maxWidth:"40%",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},_),se.default.createElement("span",{title:l?t.prompt:void 0,style:{flex:1,minWidth:0,fontSize:13,color:t.orphan?"var(--color-text-muted)":"var(--color-text-primary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},t.prompt)):se.default.createElement(se.default.Fragment,null,se.default.createElement("div",{style:{minWidth:0}},se.default.createElement("div",{style:{...Ur(11),marginBottom:2,display:"flex",gap:6}},A,se.default.createElement("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"}},_)),se.default.createElement("div",{style:{fontSize:13,lineHeight:"18px",color:"var(--color-text-primary)",textWrap:"pretty"}},t.prompt)),se.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:4,alignContent:"flex-start",minWidth:0}},S.map(N=>se.default.createElement("span",{key:N,style:C},N)),S.length===0&&OD(t,"contains").map(N=>se.default.createElement("span",{key:`contains-${N}`,style:C,title:"the answer must contain this"},`contains: ${N}`)))),n.map(N=>se.default.createElement(S_e,{key:N,result:r?.[N],expects:S,pending:(d||p)&&c,compact:x})),se.default.createElement(sQ,{entry:f,compact:x,testId:"scenario-row-cost",tokens:m}),x&&se.default.createElement("span",{"data-testid":"scenario-row-time",title:"the slowest answer across the models",style:{...Ur(11),textAlign:"right",whiteSpace:"nowrap"}},_2(y)))},A_e);function cQ({rows:e=TD,columns:t=TD,run:r=null,resultsByKey:n=x_e,runKeys:o=QJ,running:a=!1,loading:i=!1,stepsByKey:s=null,currentKey:l=null,bars:u=TD,detail:c="steps",showKey:d=!0,collapsedGroups:p=QJ,onToggleGroup:f,openKey:m=null,onToggleRow:y,following:b=!1,onStopFollowing:g,emptyLabel:h,maxHeight:v=null,renderDetail:x,boxRef:S=null,testId:k="scenario-matrix"}){let w=t.length===0?"tools":c,_=w==="steps",A=v_e(w,t.length),C=PD[w],N=_?HZ(t.length):qZ(t.length),L=ue=>o.has(ue.key)||!!n[ue.key],J=ue=>r?i?L(ue)?"loading":"skipped":v2(n[ue.key],t,{inRun:L(ue),running:a}):"none",B=ue=>s?.[ue.key]??J(ue),K=new Map(e.map(ue=>[ue.key,h_e(r,ue.key,n[ue.key])])),T=[...K.values()].some(ue=>ue?.estimated),P=new Map(e.map(ue=>[ue.key,JZ(n[ue.key],t)])),I=nD(n,t),M=e.some(ue=>ue.group),j=[];e.forEach(ue=>{let Fe=ue.group||"",Je=j.find(ot=>ot.name===Fe);Je||(Je={name:Fe,rows:[]},j.push(Je)),Je.rows.push(ue)});let O=ue=>(ue||M)&&p.has(ue),[F,V]=(0,se.useState)(null),z=[];j.forEach(ue=>{(ue.name||M)&&z.push(`group:${ue.name}`),O(ue.name)||ue.rows.forEach(Fe=>z.push(Fe.key))});let G=new Set(z),q=[F,m,l].find(ue=>ue!=null&&G.has(ue))??z[0]??null,oe=(0,se.useRef)(null),Me=(0,se.useRef)(null),[fe,le]=(0,se.useState)(50),[R,te]=(0,se.useState)(0),He=(0,se.useRef)(fe),_e=(0,se.useRef)({});Vs(()=>{He.current=fe,_e.current={onToggleRow:y,onStopFollowing:g}});let D=(0,se.useCallback)(ue=>{oe.current=ue,S&&(S.current=ue)},[S]),Y=(0,se.useCallback)(ue=>_e.current.onToggleRow?.(ue),[]),E=(0,se.useCallback)((ue,Fe)=>{V(ue);let Je=oe.current;Je&&!Je.contains(Fe.relatedTarget)&&_e.current.onStopFollowing?.()},[]),$=()=>g?.();Vs(()=>{let ue=Me.current;if(!ue)return;let Fe=()=>{let ot=ue.offsetHeight;ot&&le(Tt=>Tt===ot?Tt:ot)};if(Fe(),typeof ResizeObserver>"u")return;let Je=new ResizeObserver(Fe);return Je.observe(ue),()=>Je.disconnect()},[]);let ee=(0,se.useCallback)(ue=>{if(!ue){te(0);return}let Fe=()=>te(ue.offsetHeight);Fe();let Je=typeof ResizeObserver>"u"?null:new ResizeObserver(Fe);Je?.observe(ue);let ot=oe.current,Tt=ue.previousElementSibling;if(ot&&Tt?.hasAttribute("data-scenario-key")){let Lt=Tt.closest("[data-group]")?.querySelector('[data-testid="scenario-group-row"]');ot.scrollTo({top:lJ({rowTop:Tt.offsetTop,headerHeight:He.current,groupRowHeight:Lt?.offsetHeight??0}),behavior:"smooth"})}return()=>{Je?.disconnect(),te(0)}},[]),U=(0,se.useRef)(null),me=(0,se.useRef)(null),et=(0,se.useRef)(0);Vs(()=>{let ue=oe.current;if(!ue||!b||!l){U.current=l;return}let Fe=ue.querySelector(`[data-scenario-key="${B2(l)}"]`);if(!Fe)return;let Je=sJ({rowTop:Fe.offsetTop,headerHeight:fe,boxHeight:ue.clientHeight});if(Math.abs(Je-ue.scrollTop)>4){let ot=Date.now(){let Fe=oe.current;if(!Fe||!ue)return;let Je=ue.hasAttribute("data-scenario-key")?ue.closest("[data-group]")?.querySelector('[data-testid="scenario-group-row"]'):null,ot=He.current+(Je?.offsetHeight??0);ue.offsetTop-otFe.scrollTop+Fe.clientHeight&&(Fe.scrollTop=ue.offsetTop+ue.offsetHeight-Fe.clientHeight)};return se.default.createElement("div",{ref:D,"data-testid":k,"data-detail":w,onWheel:$,onTouchMove:$,onKeyDown:ue=>{if(w_e(ue.target))return;let Fe=oe.current;if(Fe){if(ue.key==="ArrowDown"||ue.key==="ArrowUp"){let Je=[...Fe.querySelectorAll("[data-nav]")];if(!Je.length)return;let ot=Je.indexOf(ue.target);ot<0&&(ot=Je.findIndex(Lt=>Lt.hasAttribute("data-scenario-key")&&Lt.parentElement?.contains(ue.target)));let Tt=ot<0?Je[0]:Je[Math.min(Math.max(ot+(ue.key==="ArrowDown"?1:-1),0),Je.length-1)];ue.preventDefault(),g?.(),Tt&&Tt!==ue.target&&(Tt.focus({preventScroll:!0}),rt(Tt));return}ue.key==="Escape"&&m&&(y?.(m),Fe.querySelector(`[data-scenario-key="${B2(m)}"]`)?.focus({preventScroll:!0}))}},style:{border:"1px solid var(--color-border-light)",borderRadius:10,overflow:"auto",position:"relative",scrollbarGutter:"stable",maxHeight:v?R?`calc(${RJ(v)} + ${R}px)`:RJ(v):void 0}},se.default.createElement("div",{style:{minWidth:N}},se.default.createElement("div",{ref:Me,style:{display:"grid",gridTemplateColumns:A,gap:C,padding:"8px 12px",alignItems:"end",position:"sticky",top:0,zIndex:2,backgroundColor:"var(--color-surface)",backgroundImage:"linear-gradient(var(--color-muted), var(--color-muted))"}},se.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},_?"Step":"Scenario"),!_&&se.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},"Expects"),t.map(ue=>{let{short:Fe,provider:Je}=MD(r,ue),ot=u.find(Tt=>Tt.label===ue);return se.default.createElement("span",{key:ue,style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},title:ue},se.default.createElement("span",{style:{fontFamily:W,fontSize:11,fontWeight:600,color:"var(--color-text-primary)"}},Fe),se.default.createElement("span",{style:Ur(10)},Je||" "),ot&&ot.passed!=null&&ot.total!=null&&se.default.createElement(tu,{passed:ot.passed,total:ot.total,height:4,valueWidth:48,style:{marginTop:3}}),se.default.createElement(F2,{metrics:I[ue],testId:"scenario-column-totals",title:"this model's answers' time added up, and its input\u2192output tokens, over the results in",style:{marginTop:2}}))}),se.default.createElement("span",{style:{textAlign:"right"},title:"What the scenario cost across every model, and what judging it cost; under it, its input\u2192output tokens"},se.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},"Cost")),_&&se.default.createElement("span",{style:{textAlign:"right"},title:"The slowest answer across the run's models; a group's add up"},se.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},"Time"))),j.map(ue=>{let Fe=ue.name,Je=O(Fe),ot=`group:${Fe}`,Tt=ue.rows.filter(L),Lt=U2[YZ(ue.rows.map(B))]||U2.none,Hr=nD(n,t,ue.rows.map(yt=>yt.key)),Io=t.map(yt=>{let to=Hr[yt];if(!Tt.length)return{label:yt,text:"not in this run",color:"var(--color-text-muted)",weight:400,metrics:to};if(i)return{label:yt,text:"loading\u2026",color:"var(--color-text-muted)",weight:400,metrics:to};let bs=Tt.filter(pt=>El(n[pt.key]?.[yt]));if(a&&!bs.length)return{label:yt,text:"queued",color:"var(--color-text-muted)",weight:400,metrics:to};let ws=bs.filter(pt=>Al(n[pt.key][yt])).length,ve=Tt.length,nt=ve&&ws===ve?"var(--color-success-text)":ws===0?"var(--color-error-text)":"var(--color-text-cell)";return{label:yt,text:`${Vn(ws,ve)} passed`,color:nt,weight:600,metrics:to}}),xs=y_e(ue.rows.map(yt=>K.get(yt.key))),Di=QZ(ue.rows.map(yt=>P.get(yt.key)));return se.default.createElement("div",{key:Fe||"__ungrouped","data-group":Fe},(Fe||M)&&se.default.createElement("div",{"data-testid":"scenario-group-row","data-group":Fe,"data-collapsed":Je?"true":"false","data-nav":ot,role:"button","aria-expanded":!Je,tabIndex:q===ot?0:-1,onClick:()=>f?.(Fe),onKeyDown:yt=>{(yt.key==="Enter"||yt.key===" "||yt.key==="ArrowLeft"&&!Je||yt.key==="ArrowRight"&&Je)&&(yt.preventDefault(),f?.(Fe))},onFocus:yt=>E(ot,yt),style:{display:"grid",gridTemplateColumns:A,gap:C,padding:"7px 12px",alignItems:"center",borderTop:"1px solid var(--color-border-light)",background:"var(--color-background)",cursor:"pointer",position:"sticky",top:fe,zIndex:1}},se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0}},se.default.createElement(Sa,{kind:"chevron",open:!Je}),se.default.createElement("span",{"data-testid":"scenario-group-step",title:Lt.title,style:{...Ur(11,Lt.color),fontWeight:700,flexShrink:0}},Lt.text),se.default.createElement("span",{style:{fontSize:12,fontWeight:600,color:"var(--color-text-primary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},Fe||"ungrouped"),_&&se.default.createElement("span",{style:{...Ur(11),whiteSpace:"nowrap"}},`\xB7 ${St(ue.rows.length,"scenario")}`)),!_&&se.default.createElement("span",{style:Ur(11)},St(ue.rows.length,"scenario")),Io.map(yt=>se.default.createElement("span",{key:yt.label,style:{display:"flex",flexDirection:"column",gap:1,minWidth:0}},se.default.createElement("span",{style:{fontFamily:W,fontSize:11,fontWeight:yt.weight,color:yt.color,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},yt.text),se.default.createElement(F2,{metrics:yt.metrics,testId:"scenario-group-metrics",title:"the group's answers' time added up, and their input\u2192output tokens, on this model"}))),se.default.createElement(sQ,{entry:xs,compact:_,testId:"scenario-group-cost",tokens:Di}),_&&se.default.createElement("span",{"data-testid":"scenario-group-time",title:"the group's scenarios' times added up",style:{...Ur(11),textAlign:"right",whiteSpace:"nowrap"}},_2(RZ(ue.rows,n,t)))),!Je&&ue.rows.map(yt=>{let to=m===yt.key;return se.default.createElement("div",{key:yt.key},se.default.createElement(E_e,{scenario:yt,results:n[yt.key],columns:t,step:B(yt),current:yt.key===l,open:to,detail:w,showKey:d,grid:A,inSelection:L(yt),running:a,loading:i,costEntry:K.get(yt.key)??null,tokens:P.get(yt.key)??null,timeMs:rD(n[yt.key],t),tabIndex:q===yt.key?0:-1,onToggle:Y,onFocus:E}),to&&se.default.createElement("div",{ref:ee},x?.(yt)))}))}),e.length===0&&se.default.createElement(Jr,{style:{borderTop:"1px solid var(--color-border-light)"}},h||"[+] nothing failed in this group"),T&&se.default.createElement("div",{style:{...Ur(11),padding:"6px 12px",borderTop:"1px solid var(--color-border-light)",textAlign:"right"},"data-testid":"scenario-matrix-legend"},il)))}function N_e(e){let t=[];e.duration_ms!=null&&t.push(Bn(e.duration_ms)),(e.input_tokens!=null||e.output_tokens!=null)&&t.push(`${On((e.input_tokens||0)+(e.output_tokens||0))} tokens`);let r=z2(e);return r&&t.push(r),t.join(" \xB7 ")}function T_e({label:e,run:t,result:r,expects:n,running:o}){let{short:a}=MD(t,e),i=se.default.createElement("span",{style:{fontFamily:W,fontSize:12,fontWeight:600,color:"var(--color-text-primary)"},title:e},a),s=(g,h)=>se.default.createElement("div",{"data-testid":"scenario-result-detail",style:{background:"var(--color-card)",border:"1px solid var(--color-border-light)",borderRadius:10,overflow:"hidden",minWidth:0}},se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 12px",borderBottom:"1px solid var(--color-border-light)",flexWrap:"wrap"}},i,h),se.default.createElement("div",{style:{padding:"10px 12px",display:"flex",flexDirection:"column",gap:10}},g));if(!r||!El(r))return s(se.default.createElement("span",{style:Ur(11)},o?"waiting for this replay\u2026":"not part of this run"),se.default.createElement(ke,{tone:"muted"},o?"pending":"no result"));let u=Al(r)?"success":"error",c=nQ(r.tool_calls,n),d=r.diagnosis||{},p=d.judge||{},f=r.fault||(r.status==="errored"?"run_error":null),m=[d.summary,d.recommendation||r.recommendation].filter(Boolean).join(" ")||r.error_message||"",y=Object.entries(r.scores||{}),b=N_e(r);return s(se.default.createElement(se.default.Fragment,null,se.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,flexWrap:"wrap",fontFamily:W,fontSize:11}},se.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},"tools"),se.default.createElement(lQ,{calls:c,empty:"none called",style:{display:"contents"}})),f&&se.default.createElement("div",{style:{background:"var(--color-error-soft)",borderRadius:8,padding:"8px 10px",fontSize:12,lineHeight:"18px",color:"var(--color-error-text)",textWrap:"pretty"}},se.default.createElement("span",{style:{fontFamily:W,fontWeight:700}},`[!] ${Th(f)}`),m?` \u2014 ${m}`:"",p.suggested_tool?.name&&se.default.createElement("div",{style:{marginTop:4,fontFamily:W,fontSize:11}},`suggested tool: ${p.suggested_tool.name}${p.suggested_tool.description?` \u2014 ${p.suggested_tool.description}`:""}`),p.instruction_change&&se.default.createElement("div",{style:{marginTop:4,fontStyle:"italic"}},`instruction change: \u201C${p.instruction_change}\u201D`)),r.output?se.default.createElement("div",{style:{fontFamily:"var(--font-text)",fontSize:13,lineHeight:"19px",color:"var(--color-text-cell)",maxHeight:190,overflow:"auto",whiteSpace:"pre-wrap",textWrap:"pretty"}},r.output):se.default.createElement("div",{style:Ur(11)},"answer not retained for this run"),y.length>0&&se.default.createElement("div",{style:{...Ur(11),display:"flex",flexWrap:"wrap",gap:"2px 10px"},title:"score per criterion"},y.map(([g,h])=>se.default.createElement("span",{key:g},Th(g)," ",se.default.createElement("span",{style:{color:"var(--color-text-secondary)"}},h==null?"skipped":ia(h)))))),se.default.createElement(se.default.Fragment,null,se.default.createElement(ke,{tone:u},r.score==null?r.status:`${r.status} \xB7 ${ia(r.score)}`),b&&se.default.createElement("span",{style:{marginLeft:"auto",...Ur(11)},title:iQ(r)},b),r.agent_run_id&&se.default.createElement(ld,{kind:"scenario_result",id:r.id,title:"Replay this scenario's run",testId:"scenario-result-replay",style:b?void 0:{marginLeft:"auto"}})))}function dQ({scenario:e,run:t,columns:r,resultsByKey:n,running:o,inRun:a=!0,onRerun:i,onToggleEnabled:s,canMutate:l=!0,markdownUrl:u=null}){let c=OD(e,"tools"),d=n[e.key]||{},p=r.some(m=>d[m]),f=a||p;return se.default.createElement("div",{style:{borderTop:"1px solid var(--color-border-light)",background:"var(--color-background)",padding:"12px 12px 14px"},"data-testid":"scenario-drilldown"},se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:10,flexWrap:"wrap"}},se.default.createElement("span",{style:Ur(11)},e.key),se.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-cell)"}},"expects"),se.default.createElement("span",{style:{fontFamily:W,fontSize:11,fontWeight:600,color:"var(--color-text-primary)"}},c.join(" or ")||"\u2014"),t&&p&&se.default.createElement(_l,{url:g2(u,{part:"scenario",scenario:e.key}),testId:"copy-scenario-markdown",title:"Copy this scenario \u2014 the prompt, expectations and each model's result \u2014 as Markdown",style:{marginLeft:"auto"}}),l&&se.default.createElement("span",{style:{marginLeft:t&&p&&u?0:"auto",display:"flex",alignItems:"center",gap:14}},se.default.createElement("button",{type:"button",onClick:m=>{m.stopPropagation(),s?.(e)},title:e.enabled===!1?"Enable this scenario":"Disable this scenario",style:{background:"transparent",border:"none",padding:0,cursor:"pointer",fontFamily:W,fontSize:11,color:e.enabled===!1?"var(--color-text-muted)":"var(--color-text-cell)"}},e.enabled===!1?"[ ] enabled":"[x] enabled"),se.default.createElement(Gr,{onClick:()=>i?.(e),title:"Run only this scenario under the selected models"},"re-run scenario"))),e.notes&&se.default.createElement("div",{style:{fontSize:12,fontStyle:"italic",color:"var(--color-text-secondary)",marginBottom:10}},e.notes),e.catalogChanged&&se.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)",marginBottom:10}},"This run used an earlier version of this question. Re-running uses the current version."),t?f?se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(300px, 1fr))",gap:12}},r.map(m=>se.default.createElement(T_e,{key:m,label:m,run:t,result:d[m],expects:c,running:o}))):se.default.createElement("div",{style:Ur(11)},"Not part of this run \u2014 use \u201Cre-run scenario\u201D to replay it."):se.default.createElement("div",{style:Ur(11)},"No runs yet \u2014 use \u201Cre-run scenario\u201D to replay this one on its own."))}function pQ({items:e,columns:t=[],agentName:r,onNavigate:n,onOpenScenario:o,run:a=null,results:i=[],evaluation:s=null,runNumber:l=null,scenarios:u=[],onRerun:c=null,runnableFor:d=null,markdownUrl:p=null}){let f=w=>d?d(w):uf(w.scenario_keys||[],u),[m,y]=(0,se.useState)("all"),b=t.length>1,g=b?m:"all",h=b?PZ(e,i,w=>zu(a,w)):e,v=ZI(h,g),x=b?MZ(h,t):{},S=w=>ZJ({item:w,evaluation:s,run:a,runNumber:l,results:i,scenarios:u,agentName:r,dashboardUrl:O2(),labelFor:_=>zu(a,_)}),k=w=>{let _=St((w.scenario_keys||[]).length,"scenario");if(w.kind==="instruction")return`${(w.scenario_keys||[]).join(", ")} \xB7 judge suggestion`;let A=fd(w.models||[]);if(t.length<=1||A.length===0)return _;let N=A.length>=t.length?t.length===2?"both models":"all models":A.map(L=>bn(L).short).join(", ");return`${_} \xB7 ${N}`};return se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10},"data-testid":"fix-list"},se.default.createElement(_l,{url:g2(p,{part:"fix_items",model:g}),label:g==="all"?"Copy What to fix as Markdown":`Copy What to fix for ${bn(g).short} as Markdown`,testId:"copy-fixes-markdown",title:"Copy What to fix as Markdown, for the model the filter shows",style:{alignSelf:"flex-end"}}),b&&se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},"data-testid":"fix-list-model-filter"},se.default.createElement("span",{style:Ur(11)},"for"),se.default.createElement(jn,{square:!0,mono:!0,selected:g==="all",onClick:()=>y("all"),testId:"fix-filter-all"},`all models ${e.length}`),t.map(w=>se.default.createElement(jn,{key:w,square:!0,mono:!0,selected:g===w,onClick:()=>y(w),title:`Only what ${w} needs fixed`,testId:"fix-filter-model"},`${bn(w).short} ${x[w]??0}`))),v.length===0&&se.default.createElement(Jr,{style:{border:"1px solid var(--color-border-light)",borderRadius:10,padding:"14px 12px"}},`[+] nothing to fix for ${bn(g).short}`),se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:12}},v.map((w,_)=>{let A=w.kind==="instruction",C=A?"info":"error",N=[],L=new Set;(w.tools||[]).forEach(P=>{let I=typeof P=="string"?P:P?.name;!I||L.has(I)||(L.add(I),N.push({name:I,note:typeof P=="object"&&(P.note||P.server?.name)||null}))});let J=w.server,B=J?.status==="enabled",K=r||"the agent",T=c?f(w):null;return se.default.createElement("div",{key:`${w.fault}-${_}`,"data-testid":"scenario-recommendation",style:{border:"1px solid var(--color-border)",borderRadius:10,padding:"12px 14px",display:"flex",flexDirection:"column",gap:10,minWidth:0}},se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},se.default.createElement(Sa,{kind:A?"info":"fault"}),se.default.createElement(ke,{tone:C},`${Th(w.fault)}${w.count>1?` \xD7${w.count}`:""}`),o&&(w.scenario_keys||[]).length>0?se.default.createElement("button",{type:"button",onClick:()=>o(w.scenario_keys),title:`Show ${(w.scenario_keys||[]).join(", ")} \u2014 the question, the answer and the tools it called`,style:{...Ur(11),background:"none",border:0,padding:0,cursor:"pointer",color:"var(--color-text-link, var(--color-text-primary))",textDecoration:"underline",textUnderlineOffset:2}},k(w)):se.default.createElement("span",{style:Ur(11)},k(w))),w.recommendation&&se.default.createElement("p",{style:{margin:0,fontSize:13,lineHeight:"19px",color:"var(--color-text-cell)",textWrap:"pretty"}},w.recommendation),w.quote&&se.default.createElement("div",{style:{background:"var(--color-muted)",borderRadius:8,padding:"8px 10px",fontSize:12,lineHeight:"18px",color:"var(--color-text-cell)",fontStyle:"italic"}},"\u201C",w.quote,"\u201D"),N.length>0&&se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:6}},se.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},w.tools_label||"tools"),se.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:6}},N.map(P=>se.default.createElement("span",{key:P.name,style:{display:"inline-flex",alignItems:"center",gap:6,padding:"3px 8px",borderRadius:6,border:"1px solid var(--color-border)",fontFamily:W,fontSize:11,maxWidth:"100%"}},se.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},P.name),P.note&&se.default.createElement("span",{style:{color:"var(--color-text-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:P.note},P.note))))),J&&se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",fontSize:12,color:"var(--color-text-cell)"}},se.default.createElement("span",null,"served by"),se.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},J.name||J.key),se.default.createElement(ke,{tone:B?"success":"warning",size:10,style:{padding:"1px 6px"}},B?`enabled for ${K}`:`${J.status||"unknown"} \xB7 not enabled for ${K}`)),w.note&&se.default.createElement("div",{style:{fontSize:12,lineHeight:"18px",color:"var(--color-text-secondary)",textWrap:"pretty"}},w.note),se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:"auto",paddingTop:2,flexWrap:"wrap"}},w.action?.path&&se.default.createElement(ce,{size:"sm",onClick:()=>n?.(w.action.path)},w.action.label),w.action?.hint&&se.default.createElement("span",{style:{...Ur(11),whiteSpace:"nowrap"}},w.action.hint),T&&(T.keys.length?se.default.createElement(Gr,{onClick:()=>c(w,T),title:"Replay these scenarios under the models in the picker",testId:"fix-item-rerun"},`re-run ${St(T.keys.length,"scenario")}`):se.default.createElement("span",{style:{...Ur(11),whiteSpace:"nowrap"},title:`${T.dropped.join(", ")} \xB7 disabled or no longer in the suite`,"data-testid":"fix-item-rerun-none"},"re-run \xB7 none enabled")),se.default.createElement(U0,{build:()=>S(w),style:{marginLeft:"auto"}}),se.default.createElement(_l,{text:w.markdown,testId:"copy-fix-markdown",title:"Copy this fix as Markdown, for an issue or a pull request"}),se.default.createElement(_D,{item:w,evaluation:s,run:a})))})))}var fQ=e=>{let{results:t,fix_items:r,...n}=e;return n},O_e={keys:[],dropped:[]},DD={padding:"6px 10px",borderRadius:8,fontSize:12,fontFamily:W,background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"},vf={border:"1px solid var(--color-border-light)",borderRadius:10},P_e=(e,t)=>e.size===t.size&&[...e].every(r=>t.has(r)),mQ=()=>typeof localStorage<"u"?localStorage:null,gQ=()=>typeof document<"u"&&document.visibilityState==="hidden";function jD({evaluation:e,modelProviders:t,onChanged:r,onDelete:n,deleting:o=!1,initialRunId:a=null,onRunSelected:i}){let s=e.id,l=e.agent?.name||"Agent",[u,c]=(0,be.useState)(!1),[d,p]=(0,be.useState)(null),[f,m]=(0,be.useState)(e.scenarios||[]),[y,b]=(0,be.useState)(e.scenario_groups||[]),[g,h]=(0,be.useState)(e.latest_run?[e.latest_run]:[]),[v,x]=(0,be.useState)(null),[S,k]=(0,be.useState)(a??e.latest_run?.id??null),[w,_]=(0,be.useState)({}),[A,C]=(0,be.useState)({}),[N,L]=(0,be.useState)(null),[J,B]=(0,be.useState)((e.compare_models||[]).join(", ")),K=(0,be.useMemo)(()=>t===void 0?[]:t??ew,[t]),T=bc(K),P=(0,be.useMemo)(()=>M0(T,{providers:K}),[T,K]),[I,M]=(0,be.useState)(null),[j,O]=(0,be.useState)(!1),[F,V]=(0,be.useState)([]),[z,G]=(0,be.useState)(""),[q,oe]=(0,be.useState)(!1),[Me,fe]=(0,be.useState)(""),[le,R]=(0,be.useState)(null),[te,He]=(0,be.useState)(null),[_e,D]=(0,be.useState)(!1),[Y,E]=(0,be.useState)(null),[$,ee]=(0,be.useState)(!0),[U,me]=(0,be.useState)(()=>{let pe=e.scenarios||[],tt=(a==null||a===e.latest_run?.id)&&e.latest_run||null;return tD(pe,new Set(P0(tt,pe)))}),[et,rt]=(0,be.useState)(()=>new Map),[ge,ue]=(0,be.useState)(()=>KZ(mQ())),[Fe,Je]=(0,be.useState)("suite"),ot=(0,be.useRef)(null),Tt=(0,be.useRef)(null),Lt=(0,be.useRef)(null),Hr=(0,be.useRef)(new Map),Io=(0,be.useRef)(new Map),xs=(0,be.useRef)({}),Di=(0,be.useRef)(w),yt=(0,be.useRef)(S),to=(0,be.useRef)(null),bs=D0(ot),ws=bs-zZ,ve=bs===0||ws>=BZ,nt=bs===0?0:ws-(ve?QI+RI:0),pt=ge??"steps",Qt=nt===0||nt>=WZ,Hn=(0,be.useCallback)(async()=>{let pe=await fetch(`/api/evaluations/${s}/scenarios`);if(!pe.ok)return;let tt=await pe.json();m(tt.scenarios||[]),b(tt.groups||[])},[s]),co=(0,be.useCallback)(async()=>{try{let pe=await fetch(`/api/evaluations/${s}`);if(!pe.ok)return p(`Could not load this suite (HTTP ${pe.status})`),null;let Ct=(await pe.json()).evaluation||{};return m(Ct.scenarios||[]),b(Ct.scenario_groups||[]),h(Ct.runs||[]),x(Number.isFinite(Ct.run_count)?Ct.run_count:null),p(null),Ct}catch(pe){return p(`Could not load this suite: ${pe.message}`),null}finally{c(!0)}},[s]);Vs(()=>{Di.current=w,yt.current=S});let nn=(0,be.useCallback)(pe=>{if(!pe)return Promise.resolve(null);if(Hr.current.has(pe))return Hr.current.get(pe);let tt=(async()=>{try{let Ct=await fetch(`/api/evaluations/${s}/runs/${pe}`);if(!Ct.ok)return C(Js=>({...Js,[pe]:`HTTP ${Ct.status}`})),null;let lr=(await Ct.json()).run;if(!lr)return C(Js=>({...Js,[pe]:"no run in the response"})),null;C(Js=>{if(!(pe in Js))return Js;let{[pe]:Cs,...Nd}=Js;return Nd});let jo=Di.current[lr.id],{results:Pf,changed:Ku}=oJ(jo?.results,lr.results);if(!(!!jo&&!Ku&&jo.status===lr.status&&jo.completed_at===lr.completed_at&&(jo.fix_items?.length??0)===(lr.fix_items?.length??0))){let Js=fQ(lr);_(Cs=>({...Cs,[lr.id]:{...lr,results:Pf}})),h(Cs=>Cs.some(Nd=>Nd.id===lr.id)?Cs.map(Nd=>Nd.id===lr.id?{...Nd,...Js}:Nd):Cs),L(Cs=>Cs&&Cs.id===lr.id?{...Cs,...Js}:Cs)}return lr}catch(Ct){return C(rr=>({...rr,[pe]:Ct.message})),null}finally{Hr.current.delete(pe)}})();return Hr.current.set(pe,tt),tt},[s]),Pa=pe=>{L(fQ(pe)),k(pe.id),E(null)};(0,be.useEffect)(()=>{let pe=!1;return(async()=>{let tt=await co();if(pe)return;let Ct=tt?.runs?.[0]?.id??null,rr=!!(a&&tt?.runs?.some(Ku=>Ku.id===a));if(a&&!rr){let Ku=await nn(a);if(pe)return;if(Ku){Pa(Ku);return}}let lr=rr?a:null,jo=yt.current,Pf=lr||(jo&&tt?.runs?.some(Ku=>Ku.id===jo)?jo:Ct);k(Pf),Pf&&nn(Pf)})(),()=>{pe=!0}},[co,nn]);let Ma=e.latest_run?.id??null;(0,be.useEffect)(()=>{!Ma||g.some(pe=>pe.id===Ma)||co()},[Ma,g,co]);let Ss=w[S]||g.find(pe=>pe.id===S)||(N?.id===S?N:null),po=g[0]||null,Wu=md(Ss)?Ss.id:md(po)?po.id:null;(0,be.useEffect)(()=>{if(!Wu)return;let pe=!1,tt=()=>nJ(Di.current[Wu]?.results?.length??0),Ct=lr=>{clearTimeout(to.current),to.current=setTimeout(async()=>{if(pe||gQ())return;let jo=null;try{jo=await nn(Wu)}catch{jo=null}if(!pe){if(jo&&!md(jo)){await co(),r?.();return}Ct(tt())}},lr)},rr=()=>{document.visibilityState==="visible"&&Ct(0)};return gQ()||Ct(tt()),typeof document<"u"&&document.addEventListener("visibilitychange",rr),()=>{pe=!0,clearTimeout(to.current),typeof document<"u"&&document.removeEventListener("visibilitychange",rr)}},[Wu,nn,co,r]);let ks=(0,be.useCallback)(async()=>{try{let pe=await fetch("/api/sandboxes?sandbox_type=app_runtime");if(!pe.ok)return;let tt=await pe.json(),Ct=w2(tt.sandboxes);V(Ct),G(rr=>S2(rr,Ct))}catch{}},[]);(0,be.useEffect)(()=>{ks()},[ks]);let Hu=cd(J),ro=async pe=>{O(!0),M(null);try{let tt=await fetch(`/api/evaluations/${s}/run`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(DZ(pe,Hu,z))}),Ct=await tt.json().catch(()=>({}));if(!tt.ok)throw Ct.code==="sandbox_refused"&&ks(),new Error((Ct.errors||[Ct.error]).filter(Boolean).join(", ")||"Run failed to start");let rr=Ct.run;h(lr=>[rr,...lr.filter(jo=>jo.id!==rr.id)]),x(lr=>lr==null?null:lr+1),_(lr=>({...lr,[rr.id]:{...rr,results:[]}})),k(rr.id),E(null),ee(!0),Je("suite"),r?.()}catch(tt){M(tt.message)}finally{O(!1)}},Pl=pe=>[pe,po?.id,S].slice(0,UZ),qh=pe=>{k(pe),E(null),_(tt=>aD(tt,Pl(pe))),w[pe]||nn(pe)},fb=pe=>{qh(pe.id),i?.(pe.id)};(0,be.useEffect)(()=>{if(!a||a===S)return;if(g.some(tt=>tt.id===a)||N?.id===a){qh(a);return}if(!u)return;let pe=!1;return(async()=>{let tt=await nn(a);pe||!tt||(_(Ct=>aD(Ct,Pl(tt.id))),Pa(tt))})(),()=>{pe=!0}},[a]);let mb=async pe=>{pe.id&&(await fetch(`/api/evaluations/${s}/scenarios/${pe.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({scenario:{enabled:pe.enabled===!1}})}),await Hn())},_A=async()=>{R(null);let pe=await fetch(`/api/evaluations/${s}/scenarios`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({scenarios_text:Me})}),tt=await pe.json().catch(()=>({}));if(!pe.ok){R((tt.errors||[tt.error]).filter(Boolean).join(", ")||"Could not save scenarios");return}m(tt.scenarios||[]),b(tt.groups||[]),oe(!1),r?.()},Qe=Ss,Ia=!!Qe&&!Array.isArray(Qe.results),Kh=Qe?A[Qe.id]:null,fo=(0,be.useMemo)(()=>(Qe?.results||[]).filter(pe=>pe&&pe.scenario_key),[Qe]),Vh=K0(Qe,fo,e).join("\0"),va=(0,be.useMemo)(()=>Vh?Vh.split("\0"):[],[Vh]),Da=(0,be.useMemo)(()=>aJ(fo,pe=>zu(Qe,pe),xs.current),[fo,Qe]);Vs(()=>{xs.current=Da});let Tf=(0,be.useMemo)(()=>new Set(P0(Qe,f)),[Qe,f]),ja=md(Qe),Gh=Oh(Qe,va,f),wd=rQ(Qe,fo,va,f),Sd=(0,be.useCallback)(pe=>Tf.has(pe.key)||!!Da[pe.key],[Tf,Da]),mo=(0,be.useMemo)(()=>pZ(f,Da,Io.current),[f,Da]),Ml=(0,be.useMemo)(()=>{let pe={};return mo.forEach(tt=>{let Ct=Sd(tt);pe[tt.key]=Ia?Ct?"loading":"skipped":Qe?v2(Da[tt.key],va,{inRun:Ct,running:ja}):"none"}),pe},[mo,Sd,Da,va,Qe,Ia,ja]),gb=(0,be.useCallback)(pe=>Ml[pe.key],[Ml]),Yh=(0,be.useMemo)(()=>ja?GZ(mo.map(pe=>({key:pe.key,step:Ml[pe.key]}))):null,[ja,mo,Ml]),kd=(0,be.useCallback)(pe=>va.some(tt=>{let Ct=Da[pe.key]?.[tt];return El(Ct)&&!Al(Ct)}),[va,Da]),hb=(0,be.useMemo)(()=>mo.filter(kd).length,[mo,kd]),_d=!!Qe&&Qe.status==="complete"&&!Ia,Xh=(0,be.useMemo)(()=>XZ(mo.filter(pe=>!te||(pe.group||"")===te).filter(pe=>!_e||kd(pe)),gb,_d?Fe:"suite"),[mo,te,_e,kd,gb,_d,Fe]),CA=new Set(mo.filter(Sd).map(pe=>pe.group).filter(Boolean)).size,Cd=fo.filter(El).length,yb=fo.filter(pe=>El(pe)&&!Al(pe)).length,AA=Gh*Math.max(va.length,1),Zh=new Set(fo.filter(pe=>El(pe)&&!Al(pe)).map(pe=>pe.scenario_key)).size,Of=Qe?.scores?._verdict||null,Il=Object.prototype.hasOwnProperty.call(Qe?.scores||{},"_judge_label")?Qe.scores._judge_label||"rules":Of?.judge&&Of.judge!=="pass rate"?Of.judge:e.judge_model||"rules",Ad=(0,be.useMemo)(()=>Qe?oQ(Qe,fo):[],[Qe,fo]),Jh=(0,be.useMemo)(()=>Ia?O_e:$Z(fo,f),[Ia,fo,f]),Qh=Object.keys(Qe?.scores||{}).filter(pe=>!pe.startsWith("_")),qu=(0,be.useCallback)(pe=>tQ(pe,pe.id===Qe?.id?fo:(w[pe.id]?.results||[]).filter(tt=>tt&&tt.scenario_key),e,f),[Qe,fo,w,e,f]),vb=(0,be.useCallback)((pe,tt,Ct)=>{if(!tt||tt.status!=="complete"||pe.status!=="complete")return E0(pe,tt,{olderNumber:Ct});let rr=K0(pe,pe.id===Qe?.id?fo:[],e),lr=K0(tt,[],e),jo=Oh(tt,lr,f)===Oh(pe,rr,f)&&lr.length===rr.length;return E0(pe,tt,{olderNumber:Ct,comparable:jo})},[Qe,fo,e,f]),ie=(0,be.useMemo)(()=>N2({runs:g,runCount:v,evaluation:e,agentName:l,selectedId:Qe?.id??null,previousRun:e.previous_run,barsFor:qu,deltaFor:vb}),[g,v,e,l,Qe?.id,qu,vb]),Ie=ie.find(pe=>pe.run.id===Qe?.id)||null,st=Ie?.number??(Number.isFinite(Qe?.number)?Qe.number:null),zt=Ie?.bars??(Qe?qu(Qe):[]),kn=sf(g,v),ai=!!Qe&&po?.id===Qe.id,Do=md(po)&&po.id!==Qe?.id?po:null,$a=u||f.length>0,_s=$a?f.length:e.scenario_count??0,Ed=$a?f.filter(pe=>pe.enabled!==!1&&(!te||(pe.group||"")===te)).length:_s,gte=`Run ${St(Ed,"scenario")}${Hu.length?` \xD7 ${St(Hu.length,"model")}`:""}`,hte=`@${l} \xB7 ${St(_s,"scenario")}${y.length?` in ${St(y.length,"group")}`:""} \xB7 ${d?"not loaded":u?g.length?St(kn,"run"):"no runs yet":"loading\u2026"}`,xb=Qe&&Qe.status==="complete"?`/evaluations/${s}/runs/${Qe.id}/report`:null,EA=xb?Re(gh(xb).markdown):null,yte=[...new Set([...y,...mo.map(pe=>pe.group).filter(Boolean)])],vte=[{label:`All ${mo.length||_s}`,value:null}].concat(yte.map(pe=>({label:$a?`${pe} ${mo.filter(tt=>tt.group===pe).length}`:pe,value:pe}))),Rh=(0,be.useMemo)(()=>{let pe=[...new Set(mo.map(tt=>tt.group||""))];return pe.some(Boolean)?pe:[]},[mo]),xte=Rh.some(pe=>!U.has(pe)),NA=mo.length===0,bte=_e?"[+] nothing failed in this group":"[ ] no scenarios";(0,be.useEffect)(()=>{ee(!0),rt(new Map),Je("suite"),E(null)},[Qe?.id]),(0,be.useEffect)(()=>{me(tD(f,Tf))},[Qe?.id,u]);let Tj=(0,be.useRef)(Qe?.id??null);(0,be.useEffect)(()=>{if(Tj.current!==(Qe?.id??null)){Tj.current=Qe?.id??null;return}!ja||!$||me(pe=>{let tt=new Set(pe);return Rh.forEach(Ct=>{if(et.has(Ct))return;let rr=mo.filter(lr=>(lr.group||"")===Ct&&Sd(lr));rr.length&&(rr.every(lr=>Ml[lr.key]==="passed")&&tt.add(Ct),rr.some(lr=>lr.key===Yh)&&tt.delete(Ct))}),P_e(tt,pe)?pe:tt})},[Qe?.id,Yh,Cd,$,ja]);let wte=pe=>{let tt=U.has(pe);me(Ct=>{let rr=new Set(Ct);return tt?rr.delete(pe):rr.add(pe),rr}),rt(Ct=>new Map(Ct).set(pe,tt))},Oj=pe=>{me(new Set(pe?[]:Rh)),rt(new Map(Rh.map(tt=>[tt,pe])))},Ste=pe=>{ue(pe),VZ(mQ(),pe)},kte=(0,be.useCallback)(pe=>{E(tt=>tt===pe?null:pe),ee(!1)},[]),_te=(0,be.useCallback)(()=>ee(!1),[]),Cte=(0,be.useCallback)(pe=>{let tt=Array.isArray(pe)?pe[0]:pe;if(!tt)return;let Ct=mo.find(rr=>rr.key===tt)?.group||"";He(null),D(!1),me(rr=>{if(!rr.has(Ct))return rr;let lr=new Set(rr);return lr.delete(Ct),lr}),rt(rr=>new Map(rr).set(Ct,!0)),E(tt),ee(!1),requestAnimationFrame(()=>{let rr=Tt.current;rr&&(rr.scrollIntoView({behavior:"smooth",block:"start"}),rr.querySelector(`[data-scenario-key="${B2(tt)}"]`)?.focus({preventScroll:!0}))})},[mo]),Ate=()=>{Lt.current?.scrollIntoView({behavior:"smooth",block:"start"}),Lt.current?.focus({preventScroll:!0})},Ete=()=>{Qe&&(C(pe=>{let{[Qe.id]:tt,...Ct}=pe;return Ct}),nn(Qe.id))},Pj=()=>{po&&fb(po)},Mj=NA&&d?be.default.createElement(Jr,{style:vf},"[!] suite not loaded"):NA&&!u?be.default.createElement(Jr,{style:vf},"loading\u2026"):NA?be.default.createElement(Jr,{style:vf},"No scenarios yet \u2014 paste some with \u201CEdit scenarios\u201D."):S!=null&&!Qe?be.default.createElement(Jr,{style:vf},"loading\u2026"):Kh&&!Array.isArray(Qe.results)?be.default.createElement(Jr,{style:vf},`[!] results not loaded (${Kh}) \xB7 `,be.default.createElement(Gr,{onClick:Ete,title:"Fetch this run's results again",testId:"suite-detail-retry"},"retry")):be.default.createElement(cQ,{rows:Xh,columns:Qe?va:[],run:Qe,resultsByKey:Da,runKeys:Tf,running:ja,loading:Ia,stepsByKey:Ml,currentKey:Yh,bars:zt,detail:pt,showKey:Qt,collapsedGroups:U,onToggleGroup:wte,openKey:Y,onToggleRow:kte,following:$,onStopFollowing:_te,emptyLabel:bte,maxHeight:eD,boxRef:Tt,renderDetail:pe=>be.default.createElement(dQ,{scenario:pe,run:Qe,columns:Qe?va:[],resultsByKey:Da,running:ja,inRun:Sd(pe),canMutate:!pe.orphan,onRerun:tt=>ro({keys:[tt.key]}),onToggleEnabled:mb,markdownUrl:EA})}),Ij={rows:ie,runs:g,runCount:v,evaluation:e,agentName:l,selectedId:Qe?.id??null,onOpen:fb,noteFor:pe=>JI(pe,f),linkedRun:N,linkedBars:N&&qu(N)};return be.default.createElement("div",{ref:ot,style:{padding:16,display:"flex",flexDirection:"column",gap:16},"data-testid":"scenario-suite-panel","data-layout":ve?"rail":"strip"},be.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"}},be.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-secondary)"}},hte),be.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},be.default.createElement(ce,{size:"sm",onClick:()=>{fe(CJ(f)),R(null),oe(!q)}},q?"Cancel":"Edit scenarios"),be.default.createElement(j0,{value:J,onChange:B,models:P,inputLabel:"Models to run",placeholder:"models, e.g. gpt-5-mini, ollama/qwen3:8b",title:"Blank runs the suite's saved models, or the agent's own model when it has none. Prefix a typed name with its provider (ollama/llama3.2) when the name alone is ambiguous.",style:{...DD,minWidth:250,maxWidth:420},testId:"suite-models-picker"}),F.length>0&&be.default.createElement("select",{value:z,onChange:pe=>G(pe.target.value),style:{...DD,maxWidth:260},"aria-label":"Run against sandbox",title:"Replays also reach this checkout sandbox's app runtime, as if the agent listed it in its MCP servers. The agent is not changed.","data-testid":"suite-run-sandbox"},be.default.createElement("option",{value:""},"Run against: agent's own tools"),F.map(pe=>be.default.createElement("option",{key:pe.value,value:pe.value},`Run against sandbox ${pe.label}`))),be.default.createElement(ce,{variant:"primary",size:"sm",disabled:j||!u||Ed===0,onClick:()=>ro(te?{group:te}:{}),testId:"suite-run-button"},j?"Starting\u2026":gte))),(d||I)&&be.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)",background:"var(--color-error-soft)",borderRadius:8,padding:"8px 12px"}},d||I),q&&be.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8}},be.default.createElement("textarea",{value:Me,onChange:pe=>fe(pe.target.value),rows:Math.min(Math.max(f.length+4,6),24),style:{...DD,width:"100%",boxSizing:"border-box",lineHeight:"18px"}}),be.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12,fontSize:12,color:"var(--color-text-muted)",flexWrap:"wrap"}},be.default.createElement("span",{style:{flex:1,minWidth:240}},"One message per line. ",be.default.createElement("code",{style:{fontFamily:W}},"# Heading")," starts a group; ",be.default.createElement("code",{style:{fontFamily:W}},"| tools: a, b"),", ",be.default.createElement("code",{style:{fontFamily:W}},"| contains: x"),", ",be.default.createElement("code",{style:{fontFamily:W}},"| not_contains: y")," set expectations. Keep a scenario's ",be.default.createElement("code",{style:{fontFamily:W}},"key")," to keep its history."),be.default.createElement(ce,{variant:"primary",size:"sm",onClick:_A},"Save scenarios")),le&&be.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},le)),Qe&&be.default.createElement(hD,{run:Qe,runNumber:st,latestNumber:kn,isLatest:ai,runningElsewhere:Do,agentName:l,scenarioCount:Gh,groupCount:CA,columns:va,judgedBy:Il,bars:zt,delta:Ie?.delta??null,version:Ie?.version??null,totals:wd,settledCount:Cd,settledFailed:yb,expectedResults:AA,running:ja,loading:Ia,spend:Oi(Qe),fixSummary:{items:Ad.length,faults:Math.max(wd.total-wd.passed,0),scenarios:Zh},selectionLabel:JI(Qe,f),sandboxLabel:O0(Qe),reportPath:xb,rerun:Jh,onSelectLatest:Pj,onWatchLatest:Pj,onJumpToFix:Ate,onRerunFailed:()=>ro({keys:Jh.keys}),onRunAgain:()=>ro(LZ(Qe,f))}),!ve&&be.default.createElement(mD,{layout:"strip",limit:wZ,...Ij}),be.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},be.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},be.default.createElement(Ue,{style:{marginRight:4}},"Scenarios"),vte.map(pe=>be.default.createElement(jn,{key:pe.label,selected:te===pe.value,onClick:()=>He(pe.value)},pe.label)),be.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},be.default.createElement(jn,{square:!0,mono:!0,selected:pt==="tools",onClick:()=>Ste(pt==="tools"?"steps":"tools"),style:{background:"transparent"},title:"Show the tools each replay called and what each cell cost",testId:"suite-detail-toggle"},pt==="tools"?"[x] tools":"[ ] tools"),be.default.createElement(jn,{square:!0,mono:!0,selected:_e,onClick:()=>D(!_e),style:{background:"transparent"},title:"Hide scenarios that passed on every model",testId:"suite-failed-only"},`${_e?"[x]":"[ ]"} failed only${!Ia&&hb?` \xB7 ${hb}`:""}`),Qe&&Qe.status!=="failed"&&(_d?be.default.createElement(jn,{square:!0,mono:!0,selected:Fe==="failed-first",onClick:()=>Je(Fe==="failed-first"?"suite":"failed-first"),style:{background:"transparent"},title:"Groups with the most failures first, and failed scenarios first within each",testId:"suite-order-toggle"},Fe==="failed-first"?"[x] failed first":"[ ] failed first"):be.default.createElement(jn,{square:!0,mono:!0,disabled:!0,style:{background:"transparent"},title:"applies once the run completes",testId:"suite-order-toggle"},"[ ] failed first")),ja&&be.default.createElement(jn,{square:!0,mono:!0,selected:$,onClick:()=>ee(pe=>!pe),style:{background:"transparent"},title:"Keep the step being replayed in view as the run goes",testId:"suite-follow"},$?"[x] follow":"[ ] follow"),Rh.length>1&&(xte?be.default.createElement(Gr,{onClick:()=>Oj(!1),title:"Fold every group",testId:"suite-collapse-all"},"collapse all"):be.default.createElement(Gr,{onClick:()=>Oj(!0),title:"Unfold every group",testId:"suite-collapse-all"},"expand all")))),ve?be.default.createElement("div",{style:{display:"grid",gridTemplateColumns:`${QI}px minmax(0, 1fr)`,gap:RI,alignItems:"start"}},be.default.createElement(mD,{layout:"rail",maxHeight:eD,...Ij}),Mj):Mj),Qe&&Qe.status!=="failed"&&be.default.createElement(uQ,{run:Qe,columns:va,results:fo,scenarioCount:Gh,judgedBy:Il,verdict:Of,evaluation:e,onJudgeChanged:r,markdownUrl:EA}),Qe&&Qe.status!=="failed"&&be.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},be.default.createElement("div",{ref:Lt,tabIndex:-1,style:{display:"flex",alignItems:"baseline",gap:10,outline:"none"},"data-testid":"suite-fix-heading"},be.default.createElement(Ue,null,"What to fix"),be.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},Ia?"loading\u2026":`${St(Ad.length,"item")} \xB7 ${St(Math.max(wd.total-wd.passed,0),"fault")} across ${St(Zh,"scenario")}`)),Ia?be.default.createElement(Jr,{style:{...vf,padding:"14px 12px"}},"[ ] loading\u2026"):Ad.length>0?be.default.createElement(pQ,{items:Ad,columns:va,agentName:l,onNavigate:lt,onOpenScenario:Cte,run:Qe,results:fo,evaluation:e,runNumber:st,scenarios:f,onRerun:pe=>ro({keys:uf(pe.scenario_keys||[],f).keys}),runnableFor:pe=>uf(pe.scenario_keys||[],f),markdownUrl:EA}):be.default.createElement(Jr,{style:{...vf,padding:"14px 12px"}},ja?"[ ] scoring\u2026":"[+] nothing to fix")),be.default.createElement(gf,{evaluation:e,run:Qe,keys:Qh.length?Qh:null,spend:Oi(Qe),spendTotal:!0,reportPath:xb,onDelete:n,deleting:o,deleteLabel:"Delete suite"}))}var it=Z(Q());var $D=[{type:"response_present",key:"response_present",label:"Response present",config:{}},{type:"min_length",key:"response_length",label:"Response length \u2265 40 chars",config:{chars:40}},{type:"max_latency_ms",key:"latency",label:"Latency \u2264 5s",config:{ms:5e3}},{type:"token_budget",key:"token_budget",label:"Output \u2264 1000 tokens",config:{output_tokens:1e3}}],hQ=[{type:"trace_error_rate",key:"trace_error_rate",label:"Trace error rate \u2264 5% (telemetry, 7d)",config:{max_error_rate:5,window_hours:168}},{type:"trace_latency",key:"trace_latency",label:"Avg trace latency \u2264 5s (telemetry, 7d)",config:{max_avg_ms:5e3,window_hours:168}}],Bu={padding:"8px 12px",borderRadius:8,fontSize:13,fontFamily:"inherit",boxSizing:"border-box",background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"},yQ={margin:"6px 0 0",fontSize:12,color:"var(--color-text-muted)"},M_e={openai:"OpenAI",anthropic:"Anthropic",ollama:"Ollama",openrouter:"OpenRouter"};function LD({agents:e,agentId:t,judgeProvider:r,judgeProviderError:n=!1,modelProviders:o,onCreated:a,onCancel:i}){let[s,l]=(0,it.useState)({agent_id:t?String(t):"",name:"",sample_size:20,criteria:$D.map(C=>C.key),containsPattern:"",llmJudgePrompt:"",judgeKind:"manual",judgeModel:"",compareModels:"",scenariosText:"",compareRestore:new Map}),[u,c]=(0,it.useState)(null),[d,p]=(0,it.useState)(!1),f=(0,it.useId)(),m=(0,it.useMemo)(()=>o===void 0?[]:o??ew,[o]),y=bc(r&&!m.includes(r)?[...m,r]:m),b=D_e(s.agent_id),g=(0,it.useMemo)(()=>M0(y,{providers:m.length?m:r?[r]:[]}),[y,m,r]),h=!!s.scenariosText.trim(),v=(0,it.useMemo)(()=>h?M0(y,{providers:m}):b,[y,m,h,b]),x=C=>l(N=>({...N,...C})),S=C=>l(N=>{let L=!!C.trim();if(L===!!N.scenariosText.trim())return{...N,scenariosText:C};let{models:J,restore:B}=dJ(cd(N.compareModels),y,{providers:m,qualify:L,restore:N.compareRestore});return{...N,scenariosText:C,compareModels:I0(J),compareRestore:B}}),k=(C,N)=>x({criteria:N?[...s.criteria,C]:s.criteria.filter(L=>L!==C)}),w=()=>{let C=[...$D,...hQ].filter(N=>s.criteria.includes(N.key)).map(({key:N,type:L,config:J})=>({key:N,type:L,config:J}));return s.containsPattern.trim()&&C.push({key:"contains",type:"contains",config:{pattern:s.containsPattern.trim()}}),s.llmJudgePrompt.trim()&&C.push({key:"quality",type:"llm_judge",config:{prompt:s.llmJudgePrompt.trim()}}),C},_=async C=>{C.preventDefault(),p(!0),c(null);try{let N=await fetch("/api/evaluations",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({evaluation:{agent_id:s.agent_id,name:s.name,sample_size:s.sample_size,judge_kind:s.judgeKind==="judge_defined"?"judge_defined":s.llmJudgePrompt.trim()?"llm":"rules",judge_model:s.judgeModel.trim()||void 0,compare_models:cd(s.compareModels),criteria:s.judgeKind==="judge_defined"?[]:w(),scenarios_text:s.scenariosText.trim()||void 0}})}),L=await N.json().catch(()=>({}));if(!N.ok)throw new Error((L.errors||[L.error]).filter(Boolean).join(", ")||`Failed to create evaluation (HTTP ${N.status})`);a?.(L.evaluation)}catch(N){c(N.message)}finally{p(!1)}},A=C=>it.default.createElement("label",{key:C.key,style:{display:"flex",alignItems:"center",gap:8,fontSize:13,color:"var(--color-text-primary)"}},it.default.createElement("input",{type:"checkbox",checked:s.criteria.includes(C.key),onChange:N=>k(C.key,N.target.checked),style:{accentColor:"var(--color-accent-ui)"}}),C.label);return it.default.createElement(je,{testId:"new-evaluation-form"},it.default.createElement("form",{onSubmit:_,style:{display:"flex",flexDirection:"column",gap:16}},it.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",style:{display:"block",marginBottom:6}},"Agent"),it.default.createElement("select",{required:!0,disabled:!!t,value:s.agent_id,onChange:C=>x({agent_id:C.target.value}),style:{...Bu,width:"100%",opacity:t?.7:1}},!t&&it.default.createElement("option",{value:""},"Select agent\u2026"),e.map(C=>it.default.createElement("option",{key:C.id,value:C.id},C.name)))),it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",style:{display:"block",marginBottom:6}},"Name"),it.default.createElement("input",{required:!0,type:"text",value:s.name,onChange:C=>x({name:C.target.value}),placeholder:"Response Quality",style:{...Bu,width:"100%"}})),it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",style:{display:"block",marginBottom:6}},"Sample size"),it.default.createElement("input",{type:"number",min:"1",max:"100",value:s.sample_size,onChange:C=>x({sample_size:C.target.value}),style:{...Bu,width:"100%",fontFamily:W}}))),it.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",style:{display:"block",marginBottom:6}},"KPI definition"),it.default.createElement("select",{value:s.judgeKind,onChange:C=>x({judgeKind:C.target.value}),style:{...Bu,width:"100%"}},it.default.createElement("option",{value:"manual"},"Manual criteria"),it.default.createElement("option",{value:"judge_defined"},"Judge defines KPIs from agent goals"))),it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",htmlFor:`${f}-judge`,style:{display:"block",marginBottom:6}},"Judge model (optional)"),it.default.createElement(ru,{id:`${f}-judge`,"aria-describedby":r===void 0?void 0:`${f}-judge-provider`,value:s.judgeModel,models:g,onChange:C=>x({judgeModel:C}),style:{...Bu,width:"100%",fontFamily:W,fontSize:12}}),r!==void 0&&it.default.createElement("p",{id:`${f}-judge-provider`,style:yQ},I_e(r,n))),it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",htmlFor:`${f}-compare`,style:{display:"block",marginBottom:6}},"Compare models (optional)"),it.default.createElement(j0,{inputId:`${f}-compare`,describedBy:`${f}-compare-hint`,value:s.compareModels,onChange:C=>x({compareModels:C}),models:v,placeholder:"e.g. claude-haiku-4-5, qwen3:8b",style:{...Bu,width:"100%",fontFamily:W,fontSize:12}}),it.default.createElement("p",{id:`${f}-compare-hint`,style:yQ},h?"Each model replays the scenarios. Any model name can be typed.":"Compares the agent's generations recorded under each model name. Add scenarios to try any model."))),it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",style:{display:"block",marginBottom:6}},"Scenarios (optional) \u2014 paste user messages to replay, one per line"),it.default.createElement("textarea",{value:s.scenariosText,onChange:C=>S(C.target.value),rows:s.scenariosText?8:3,placeholder:`# Open tickets Which open tickets mention a refund? | tools: find_tickets # Change history -Who changed the shipping policy last week?`,style:{...Bu,width:"100%",fontFamily:U,fontSize:12,lineHeight:"18px"}}),it.default.createElement("p",{style:{margin:"6px 0 0",fontSize:12,color:"var(--color-text-muted)",textWrap:"pretty"}},"With scenarios, each run replays every message through the agent \u2014 once per model in \u201CCompare models\u201D \u2014 and reports which tasks it completes, what faults it hits, and how to fix them. ",it.default.createElement("code",{style:{fontFamily:U}},"# Heading")," lines group related tasks so they can be run together; ",it.default.createElement("code",{style:{fontFamily:U}},"| tools: a, b")," names the tool a task should call.")),s.judgeKind==="judge_defined"?it.default.createElement("p",{style:{margin:0,fontSize:12,color:"var(--color-text-secondary)"}},"On the first run the judge reads the agent's instructions and recent interactions, defines 3\u20136 KPIs, then scores samples against them. KPIs persist so later runs (and model cohorts) stay comparable."):it.default.createElement(it.default.Fragment,null,it.default.createElement("div",null,it.default.createElement(Ue,{style:{display:"block",marginBottom:8}},"Rule-based criteria (sampled generations)"),it.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:12}},DD.map(A))),it.default.createElement("div",null,it.default.createElement(Ue,{style:{display:"block",marginBottom:8}},"Telemetry criteria (trace aggregates)"),it.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:12}},sQ.map(A))),it.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4"},it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",style:{display:"block",marginBottom:6}},"Must contain (optional pattern)"),it.default.createElement("input",{type:"text",value:s.containsPattern,onChange:C=>x({containsPattern:C.target.value}),placeholder:"e.g. password reset",style:{...Bu,width:"100%"}})),it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",style:{display:"block",marginBottom:6}},"LLM judge criterion (optional, needs provider credentials)"),it.default.createElement("input",{type:"text",value:s.llmJudgePrompt,onChange:C=>x({llmJudgePrompt:C.target.value}),placeholder:"e.g. Is the answer helpful and accurate?",style:{...Bu,width:"100%"}})))),u&&it.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},u),it.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},it.default.createElement(ce,{variant:"primary",type:"submit",disabled:d},d?s.scenariosText.trim()?"Creating & starting run\u2026":"Creating & running\u2026":"Create & Run"),i&&it.default.createElement(ce,{onClick:i},"Cancel"))))}function k_e(e,t){return e?`An unpinned judge defaults to ${S_e[e]||e}. Pinning a model selects its provider.`:t?"Provider credentials could not be read, so the judge's provider is unknown. Check the provider API keys in Settings.":"No provider has credentials for a judge. Add a provider API key in Settings."}function __e(e){let[t,r]=(0,it.useState)([]);return(0,it.useEffect)(()=>{if(r([]),!e)return;let n=!1;return fetch(`/api/agents/${encodeURIComponent(e)}/recorded_models`).then(o=>o.ok?o.json():{}).then(o=>{!n&&Array.isArray(o.models)&&r(o.models)}).catch(()=>{}),()=>{n=!0}},[e]),t}var Ce=Z(J());var C_e={background:"none",border:"none",padding:0,cursor:"pointer",fontFamily:U,fontSize:12,color:"var(--color-info)"},So=(e=11,t="var(--color-text-muted)",r={})=>({fontFamily:U,fontSize:e,color:t,...r});function A_e({stats:e}){if(!e)return Ce.default.createElement("span",{style:So()},"\u2014");if(e.skipped)return Ce.default.createElement("div",null,Ce.default.createElement("span",{style:So(12,"var(--color-text-cell)",{fontWeight:700})},"[-] skipped"),Ce.default.createElement("div",{style:{...So(),marginTop:2,textWrap:"pretty"},title:e.reason},k0(e.reason,90)));let t=Number(e.score),r=Dn[t>=.85?"success":t>=.7?"warning":"error"].strong,n=[];if(e.total!=null&&n.push(`${Vn(e.passed,e.total)} passed`),e.total>1&&e.min!=null&&n.push(`min ${aa(e.min)} \xB7 max ${aa(e.max)}`),e.source==="telemetry"){n.push(`${e.traces} traces \xB7 ${e.window_hours}h`);let o=e.observed||{};o.error_rate!=null&&n.push(`observed ${o.error_rate}% errors (${o.errors})`),o.avg_duration_ms!=null&&n.push(`observed avg ${Bn(o.avg_duration_ms)}`)}return Ce.default.createElement("div",null,Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6}},Ce.default.createElement("span",{style:So(12,r,{fontWeight:700})},t>=.7?"[+]":"[!]"," ",aa(t)),e.source==="telemetry"&&Ce.default.createElement("span",{"data-testid":"score-source-telemetry",title:"Aggregate over the agent's telemetry traces",style:So(10,"var(--color-text-muted)",{textTransform:"uppercase",letterSpacing:"0.04em"})},"telemetry")),Ce.default.createElement("div",{style:{...So(),marginTop:2,textWrap:"pretty"}},n.join(" \xB7 ")))}function E_e({item:e,evaluation:t=null,run:r=null,number:n=null}){let o=()=>WJ({item:e,evaluation:t,run:r,runNumber:n,agentName:t?.agent?.name,dashboardUrl:T2()});return Ce.default.createElement("div",{"data-testid":"fix-item",style:{border:"1px solid var(--color-border)",borderRadius:10,padding:"12px 14px",display:"flex",flexDirection:"column",gap:10,minWidth:0}},Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Ce.default.createElement(wa,{kind:"fault"}),Ce.default.createElement(ke,{tone:"error"},e.label),Ce.default.createElement("span",{style:So()},e.scope)),Ce.default.createElement("div",{style:{fontSize:13,lineHeight:"19px",color:"var(--color-text-cell)",textWrap:"pretty"}},e.text),e.chips?.length>0&&Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:6}},Ce.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},e.chipsLabel),Ce.default.createElement("div",{style:{display:"flex",gap:6,flexWrap:"wrap"}},e.chips.map(a=>Ce.default.createElement("span",{key:a,style:{fontFamily:U,fontSize:11,padding:"3px 8px",borderRadius:6,border:"1px solid var(--color-border)",color:"var(--color-text-primary)",fontWeight:600}},a)))),e.details?.length>0&&Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:3}},e.details.map(a=>Ce.default.createElement("span",{key:a,style:So(11,"var(--color-text-cell)",{textWrap:"pretty"})},a))),Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:"auto",flexWrap:"wrap"}},e.action?.path&&Ce.default.createElement(ce,{size:"sm",onClick:()=>lt(e.action.path)},e.action.label),e.action?.hint&&Ce.default.createElement("span",{style:{...So(),whiteSpace:"nowrap"}},e.action.hint),Ce.default.createElement(U0,{build:o,style:{marginLeft:"auto"}})))}function $D({evaluation:e,runs:t=[],runCount:r=null,runId:n,loading:o=!1,running:a=!1,onSelectRun:i,onRun:s,onBack:l,onOpenEvaluation:u,onDelete:c,deleting:d=!1}){let[p,f]=(0,Ce.useState)("all"),[m,y]=(0,Ce.useState)(!1),b=(z,V)=>Ce.default.createElement("button",{type:"button",onClick:V,style:C_e},z),g=t.findIndex(z=>z.id===n),h=g>=0?t[g]:t[0],v=h?Sh(h,Math.max(g,0),t,r):null,x=Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"}},b("Evaluations",l),Ce.default.createElement("span",{style:So(12)},"/"),b(e?.name||"Evaluation",u),Ce.default.createElement("span",{style:So(12)},"/"),Ce.default.createElement("span",{style:So(12,"var(--color-text-primary)",{fontWeight:700})},h?`Run #${v}`:"Runs"));if(!e)return Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12}},Ce.default.createElement("div",null,b("Evaluations",l)),Ce.default.createElement(je,null,Ce.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-muted)"}},"This evaluation is not in the list any more.")));if(!h)return Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12}},x,o?Ce.default.createElement("div",{className:"flex items-center justify-center h-64"},Ce.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2",style:{borderBottomColor:"var(--color-accent-ui)"}})):Ce.default.createElement(je,null,Ce.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-muted)"}},"No runs recorded yet.")));let S=C0(h),k=S.length?S:[null],w=wh(h),_=z=>w.find(V=>V.label===z)||(z==null?w[0]:null),A=h.scores?._verdict,C=Array.isArray(h.scores?._missing_models)?h.scores._missing_models:[],N=bh(h).map(([z,V])=>({key:z,value:V,criterion:_0(e,z)})),L=z=>N.filter(V=>kl(V.criterion)===z).length,Q=qI.filter(z=>L(z.id)>0),B=z=>k.some(V=>{let q=of(z.value,V);return q&&(q.skipped||q.score!=null&&q.score<.7)}),K=N.filter(z=>(p==="all"||kl(z.criterion)===p)&&(!m||B(z))),T=qI.map(z=>({...z,rows:K.filter(V=>kl(V.criterion)===z.id)})).filter(z=>z.rows.length),O=v2(e,{...h,number:v}),I=Ni(h),P=wo(h.completed_at||h.created_at),j=h.status==="complete"&&h.samples_evaluated?` \xB7 ${Vn(h.samples_passed||0,h.samples_evaluated)} passed`:"",M={fontFamily:U,fontSize:10,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",color:"var(--color-text-muted)",padding:"8px 12px",textAlign:"left",verticalAlign:"top",whiteSpace:"nowrap"},W={padding:"10px 12px",verticalAlign:"top"},Y={padding:"7px 12px",verticalAlign:"middle"};return Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"evaluation-run-detail"},x,Ce.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},Ce.default.createElement("div",{style:{minWidth:0}},Ce.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},`Run #${v}`),Ce.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)",textWrap:"pretty"}},`${e.name} \xB7 ${P} \xB7 @${e.agent?.name||"agent"} \xB7 ${nf(e,h)}${j}`)),Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"}},t.map((z,V)=>Ce.default.createElement(jn,{key:z.id,square:!0,mono:!0,selected:z.id===h.id,onClick:()=>i?.(z),title:`${z.status} \xB7 ${wo(z.completed_at||z.created_at)}`},`#${Sh(z,V,t,r)}`)),Ce.default.createElement(ce,{variant:"primary",disabled:a,onClick:s,testId:"run-again-button"},a?"Running\u2026":"Run again"))),Ce.default.createElement(sD,{spend:I,judgedBy:xh(e,h)}),h.status==="failed"?Ce.default.createElement(je,{"data-testid":"run-failed",style:{borderColor:"var(--color-error)"},padding:"14px 16px"},Ce.default.createElement("span",{style:So(12,"var(--color-error)",{fontWeight:700})},"[!] run failed"),Ce.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-cell)",marginTop:6,lineHeight:"19px"}},h.error_message)):h.status!=="complete"?Ce.default.createElement(je,{"data-testid":"run-pending",padding:"14px 16px"},Ce.default.createElement("span",{style:So(12,"var(--color-warning-text)",{fontWeight:700})},`[~] ${h.status}`),Ce.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-cell)",marginTop:6}},"Scores appear once the run completes.")):Ce.default.createElement(Ce.default.Fragment,null,S.length>1&&Ce.default.createElement(F0,{rows:x2(h,{columns:S}),unit:"interaction",judgedBy:A?.judge||null,judgeEstimated:I?.judge?.estimated??!0}),Ce.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(260px, 1fr))",gap:12}},k.map(z=>{let V=cZ(h,z),q=_(z),oe=q?.samples??(z==null?h.samples_evaluated:null),Me=q?.passed??(z==null?h.samples_passed:null),fe=[];return V.below>0&&fe.push({tone:"error",text:`below pass mark \xD7${V.below}`}),V.skipped>0&&fe.push({tone:"warning",text:`skipped \xD7${V.skipped}`}),Ce.default.createElement(z0,{key:z||"all",label:z,short:z?bn(z).short:"all samples",provider:q?.provider||(z?bn(z).provider:null)||null,winner:!!A?.winner&&A.winner===z,passed:Me,total:oe,avgScore:V.avg,criteria:{cleared:V.cleared,scored:V.scored},latencyMs:q?.avg_duration_ms,inputTokens:q?.input_tokens,outputTokens:q?.output_tokens,cost:q?.cost,perInteraction:af(q?.cost,q?.priced),estimated:q?.estimated??!1,unit:"interaction",badges:fe})}))),(A||C.length>0)&&Ce.default.createElement(je,{padding:"12px 16px",style:{display:"flex",flexDirection:"column",gap:6},"data-testid":"run-verdict"},A&&Ce.default.createElement(Ce.default.Fragment,null,Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},Ce.default.createElement(Ue,null,"Verdict"),A.judge&&Ce.default.createElement("span",{style:So()},`judged by ${A.judge}`)),Ce.default.createElement("div",{style:{fontSize:13,lineHeight:"19px",color:"var(--color-text-cell)",textWrap:"pretty"}},Ce.default.createElement("strong",{style:{color:"var(--color-text-primary)",fontFamily:U,fontSize:12}},A.winner),A.rationale?` \xB7 ${A.rationale}`:"")),C.length>0&&Ce.default.createElement("span",{style:So(11,"var(--color-warning-text)",{fontWeight:600})},`[!] no generations recorded under ${C.join(", ")}`)),Ce.default.createElement(je,{padding:0,style:{overflow:"hidden"},testId:"criteria-matrix"},Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"10px 14px",flexWrap:"wrap"}},Ce.default.createElement(Ue,{style:{marginRight:4}},"Criteria"),Ce.default.createElement(jn,{selected:p==="all",onClick:()=>f("all")},`All ${N.length}`),Q.map(z=>Ce.default.createElement(jn,{key:z.id,selected:p===z.id,onClick:()=>f(z.id)},`${z.label} ${L(z.id)}`)),Ce.default.createElement(jn,{square:!0,mono:!0,selected:m,onClick:()=>y(z=>!z),style:{marginLeft:"auto",background:"transparent"},title:"Hide criteria every model cleared"},m?"[x] failed only":"[ ] failed only")),Ce.default.createElement("div",{style:{overflowX:"auto"}},Ce.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},Ce.default.createElement("thead",null,Ce.default.createElement("tr",{style:{background:"var(--color-muted)"}},Ce.default.createElement("th",{style:{...M,width:"34%"}},"Criterion"),Ce.default.createElement("th",{style:M},"Expects"),k.map(z=>Ce.default.createElement("th",{key:z||"score",style:M},z?Ce.default.createElement(Ce.default.Fragment,null,Ce.default.createElement("span",{style:{color:"var(--color-text-primary)",textTransform:"none",letterSpacing:0,fontSize:12}},bn(z).short),(_(z)?.provider||bn(z).provider)&&Ce.default.createElement("span",{style:{display:"block",fontWeight:400,textTransform:"none",letterSpacing:0}},_(z)?.provider||bn(z).provider)):"Score")))),Ce.default.createElement("tbody",null,T.map(z=>Ce.default.createElement(Ce.default.Fragment,{key:z.id},Ce.default.createElement("tr",{style:{background:"var(--color-background)",borderTop:"1px solid var(--color-border-light)"}},Ce.default.createElement("td",{style:Y},Ce.default.createElement("span",{style:{fontWeight:600,fontSize:13,color:"var(--color-text-primary)"}},z.label)),Ce.default.createElement("td",{style:Y},Ce.default.createElement("span",{style:So()},`${z.rows.length} ${z.rows.length===1?"criterion":"criteria"}`)),k.map(V=>{let q=z.rows.filter(fe=>{let le=of(fe.value,V);return le&&le.score!=null}),oe=q.filter(fe=>of(fe.value,V).score>=.7).length,Me=q.length&&oe===q.length?"var(--color-success-text)":oe===0&&q.length?"var(--color-error-text)":"var(--color-text-cell)";return Ce.default.createElement("td",{key:V||"score",style:Y},Ce.default.createElement("span",{style:So(11,Me,{fontWeight:600})},q.length?`${Vn(oe,q.length)} passed`:"\u2014"))})),z.rows.map(V=>Ce.default.createElement("tr",{key:V.key,"data-testid":"criterion-row",style:{borderTop:"1px solid var(--color-border-light)"}},Ce.default.createElement("td",{style:W},Ce.default.createElement("div",{style:So()},V.key),Ce.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-primary)"}},g2(V.criterion))),Ce.default.createElement("td",{style:W},Ce.default.createElement("span",{style:{fontFamily:U,fontSize:11,padding:"2px 6px",border:"1px solid var(--color-border)",borderRadius:4,color:"var(--color-text-cell)",whiteSpace:"nowrap"},title:vh(V.criterion)},k0(vh(V.criterion),40))),k.map(q=>Ce.default.createElement("td",{key:q||"score",style:W},Ce.default.createElement(A_e,{stats:of(V.value,q)}))))))),T.length===0&&Ce.default.createElement("tr",{style:{borderTop:"1px solid var(--color-border-light)"}},Ce.default.createElement("td",{colSpan:2+k.length,style:{padding:"16px 14px",fontSize:13,color:"var(--color-text-muted)"}},N.length?"Nothing failed under this filter.":"This run recorded no criterion scores.")))))),Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},Ce.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:10}},Ce.default.createElement(Ue,null,"What to fix"),Ce.default.createElement("span",{style:So()},O.length?St(O.length,"item"):"nothing")),O.length?Ce.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:12}},O.map(z=>Ce.default.createElement(E_e,{key:z.kind,item:z,evaluation:e,run:h,number:v}))):Ce.default.createElement(Jr,{style:{border:"1px solid var(--color-border-light)",borderRadius:10,padding:"14px 12px",color:"var(--color-success-text)"}},`[+] Every criterion cleared the pass mark (${Q1(.7)}) and nothing was skipped.`)),Ce.default.createElement(gf,{evaluation:e,run:h,spend:I,onDelete:c,deleting:d}))}var Pn=Z(J());var BD={fontFamily:U,fontSize:10,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",color:"var(--color-text-muted)",padding:"8px 12px",textAlign:"left",verticalAlign:"bottom",whiteSpace:"nowrap"},FD={padding:"8px 12px",verticalAlign:"middle",fontSize:13,color:"var(--color-text-cell)",borderTop:"1px solid var(--color-border-light)"},LD={...FD,fontFamily:U,fontSize:12,whiteSpace:"nowrap",textAlign:"right"},zD={...BD,textAlign:"right"};function UD({rows:e=[],columns:t=[],testId:r="model-leaderboard"}){if(e.length<2)return null;let n=t.length>1?t.filter(o=>e.some(a=>a.byEvaluation?.[o.id]?.total>0)):[];return Pn.default.createElement(je,{padding:0,style:{overflow:"hidden"},testId:r},Pn.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:10,padding:"10px 12px",flexWrap:"wrap"}},Pn.default.createElement(Ue,null,"Model leaderboard"),Pn.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},`${St(e.length,"model")} \xB7 ${St(t.length,"evaluation")} \xB7 ranked by the low end of each pass rate`)),Pn.default.createElement("div",{style:{overflowX:"auto"}},Pn.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},Pn.default.createElement("thead",null,Pn.default.createElement("tr",{style:{background:"var(--color-muted)"}},Pn.default.createElement("th",{style:{...zD,width:28}},"#"),Pn.default.createElement("th",{style:BD},"Model"),Pn.default.createElement("th",{style:{...BD,minWidth:160}},"Passed"),Pn.default.createElement("th",{style:zD},"Rate"),n.map(o=>Pn.default.createElement("th",{key:o.id,style:{...zD,maxWidth:140,overflow:"hidden",textOverflow:"ellipsis"},title:o.name},o.name)))),Pn.default.createElement("tbody",null,e.map(o=>{let{short:a,provider:i}=bn(o.label);return Pn.default.createElement("tr",{key:o.label,"data-testid":"model-leaderboard-row",title:`${o.label}: at least ${Ts(o.lower)} at 95% confidence`},Pn.default.createElement("td",{style:{...LD,color:"var(--color-text-muted)"}},o.rank),Pn.default.createElement("td",{style:FD},Pn.default.createElement("div",{style:{fontFamily:U,fontSize:12,fontWeight:600,color:"var(--color-text-primary)",whiteSpace:"nowrap"}},a),i&&Pn.default.createElement("div",{style:{fontFamily:U,fontSize:10,color:"var(--color-text-muted)",whiteSpace:"nowrap"}},i)),Pn.default.createElement("td",{style:FD},Pn.default.createElement(tu,{passed:o.passed,total:o.total,color:B0(o.ratio),valueWidth:56})),Pn.default.createElement("td",{style:{...LD,fontWeight:700,color:B0(o.ratio)}},Ts(o.ratio)),n.map(s=>{let l=o.byEvaluation?.[s.id],u=l?.total?l.passed/l.total:null;return Pn.default.createElement("td",{key:s.id,style:{...LD,color:B0(u)},title:l?.total?`${s.name}: ${Vn(l.passed,l.total)}`:`${s.name}: not run on this model`},Ts(u))}))})))))}var gd=null,WD=new Set,uQ=()=>WD.forEach(e=>e(gd));function N_e(e={}){let t=e.requireText==null?null:String(e.requireText);return{title:e.title||"Are you sure?",message:e.message||"",confirmLabel:e.confirmLabel||"Confirm",cancelLabel:e.cancelLabel||"Cancel",danger:!!e.danger,requireText:t===""?null:t}}function Wr(e){return gd&&gd.resolve(!1),new Promise(t=>{gd={...N_e(e),resolve:t},uQ()})}function cQ(e){if(!gd)return;let{resolve:t}=gd;gd=null,uQ(),t(!!e)}function dQ(){return gd}function pQ(e){return WD.add(e),()=>WD.delete(e)}function fQ(e,t){return e?.requireText?t===e.requireText:!0}var mQ=()=>{let e=Rn().match(/^\/evaluations\/(\d+)\/runs\/(\d+)\/report/);if(e)return{evaluationId:e[1],runId:e[2]};let t=BI(window.location.search);return t?.runId?t:null},W2=()=>{let e=Rn().match(/^\/evaluations\/(\d+)(?:\/runs\/(\d+))?\/?$/);return e?{evaluationId:Number(e[1]),runId:e[2]?Number(e[2]):null}:null},gQ=()=>BI(window.location.search)?.evaluationId||(W2()?String(W2().evaluationId):null),U2=(e=11,t="var(--color-text-muted)")=>({fontFamily:U,fontSize:e,color:t}),T_e=e=>{let t=kh(e),r=e.latest_run?.status==="failed"?1:0;return t?e.scenario_suite?(t.scores?._recommendations||[]).length+r:v2(e,t).length+r:r},O_e={stale:{tone:"warning",text:"stale",title:"Its headline run scored an earlier version of the agent, so the tiles leave it out"},unrecorded:{tone:"muted",text:"version not recorded",title:"Nothing says which version of the agent its headline run scored; it still counts"},archived:{tone:"muted",text:"archived",title:"Archived: kept with its runs, left out of the tiles"}};function V0({embedded:e=!1,agentId:t=null}){let{darkMode:r}=ut(),[n,o]=(0,Ne.useState)(()=>e?null:mQ()),a=(0,Ne.useRef)(null),[i,s]=(0,Ne.useState)(0),[l,u]=(0,Ne.useState)(null);(0,Ne.useEffect)(()=>{let ve=a.current?.contentDocument?.body;if(!ve)return;let nt=()=>u(ve.scrollHeight);if(nt(),typeof ResizeObserver>"u")return window.addEventListener("resize",nt),()=>window.removeEventListener("resize",nt);let pt=new ResizeObserver(nt);return pt.observe(ve),()=>pt.disconnect()},[i,n]),(0,Ne.useEffect)(()=>u(null),[n]);let[c,d]=(0,Ne.useState)([]),[p,f]=(0,Ne.useState)([]),[m,y]=(0,Ne.useState)(void 0),[b,g]=(0,Ne.useState)(!1),[h,v]=(0,Ne.useState)(void 0),[x,S]=(0,Ne.useState)(!0),[k,w]=(0,Ne.useState)(null),[_,A]=(0,Ne.useState)(null),[C,N]=(0,Ne.useState)(()=>{if(e)return null;let ve=W2();return ve?.runId?ve:null}),[L,Q]=(0,Ne.useState)(()=>e?null:gQ()),[B,K]=(0,Ne.useState)({}),[T,O]=(0,Ne.useState)(!1),[I,P]=(0,Ne.useState)(null),[j,M]=(0,Ne.useState)(null),[W,Y]=(0,Ne.useState)(null),[z,V]=(0,Ne.useState)(!1),[q,oe]=(0,Ne.useState)(!1),[Me,fe]=(0,Ne.useState)(0);(0,Ne.useEffect)(()=>{if(e)return;let ve=()=>{o(mQ());let nt=W2();N(nt?.runId?nt:null);let pt=gQ();Q(pt),pt&&A(Qt=>new Set([...Qt||[],Number(pt)]))};return window.addEventListener("popstate",ve),window.addEventListener("dashboard:navigate",ve),()=>{window.removeEventListener("popstate",ve),window.removeEventListener("dashboard:navigate",ve)}},[e]);let le=(0,Ne.useCallback)(async()=>{try{let ve=new URLSearchParams;t&&ve.set("agent_id",t),z&&ve.set("archived","1");let nt=ve.toString(),pt=await fetch(`/api/evaluations${nt?`?${nt}`:""}`);if(!pt.ok)throw new Error(`Request failed (${pt.status})`);let Qt=await pt.json();fe(Number(Qt.archived_count)||0),y(Qt.judge_provider??null),g(Qt.judge_provider_error===!0),v(Array.isArray(Qt.model_providers)?Qt.model_providers:null);let Hn=Qt.evaluations||[],co=null;try{Hn=await oZ(Hn,L,fetch)}catch(nn){co=nn.message}d(Hn),A(nn=>{if(nn)return nn;let Oa=L?Hn.find(Pa=>String(Pa.id)===L):Hn.find(Pa=>Pa.scenario_suite)||Hn[0];return new Set(Oa?[Oa.id]:[])}),w(co)}catch(ve){w(ve.message),v(nt=>nt===void 0?null:nt)}finally{S(!1)}},[t,L,z]),R=(0,Ne.useCallback)(async ve=>{try{let nt=await fetch(`/api/evaluations/${ve}`);if(!nt.ok)throw new Error(`Could not load this evaluation's runs (HTTP ${nt.status})`);let pt=await nt.json();K(Qt=>({...Qt,[ve]:{runs:pt.evaluation?.runs||[],runCount:pt.evaluation?.run_count??null}}))}catch(nt){K(pt=>({...pt,[ve]:{runs:null,runCount:null,error:nt.message}})),w(nt.message)}},[]);(0,Ne.useEffect)(()=>{le(),fetch("/api/agents").then(ve=>ve.ok?ve.json():{agents:[]}).then(ve=>f(ve.agents||[])).catch(()=>f([]))},[le]),(0,Ne.useEffect)(()=>{new Set([..._||[],...C?[C.evaluationId]:[]]).forEach(nt=>{let pt=c.find(Qt=>Qt.id===nt);pt&&!pt.scenario_suite&&!B[nt]&&R(nt)})},[_,C,c,B,R]);let te=ve=>{!e&&Rn()!==ve&&id(ve)},He=ve=>!!_?.has(ve),_e=ve=>{let nt=!He(ve.id);A(pt=>{let Qt=new Set(pt||[]);return nt?Qt.add(ve.id):Qt.delete(ve.id),Qt}),te(nt?`/evaluations/${ve.id}`:"/evaluations")},D=(ve,nt)=>{A(pt=>new Set([...pt||[],ve.id])),N({evaluationId:ve.id,runId:nt.id}),te(`/evaluations/${ve.id}/runs/${nt.id}`)},G=ve=>{N(null),te(ve?`/evaluations/${ve}`:"/evaluations")},E=async ve=>{P(ve.id),w(null);try{let nt=await fetch(`/api/evaluations/${ve.id}/run`,{method:"POST"}),pt=await nt.json().catch(()=>({}));if(!nt.ok){w((pt.errors||[pt.error]).filter(Boolean).join(", ")||`Run failed (HTTP ${nt.status})`);return}await Promise.all([le(),R(ve.id)]),pt.run&&C?.evaluationId===ve.id&&D(ve,pt.run)}finally{P(null)}},$=async(ve,nt)=>{Y(ve.id),w(null);try{let pt=await fetch(`/api/evaluations/${ve.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({evaluation:{archived:nt}})}),Qt=await pt.json().catch(()=>({}));if(!pt.ok){w((Qt.errors||[Qt.error]).filter(Boolean).join(", ")||`${nt?"Archive":"Unarchive"} failed (HTTP ${pt.status})`);return}await le()}finally{Y(null)}},ee=async ve=>{if(await Wr({title:`Delete ${ve.name}?`,message:"Its runs are deleted with it. This cannot be undone.",confirmLabel:"Delete evaluation",danger:!0,requireText:ve.name})){M(ve.id),w(null);try{let nt=await fetch(`/api/evaluations/${ve.id}`,{method:"DELETE"});nt.ok||nt.status===404?(d(pt=>pt.filter(Qt=>Qt.id!==ve.id)),A(pt=>{let Qt=new Set(pt||[]);return Qt.delete(ve.id),Qt}),C?.evaluationId===ve.id&&G(null)):w(`Delete failed (HTTP ${nt.status})`)}finally{M(null)}}};if(x)return Ne.default.createElement("div",{className:"flex items-center justify-center h-64"},Ne.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2",style:{borderBottomColor:"var(--color-accent-ui)"}}));let F=t?c.filter(ve=>String(ve.agent?.id)===String(t)):c,me=ve=>{let nt=B[ve.id];return nt?.runs?{runs:nt.runs,runCount:ve.run_count??nt.runCount??null,loaded:!0}:{runs:ve.latest_run?[ve.latest_run]:[],runCount:ve.run_count??null,loaded:!1}};if(n){let ve=gh(`/evaluations/${n.evaluationId}/runs/${n.runId}/report`),nt=Re(ve.report),pt={padding:"6px 12px",borderRadius:8,fontSize:13,fontWeight:500,color:"var(--color-text-cell)",border:"1px solid var(--color-border-strong)",textDecoration:"none",whiteSpace:"nowrap"},Qt=`${nt}?theme=${r?"dark":"light"}`;return Ne.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},Ne.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},Ne.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12}},Ne.default.createElement(ce,{size:"sm",onClick:()=>{id("/evaluations"),o(null)}},Ne.default.createElement("span",{style:{fontFamily:U}},"<-")," Evaluations"),Ne.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Run report"),Ne.default.createElement("span",{style:U2(11)},`evaluation ${n.evaluationId} \xB7 run ${n.runId}`)),Ne.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},"data-testid":"run-report-exports"},Ne.default.createElement(_l,{url:Re(ve.markdown),title:"Copy the whole report as GitHub-flavored Markdown, for a pull request or an issue",testId:"run-report-copy-markdown"}),[["html","Download HTML","The report as one self-contained page"],["json","Download JSON","The run as the evaluation report envelope \u2014 POST it to another install\u2019s /api/evaluation_reports to import it"],["md","Download Markdown","The report as GitHub-flavored Markdown"]].map(([Hn,co,nn])=>Ne.default.createElement("a",{key:Hn,href:Re(ve[Hn]),download:!0,title:nn,"data-testid":`run-report-download-${Hn}`,style:pt},co)),Ne.default.createElement("a",{href:nt,target:"_blank",rel:"noopener noreferrer",title:"The report as one self-contained page, outside the dashboard",style:pt},"Open standalone ",Ne.default.createElement("span",{style:{fontFamily:U}},"->")))),Ne.default.createElement("iframe",{ref:a,src:Qt,title:"Evaluation run report",allow:"clipboard-write",onLoad:()=>s(Hn=>Hn+1),scrolling:"no",style:{width:"100%",borderRadius:12,border:"1px solid var(--color-border)",background:"var(--color-background)",display:"block",height:l?`${l}px`:"calc(100vh - 180px)"}}))}if(C){let ve=F.find(nt=>nt.id===C.evaluationId);if(!ve||!ve.scenario_suite){let{runs:nt,runCount:pt,loaded:Qt}=ve?me(ve):{runs:[],runCount:null,loaded:!0};return Ne.default.createElement($D,{evaluation:ve,runs:nt,runCount:pt,runId:C.runId,loading:!Qt,running:I===C.evaluationId,onSelectRun:Hn=>D(ve,Hn),onRun:()=>E(ve),onBack:()=>G(null),onOpenEvaluation:()=>G(C.evaluationId),onDelete:ve?()=>ee(ve):void 0,deleting:j===C.evaluationId})}}let et=yZ(F,{focusId:L}),{samplesScored:rt,samplesPassed:ge,passRatio:ue,spend:Fe}=et,Je=xZ(et),ot=[...new Set(F.map(ve=>ve.agent?.name).filter(Boolean))],Tt=F.reduce((ve,nt)=>Math.max(ve,KI(nt,kh(nt)||nt.latest_run)),0),Lt=F.map(T_e),Hr=Lt.reduce((ve,nt)=>ve+nt,0),Io=Lt.filter(Boolean).length,vs=F.length?[`${St(ot.length,"agent")} \xB7 ${Tt>1?`${Tt} models compared`:"no model comparisons"}`,Je].filter(Boolean).join(" \xB7 "):"none defined yet",Mi=et.focused?"headline run of this evaluation":`headline run of ${St(et.counted,"current evaluation")}${Je?` \xB7 ${Je}`:""}`,yt=vZ(et),to=yt.length>1?yt[0]:null,xs=Fe.agentCost!=null&&Fe.estimated||Fe.judgeCost!=null&&Fe.judgeEstimated,bs=Fe.agentCost!=null?Ne.default.createElement("span",{style:{display:"flex",flexDirection:"column",gap:4}},Ne.default.createElement("span",{"data-testid":"stat-agent-cost-scope"},`over ${St(Fe.interactions,"interaction")}`),Ne.default.createElement("span",{style:{display:"grid",gridTemplateColumns:"max-content minmax(0, 1fr)",columnGap:10,rowGap:2,fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},Ne.default.createElement("span",null,"agent"),Ne.default.createElement("span",{"data-testid":"stat-agent-cost-agent",style:{color:"var(--color-text-cell)"}},Pr(Fe.agentCost,{estimated:Fe.estimated})),Ne.default.createElement("span",null,"judge"),Ne.default.createElement("span",{"data-testid":"stat-agent-cost-judge",style:{color:"var(--color-text-cell)"},title:"The judge's spend is the evaluation's own, outside the interactions, so it is not in the figure above"},Fe.judgeCost!=null?`${Pr(Fe.judgeCost,{estimated:Fe.judgeEstimated})} \xB7 offline`:"none")),xs&&Ne.default.createElement("span",{title:il,style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},"~ estimated")):"no priced runs yet";return Ne.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:20}},Ne.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:16,flexWrap:"wrap"}},!e&&Ne.default.createElement("div",{style:{flex:1,minWidth:260}},Ne.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Evaluations"),Ne.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)",textWrap:"pretty"}},"Score recorded outputs, or paste a list of user messages to replay through the agent under one or more models. Every run is kept.")),Ne.default.createElement("div",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:12}},(Me>0||z)&&Ne.default.createElement(ce,{size:"sm",onClick:()=>V(ve=>!ve),testId:"show-archived-toggle",title:"Archived evaluations keep their runs but leave the list and the tiles"},z?"Hide archived":`Show archived (${Me})`),Ne.default.createElement(ce,{variant:"primary",onClick:()=>O(!T),testId:"new-evaluation-button"},T?"Cancel":"New Evaluation"))),k&&Ne.default.createElement("div",{style:{padding:"10px 12px",borderRadius:8,fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},"Failed to load evaluations: ",k),T&&Ne.default.createElement(jD,{agents:p,agentId:t,judgeProvider:m,judgeProviderError:b,modelProviders:h,onCancel:()=>O(!1),onCreated:async ve=>{O(!1),await le(),ve?.id!=null&&(A(nt=>new Set([...nt||[],ve.id])),te(`/evaluations/${ve.id}`))}}),Ne.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(190px, 1fr))",gap:16}},Ne.default.createElement(Am,{label:"Evaluations",value:F.length,sub:vs,testId:"stat-evaluations"}),Ne.default.createElement(Am,{label:"Samples scored",value:rt,sub:Mi,testId:"stat-samples-scored"}),Ne.default.createElement(Am,{label:"Pass rate",value:Ts(ue),valueColor:ue==null?"var(--color-text-muted)":Dn[eu(ue)].strong,sub:ue==null?Je||"no completed runs yet":Ne.default.createElement("span",{style:{display:"flex",flexDirection:"column",gap:2}},Ne.default.createElement("span",{"data-testid":"stat-pass-rate-fraction"},`${ge}/${rt} passed`),to&&Ne.default.createElement(Ne.default.Fragment,null,Ne.default.createElement("span",{"data-testid":"stat-pass-rate-leader",title:`${to.label} ${Vn(to.passed,to.total)}: best of ${yt.length} models by the low end of its pass rate`,style:{display:"flex",gap:6,minWidth:0,fontFamily:U,fontSize:11,color:"var(--color-text-muted)",whiteSpace:"nowrap"}},Ne.default.createElement("span",null,"best"),Ne.default.createElement("span",{style:{overflow:"hidden",textOverflow:"ellipsis",minWidth:0,color:"var(--color-text-cell)"}},bn(to.label).short),Ne.default.createElement("span",{style:{flexShrink:0}},Ts(to.ratio))),Ne.default.createElement("button",{type:"button",onClick:()=>oe(ve=>!ve),"aria-expanded":q,"data-testid":"stat-pass-rate-leaderboard-toggle",style:{alignSelf:"flex-start",background:"transparent",border:"none",padding:0,cursor:"pointer",fontFamily:U,fontSize:11,color:"var(--color-text-secondary)"}},Ne.default.createElement(wa,{kind:"chevron",open:q})," ",`${q?"hide":"compare"} ${yt.length} models`))),testId:"stat-pass-rate"}),Ne.default.createElement(Am,{label:"To fix",value:Hr,valueColor:Hr?"var(--color-error)":void 0,sub:Hr?`across ${St(Io,"evaluation")}`:"nothing outstanding",testId:"stat-to-fix"}),Ne.default.createElement(Am,{label:"Cost / interaction",value:Lu(Fe.perInteraction,Fe.estimated),valueColor:Fe.perInteraction==null?"var(--color-text-muted)":void 0,sub:bs,testId:"stat-agent-cost"})),q&&Ne.default.createElement(UD,{rows:yt,columns:et.columns}),Ne.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},F.map((ve,nt)=>{let pt=ve.latest_run,Qt=kh(ve),Hn=pt&&Qt&&pt.id!==Qt.id?pt:null,co=GI(ve),nn=O_e[co],Oa=co==="archived",Pa=He(ve.id),ws=!!ve.scenario_suite,po=Lt[nt],Wu=(ve.criteria||[]).some(ro=>kl(ro)==="telemetry"),{runs:Ss,runCount:Hu}=me(ve);return Ne.default.createElement(je,{key:ve.id,padding:0,testId:"evaluation-card","data-telemetry":Wu?"true":"false","data-kind":ws?"suite":"sampling","data-open":Pa?"true":"false","data-standing":co,style:{overflow:"hidden",opacity:Oa?.75:1}},Ne.default.createElement("div",{role:"button",tabIndex:0,"aria-expanded":Pa,onClick:()=>_e(ve),onKeyDown:ro=>{(ro.key==="Enter"||ro.key===" ")&&(ro.preventDefault(),_e(ve))},className:"hover:bg-[var(--color-hover)]",style:{display:"flex",alignItems:"center",gap:10,rowGap:8,padding:"12px 16px",cursor:"pointer",flexWrap:"wrap"}},Ne.default.createElement(wa,{kind:"chevron",open:Pa}),Ne.default.createElement("span",{style:{width:22,height:22,borderRadius:6,background:"var(--color-muted)",display:"inline-flex",alignItems:"center",justifyContent:"center",fontFamily:U,fontSize:11,fontWeight:700,color:"var(--color-text-secondary)",flexShrink:0},title:ws?"scenario suite":"sampling evaluation"},ws?"=":"~"),Ne.default.createElement("span",{style:{fontSize:15,fontWeight:700,color:"var(--color-text-primary)"}},ve.name),Ne.default.createElement("span",{style:U2(11)},`@${ve.agent?.name||"agent"} \xB7 ${nf(ve)}`),Ne.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:12,flexShrink:0}},Ne.default.createElement("span",{style:U2(11)},wo(pt?.completed_at||pt?.created_at||ve.created_at)),po>0&&Ne.default.createElement("span",{style:U2(11,"var(--color-error)")},`${po} to fix`),nn&&Ne.default.createElement(ke,{tone:nn.tone,size:10,style:{padding:"1px 6px"},title:nn.title,testId:"evaluation-standing"},nn.text),Hn&&Ne.default.createElement(ff,{run:Hn,testId:"evaluation-newer-run-badge"}),Ne.default.createElement(ff,{run:Qt||pt,testId:ws?"suite-pass-badge":"evaluation-pass-badge"}),Ne.default.createElement("button",{type:"button",onClick:ro=>{ro.stopPropagation(),$(ve,!Oa)},disabled:W===ve.id,title:Oa?"Bring this evaluation back into the list and the tiles":"Archive: keep its runs, leave it out of the list and the tiles","data-testid":"evaluation-archive-toggle",style:{background:"transparent",border:"none",padding:0,cursor:W===ve.id?"not-allowed":"pointer",fontFamily:U,fontSize:11,color:"var(--color-text-muted)",opacity:W===ve.id?.5:1}},W===ve.id?"\u2026":Oa?"unarchive":"archive"))),Pa&&Ne.default.createElement("div",{style:{borderTop:"1px solid var(--color-border-light)"}},ws?Ne.default.createElement(ID,{evaluation:ve,modelProviders:h,onChanged:le,onDelete:()=>ee(ve),deleting:j===ve.id,initialRunId:C?.evaluationId===ve.id?C.runId:null,onRunSelected:ro=>te(`/evaluations/${ve.id}/runs/${ro}`)}):Ne.default.createElement("div",{style:{padding:16,display:"flex",flexDirection:"column",gap:12},"data-testid":"sampling-evaluation-panel"},Ne.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},Ne.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-secondary)"}},Ss.length?pJ(Ss,Hu):`@${ve.agent?.name||"agent"} \xB7 no runs yet`),Ne.default.createElement(ce,{variant:"primary",size:"sm",disabled:I===ve.id,onClick:ro=>{ro.stopPropagation(),E(ve)},testId:"evaluation-run-button"},I===ve.id?"Running\u2026":`Run ${nf(ve)}`)),Ne.default.createElement(dD,{runs:Ss,runCount:Hu,evaluation:ve,agentName:ve.agent?.name,previousRun:ve.previous_run,onOpen:ro=>D(ve,ro),testId:"evaluation-runs-panel"}),Ne.default.createElement(gf,{evaluation:ve,run:pt,spend:Ni(pt),onDelete:()=>ee(ve),deleting:j===ve.id}))))})),F.length===0&&!T&&Ne.default.createElement(je,{style:{textAlign:"center",padding:"48px 20px"}},Ne.default.createElement("div",{style:{fontSize:16,fontWeight:600,color:"var(--color-text-primary)"}},"No evaluations yet"),Ne.default.createElement("p",{style:{margin:"8px 0 0",fontSize:13,color:"var(--color-text-secondary)",textWrap:"pretty"}},"Create an evaluation to score recorded outputs, or paste scenarios to test new tasks across models. Every run is kept, so scores stay comparable over time.")))}var We=Z(J());var P_e=e=>new Date(`${e}T00:00:00`),M_e=[{id:"overview",label:"Overview"},{id:"traces",label:"Traces"},{id:"interactions",label:"Interactions"}];function HD({agent:e,onBack:t,embedded:r=!1}){let{darkMode:n}=ut(),o=Ki(n),[a,i]=(0,We.useState)(null),[s,l]=(0,We.useState)(!0),{timeWindow:u,days:c}=xl(),[d,p]=(0,We.useState)("overview");(0,We.useEffect)(()=>{f()},[e?.id,c]);let f=async()=>{if(e?.id){l(!0);try{let x=await(await fetch(`/api/agents/${e.id}/analytics?days=${c}`)).json();i(x)}catch(v){console.error("Failed to load analytics:",v)}finally{l(!1)}}},m=v=>v?v<1e3?`${v}ms`:`${(v/1e3).toFixed(2)}s`:"-",y=v=>v?v>=1e6?`${(v/1e6).toFixed(1)}M`:v>=1e3?`${(v/1e3).toFixed(1)}K`:v.toString():"0",b=v=>{switch(v){case"complete":return"bg-green-500";case"failed":return"bg-red-500";case"running":return"bg-blue-500";case"pending":return"bg-yellow-500";case"cancelled":return"bg-gray-500";default:return"bg-gray-400"}};if(s&&!a)return We.default.createElement("div",{className:"flex items-center justify-center h-64"},We.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let g=a?.runs_by_day?.length>0?Math.max(...a.runs_by_day.map(v=>v.count)):1,h=r?"overview":d;return We.default.createElement("div",{className:"space-y-6"},r?We.default.createElement("div",{className:"flex items-center justify-end gap-2"},u.minutes<1440&&We.default.createElement("span",{className:"text-xs",style:{color:o.textMuted},title:"This view aggregates by day"},"showing 1 day"),We.default.createElement(bl,null)):We.default.createElement("div",{className:"flex items-center justify-between"},We.default.createElement("div",{className:"flex items-center space-x-4"},We.default.createElement("button",{onClick:t,className:"p-2 transition-colors",style:{color:o.textMuted}},We.default.createElement("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},We.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"}))),We.default.createElement("div",null,We.default.createElement("h1",{className:"text-2xl font-bold",style:{color:o.textPrimary}},e.name," Analytics"),We.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},"Performance metrics and usage data"))),We.default.createElement("div",{className:"flex items-center gap-2"},u.minutes<1440&&We.default.createElement("span",{className:"text-xs",style:{color:o.textMuted},title:"This view aggregates by day"},"showing 1 day"),We.default.createElement(bl,null))),!r&&We.default.createElement("div",{className:"flex rounded-lg p-1 w-fit",style:{background:o.mutedBg}},M_e.map(v=>We.default.createElement("button",{key:v.id,onClick:()=>p(v.id),className:`px-4 py-1.5 text-sm rounded-md transition-colors ${d===v.id?"shadow":""}`,style:d===v.id?{background:o.cardBg,color:o.textPrimary}:{color:o.textSecondary}},v.label))),h==="traces"&&We.default.createElement(Jp,{agentId:e.id,embedded:!0}),h==="interactions"&&We.default.createElement($u,{agentId:e.id,embedded:!0}),h==="overview"&&We.default.createElement(We.default.Fragment,null,We.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4"},We.default.createElement(H2,{title:"Total Runs",value:a?.summary?.total_runs||0,icon:We.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},We.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 10V3L4 14h7v7l9-11h-7z"})),color:"rose",colors:o,darkMode:n}),We.default.createElement(H2,{title:"Success Rate",value:`${a?.summary?.success_rate||0}%`,icon:We.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},We.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"})),color:"green",colors:o,darkMode:n}),We.default.createElement(H2,{title:"Avg Duration",value:m(a?.summary?.avg_duration_ms),icon:We.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},We.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})),color:"blue",colors:o,darkMode:n}),We.default.createElement(H2,{title:"Total Tokens",value:y(a?.summary?.total_tokens),icon:We.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},We.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M7 21a4 4 0 01-4-4V5a2 2 0 012-2h4a2 2 0 012 2v12a4 4 0 01-4 4zm0 0h12a2 2 0 002-2v-4a2 2 0 00-2-2h-2.343M11 7.343l1.657-1.657a2 2 0 012.828 0l2.829 2.829a2 2 0 010 2.828l-8.486 8.485M7 17h.01"})),color:"purple",colors:o,darkMode:n})),We.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6"},We.default.createElement("div",{className:"lg:col-span-2 rounded-xl border p-6",style:{background:o.cardBg,borderColor:o.cardBorder}},We.default.createElement("h3",{className:"font-semibold mb-4",style:{color:o.textPrimary}},"Runs Over Time"),a?.runs_by_day?.length>0?We.default.createElement("div",{className:"h-48"},We.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},a.runs_by_day.map((v,x)=>We.default.createElement("div",{key:v.date,className:"flex-1 flex flex-col items-center group"},We.default.createElement("div",{className:"relative w-full"},We.default.createElement("div",{className:"w-full bg-red-500 rounded-t transition-all hover:bg-red-600",style:{height:`${v.count/g*150}px`,minHeight:v.count>0?"4px":"0"}}),We.default.createElement("div",{className:"absolute -top-8 left-1/2 transform -translate-x-1/2 bg-gray-800 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap"},v.count," runs")),(x===0||x===a.runs_by_day.length-1||a.runs_by_day.length<=7)&&We.default.createElement("span",{className:"text-xs mt-2 transform -rotate-45 origin-left",style:{color:o.textMuted}},P_e(v.date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))))):We.default.createElement("div",{className:"h-48 flex items-center justify-center",style:{color:o.textMuted}},"No data for this period")),We.default.createElement("div",{className:"rounded-xl border p-6",style:{background:o.cardBg,borderColor:o.cardBorder}},We.default.createElement("h3",{className:"font-semibold mb-4",style:{color:o.textPrimary}},"Status Breakdown"),Object.keys(a?.status_breakdown||{}).length>0?We.default.createElement("div",{className:"space-y-3"},Object.entries(a.status_breakdown).map(([v,x])=>{let S=a?.summary?.total_runs||1,k=(x/S*100).toFixed(1);return We.default.createElement("div",{key:v},We.default.createElement("div",{className:"flex justify-between text-sm mb-1"},We.default.createElement("span",{className:"capitalize",style:{color:o.textSecondary}},v),We.default.createElement("span",{className:"font-medium",style:{color:o.textPrimary}},x," (",k,"%)")),We.default.createElement("div",{className:"h-2 rounded-full overflow-hidden",style:{background:o.trackBg}},We.default.createElement("div",{className:`h-full ${b(v)} rounded-full transition-all`,style:{width:`${k}%`}})))})):We.default.createElement("div",{className:"h-32 flex items-center justify-center",style:{color:o.textMuted}},"No runs yet"))),a?.recent_errors?.length>0&&We.default.createElement("div",{className:"rounded-xl border p-6",style:{background:o.cardBg,borderColor:o.cardBorder}},We.default.createElement("h3",{className:"font-semibold mb-4",style:{color:o.textPrimary}},"Recent Errors"),We.default.createElement("div",{className:"space-y-3"},a.recent_errors.map(v=>We.default.createElement("div",{key:v.id,className:"flex items-start space-x-3 p-3 rounded-lg",style:{background:n?"rgba(220,38,38,0.12)":"#fef2f2"}},We.default.createElement("svg",{className:"w-5 h-5 text-red-500 flex-shrink-0 mt-0.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},We.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})),We.default.createElement("div",{className:"flex-1 min-w-0"},We.default.createElement("p",{className:"text-sm",style:{color:n?"#fca5a5":"#991b1b"}},v.error||"Unknown error"),We.default.createElement("p",{className:"text-xs mt-1",style:{color:n?"#f87171":"#dc2626"}},new Date(v.created_at).toLocaleString())))))),We.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4"},We.default.createElement("div",{className:"rounded-lg p-4",style:{background:o.innerBg}},We.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},"Completed Runs"),We.default.createElement("p",{className:"text-2xl font-bold",style:{color:o.textPrimary}},a?.summary?.completed_runs||0)),We.default.createElement("div",{className:"rounded-lg p-4",style:{background:o.innerBg}},We.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},"Failed Runs"),We.default.createElement("p",{className:"text-2xl font-bold",style:{color:o.textPrimary}},a?.summary?.failed_runs||0)),We.default.createElement("div",{className:"rounded-lg p-4",style:{background:o.innerBg}},We.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},"Avg Tokens/Run"),We.default.createElement("p",{className:"text-2xl font-bold",style:{color:o.textPrimary}},y(a?.summary?.avg_tokens_per_run))),We.default.createElement("div",{className:"rounded-lg p-4",style:{background:o.innerBg}},We.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},"Period"),We.default.createElement("p",{className:"text-2xl font-bold",style:{color:o.textPrimary}},a?.period_days||30," days")))))}var hQ={rose:["#dc2626","rgba(220,38,38,0.18)","#fee2e2"],green:["#16a34a","rgba(22,163,74,0.18)","#dcfce7"],blue:["#2563eb","rgba(37,99,235,0.18)","#dbeafe"],purple:["#7c3aed","rgba(124,58,237,0.18)","#ede9fe"]};function H2({title:e,value:t,icon:r,color:n,colors:o,darkMode:a}){let[i,s,l]=hQ[n]||hQ.rose;return We.default.createElement("div",{className:"rounded-xl border p-4",style:{background:o.cardBg,borderColor:o.cardBorder}},We.default.createElement("div",{className:"flex items-center justify-between"},We.default.createElement("div",null,We.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},e),We.default.createElement("p",{className:"text-2xl font-bold mt-1",style:{color:o.textPrimary}},t)),We.default.createElement("div",{className:"p-3 rounded-lg",style:{background:a?s:l,color:i}},r)))}var de=Z(J());var I_e={active:"success",configured:"info",available:"warning",idle:"muted"},D_e={agent_defined:"success",dashboard:"success",mcp:"info"},yQ="44px minmax(0, 1fr) 108px 60px 52px 58px 74px 26px",vQ="26px minmax(0, 1fr) 108px 52px 52px 52px 74px 64px",j_e=[{value:"enabled",label:"Enabled"},{value:"active",label:"Active"},{value:"configured",label:"Configured"},{value:"available",label:"Available"}],xQ={padding:"7px 16px",gap:10,alignItems:"end",background:"var(--color-muted)",fontFamily:U,fontSize:10,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",color:"var(--color-text-muted)"},Nl={fontFamily:U,fontSize:11,textAlign:"right",color:"var(--color-text-primary)"},q2={whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"};function SQ({on:e,onClick:t,title:r}){return de.default.createElement("span",{role:"switch","aria-checked":e,tabIndex:0,title:r,onClick:t,onKeyDown:n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),t(n))},style:{width:34,height:18,borderRadius:999,flexShrink:0,position:"relative",cursor:"pointer",background:e?"var(--color-accent-ui)":"var(--color-muted)",border:`1px solid ${e?"var(--color-accent-ui)":"var(--color-border-strong)"}`,transition:"background 0.12s ease"}},de.default.createElement("span",{style:{position:"absolute",top:1,left:e?17:1,width:14,height:14,borderRadius:"50%",background:e?"#ffffff":"var(--color-text-muted)",transition:"left 0.12s ease"}}))}function bQ({on:e,dim:t=!1}){return de.default.createElement("span",{"aria-hidden":"true",style:{width:16,height:16,borderRadius:4,display:"flex",alignItems:"center",justifyContent:"center",fontFamily:U,fontSize:10,fontWeight:700,flexShrink:0,border:`1px solid ${e?"var(--color-accent-ui)":"var(--color-border-strong)"}`,background:e?"var(--color-accent-ui)":"transparent",color:e?"var(--color-on-accent)":"transparent",opacity:t?.8:1}},e?"x":"")}function $_e({tool:e,state:t,onToggle:r}){if(!t)return de.default.createElement("span",null);let n=t!=="off",o=`Click to make each ${e.name} call wait for a person to approve it`;return t==="on"&&(o=`Each ${e.name} call waits for approval. Click to let it run without asking.`),t==="partial"&&(o=`Some ${e.name} functions wait for approval. Click to let every ${e.name} call run without asking.`),de.default.createElement("span",{"data-testid":`tool-approval-${e.key}`,"data-approval":t,onClick:a=>a.stopPropagation(),onKeyDown:a=>a.stopPropagation(),style:{display:"flex",justifyContent:"center"}},de.default.createElement(SQ,{on:n,title:o,onClick:()=>r(e)}))}function K2({children:e,onClick:t,disabled:r,title:n}){return de.default.createElement("button",{type:"button",onClick:t,disabled:r,title:n,style:{padding:"3px 9px",borderRadius:6,background:"transparent",fontFamily:U,fontSize:11,border:"1px solid var(--color-border-strong)",color:"var(--color-text-cell)",cursor:r?"not-allowed":"pointer",opacity:r?.5:1}},e)}function wQ({children:e}){return de.default.createElement("div",{style:{overflowX:"auto"}},de.default.createElement("div",{style:{minWidth:800}},e))}function qD({agent:e,formData:t,updateField:r,onSave:n,hasChanges:o=!1,isLoading:a}){let[i,s]=(0,de.useState)(null),[l,u]=(0,de.useState)(null),[c,d]=(0,de.useState)("7d"),[p,f]=(0,de.useState)(""),[m,y]=(0,de.useState)(null),[b,g]=(0,de.useState)(null),[h,v]=(0,de.useState)(!1),[x,S]=(0,de.useState)(null),[k,w]=(0,de.useState)({}),_=(rw.find(D=>D.value===c)||rw[1]).hours;(0,de.useEffect)(()=>{let D=!1;return u(null),fetch(`/api/agents/${e.id}/tool_roster?hours=${_}`).then(G=>{if(!G.ok)throw new Error(`Request failed (${G.status})`);return G.json()}).then(G=>{D||s(G)}).catch(G=>{D||u(G.message)}),()=>{D=!0}},[e.id,_]);let A=(0,de.useMemo)(()=>({services:[],tools:[]}),[]),C=i||A,N=(0,de.useMemo)(()=>t.tools||[],[t.tools]),L=(0,de.useMemo)(()=>t.mcp_servers||[],[t.mcp_servers]),Q=(0,de.useMemo)(()=>t.approval_required_tools||[],[t.approval_required_tools]),B=(0,de.useMemo)(()=>tw(C,L),[C,L]),K=(0,de.useMemo)(()=>M6(C,B,{query:p,filter:m}),[C,B,p,m]),T=(0,de.useMemo)(()=>D6(C,B,N,{query:p,source:b,enabledOnly:h}),[C,B,N,p,b,h]),O=(0,de.useMemo)(()=>j6(C,B,N,{range:c}),[C,B,N,c]),I=(0,de.useMemo)(()=>z6(C,{tools:N,mcpServers:L,approvalRequiredTools:Q},{tools:e.tools||[],mcpServers:e.mcp_servers||[],approvalRequiredTools:e.approval_required_tools||[]}),[C,N,L,Q,e]),P=C.usage_available!==!1,j=D=>P?D:"\u2014",M=(0,de.useCallback)(D=>{r("mcp_servers",B6(C,D,L))},[C,L,r]),W=(0,de.useCallback)(D=>{let G=B[D.key];M({...B,[D.key]:{...G,on:!G.on}})},[B,M]),Y=(0,de.useCallback)((D,G)=>{let E=B[D.key];E.on&&M({...B,[D.key]:{...E,tools:{...E.tools,[G.name]:!E.tools[G.name]}}})},[B,M]),z=(0,de.useCallback)((D,G)=>{let E=B[D.key],$=Object.fromEntries((D.tools||[]).map(ee=>[ee.name,G]));M({...B,[D.key]:{on:G||E.on,tools:$}})},[B,M]),V=(0,de.useCallback)(D=>{r("tools",F6(C,D));let G=Om(D.filter(E=>!N.includes(E)));G.length>0&&r("approval_required_tools",bT(Q,G,!0))},[C,N,Q,r]),q=(0,de.useCallback)(D=>{D.editable&&V(D.on?N.filter(G=>G!==D.key):[...N,D.key])},[N,V]),oe=(0,de.useCallback)((D,G)=>{D.editable&&V(G?[...N,...D.keys.filter(E=>!N.includes(E))]:N.filter(E=>!D.keys.includes(E)))},[N,V]),Me=(0,de.useCallback)(D=>{r("approval_required_tools",L6(Q,D,e.approval_required_tools||[]))},[Q,e,r]),fe=(0,de.useCallback)(()=>{r("tools",e.tools||[]),r("mcp_servers",e.mcp_servers||[]),r("approval_required_tools",e.approval_required_tools||[])},[e,r]),le=(C.services||[]).filter(D=>B[D.key]?.on),R=T.find(D=>D.source==="mcp"),He=T.filter(D=>D.source!=="mcp").reduce((D,G)=>D+G.enabledCount,0)+(R?R.total:0),_e=T.reduce((D,G)=>D+G.total,0);return l?de.default.createElement(je,null,de.default.createElement(Ue,null,"Tools & MCP services"),de.default.createElement("p",{style:{margin:"8px 0 0",fontSize:13,color:"var(--color-error-text)"}},"Could not load the roster: ",l)):i?de.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},de.default.createElement("div",{style:{display:"flex",alignItems:"flex-end",gap:16,flexWrap:"wrap"}},de.default.createElement("div",{style:{flex:1,minWidth:260}},de.default.createElement("h2",{style:{margin:0,fontSize:16,fontWeight:600,color:"var(--color-text-primary)"}},"Tools & MCP services"),de.default.createElement("p",{style:{margin:"3px 0 0",fontSize:13,color:"var(--color-text-secondary)",textWrap:"pretty"}},"Turn a service on to offer its tools, then narrow the roster tool by tool. Call counts come from the traces recorded on every tool call.")),de.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},de.default.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:6,padding:"6px 10px",borderRadius:8,border:"1px solid var(--color-border-strong)",background:"var(--color-card)"}},de.default.createElement("span",{style:{fontFamily:U,fontSize:12,color:"var(--color-text-muted)"}},"?"),de.default.createElement("input",{value:p,onChange:D=>f(D.target.value),placeholder:"Filter tools and services\u2026","aria-label":"Filter tools and services",style:{border:"none",outline:"none",background:"transparent",color:"var(--color-text-primary)",fontSize:13,width:180}})),de.default.createElement(qi,{options:rw,value:c,onChange:d}))),de.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))",gap:12}},O.map(D=>de.default.createElement(je,{key:D.key,padding:"14px 16px",testId:`roster-stat-${D.key}`},de.default.createElement(Ue,{size:11,spacing:"0.05em"},D.label),de.default.createElement("div",{style:{marginTop:6,fontFamily:U,fontSize:26,fontWeight:700,lineHeight:1.1,color:D.tone==="warning"?"var(--color-warning)":"var(--color-text-primary)"}},D.value),de.default.createElement("div",{style:{marginTop:5,fontSize:12,color:"var(--color-text-secondary)",textWrap:"pretty"}},D.sub)))),de.default.createElement(je,{padding:0,style:{overflow:"hidden"},testId:"mcp-services-card"},de.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"12px 16px",borderBottom:"1px solid var(--color-border-light)",flexWrap:"wrap"}},de.default.createElement(Ue,null,"MCP services"),de.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},le.length," of ",(C.services||[]).length," enabled \xB7 ",R?R.total:0," tools offered"),de.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"}},de.default.createElement(jn,{selected:!m,onClick:()=>y(null)},"All ",(C.services||[]).length),j_e.map(D=>de.default.createElement(jn,{key:D.value,selected:m===D.value,onClick:()=>y(m===D.value?null:D.value)},D.label,D.value==="enabled"?` ${le.length}`:"")),de.default.createElement(Gr,{href:Re("/mcp"),onClick:()=>lt("/mcp"),title:"Every MCP service this workspace knows",style:{marginLeft:4}},"manage servers"))),de.default.createElement(wQ,null,de.default.createElement("div",{style:{display:"grid",gridTemplateColumns:yQ,...xQ}},de.default.createElement("span",null,"On"),de.default.createElement("span",null,"Service"),de.default.createElement("span",null,"Status"),de.default.createElement("span",{style:{textAlign:"right"}},"Tools"),de.default.createElement("span",{style:{textAlign:"right"}},"Calls"),de.default.createElement("span",{style:{textAlign:"right"}},"Errors"),de.default.createElement("span",{style:{textAlign:"right"}},"Last seen"),de.default.createElement("span",null)),K.map(D=>{let G=x===D.key;return de.default.createElement("div",{key:D.key},de.default.createElement("div",{className:"aa-roster-row","data-on":D.on?"true":"false","data-testid":`service-row-${D.key}`,style:{display:"grid",gridTemplateColumns:yQ,gap:10,alignItems:"center",padding:"10px 16px",borderTop:"1px solid var(--color-border-light)"}},de.default.createElement(SQ,{on:D.on,onClick:()=>W(D),title:`${D.on?"Disable":"Enable"} ${D.name} for this agent`}),de.default.createElement("div",{onClick:()=>S(G?null:D.key),style:{minWidth:0,cursor:"pointer"}},de.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},de.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},D.name),D.first_party&&de.default.createElement(ke,{tone:"accent",size:10},"first-party"),Zd(D)&&de.default.createElement(ke,{tone:"info",size:10,title:"The app runtime of a checkout sandbox started from Settings \u2192 Integrations"},"sandbox runtime"),av(D)&&de.default.createElement(ke,{tone:"warning",size:10,title:"This checkout sandbox has stopped; the agent still names its runtime"},"not running"),nw(D)&&de.default.createElement(ke,{size:10,title:"Seen in your traffic but not in the platform catalog"},"undocumented"),D.partial&&de.default.createElement(ke,{tone:"warning",size:10},D.partialLabel)),de.default.createElement("div",{style:{marginTop:2,fontSize:12,lineHeight:"17px",color:"var(--color-text-secondary)",...q2}},D.description)),de.default.createElement("span",null,de.default.createElement(ke,{tone:I_e[D.status]||"muted"},D.status)),de.default.createElement("span",{style:{...Nl,color:D.on?"var(--color-text-primary)":"var(--color-text-muted)"}},D.toolsLabel),de.default.createElement("span",{style:Nl},j(D.calls)),de.default.createElement("span",{style:{...Nl,color:D.errors?"var(--color-error-text)":"var(--color-text-secondary)"}},j(D.errors)),de.default.createElement("span",{style:{...Nl,color:"var(--color-text-muted)"}},j(ov(D.last_seen))),de.default.createElement("span",{onClick:()=>S(G?null:D.key),style:{cursor:"pointer",textAlign:"center"}},de.default.createElement(wa,{kind:"chevron",open:G}))),G&&de.default.createElement("div",{style:{borderTop:"1px solid var(--color-border-light)",background:"var(--color-background)",padding:"10px 16px 12px"}},de.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap",marginBottom:8}},de.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},"Tools offered"),de.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},D.transport),de.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:8}},de.default.createElement(K2,{onClick:()=>z(D,!0),title:`Offer every tool ${D.name} serves`},"all"),de.default.createElement(K2,{onClick:()=>z(D,!1),disabled:!D.on,title:`Offer none of ${D.name}'s tools`},"none"))),D.tools.length===0?de.default.createElement(Jr,{style:{padding:"10px 0"}},O6(D)):de.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(300px, 1fr))",gap:"6px 14px"}},D.tools.map(E=>de.default.createElement("div",{key:E.name,className:"aa-roster-row",onClick:()=>Y(D,E),style:{display:"grid",gridTemplateColumns:"20px minmax(0, 1fr) 46px 52px",gap:10,alignItems:"center",padding:"6px 8px",borderRadius:8,cursor:D.on?"pointer":"default",opacity:D.on?1:.55}},de.default.createElement(bQ,{on:E.on,dim:!D.on}),de.default.createElement("span",{style:{minWidth:0}},de.default.createElement("span",{style:{display:"block",fontFamily:U,fontSize:12,fontWeight:600,color:E.on?"var(--color-text-primary)":"var(--color-text-secondary)",...q2}},E.name),de.default.createElement("span",{style:{display:"block",fontSize:11,color:"var(--color-text-muted)",...q2}},E.description)),de.default.createElement("span",{style:{...Nl,color:"var(--color-text-secondary)"}},j(E.calls)),de.default.createElement("span",{style:{...Nl,color:E.errors?"var(--color-error-text)":"var(--color-text-muted)"}},j(E.errors?`${E.errors} err`:vT(E.avg_duration_ms)))))),!D.on&&de.default.createElement("div",{style:{marginTop:8,fontSize:12,color:"var(--color-text-secondary)",textWrap:"pretty"}},"Turning ",D.name," on offers these ",D.tools.length," tools to the agent and starts recording traces and metrics for every call.")))}),K.length===0&&de.default.createElement(Jr,{style:{borderTop:"1px solid var(--color-border-light)",padding:"18px 16px"}},p?`no services match "${p}"`:"no MCP services yet"))),de.default.createElement(je,{padding:0,style:{overflow:"hidden"},testId:"tools-card"},de.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"12px 16px",borderBottom:"1px solid var(--color-border-light)",flexWrap:"wrap"}},de.default.createElement(Ue,null,"Tools"),de.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},He," enabled of ",_e," available"),de.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"}},de.default.createElement(jn,{selected:!b,onClick:()=>g(null)},"All ",_e),T.map(D=>de.default.createElement(jn,{key:D.source,selected:b===D.source,onClick:()=>g(b===D.source?null:D.source)},D.name," ",D.total)),de.default.createElement(jn,{square:!0,mono:!0,selected:h,onClick:()=>v(!h),style:{marginLeft:4}},h?"[x] enabled only":"[ ] enabled only"))),de.default.createElement(wQ,null,de.default.createElement("div",{style:{display:"grid",gridTemplateColumns:vQ,...xQ}},de.default.createElement("span",null),de.default.createElement("span",null,"Tool"),de.default.createElement("span",null,"Source"),de.default.createElement("span",{style:{textAlign:"right"}},"Calls"),de.default.createElement("span",{style:{textAlign:"right"}},"Errors"),de.default.createElement("span",{style:{textAlign:"right"}},"Avg"),de.default.createElement("span",{style:{textAlign:"right"}},"Last seen"),de.default.createElement("span",{style:{textAlign:"center"},title:"Pause the run for a person to approve each call before the tool runs"},"Approval")),T.map(D=>{let G=k[D.source]!==!0;return de.default.createElement("div",{key:D.source},de.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"7px 16px",borderTop:"1px solid var(--color-border-light)",background:"var(--color-background)",flexWrap:"wrap"}},de.default.createElement("span",{onClick:()=>w({...k,[D.source]:G}),style:{cursor:"pointer",display:"inline-flex",alignItems:"center",gap:10}},de.default.createElement(wa,{kind:"chevron",open:G}),de.default.createElement("span",{style:{fontSize:12,fontWeight:600,color:"var(--color-text-primary)"}},D.name)),de.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},D.meta),de.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:8}},de.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-cell)"}},D.countLabel),D.editable&&de.default.createElement(de.default.Fragment,null,de.default.createElement(K2,{onClick:()=>oe(D,!0)},"all"),de.default.createElement(K2,{onClick:()=>oe(D,!1)},"none")))),G&&D.rows.map(E=>de.default.createElement("div",{key:E.key,className:"aa-roster-row","data-on":E.on?"true":"false","data-testid":`tool-row-${E.key}`,onClick:()=>q(E),style:{display:"grid",gridTemplateColumns:vQ,gap:10,alignItems:"center",padding:"10px 16px",borderTop:"1px solid var(--color-border-light)",cursor:E.editable?"pointer":"default",opacity:E.editable?1:.75}},de.default.createElement(bQ,{on:E.on,dim:!E.editable}),de.default.createElement("div",{style:{minWidth:0}},de.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},de.default.createElement("span",{style:{fontFamily:U,fontSize:12,fontWeight:600,color:E.on?"var(--color-text-primary)":"var(--color-text-secondary)"}},E.name),E.source==="mcp"&&de.default.createElement(ke,{size:10},"via ",E.server),E.source==="agent_defined"&&(E.editable?de.default.createElement(ke,{size:10,title:"Generated from the host's schema tools; offered to this agent only while its roster names it"},"from schema"):de.default.createElement(ke,{size:10,title:"Declared by the agent class in code, so the roster reports it rather than selecting it"},"from code")),P&&E.on&&!E.calls&&de.default.createElement(ke,{size:10},"unused")),de.default.createElement("div",{style:{marginTop:2,fontSize:12,lineHeight:"17px",color:"var(--color-text-secondary)",...q2}},E.description)),de.default.createElement("span",null,de.default.createElement(ke,{tone:D_e[E.source]||"muted"},yT[E.source])),de.default.createElement("span",{style:Nl},j(E.calls)),de.default.createElement("span",{style:{...Nl,color:E.errors?"var(--color-error-text)":"var(--color-text-secondary)"}},j(E.errors)),de.default.createElement("span",{style:{...Nl,color:"var(--color-text-secondary)"}},j(vT(E.avg_duration_ms))),de.default.createElement("span",{style:{...Nl,color:"var(--color-text-muted)"}},j(ov(E.last_seen))),de.default.createElement($_e,{tool:E,state:xT(E,Q),onToggle:Me}))))}),T.every(D=>D.rows.length===0)&&de.default.createElement(Jr,{style:{borderTop:"1px solid var(--color-border-light)",padding:"18px 16px"}},p?`no tools match "${p}"`:"nothing enabled yet"))),de.default.createElement(je,{padding:"12px 16px",style:{position:"sticky",bottom:0,zIndex:4,background:"var(--color-surface)",display:"flex",alignItems:"center",gap:12,flexWrap:"wrap"},testId:"roster-action-bar"},de.default.createElement("div",{style:{minWidth:0,display:"flex",flexDirection:"column",gap:3}},de.default.createElement(Ue,{size:11,spacing:"0.05em"},He," tools \xB7 ",le.length," services"),de.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)",textWrap:"pretty"}},"Every enabled tool is traced: calls, arguments, errors and latency land in Traces and roll up into Metrics.")),de.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"}},I>0&&de.default.createElement(de.default.Fragment,null,de.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-warning-text)"}},I," change",I===1?"":"s"," pending"),de.default.createElement(ce,{variant:"secondary",onClick:fe},"Discard")),de.default.createElement(ce,{variant:o?"primary":"secondary",onClick:n,disabled:a||!o,title:o?"Save this agent":"Nothing to save",style:o?void 0:{background:"var(--color-muted)",color:"var(--color-text-muted)",border:"1px solid transparent",cursor:"default"}},a?"Saving\u2026":"Save Changes")))):de.default.createElement(je,null,de.default.createElement(Jr,null,"loading the roster\u2026"))}var Jt=Z(J());function KD({agentId:e,colors:t}){let[r,n]=(0,Jt.useState)(""),[o,a]=(0,Jt.useState)(""),[i,s]=(0,Jt.useState)(""),[l,u]=(0,Jt.useState)(1),[c,d]=(0,Jt.useState)(null),[p,f]=(0,Jt.useState)(null),[m,y]=(0,Jt.useState)(0);(0,Jt.useEffect)(()=>{let g=new AbortController;d(null),f(null);let h=new URLSearchParams({agent_id:e,rating:r,from:o,to:i,page:l});return fetch(Re(`/api/feedback?${h}`),{signal:g.signal}).then(async v=>{if(!v.ok)throw new Error("Could not load feedback.");return v.json()}).then(d).catch(v=>{v.name!=="AbortError"&&f(v.message)}),()=>g.abort()},[e,r,o,i,l,m]);let b=g=>h=>{g(h.target.value),u(1)};return Jt.default.createElement("section",{"aria-label":"User feedback",style:{color:t.textPrimary,background:t.cardBg,border:`1px solid ${t.cardBorder}`,borderRadius:12,padding:20}},Jt.default.createElement("div",{className:"flex flex-wrap items-center gap-4 mb-4"},Jt.default.createElement("label",null,"Rating ",Jt.default.createElement("select",{value:r,onChange:b(n),style:{color:t.textPrimary,background:t.cardBg}},Jt.default.createElement("option",{value:""},"All ratings"),Jt.default.createElement("option",{value:"positive"},"Thumbs up"),Jt.default.createElement("option",{value:"negative"},"Thumbs down"))),Jt.default.createElement("label",null,"From ",Jt.default.createElement("input",{type:"date",value:o,onChange:b(a),style:{color:t.textPrimary,background:t.cardBg}})),Jt.default.createElement("label",null,"To ",Jt.default.createElement("input",{type:"date",value:i,onChange:b(s),style:{color:t.textPrimary,background:t.cardBg}})),Jt.default.createElement("button",{type:"button",onClick:()=>y(g=>g+1)},"Refresh")),p&&Jt.default.createElement("p",{role:"alert"},p),!c&&!p&&Jt.default.createElement("p",{role:"status"},"Loading feedback\u2026"),c&&Jt.default.createElement(Jt.default.Fragment,null,Jt.default.createElement("p",{className:"mb-4"},c.positive," thumbs up \xB7 ",c.negative," thumbs down \xB7 ",c.positive_percentage==null?"No ratings":`${c.positive_percentage}% positive`," (",c.total," ratings matching filters)"),c.total===0&&Jt.default.createElement("p",null,"No feedback recorded for these filters. Submit feedback from your application after the trace is ingested."),Jt.default.createElement("ul",null,c.feedback.map(g=>Jt.default.createElement("li",{key:g.id,className:"py-4",style:{borderTop:`1px solid ${t.cardBorder}`}},Jt.default.createElement("strong",null,g.rating==="positive"?"\u{1F44D} Thumbs up":"\u{1F44E} Thumbs down"),Jt.default.createElement("span",null," \xB7 ",new Date(g.created_at).toLocaleString()),g.user_reference&&Jt.default.createElement("span",null," \xB7 ",g.user_reference),g.comment&&Jt.default.createElement("p",{style:{whiteSpace:"pre-wrap",overflowWrap:"anywhere"}},g.comment),Jt.default.createElement("a",{className:"underline",href:Re(`/traces?trace=${encodeURIComponent(g.trace_id)}`)},"Open interaction trace"),g.span_id&&Jt.default.createElement("p",null,"Response span: ",Jt.default.createElement("code",null,g.span_id))))),Jt.default.createElement("div",{className:"flex gap-4 mt-4"},Jt.default.createElement("button",{disabled:l===1,onClick:()=>u(g=>g-1)},"Previous"),Jt.default.createElement("span",null,"Page ",l),Jt.default.createElement("button",{disabled:l*50>=c.total,onClick:()=>u(g=>g+1)},"Next"))))}var L_e=[{id:"config",label:"Configuration"},{id:"instructions",label:"Instructions"},{id:"tools",label:"Tools"},{id:"versions",label:"Versions"},{id:"code",label:"Code"}],CQ=[{id:"traces",label:"Traces"},{id:"metrics",label:"Metrics"},{id:"interactions",label:"Interactions"},{id:"evals",label:"Evals"},{id:"feedback",label:"Feedback"}],z_e=CQ.map(e=>e.id),kQ={success:{light:["#dcfce7","#166534"],dark:["rgba(22,163,74,0.18)","#4ade80"]},warning:{light:["#fef9c3","#854d0e"],dark:["rgba(234,179,8,0.18)","#facc15"]},neutral:{light:["#f3f4f6","#4b5563"],dark:["rgba(255,255,255,0.1)","rgba(255,255,255,0.7)"]},error:{light:["#fee2e2","#991b1b"],dark:["rgba(220,38,38,0.18)","#f87171"]},info:{light:["#dbeafe","#1e40af"],dark:["rgba(59,130,246,0.18)","#60a5fa"]}},B_e={active:"success",draft:"warning",archived:"neutral",failed:"error",trial:"info"};function hd({tone:e="neutral",mono:t=!1,darkMode:r,children:n}){let[o,a]=(kQ[e]||kQ.neutral)[r?"dark":"light"];return Se.default.createElement("span",{style:{background:o,color:a,borderRadius:"999px",padding:"2px 8px",fontSize:"11px",fontWeight:600,fontFamily:t?Pt.mono:void 0,whiteSpace:"nowrap"}},n)}function fa({variant:e="secondary",size:t="md",onClick:r,disabled:n,colors:o,title:a,testId:i,children:s}){let u={padding:t==="sm"?"5px 10px":"7px 14px",borderRadius:"8px",fontSize:"13px",fontWeight:500,cursor:n?"not-allowed":"pointer",transition:"background 0.15s ease, border-color 0.15s ease",whiteSpace:"nowrap"},c={primary:{background:n?o.mutedBg:Qo,color:n?o.textMuted:"#ffffff",border:"1px solid transparent"},secondary:{background:"transparent",color:o.textCell,border:`1px solid ${o.inputBorder}`},danger:{background:"transparent",color:"#dc2626",border:"1px solid rgba(220,38,38,0.4)"}};return Se.default.createElement("button",{type:"button",onClick:r,disabled:n,title:a,"data-testid":i,style:{...u,...c[e]||c.secondary}},s)}function _Q({tabs:e,active:t,onChange:r,colors:n}){return Se.default.createElement("div",{style:{display:"flex",alignItems:"center"}},e.map(o=>{let a=t===o.id;return Se.default.createElement("button",{key:o.id,type:"button",onClick:()=>r(o.id),style:{padding:"10px 12px",marginBottom:"-1px",background:"none",border:"none",borderBottom:`2px solid ${a?Qo:"transparent"}`,color:a?Qo:n.textSecondary,fontSize:"13px",fontWeight:a?600:500,cursor:"pointer",whiteSpace:"nowrap"}},o.label)}))}function V2({agent:e,meta:t,onSave:r,onDelete:n,onRun:o,onDuplicate:a,onRunReport:i,onBack:s,isLoading:l,initialTab:u}){let{darkMode:c}=ut(),d=Ki(c),[p,f]=(0,Se.useState)(u||"config"),[m,y]=(0,Se.useState)({name:e.name||"",description:e.description||"",provider:e.provider||"openai",model:e.model||"gpt-4o-mini",instructions:e.instructions||"",action_prompts:e.actionPrompts||e.action_prompts||[],preset_type:e.presetType||e.preset_type||"terminal",appearance:e.appearance||{},instruction_sets:e.instructionSets||e.instruction_sets||[],tools:e.tools||[],approval_required_tools:e.approvalRequiredTools||e.approval_required_tools||[],mcp_servers:e.mcpServers||e.mcp_servers||[],model_config:e.modelConfig||e.model_config||{temperature:.7},status:e.status||"draft"}),[b,g]=(0,Se.useState)([]),[h,v]=(0,Se.useState)(!1),[x,S]=(0,Se.useState)(""),k=bc([m.provider]);(0,Se.useEffect)(()=>{let B=JSON.stringify(m)!==JSON.stringify({name:e.name||"",description:e.description||"",provider:e.provider||"openai",model:e.model||"gpt-4o-mini",instructions:e.instructions||"",action_prompts:e.actionPrompts||e.action_prompts||[],preset_type:e.presetType||e.preset_type||"terminal",appearance:e.appearance||{},instruction_sets:e.instructionSets||e.instruction_sets||[],tools:e.tools||[],approval_required_tools:e.approvalRequiredTools||e.approval_required_tools||[],mcp_servers:e.mcpServers||e.mcp_servers||[],model_config:e.modelConfig||e.model_config||{temperature:.7},status:e.status||"draft"});v(B)},[m,e]),(0,Se.useEffect)(()=>{p==="versions"?w():p==="code"&&_()},[p]);let w=async()=>{try{let K=await(await fetch(`/api/agents/${e.id}/versions`)).json();g(K.versions)}catch(B){console.error("Failed to load versions:",B)}},_=async()=>{try{let K=await(await fetch(`/api/agents/${e.id}/export`)).json();S(K.code)}catch(B){console.error("Failed to load code preview:",B)}},A=(B,K)=>{y(T=>({...T,[B]:K}))},C=(B,K)=>{y(T=>{let O=T[B]||[],I=O.includes(K)?O.filter(P=>P!==K):[...O,K];return{...T,[B]:I}})},N=()=>{r(m)},L=z_e.includes(p),Q=p==="tools";return Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},Se.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:"12px"}},Se.default.createElement("button",{type:"button",onClick:s,title:"Back to agents",style:{fontFamily:Pt.mono,fontSize:"13px",color:d.textSecondary,background:"none",border:"none",cursor:"pointer",padding:"4px 2px",marginTop:"10px"}},"<-"),Se.default.createElement(In,{size:44}),Se.default.createElement("div",{style:{flex:1,minWidth:0}},Se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}},Se.default.createElement("h1",{style:{fontSize:"20px",fontWeight:700,color:d.textPrimary,margin:0}},m.name||"Untitled agent"),Se.default.createElement(hd,{tone:B_e[m.status]||"neutral",darkMode:c},m.status),h&&Se.default.createElement(hd,{tone:"info",darkMode:c},"unsaved")),Se.default.createElement("p",{style:{fontSize:"13px",color:d.textSecondary,margin:"4px 0 0"}},m.description||"No description")),Se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexShrink:0}},a&&Se.default.createElement(fa,{variant:"secondary",colors:d,onClick:a},"Duplicate"),Se.default.createElement(fa,{variant:"primary",colors:d,onClick:o},"Run Agent"))),Se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"20px",borderBottom:`1px solid ${d.cardBorder}`,overflowX:"auto"}},Se.default.createElement(_Q,{tabs:L_e,active:p,onChange:f,colors:d}),Se.default.createElement("div",{style:{width:"1px",height:"18px",background:d.borderStrong,flexShrink:0}}),Se.default.createElement(_Q,{tabs:CQ,active:p,onChange:f,colors:d})),Q?Se.default.createElement(qD,{agent:e,formData:m,updateField:A,onSave:N,hasChanges:h,isLoading:l}):L?Se.default.createElement("div",null,p==="traces"&&Se.default.createElement(Jp,{agentId:e.id,embedded:!0}),p==="metrics"&&Se.default.createElement(HD,{agent:e,embedded:!0}),p==="interactions"&&Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},i&&Se.default.createElement("div",{style:{display:"flex",justifyContent:"flex-end"}},Se.default.createElement("button",{type:"button",onClick:i,style:{background:"none",border:"none",cursor:"pointer",fontFamily:Pt.mono,fontSize:"11px",color:"#3b82f6"}},"run report ->")),Se.default.createElement($u,{agentId:e.id,embedded:!0})),p==="evals"&&Se.default.createElement(V0,{embedded:!0,agentId:e.id}),p==="feedback"&&Se.default.createElement(KD,{agentId:e.id,colors:d})):Se.default.createElement("div",{style:{background:d.cardBg,border:`1px solid ${d.cardBorder}`,borderRadius:"12px",padding:"20px"}},p==="config"&&Se.default.createElement(U_e,{formData:m,updateField:A,providerModels:k,colors:d,darkMode:c,onDelete:n}),p==="instructions"&&Se.default.createElement(W_e,{formData:m,updateField:A,meta:t,toggleArrayItem:C,colors:d}),p==="versions"&&Se.default.createElement(H_e,{versions:b,agentId:e.id,onRestore:w,colors:d,darkMode:c}),p==="code"&&Se.default.createElement(q_e,{code:x,colors:d})),h&&!Q&&Se.default.createElement("div",{style:{position:"sticky",bottom:"0",display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",background:d.cardBg,border:`1px solid ${d.borderStrong}`,borderRadius:"12px",padding:"10px 14px",boxShadow:"0 4px 16px rgba(0,0,0,0.12)"}},Se.default.createElement("span",{style:{fontSize:"13px",color:d.textSecondary}},"Unsaved changes"),Se.default.createElement("div",{style:{display:"flex",gap:"8px"}},Se.default.createElement(fa,{variant:"primary",size:"sm",colors:d,onClick:N,disabled:l},l?"Saving\u2026":"Save Changes"))))}var Tl=e=>({display:"block",fontSize:"13px",fontWeight:500,color:e.textCell,marginBottom:"6px"}),Fu=e=>({width:"100%",padding:"8px 12px",borderRadius:"8px",border:`1px solid ${e.inputBorder}`,background:e.inputBg,color:e.textPrimary,fontFamily:"inherit",fontSize:"13px"}),F_e=e=>({fontFamily:Pt.mono,fontSize:"11px",fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:e.textSecondary});function U_e({formData:e,updateField:t,providerModels:r,colors:n,darkMode:o,onDelete:a}){return Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},Se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(n)},"Agent Name"),Se.default.createElement("input",{type:"text",value:e.name,onChange:i=>t("name",i.target.value),className:"aa-field",style:Fu(n)})),Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(n)},"Preset Type"),Se.default.createElement("select",{value:e.preset_type,onChange:i=>t("preset_type",i.target.value),className:"aa-field",style:Fu(n)},Object.keys(_m).map(i=>Se.default.createElement("option",{key:i,value:i},i))))),Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(n)},"Description"),Se.default.createElement("textarea",{value:e.description,onChange:i=>t("description",i.target.value),rows:3,className:"aa-field",style:{...Fu(n),resize:"vertical"}})),Se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(n)},"Provider"),Se.default.createElement("select",{value:e.provider,onChange:i=>{t("provider",i.target.value),t("model",r[i.target.value][0])},className:"aa-field",style:Fu(n)},Object.keys(r).map(i=>Se.default.createElement("option",{key:i,value:i},i.charAt(0).toUpperCase()+i.slice(1))))),Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(n)},"Model"),Se.default.createElement(ru,{value:e.model,models:r[e.provider],onChange:i=>t("model",i),className:"aa-field",style:{...Fu(n),fontFamily:Pt.mono}}))),Se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(n)},"Temperature"," ",Se.default.createElement("span",{style:{fontFamily:Pt.mono,color:n.textSecondary}},e.model_config.temperature)),Se.default.createElement("input",{type:"range",min:"0",max:"1",step:"0.1",value:e.model_config.temperature,onChange:i=>t("model_config",{...e.model_config,temperature:parseFloat(i.target.value)}),style:{width:"100%",accentColor:Qo}})),Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(n)},"Status"),Se.default.createElement("select",{value:e.status,onChange:i=>t("status",i.target.value),className:"aa-field",style:Fu(n)},Se.default.createElement("option",{value:"draft"},"Draft"),Se.default.createElement("option",{value:"active"},"Active"),Se.default.createElement("option",{value:"archived"},"Archived")))),a&&Se.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",borderTop:`1px solid ${n.cardBorder}`,paddingTop:"16px"}},Se.default.createElement("div",null,Se.default.createElement("div",{style:F_e(n)},"Danger zone"),Se.default.createElement("p",{style:{fontSize:"13px",color:n.textMuted,margin:"4px 0 0"}},"Deleting an agent removes its configuration and version history.")),Se.default.createElement(fa,{variant:"danger",size:"sm",colors:n,onClick:a},"Delete Agent")))}function W_e({formData:e,updateField:t,meta:r,toggleArrayItem:n,colors:o}){let a=e.action_prompts||[],i=(u,c)=>{t("action_prompts",a.map((d,p)=>p===u?{...d,...c}:d))},s=()=>{t("action_prompts",[...a,{name:"",prompt:"",expose_as_tool:!1}])},l=u=>{t("action_prompts",a.filter((c,d)=>d!==u))};return Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(o)},"System Instructions"),Se.default.createElement("textarea",{value:e.instructions,onChange:u=>t("instructions",u.target.value),placeholder:"You are a helpful AI assistant...",rows:12,className:"aa-field",style:{...Fu(o),fontFamily:Pt.mono,resize:"vertical"}})),Se.default.createElement("div",null,Se.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"6px"}},Se.default.createElement("label",{style:{...Tl(o),marginBottom:0}},"Action Prompts"),Se.default.createElement(fa,{variant:"secondary",size:"sm",colors:o,onClick:s},"+ Add action")),Se.default.createElement("p",{style:{fontSize:"12px",color:o.textMuted,margin:"0 0 12px"}},"Named actions run with their prompt stacked below the system instructions. The default ",Se.default.createElement("span",{style:{fontFamily:Pt.mono}},"#ask")," action uses the system instructions alone."),a.length>0&&Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},a.map((u,c)=>Se.default.createElement("div",{key:c,style:{border:`1px solid ${o.cardBorder}`,borderRadius:"10px",padding:"12px",display:"flex",flexDirection:"column",gap:"8px"}},Se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},Se.default.createElement("span",{style:{fontFamily:Pt.mono,fontSize:"13px",color:o.textMuted}},"#"),Se.default.createElement("input",{type:"text",value:u.name,onChange:d=>i(c,{name:d.target.value.toLowerCase().replace(/[^a-z0-9_]/g,"_")}),placeholder:"action_name",className:"aa-field",style:{...Fu(o),flex:1,padding:"6px 10px",fontFamily:Pt.mono}}),Se.default.createElement("label",{style:{display:"flex",alignItems:"center",gap:"6px",fontSize:"12px",color:o.textSecondary,whiteSpace:"nowrap"}},Se.default.createElement("input",{type:"checkbox",checked:!!u.expose_as_tool,onChange:d=>i(c,{expose_as_tool:d.target.checked}),style:{accentColor:Qo}}),"Expose as tool"),Se.default.createElement("button",{type:"button",onClick:()=>l(c),title:"Remove action",style:{fontFamily:Pt.mono,fontSize:"12px",color:o.textMuted,background:"none",border:"none",cursor:"pointer",padding:"4px"}},"[x]")),Se.default.createElement("textarea",{value:u.prompt,onChange:d=>i(c,{prompt:d.target.value}),placeholder:"This action's system prompt, applied on top of the base instructions...",rows:4,className:"aa-field",style:{...Fu(o),fontFamily:Pt.mono,resize:"vertical"}}))))),Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(o)},"Instruction Sets"),Se.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px"}},r.instructionSets?.map(u=>{let c=e.instruction_sets.includes(u);return Se.default.createElement("button",{key:u,type:"button",onClick:()=>n("instruction_sets",u),style:{padding:"5px 12px",borderRadius:"999px",fontSize:"13px",cursor:"pointer",border:`1px solid ${c?Qo:o.inputBorder}`,background:c?Qo:"transparent",color:c?"#ffffff":o.textCell}},u)}))))}function H_e({versions:e,agentId:t,onRestore:r,colors:n,darkMode:o}){let a=async i=>{if(await Wr({title:"Restore this version?",message:"A new version is created with the restored configuration. The current version stays in the history.",confirmLabel:"Restore"}))try{await fetch(`/api/agents/${t}/restore`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({version_id:i})}),r()}catch(s){console.error("Failed to restore version:",s)}};return Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"16px"}},Se.default.createElement("p",{style:{fontSize:"13px",color:n.textSecondary,margin:0}},"View and restore previous versions of this agent."),e.length>0?Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"10px"}},e.map(i=>{let s=i.is_latest||i.isLatest;return Se.default.createElement("div",{key:i.id,style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"12px",padding:"14px",borderRadius:"10px",border:`1px solid ${s?Qo:n.cardBorder}`,background:s?"rgba(239,68,68,0.06)":"transparent"}},Se.default.createElement("div",{style:{minWidth:0}},Se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},Se.default.createElement("span",{style:{fontFamily:Pt.mono,fontSize:"13px",fontWeight:600,color:n.textPrimary}},"v",i.version_number||i.versionNumber),s&&Se.default.createElement(hd,{tone:"error",darkMode:o},"current")),Se.default.createElement("p",{style:{fontSize:"13px",color:n.textCell,margin:"4px 0 0"}},i.change_summary||i.changeSummary),Se.default.createElement("p",{style:{fontFamily:Pt.mono,fontSize:"11px",color:n.textMuted,margin:"4px 0 0"}},new Date(i.created_at||i.createdAt).toLocaleString())),!s&&Se.default.createElement(fa,{variant:"secondary",size:"sm",colors:n,onClick:()=>a(i.id)},"Restore"))})):Se.default.createElement(K_e,{colors:n,glyph:"[#]",title:"No version history",hint:"Saving a change records a new version."}))}function q_e({code:e,colors:t}){let r=()=>{navigator.clipboard.writeText(e)};return Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},Se.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"}},Se.default.createElement("p",{style:{fontSize:"13px",color:t.textSecondary,margin:0}},"Generated Ruby code for this agent."),Se.default.createElement(fa,{variant:"secondary",size:"sm",colors:t,onClick:r},"Copy")),Se.default.createElement("pre",{style:{padding:"16px",background:"#111827",color:"#e5e7eb",borderRadius:"10px",overflowX:"auto",fontFamily:Pt.mono,fontSize:"12px",lineHeight:1.6,margin:0}},Se.default.createElement("code",null,e||"Loading...")))}function K_e({colors:e,glyph:t,title:r,hint:n}){return Se.default.createElement("div",{style:{textAlign:"center",padding:"40px 20px"}},Se.default.createElement("div",{style:{fontFamily:Pt.mono,fontSize:"20px",color:e.textMuted}},t),Se.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,color:e.textPrimary,marginTop:"10px"}},r),Se.default.createElement("p",{style:{fontSize:"13px",color:e.textMuted,margin:"6px auto 0",maxWidth:"420px"}},n))}var X=Z(J());async function Ph(){let e=window.ACTIVE_AGENT_DASHBOARD?.meta?.upgradeUrl;if(!e)throw new Error("This dashboard has no billing configured.");window.location.href=e}var G2=Z(J());var V_e='[data-aa-secret], meta[name="csrf-token"], input[type="hidden"]';var EQ=Object.freeze({events:500,chars:262144}),G_e=16*1024,Y_e=3;function X_e(e){return{emit:e,maskAllInputs:!0,blockSelector:V_e,slimDOMOptions:"all",sampling:{scroll:150,input:"last"}}}function Z_e(e){return JSON.stringify({kind:"rrweb",timestamp:e.timestamp,data:e})}function J_e(e,t){return`{"sent_at":${Math.floor(t)},"recording_events":[${e.join(",")}]}`}function Q_e(e,t=EQ){let r=0,n=0;for(let o of e){if(n>=t.events||n>0&&r+o.length>t.chars)break;r+=o.length+1,n+=1}return n}function AQ(e){return e>=200&&e<300?"sent":e===403?"off":e===413?"limit":e===429||e>=500?"retry":"failed"}function NQ({contextId:e,loadRecorder:t,fetch:r,now:n=Date.now,timers:o=globalThis,target:a=globalThis,onStateChange:i=()=>{},limits:s=EQ,flushIntervalMs:l=5e3}){let u=[],c=0,d="idle",p=null,f=null,m=null,y=null,b=!1,g=!1,h=null,v=0;function x(K){d!==K&&(d=K,i(K))}function S(){u.length=0,c=0}function k(){f&&f(),f=null,m=null,y!==null&&o.clearInterval(y),y=null,a?.removeEventListener?.("pagehide",L)}function w(K){g=!0,S(),k(),x(K)}function _(K){if(b||g)return;let T=Z_e(K);u.push(T),c+=T.length+1,(u.length>=s.events||c>=s.chars)&&N()}async function A(K,T){let O=J_e(K,n());try{let I=await r(`/api/session_recordings/${encodeURIComponent(p)}/events`,{method:"POST",headers:{"Content-Type":"text/plain"},body:O,keepalive:T&&O.length<=G_e});return AQ(I.status)}catch{return"retry"}}async function C(K){for(;u.length>0&&!g;){let T=u.splice(0,Q_e(u,s)),O=T.reduce((P,j)=>P+j.length+1,0);c-=O;let I=await A(T,K);if(I==="sent"){v=0;continue}if(I!=="retry"){w(I);return}if(v+=1,K||v>=Y_e){v=0,S(),m&&m();return}u.unshift(...T),c+=O;return}}function N({final:K=!1}={}){return p===null||g?Promise.resolve():(h||(h=C(K).finally(()=>{h=null})),h)}function L(){N({final:!0})}async function Q(){if(d!=="idle"||b)return;x("starting");let K;try{K=await r("/api/session_recordings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent_context_id:e})})}catch{b||w("failed");return}if(b)return;if(!K.ok){w(AQ(K.status)==="off"?"off":"failed");return}let T=await K.json().catch(()=>null);if(b)return;if(p=T?.recording?.id??null,p===null){w("failed");return}let O;try{({record:O}=await t())}catch{b||w("failed");return}if(b)return;let I=null;try{I=typeof O=="function"?O(X_e(_)):null}catch{I=null}if(typeof I!="function"){w("failed");return}f=I,m=()=>O.takeFullSnapshot?.(),y=o.setInterval(()=>N(),l),a?.addEventListener?.("pagehide",L),x("recording")}async function B(){b||(b=!0,k(),!g&&(x("stopped"),h&&await h,await N({final:!0})))}return{start:Q,stop:B,flush:N,get state(){return d}}}function VD(e,t){let[r,n]=(0,G2.useState)("idle");return(0,G2.useLayoutEffect)(()=>{if(!e||!t){n("idle");return}let o=!0,a=NQ({contextId:e,loadRecorder:()=>import(t),fetch:(i,s)=>fetch(i,s),target:window,onStateChange:i=>{o&&n(i)}});return a.start(),()=>{o=!1,a.stop()}},[e,t]),r}var R_e={llm:{role:"assistant",label:"LLM"},tool:{role:"tool",label:"Tool"},agent:{role:"developer",label:"Agent"},mcp:{role:"system",label:"MCP"}},eCe=(e,t)=>{let r=R_e[e]||{role:e,label:e};return{...Ln(r.role,t),label:r.label}},GD={complete:"success",failed:"error",running:"info",pending:"warning",cancelled:"neutral",awaiting_input:"warning"},tCe=["Hello, what can you help me with?","Show me a dashboard of last quarter's sales","List the files in the current directory","Explain how this code works"],rCe=["user","assistant","tool"],nCe=1200,oCe=600*1e3,Y2=e=>e?e<1e3?`${e}ms`:`${(e/1e3).toFixed(2)}s`:"-",TQ=e=>{if(!e)return null;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}},YD=e=>{let t=new Map;return(e?.logs||[]).filter(r=>r.eid).forEach(r=>{let n=t.get(r.eid)||{eid:r.eid};r.status==="started"?Object.assign(n,r,{input:r.detail,output:n.output}):Object.assign(n,r,{input:n.input,output:r.detail}),t.set(r.eid,n)}),[...t.values()]},hs=e=>e?.context_id??e?.output_metadata?.context_id??null,G0=e=>e.json().catch(()=>({})),PQ=({open:e,color:t})=>X.default.createElement("svg",{className:`w-3.5 h-3.5 mt-1 flex-shrink-0 transition-transform ${e?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",style:{color:t}},X.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})),aCe=e=>typeof e=="string"?e:e?.name||e?.key||"?";function OQ({label:e,names:t,colors:r}){return X.default.createElement("div",{className:"flex justify-between gap-3"},X.default.createElement("dt",{className:"shrink-0",style:{color:r.textSecondary}},e),X.default.createElement("dd",{className:"text-right font-mono text-xs break-words min-w-0",style:{color:t.length?r.textPrimary:r.textMuted}},t.length?t.join(", "):"none"))}function iCe({run:e,darkMode:t,colors:r,expanded:n,onToggle:o}){let a=YD(e),i=HC(t);return X.default.createElement("div",{"data-testid":"runner-activity",className:"space-y-2"},a.map(s=>{let l=!!n[s.eid],u=!!(s.input||s.output),c=eCe(s.kind,t);return X.default.createElement("div",{key:s.eid,"data-testid":"runner-activity-event"},X.default.createElement("div",{className:`flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 ${u?"cursor-pointer":""}`,onClick:u?()=>o(s.eid):void 0,title:u?"Click to inspect input/output":void 0,style:l?{background:t?"rgba(255,255,255,0.04)":"rgba(0,0,0,0.03)"}:{}},X.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium flex-shrink-0 mt-0.5",style:{background:c.background,color:c.color,minWidth:"72px",textAlign:"center"}},c.label),X.default.createElement("div",{className:"min-w-0 flex-1"},X.default.createElement("div",{className:"text-sm break-words",style:{color:r.textPrimary}},s.label,s.output&&!l&&X.default.createElement("span",{style:{color:r.textMuted}}," \u201C",s.output.slice(0,160),s.output.length>160?"\u2026":"","\u201D")),X.default.createElement("div",{className:"text-xs mt-0.5 font-mono flex items-center gap-2 flex-wrap",style:{color:r.textMuted}},s.status==="started"?X.default.createElement("span",{className:"animate-pulse",style:{color:"#3b82f6"}},"running\u2026"):s.status==="awaiting"?X.default.createElement("span",{"data-testid":"runner-activity-awaiting",style:{color:"var(--color-warning-text)"}},"waiting for input"):X.default.createElement("span",{style:s.status==="error"?{color:"#ef4444"}:void 0},s.status==="error"?"failed":"\u2713",s.duration_ms!=null&&` ${Y2(s.duration_ms)}`),s.at&&X.default.createElement("span",null,new Date(s.at).toLocaleTimeString()))),u&&X.default.createElement(PQ,{open:l,color:r.textMuted})),l&&X.default.createElement("div",{className:"ml-3 mt-1 mb-2 pl-4 space-y-2 border-l-2",style:{borderColor:c.color+"55"}},s.input&&X.default.createElement("div",null,X.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:r.textMuted}},"Input"),X.default.createElement("pre",{style:{...i,whiteSpace:"pre-wrap",maxHeight:"160px",overflowY:"auto"}},TQ(s.input))),s.output&&X.default.createElement("div",null,X.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:r.textMuted}},s.status==="error"?"Error":s.status==="awaiting"?"Asked":"Result"),X.default.createElement("pre",{style:{...i,whiteSpace:"pre-wrap",maxHeight:"224px",overflowY:"auto",...s.status==="error"?{background:t?"rgba(239,68,68,0.12)":"#fef2f2",color:t?"#fca5a5":"#b91c1c"}:{}}},TQ(s.output)))))}))}function sCe({run:e,darkMode:t,colors:r}){return e?X.default.createElement("div",{className:"flex items-center gap-3 flex-wrap text-xs",style:{color:r.textMuted}},X.default.createElement("span",{"data-testid":"runner-status",style:{display:"inline-flex"}},X.default.createElement(hd,{tone:GD[e.status]||"neutral",darkMode:t},e.status)),e.output_metadata?.model&&X.default.createElement("span",{className:"font-mono",title:"Model that generated this run"},e.output_metadata.provider,"/",e.output_metadata.model),e.duration_ms?X.default.createElement("span",null,Y2(e.duration_ms)):null,e.total_tokens?X.default.createElement("span",null,e.total_tokens," tokens"):null,e.trace_id&&X.default.createElement("a",{href:Re(`/traces?trace=${e.trace_id}`),className:"font-mono hover:underline",style:{color:r.textSecondary},title:`${e.trace_id} \u2014 open in Traces`},"trace:",e.trace_id.slice(0,8)," \u2192")):null}function XD({agent:e,onBack:t,recorderUrl:r=null,freshConversation:n=!1}){let{darkMode:o}=ut(),a=Ki(o),i=e.action_prompts||e.actionPrompts||[],s=["ask",...i.map(ie=>ie.name).filter(Boolean)],[l,u]=(0,X.useState)("ask"),[c,d]=(0,X.useState)(""),[p,f]=(0,X.useState)([]),[m,y]=(0,X.useState)(!1),[b,g]=(0,X.useState)([]),[h,v]=(0,X.useState)(null),[x,S]=(0,X.useState)(null),[k,w]=(0,X.useState)(null),[_,A]=(0,X.useState)([]),[C,N]=(0,X.useState)(!1),[L,Q]=(0,X.useState)(null),[B,K]=(0,X.useState)(null),[T,O]=(0,X.useState)(null),[I,P]=(0,X.useState)(null),[j,M]=(0,X.useState)({}),[W,Y]=(0,X.useState)([]),[z,V]=(0,X.useState)([]),[q,oe]=(0,X.useState)(""),Me=(0,X.useCallback)(async()=>{try{let ie=await fetch("/api/sandboxes?sandbox_type=app_runtime");if(!ie.ok)return;let Ie=await ie.json(),st=b2(Ie.sandboxes);V(st),oe(zt=>w2(zt,st)||(st.length===1?st[0].value:""))}catch{}},[]);(0,X.useEffect)(()=>{Me()},[Me]);let fe=ow(e.tools||[]),[le,R]=(0,X.useState)(null),[te,He]=(0,X.useState)(!1),[_e,D]=(0,X.useState)(null),[G,E]=(0,X.useState)(!1),[$,ee]=(0,X.useState)(!1),[F,me]=(0,X.useState)(null),[et,rt]=(0,X.useState)(""),[ge,ue]=(0,X.useState)(!1),[Fe,Je]=(0,X.useState)(null),ot=(0,X.useRef)(null),Tt=(0,X.useRef)(!n),Lt=(0,X.useRef)(null),Hr=(0,X.useRef)(0),Io=(0,X.useRef)(null),vs=(0,X.useRef)(!1),Mi=(0,X.useRef)(!0),yt=(0,X.useRef)(null),to=(0,X.useRef)([]),xs=(0,X.useRef)(null),bs=(0,X.useRef)(null),ve=(0,X.useRef)(null),nt=(0,X.useRef)(null),pt=VD(h,r),Qt=(x?.messages||[]).filter(ie=>rCe.includes(ie.role));(0,X.useEffect)(()=>{yt.current=B},[B]),(0,X.useEffect)(()=>{to.current=p},[p]),(0,X.useEffect)(()=>{Mi.current=!0,Hn();let ie=TY(window.location.search);return ie&&Tf(ie),()=>{Mi.current=!1,Hr.current+=1,Pl(yt.current),Pl({attachments:to.current}),K(null),f([])}},[e.id]),(0,X.useEffect)(()=>{co(l)},[e.id,l]),(0,X.useEffect)(()=>{Lt.current=h,h?nn(h):(S(null),w(null))},[h]),(0,X.useEffect)(()=>{let ie=bs.current;ie&&(ie.scrollTop=ie.scrollHeight)},[Qt.length,B,L?.logs?.length,L?.input_requests?.length,F,T]),(0,X.useEffect)(()=>{if(!$)return;let ie=Ie=>{nt.current&&!nt.current.contains(Ie.target)&&ee(!1)};return document.addEventListener("mousedown",ie),()=>document.removeEventListener("mousedown",ie)},[$]);let Hn=async()=>{try{let Ie=await(await fetch(`/api/agents/${e.id}/runs?per_page=10`)).json();A(Ie.runs||[])}catch(ie){console.error("Failed to load runs:",ie)}},co=async ie=>{try{let Ie=await fetch(`/api/agents/${e.id}/conversations?action_name=${encodeURIComponent(ie)}`);if(!Ie.ok)throw new Error(`HTTP ${Ie.status}`);let zt=(await Ie.json()).conversations||[];g(zt),v(kn=>kn&&(ot.current===kn||zt.some(ni=>ni.id===kn))?kn:Tt.current?zt[0]?.id??null:null)}catch(Ie){console.error("Failed to load conversations:",Ie),g([])}},nn=async ie=>{try{let Ie=await fetch(`/api/interactions/${ie}`);if(!Ie.ok)throw new Error(Ie.status===404?"Conversation not found":`HTTP ${Ie.status}`);let st=await Ie.json();if(Lt.current!==ie)return;S(st.interaction),w(null)}catch(Ie){if(Lt.current!==ie)return;S(null),w(Ie.message)}},Oa=async()=>{let ie=await fetch(`/api/agents/${e.id}/conversations`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action_name:l})}),Ie=await G0(ie);if(!ie.ok||!Ie.conversation)throw new Error(Ie.error||`Could not start a conversation (HTTP ${ie.status})`);let st=Ie.conversation;return g(zt=>[st,...zt.filter(kn=>kn.id!==st.id)]),ot.current=st.id,v(st.id),st.id},Pa=()=>Lt.current?Promise.resolve(Lt.current):Oa(),ws=ie=>{ot.current=null,u(ie)},po=ie=>{vs.current=ie,N(ie)},Wu=()=>{Io.current?.waiting&&(Io.current=null,po(!1))},Ss=()=>{Wu(),Q(null),P(null),M({}),Y([])},Hu=ie=>{let Ie=ie?Number(ie):null;Ie!==Lt.current&&Ss(),ot.current=Ie,v(Ie),O(null)},ro=async()=>{if(!C)try{await Oa(),w(null),O(null),Ss(),Pl(yt.current),K(null),me(null)}catch(ie){w(ie.message)}},Pl=ie=>{(ie?.attachments||[]).forEach(Ie=>{Ie.url&&Ie.url.startsWith("blob:")&&URL.revokeObjectURL(Ie.url)})},qh=ie=>{let Ie=Array.from(ie||[]).filter(Boolean);Ie.length!==0&&f(st=>[...st,...Ie.map(zt=>({file:zt,filename:zt.name,content_type:zt.type||"application/octet-stream",byte_size:zt.size,kind:WG(zt),url:zt.type&&zt.type.startsWith("image/")?URL.createObjectURL(zt):null}))])},fb=ie=>{f(Ie=>{let st=Ie[ie];return st?.url&&URL.revokeObjectURL(st.url),Ie.filter((zt,kn)=>kn!==ie)})},mb=(ie,Ie)=>{Pl(yt.current),K(null),Hn();let st=hs(ie)??Ie;st&&(st!==Lt.current?(ot.current=st,v(st)):nn(st),co(l))},kA=(ie,Ie)=>{Io.current=null,po(!1),Y([]),mb(ie,Ie)},Qe=(ie,Ie)=>{Io.current={id:ie.id,contextId:hs(ie)??Ie,waiting:!0},mb(ie,Ie),JC()},Ma=(ie,Ie)=>{if(!Mi.current)return;let st=++Hr.current,zt=Date.now(),kn=async()=>{if(Hr.current===st){try{let ni=await fetch(`/api/runs/${ie}`);if(ni.ok){let Do=await ni.json();if(Hr.current!==st)return;Q(Do.run);let ja=gI(Do.run);if(ja==="finished"){kA(Do.run,Ie);return}if(ja==="awaiting"){Qe(Do.run,Ie);return}}}catch{}Date.now()-ztni&&{...ni,status:"failed",error_message:"Timed out waiting for the run to finish."}),P("Timed out waiting for the run to finish."))}};kn()},Kh=async({text:ie,files:Ie,fromComposer:st=!1})=>{let zt=(ie||"").trim();if(!zt&&Ie.length===0||C)return;P(null),O(null),me(null),po(!0),M({}),Y([]),Q({status:"pending",input_prompt:zt,output:"",logs:[],started_at:new Date().toISOString()}),Pl(yt.current),K({content:zt||"(see attached files)",attachments:Ie.map(({file:Do,...ja})=>ja)}),st&&(d(""),f([]));let kn=Lt.current;if(!kn)try{kn=await Oa()}catch(Do){P(`${Do.message} \u2014 running without a pinned conversation.`)}let ni=()=>{st&&(d(zt),f(Ie)),K(null)};try{let Do=new FormData;Do.append("prompt",zt),Do.append("action_name",l),kn&&Do.append("params[context_id]",String(kn)),q&&Do.append("sandbox_id",q),Ie.forEach(({file:Ed})=>Do.append("attachments[]",Ed,Ed.name));let ja=await fetch(`/api/agents/${e.id}/execute`,{method:"POST",body:Do}),ks=await G0(ja);if(ks.code==="sandbox_refused"&&Me(),ja.status===402&&ks.upgrade_required){R(ks.usage),Q(Ed=>({...Ed,status:"failed",error_message:ks.message||"Plan limit reached"})),po(!1),ni();return}if(!ja.ok)throw new Error(ks.error||"Run failed");Ma(ks.run.id,hs(ks.run)??kn)}catch(Do){Q(ja=>({...ja,status:"failed",error_message:Do.message})),po(!1),ni()}},fo=()=>Kh({text:c,files:p,fromComposer:!0}),Vh=(ie,Ie)=>{let st=Io.current;!st||String(st.id)!==String(ie.run_id)||(Y(zt=>[...zt.filter(kn=>kn.request.id!==ie.id),{request:ie,outcome:Ie}]),Io.current={...st,waiting:!1},Ma(st.id,st.contextId))},ya=ie=>{let Ie=gI(ie);Ie==="finished"||vs.current||(P(null),M({}),Y([]),Q(ie),po(!0),Ie==="awaiting"?Qe(ie,hs(ie)):Ma(ie.id,hs(ie)))},Ia=(ie,Ie)=>{ot.current=ie,Ie&&s.includes(Ie)&&Ie!==l&&u(Ie),v(ie)},Tf=async ie=>{try{let Ie=await fetch(`/api/runs/${ie}`);if(!Ie.ok)return;let st=await Ie.json();if(!Mi.current||!st.run||String(st.agent?.id)!==String(e.id))return;let zt=hs(st.run);zt&&Ia(zt,st.run.action_name),ya(st.run)}catch(Ie){console.error("Failed to open the linked run:",Ie)}},Da=ie=>{!ie||!ie.text||Kh({text:ie.text,files:[]})},Gh=ie=>{ie.key==="Enter"&&(ie.metaKey||ie.ctrlKey)&&(ie.preventDefault(),fo())},wd=async(ie,Ie)=>{let st=Lt.current,zt=await fetch(`/api/interactions/${st}/messages/${ie.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:Ie})}),kn=await G0(zt);if(!zt.ok)throw new Error(kn.error||`Could not save the message (HTTP ${zt.status})`);await nn(st)},Sd=async ie=>{let Ie=Lt.current;try{let st=await fetch(`/api/interactions/${Ie}/messages/${ie.id}`,{method:"DELETE"});if(!st.ok){let zt=await G0(st);throw new Error(zt.error||`Could not delete the message (HTTP ${st.status})`)}w(null),await nn(Ie),co(l)}catch(st){w(st.message)}},mo=ie=>{ee(!1),me(ie),rt(""),Je(null)},Ml=async()=>{let ie=et.trim();if(!(!ie||ge)){ue(!0),Je(null);try{let Ie=await Pa(),st=await fetch(`/api/interactions/${Ie}/messages`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({role:F,content:ie})}),zt=await G0(st);if(!st.ok)throw new Error(zt.error||`Could not add the message (HTTP ${st.status})`);rt(""),me(null),await nn(Ie),co(l)}catch(Ie){Je(Ie.message)}finally{ue(!1)}}},gb=async ie=>{let Ie=ie;if(hs(ie)==null||ie.status==="awaiting_input")try{let zt=await fetch(`/api/runs/${ie.id}`);zt.ok&&(Ie=(await zt.json()).run)}catch(zt){console.error("Failed to load run details:",zt)}let st=hs(Ie);st?(O(null),st!==Lt.current&&Ss(),Ia(st,Ie.action_name||ie.action_name),ya(Ie)):O({...Ie,output:Ie.output??Ie.output_preview,error_message:Ie.error_message??Ie.error}),xs.current?.scrollIntoView({behavior:"smooth",block:"start"})},Yh=async()=>{He(!0),D(null);try{await Ph({planSlug:"pro"})}catch(ie){D(ie.message),He(!1)}},kd=window.ACTIVE_AGENT_DASHBOARD?.meta?.upgradeUrl,hb=i.find(ie=>ie.name===l)?.prompt,_d=[e.instructions,l==="ask"?null:hb].map(ie=>(ie||"").trim()).filter(Boolean).join(` +Who changed the shipping policy last week?`,style:{...Bu,width:"100%",fontFamily:W,fontSize:12,lineHeight:"18px"}}),it.default.createElement("p",{style:{margin:"6px 0 0",fontSize:12,color:"var(--color-text-muted)",textWrap:"pretty"}},"With scenarios, each run replays every message through the agent \u2014 once per model in \u201CCompare models\u201D \u2014 and reports which tasks it completes, what faults it hits, and how to fix them. ",it.default.createElement("code",{style:{fontFamily:W}},"# Heading")," lines group related tasks so they can be run together; ",it.default.createElement("code",{style:{fontFamily:W}},"| tools: a, b")," names the tool a task should call.")),s.judgeKind==="judge_defined"?it.default.createElement("p",{style:{margin:0,fontSize:12,color:"var(--color-text-secondary)"}},"On the first run the judge reads the agent's instructions and recent interactions, defines 3\u20136 KPIs, then scores samples against them. KPIs persist so later runs (and model cohorts) stay comparable."):it.default.createElement(it.default.Fragment,null,it.default.createElement("div",null,it.default.createElement(Ue,{style:{display:"block",marginBottom:8}},"Rule-based criteria (sampled generations)"),it.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:12}},$D.map(A))),it.default.createElement("div",null,it.default.createElement(Ue,{style:{display:"block",marginBottom:8}},"Telemetry criteria (trace aggregates)"),it.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:12}},hQ.map(A))),it.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4"},it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",style:{display:"block",marginBottom:6}},"Must contain (optional pattern)"),it.default.createElement("input",{type:"text",value:s.containsPattern,onChange:C=>x({containsPattern:C.target.value}),placeholder:"e.g. password reset",style:{...Bu,width:"100%"}})),it.default.createElement("div",null,it.default.createElement(Ue,{as:"label",style:{display:"block",marginBottom:6}},"LLM judge criterion (optional, needs provider credentials)"),it.default.createElement("input",{type:"text",value:s.llmJudgePrompt,onChange:C=>x({llmJudgePrompt:C.target.value}),placeholder:"e.g. Is the answer helpful and accurate?",style:{...Bu,width:"100%"}})))),u&&it.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},u),it.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},it.default.createElement(ce,{variant:"primary",type:"submit",disabled:d},d?s.scenariosText.trim()?"Creating & starting run\u2026":"Creating & running\u2026":"Create & Run"),i&&it.default.createElement(ce,{onClick:i},"Cancel"))))}function I_e(e,t){return e?`An unpinned judge defaults to ${M_e[e]||e}. Pinning a model selects its provider.`:t?"Provider credentials could not be read, so the judge's provider is unknown. Check the provider API keys in Settings.":"No provider has credentials for a judge. Add a provider API key in Settings."}function D_e(e){let[t,r]=(0,it.useState)([]);return(0,it.useEffect)(()=>{if(r([]),!e)return;let n=!1;return fetch(`/api/agents/${encodeURIComponent(e)}/recorded_models`).then(o=>o.ok?o.json():{}).then(o=>{!n&&Array.isArray(o.models)&&r(o.models)}).catch(()=>{}),()=>{n=!0}},[e]),t}var Ce=Z(Q());var j_e={background:"none",border:"none",padding:0,cursor:"pointer",fontFamily:W,fontSize:12,color:"var(--color-info)"},So=(e=11,t="var(--color-text-muted)",r={})=>({fontFamily:W,fontSize:e,color:t,...r});function $_e({stats:e}){if(!e)return Ce.default.createElement("span",{style:So()},"\u2014");if(e.skipped)return Ce.default.createElement("div",null,Ce.default.createElement("span",{style:So(12,"var(--color-text-cell)",{fontWeight:700})},"[-] skipped"),Ce.default.createElement("div",{style:{...So(),marginTop:2,textWrap:"pretty"},title:e.reason},k0(e.reason,90)));let t=Number(e.score),r=Dn[t>=.85?"success":t>=.7?"warning":"error"].strong,n=[];if(e.total!=null&&n.push(`${Vn(e.passed,e.total)} passed`),e.total>1&&e.min!=null&&n.push(`min ${ia(e.min)} \xB7 max ${ia(e.max)}`),e.source==="telemetry"){n.push(`${e.traces} traces \xB7 ${e.window_hours}h`);let o=e.observed||{};o.error_rate!=null&&n.push(`observed ${o.error_rate}% errors (${o.errors})`),o.avg_duration_ms!=null&&n.push(`observed avg ${Bn(o.avg_duration_ms)}`)}return Ce.default.createElement("div",null,Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6}},Ce.default.createElement("span",{style:So(12,r,{fontWeight:700})},t>=.7?"[+]":"[!]"," ",ia(t)),e.source==="telemetry"&&Ce.default.createElement("span",{"data-testid":"score-source-telemetry",title:"Aggregate over the agent's telemetry traces",style:So(10,"var(--color-text-muted)",{textTransform:"uppercase",letterSpacing:"0.04em"})},"telemetry")),Ce.default.createElement("div",{style:{...So(),marginTop:2,textWrap:"pretty"}},n.join(" \xB7 ")))}function L_e({item:e,evaluation:t=null,run:r=null,number:n=null}){let o=()=>JJ({item:e,evaluation:t,run:r,runNumber:n,agentName:t?.agent?.name,dashboardUrl:O2()});return Ce.default.createElement("div",{"data-testid":"fix-item",style:{border:"1px solid var(--color-border)",borderRadius:10,padding:"12px 14px",display:"flex",flexDirection:"column",gap:10,minWidth:0}},Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Ce.default.createElement(Sa,{kind:"fault"}),Ce.default.createElement(ke,{tone:"error"},e.label),Ce.default.createElement("span",{style:So()},e.scope)),Ce.default.createElement("div",{style:{fontSize:13,lineHeight:"19px",color:"var(--color-text-cell)",textWrap:"pretty"}},e.text),e.chips?.length>0&&Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:6}},Ce.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},e.chipsLabel),Ce.default.createElement("div",{style:{display:"flex",gap:6,flexWrap:"wrap"}},e.chips.map(a=>Ce.default.createElement("span",{key:a,style:{fontFamily:W,fontSize:11,padding:"3px 8px",borderRadius:6,border:"1px solid var(--color-border)",color:"var(--color-text-primary)",fontWeight:600}},a)))),e.details?.length>0&&Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:3}},e.details.map(a=>Ce.default.createElement("span",{key:a,style:So(11,"var(--color-text-cell)",{textWrap:"pretty"})},a))),Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:"auto",flexWrap:"wrap"}},e.action?.path&&Ce.default.createElement(ce,{size:"sm",onClick:()=>lt(e.action.path)},e.action.label),e.action?.hint&&Ce.default.createElement("span",{style:{...So(),whiteSpace:"nowrap"}},e.action.hint),Ce.default.createElement(U0,{build:o,style:{marginLeft:"auto"}})))}function zD({evaluation:e,runs:t=[],runCount:r=null,runId:n,loading:o=!1,running:a=!1,onSelectRun:i,onRun:s,onBack:l,onOpenEvaluation:u,onDelete:c,deleting:d=!1}){let[p,f]=(0,Ce.useState)("all"),[m,y]=(0,Ce.useState)(!1),b=(z,G)=>Ce.default.createElement("button",{type:"button",onClick:G,style:j_e},z),g=t.findIndex(z=>z.id===n),h=g>=0?t[g]:t[0],v=h?Sh(h,Math.max(g,0),t,r):null,x=Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"}},b("Evaluations",l),Ce.default.createElement("span",{style:So(12)},"/"),b(e?.name||"Evaluation",u),Ce.default.createElement("span",{style:So(12)},"/"),Ce.default.createElement("span",{style:So(12,"var(--color-text-primary)",{fontWeight:700})},h?`Run #${v}`:"Runs"));if(!e)return Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12}},Ce.default.createElement("div",null,b("Evaluations",l)),Ce.default.createElement(je,null,Ce.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-muted)"}},"This evaluation is not in the list any more.")));if(!h)return Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12}},x,o?Ce.default.createElement("div",{className:"flex items-center justify-center h-64"},Ce.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2",style:{borderBottomColor:"var(--color-accent-ui)"}})):Ce.default.createElement(je,null,Ce.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-muted)"}},"No runs recorded yet.")));let S=C0(h),k=S.length?S:[null],w=wh(h),_=z=>w.find(G=>G.label===z)||(z==null?w[0]:null),A=h.scores?._verdict,C=Array.isArray(h.scores?._missing_models)?h.scores._missing_models:[],N=bh(h).map(([z,G])=>({key:z,value:G,criterion:_0(e,z)})),L=z=>N.filter(G=>kl(G.criterion)===z).length,J=VI.filter(z=>L(z.id)>0),B=z=>k.some(G=>{let q=of(z.value,G);return q&&(q.skipped||q.score!=null&&q.score<.7)}),K=N.filter(z=>(p==="all"||kl(z.criterion)===p)&&(!m||B(z))),T=VI.map(z=>({...z,rows:K.filter(G=>kl(G.criterion)===z.id)})).filter(z=>z.rows.length),P=x2(e,{...h,number:v}),I=Oi(h),M=wo(h.completed_at||h.created_at),j=h.status==="complete"&&h.samples_evaluated?` \xB7 ${Vn(h.samples_passed||0,h.samples_evaluated)} passed`:"",O={fontFamily:W,fontSize:10,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",color:"var(--color-text-muted)",padding:"8px 12px",textAlign:"left",verticalAlign:"top",whiteSpace:"nowrap"},F={padding:"10px 12px",verticalAlign:"top"},V={padding:"7px 12px",verticalAlign:"middle"};return Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"evaluation-run-detail"},x,Ce.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},Ce.default.createElement("div",{style:{minWidth:0}},Ce.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},`Run #${v}`),Ce.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)",textWrap:"pretty"}},`${e.name} \xB7 ${M} \xB7 @${e.agent?.name||"agent"} \xB7 ${nf(e,h)}${j}`)),Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"}},t.map((z,G)=>Ce.default.createElement(jn,{key:z.id,square:!0,mono:!0,selected:z.id===h.id,onClick:()=>i?.(z),title:`${z.status} \xB7 ${wo(z.completed_at||z.created_at)}`},`#${Sh(z,G,t,r)}`)),Ce.default.createElement(ce,{variant:"primary",disabled:a,onClick:s,testId:"run-again-button"},a?"Running\u2026":"Run again"))),Ce.default.createElement(uD,{spend:I,judgedBy:xh(e,h)}),h.status==="failed"?Ce.default.createElement(je,{"data-testid":"run-failed",style:{borderColor:"var(--color-error)"},padding:"14px 16px"},Ce.default.createElement("span",{style:So(12,"var(--color-error)",{fontWeight:700})},"[!] run failed"),Ce.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-cell)",marginTop:6,lineHeight:"19px"}},h.error_message)):h.status!=="complete"?Ce.default.createElement(je,{"data-testid":"run-pending",padding:"14px 16px"},Ce.default.createElement("span",{style:So(12,"var(--color-warning-text)",{fontWeight:700})},`[~] ${h.status}`),Ce.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-cell)",marginTop:6}},"Scores appear once the run completes.")):Ce.default.createElement(Ce.default.Fragment,null,S.length>1&&Ce.default.createElement(F0,{rows:b2(h,{columns:S}),unit:"interaction",judgedBy:A?.judge||null,judgeEstimated:I?.judge?.estimated??!0}),Ce.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(260px, 1fr))",gap:12}},k.map(z=>{let G=xZ(h,z),q=_(z),oe=q?.samples??(z==null?h.samples_evaluated:null),Me=q?.passed??(z==null?h.samples_passed:null),fe=[];return G.below>0&&fe.push({tone:"error",text:`below pass mark \xD7${G.below}`}),G.skipped>0&&fe.push({tone:"warning",text:`skipped \xD7${G.skipped}`}),Ce.default.createElement(z0,{key:z||"all",label:z,short:z?bn(z).short:"all samples",provider:q?.provider||(z?bn(z).provider:null)||null,winner:!!A?.winner&&A.winner===z,passed:Me,total:oe,avgScore:G.avg,criteria:{cleared:G.cleared,scored:G.scored},latencyMs:q?.avg_duration_ms,inputTokens:q?.input_tokens,outputTokens:q?.output_tokens,cost:q?.cost,perInteraction:af(q?.cost,q?.priced),estimated:q?.estimated??!1,unit:"interaction",badges:fe})}))),(A||C.length>0)&&Ce.default.createElement(je,{padding:"12px 16px",style:{display:"flex",flexDirection:"column",gap:6},"data-testid":"run-verdict"},A&&Ce.default.createElement(Ce.default.Fragment,null,Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},Ce.default.createElement(Ue,null,"Verdict"),A.judge&&Ce.default.createElement("span",{style:So()},`judged by ${A.judge}`)),Ce.default.createElement("div",{style:{fontSize:13,lineHeight:"19px",color:"var(--color-text-cell)",textWrap:"pretty"}},Ce.default.createElement("strong",{style:{color:"var(--color-text-primary)",fontFamily:W,fontSize:12}},A.winner),A.rationale?` \xB7 ${A.rationale}`:"")),C.length>0&&Ce.default.createElement("span",{style:So(11,"var(--color-warning-text)",{fontWeight:600})},`[!] no generations recorded under ${C.join(", ")}`)),Ce.default.createElement(je,{padding:0,style:{overflow:"hidden"},testId:"criteria-matrix"},Ce.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"10px 14px",flexWrap:"wrap"}},Ce.default.createElement(Ue,{style:{marginRight:4}},"Criteria"),Ce.default.createElement(jn,{selected:p==="all",onClick:()=>f("all")},`All ${N.length}`),J.map(z=>Ce.default.createElement(jn,{key:z.id,selected:p===z.id,onClick:()=>f(z.id)},`${z.label} ${L(z.id)}`)),Ce.default.createElement(jn,{square:!0,mono:!0,selected:m,onClick:()=>y(z=>!z),style:{marginLeft:"auto",background:"transparent"},title:"Hide criteria every model cleared"},m?"[x] failed only":"[ ] failed only")),Ce.default.createElement("div",{style:{overflowX:"auto"}},Ce.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},Ce.default.createElement("thead",null,Ce.default.createElement("tr",{style:{background:"var(--color-muted)"}},Ce.default.createElement("th",{style:{...O,width:"34%"}},"Criterion"),Ce.default.createElement("th",{style:O},"Expects"),k.map(z=>Ce.default.createElement("th",{key:z||"score",style:O},z?Ce.default.createElement(Ce.default.Fragment,null,Ce.default.createElement("span",{style:{color:"var(--color-text-primary)",textTransform:"none",letterSpacing:0,fontSize:12}},bn(z).short),(_(z)?.provider||bn(z).provider)&&Ce.default.createElement("span",{style:{display:"block",fontWeight:400,textTransform:"none",letterSpacing:0}},_(z)?.provider||bn(z).provider)):"Score")))),Ce.default.createElement("tbody",null,T.map(z=>Ce.default.createElement(Ce.default.Fragment,{key:z.id},Ce.default.createElement("tr",{style:{background:"var(--color-background)",borderTop:"1px solid var(--color-border-light)"}},Ce.default.createElement("td",{style:V},Ce.default.createElement("span",{style:{fontWeight:600,fontSize:13,color:"var(--color-text-primary)"}},z.label)),Ce.default.createElement("td",{style:V},Ce.default.createElement("span",{style:So()},`${z.rows.length} ${z.rows.length===1?"criterion":"criteria"}`)),k.map(G=>{let q=z.rows.filter(fe=>{let le=of(fe.value,G);return le&&le.score!=null}),oe=q.filter(fe=>of(fe.value,G).score>=.7).length,Me=q.length&&oe===q.length?"var(--color-success-text)":oe===0&&q.length?"var(--color-error-text)":"var(--color-text-cell)";return Ce.default.createElement("td",{key:G||"score",style:V},Ce.default.createElement("span",{style:So(11,Me,{fontWeight:600})},q.length?`${Vn(oe,q.length)} passed`:"\u2014"))})),z.rows.map(G=>Ce.default.createElement("tr",{key:G.key,"data-testid":"criterion-row",style:{borderTop:"1px solid var(--color-border-light)"}},Ce.default.createElement("td",{style:F},Ce.default.createElement("div",{style:So()},G.key),Ce.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-primary)"}},h2(G.criterion))),Ce.default.createElement("td",{style:F},Ce.default.createElement("span",{style:{fontFamily:W,fontSize:11,padding:"2px 6px",border:"1px solid var(--color-border)",borderRadius:4,color:"var(--color-text-cell)",whiteSpace:"nowrap"},title:vh(G.criterion)},k0(vh(G.criterion),40))),k.map(q=>Ce.default.createElement("td",{key:q||"score",style:F},Ce.default.createElement($_e,{stats:of(G.value,q)}))))))),T.length===0&&Ce.default.createElement("tr",{style:{borderTop:"1px solid var(--color-border-light)"}},Ce.default.createElement("td",{colSpan:2+k.length,style:{padding:"16px 14px",fontSize:13,color:"var(--color-text-muted)"}},N.length?"Nothing failed under this filter.":"This run recorded no criterion scores.")))))),Ce.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},Ce.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:10}},Ce.default.createElement(Ue,null,"What to fix"),Ce.default.createElement("span",{style:So()},P.length?St(P.length,"item"):"nothing")),P.length?Ce.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:12}},P.map(z=>Ce.default.createElement(L_e,{key:z.kind,item:z,evaluation:e,run:h,number:v}))):Ce.default.createElement(Jr,{style:{border:"1px solid var(--color-border-light)",borderRadius:10,padding:"14px 12px",color:"var(--color-success-text)"}},`[+] Every criterion cleared the pass mark (${R1(.7)}) and nothing was skipped.`)),Ce.default.createElement(gf,{evaluation:e,run:h,spend:I,onDelete:c,deleting:d}))}var Pn=Z(Q());var UD={fontFamily:W,fontSize:10,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",color:"var(--color-text-muted)",padding:"8px 12px",textAlign:"left",verticalAlign:"bottom",whiteSpace:"nowrap"},WD={padding:"8px 12px",verticalAlign:"middle",fontSize:13,color:"var(--color-text-cell)",borderTop:"1px solid var(--color-border-light)"},BD={...WD,fontFamily:W,fontSize:12,whiteSpace:"nowrap",textAlign:"right"},FD={...UD,textAlign:"right"};function HD({rows:e=[],columns:t=[],testId:r="model-leaderboard"}){if(e.length<2)return null;let n=t.length>1?t.filter(o=>e.some(a=>a.byEvaluation?.[o.id]?.total>0)):[];return Pn.default.createElement(je,{padding:0,style:{overflow:"hidden"},testId:r},Pn.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:10,padding:"10px 12px",flexWrap:"wrap"}},Pn.default.createElement(Ue,null,"Model leaderboard"),Pn.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},`${St(e.length,"model")} \xB7 ${St(t.length,"evaluation")} \xB7 ranked by the low end of each pass rate`)),Pn.default.createElement("div",{style:{overflowX:"auto"}},Pn.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},Pn.default.createElement("thead",null,Pn.default.createElement("tr",{style:{background:"var(--color-muted)"}},Pn.default.createElement("th",{style:{...FD,width:28}},"#"),Pn.default.createElement("th",{style:UD},"Model"),Pn.default.createElement("th",{style:{...UD,minWidth:160}},"Passed"),Pn.default.createElement("th",{style:FD},"Rate"),n.map(o=>Pn.default.createElement("th",{key:o.id,style:{...FD,maxWidth:140,overflow:"hidden",textOverflow:"ellipsis"},title:o.name},o.name)))),Pn.default.createElement("tbody",null,e.map(o=>{let{short:a,provider:i}=bn(o.label);return Pn.default.createElement("tr",{key:o.label,"data-testid":"model-leaderboard-row",title:`${o.label}: at least ${Ts(o.lower)} at 95% confidence`},Pn.default.createElement("td",{style:{...BD,color:"var(--color-text-muted)"}},o.rank),Pn.default.createElement("td",{style:WD},Pn.default.createElement("div",{style:{fontFamily:W,fontSize:12,fontWeight:600,color:"var(--color-text-primary)",whiteSpace:"nowrap"}},a),i&&Pn.default.createElement("div",{style:{fontFamily:W,fontSize:10,color:"var(--color-text-muted)",whiteSpace:"nowrap"}},i)),Pn.default.createElement("td",{style:WD},Pn.default.createElement(tu,{passed:o.passed,total:o.total,color:B0(o.ratio),valueWidth:56})),Pn.default.createElement("td",{style:{...BD,fontWeight:700,color:B0(o.ratio)}},Ts(o.ratio)),n.map(s=>{let l=o.byEvaluation?.[s.id],u=l?.total?l.passed/l.total:null;return Pn.default.createElement("td",{key:s.id,style:{...BD,color:B0(u)},title:l?.total?`${s.name}: ${Vn(l.passed,l.total)}`:`${s.name}: not run on this model`},Ts(u))}))})))))}var gd=null,qD=new Set,vQ=()=>qD.forEach(e=>e(gd));function z_e(e={}){let t=e.requireText==null?null:String(e.requireText);return{title:e.title||"Are you sure?",message:e.message||"",confirmLabel:e.confirmLabel||"Confirm",cancelLabel:e.cancelLabel||"Cancel",danger:!!e.danger,requireText:t===""?null:t}}function Wr(e){return gd&&gd.resolve(!1),new Promise(t=>{gd={...z_e(e),resolve:t},vQ()})}function xQ(e){if(!gd)return;let{resolve:t}=gd;gd=null,vQ(),t(!!e)}function bQ(){return gd}function wQ(e){return qD.add(e),()=>qD.delete(e)}function SQ(e,t){return e?.requireText?t===e.requireText:!0}var kQ=()=>{let e=Rn().match(/^\/evaluations\/(\d+)\/runs\/(\d+)\/report/);if(e)return{evaluationId:e[1],runId:e[2]};let t=UI(window.location.search);return t?.runId?t:null},H2=()=>{let e=Rn().match(/^\/evaluations\/(\d+)(?:\/runs\/(\d+))?\/?$/);return e?{evaluationId:Number(e[1]),runId:e[2]?Number(e[2]):null}:null},_Q=()=>UI(window.location.search)?.evaluationId||(H2()?String(H2().evaluationId):null),W2=(e=11,t="var(--color-text-muted)")=>({fontFamily:W,fontSize:e,color:t}),B_e=e=>{let t=kh(e),r=e.latest_run?.status==="failed"?1:0;return t?e.scenario_suite?(t.scores?._recommendations||[]).length+r:x2(e,t).length+r:r},F_e={stale:{tone:"warning",text:"stale",title:"Its headline run scored an earlier version of the agent, so the tiles leave it out"},unrecorded:{tone:"muted",text:"version not recorded",title:"Nothing says which version of the agent its headline run scored; it still counts"},archived:{tone:"muted",text:"archived",title:"Archived: kept with its runs, left out of the tiles"}};function V0({embedded:e=!1,agentId:t=null}){let{darkMode:r}=ut(),[n,o]=(0,Ne.useState)(()=>e?null:kQ()),a=(0,Ne.useRef)(null),[i,s]=(0,Ne.useState)(0),[l,u]=(0,Ne.useState)(null);(0,Ne.useEffect)(()=>{let ve=a.current?.contentDocument?.body;if(!ve)return;let nt=()=>u(ve.scrollHeight);if(nt(),typeof ResizeObserver>"u")return window.addEventListener("resize",nt),()=>window.removeEventListener("resize",nt);let pt=new ResizeObserver(nt);return pt.observe(ve),()=>pt.disconnect()},[i,n]),(0,Ne.useEffect)(()=>u(null),[n]);let[c,d]=(0,Ne.useState)([]),[p,f]=(0,Ne.useState)([]),[m,y]=(0,Ne.useState)(void 0),[b,g]=(0,Ne.useState)(!1),[h,v]=(0,Ne.useState)(void 0),[x,S]=(0,Ne.useState)(!0),[k,w]=(0,Ne.useState)(null),[_,A]=(0,Ne.useState)(null),[C,N]=(0,Ne.useState)(()=>{if(e)return null;let ve=H2();return ve?.runId?ve:null}),[L,J]=(0,Ne.useState)(()=>e?null:_Q()),[B,K]=(0,Ne.useState)({}),[T,P]=(0,Ne.useState)(!1),[I,M]=(0,Ne.useState)(null),[j,O]=(0,Ne.useState)(null),[F,V]=(0,Ne.useState)(null),[z,G]=(0,Ne.useState)(!1),[q,oe]=(0,Ne.useState)(!1),[Me,fe]=(0,Ne.useState)(0);(0,Ne.useEffect)(()=>{if(e)return;let ve=()=>{o(kQ());let nt=H2();N(nt?.runId?nt:null);let pt=_Q();J(pt),pt&&A(Qt=>new Set([...Qt||[],Number(pt)]))};return window.addEventListener("popstate",ve),window.addEventListener("dashboard:navigate",ve),()=>{window.removeEventListener("popstate",ve),window.removeEventListener("dashboard:navigate",ve)}},[e]);let le=(0,Ne.useCallback)(async()=>{try{let ve=new URLSearchParams;t&&ve.set("agent_id",t),z&&ve.set("archived","1");let nt=ve.toString(),pt=await fetch(`/api/evaluations${nt?`?${nt}`:""}`);if(!pt.ok)throw new Error(`Request failed (${pt.status})`);let Qt=await pt.json();fe(Number(Qt.archived_count)||0),y(Qt.judge_provider??null),g(Qt.judge_provider_error===!0),v(Array.isArray(Qt.model_providers)?Qt.model_providers:null);let Hn=Qt.evaluations||[],co=null;try{Hn=await fZ(Hn,L,fetch)}catch(nn){co=nn.message}d(Hn),A(nn=>{if(nn)return nn;let Pa=L?Hn.find(Ma=>String(Ma.id)===L):Hn.find(Ma=>Ma.scenario_suite)||Hn[0];return new Set(Pa?[Pa.id]:[])}),w(co)}catch(ve){w(ve.message),v(nt=>nt===void 0?null:nt)}finally{S(!1)}},[t,L,z]),R=(0,Ne.useCallback)(async ve=>{try{let nt=await fetch(`/api/evaluations/${ve}`);if(!nt.ok)throw new Error(`Could not load this evaluation's runs (HTTP ${nt.status})`);let pt=await nt.json();K(Qt=>({...Qt,[ve]:{runs:pt.evaluation?.runs||[],runCount:pt.evaluation?.run_count??null}}))}catch(nt){K(pt=>({...pt,[ve]:{runs:null,runCount:null,error:nt.message}})),w(nt.message)}},[]);(0,Ne.useEffect)(()=>{le(),fetch("/api/agents").then(ve=>ve.ok?ve.json():{agents:[]}).then(ve=>f(ve.agents||[])).catch(()=>f([]))},[le]),(0,Ne.useEffect)(()=>{new Set([..._||[],...C?[C.evaluationId]:[]]).forEach(nt=>{let pt=c.find(Qt=>Qt.id===nt);pt&&!pt.scenario_suite&&!B[nt]&&R(nt)})},[_,C,c,B,R]);let te=ve=>{!e&&Rn()!==ve&&id(ve)},He=ve=>!!_?.has(ve),_e=ve=>{let nt=!He(ve.id);A(pt=>{let Qt=new Set(pt||[]);return nt?Qt.add(ve.id):Qt.delete(ve.id),Qt}),te(nt?`/evaluations/${ve.id}`:"/evaluations")},D=(ve,nt)=>{A(pt=>new Set([...pt||[],ve.id])),N({evaluationId:ve.id,runId:nt.id}),te(`/evaluations/${ve.id}/runs/${nt.id}`)},Y=ve=>{N(null),te(ve?`/evaluations/${ve}`:"/evaluations")},E=async ve=>{M(ve.id),w(null);try{let nt=await fetch(`/api/evaluations/${ve.id}/run`,{method:"POST"}),pt=await nt.json().catch(()=>({}));if(!nt.ok){w((pt.errors||[pt.error]).filter(Boolean).join(", ")||`Run failed (HTTP ${nt.status})`);return}await Promise.all([le(),R(ve.id)]),pt.run&&C?.evaluationId===ve.id&&D(ve,pt.run)}finally{M(null)}},$=async(ve,nt)=>{V(ve.id),w(null);try{let pt=await fetch(`/api/evaluations/${ve.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({evaluation:{archived:nt}})}),Qt=await pt.json().catch(()=>({}));if(!pt.ok){w((Qt.errors||[Qt.error]).filter(Boolean).join(", ")||`${nt?"Archive":"Unarchive"} failed (HTTP ${pt.status})`);return}await le()}finally{V(null)}},ee=async ve=>{if(await Wr({title:`Delete ${ve.name}?`,message:"Its runs are deleted with it. This cannot be undone.",confirmLabel:"Delete evaluation",danger:!0,requireText:ve.name})){O(ve.id),w(null);try{let nt=await fetch(`/api/evaluations/${ve.id}`,{method:"DELETE"});nt.ok||nt.status===404?(d(pt=>pt.filter(Qt=>Qt.id!==ve.id)),A(pt=>{let Qt=new Set(pt||[]);return Qt.delete(ve.id),Qt}),C?.evaluationId===ve.id&&Y(null)):w(`Delete failed (HTTP ${nt.status})`)}finally{O(null)}}};if(x)return Ne.default.createElement("div",{className:"flex items-center justify-center h-64"},Ne.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2",style:{borderBottomColor:"var(--color-accent-ui)"}}));let U=t?c.filter(ve=>String(ve.agent?.id)===String(t)):c,me=ve=>{let nt=B[ve.id];return nt?.runs?{runs:nt.runs,runCount:ve.run_count??nt.runCount??null,loaded:!0}:{runs:ve.latest_run?[ve.latest_run]:[],runCount:ve.run_count??null,loaded:!1}};if(n){let ve=gh(`/evaluations/${n.evaluationId}/runs/${n.runId}/report`),nt=Re(ve.report),pt={padding:"6px 12px",borderRadius:8,fontSize:13,fontWeight:500,color:"var(--color-text-cell)",border:"1px solid var(--color-border-strong)",textDecoration:"none",whiteSpace:"nowrap"},Qt=`${nt}?theme=${r?"dark":"light"}`;return Ne.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},Ne.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},Ne.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12}},Ne.default.createElement(ce,{size:"sm",onClick:()=>{id("/evaluations"),o(null)}},Ne.default.createElement("span",{style:{fontFamily:W}},"<-")," Evaluations"),Ne.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Run report"),Ne.default.createElement("span",{style:W2(11)},`evaluation ${n.evaluationId} \xB7 run ${n.runId}`)),Ne.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},"data-testid":"run-report-exports"},Ne.default.createElement(_l,{url:Re(ve.markdown),title:"Copy the whole report as GitHub-flavored Markdown, for a pull request or an issue",testId:"run-report-copy-markdown"}),[["html","Download HTML","The report as one self-contained page"],["json","Download JSON","The run as the evaluation report envelope \u2014 POST it to another install\u2019s /api/evaluation_reports to import it"],["md","Download Markdown","The report as GitHub-flavored Markdown"]].map(([Hn,co,nn])=>Ne.default.createElement("a",{key:Hn,href:Re(ve[Hn]),download:!0,title:nn,"data-testid":`run-report-download-${Hn}`,style:pt},co)),Ne.default.createElement("a",{href:nt,target:"_blank",rel:"noopener noreferrer",title:"The report as one self-contained page, outside the dashboard",style:pt},"Open standalone ",Ne.default.createElement("span",{style:{fontFamily:W}},"->")))),Ne.default.createElement("iframe",{ref:a,src:Qt,title:"Evaluation run report",allow:"clipboard-write",onLoad:()=>s(Hn=>Hn+1),scrolling:"no",style:{width:"100%",borderRadius:12,border:"1px solid var(--color-border)",background:"var(--color-background)",display:"block",height:l?`${l}px`:"calc(100vh - 180px)"}}))}if(C){let ve=U.find(nt=>nt.id===C.evaluationId);if(!ve||!ve.scenario_suite){let{runs:nt,runCount:pt,loaded:Qt}=ve?me(ve):{runs:[],runCount:null,loaded:!0};return Ne.default.createElement(zD,{evaluation:ve,runs:nt,runCount:pt,runId:C.runId,loading:!Qt,running:I===C.evaluationId,onSelectRun:Hn=>D(ve,Hn),onRun:()=>E(ve),onBack:()=>Y(null),onOpenEvaluation:()=>Y(C.evaluationId),onDelete:ve?()=>ee(ve):void 0,deleting:j===C.evaluationId})}}let et=AZ(U,{focusId:L}),{samplesScored:rt,samplesPassed:ge,passRatio:ue,spend:Fe}=et,Je=NZ(et),ot=[...new Set(U.map(ve=>ve.agent?.name).filter(Boolean))],Tt=U.reduce((ve,nt)=>Math.max(ve,GI(nt,kh(nt)||nt.latest_run)),0),Lt=U.map(B_e),Hr=Lt.reduce((ve,nt)=>ve+nt,0),Io=Lt.filter(Boolean).length,xs=U.length?[`${St(ot.length,"agent")} \xB7 ${Tt>1?`${Tt} models compared`:"no model comparisons"}`,Je].filter(Boolean).join(" \xB7 "):"none defined yet",Di=et.focused?"headline run of this evaluation":`headline run of ${St(et.counted,"current evaluation")}${Je?` \xB7 ${Je}`:""}`,yt=EZ(et),to=yt.length>1?yt[0]:null,bs=Fe.agentCost!=null&&Fe.estimated||Fe.judgeCost!=null&&Fe.judgeEstimated,ws=Fe.agentCost!=null?Ne.default.createElement("span",{style:{display:"flex",flexDirection:"column",gap:4}},Ne.default.createElement("span",{"data-testid":"stat-agent-cost-scope"},`over ${St(Fe.interactions,"interaction")}`),Ne.default.createElement("span",{style:{display:"grid",gridTemplateColumns:"max-content minmax(0, 1fr)",columnGap:10,rowGap:2,fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},Ne.default.createElement("span",null,"agent"),Ne.default.createElement("span",{"data-testid":"stat-agent-cost-agent",style:{color:"var(--color-text-cell)"}},Pr(Fe.agentCost,{estimated:Fe.estimated})),Ne.default.createElement("span",null,"judge"),Ne.default.createElement("span",{"data-testid":"stat-agent-cost-judge",style:{color:"var(--color-text-cell)"},title:"The judge's spend is the evaluation's own, outside the interactions, so it is not in the figure above"},Fe.judgeCost!=null?`${Pr(Fe.judgeCost,{estimated:Fe.judgeEstimated})} \xB7 offline`:"none")),bs&&Ne.default.createElement("span",{title:il,style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},"~ estimated")):"no priced runs yet";return Ne.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:20}},Ne.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:16,flexWrap:"wrap"}},!e&&Ne.default.createElement("div",{style:{flex:1,minWidth:260}},Ne.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Evaluations"),Ne.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)",textWrap:"pretty"}},"Score recorded outputs, or paste a list of user messages to replay through the agent under one or more models. Every run is kept.")),Ne.default.createElement("div",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:12}},(Me>0||z)&&Ne.default.createElement(ce,{size:"sm",onClick:()=>G(ve=>!ve),testId:"show-archived-toggle",title:"Archived evaluations keep their runs but leave the list and the tiles"},z?"Hide archived":`Show archived (${Me})`),Ne.default.createElement(ce,{variant:"primary",onClick:()=>P(!T),testId:"new-evaluation-button"},T?"Cancel":"New Evaluation"))),k&&Ne.default.createElement("div",{style:{padding:"10px 12px",borderRadius:8,fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},"Failed to load evaluations: ",k),T&&Ne.default.createElement(LD,{agents:p,agentId:t,judgeProvider:m,judgeProviderError:b,modelProviders:h,onCancel:()=>P(!1),onCreated:async ve=>{P(!1),await le(),ve?.id!=null&&(A(nt=>new Set([...nt||[],ve.id])),te(`/evaluations/${ve.id}`))}}),Ne.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(190px, 1fr))",gap:16}},Ne.default.createElement(Am,{label:"Evaluations",value:U.length,sub:xs,testId:"stat-evaluations"}),Ne.default.createElement(Am,{label:"Samples scored",value:rt,sub:Di,testId:"stat-samples-scored"}),Ne.default.createElement(Am,{label:"Pass rate",value:Ts(ue),valueColor:ue==null?"var(--color-text-muted)":Dn[eu(ue)].strong,sub:ue==null?Je||"no completed runs yet":Ne.default.createElement("span",{style:{display:"flex",flexDirection:"column",gap:2}},Ne.default.createElement("span",{"data-testid":"stat-pass-rate-fraction"},`${ge}/${rt} passed`),to&&Ne.default.createElement(Ne.default.Fragment,null,Ne.default.createElement("span",{"data-testid":"stat-pass-rate-leader",title:`${to.label} ${Vn(to.passed,to.total)}: best of ${yt.length} models by the low end of its pass rate`,style:{display:"flex",gap:6,minWidth:0,fontFamily:W,fontSize:11,color:"var(--color-text-muted)",whiteSpace:"nowrap"}},Ne.default.createElement("span",null,"best"),Ne.default.createElement("span",{style:{overflow:"hidden",textOverflow:"ellipsis",minWidth:0,color:"var(--color-text-cell)"}},bn(to.label).short),Ne.default.createElement("span",{style:{flexShrink:0}},Ts(to.ratio))),Ne.default.createElement("button",{type:"button",onClick:()=>oe(ve=>!ve),"aria-expanded":q,"data-testid":"stat-pass-rate-leaderboard-toggle",style:{alignSelf:"flex-start",background:"transparent",border:"none",padding:0,cursor:"pointer",fontFamily:W,fontSize:11,color:"var(--color-text-secondary)"}},Ne.default.createElement(Sa,{kind:"chevron",open:q})," ",`${q?"hide":"compare"} ${yt.length} models`))),testId:"stat-pass-rate"}),Ne.default.createElement(Am,{label:"To fix",value:Hr,valueColor:Hr?"var(--color-error)":void 0,sub:Hr?`across ${St(Io,"evaluation")}`:"nothing outstanding",testId:"stat-to-fix"}),Ne.default.createElement(Am,{label:"Cost / interaction",value:Lu(Fe.perInteraction,Fe.estimated),valueColor:Fe.perInteraction==null?"var(--color-text-muted)":void 0,sub:ws,testId:"stat-agent-cost"})),q&&Ne.default.createElement(HD,{rows:yt,columns:et.columns}),Ne.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},U.map((ve,nt)=>{let pt=ve.latest_run,Qt=kh(ve),Hn=pt&&Qt&&pt.id!==Qt.id?pt:null,co=XI(ve),nn=F_e[co],Pa=co==="archived",Ma=He(ve.id),Ss=!!ve.scenario_suite,po=Lt[nt],Wu=(ve.criteria||[]).some(ro=>kl(ro)==="telemetry"),{runs:ks,runCount:Hu}=me(ve);return Ne.default.createElement(je,{key:ve.id,padding:0,testId:"evaluation-card","data-telemetry":Wu?"true":"false","data-kind":Ss?"suite":"sampling","data-open":Ma?"true":"false","data-standing":co,style:{overflow:"hidden",opacity:Pa?.75:1}},Ne.default.createElement("div",{role:"button",tabIndex:0,"aria-expanded":Ma,onClick:()=>_e(ve),onKeyDown:ro=>{(ro.key==="Enter"||ro.key===" ")&&(ro.preventDefault(),_e(ve))},className:"hover:bg-[var(--color-hover)]",style:{display:"flex",alignItems:"center",gap:10,rowGap:8,padding:"12px 16px",cursor:"pointer",flexWrap:"wrap"}},Ne.default.createElement(Sa,{kind:"chevron",open:Ma}),Ne.default.createElement("span",{style:{width:22,height:22,borderRadius:6,background:"var(--color-muted)",display:"inline-flex",alignItems:"center",justifyContent:"center",fontFamily:W,fontSize:11,fontWeight:700,color:"var(--color-text-secondary)",flexShrink:0},title:Ss?"scenario suite":"sampling evaluation"},Ss?"=":"~"),Ne.default.createElement("span",{style:{fontSize:15,fontWeight:700,color:"var(--color-text-primary)"}},ve.name),Ne.default.createElement("span",{style:W2(11)},`@${ve.agent?.name||"agent"} \xB7 ${nf(ve)}`),Ne.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:12,flexShrink:0}},Ne.default.createElement("span",{style:W2(11)},wo(pt?.completed_at||pt?.created_at||ve.created_at)),po>0&&Ne.default.createElement("span",{style:W2(11,"var(--color-error)")},`${po} to fix`),nn&&Ne.default.createElement(ke,{tone:nn.tone,size:10,style:{padding:"1px 6px"},title:nn.title,testId:"evaluation-standing"},nn.text),Hn&&Ne.default.createElement(ff,{run:Hn,testId:"evaluation-newer-run-badge"}),Ne.default.createElement(ff,{run:Qt||pt,testId:Ss?"suite-pass-badge":"evaluation-pass-badge"}),Ne.default.createElement("button",{type:"button",onClick:ro=>{ro.stopPropagation(),$(ve,!Pa)},disabled:F===ve.id,title:Pa?"Bring this evaluation back into the list and the tiles":"Archive: keep its runs, leave it out of the list and the tiles","data-testid":"evaluation-archive-toggle",style:{background:"transparent",border:"none",padding:0,cursor:F===ve.id?"not-allowed":"pointer",fontFamily:W,fontSize:11,color:"var(--color-text-muted)",opacity:F===ve.id?.5:1}},F===ve.id?"\u2026":Pa?"unarchive":"archive"))),Ma&&Ne.default.createElement("div",{style:{borderTop:"1px solid var(--color-border-light)"}},Ss?Ne.default.createElement(jD,{evaluation:ve,modelProviders:h,onChanged:le,onDelete:()=>ee(ve),deleting:j===ve.id,initialRunId:C?.evaluationId===ve.id?C.runId:null,onRunSelected:ro=>te(`/evaluations/${ve.id}/runs/${ro}`)}):Ne.default.createElement("div",{style:{padding:16,display:"flex",flexDirection:"column",gap:12},"data-testid":"sampling-evaluation-panel"},Ne.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},Ne.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-secondary)"}},ks.length?wJ(ks,Hu):`@${ve.agent?.name||"agent"} \xB7 no runs yet`),Ne.default.createElement(ce,{variant:"primary",size:"sm",disabled:I===ve.id,onClick:ro=>{ro.stopPropagation(),E(ve)},testId:"evaluation-run-button"},I===ve.id?"Running\u2026":`Run ${nf(ve)}`)),Ne.default.createElement(fD,{runs:ks,runCount:Hu,evaluation:ve,agentName:ve.agent?.name,previousRun:ve.previous_run,onOpen:ro=>D(ve,ro),testId:"evaluation-runs-panel"}),Ne.default.createElement(gf,{evaluation:ve,run:pt,spend:Oi(pt),onDelete:()=>ee(ve),deleting:j===ve.id}))))})),U.length===0&&!T&&Ne.default.createElement(je,{style:{textAlign:"center",padding:"48px 20px"}},Ne.default.createElement("div",{style:{fontSize:16,fontWeight:600,color:"var(--color-text-primary)"}},"No evaluations yet"),Ne.default.createElement("p",{style:{margin:"8px 0 0",fontSize:13,color:"var(--color-text-secondary)",textWrap:"pretty"}},"Create an evaluation to score recorded outputs, or paste scenarios to test new tasks across models. Every run is kept, so scores stay comparable over time.")))}var We=Z(Q());var U_e=e=>new Date(`${e}T00:00:00`),W_e=[{id:"overview",label:"Overview"},{id:"traces",label:"Traces"},{id:"interactions",label:"Interactions"}];function KD({agent:e,onBack:t,embedded:r=!1}){let{darkMode:n}=ut(),o=Vi(n),[a,i]=(0,We.useState)(null),[s,l]=(0,We.useState)(!0),{timeWindow:u,days:c}=xl(),[d,p]=(0,We.useState)("overview");(0,We.useEffect)(()=>{f()},[e?.id,c]);let f=async()=>{if(e?.id){l(!0);try{let x=await(await fetch(`/api/agents/${e.id}/analytics?days=${c}`)).json();i(x)}catch(v){console.error("Failed to load analytics:",v)}finally{l(!1)}}},m=v=>v?v<1e3?`${v}ms`:`${(v/1e3).toFixed(2)}s`:"-",y=v=>v?v>=1e6?`${(v/1e6).toFixed(1)}M`:v>=1e3?`${(v/1e3).toFixed(1)}K`:v.toString():"0",b=v=>{switch(v){case"complete":return"bg-green-500";case"failed":return"bg-red-500";case"running":return"bg-blue-500";case"pending":return"bg-yellow-500";case"cancelled":return"bg-gray-500";default:return"bg-gray-400"}};if(s&&!a)return We.default.createElement("div",{className:"flex items-center justify-center h-64"},We.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let g=a?.runs_by_day?.length>0?Math.max(...a.runs_by_day.map(v=>v.count)):1,h=r?"overview":d;return We.default.createElement("div",{className:"space-y-6"},r?We.default.createElement("div",{className:"flex items-center justify-end gap-2"},u.minutes<1440&&We.default.createElement("span",{className:"text-xs",style:{color:o.textMuted},title:"This view aggregates by day"},"showing 1 day"),We.default.createElement(bl,null)):We.default.createElement("div",{className:"flex items-center justify-between"},We.default.createElement("div",{className:"flex items-center space-x-4"},We.default.createElement("button",{onClick:t,className:"p-2 transition-colors",style:{color:o.textMuted}},We.default.createElement("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},We.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"}))),We.default.createElement("div",null,We.default.createElement("h1",{className:"text-2xl font-bold",style:{color:o.textPrimary}},e.name," Analytics"),We.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},"Performance metrics and usage data"))),We.default.createElement("div",{className:"flex items-center gap-2"},u.minutes<1440&&We.default.createElement("span",{className:"text-xs",style:{color:o.textMuted},title:"This view aggregates by day"},"showing 1 day"),We.default.createElement(bl,null))),!r&&We.default.createElement("div",{className:"flex rounded-lg p-1 w-fit",style:{background:o.mutedBg}},W_e.map(v=>We.default.createElement("button",{key:v.id,onClick:()=>p(v.id),className:`px-4 py-1.5 text-sm rounded-md transition-colors ${d===v.id?"shadow":""}`,style:d===v.id?{background:o.cardBg,color:o.textPrimary}:{color:o.textSecondary}},v.label))),h==="traces"&&We.default.createElement(Jp,{agentId:e.id,embedded:!0}),h==="interactions"&&We.default.createElement($u,{agentId:e.id,embedded:!0}),h==="overview"&&We.default.createElement(We.default.Fragment,null,We.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4"},We.default.createElement(q2,{title:"Total Runs",value:a?.summary?.total_runs||0,icon:We.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},We.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 10V3L4 14h7v7l9-11h-7z"})),color:"rose",colors:o,darkMode:n}),We.default.createElement(q2,{title:"Success Rate",value:`${a?.summary?.success_rate||0}%`,icon:We.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},We.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"})),color:"green",colors:o,darkMode:n}),We.default.createElement(q2,{title:"Avg Duration",value:m(a?.summary?.avg_duration_ms),icon:We.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},We.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})),color:"blue",colors:o,darkMode:n}),We.default.createElement(q2,{title:"Total Tokens",value:y(a?.summary?.total_tokens),icon:We.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},We.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M7 21a4 4 0 01-4-4V5a2 2 0 012-2h4a2 2 0 012 2v12a4 4 0 01-4 4zm0 0h12a2 2 0 002-2v-4a2 2 0 00-2-2h-2.343M11 7.343l1.657-1.657a2 2 0 012.828 0l2.829 2.829a2 2 0 010 2.828l-8.486 8.485M7 17h.01"})),color:"purple",colors:o,darkMode:n})),We.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6"},We.default.createElement("div",{className:"lg:col-span-2 rounded-xl border p-6",style:{background:o.cardBg,borderColor:o.cardBorder}},We.default.createElement("h3",{className:"font-semibold mb-4",style:{color:o.textPrimary}},"Runs Over Time"),a?.runs_by_day?.length>0?We.default.createElement("div",{className:"h-48"},We.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},a.runs_by_day.map((v,x)=>We.default.createElement("div",{key:v.date,className:"flex-1 flex flex-col items-center group"},We.default.createElement("div",{className:"relative w-full"},We.default.createElement("div",{className:"w-full bg-red-500 rounded-t transition-all hover:bg-red-600",style:{height:`${v.count/g*150}px`,minHeight:v.count>0?"4px":"0"}}),We.default.createElement("div",{className:"absolute -top-8 left-1/2 transform -translate-x-1/2 bg-gray-800 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap"},v.count," runs")),(x===0||x===a.runs_by_day.length-1||a.runs_by_day.length<=7)&&We.default.createElement("span",{className:"text-xs mt-2 transform -rotate-45 origin-left",style:{color:o.textMuted}},U_e(v.date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))))):We.default.createElement("div",{className:"h-48 flex items-center justify-center",style:{color:o.textMuted}},"No data for this period")),We.default.createElement("div",{className:"rounded-xl border p-6",style:{background:o.cardBg,borderColor:o.cardBorder}},We.default.createElement("h3",{className:"font-semibold mb-4",style:{color:o.textPrimary}},"Status Breakdown"),Object.keys(a?.status_breakdown||{}).length>0?We.default.createElement("div",{className:"space-y-3"},Object.entries(a.status_breakdown).map(([v,x])=>{let S=a?.summary?.total_runs||1,k=(x/S*100).toFixed(1);return We.default.createElement("div",{key:v},We.default.createElement("div",{className:"flex justify-between text-sm mb-1"},We.default.createElement("span",{className:"capitalize",style:{color:o.textSecondary}},v),We.default.createElement("span",{className:"font-medium",style:{color:o.textPrimary}},x," (",k,"%)")),We.default.createElement("div",{className:"h-2 rounded-full overflow-hidden",style:{background:o.trackBg}},We.default.createElement("div",{className:`h-full ${b(v)} rounded-full transition-all`,style:{width:`${k}%`}})))})):We.default.createElement("div",{className:"h-32 flex items-center justify-center",style:{color:o.textMuted}},"No runs yet"))),a?.recent_errors?.length>0&&We.default.createElement("div",{className:"rounded-xl border p-6",style:{background:o.cardBg,borderColor:o.cardBorder}},We.default.createElement("h3",{className:"font-semibold mb-4",style:{color:o.textPrimary}},"Recent Errors"),We.default.createElement("div",{className:"space-y-3"},a.recent_errors.map(v=>We.default.createElement("div",{key:v.id,className:"flex items-start space-x-3 p-3 rounded-lg",style:{background:n?"rgba(220,38,38,0.12)":"#fef2f2"}},We.default.createElement("svg",{className:"w-5 h-5 text-red-500 flex-shrink-0 mt-0.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},We.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})),We.default.createElement("div",{className:"flex-1 min-w-0"},We.default.createElement("p",{className:"text-sm",style:{color:n?"#fca5a5":"#991b1b"}},v.error||"Unknown error"),We.default.createElement("p",{className:"text-xs mt-1",style:{color:n?"#f87171":"#dc2626"}},new Date(v.created_at).toLocaleString())))))),We.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4"},We.default.createElement("div",{className:"rounded-lg p-4",style:{background:o.innerBg}},We.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},"Completed Runs"),We.default.createElement("p",{className:"text-2xl font-bold",style:{color:o.textPrimary}},a?.summary?.completed_runs||0)),We.default.createElement("div",{className:"rounded-lg p-4",style:{background:o.innerBg}},We.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},"Failed Runs"),We.default.createElement("p",{className:"text-2xl font-bold",style:{color:o.textPrimary}},a?.summary?.failed_runs||0)),We.default.createElement("div",{className:"rounded-lg p-4",style:{background:o.innerBg}},We.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},"Avg Tokens/Run"),We.default.createElement("p",{className:"text-2xl font-bold",style:{color:o.textPrimary}},y(a?.summary?.avg_tokens_per_run))),We.default.createElement("div",{className:"rounded-lg p-4",style:{background:o.innerBg}},We.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},"Period"),We.default.createElement("p",{className:"text-2xl font-bold",style:{color:o.textPrimary}},a?.period_days||30," days")))))}var CQ={rose:["#dc2626","rgba(220,38,38,0.18)","#fee2e2"],green:["#16a34a","rgba(22,163,74,0.18)","#dcfce7"],blue:["#2563eb","rgba(37,99,235,0.18)","#dbeafe"],purple:["#7c3aed","rgba(124,58,237,0.18)","#ede9fe"]};function q2({title:e,value:t,icon:r,color:n,colors:o,darkMode:a}){let[i,s,l]=CQ[n]||CQ.rose;return We.default.createElement("div",{className:"rounded-xl border p-4",style:{background:o.cardBg,borderColor:o.cardBorder}},We.default.createElement("div",{className:"flex items-center justify-between"},We.default.createElement("div",null,We.default.createElement("p",{className:"text-sm",style:{color:o.textSecondary}},e),We.default.createElement("p",{className:"text-2xl font-bold mt-1",style:{color:o.textPrimary}},t)),We.default.createElement("div",{className:"p-3 rounded-lg",style:{background:a?s:l,color:i}},r)))}var de=Z(Q());var H_e={active:"success",configured:"info",available:"warning",idle:"muted"},q_e={agent_defined:"success",dashboard:"success",mcp:"info"},AQ="44px minmax(0, 1fr) 108px 60px 52px 58px 74px 26px",EQ="26px minmax(0, 1fr) 108px 52px 52px 52px 74px 64px",K_e=[{value:"enabled",label:"Enabled"},{value:"active",label:"Active"},{value:"configured",label:"Configured"},{value:"available",label:"Available"}],NQ={padding:"7px 16px",gap:10,alignItems:"end",background:"var(--color-muted)",fontFamily:W,fontSize:10,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",color:"var(--color-text-muted)"},Nl={fontFamily:W,fontSize:11,textAlign:"right",color:"var(--color-text-primary)"},K2={whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"};function PQ({on:e,onClick:t,title:r}){return de.default.createElement("span",{role:"switch","aria-checked":e,tabIndex:0,title:r,onClick:t,onKeyDown:n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),t(n))},style:{width:34,height:18,borderRadius:999,flexShrink:0,position:"relative",cursor:"pointer",background:e?"var(--color-accent-ui)":"var(--color-muted)",border:`1px solid ${e?"var(--color-accent-ui)":"var(--color-border-strong)"}`,transition:"background 0.12s ease"}},de.default.createElement("span",{style:{position:"absolute",top:1,left:e?17:1,width:14,height:14,borderRadius:"50%",background:e?"#ffffff":"var(--color-text-muted)",transition:"left 0.12s ease"}}))}function TQ({on:e,dim:t=!1}){return de.default.createElement("span",{"aria-hidden":"true",style:{width:16,height:16,borderRadius:4,display:"flex",alignItems:"center",justifyContent:"center",fontFamily:W,fontSize:10,fontWeight:700,flexShrink:0,border:`1px solid ${e?"var(--color-accent-ui)":"var(--color-border-strong)"}`,background:e?"var(--color-accent-ui)":"transparent",color:e?"var(--color-on-accent)":"transparent",opacity:t?.8:1}},e?"x":"")}function V_e({tool:e,state:t,onToggle:r}){if(!t)return de.default.createElement("span",null);let n=t!=="off",o=`Click to make each ${e.name} call wait for a person to approve it`;return t==="on"&&(o=`Each ${e.name} call waits for approval. Click to let it run without asking.`),t==="partial"&&(o=`Some ${e.name} functions wait for approval. Click to let every ${e.name} call run without asking.`),de.default.createElement("span",{"data-testid":`tool-approval-${e.key}`,"data-approval":t,onClick:a=>a.stopPropagation(),onKeyDown:a=>a.stopPropagation(),style:{display:"flex",justifyContent:"center"}},de.default.createElement(PQ,{on:n,title:o,onClick:()=>r(e)}))}function V2({children:e,onClick:t,disabled:r,title:n}){return de.default.createElement("button",{type:"button",onClick:t,disabled:r,title:n,style:{padding:"3px 9px",borderRadius:6,background:"transparent",fontFamily:W,fontSize:11,border:"1px solid var(--color-border-strong)",color:"var(--color-text-cell)",cursor:r?"not-allowed":"pointer",opacity:r?.5:1}},e)}function OQ({children:e}){return de.default.createElement("div",{style:{overflowX:"auto"}},de.default.createElement("div",{style:{minWidth:800}},e))}function VD({agent:e,formData:t,updateField:r,onSave:n,hasChanges:o=!1,isLoading:a}){let[i,s]=(0,de.useState)(null),[l,u]=(0,de.useState)(null),[c,d]=(0,de.useState)("7d"),[p,f]=(0,de.useState)(""),[m,y]=(0,de.useState)(null),[b,g]=(0,de.useState)(null),[h,v]=(0,de.useState)(!1),[x,S]=(0,de.useState)(null),[k,w]=(0,de.useState)({}),_=(nw.find(D=>D.value===c)||nw[1]).hours;(0,de.useEffect)(()=>{let D=!1;return u(null),fetch(`/api/agents/${e.id}/tool_roster?hours=${_}`).then(Y=>{if(!Y.ok)throw new Error(`Request failed (${Y.status})`);return Y.json()}).then(Y=>{D||s(Y)}).catch(Y=>{D||u(Y.message)}),()=>{D=!0}},[e.id,_]);let A=(0,de.useMemo)(()=>({services:[],tools:[]}),[]),C=i||A,N=(0,de.useMemo)(()=>t.tools||[],[t.tools]),L=(0,de.useMemo)(()=>t.mcp_servers||[],[t.mcp_servers]),J=(0,de.useMemo)(()=>t.approval_required_tools||[],[t.approval_required_tools]),B=(0,de.useMemo)(()=>rw(C,L),[C,L]),K=(0,de.useMemo)(()=>U6(C,B,{query:p,filter:m}),[C,B,p,m]),T=(0,de.useMemo)(()=>H6(C,B,N,{query:p,source:b,enabledOnly:h}),[C,B,N,p,b,h]),P=(0,de.useMemo)(()=>q6(C,B,N,{range:c}),[C,B,N,c]),I=(0,de.useMemo)(()=>G6(C,{tools:N,mcpServers:L,approvalRequiredTools:J},{tools:e.tools||[],mcpServers:e.mcp_servers||[],approvalRequiredTools:e.approval_required_tools||[]}),[C,N,L,J,e]),M=C.usage_available!==!1,j=D=>M?D:"\u2014",O=(0,de.useCallback)(D=>{r("mcp_servers",Y6(C,D,L))},[C,L,r]),F=(0,de.useCallback)(D=>{let Y=B[D.key];O({...B,[D.key]:{...Y,on:!Y.on}})},[B,O]),V=(0,de.useCallback)((D,Y)=>{let E=B[D.key];E.on&&O({...B,[D.key]:{...E,tools:{...E.tools,[Y.name]:!E.tools[Y.name]}}})},[B,O]),z=(0,de.useCallback)((D,Y)=>{let E=B[D.key],$=Object.fromEntries((D.tools||[]).map(ee=>[ee.name,Y]));O({...B,[D.key]:{on:Y||E.on,tools:$}})},[B,O]),G=(0,de.useCallback)(D=>{r("tools",X6(C,D));let Y=Om(D.filter(E=>!N.includes(E)));Y.length>0&&r("approval_required_tools",ST(J,Y,!0))},[C,N,J,r]),q=(0,de.useCallback)(D=>{D.editable&&G(D.on?N.filter(Y=>Y!==D.key):[...N,D.key])},[N,G]),oe=(0,de.useCallback)((D,Y)=>{D.editable&&G(Y?[...N,...D.keys.filter(E=>!N.includes(E))]:N.filter(E=>!D.keys.includes(E)))},[N,G]),Me=(0,de.useCallback)(D=>{r("approval_required_tools",V6(J,D,e.approval_required_tools||[]))},[J,e,r]),fe=(0,de.useCallback)(()=>{r("tools",e.tools||[]),r("mcp_servers",e.mcp_servers||[]),r("approval_required_tools",e.approval_required_tools||[])},[e,r]),le=(C.services||[]).filter(D=>B[D.key]?.on),R=T.find(D=>D.source==="mcp"),He=T.filter(D=>D.source!=="mcp").reduce((D,Y)=>D+Y.enabledCount,0)+(R?R.total:0),_e=T.reduce((D,Y)=>D+Y.total,0);return l?de.default.createElement(je,null,de.default.createElement(Ue,null,"Tools & MCP services"),de.default.createElement("p",{style:{margin:"8px 0 0",fontSize:13,color:"var(--color-error-text)"}},"Could not load the roster: ",l)):i?de.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},de.default.createElement("div",{style:{display:"flex",alignItems:"flex-end",gap:16,flexWrap:"wrap"}},de.default.createElement("div",{style:{flex:1,minWidth:260}},de.default.createElement("h2",{style:{margin:0,fontSize:16,fontWeight:600,color:"var(--color-text-primary)"}},"Tools & MCP services"),de.default.createElement("p",{style:{margin:"3px 0 0",fontSize:13,color:"var(--color-text-secondary)",textWrap:"pretty"}},"Turn a service on to offer its tools, then narrow the roster tool by tool. Call counts come from the traces recorded on every tool call.")),de.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},de.default.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:6,padding:"6px 10px",borderRadius:8,border:"1px solid var(--color-border-strong)",background:"var(--color-card)"}},de.default.createElement("span",{style:{fontFamily:W,fontSize:12,color:"var(--color-text-muted)"}},"?"),de.default.createElement("input",{value:p,onChange:D=>f(D.target.value),placeholder:"Filter tools and services\u2026","aria-label":"Filter tools and services",style:{border:"none",outline:"none",background:"transparent",color:"var(--color-text-primary)",fontSize:13,width:180}})),de.default.createElement(Ka,{options:nw,value:c,onChange:d}))),de.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))",gap:12}},P.map(D=>de.default.createElement(je,{key:D.key,padding:"14px 16px",testId:`roster-stat-${D.key}`},de.default.createElement(Ue,{size:11,spacing:"0.05em"},D.label),de.default.createElement("div",{style:{marginTop:6,fontFamily:W,fontSize:26,fontWeight:700,lineHeight:1.1,color:D.tone==="warning"?"var(--color-warning)":"var(--color-text-primary)"}},D.value),de.default.createElement("div",{style:{marginTop:5,fontSize:12,color:"var(--color-text-secondary)",textWrap:"pretty"}},D.sub)))),de.default.createElement(je,{padding:0,style:{overflow:"hidden"},testId:"mcp-services-card"},de.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"12px 16px",borderBottom:"1px solid var(--color-border-light)",flexWrap:"wrap"}},de.default.createElement(Ue,null,"MCP services"),de.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},le.length," of ",(C.services||[]).length," enabled \xB7 ",R?R.total:0," tools offered"),de.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"}},de.default.createElement(jn,{selected:!m,onClick:()=>y(null)},"All ",(C.services||[]).length),K_e.map(D=>de.default.createElement(jn,{key:D.value,selected:m===D.value,onClick:()=>y(m===D.value?null:D.value)},D.label,D.value==="enabled"?` ${le.length}`:"")),de.default.createElement(Gr,{href:Re("/mcp"),onClick:()=>lt("/mcp"),title:"Every MCP service this workspace knows",style:{marginLeft:4}},"manage servers"))),de.default.createElement(OQ,null,de.default.createElement("div",{style:{display:"grid",gridTemplateColumns:AQ,...NQ}},de.default.createElement("span",null,"On"),de.default.createElement("span",null,"Service"),de.default.createElement("span",null,"Status"),de.default.createElement("span",{style:{textAlign:"right"}},"Tools"),de.default.createElement("span",{style:{textAlign:"right"}},"Calls"),de.default.createElement("span",{style:{textAlign:"right"}},"Errors"),de.default.createElement("span",{style:{textAlign:"right"}},"Last seen"),de.default.createElement("span",null)),K.map(D=>{let Y=x===D.key;return de.default.createElement("div",{key:D.key},de.default.createElement("div",{className:"aa-roster-row","data-on":D.on?"true":"false","data-testid":`service-row-${D.key}`,style:{display:"grid",gridTemplateColumns:AQ,gap:10,alignItems:"center",padding:"10px 16px",borderTop:"1px solid var(--color-border-light)"}},de.default.createElement(PQ,{on:D.on,onClick:()=>F(D),title:`${D.on?"Disable":"Enable"} ${D.name} for this agent`}),de.default.createElement("div",{onClick:()=>S(Y?null:D.key),style:{minWidth:0,cursor:"pointer"}},de.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},de.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},D.name),D.first_party&&de.default.createElement(ke,{tone:"accent",size:10},"first-party"),Zd(D)&&de.default.createElement(ke,{tone:"info",size:10,title:"The app runtime of a checkout sandbox started from Settings \u2192 Integrations"},"sandbox runtime"),av(D)&&de.default.createElement(ke,{tone:"warning",size:10,title:"This checkout sandbox has stopped; the agent still names its runtime"},"not running"),ow(D)&&de.default.createElement(ke,{size:10,title:"Seen in your traffic but not in the platform catalog"},"undocumented"),D.partial&&de.default.createElement(ke,{tone:"warning",size:10},D.partialLabel)),de.default.createElement("div",{style:{marginTop:2,fontSize:12,lineHeight:"17px",color:"var(--color-text-secondary)",...K2}},D.description)),de.default.createElement("span",null,de.default.createElement(ke,{tone:H_e[D.status]||"muted"},D.status)),de.default.createElement("span",{style:{...Nl,color:D.on?"var(--color-text-primary)":"var(--color-text-muted)"}},D.toolsLabel),de.default.createElement("span",{style:Nl},j(D.calls)),de.default.createElement("span",{style:{...Nl,color:D.errors?"var(--color-error-text)":"var(--color-text-secondary)"}},j(D.errors)),de.default.createElement("span",{style:{...Nl,color:"var(--color-text-muted)"}},j(ov(D.last_seen))),de.default.createElement("span",{onClick:()=>S(Y?null:D.key),style:{cursor:"pointer",textAlign:"center"}},de.default.createElement(Sa,{kind:"chevron",open:Y}))),Y&&de.default.createElement("div",{style:{borderTop:"1px solid var(--color-border-light)",background:"var(--color-background)",padding:"10px 16px 12px"}},de.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap",marginBottom:8}},de.default.createElement(Ue,{size:10,color:"var(--color-text-muted)"},"Tools offered"),de.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},D.transport),de.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:8}},de.default.createElement(V2,{onClick:()=>z(D,!0),title:`Offer every tool ${D.name} serves`},"all"),de.default.createElement(V2,{onClick:()=>z(D,!1),disabled:!D.on,title:`Offer none of ${D.name}'s tools`},"none"))),D.tools.length===0?de.default.createElement(Jr,{style:{padding:"10px 0"}},B6(D)):de.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(300px, 1fr))",gap:"6px 14px"}},D.tools.map(E=>de.default.createElement("div",{key:E.name,className:"aa-roster-row",onClick:()=>V(D,E),style:{display:"grid",gridTemplateColumns:"20px minmax(0, 1fr) 46px 52px",gap:10,alignItems:"center",padding:"6px 8px",borderRadius:8,cursor:D.on?"pointer":"default",opacity:D.on?1:.55}},de.default.createElement(TQ,{on:E.on,dim:!D.on}),de.default.createElement("span",{style:{minWidth:0}},de.default.createElement("span",{style:{display:"block",fontFamily:W,fontSize:12,fontWeight:600,color:E.on?"var(--color-text-primary)":"var(--color-text-secondary)",...K2}},E.name),de.default.createElement("span",{style:{display:"block",fontSize:11,color:"var(--color-text-muted)",...K2}},E.description)),de.default.createElement("span",{style:{...Nl,color:"var(--color-text-secondary)"}},j(E.calls)),de.default.createElement("span",{style:{...Nl,color:E.errors?"var(--color-error-text)":"var(--color-text-muted)"}},j(E.errors?`${E.errors} err`:bT(E.avg_duration_ms)))))),!D.on&&de.default.createElement("div",{style:{marginTop:8,fontSize:12,color:"var(--color-text-secondary)",textWrap:"pretty"}},"Turning ",D.name," on offers these ",D.tools.length," tools to the agent and starts recording traces and metrics for every call.")))}),K.length===0&&de.default.createElement(Jr,{style:{borderTop:"1px solid var(--color-border-light)",padding:"18px 16px"}},p?`no services match "${p}"`:"no MCP services yet"))),de.default.createElement(je,{padding:0,style:{overflow:"hidden"},testId:"tools-card"},de.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"12px 16px",borderBottom:"1px solid var(--color-border-light)",flexWrap:"wrap"}},de.default.createElement(Ue,null,"Tools"),de.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},He," enabled of ",_e," available"),de.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"}},de.default.createElement(jn,{selected:!b,onClick:()=>g(null)},"All ",_e),T.map(D=>de.default.createElement(jn,{key:D.source,selected:b===D.source,onClick:()=>g(b===D.source?null:D.source)},D.name," ",D.total)),de.default.createElement(jn,{square:!0,mono:!0,selected:h,onClick:()=>v(!h),style:{marginLeft:4}},h?"[x] enabled only":"[ ] enabled only"))),de.default.createElement(OQ,null,de.default.createElement("div",{style:{display:"grid",gridTemplateColumns:EQ,...NQ}},de.default.createElement("span",null),de.default.createElement("span",null,"Tool"),de.default.createElement("span",null,"Source"),de.default.createElement("span",{style:{textAlign:"right"}},"Calls"),de.default.createElement("span",{style:{textAlign:"right"}},"Errors"),de.default.createElement("span",{style:{textAlign:"right"}},"Avg"),de.default.createElement("span",{style:{textAlign:"right"}},"Last seen"),de.default.createElement("span",{style:{textAlign:"center"},title:"Pause the run for a person to approve each call before the tool runs"},"Approval")),T.map(D=>{let Y=k[D.source]!==!0;return de.default.createElement("div",{key:D.source},de.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"7px 16px",borderTop:"1px solid var(--color-border-light)",background:"var(--color-background)",flexWrap:"wrap"}},de.default.createElement("span",{onClick:()=>w({...k,[D.source]:Y}),style:{cursor:"pointer",display:"inline-flex",alignItems:"center",gap:10}},de.default.createElement(Sa,{kind:"chevron",open:Y}),de.default.createElement("span",{style:{fontSize:12,fontWeight:600,color:"var(--color-text-primary)"}},D.name)),de.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},D.meta),de.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:8}},de.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-cell)"}},D.countLabel),D.editable&&de.default.createElement(de.default.Fragment,null,de.default.createElement(V2,{onClick:()=>oe(D,!0)},"all"),de.default.createElement(V2,{onClick:()=>oe(D,!1)},"none")))),Y&&D.rows.map(E=>de.default.createElement("div",{key:E.key,className:"aa-roster-row","data-on":E.on?"true":"false","data-testid":`tool-row-${E.key}`,onClick:()=>q(E),style:{display:"grid",gridTemplateColumns:EQ,gap:10,alignItems:"center",padding:"10px 16px",borderTop:"1px solid var(--color-border-light)",cursor:E.editable?"pointer":"default",opacity:E.editable?1:.75}},de.default.createElement(TQ,{on:E.on,dim:!E.editable}),de.default.createElement("div",{style:{minWidth:0}},de.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},de.default.createElement("span",{style:{fontFamily:W,fontSize:12,fontWeight:600,color:E.on?"var(--color-text-primary)":"var(--color-text-secondary)"}},E.name),E.source==="mcp"&&de.default.createElement(ke,{size:10},"via ",E.server),E.source==="agent_defined"&&(E.editable?de.default.createElement(ke,{size:10,title:"Generated from the host's schema tools; offered to this agent only while its roster names it"},"from schema"):de.default.createElement(ke,{size:10,title:"Declared by the agent class in code, so the roster reports it rather than selecting it"},"from code")),M&&E.on&&!E.calls&&de.default.createElement(ke,{size:10},"unused")),de.default.createElement("div",{style:{marginTop:2,fontSize:12,lineHeight:"17px",color:"var(--color-text-secondary)",...K2}},E.description)),de.default.createElement("span",null,de.default.createElement(ke,{tone:q_e[E.source]||"muted"},xT[E.source])),de.default.createElement("span",{style:Nl},j(E.calls)),de.default.createElement("span",{style:{...Nl,color:E.errors?"var(--color-error-text)":"var(--color-text-secondary)"}},j(E.errors)),de.default.createElement("span",{style:{...Nl,color:"var(--color-text-secondary)"}},j(bT(E.avg_duration_ms))),de.default.createElement("span",{style:{...Nl,color:"var(--color-text-muted)"}},j(ov(E.last_seen))),de.default.createElement(V_e,{tool:E,state:wT(E,J),onToggle:Me}))))}),T.every(D=>D.rows.length===0)&&de.default.createElement(Jr,{style:{borderTop:"1px solid var(--color-border-light)",padding:"18px 16px"}},p?`no tools match "${p}"`:"nothing enabled yet"))),de.default.createElement(je,{padding:"12px 16px",style:{position:"sticky",bottom:0,zIndex:4,background:"var(--color-surface)",display:"flex",alignItems:"center",gap:12,flexWrap:"wrap"},testId:"roster-action-bar"},de.default.createElement("div",{style:{minWidth:0,display:"flex",flexDirection:"column",gap:3}},de.default.createElement(Ue,{size:11,spacing:"0.05em"},He," tools \xB7 ",le.length," services"),de.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)",textWrap:"pretty"}},"Every enabled tool is traced: calls, arguments, errors and latency land in Traces and roll up into Metrics.")),de.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"}},I>0&&de.default.createElement(de.default.Fragment,null,de.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:"var(--color-warning-text)"}},I," change",I===1?"":"s"," pending"),de.default.createElement(ce,{variant:"secondary",onClick:fe},"Discard")),de.default.createElement(ce,{variant:o?"primary":"secondary",onClick:n,disabled:a||!o,title:o?"Save this agent":"Nothing to save",style:o?void 0:{background:"var(--color-muted)",color:"var(--color-text-muted)",border:"1px solid transparent",cursor:"default"}},a?"Saving\u2026":"Save Changes")))):de.default.createElement(je,null,de.default.createElement(Jr,null,"loading the roster\u2026"))}var Jt=Z(Q());function GD({agentId:e,colors:t}){let[r,n]=(0,Jt.useState)(""),[o,a]=(0,Jt.useState)(""),[i,s]=(0,Jt.useState)(""),[l,u]=(0,Jt.useState)(1),[c,d]=(0,Jt.useState)(null),[p,f]=(0,Jt.useState)(null),[m,y]=(0,Jt.useState)(0);(0,Jt.useEffect)(()=>{let g=new AbortController;d(null),f(null);let h=new URLSearchParams({agent_id:e,rating:r,from:o,to:i,page:l});return fetch(Re(`/api/feedback?${h}`),{signal:g.signal}).then(async v=>{if(!v.ok)throw new Error("Could not load feedback.");return v.json()}).then(d).catch(v=>{v.name!=="AbortError"&&f(v.message)}),()=>g.abort()},[e,r,o,i,l,m]);let b=g=>h=>{g(h.target.value),u(1)};return Jt.default.createElement("section",{"aria-label":"User feedback",style:{color:t.textPrimary,background:t.cardBg,border:`1px solid ${t.cardBorder}`,borderRadius:12,padding:20}},Jt.default.createElement("div",{className:"flex flex-wrap items-center gap-4 mb-4"},Jt.default.createElement("label",null,"Rating ",Jt.default.createElement("select",{value:r,onChange:b(n),style:{color:t.textPrimary,background:t.cardBg}},Jt.default.createElement("option",{value:""},"All ratings"),Jt.default.createElement("option",{value:"positive"},"Thumbs up"),Jt.default.createElement("option",{value:"negative"},"Thumbs down"))),Jt.default.createElement("label",null,"From ",Jt.default.createElement("input",{type:"date",value:o,onChange:b(a),style:{color:t.textPrimary,background:t.cardBg}})),Jt.default.createElement("label",null,"To ",Jt.default.createElement("input",{type:"date",value:i,onChange:b(s),style:{color:t.textPrimary,background:t.cardBg}})),Jt.default.createElement("button",{type:"button",onClick:()=>y(g=>g+1)},"Refresh")),p&&Jt.default.createElement("p",{role:"alert"},p),!c&&!p&&Jt.default.createElement("p",{role:"status"},"Loading feedback\u2026"),c&&Jt.default.createElement(Jt.default.Fragment,null,Jt.default.createElement("p",{className:"mb-4"},c.positive," thumbs up \xB7 ",c.negative," thumbs down \xB7 ",c.positive_percentage==null?"No ratings":`${c.positive_percentage}% positive`," (",c.total," ratings matching filters)"),c.total===0&&Jt.default.createElement("p",null,"No feedback recorded for these filters. Submit feedback from your application after the trace is ingested."),Jt.default.createElement("ul",null,c.feedback.map(g=>Jt.default.createElement("li",{key:g.id,className:"py-4",style:{borderTop:`1px solid ${t.cardBorder}`}},Jt.default.createElement("strong",null,g.rating==="positive"?"\u{1F44D} Thumbs up":"\u{1F44E} Thumbs down"),Jt.default.createElement("span",null," \xB7 ",new Date(g.created_at).toLocaleString()),g.user_reference&&Jt.default.createElement("span",null," \xB7 ",g.user_reference),g.comment&&Jt.default.createElement("p",{style:{whiteSpace:"pre-wrap",overflowWrap:"anywhere"}},g.comment),Jt.default.createElement("a",{className:"underline",href:Re(`/traces?trace=${encodeURIComponent(g.trace_id)}`)},"Open interaction trace"),g.span_id&&Jt.default.createElement("p",null,"Response span: ",Jt.default.createElement("code",null,g.span_id))))),Jt.default.createElement("div",{className:"flex gap-4 mt-4"},Jt.default.createElement("button",{disabled:l===1,onClick:()=>u(g=>g-1)},"Previous"),Jt.default.createElement("span",null,"Page ",l),Jt.default.createElement("button",{disabled:l*50>=c.total,onClick:()=>u(g=>g+1)},"Next"))))}var G_e=[{id:"config",label:"Configuration"},{id:"instructions",label:"Instructions"},{id:"tools",label:"Tools"},{id:"versions",label:"Versions"},{id:"code",label:"Code"}],DQ=[{id:"traces",label:"Traces"},{id:"metrics",label:"Metrics"},{id:"interactions",label:"Interactions"},{id:"evals",label:"Evals"},{id:"feedback",label:"Feedback"}],Y_e=DQ.map(e=>e.id),MQ={success:{light:["#dcfce7","#166534"],dark:["rgba(22,163,74,0.18)","#4ade80"]},warning:{light:["#fef9c3","#854d0e"],dark:["rgba(234,179,8,0.18)","#facc15"]},neutral:{light:["#f3f4f6","#4b5563"],dark:["rgba(255,255,255,0.1)","rgba(255,255,255,0.7)"]},error:{light:["#fee2e2","#991b1b"],dark:["rgba(220,38,38,0.18)","#f87171"]},info:{light:["#dbeafe","#1e40af"],dark:["rgba(59,130,246,0.18)","#60a5fa"]}},X_e={active:"success",draft:"warning",archived:"neutral",failed:"error",trial:"info"};function hd({tone:e="neutral",mono:t=!1,darkMode:r,children:n}){let[o,a]=(MQ[e]||MQ.neutral)[r?"dark":"light"];return Se.default.createElement("span",{style:{background:o,color:a,borderRadius:"999px",padding:"2px 8px",fontSize:"11px",fontWeight:600,fontFamily:t?Pt.mono:void 0,whiteSpace:"nowrap"}},n)}function ma({variant:e="secondary",size:t="md",onClick:r,disabled:n,colors:o,title:a,testId:i,children:s}){let u={padding:t==="sm"?"5px 10px":"7px 14px",borderRadius:"8px",fontSize:"13px",fontWeight:500,cursor:n?"not-allowed":"pointer",transition:"background 0.15s ease, border-color 0.15s ease",whiteSpace:"nowrap"},c={primary:{background:n?o.mutedBg:Qo,color:n?o.textMuted:"#ffffff",border:"1px solid transparent"},secondary:{background:"transparent",color:o.textCell,border:`1px solid ${o.inputBorder}`},danger:{background:"transparent",color:"#dc2626",border:"1px solid rgba(220,38,38,0.4)"}};return Se.default.createElement("button",{type:"button",onClick:r,disabled:n,title:a,"data-testid":i,style:{...u,...c[e]||c.secondary}},s)}function IQ({tabs:e,active:t,onChange:r,colors:n}){return Se.default.createElement("div",{style:{display:"flex",alignItems:"center"}},e.map(o=>{let a=t===o.id;return Se.default.createElement("button",{key:o.id,type:"button",onClick:()=>r(o.id),style:{padding:"10px 12px",marginBottom:"-1px",background:"none",border:"none",borderBottom:`2px solid ${a?Qo:"transparent"}`,color:a?Qo:n.textSecondary,fontSize:"13px",fontWeight:a?600:500,cursor:"pointer",whiteSpace:"nowrap"}},o.label)}))}function G2({agent:e,meta:t,onSave:r,onDelete:n,onRun:o,onDuplicate:a,onRunReport:i,onBack:s,isLoading:l,initialTab:u}){let{darkMode:c}=ut(),d=Vi(c),[p,f]=(0,Se.useState)(u||"config"),[m,y]=(0,Se.useState)({name:e.name||"",description:e.description||"",provider:e.provider||"openai",model:e.model||"gpt-4o-mini",instructions:e.instructions||"",action_prompts:e.actionPrompts||e.action_prompts||[],preset_type:e.presetType||e.preset_type||"terminal",appearance:e.appearance||{},instruction_sets:e.instructionSets||e.instruction_sets||[],tools:e.tools||[],approval_required_tools:e.approvalRequiredTools||e.approval_required_tools||[],mcp_servers:e.mcpServers||e.mcp_servers||[],model_config:e.modelConfig||e.model_config||{temperature:.7},status:e.status||"draft"}),[b,g]=(0,Se.useState)([]),[h,v]=(0,Se.useState)(!1),[x,S]=(0,Se.useState)(""),k=bc([m.provider]);(0,Se.useEffect)(()=>{let B=JSON.stringify(m)!==JSON.stringify({name:e.name||"",description:e.description||"",provider:e.provider||"openai",model:e.model||"gpt-4o-mini",instructions:e.instructions||"",action_prompts:e.actionPrompts||e.action_prompts||[],preset_type:e.presetType||e.preset_type||"terminal",appearance:e.appearance||{},instruction_sets:e.instructionSets||e.instruction_sets||[],tools:e.tools||[],approval_required_tools:e.approvalRequiredTools||e.approval_required_tools||[],mcp_servers:e.mcpServers||e.mcp_servers||[],model_config:e.modelConfig||e.model_config||{temperature:.7},status:e.status||"draft"});v(B)},[m,e]),(0,Se.useEffect)(()=>{p==="versions"?w():p==="code"&&_()},[p]);let w=async()=>{try{let K=await(await fetch(`/api/agents/${e.id}/versions`)).json();g(K.versions)}catch(B){console.error("Failed to load versions:",B)}},_=async()=>{try{let K=await(await fetch(`/api/agents/${e.id}/export`)).json();S(K.code)}catch(B){console.error("Failed to load code preview:",B)}},A=(B,K)=>{y(T=>({...T,[B]:K}))},C=(B,K)=>{y(T=>{let P=T[B]||[],I=P.includes(K)?P.filter(M=>M!==K):[...P,K];return{...T,[B]:I}})},N=()=>{r(m)},L=Y_e.includes(p),J=p==="tools";return Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},Se.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:"12px"}},Se.default.createElement("button",{type:"button",onClick:s,title:"Back to agents",style:{fontFamily:Pt.mono,fontSize:"13px",color:d.textSecondary,background:"none",border:"none",cursor:"pointer",padding:"4px 2px",marginTop:"10px"}},"<-"),Se.default.createElement(In,{size:44}),Se.default.createElement("div",{style:{flex:1,minWidth:0}},Se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}},Se.default.createElement("h1",{style:{fontSize:"20px",fontWeight:700,color:d.textPrimary,margin:0}},m.name||"Untitled agent"),Se.default.createElement(hd,{tone:X_e[m.status]||"neutral",darkMode:c},m.status),h&&Se.default.createElement(hd,{tone:"info",darkMode:c},"unsaved")),Se.default.createElement("p",{style:{fontSize:"13px",color:d.textSecondary,margin:"4px 0 0"}},m.description||"No description")),Se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexShrink:0}},a&&Se.default.createElement(ma,{variant:"secondary",colors:d,onClick:a},"Duplicate"),Se.default.createElement(ma,{variant:"primary",colors:d,onClick:o},"Run Agent"))),Se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"20px",borderBottom:`1px solid ${d.cardBorder}`,overflowX:"auto"}},Se.default.createElement(IQ,{tabs:G_e,active:p,onChange:f,colors:d}),Se.default.createElement("div",{style:{width:"1px",height:"18px",background:d.borderStrong,flexShrink:0}}),Se.default.createElement(IQ,{tabs:DQ,active:p,onChange:f,colors:d})),J?Se.default.createElement(VD,{agent:e,formData:m,updateField:A,onSave:N,hasChanges:h,isLoading:l}):L?Se.default.createElement("div",null,p==="traces"&&Se.default.createElement(Jp,{agentId:e.id,embedded:!0}),p==="metrics"&&Se.default.createElement(KD,{agent:e,embedded:!0}),p==="interactions"&&Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},i&&Se.default.createElement("div",{style:{display:"flex",justifyContent:"flex-end"}},Se.default.createElement("button",{type:"button",onClick:i,style:{background:"none",border:"none",cursor:"pointer",fontFamily:Pt.mono,fontSize:"11px",color:"#3b82f6"}},"run report ->")),Se.default.createElement($u,{agentId:e.id,embedded:!0})),p==="evals"&&Se.default.createElement(V0,{embedded:!0,agentId:e.id}),p==="feedback"&&Se.default.createElement(GD,{agentId:e.id,colors:d})):Se.default.createElement("div",{style:{background:d.cardBg,border:`1px solid ${d.cardBorder}`,borderRadius:"12px",padding:"20px"}},p==="config"&&Se.default.createElement(J_e,{formData:m,updateField:A,providerModels:k,colors:d,darkMode:c,onDelete:n}),p==="instructions"&&Se.default.createElement(Q_e,{formData:m,updateField:A,meta:t,toggleArrayItem:C,colors:d}),p==="versions"&&Se.default.createElement(R_e,{versions:b,agentId:e.id,onRestore:w,colors:d,darkMode:c}),p==="code"&&Se.default.createElement(eCe,{code:x,colors:d})),h&&!J&&Se.default.createElement("div",{style:{position:"sticky",bottom:"0",display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",background:d.cardBg,border:`1px solid ${d.borderStrong}`,borderRadius:"12px",padding:"10px 14px",boxShadow:"0 4px 16px rgba(0,0,0,0.12)"}},Se.default.createElement("span",{style:{fontSize:"13px",color:d.textSecondary}},"Unsaved changes"),Se.default.createElement("div",{style:{display:"flex",gap:"8px"}},Se.default.createElement(ma,{variant:"primary",size:"sm",colors:d,onClick:N,disabled:l},l?"Saving\u2026":"Save Changes"))))}var Tl=e=>({display:"block",fontSize:"13px",fontWeight:500,color:e.textCell,marginBottom:"6px"}),Fu=e=>({width:"100%",padding:"8px 12px",borderRadius:"8px",border:`1px solid ${e.inputBorder}`,background:e.inputBg,color:e.textPrimary,fontFamily:"inherit",fontSize:"13px"}),Z_e=e=>({fontFamily:Pt.mono,fontSize:"11px",fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:e.textSecondary});function J_e({formData:e,updateField:t,providerModels:r,colors:n,darkMode:o,onDelete:a}){return Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},Se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(n)},"Agent Name"),Se.default.createElement("input",{type:"text",value:e.name,onChange:i=>t("name",i.target.value),className:"aa-field",style:Fu(n)})),Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(n)},"Preset Type"),Se.default.createElement("select",{value:e.preset_type,onChange:i=>t("preset_type",i.target.value),className:"aa-field",style:Fu(n)},Object.keys(_m).map(i=>Se.default.createElement("option",{key:i,value:i},i))))),Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(n)},"Description"),Se.default.createElement("textarea",{value:e.description,onChange:i=>t("description",i.target.value),rows:3,className:"aa-field",style:{...Fu(n),resize:"vertical"}})),Se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(n)},"Provider"),Se.default.createElement("select",{value:e.provider,onChange:i=>{t("provider",i.target.value),t("model",r[i.target.value][0])},className:"aa-field",style:Fu(n)},Object.keys(r).map(i=>Se.default.createElement("option",{key:i,value:i},i.charAt(0).toUpperCase()+i.slice(1))))),Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(n)},"Model"),Se.default.createElement(ru,{value:e.model,models:r[e.provider],onChange:i=>t("model",i),className:"aa-field",style:{...Fu(n),fontFamily:Pt.mono}}))),Se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(n)},"Temperature"," ",Se.default.createElement("span",{style:{fontFamily:Pt.mono,color:n.textSecondary}},e.model_config.temperature)),Se.default.createElement("input",{type:"range",min:"0",max:"1",step:"0.1",value:e.model_config.temperature,onChange:i=>t("model_config",{...e.model_config,temperature:parseFloat(i.target.value)}),style:{width:"100%",accentColor:Qo}})),Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(n)},"Status"),Se.default.createElement("select",{value:e.status,onChange:i=>t("status",i.target.value),className:"aa-field",style:Fu(n)},Se.default.createElement("option",{value:"draft"},"Draft"),Se.default.createElement("option",{value:"active"},"Active"),Se.default.createElement("option",{value:"archived"},"Archived")))),a&&Se.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",borderTop:`1px solid ${n.cardBorder}`,paddingTop:"16px"}},Se.default.createElement("div",null,Se.default.createElement("div",{style:Z_e(n)},"Danger zone"),Se.default.createElement("p",{style:{fontSize:"13px",color:n.textMuted,margin:"4px 0 0"}},"Deleting an agent removes its configuration and version history.")),Se.default.createElement(ma,{variant:"danger",size:"sm",colors:n,onClick:a},"Delete Agent")))}function Q_e({formData:e,updateField:t,meta:r,toggleArrayItem:n,colors:o}){let a=e.action_prompts||[],i=(u,c)=>{t("action_prompts",a.map((d,p)=>p===u?{...d,...c}:d))},s=()=>{t("action_prompts",[...a,{name:"",prompt:"",expose_as_tool:!1}])},l=u=>{t("action_prompts",a.filter((c,d)=>d!==u))};return Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(o)},"System Instructions"),Se.default.createElement("textarea",{value:e.instructions,onChange:u=>t("instructions",u.target.value),placeholder:"You are a helpful AI assistant...",rows:12,className:"aa-field",style:{...Fu(o),fontFamily:Pt.mono,resize:"vertical"}})),Se.default.createElement("div",null,Se.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"6px"}},Se.default.createElement("label",{style:{...Tl(o),marginBottom:0}},"Action Prompts"),Se.default.createElement(ma,{variant:"secondary",size:"sm",colors:o,onClick:s},"+ Add action")),Se.default.createElement("p",{style:{fontSize:"12px",color:o.textMuted,margin:"0 0 12px"}},"Named actions run with their prompt stacked below the system instructions. The default ",Se.default.createElement("span",{style:{fontFamily:Pt.mono}},"#ask")," action uses the system instructions alone."),a.length>0&&Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},a.map((u,c)=>Se.default.createElement("div",{key:c,style:{border:`1px solid ${o.cardBorder}`,borderRadius:"10px",padding:"12px",display:"flex",flexDirection:"column",gap:"8px"}},Se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},Se.default.createElement("span",{style:{fontFamily:Pt.mono,fontSize:"13px",color:o.textMuted}},"#"),Se.default.createElement("input",{type:"text",value:u.name,onChange:d=>i(c,{name:d.target.value.toLowerCase().replace(/[^a-z0-9_]/g,"_")}),placeholder:"action_name",className:"aa-field",style:{...Fu(o),flex:1,padding:"6px 10px",fontFamily:Pt.mono}}),Se.default.createElement("label",{style:{display:"flex",alignItems:"center",gap:"6px",fontSize:"12px",color:o.textSecondary,whiteSpace:"nowrap"}},Se.default.createElement("input",{type:"checkbox",checked:!!u.expose_as_tool,onChange:d=>i(c,{expose_as_tool:d.target.checked}),style:{accentColor:Qo}}),"Expose as tool"),Se.default.createElement("button",{type:"button",onClick:()=>l(c),title:"Remove action",style:{fontFamily:Pt.mono,fontSize:"12px",color:o.textMuted,background:"none",border:"none",cursor:"pointer",padding:"4px"}},"[x]")),Se.default.createElement("textarea",{value:u.prompt,onChange:d=>i(c,{prompt:d.target.value}),placeholder:"This action's system prompt, applied on top of the base instructions...",rows:4,className:"aa-field",style:{...Fu(o),fontFamily:Pt.mono,resize:"vertical"}}))))),Se.default.createElement("div",null,Se.default.createElement("label",{style:Tl(o)},"Instruction Sets"),Se.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px"}},r.instructionSets?.map(u=>{let c=e.instruction_sets.includes(u);return Se.default.createElement("button",{key:u,type:"button",onClick:()=>n("instruction_sets",u),style:{padding:"5px 12px",borderRadius:"999px",fontSize:"13px",cursor:"pointer",border:`1px solid ${c?Qo:o.inputBorder}`,background:c?Qo:"transparent",color:c?"#ffffff":o.textCell}},u)}))))}function R_e({versions:e,agentId:t,onRestore:r,colors:n,darkMode:o}){let a=async i=>{if(await Wr({title:"Restore this version?",message:"A new version is created with the restored configuration. The current version stays in the history.",confirmLabel:"Restore"}))try{await fetch(`/api/agents/${t}/restore`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({version_id:i})}),r()}catch(s){console.error("Failed to restore version:",s)}};return Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"16px"}},Se.default.createElement("p",{style:{fontSize:"13px",color:n.textSecondary,margin:0}},"View and restore previous versions of this agent."),e.length>0?Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"10px"}},e.map(i=>{let s=i.is_latest||i.isLatest;return Se.default.createElement("div",{key:i.id,style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"12px",padding:"14px",borderRadius:"10px",border:`1px solid ${s?Qo:n.cardBorder}`,background:s?"rgba(239,68,68,0.06)":"transparent"}},Se.default.createElement("div",{style:{minWidth:0}},Se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},Se.default.createElement("span",{style:{fontFamily:Pt.mono,fontSize:"13px",fontWeight:600,color:n.textPrimary}},"v",i.version_number||i.versionNumber),s&&Se.default.createElement(hd,{tone:"error",darkMode:o},"current")),Se.default.createElement("p",{style:{fontSize:"13px",color:n.textCell,margin:"4px 0 0"}},i.change_summary||i.changeSummary),Se.default.createElement("p",{style:{fontFamily:Pt.mono,fontSize:"11px",color:n.textMuted,margin:"4px 0 0"}},new Date(i.created_at||i.createdAt).toLocaleString())),!s&&Se.default.createElement(ma,{variant:"secondary",size:"sm",colors:n,onClick:()=>a(i.id)},"Restore"))})):Se.default.createElement(tCe,{colors:n,glyph:"[#]",title:"No version history",hint:"Saving a change records a new version."}))}function eCe({code:e,colors:t}){let r=()=>{navigator.clipboard.writeText(e)};return Se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},Se.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"}},Se.default.createElement("p",{style:{fontSize:"13px",color:t.textSecondary,margin:0}},"Generated Ruby code for this agent."),Se.default.createElement(ma,{variant:"secondary",size:"sm",colors:t,onClick:r},"Copy")),Se.default.createElement("pre",{style:{padding:"16px",background:"#111827",color:"#e5e7eb",borderRadius:"10px",overflowX:"auto",fontFamily:Pt.mono,fontSize:"12px",lineHeight:1.6,margin:0}},Se.default.createElement("code",null,e||"Loading...")))}function tCe({colors:e,glyph:t,title:r,hint:n}){return Se.default.createElement("div",{style:{textAlign:"center",padding:"40px 20px"}},Se.default.createElement("div",{style:{fontFamily:Pt.mono,fontSize:"20px",color:e.textMuted}},t),Se.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,color:e.textPrimary,marginTop:"10px"}},r),Se.default.createElement("p",{style:{fontSize:"13px",color:e.textMuted,margin:"6px auto 0",maxWidth:"420px"}},n))}var X=Z(Q());async function Ph(){let e=window.ACTIVE_AGENT_DASHBOARD?.meta?.upgradeUrl;if(!e)throw new Error("This dashboard has no billing configured.");window.location.href=e}var Y2=Z(Q());var rCe='[data-aa-secret], meta[name="csrf-token"], input[type="hidden"]';var $Q=Object.freeze({events:500,chars:262144}),nCe=16*1024,oCe=3;function aCe(e){return{emit:e,maskAllInputs:!0,blockSelector:rCe,slimDOMOptions:"all",sampling:{scroll:150,input:"last"}}}function iCe(e){return JSON.stringify({kind:"rrweb",timestamp:e.timestamp,data:e})}function sCe(e,t){return`{"sent_at":${Math.floor(t)},"recording_events":[${e.join(",")}]}`}function lCe(e,t=$Q){let r=0,n=0;for(let o of e){if(n>=t.events||n>0&&r+o.length>t.chars)break;r+=o.length+1,n+=1}return n}function jQ(e){return e>=200&&e<300?"sent":e===403?"off":e===413?"limit":e===429||e>=500?"retry":"failed"}function LQ({contextId:e,loadRecorder:t,fetch:r,now:n=Date.now,timers:o=globalThis,target:a=globalThis,onStateChange:i=()=>{},limits:s=$Q,flushIntervalMs:l=5e3}){let u=[],c=0,d="idle",p=null,f=null,m=null,y=null,b=!1,g=!1,h=null,v=0;function x(K){d!==K&&(d=K,i(K))}function S(){u.length=0,c=0}function k(){f&&f(),f=null,m=null,y!==null&&o.clearInterval(y),y=null,a?.removeEventListener?.("pagehide",L)}function w(K){g=!0,S(),k(),x(K)}function _(K){if(b||g)return;let T=iCe(K);u.push(T),c+=T.length+1,(u.length>=s.events||c>=s.chars)&&N()}async function A(K,T){let P=sCe(K,n());try{let I=await r(`/api/session_recordings/${encodeURIComponent(p)}/events`,{method:"POST",headers:{"Content-Type":"text/plain"},body:P,keepalive:T&&P.length<=nCe});return jQ(I.status)}catch{return"retry"}}async function C(K){for(;u.length>0&&!g;){let T=u.splice(0,lCe(u,s)),P=T.reduce((M,j)=>M+j.length+1,0);c-=P;let I=await A(T,K);if(I==="sent"){v=0;continue}if(I!=="retry"){w(I);return}if(v+=1,K||v>=oCe){v=0,S(),m&&m();return}u.unshift(...T),c+=P;return}}function N({final:K=!1}={}){return p===null||g?Promise.resolve():(h||(h=C(K).finally(()=>{h=null})),h)}function L(){N({final:!0})}async function J(){if(d!=="idle"||b)return;x("starting");let K;try{K=await r("/api/session_recordings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent_context_id:e})})}catch{b||w("failed");return}if(b)return;if(!K.ok){w(jQ(K.status)==="off"?"off":"failed");return}let T=await K.json().catch(()=>null);if(b)return;if(p=T?.recording?.id??null,p===null){w("failed");return}let P;try{({record:P}=await t())}catch{b||w("failed");return}if(b)return;let I=null;try{I=typeof P=="function"?P(aCe(_)):null}catch{I=null}if(typeof I!="function"){w("failed");return}f=I,m=()=>P.takeFullSnapshot?.(),y=o.setInterval(()=>N(),l),a?.addEventListener?.("pagehide",L),x("recording")}async function B(){b||(b=!0,k(),!g&&(x("stopped"),h&&await h,await N({final:!0})))}return{start:J,stop:B,flush:N,get state(){return d}}}function YD(e,t){let[r,n]=(0,Y2.useState)("idle");return(0,Y2.useLayoutEffect)(()=>{if(!e||!t){n("idle");return}let o=!0,a=LQ({contextId:e,loadRecorder:()=>import(t),fetch:(i,s)=>fetch(i,s),target:window,onStateChange:i=>{o&&n(i)}});return a.start(),()=>{o=!1,a.stop()}},[e,t]),r}var uCe={llm:{role:"assistant",label:"LLM"},tool:{role:"tool",label:"Tool"},agent:{role:"developer",label:"Agent"},mcp:{role:"system",label:"MCP"}},cCe=(e,t)=>{let r=uCe[e]||{role:e,label:e};return{...Ln(r.role,t),label:r.label}},XD={complete:"success",failed:"error",running:"info",pending:"warning",cancelled:"neutral",awaiting_input:"warning"},dCe=["Hello, what can you help me with?","Show me a dashboard of last quarter's sales","List the files in the current directory","Explain how this code works"],pCe=["user","assistant","tool"],fCe=1200,mCe=600*1e3,X2=e=>e?e<1e3?`${e}ms`:`${(e/1e3).toFixed(2)}s`:"-",zQ=e=>{if(!e)return null;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}},ZD=e=>{let t=new Map;return(e?.logs||[]).filter(r=>r.eid).forEach(r=>{let n=t.get(r.eid)||{eid:r.eid};r.status==="started"?Object.assign(n,r,{input:r.detail,output:n.output}):Object.assign(n,r,{input:n.input,output:r.detail}),t.set(r.eid,n)}),[...t.values()]},ys=e=>e?.context_id??e?.output_metadata?.context_id??null,G0=e=>e.json().catch(()=>({})),FQ=({open:e,color:t})=>X.default.createElement("svg",{className:`w-3.5 h-3.5 mt-1 flex-shrink-0 transition-transform ${e?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",style:{color:t}},X.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})),gCe=e=>typeof e=="string"?e:e?.name||e?.key||"?";function BQ({label:e,names:t,colors:r}){return X.default.createElement("div",{className:"flex justify-between gap-3"},X.default.createElement("dt",{className:"shrink-0",style:{color:r.textSecondary}},e),X.default.createElement("dd",{className:"text-right font-mono text-xs break-words min-w-0",style:{color:t.length?r.textPrimary:r.textMuted}},t.length?t.join(", "):"none"))}function hCe({run:e,darkMode:t,colors:r,expanded:n,onToggle:o}){let a=ZD(e),i=qC(t);return X.default.createElement("div",{"data-testid":"runner-activity",className:"space-y-2"},a.map(s=>{let l=!!n[s.eid],u=!!(s.input||s.output),c=cCe(s.kind,t);return X.default.createElement("div",{key:s.eid,"data-testid":"runner-activity-event"},X.default.createElement("div",{className:`flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 ${u?"cursor-pointer":""}`,onClick:u?()=>o(s.eid):void 0,title:u?"Click to inspect input/output":void 0,style:l?{background:t?"rgba(255,255,255,0.04)":"rgba(0,0,0,0.03)"}:{}},X.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium flex-shrink-0 mt-0.5",style:{background:c.background,color:c.color,minWidth:"72px",textAlign:"center"}},c.label),X.default.createElement("div",{className:"min-w-0 flex-1"},X.default.createElement("div",{className:"text-sm break-words",style:{color:r.textPrimary}},s.label,s.output&&!l&&X.default.createElement("span",{style:{color:r.textMuted}}," \u201C",s.output.slice(0,160),s.output.length>160?"\u2026":"","\u201D")),X.default.createElement("div",{className:"text-xs mt-0.5 font-mono flex items-center gap-2 flex-wrap",style:{color:r.textMuted}},s.status==="started"?X.default.createElement("span",{className:"animate-pulse",style:{color:"#3b82f6"}},"running\u2026"):s.status==="awaiting"?X.default.createElement("span",{"data-testid":"runner-activity-awaiting",style:{color:"var(--color-warning-text)"}},"waiting for input"):X.default.createElement("span",{style:s.status==="error"?{color:"#ef4444"}:void 0},s.status==="error"?"failed":"\u2713",s.duration_ms!=null&&` ${X2(s.duration_ms)}`),s.at&&X.default.createElement("span",null,new Date(s.at).toLocaleTimeString()))),u&&X.default.createElement(FQ,{open:l,color:r.textMuted})),l&&X.default.createElement("div",{className:"ml-3 mt-1 mb-2 pl-4 space-y-2 border-l-2",style:{borderColor:c.color+"55"}},s.input&&X.default.createElement("div",null,X.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:r.textMuted}},"Input"),X.default.createElement("pre",{style:{...i,whiteSpace:"pre-wrap",maxHeight:"160px",overflowY:"auto"}},zQ(s.input))),s.output&&X.default.createElement("div",null,X.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:r.textMuted}},s.status==="error"?"Error":s.status==="awaiting"?"Asked":"Result"),X.default.createElement("pre",{style:{...i,whiteSpace:"pre-wrap",maxHeight:"224px",overflowY:"auto",...s.status==="error"?{background:t?"rgba(239,68,68,0.12)":"#fef2f2",color:t?"#fca5a5":"#b91c1c"}:{}}},zQ(s.output)))))}))}function yCe({run:e,darkMode:t,colors:r}){return e?X.default.createElement("div",{className:"flex items-center gap-3 flex-wrap text-xs",style:{color:r.textMuted}},X.default.createElement("span",{"data-testid":"runner-status",style:{display:"inline-flex"}},X.default.createElement(hd,{tone:XD[e.status]||"neutral",darkMode:t},e.status)),e.output_metadata?.model&&X.default.createElement("span",{className:"font-mono",title:"Model that generated this run"},e.output_metadata.provider,"/",e.output_metadata.model),e.duration_ms?X.default.createElement("span",null,X2(e.duration_ms)):null,e.total_tokens?X.default.createElement("span",null,e.total_tokens," tokens"):null,e.trace_id&&X.default.createElement("a",{href:Re(`/traces?trace=${e.trace_id}`),className:"font-mono hover:underline",style:{color:r.textSecondary},title:`${e.trace_id} \u2014 open in Traces`},"trace:",e.trace_id.slice(0,8)," \u2192")):null}function JD({agent:e,onBack:t,recorderUrl:r=null,freshConversation:n=!1}){let{darkMode:o}=ut(),a=Vi(o),i=e.action_prompts||e.actionPrompts||[],s=["ask",...i.map(ie=>ie.name).filter(Boolean)],[l,u]=(0,X.useState)("ask"),[c,d]=(0,X.useState)(""),[p,f]=(0,X.useState)([]),[m,y]=(0,X.useState)(!1),[b,g]=(0,X.useState)([]),[h,v]=(0,X.useState)(null),[x,S]=(0,X.useState)(null),[k,w]=(0,X.useState)(null),[_,A]=(0,X.useState)([]),[C,N]=(0,X.useState)(!1),[L,J]=(0,X.useState)(null),[B,K]=(0,X.useState)(null),[T,P]=(0,X.useState)(null),[I,M]=(0,X.useState)(null),[j,O]=(0,X.useState)({}),[F,V]=(0,X.useState)([]),[z,G]=(0,X.useState)([]),[q,oe]=(0,X.useState)(""),Me=(0,X.useCallback)(async()=>{try{let ie=await fetch("/api/sandboxes?sandbox_type=app_runtime");if(!ie.ok)return;let Ie=await ie.json(),st=w2(Ie.sandboxes);G(st),oe(zt=>S2(zt,st)||(st.length===1?st[0].value:""))}catch{}},[]);(0,X.useEffect)(()=>{Me()},[Me]);let fe=aw(e.tools||[]),[le,R]=(0,X.useState)(null),[te,He]=(0,X.useState)(!1),[_e,D]=(0,X.useState)(null),[Y,E]=(0,X.useState)(!1),[$,ee]=(0,X.useState)(!1),[U,me]=(0,X.useState)(null),[et,rt]=(0,X.useState)(""),[ge,ue]=(0,X.useState)(!1),[Fe,Je]=(0,X.useState)(null),ot=(0,X.useRef)(null),Tt=(0,X.useRef)(!n),Lt=(0,X.useRef)(null),Hr=(0,X.useRef)(0),Io=(0,X.useRef)(null),xs=(0,X.useRef)(!1),Di=(0,X.useRef)(!0),yt=(0,X.useRef)(null),to=(0,X.useRef)([]),bs=(0,X.useRef)(null),ws=(0,X.useRef)(null),ve=(0,X.useRef)(null),nt=(0,X.useRef)(null),pt=YD(h,r),Qt=(x?.messages||[]).filter(ie=>pCe.includes(ie.role));(0,X.useEffect)(()=>{yt.current=B},[B]),(0,X.useEffect)(()=>{to.current=p},[p]),(0,X.useEffect)(()=>{Di.current=!0,Hn();let ie=zY(window.location.search);return ie&&Tf(ie),()=>{Di.current=!1,Hr.current+=1,Pl(yt.current),Pl({attachments:to.current}),K(null),f([])}},[e.id]),(0,X.useEffect)(()=>{co(l)},[e.id,l]),(0,X.useEffect)(()=>{Lt.current=h,h?nn(h):(S(null),w(null))},[h]),(0,X.useEffect)(()=>{let ie=ws.current;ie&&(ie.scrollTop=ie.scrollHeight)},[Qt.length,B,L?.logs?.length,L?.input_requests?.length,U,T]),(0,X.useEffect)(()=>{if(!$)return;let ie=Ie=>{nt.current&&!nt.current.contains(Ie.target)&&ee(!1)};return document.addEventListener("mousedown",ie),()=>document.removeEventListener("mousedown",ie)},[$]);let Hn=async()=>{try{let Ie=await(await fetch(`/api/agents/${e.id}/runs?per_page=10`)).json();A(Ie.runs||[])}catch(ie){console.error("Failed to load runs:",ie)}},co=async ie=>{try{let Ie=await fetch(`/api/agents/${e.id}/conversations?action_name=${encodeURIComponent(ie)}`);if(!Ie.ok)throw new Error(`HTTP ${Ie.status}`);let zt=(await Ie.json()).conversations||[];g(zt),v(kn=>kn&&(ot.current===kn||zt.some(ai=>ai.id===kn))?kn:Tt.current?zt[0]?.id??null:null)}catch(Ie){console.error("Failed to load conversations:",Ie),g([])}},nn=async ie=>{try{let Ie=await fetch(`/api/interactions/${ie}`);if(!Ie.ok)throw new Error(Ie.status===404?"Conversation not found":`HTTP ${Ie.status}`);let st=await Ie.json();if(Lt.current!==ie)return;S(st.interaction),w(null)}catch(Ie){if(Lt.current!==ie)return;S(null),w(Ie.message)}},Pa=async()=>{let ie=await fetch(`/api/agents/${e.id}/conversations`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action_name:l})}),Ie=await G0(ie);if(!ie.ok||!Ie.conversation)throw new Error(Ie.error||`Could not start a conversation (HTTP ${ie.status})`);let st=Ie.conversation;return g(zt=>[st,...zt.filter(kn=>kn.id!==st.id)]),ot.current=st.id,v(st.id),st.id},Ma=()=>Lt.current?Promise.resolve(Lt.current):Pa(),Ss=ie=>{ot.current=null,u(ie)},po=ie=>{xs.current=ie,N(ie)},Wu=()=>{Io.current?.waiting&&(Io.current=null,po(!1))},ks=()=>{Wu(),J(null),M(null),O({}),V([])},Hu=ie=>{let Ie=ie?Number(ie):null;Ie!==Lt.current&&ks(),ot.current=Ie,v(Ie),P(null)},ro=async()=>{if(!C)try{await Pa(),w(null),P(null),ks(),Pl(yt.current),K(null),me(null)}catch(ie){w(ie.message)}},Pl=ie=>{(ie?.attachments||[]).forEach(Ie=>{Ie.url&&Ie.url.startsWith("blob:")&&URL.revokeObjectURL(Ie.url)})},qh=ie=>{let Ie=Array.from(ie||[]).filter(Boolean);Ie.length!==0&&f(st=>[...st,...Ie.map(zt=>({file:zt,filename:zt.name,content_type:zt.type||"application/octet-stream",byte_size:zt.size,kind:JG(zt),url:zt.type&&zt.type.startsWith("image/")?URL.createObjectURL(zt):null}))])},fb=ie=>{f(Ie=>{let st=Ie[ie];return st?.url&&URL.revokeObjectURL(st.url),Ie.filter((zt,kn)=>kn!==ie)})},mb=(ie,Ie)=>{Pl(yt.current),K(null),Hn();let st=ys(ie)??Ie;st&&(st!==Lt.current?(ot.current=st,v(st)):nn(st),co(l))},_A=(ie,Ie)=>{Io.current=null,po(!1),V([]),mb(ie,Ie)},Qe=(ie,Ie)=>{Io.current={id:ie.id,contextId:ys(ie)??Ie,waiting:!0},mb(ie,Ie),QC()},Ia=(ie,Ie)=>{if(!Di.current)return;let st=++Hr.current,zt=Date.now(),kn=async()=>{if(Hr.current===st){try{let ai=await fetch(`/api/runs/${ie}`);if(ai.ok){let Do=await ai.json();if(Hr.current!==st)return;J(Do.run);let $a=yI(Do.run);if($a==="finished"){_A(Do.run,Ie);return}if($a==="awaiting"){Qe(Do.run,Ie);return}}}catch{}Date.now()-ztai&&{...ai,status:"failed",error_message:"Timed out waiting for the run to finish."}),M("Timed out waiting for the run to finish."))}};kn()},Kh=async({text:ie,files:Ie,fromComposer:st=!1})=>{let zt=(ie||"").trim();if(!zt&&Ie.length===0||C)return;M(null),P(null),me(null),po(!0),O({}),V([]),J({status:"pending",input_prompt:zt,output:"",logs:[],started_at:new Date().toISOString()}),Pl(yt.current),K({content:zt||"(see attached files)",attachments:Ie.map(({file:Do,...$a})=>$a)}),st&&(d(""),f([]));let kn=Lt.current;if(!kn)try{kn=await Pa()}catch(Do){M(`${Do.message} \u2014 running without a pinned conversation.`)}let ai=()=>{st&&(d(zt),f(Ie)),K(null)};try{let Do=new FormData;Do.append("prompt",zt),Do.append("action_name",l),kn&&Do.append("params[context_id]",String(kn)),q&&Do.append("sandbox_id",q),Ie.forEach(({file:Ed})=>Do.append("attachments[]",Ed,Ed.name));let $a=await fetch(`/api/agents/${e.id}/execute`,{method:"POST",body:Do}),_s=await G0($a);if(_s.code==="sandbox_refused"&&Me(),$a.status===402&&_s.upgrade_required){R(_s.usage),J(Ed=>({...Ed,status:"failed",error_message:_s.message||"Plan limit reached"})),po(!1),ai();return}if(!$a.ok)throw new Error(_s.error||"Run failed");Ia(_s.run.id,ys(_s.run)??kn)}catch(Do){J($a=>({...$a,status:"failed",error_message:Do.message})),po(!1),ai()}},fo=()=>Kh({text:c,files:p,fromComposer:!0}),Vh=(ie,Ie)=>{let st=Io.current;!st||String(st.id)!==String(ie.run_id)||(V(zt=>[...zt.filter(kn=>kn.request.id!==ie.id),{request:ie,outcome:Ie}]),Io.current={...st,waiting:!1},Ia(st.id,st.contextId))},va=ie=>{let Ie=yI(ie);Ie==="finished"||xs.current||(M(null),O({}),V([]),J(ie),po(!0),Ie==="awaiting"?Qe(ie,ys(ie)):Ia(ie.id,ys(ie)))},Da=(ie,Ie)=>{ot.current=ie,Ie&&s.includes(Ie)&&Ie!==l&&u(Ie),v(ie)},Tf=async ie=>{try{let Ie=await fetch(`/api/runs/${ie}`);if(!Ie.ok)return;let st=await Ie.json();if(!Di.current||!st.run||String(st.agent?.id)!==String(e.id))return;let zt=ys(st.run);zt&&Da(zt,st.run.action_name),va(st.run)}catch(Ie){console.error("Failed to open the linked run:",Ie)}},ja=ie=>{!ie||!ie.text||Kh({text:ie.text,files:[]})},Gh=ie=>{ie.key==="Enter"&&(ie.metaKey||ie.ctrlKey)&&(ie.preventDefault(),fo())},wd=async(ie,Ie)=>{let st=Lt.current,zt=await fetch(`/api/interactions/${st}/messages/${ie.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:Ie})}),kn=await G0(zt);if(!zt.ok)throw new Error(kn.error||`Could not save the message (HTTP ${zt.status})`);await nn(st)},Sd=async ie=>{let Ie=Lt.current;try{let st=await fetch(`/api/interactions/${Ie}/messages/${ie.id}`,{method:"DELETE"});if(!st.ok){let zt=await G0(st);throw new Error(zt.error||`Could not delete the message (HTTP ${st.status})`)}w(null),await nn(Ie),co(l)}catch(st){w(st.message)}},mo=ie=>{ee(!1),me(ie),rt(""),Je(null)},Ml=async()=>{let ie=et.trim();if(!(!ie||ge)){ue(!0),Je(null);try{let Ie=await Ma(),st=await fetch(`/api/interactions/${Ie}/messages`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({role:U,content:ie})}),zt=await G0(st);if(!st.ok)throw new Error(zt.error||`Could not add the message (HTTP ${st.status})`);rt(""),me(null),await nn(Ie),co(l)}catch(Ie){Je(Ie.message)}finally{ue(!1)}}},gb=async ie=>{let Ie=ie;if(ys(ie)==null||ie.status==="awaiting_input")try{let zt=await fetch(`/api/runs/${ie.id}`);zt.ok&&(Ie=(await zt.json()).run)}catch(zt){console.error("Failed to load run details:",zt)}let st=ys(Ie);st?(P(null),st!==Lt.current&&ks(),Da(st,Ie.action_name||ie.action_name),va(Ie)):P({...Ie,output:Ie.output??Ie.output_preview,error_message:Ie.error_message??Ie.error}),bs.current?.scrollIntoView({behavior:"smooth",block:"start"})},Yh=async()=>{He(!0),D(null);try{await Ph({planSlug:"pro"})}catch(ie){D(ie.message),He(!1)}},kd=window.ACTIVE_AGENT_DASHBOARD?.meta?.upgradeUrl,hb=i.find(ie=>ie.name===l)?.prompt,_d=[e.instructions,l==="ask"?null:hb].map(ie=>(ie||"").trim()).filter(Boolean).join(` -`)||x?.instructions||"",Xh=b.slice();h&&!Xh.some(ie=>ie.id===h)&&Xh.unshift({id:h,message_count:Qt.length});let _A=(c.trim().length>0||p.length>0)&&!C,Cd=L?.status==="awaiting_input",yb=Cd?ph(L.input_requests):[],CA=new Set(W.map(({request:ie})=>ie.id)),Zh=L&&!C&&L.status==="failed",Of=L&&!C&&L.status==="complete"&&!hs(L)&&!h,Il={background:a.cardBg,border:`1px solid ${a.cardBorder}`,borderRadius:"12px"},Ad={borderBottom:`1px solid ${a.cardBorder}`},Jh={padding:"6px 10px",borderRadius:"8px",border:`1px solid ${a.inputBorder}`,background:a.inputBg,color:a.textPrimary,fontSize:"13px",fontFamily:Pt.mono,maxWidth:"260px"},Qh={width:"100%",padding:"10px 12px",borderRadius:"8px",border:`1px solid ${m?Qo:a.inputBorder}`,background:a.inputBg,color:a.textPrimary,fontFamily:"inherit",fontSize:"13px",resize:"vertical"},qu=Ln("system",o),vb=HC(o);return X.default.createElement("div",{className:"grid grid-cols-3 gap-6 h-full"},X.default.createElement("div",{className:"col-span-2 flex flex-col gap-4 min-w-0"},le&&X.default.createElement("div",{className:"bg-amber-50 border border-amber-200 rounded-xl p-4 flex items-center justify-between gap-4"},X.default.createElement("div",null,X.default.createElement("p",{className:"font-medium text-amber-900"},"Monthly run limit reached"),X.default.createElement("p",{className:"text-sm text-amber-700 mt-0.5"},"You've used ",le.runs_used," of ",le.runs_limit," runs on the"," ",le.plan||"free"," plan. Upgrade to keep running agents."),_e&&X.default.createElement("p",{className:"text-sm text-red-600 mt-1"},_e)),X.default.createElement("div",{className:"flex items-center gap-2 flex-shrink-0"},kd&&X.default.createElement("a",{href:kd,className:"px-4 py-2 text-sm text-amber-800 hover:text-amber-900"},"See plans"),X.default.createElement("button",{onClick:Yh,disabled:te,className:"px-4 py-2 text-sm bg-amber-500 text-white rounded-lg hover:bg-amber-600 transition-colors disabled:opacity-50"},te?"Redirecting\u2026":"Upgrade to Pro"))),X.default.createElement("div",{"data-testid":"runner-toolbar",style:Il,className:"p-4 flex items-center gap-3 flex-wrap"},X.default.createElement(In,{size:40}),X.default.createElement("div",{className:"min-w-0"},X.default.createElement("div",{className:"font-semibold truncate",style:{color:a.textPrimary}},e.name),X.default.createElement("div",{className:"text-xs font-mono",style:{color:a.textSecondary}},e.provider," / ",e.model)),X.default.createElement("div",{className:"flex items-center gap-2 flex-wrap ml-auto"},X.default.createElement("select",{"data-testid":"runner-action-select",value:l,onChange:ie=>ws(ie.target.value),disabled:C,className:"aa-field",style:Jh,title:"Agent action to invoke"},s.map(ie=>X.default.createElement("option",{key:ie,value:ie},"#",ie))),X.default.createElement("select",{"data-testid":"runner-conversation-select",value:h??"",onChange:ie=>Hu(ie.target.value),disabled:C,className:"aa-field",style:Jh,title:"Conversation to continue"},X.default.createElement("option",{value:""},"New conversation on first run"),Xh.map(ie=>X.default.createElement("option",{key:ie.id,value:ie.id},"Conversation #",ie.id," \xB7 ",ie.message_count??0," message",ie.message_count===1?"":"s"))),X.default.createElement(fa,{testId:"runner-new-conversation",variant:"secondary",size:"sm",colors:a,onClick:ro,disabled:C,title:"Start an empty conversation for this action"},"+ New conversation"),X.default.createElement(fa,{testId:"runner-back",variant:"secondary",size:"sm",colors:a,onClick:t},"\u2190 Back to editor"))),X.default.createElement("div",{"data-testid":"runner-context",ref:xs,style:Il,className:"flex flex-col overflow-hidden"},X.default.createElement("div",{className:"px-4 py-3 flex items-center justify-between gap-3 flex-wrap",style:Ad},X.default.createElement("div",{className:"flex items-center gap-2 min-w-0"},X.default.createElement("h3",{className:"font-medium",style:{color:a.textPrimary}},"Context"),x&&X.default.createElement("span",{className:"text-xs font-mono",style:{color:a.textMuted}},"#",x.id," \xB7 ",Qt.length," message",Qt.length===1?"":"s"),pt==="recording"&&X.default.createElement("span",{"data-testid":"runner-recording-notice",className:"text-xs inline-flex items-center gap-1",style:{color:a.textMuted},title:"This view is recorded for the conversation's replay. Field values are masked and keys are left out; the conversation is recorded as shown."},X.default.createElement("span",{"aria-hidden":"true",style:{color:"#ef4444"}},"\u25CF"),"Recording"),pt==="limit"&&X.default.createElement("span",{"data-testid":"runner-recording-stopped",className:"text-xs",style:{color:a.textMuted},title:"This visit reached the size limit for a recording, so the rest of it is not recorded. Open the conversation again to start a new recording."},"Recording stopped")),X.default.createElement("div",{className:"flex items-center gap-3 flex-wrap"},X.default.createElement(sCe,{run:L,darkMode:o,colors:a}),x&&X.default.createElement(fa,{testId:"runner-replay",variant:"secondary",size:"sm",colors:a,onClick:()=>lt(dh("context",x.id)),disabled:C,title:"Replay this conversation: its messages, model calls and tool calls on one timeline"},"Replay"),X.default.createElement("div",{className:"relative",ref:nt},X.default.createElement(fa,{testId:"runner-add-message",variant:"secondary",size:"sm",colors:a,onClick:()=>ee(ie=>!ie),disabled:C,title:"Insert a message into the context without running"},"+ Add message"),$&&X.default.createElement("div",{className:"absolute right-0 mt-1 z-10 py-1 rounded-lg shadow-lg",style:{background:a.cardBg,border:`1px solid ${a.borderStrong}`,minWidth:"180px"}},[["user","runner-add-user-message","User message"],["assistant","runner-add-assistant-message","Assistant message"]].map(([ie,Ie,st])=>X.default.createElement("button",{key:ie,type:"button","data-testid":Ie,onClick:()=>mo(ie),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-black/5",style:{color:a.textCell,background:"none",border:"none",cursor:"pointer"}},st)))))),X.default.createElement("div",{ref:bs,className:"p-4 overflow-auto",style:{maxHeight:"60vh"}},X.default.createElement("div",{"data-testid":"runner-system-row",className:"flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 cursor-pointer",onClick:()=>E(ie=>!ie),title:G?"Collapse system instructions":"Show system instructions"},X.default.createElement("span",{className:"flex flex-col gap-1 flex-shrink-0 mt-0.5",style:{minWidth:"72px"}},X.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:qu.background,color:qu.color,textAlign:"center"}},qu.label)),X.default.createElement("div",{className:"min-w-0 flex-1"},_d?G?X.default.createElement("pre",{style:{...vb,whiteSpace:"pre-wrap",maxHeight:"260px",overflowY:"auto"}},_d):X.default.createElement("div",{className:"text-sm truncate",style:{color:a.textSecondary}},_d.split(` -`).find(ie=>ie.trim())||""):X.default.createElement("div",{className:"text-sm",style:{color:a.textMuted}},"No system instructions"),X.default.createElement("div",{className:"text-xs mt-0.5 font-mono",style:{color:a.textMuted}},"read-only \xB7 Edit in the Instructions tab")),X.default.createElement(PQ,{open:G,color:a.textMuted})),k&&X.default.createElement("div",{className:"text-sm mt-3",style:{color:"#dc2626"}},k),Qt.length>0?X.default.createElement("div",{className:"mt-3"},X.default.createElement(ps,{messages:Qt,darkMode:o,testIdPrefix:"runner-message",onUiAction:Da,onEditMessage:wd,onDeleteMessage:Sd})):!B&&!T&&!Zh&&X.default.createElement("div",{"data-testid":"runner-context-empty",className:"text-sm text-center py-8",style:{color:a.textMuted}},"No messages yet \u2014 say something below to test the agent as a user."),B&&X.default.createElement("div",{"data-testid":"runner-pending-turn",className:"flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 mt-3"},X.default.createElement("span",{className:"flex flex-col gap-1 flex-shrink-0 mt-0.5",style:{minWidth:"72px"}},X.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:Ln("user",o).background,color:Ln("user",o).color,textAlign:"center"}},"User")),X.default.createElement("div",{className:"min-w-0 flex-1"},X.default.createElement("div",{className:"text-sm break-words whitespace-pre-wrap",style:{color:a.textPrimary}},B.content),X.default.createElement(qC,{attachments:B.attachments,darkMode:o}))),L&&(C||YD(L).length>0)&&X.default.createElement("div",{className:"mt-3 space-y-2"},X.default.createElement(iCe,{run:L,darkMode:o,colors:a,expanded:j,onToggle:ie=>M(Ie=>({...Ie,[ie]:!Ie[ie]}))}),C&&!Cd&&X.default.createElement("div",{className:"flex items-center gap-2 text-sm",style:{color:a.textSecondary}},X.default.createElement("span",{className:"animate-pulse"},"\u25CF"),X.default.createElement("span",null,YD(L).length>0?"Working\u2026":"Starting run\u2026"))),(yb.length>0||W.length>0)&&X.default.createElement("div",{"data-testid":"runner-input-requests",className:"mt-3 space-y-2"},Cd&&X.default.createElement("div",{className:"text-sm",style:{color:a.textSecondary}},"Paused for input: answer to continue this run."),yb.filter(ie=>!CA.has(ie.id)).map(ie=>X.default.createElement(Qp,{key:ie.id,request:ie,showRunLink:!1,onSettled:Vh})),W.map(({request:ie,outcome:Ie})=>X.default.createElement(Qp,{key:ie.id,request:ie,initialOutcome:Ie,showRunLink:!1}))),I&&X.default.createElement("div",{className:"text-xs mt-3",style:{color:"#d97706"}},I),Zh&&L.error_message&&X.default.createElement("div",{className:"mt-3 rounded-lg p-3 text-sm",style:{background:o?"rgba(239,68,68,0.12)":"#fef2f2",color:o?"#fca5a5":"#b91c1c"}},X.default.createElement("div",{className:"font-semibold mb-1"},"Run failed"),X.default.createElement("pre",{className:"whitespace-pre-wrap font-mono text-xs",style:{margin:0}},L.error_message)),Of&&X.default.createElement("div",{className:"mt-3 rounded-lg p-3 text-sm",style:{background:a.innerBg,color:a.textPrimary}},X.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:a.textMuted}},"Output"),X.default.createElement(Us,{text:L.output||"No output",darkMode:o,onUiAction:Da})),T&&X.default.createElement("div",{"data-testid":"runner-inspected-run",className:"mt-3 rounded-lg p-3",style:{background:a.innerBg,border:`1px solid ${a.cardBorder}`}},X.default.createElement("div",{className:"flex items-center justify-between gap-3 flex-wrap mb-2"},X.default.createElement("div",{className:"flex items-center gap-2 text-xs font-mono",style:{color:a.textMuted}},X.default.createElement("span",{style:{color:a.textPrimary}},"Run #",T.id),X.default.createElement(hd,{tone:GD[T.status]||"neutral",darkMode:o},T.status),T.output_metadata?.model&&X.default.createElement("span",null,T.output_metadata.provider,"/",T.output_metadata.model),T.duration_ms?X.default.createElement("span",null,Y2(T.duration_ms)):null,T.trace_id&&X.default.createElement("a",{href:Re(`/traces?trace=${T.trace_id}`),className:"hover:underline",style:{color:a.textSecondary}},"trace:",T.trace_id.slice(0,8)," \u2192"),X.default.createElement("span",null,"\xB7 no conversation attached")),X.default.createElement("button",{type:"button",onClick:()=>O(null),className:"text-xs font-mono",style:{color:a.textMuted,background:"none",border:"none",cursor:"pointer"},title:"Close"},"[x]")),(T.input_prompt||T.input_preview)&&X.default.createElement("div",{className:"text-sm mb-2 whitespace-pre-wrap",style:{color:a.textSecondary}},T.input_prompt||T.input_preview),T.error_message?X.default.createElement("pre",{className:"whitespace-pre-wrap font-mono text-xs",style:{margin:0,color:o?"#fca5a5":"#b91c1c"}},T.error_message):X.default.createElement("div",{className:"text-sm",style:{color:a.textPrimary}},X.default.createElement(Us,{text:T.output||"No output",darkMode:o}))),F&&X.default.createElement("div",{className:"mt-3 rounded-lg p-3",style:{border:`1px dashed ${a.borderStrong}`}},X.default.createElement("div",{className:"flex items-center gap-2 mb-2"},X.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:Ln(F,o).background,color:Ln(F,o).color}},Ln(F,o).label),X.default.createElement("span",{className:"text-xs",style:{color:a.textMuted}},"Added to the context without running the agent")),X.default.createElement("textarea",{"data-testid":"runner-inline-composer",value:et,onChange:ie=>rt(ie.target.value),onKeyDown:ie=>{ie.key==="Escape"&&me(null),ie.key==="Enter"&&(ie.metaKey||ie.ctrlKey)&&Ml()},placeholder:F==="user"?"What the user said\u2026":"What the assistant replied\u2026",rows:3,autoFocus:!0,className:"aa-field",style:{...Qh,border:`1px solid ${a.inputBorder}`}}),X.default.createElement("div",{className:"flex items-center gap-2 mt-2 flex-wrap"},X.default.createElement(fa,{testId:"runner-inline-submit",variant:"primary",size:"sm",colors:a,onClick:Ml,disabled:ge||!et.trim()},ge?"Adding\u2026":`Add ${F} message`),X.default.createElement(fa,{variant:"secondary",size:"sm",colors:a,onClick:()=>me(null),disabled:ge},"Cancel"),Fe&&X.default.createElement("span",{className:"text-xs",style:{color:"#dc2626"}},Fe))))),X.default.createElement("div",{style:Il,className:"p-4"},X.default.createElement("div",{onDragOver:ie=>{ie.preventDefault(),m||y(!0)},onDragLeave:()=>y(!1),onDrop:ie=>{ie.preventDefault(),y(!1),C||qh(ie.dataTransfer?.files)}},X.default.createElement("textarea",{"data-testid":"runner-prompt",value:c,onChange:ie=>d(ie.target.value),onKeyDown:Gh,placeholder:"Message the agent as a user\u2026 (\u2318/Ctrl+Enter to run \xB7 drop files here to attach)",rows:3,disabled:C,className:"aa-field",style:Qh})),X.default.createElement(qC,{attachments:p,darkMode:o,testId:"runner-attachment-chip",onRemove:(ie,Ie)=>fb(Ie),removeTestId:"runner-attachment-remove"}),X.default.createElement("div",{className:"flex items-center justify-between gap-3 flex-wrap mt-3"},X.default.createElement("div",{className:"flex items-center gap-3 flex-wrap"},X.default.createElement("input",{ref:ve,"data-testid":"runner-attach-input",type:"file",multiple:!0,style:{display:"none"},onChange:ie=>{qh(ie.target.files),ie.target.value=""}}),X.default.createElement(fa,{testId:"runner-attach",variant:"secondary",size:"sm",colors:a,onClick:()=>ve.current?.click(),disabled:C,title:"Attach images, PDFs, or text files to this message"},"\u{1F4CE} Attach files"),X.default.createElement("span",{className:"text-xs",style:{color:a.textMuted}},"Press ",X.default.createElement("kbd",{className:"px-1.5 py-0.5 rounded",style:{background:a.mutedBg,color:a.textSecondary}},"\u2318")," + ",X.default.createElement("kbd",{className:"px-1.5 py-0.5 rounded",style:{background:a.mutedBg,color:a.textSecondary}},"Enter")," to run")),X.default.createElement(fa,{testId:"runner-run",variant:"primary",colors:a,onClick:fo,disabled:!_A},C&&Cd?X.default.createElement(X.default.Fragment,null,X.default.createElement("span",{style:{fontFamily:Pt.mono}},"[?]")," Waiting for input"):C?X.default.createElement(X.default.Fragment,null,X.default.createElement("span",{className:"animate-spin inline-block",style:{fontFamily:Pt.mono}},"[~]")," Running\u2026"):X.default.createElement(X.default.Fragment,null,X.default.createElement("span",{style:{fontFamily:Pt.mono}},"[>]")," Run"))))),X.default.createElement("div",{className:"space-y-4 min-w-0"},X.default.createElement("div",{style:Il,className:"p-4"},X.default.createElement("h4",{className:"font-medium mb-3",style:{color:a.textPrimary}},"Configuration"),X.default.createElement("dl",{className:"space-y-2 text-sm"},X.default.createElement("div",{className:"flex justify-between"},X.default.createElement("dt",{style:{color:a.textSecondary}},"Temperature"),X.default.createElement("dd",{style:{color:a.textPrimary}},e.modelConfig?.temperature||e.model_config?.temperature||.7)),X.default.createElement(OQ,{label:"Tools",names:e.tools||[],colors:a}),X.default.createElement(OQ,{label:"MCP",names:(e.mcp_servers||e.mcpServers||[]).map(aCe),colors:a}),X.default.createElement("div",{className:"flex justify-between items-center gap-3"},X.default.createElement("dt",{className:"shrink-0",style:{color:a.textSecondary}},"Checkout"),X.default.createElement("dd",{className:"min-w-0"},X.default.createElement("select",{"data-testid":"runner-checkout",value:q,onChange:ie=>oe(ie.target.value),onFocus:Me,className:"text-xs rounded border px-1 py-0.5 max-w-[12rem]",style:{background:a.cardBg,borderColor:a.cardBorder,color:a.textPrimary}},X.default.createElement("option",{value:""},"None"),z.map(ie=>X.default.createElement("option",{key:ie.value,value:ie.value},ie.label))))),fe&&!q&&X.default.createElement("p",{className:"text-xs","data-testid":"runner-checkout-hint",style:{color:a.textMuted}},z.length?"Choose a checkout: the terminal, filesystem, edit and database tools act in it.":"The terminal, filesystem, edit and database tools act in a checkout. Boot one from a project's page, then choose it here."),X.default.createElement("div",{className:"flex justify-between items-center"},X.default.createElement("dt",{style:{color:a.textSecondary}},"Status"),X.default.createElement("dd",null,X.default.createElement(hd,{tone:e.status==="active"?"success":"neutral",darkMode:o},e.status)))),e.instructions&&X.default.createElement("div",{className:"mt-3 pt-3",style:{borderTop:`1px solid ${a.cardBorder}`}},X.default.createElement("div",{className:"text-xs mb-1.5",style:{color:a.textSecondary}},"System Instructions"),X.default.createElement("p",{className:"text-xs whitespace-pre-wrap max-h-44 overflow-y-auto font-mono leading-relaxed",style:{color:a.textCell}},e.instructions))),X.default.createElement("div",{style:Il,className:"overflow-hidden"},X.default.createElement("div",{className:"px-4 py-3",style:Ad},X.default.createElement("h4",{className:"font-medium",style:{color:a.textPrimary}},"Recent Runs")),X.default.createElement("div",{className:"max-h-64 overflow-auto"},_.length>0?X.default.createElement("div",null,_.map(ie=>X.default.createElement("div",{key:ie.id,"data-testid":"runner-recent-run",className:"px-4 py-3 cursor-pointer hover:bg-black/5",style:{borderBottom:`1px solid ${a.cardBorder}`},onClick:()=>gb(ie),title:hs(ie)?"Open this run\u2019s conversation":"Show this run\u2019s output"},X.default.createElement("div",{className:"flex items-center justify-between mb-1"},X.default.createElement(hd,{tone:GD[ie.status]||"neutral",darkMode:o},ie.status),X.default.createElement("span",{className:"text-xs",style:{color:a.textMuted}},Y2(ie.duration_ms))),X.default.createElement("p",{className:"text-sm truncate",style:{color:a.textCell}},ie.input_preview||ie.input_prompt?.substring(0,50)),X.default.createElement("p",{className:"text-xs mt-1 flex items-center gap-2 flex-wrap",style:{color:a.textMuted}},ie.model&&X.default.createElement("span",{className:"px-1.5 py-0.5 rounded font-mono",style:{background:a.mutedBg,color:a.textSecondary}},ie.model),hs(ie)&&X.default.createElement("span",{className:"font-mono"},"#",hs(ie)),X.default.createElement("span",null,new Date(ie.created_at).toLocaleString()))))):X.default.createElement("div",{className:"px-4 py-8 text-center text-sm",style:{color:a.textMuted}},"No runs yet"))),X.default.createElement("div",{style:Il,className:"p-4"},X.default.createElement("h4",{className:"font-medium mb-3",style:{color:a.textPrimary}},"Example Prompts"),X.default.createElement("div",{className:"space-y-2"},tCe.map(ie=>X.default.createElement("button",{key:ie,type:"button","data-testid":"runner-example-prompt",onClick:()=>d(ie),className:"w-full text-left px-3 py-2 text-sm rounded-lg transition-colors hover:bg-black/5",style:{color:a.textCell,border:`1px solid ${a.cardBorder}`,background:"transparent",cursor:"pointer"}},ie))))))}var Ge=Z(J()),X2=e=>new Date(`${e}T00:00:00`),lCe=[{value:7,label:"7 days"},{value:14,label:"14 days"},{value:30,label:"30 days"},{value:90,label:"90 days"}];function ZD({onSelectAgent:e}){let[t,r]=(0,Ge.useState)(null),[n,o]=(0,Ge.useState)(!0),[a,i]=(0,Ge.useState)(30);(0,Ge.useEffect)(()=>{s()},[a]);let s=async()=>{o(!0);try{let f=await(await fetch(`/api/analytics?days=${a}`)).json();r(f)}catch(p){console.error("Failed to load analytics:",p)}finally{o(!1)}},l=p=>p?p>=1e6?`${(p/1e6).toFixed(1)}M`:p>=1e3?`${(p/1e3).toFixed(1)}K`:p.toString():"0",u=p=>p?p<1e3?`${p}ms`:`${(p/1e3).toFixed(2)}s`:"-";if(n&&!t)return Ge.default.createElement("div",{className:"flex items-center justify-center h-64"},Ge.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let c=t?.charts?.runs_by_day?.length>0?Math.max(...t.charts.runs_by_day.map(p=>p.count)):1,d=t?.charts?.tokens_by_day?.length>0?Math.max(...t.charts.tokens_by_day.map(p=>p.tokens)):1;return Ge.default.createElement("div",{className:"space-y-6"},Ge.default.createElement("div",{className:"flex items-center justify-between"},Ge.default.createElement("div",null,Ge.default.createElement("h1",{className:"text-2xl font-bold text-gray-900"},"Analytics Dashboard"),Ge.default.createElement("p",{className:"text-sm text-gray-500"},"Overview of all your agents' performance")),Ge.default.createElement("select",{value:a,onChange:p=>i(Number(p.target.value)),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},lCe.map(p=>Ge.default.createElement("option",{key:p.value,value:p.value},"Last ",p.label)))),Ge.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-5 gap-4"},Ge.default.createElement(Y0,{title:"Total Agents",value:t?.summary?.total_agents||0,subtitle:`${t?.summary?.active_agents||0} active`,color:"rose"}),Ge.default.createElement(Y0,{title:"Total Runs",value:t?.summary?.total_runs||0,subtitle:`${t?.period_days} day period`,color:"blue"}),Ge.default.createElement(Y0,{title:"Success Rate",value:`${t?.summary?.success_rate||0}%`,subtitle:`${t?.summary?.completed_runs||0} completed`,color:"green"}),Ge.default.createElement(Y0,{title:"Avg Duration",value:u(t?.summary?.avg_duration_ms),subtitle:"per run",color:"purple"}),Ge.default.createElement(Y0,{title:"Total Tokens",value:l(t?.summary?.total_tokens),subtitle:`${l(t?.summary?.avg_tokens_per_run)}/run avg`,color:"amber"})),Ge.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6"},Ge.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},Ge.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Runs Over Time"),t?.charts?.runs_by_day?.length>0?Ge.default.createElement("div",{className:"h-48"},Ge.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},t.charts.runs_by_day.map((p,f)=>Ge.default.createElement("div",{key:p.date,className:"flex-1 flex flex-col items-center group"},Ge.default.createElement("div",{className:"relative w-full"},Ge.default.createElement("div",{className:"w-full bg-red-500 rounded-t transition-all hover:bg-red-600",style:{height:`${p.count/c*150}px`,minHeight:p.count>0?"4px":"0"}}),Ge.default.createElement("div",{className:"absolute -top-8 left-1/2 transform -translate-x-1/2 bg-gray-800 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap z-10"},p.count," runs"))))),Ge.default.createElement("div",{className:"flex justify-between mt-2 text-xs text-gray-400"},Ge.default.createElement("span",null,t.charts.runs_by_day[0]?.date&&X2(t.charts.runs_by_day[0].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})),Ge.default.createElement("span",null,t.charts.runs_by_day[t.charts.runs_by_day.length-1]?.date&&X2(t.charts.runs_by_day[t.charts.runs_by_day.length-1].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))):Ge.default.createElement("div",{className:"h-48 flex items-center justify-center text-gray-400"},"No runs in this period")),Ge.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},Ge.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Token Usage Over Time"),t?.charts?.tokens_by_day?.length>0?Ge.default.createElement("div",{className:"h-48"},Ge.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},t.charts.tokens_by_day.map((p,f)=>Ge.default.createElement("div",{key:p.date,className:"flex-1 flex flex-col items-center group"},Ge.default.createElement("div",{className:"relative w-full"},Ge.default.createElement("div",{className:"w-full bg-purple-500 rounded-t transition-all hover:bg-purple-600",style:{height:`${p.tokens/d*150}px`,minHeight:p.tokens>0?"4px":"0"}}),Ge.default.createElement("div",{className:"absolute -top-8 left-1/2 transform -translate-x-1/2 bg-gray-800 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap z-10"},l(p.tokens)," tokens"))))),Ge.default.createElement("div",{className:"flex justify-between mt-2 text-xs text-gray-400"},Ge.default.createElement("span",null,t.charts.tokens_by_day[0]?.date&&X2(t.charts.tokens_by_day[0].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})),Ge.default.createElement("span",null,t.charts.tokens_by_day[t.charts.tokens_by_day.length-1]?.date&&X2(t.charts.tokens_by_day[t.charts.tokens_by_day.length-1].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))):Ge.default.createElement("div",{className:"h-48 flex items-center justify-center text-gray-400"},"No token usage in this period"))),Ge.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6"},Ge.default.createElement("div",{className:"lg:col-span-2 bg-white rounded-xl border border-gray-200 p-6"},Ge.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Top Agents"),t?.top_agents?.length>0?Ge.default.createElement("div",{className:"space-y-3"},t.top_agents.map((p,f)=>Ge.default.createElement("div",{key:p.id,onClick:()=>e?.(p),className:"flex items-center space-x-4 p-3 rounded-lg hover:bg-gray-50 cursor-pointer transition-colors"},Ge.default.createElement("div",{className:"w-8 h-8 rounded-full bg-red-100 flex items-center justify-center text-red-600 font-semibold"},f+1),Ge.default.createElement("div",{className:"flex-1 min-w-0"},Ge.default.createElement("p",{className:"font-medium text-gray-900 truncate"},p.name),Ge.default.createElement("p",{className:"text-sm text-gray-500"},p.run_count," runs")),Ge.default.createElement("div",{className:"text-right"},Ge.default.createElement("p",{className:"font-medium text-gray-900"},l(p.total_tokens)),Ge.default.createElement("p",{className:"text-xs text-gray-500"},"tokens"))))):Ge.default.createElement("div",{className:"py-8 text-center text-gray-400"},"No agent activity yet")),Ge.default.createElement("div",{className:"space-y-6"},Ge.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},Ge.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"By Provider"),Object.keys(t?.provider_breakdown||{}).length>0?Ge.default.createElement("div",{className:"space-y-3"},Object.entries(t.provider_breakdown).map(([p,f])=>{let m=t?.summary?.total_runs||1,y=(f/m*100).toFixed(1);return Ge.default.createElement("div",{key:p},Ge.default.createElement("div",{className:"flex justify-between text-sm mb-1"},Ge.default.createElement("span",{className:"capitalize text-gray-600"},p),Ge.default.createElement("span",{className:"text-gray-900 font-medium"},f)),Ge.default.createElement("div",{className:"h-2 bg-gray-100 rounded-full overflow-hidden"},Ge.default.createElement("div",{className:"h-full bg-blue-500 rounded-full",style:{width:`${y}%`}})))})):Ge.default.createElement("div",{className:"py-4 text-center text-gray-400 text-sm"},"No data")),Ge.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},Ge.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Token Usage"),Ge.default.createElement("div",{className:"space-y-4"},Ge.default.createElement("div",{className:"flex justify-between items-center"},Ge.default.createElement("span",{className:"text-sm text-gray-500"},"Input Tokens"),Ge.default.createElement("span",{className:"font-medium text-gray-900"},l(t?.summary?.total_input_tokens))),Ge.default.createElement("div",{className:"flex justify-between items-center"},Ge.default.createElement("span",{className:"text-sm text-gray-500"},"Output Tokens"),Ge.default.createElement("span",{className:"font-medium text-gray-900"},l(t?.summary?.total_output_tokens))),Ge.default.createElement("div",{className:"pt-2 border-t border-gray-100"},Ge.default.createElement("div",{className:"flex justify-between items-center"},Ge.default.createElement("span",{className:"text-sm font-medium text-gray-700"},"Total"),Ge.default.createElement("span",{className:"font-bold text-gray-900"},l(t?.summary?.total_tokens)))))))))}function Y0({title:e,value:t,subtitle:r,color:n}){return Ge.default.createElement("div",{className:`bg-white rounded-xl border border-gray-200 border-l-4 ${{rose:"border-l-red-500",blue:"border-l-blue-500",green:"border-l-green-500",purple:"border-l-purple-500",amber:"border-l-amber-500"}[n]} p-4`},Ge.default.createElement("p",{className:"text-sm text-gray-500"},e),Ge.default.createElement("p",{className:"text-2xl font-bold text-gray-900 mt-1"},t),r&&Ge.default.createElement("p",{className:"text-xs text-gray-400 mt-1"},r))}var ne=Z(J());function JD({agent:e,onBack:t}){let{timeWindow:r}=xl(),[n,o]=(0,ne.useState)([]),[a,i]=(0,ne.useState)([]),[s,l]=(0,ne.useState)(null),[u,c]=(0,ne.useState)(null),[d,p]=(0,ne.useState)([]),[f,m]=(0,ne.useState)("run"),[y,b]=(0,ne.useState)(!1),[g,h]=(0,ne.useState)(!1),v=(0,ne.useRef)(!1),x=(0,ne.useRef)(!1),[S,k]=(0,ne.useState)("recent"),[w,_]=(0,ne.useState)({}),[A,C]=(0,ne.useState)(!0),[N,L]=(0,ne.useState)(1),[Q,B]=(0,ne.useState)(!0),[K,T]=(0,ne.useState)(""),[O,I]=(0,ne.useState)(""),[P,j]=(0,ne.useState)("recent"),M=(0,ne.useRef)(null),W=Re(`/agents/${e.id}/interactions`);(0,ne.useEffect)(()=>{Y()},[e.id,N,K,O,P,r.minutes]),(0,ne.useEffect)(()=>{L(1)},[r.minutes]),(0,ne.useEffect)(()=>{fetch(`/api/interactions?agent_id=${e.id}`).then(D=>D.json()).then(D=>i(D.interactions||[])).catch(()=>{}).finally(()=>h(!0))},[e.id]),(0,ne.useEffect)(()=>{let D=()=>{let G=Rn(),E=G.match(/\/interactions\/runs\/(\d+)/),$=G.match(/\/interactions\/sessions\/(\d+)/);if(E)m("run"),c(null),V(parseInt(E[1],10),{updateUrl:!1});else if($)m("all"),c({id:parseInt($[1],10)});else if(G.endsWith("/interactions/sessions")||G.endsWith("/interactions/all"))G.endsWith("/all")&&window.history.replaceState({},"",G.replace(/\/all$/,"/sessions")),m("all"),c(null);else{v.current=!1,l(null),c(null),p([]);return}v.current=!0};return D(),window.addEventListener("popstate",D),()=>window.removeEventListener("popstate",D)},[e.id]),(0,ne.useEffect)(()=>{v.current||x.current||!y||!g||m(n.length===0&&a.length>0?"all":"run")},[y,g,n.length,a.length]);let Y=async()=>{C(!0);try{let D=new URLSearchParams({page:N.toString(),per_page:"20",minutes:String(r.minutes)});K&&D.append("status",K),O&&D.append("source",O),P!=="recent"&&D.append("sort",P);let E=await(await fetch(`/api/agents/${e.id}/runs?${D}`)).json();o(N===1?E.runs:$=>[...$,...E.runs]),B(E.runs.length===20)}catch(D){console.error("Failed to load runs:",D)}finally{C(!1),b(!0)}},z=D=>{window.location.pathname!==D&&window.history.pushState({},"",D)},V=async(D,{updateUrl:G=!0}={})=>{try{let $=await(await fetch(`/api/runs/${D}`)).json();l($.run),p($.messages||[]),m("run"),c(null),G&&z(`${W}/runs/${D}`)}catch(E){console.error("Failed to load run details:",E)}},q=D=>{if(D.source==="reported"){let G=D.trace_id||String(D.id).replace(/^trace-/,"");window.history.pushState(window.history.state,"",Re(`/traces/${G}`)),window.dispatchEvent(new CustomEvent("dashboard:navigate",{detail:{path:Re(`/traces/${G}`)}}));return}V(D.record_id||D.id)},oe=()=>{l(null),c(null),p([]),m("run"),z(W)},Me=D=>{m("all"),D?(c({id:D.id,name:D.display_name}),z(`${W}/sessions/${D.id}`)):(c(null),z(`${W}/sessions`))},fe=D=>{x.current=!0,m(D),z(D==="all"?u?`${W}/sessions/${u.id}`:`${W}/sessions`:s?`${W}/runs/${s.id}`:W)},le=u?u.name||a.find(D=>D.id===u.id)?.display_name||`Session #${u.id}`:null,R=()=>{let D=new Map;n.forEach($=>{let ee=`${$.model||"unknown"}|${$.instructions_digest||"none"}`;D.has(ee)||D.set(ee,{key:ee,model:$.model,instructionsDigest:$.instructions_digest,instructionsVersion:$.instructions_version,instructionsCodename:$.instructions_codename,instructionsPreview:$.instructions_preview,runs:[]}),D.get(ee).runs.push($)});let G=[...D.values()].map($=>({...$,count:$.runs.length,completed:$.runs.filter(ee=>ee.status==="complete").length,failed:$.runs.filter(ee=>ee.status==="failed").length,totalTokens:$.runs.reduce((ee,F)=>ee+(F.tokens||0),0),avgTokens:$.runs.reduce((ee,F)=>ee+(F.tokens||0),0)/$.runs.length,avgDuration:$.runs.reduce((ee,F)=>ee+(F.duration_ms||0),0)/$.runs.length,latest:$.runs[0],sortedRuns:[...$.runs].sort((ee,F)=>(F.duration_ms||0)-(ee.duration_ms||0))}));G.sort(($,ee)=>S==="longest"?ee.avgDuration-$.avgDuration:new Date(ee.latest.created_at)-new Date($.latest.created_at));let E={runs:n.length,completed:n.filter($=>$.status==="complete").length,tokens:n.reduce(($,ee)=>$+(ee.tokens||0),0),avgDuration:n.length?n.reduce(($,ee)=>$+(ee.duration_ms||0),0)/n.length:0,models:[...new Set(n.map($=>$.model).filter(Boolean))]};return{cohorts:G,totals:E}},te=D=>D?D<1e3?`${D}ms`:D<6e4?`${(D/1e3).toFixed(1)}s`:`${Math.floor(D/6e4)}m ${Math.floor(D%6e4/1e3)}s`:"-",He=D=>D==null?"\u2014":D===0?"$0":D<.01?`$${D.toFixed(4)}`:`$${D.toFixed(2)}`,_e=D=>{let G=new Date(D),$=new Date-G,ee=Math.floor($/6e4),F=Math.floor($/36e5),me=Math.floor($/864e5);return ee<1?"Just now":ee<60?`${ee}m ago`:F<24?`${F}h ago`:me<7?`${me}d ago`:G.toLocaleDateString()};return ne.default.createElement("div",{className:"flex h-full"},ne.default.createElement("div",{className:"w-80 border-r border-gray-200 flex flex-col bg-white"},ne.default.createElement("div",{className:"p-4 border-b border-gray-200"},ne.default.createElement("div",{className:"flex items-center space-x-3 mb-4"},ne.default.createElement("button",{onClick:t,className:"p-1 text-gray-400 hover:text-gray-600 transition-colors"},ne.default.createElement("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ne.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"}))),ne.default.createElement("div",null,ne.default.createElement("h2",{className:"font-semibold text-gray-900"},"Agent Interactions"),ne.default.createElement("p",{className:"text-sm text-gray-500"},e.name))),ne.default.createElement("div",{className:"mb-2"},ne.default.createElement(bl,{compact:!0})),ne.default.createElement("div",{className:"flex bg-gray-100 rounded-lg p-1 mb-2 text-sm"},[{value:"",label:"All"},{value:"dashboard",label:"Dashboard"},{value:"reported",label:"Reported"}].map(D=>ne.default.createElement("button",{key:D.value||"all",onClick:()=>{I(D.value),L(1)},className:`flex-1 px-2 py-1 rounded-md transition-colors ${O===D.value?"bg-white shadow text-gray-900":"text-gray-600"}`,title:D.value==="dashboard"?"Executions started from this dashboard":D.value==="reported"?"Executions reported by your app via telemetry":"Every execution, however it started"},D.label))),ne.default.createElement("select",{value:K,onChange:D=>{T(D.target.value),L(1)},className:"w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500"},ne.default.createElement("option",{value:""},"All statuses"),ne.default.createElement("option",{value:"complete"},"Completed"),ne.default.createElement("option",{value:"failed"},"Failed"),ne.default.createElement("option",{value:"running"},"Running"),ne.default.createElement("option",{value:"cancelled"},"Cancelled")),ne.default.createElement("select",{value:P,onChange:D=>{j(D.target.value),L(1)},className:"w-full mt-2 px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500",title:"Rank these executions"},ne.default.createElement("option",{value:"recent"},"Most recent"),ne.default.createElement("option",{value:"longest"},"Longest running"),ne.default.createElement("option",{value:"cost"},"Highest cost"),ne.default.createElement("option",{value:"tokens"},"Most tokens"))),ne.default.createElement("div",{className:"flex-1 overflow-auto"},A&&n.length===0?ne.default.createElement("div",{className:"flex items-center justify-center h-32"},ne.default.createElement("div",{className:"animate-spin rounded-full h-6 w-6 border-b-2 border-red-500"})):n.length>0?ne.default.createElement(ne.default.Fragment,null,n.map(D=>{let G=D.source==="reported";return ne.default.createElement("div",{key:D.id,onClick:()=>q(D),title:G?"Reported by your app \u2014 opens its trace":"Started from this dashboard",className:`p-4 border-b border-gray-100 cursor-pointer transition-colors ${!G&&s?.id===D.id?"bg-red-50 border-l-4 border-l-red-500":"hover:bg-gray-50"}`},ne.default.createElement("div",{className:"flex items-center justify-between mb-2 gap-2"},ne.default.createElement(ke,{tone:al(D.status)},D.status),ne.default.createElement("div",{className:"flex items-center gap-2"},ne.default.createElement("span",{className:`px-1.5 py-0.5 rounded text-[10px] uppercase tracking-wide ${G?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-600"}`},G?"reported":"dashboard"),ne.default.createElement("span",{className:"text-xs text-gray-400"},_e(D.created_at||D.occurred_at)),!G&&ne.default.createElement(ld,{kind:"run",id:D.id,title:"Replay this run"}))),ne.default.createElement("p",{className:"text-sm text-gray-700 truncate"},D.input_preview||D.input_prompt?.substring(0,60)||(G?`${D.action_name||"execution"} \xB7 trace ${String(D.trace_id||"").slice(0,8)}`:"No input")),ne.default.createElement("div",{className:"flex items-center space-x-3 mt-2 text-xs text-gray-400 flex-wrap gap-y-1"},D.model&&ne.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono"},D.model),ne.default.createElement("span",{className:P==="longest"?"text-gray-700 font-medium":void 0},te(D.duration_ms)),!!D.tokens&&ne.default.createElement("span",{className:P==="tokens"?"text-gray-700 font-medium":void 0},D.tokens," tokens"),D.cost!=null&&ne.default.createElement("span",{className:P==="cost"?"text-gray-700 font-medium":void 0,title:"Estimated from token counts at this model's published rates"},He(D.cost))))}),Q&&ne.default.createElement("button",{onClick:()=>L(D=>D+1),disabled:A,className:"w-full py-3 text-sm text-red-600 hover:bg-gray-50 transition-colors"},A?"Loading...":"Load More")):ne.default.createElement("div",{className:"p-8 text-center text-gray-400"},ne.default.createElement("svg",{className:"w-12 h-12 mx-auto mb-3 text-gray-300",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ne.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"})),ne.default.createElement("p",null,"No conversations yet")))),ne.default.createElement("div",{className:"flex-1 flex flex-col bg-gray-50"},ne.default.createElement("div",{className:"px-4 py-2 bg-white border-b border-gray-100 flex items-center gap-1.5 text-xs text-gray-500"},ne.default.createElement("button",{onClick:t,className:"hover:text-gray-900 hover:underline transition-colors"},e.name),ne.default.createElement("span",{className:"text-gray-300"},"/"),f==="all"||s?ne.default.createElement(ne.default.Fragment,null,ne.default.createElement("button",{onClick:oe,className:"hover:text-gray-900 hover:underline transition-colors"},"Interactions"),ne.default.createElement("span",{className:"text-gray-300"},"/"),f==="all"?u?ne.default.createElement(ne.default.Fragment,null,ne.default.createElement("button",{onClick:()=>Me(null),className:"hover:text-gray-900 hover:underline transition-colors"},"Sessions"),ne.default.createElement("span",{className:"text-gray-300"},"/"),ne.default.createElement("span",{className:"text-gray-900 font-medium"},le)):ne.default.createElement("span",{className:"text-gray-900 font-medium"},"Sessions"):ne.default.createElement("span",{className:"text-gray-900 font-medium"},"Run #",s.id)):ne.default.createElement("span",{className:"text-gray-900 font-medium"},"Interactions")),ne.default.createElement("div",{className:"p-3 bg-white border-b border-gray-200 flex items-center justify-between"},ne.default.createElement("div",{className:"flex bg-gray-100 rounded-lg p-1"},ne.default.createElement("button",{onClick:()=>fe("run"),className:`px-3 py-1 text-sm rounded-md transition-colors ${f==="run"?"bg-white shadow text-gray-900":"text-gray-600"}`},"Selected run"),ne.default.createElement("button",{onClick:()=>fe("all"),className:`px-3 py-1 text-sm rounded-md transition-colors ${f==="all"?"bg-white shadow text-gray-900":"text-gray-600"}`},"Sessions")),f==="run"&&s&&ne.default.createElement(ke,{tone:al(s.status),size:12},s.status)),f==="all"?ne.default.createElement("div",{className:"flex-1 overflow-auto p-4 space-y-4"},(()=>{let{totals:D}=R();return ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4 space-y-3"},ne.default.createElement("div",{className:"flex items-center gap-3"},ne.default.createElement(In,{size:40}),ne.default.createElement("div",null,ne.default.createElement("h3",{className:"font-semibold text-gray-900"},e.name),ne.default.createElement("p",{className:"text-xs text-gray-500"},u?`${le} \u2014 one persisted interaction stream`:"Sessions group this agent\u2019s runs into persisted interaction streams"))),ne.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3"},ne.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Runs"),ne.default.createElement("p",{className:"text-lg font-bold text-gray-900"},D.runs)),ne.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Success"),ne.default.createElement("p",{className:"text-lg font-bold text-gray-900"},D.runs?Math.round(D.completed/D.runs*100):0,"%")),ne.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Avg Duration"),ne.default.createElement("p",{className:"text-lg font-bold text-gray-900"},te(Math.round(D.avgDuration)))),ne.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Tokens"),ne.default.createElement("p",{className:"text-lg font-bold text-gray-900"},D.tokens.toLocaleString()))))})(),ne.default.createElement($u,{agentId:e.id,embedded:!0,selectedSessionId:u?.id??null,onSelectSession:Me})):s?ne.default.createElement(ne.default.Fragment,null,ne.default.createElement("div",{className:"p-4 bg-white border-b border-gray-200"},ne.default.createElement("div",{className:"flex items-center space-x-3"},ne.default.createElement(In,{size:40}),ne.default.createElement("div",null,ne.default.createElement("h3",{className:"font-medium text-gray-900"},e.name," \u2014 Run #",s.id),ne.default.createElement("p",{className:"text-xs text-gray-500"},new Date(s.created_at).toLocaleString())))),ne.default.createElement("div",{ref:M,className:"flex-1 overflow-auto p-6"},ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 shadow-sm p-4"},d.length>0?ne.default.createElement(ps,{messages:d,darkMode:!1}):ne.default.createElement(ps,{darkMode:!1,messages:[{id:`run-${s.id}-input`,role:"user",content:s.input_prompt||s.input_preview,created_at:s.created_at},{id:`run-${s.id}-output`,role:"assistant",content:s.error_message||s.output||s.output_preview||"No response",created_at:s.completed_at||s.created_at}]}))),ne.default.createElement("div",{className:"p-4 bg-white border-t border-gray-200"},ne.default.createElement("div",{className:"flex items-center justify-center space-x-8 text-sm text-gray-500"},ne.default.createElement("span",null,"Duration: ",te(s.duration_ms)),s.total_tokens&&ne.default.createElement("span",null,"Tokens: ",s.total_tokens),s.input_tokens&&s.output_tokens&&ne.default.createElement("span",null,"Input: ",s.input_tokens," / Output: ",s.output_tokens),s.trace_id&&ne.default.createElement("a",{href:Re(`/traces?trace=${s.trace_id}`),className:"font-mono text-xs text-blue-500 hover:underline",title:`${s.trace_id} \u2014 open in Traces`},"trace:",s.trace_id.slice(0,8)," \u2192")))):(()=>{let{cohorts:D,totals:G}=R();return D.length===0?ne.default.createElement("div",{className:"flex-1 flex items-center justify-center"},ne.default.createElement("div",{className:"text-center text-gray-400"},ne.default.createElement(In,{size:100}),ne.default.createElement("p",{className:"mt-4"},"No runs yet \u2014 run the agent to build its report"))):ne.default.createElement("div",{className:"flex-1 overflow-auto p-6 space-y-5"},ne.default.createElement("div",{className:"flex items-center gap-3"},ne.default.createElement(In,{size:40}),ne.default.createElement("div",null,ne.default.createElement("h3",{className:"font-semibold text-gray-900"},"Agent Report"),ne.default.createElement("p",{className:"text-xs text-gray-500"},"Recent activity for ",e.name," \u2014 select a run for its full interaction"))),ne.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3"},ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Runs"),ne.default.createElement("p",{className:"text-xl font-bold text-gray-900"},G.runs)),ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Success"),ne.default.createElement("p",{className:"text-xl font-bold text-gray-900"},G.runs?Math.round(G.completed/G.runs*100):0,"%")),ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Avg Duration"),ne.default.createElement("p",{className:"text-xl font-bold text-gray-900"},te(Math.round(G.avgDuration)))),ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Tokens"),ne.default.createElement("p",{className:"text-xl font-bold text-gray-900"},G.tokens.toLocaleString()))),G.models.length>0&&ne.default.createElement("div",{className:"flex items-center gap-2 flex-wrap text-xs"},ne.default.createElement("span",{className:"text-gray-500"},"Models used:"),G.models.map(E=>ne.default.createElement("span",{key:E,className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono"},E))),a.length>0&&ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},ne.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100"},ne.default.createElement("span",{className:"text-xs uppercase tracking-wide text-gray-400"},"Sessions \u2014 grouped interaction streams")),ne.default.createElement("div",{className:"divide-y divide-gray-100"},a.map(E=>ne.default.createElement("div",{key:E.id,className:"px-4 py-3 hover:bg-gray-50 cursor-pointer flex items-center justify-between gap-3",onClick:()=>Me(E),title:"Open this session's interaction stream"},ne.default.createElement("div",{className:"flex items-center gap-2 min-w-0",title:E.display_name},ne.default.createElement("span",{className:"px-2 py-0.5 text-xs font-medium bg-blue-100 text-blue-700 rounded flex-shrink-0"},"SESSION"),ne.default.createElement("span",{className:"text-sm text-gray-900 truncate"},E.agent?.name||E.agent_name),E.action_name&&ne.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-purple-50 text-purple-700 font-mono text-xs flex-shrink-0"},"#",E.action_name)),ne.default.createElement("div",{className:"flex items-center gap-3 text-xs text-gray-400 flex-shrink-0"},ne.default.createElement("span",null,E.message_count," messages"),ne.default.createElement("span",null,(E.tokens?.total||0).toLocaleString()," tokens"),ne.default.createElement("span",null,_e(E.last_activity_at)),ne.default.createElement(ld,{kind:"context",id:E.id,title:"Replay this conversation"})))))),ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},ne.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100 flex items-center justify-between"},ne.default.createElement("span",{className:"text-xs uppercase tracking-wide text-gray-400"},"Interactions by instructions \xD7 model"),ne.default.createElement("select",{value:S,onChange:E=>k(E.target.value),className:"text-xs border border-gray-200 rounded px-2 py-1 text-gray-600"},ne.default.createElement("option",{value:"recent"},"Most recent"),ne.default.createElement("option",{value:"longest"},"Longest interactions"))),ne.default.createElement("div",{className:"divide-y divide-gray-100"},D.map(E=>ne.default.createElement("div",{key:E.key},ne.default.createElement("div",{className:"px-4 py-3 hover:bg-gray-50 cursor-pointer",onClick:()=>_($=>({...$,[E.key]:!$[E.key]})),title:"Show this configuration's runs"},ne.default.createElement("div",{className:"flex items-center gap-2 flex-wrap"},ne.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono text-xs"},E.model||"unknown model"),ne.default.createElement("span",{className:"text-xs text-gray-400 font-mono",title:E.instructionsDigest?`sha:${E.instructionsDigest}`:void 0},"instructions"," ",E.instructionsDigest?[E.instructionsVersion,E.instructionsCodename||E.instructionsDigest].filter(Boolean).join(" \xB7 "):"n/a")),E.instructionsPreview&&ne.default.createElement("p",{className:"text-xs text-gray-500 mt-1 truncate"},E.instructionsPreview),ne.default.createElement("div",{className:"flex items-center gap-3 mt-1.5 text-xs text-gray-400 flex-wrap gap-y-1"},ne.default.createElement("span",null,E.count," run",E.count>1?"s":""),ne.default.createElement("span",{className:E.failed>0?"text-red-500":"text-green-600"},E.count?Math.round(E.completed/E.count*100):0,"% success"),ne.default.createElement("span",null,"avg ",te(Math.round(E.avgDuration))),ne.default.createElement("span",null,"avg ",Math.round(E.avgTokens).toLocaleString()," tokens"),ne.default.createElement("span",null,"last ",_e(E.latest.created_at)))),w[E.key]&&ne.default.createElement("div",{className:"bg-gray-50 divide-y divide-gray-100 border-t border-gray-100"},E.sortedRuns.map($=>ne.default.createElement("div",{key:$.id,className:"px-6 py-2 hover:bg-gray-100 cursor-pointer",onClick:()=>V($.id),title:"Open this run's interaction"},ne.default.createElement("p",{className:"text-xs text-gray-700 truncate"},$.input_preview||"No input"),ne.default.createElement("div",{className:"flex items-center gap-3 mt-0.5 text-[11px] text-gray-400"},ne.default.createElement("span",{className:$.status==="failed"?"text-red-500":""},$.status),ne.default.createElement("span",null,te($.duration_ms)),$.tokens&&ne.default.createElement("span",null,$.tokens.toLocaleString()," tokens"),ne.default.createElement("span",null,_e($.created_at)))))))))))})()))}var ct=Z(J());var uCe={productivity:"[+]",development:"<>",research:"[?]",creative:"[*]",data:"[#]",automation:"[>]"};function QD({onUseTemplate:e,onClose:t}){let[r,n]=(0,ct.useState)([]),[o,a]=(0,ct.useState)([]),[i,s]=(0,ct.useState)(""),[l,u]=(0,ct.useState)(null),[c,d]=(0,ct.useState)(!0),[p,f]=(0,ct.useState)(!1),[m,y]=(0,ct.useState)(null);(0,ct.useEffect)(()=>{b()},[i]);let b=async()=>{d(!0);try{let h=new URLSearchParams;i&&h.append("category",i);let x=await(await fetch(`/api/templates?${h}`)).json();n(x.templates),a(x.categories)}catch(h){console.error("Failed to load templates:",h)}finally{d(!1)}},g=async h=>{f(!0),y(null);try{let v=await fetch(`/api/templates/${h.id}/use`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:h.name})});if(v.ok){let x=await v.json();e(x.agent)}else{let x=`Could not create the agent (HTTP ${v.status})`;try{let S=await v.json(),k=S.errors||S.error;k&&(x=Array.isArray(k)?k.join(", "):String(k))}catch{}y(x)}}catch(v){console.error("Failed to create agent from template:",v),y("Could not create the agent \u2014 check your connection and try again.")}finally{f(!1)}};return ct.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4"},ct.default.createElement("div",{className:"bg-white rounded-2xl w-full max-w-5xl max-h-[90vh] flex flex-col overflow-hidden"},ct.default.createElement("div",{className:"px-6 py-4 border-b border-gray-200 flex items-center justify-between"},ct.default.createElement("div",null,ct.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Template Library"),ct.default.createElement("p",{className:"text-sm text-gray-500"},"Start with a pre-configured agent template")),ct.default.createElement("button",{onClick:t,className:"p-2 text-gray-400 hover:text-gray-600 transition-colors"},ct.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ct.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})))),ct.default.createElement("div",{className:"flex-1 flex overflow-hidden"},ct.default.createElement("div",{className:"w-48 border-r border-gray-200 p-4 flex-shrink-0"},ct.default.createElement("h3",{className:"text-xs font-semibold text-gray-400 uppercase mb-3"},"Categories"),ct.default.createElement("div",{className:"space-y-1"},ct.default.createElement("button",{onClick:()=>s(""),className:`w-full text-left px-3 py-2 rounded-lg text-sm transition-colors ${i?"text-gray-600 hover:bg-gray-50":"bg-red-50 text-red-600"}`},"All Templates"),o.map(h=>ct.default.createElement("button",{key:h,onClick:()=>s(h),className:`w-full text-left px-3 py-2 rounded-lg text-sm flex items-center space-x-2 transition-colors ${i===h?"bg-red-50 text-red-600":"text-gray-600 hover:bg-gray-50"}`},ct.default.createElement("span",null,uCe[h]||"\u{1F4E6}"),ct.default.createElement("span",{className:"capitalize"},h))))),ct.default.createElement("div",{className:"flex-1 p-6 overflow-auto"},c?ct.default.createElement("div",{className:"flex items-center justify-center h-full"},ct.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"})):r.length>0?ct.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-3 gap-4"},r.map(h=>ct.default.createElement("div",{key:h.id,onClick:()=>u(h),className:`bg-white rounded-xl border-2 p-4 cursor-pointer transition-all hover:shadow-lg ${l?.id===h.id?"border-red-500 ring-2 ring-red-100":"border-gray-200 hover:border-gray-300"}`},ct.default.createElement("div",{className:"flex items-start space-x-3"},ct.default.createElement("div",{className:"flex-shrink-0"},ct.default.createElement(In,{size:60})),ct.default.createElement("div",{className:"flex-1 min-w-0"},ct.default.createElement("div",{className:"flex items-center space-x-2"},ct.default.createElement("span",{className:"text-lg"},h.icon),ct.default.createElement("h3",{className:"font-medium text-gray-900 truncate"},h.name)),ct.default.createElement("p",{className:"text-xs text-gray-500 mt-1 line-clamp-2"},h.description),ct.default.createElement("div",{className:"flex items-center space-x-2 mt-2"},ct.default.createElement("span",{className:"text-xs px-2 py-0.5 bg-gray-100 rounded capitalize"},h.category),h.featured&&ct.default.createElement("span",{className:"text-xs px-2 py-0.5 bg-yellow-100 text-yellow-700 rounded"},"Featured"))))))):ct.default.createElement("div",{className:"text-center py-12 text-gray-500"},"No templates found in this category")),l&&ct.default.createElement("div",{className:"w-80 border-l border-gray-200 p-6 flex-shrink-0 bg-gray-50 overflow-auto"},ct.default.createElement("div",{className:"flex justify-center mb-4"},ct.default.createElement(In,{size:120})),ct.default.createElement("h3",{className:"text-lg font-semibold text-gray-900 text-center"},l.name),ct.default.createElement("p",{className:"text-sm text-gray-500 text-center mt-1"},l.description),ct.default.createElement("div",{className:"mt-6 space-y-4"},ct.default.createElement("div",null,ct.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Provider / Model"),ct.default.createElement("p",{className:"text-sm text-gray-900"},l.provider," / ",l.model)),l.tools?.length>0&&ct.default.createElement("div",null,ct.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Tools"),ct.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},l.tools.map(h=>ct.default.createElement("span",{key:h,className:"text-xs px-2 py-0.5 bg-red-100 text-red-700 rounded"},h)))),ct.default.createElement("div",null,ct.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Usage"),ct.default.createElement("p",{className:"text-sm text-gray-900"},l.usage_count," agents created"))),ct.default.createElement("button",{onClick:()=>g(l),disabled:p,className:"w-full mt-6 px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors disabled:opacity-50"},p?"Creating...":"Use This Template"),m&&ct.default.createElement("p",{className:"mt-2 text-sm text-red-600",role:"alert"},m)))))}var mt=Z(J());function RD({currentView:e,onNavigate:t,agentCount:r,pendingInputCount:n,account:o,user:a,gemVersion:i,features:s={}}){let{darkMode:l}=ut(),[u,c]=(0,mt.useState)(!1),d=(0,mt.useRef)(null);(0,mt.useEffect)(()=>{function h(v){d.current&&!d.current.contains(v.target)&&c(!1)}return document.addEventListener("mousedown",h),()=>document.removeEventListener("mousedown",h)},[]);let p=o?.name||"My Workspace",f=a?.name||a?.email?.split("@")[0]||"User",m={agentCount:r,pendingInputCount:n},y=h=>{let v=h.badge?m[h.badge]:void 0;return h.badgeTone==="attention"&&!v?void 0:v},b=fY(s).map(h=>({...h,items:h.items.map(v=>({id:v.view,label:v.label,icon:v.glyph??Fo.nav[v.icon],badge:y(v),badgeTone:v.badgeTone,badgeTitle:v.badgeTitle}))})),g=({item:h})=>mt.default.createElement("button",{onClick:()=>t(h.id),className:`w-full flex items-center justify-between py-3 rounded-lg text-left transition-colors ${h.indent?"pl-10 pr-4":"px-4"}`,style:{backgroundColor:e===h.id?l?"rgba(239, 68, 68, 0.15)":"#fef2f2":"transparent",color:e===h.id?"#ef4444":l?"#d1d5db":"#374151"},onMouseEnter:v=>{e!==h.id&&(v.currentTarget.style.backgroundColor=l?"#252525":"#f3f4f6")},onMouseLeave:v=>{e!==h.id&&(v.currentTarget.style.backgroundColor="transparent")}},mt.default.createElement("div",{className:"flex items-center space-x-3"},mt.default.createElement("span",{style:{fontFamily:Pt.mono,fontSize:"12px",width:"20px",textAlign:"center"}},h.icon),mt.default.createElement("span",{className:"font-medium"},h.label)),h.badge!==void 0&&h.badgeTone==="attention"&&mt.default.createElement("span",{"data-testid":`nav-badge-${h.id}`,className:"px-2 py-0.5 text-xs rounded-full font-semibold",title:`${h.badge} ${h.badgeTitle||""}`.trim(),"aria-label":`${h.badge} ${h.badgeTitle||""}`.trim(),style:{backgroundColor:"var(--color-warning-soft)",color:"var(--color-warning-text)"}},h.badge),h.badge!==void 0&&h.badgeTone!=="attention"&&mt.default.createElement("span",{className:"px-2 py-0.5 text-xs rounded-full",style:{backgroundColor:e===h.id?"#fee2e2":l?"#2a2a2a":"#f3f4f6",color:e===h.id?"#ef4444":l?"#d1d5db":"#4b5563"}},h.badge));return mt.default.createElement("aside",{className:"w-64 border-r flex flex-col",style:{backgroundColor:l?"#1a1a1a":"#ffffff",borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:"h-16 flex items-center px-4 border-b relative",style:{borderColor:l?"#2a2a2a":"#e5e7eb"},ref:d},mt.default.createElement("button",{onClick:()=>c(!u),className:"w-full flex items-center justify-between px-2 py-2 rounded-lg transition-colors",style:{backgroundColor:u?l?"#252525":"#f3f4f6":"transparent"}},mt.default.createElement("div",{className:"flex items-center space-x-3 min-w-0"},mt.default.createElement(In,{size:28}),mt.default.createElement("span",{className:`font-semibold truncate ${l?"text-white":"text-gray-900"}`},p)),mt.default.createElement("svg",{className:`w-4 h-4 flex-shrink-0 transition-transform ${u?"rotate-180":""}`,style:{color:l?"#9ca3af":"#6b7280"},fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},mt.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))),u&&mt.default.createElement("div",{className:"absolute left-4 right-4 top-14 rounded-lg shadow-lg border overflow-hidden z-50",style:{backgroundColor:l?"#1a1a1a":"#ffffff",borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:"px-4 py-3 border-b",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:"flex items-center space-x-3"},mt.default.createElement(In,{size:32}),mt.default.createElement("div",{className:"min-w-0"},mt.default.createElement("div",{className:`font-medium truncate ${l?"text-white":"text-gray-900"}`},p)))),mt.default.createElement("div",{className:"py-1"},mt.default.createElement("button",{onClick:()=>{t("settings"),c(!1)},className:`w-full flex items-center space-x-3 px-4 py-2 text-left text-sm transition-colors ${l?"text-gray-300 hover:bg-gray-800":"text-gray-700 hover:bg-gray-100"}`},mt.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},mt.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),mt.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})),mt.default.createElement("span",null,"Settings")),mt.default.createElement("button",{onClick:()=>{t("organization"),c(!1)},className:`w-full flex items-center space-x-3 px-4 py-2 text-left text-sm transition-colors ${l?"text-gray-300 hover:bg-gray-800":"text-gray-700 hover:bg-gray-100"}`},mt.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},mt.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"})),mt.default.createElement("span",null,"Organization"))),mt.default.createElement("div",{className:"border-t py-1",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:`px-4 py-2 flex items-center space-x-3 ${l?"text-gray-300":"text-gray-700"}`},mt.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},mt.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})),mt.default.createElement("span",{className:"text-sm"},f))))),mt.default.createElement("nav",{className:"flex-1 px-4 py-4 space-y-1 overflow-y-auto"},b.map(h=>{let v=mt.default.createElement("div",{className:"space-y-1"},h.items.map(x=>mt.default.createElement(g,{key:x.id,item:x})));return h.label?mt.default.createElement("div",{key:h.id,className:"pt-4"},mt.default.createElement("div",{className:"px-4 pb-2"},mt.default.createElement("span",{className:`text-xs font-semibold uppercase tracking-wide ${l?"text-gray-500":"text-gray-400"}`},h.label)),v):mt.default.createElement(mt.default.Fragment,{key:h.id},v)})),mt.default.createElement("div",{className:"px-4 py-4 border-t",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:`text-xs font-semibold uppercase mb-3 ${l?"text-gray-500":"text-gray-400"}`},"Resources"),mt.default.createElement("div",{className:"space-y-2"},mt.default.createElement("a",{href:"https://docs.activeagents.ai",target:"_blank",rel:"noopener noreferrer",className:`flex items-center space-x-2 text-sm transition-colors ${l?"text-gray-400 hover:text-red-400":"text-gray-600 hover:text-red-600"}`},mt.default.createElement("span",{style:{fontFamily:Pt.mono,fontSize:"12px",width:"20px",textAlign:"center"}},Fo.nav.docs),mt.default.createElement("span",null,"Documentation")),mt.default.createElement("a",{href:"https://github.com/activeagents/activeagent",target:"_blank",rel:"noopener noreferrer",className:`flex items-center space-x-2 text-sm transition-colors ${l?"text-gray-400 hover:text-red-400":"text-gray-600 hover:text-red-600"}`},mt.default.createElement("span",{style:{fontFamily:Pt.mono,fontSize:"12px",width:"20px",textAlign:"center"}},Fo.nav.github),mt.default.createElement("span",null,"GitHub")))),mt.default.createElement("div",{className:"px-6 py-4 border-t",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:`text-xs ${l?"text-gray-500":"text-gray-400"}`},"Active Agent ",i?`v${i}`:"")))}var xr=Z(J());function e3({user:e,account:t}){let{darkMode:r,toggleDarkMode:n}=ut(),[o,a]=(0,xr.useState)(!1),i=(0,xr.useRef)(null);(0,xr.useEffect)(()=>{function d(p){i.current&&!i.current.contains(p.target)&&a(!1)}return document.addEventListener("mousedown",d),()=>document.removeEventListener("mousedown",d)},[]);let s=window.ACTIVE_AGENT_DASHBOARD?.meta?.signOutPath,l=()=>{if(!s)return;let d=document.querySelector('meta[name="csrf-token"]')?.content,p=document.createElement("form");p.method="POST",p.action=s;let f=document.createElement("input");f.type="hidden",f.name="_method",f.value="delete",p.appendChild(f);let m=document.createElement("input");m.type="hidden",m.name="authenticity_token",m.value=d,p.appendChild(m),document.body.appendChild(p),p.submit()},u=e?.name||e?.email?.split("@")[0]||"User",c=u.charAt(0).toUpperCase();return xr.default.createElement("header",{className:"h-16 border-b flex items-center justify-between px-6",style:{backgroundColor:r?"#1a1a1a":"#ffffff",borderColor:r?"#2a2a2a":"#e5e7eb"}},xr.default.createElement("div",{className:"flex items-center space-x-4"}),xr.default.createElement("div",{className:"flex items-center space-x-4"},xr.default.createElement("button",{onClick:n,className:"p-2 rounded-lg transition-colors",style:{backgroundColor:r?"#252525":"#f3f4f6",color:r?"#fbbf24":"#4b5563"},title:r?"Switch to light mode":"Switch to dark mode"},r?xr.default.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20"},xr.default.createElement("path",{fillRule:"evenodd",d:"M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z",clipRule:"evenodd"})):xr.default.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20"},xr.default.createElement("path",{d:"M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"}))),xr.default.createElement("div",{className:`flex items-center space-x-2 text-sm ${r?"text-gray-400":"text-gray-500"}`},xr.default.createElement("span",{className:"w-2 h-2 bg-green-400 rounded-full"}),xr.default.createElement("span",null,"Connected")),xr.default.createElement("div",{className:"relative",ref:i},xr.default.createElement("button",{onClick:()=>a(!o),className:"flex items-center space-x-2 p-1 rounded-lg transition-colors",style:{backgroundColor:o?r?"#252525":"#f3f4f6":"transparent"}},xr.default.createElement("div",{className:"w-8 h-8 bg-red-100 rounded-full flex items-center justify-center"},xr.default.createElement("span",{className:"text-red-600 font-medium text-sm"},c))),o&&xr.default.createElement("div",{className:"absolute right-0 mt-2 w-64 rounded-lg shadow-lg border overflow-hidden z-50",style:{backgroundColor:r?"#1a1a1a":"#ffffff",borderColor:r?"#2a2a2a":"#e5e7eb"}},xr.default.createElement("div",{className:"px-4 py-3 border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},xr.default.createElement("div",{className:"flex items-center space-x-3"},xr.default.createElement("div",{className:"w-10 h-10 bg-red-100 rounded-full flex items-center justify-center"},xr.default.createElement("span",{className:"text-red-600 font-medium"},c)),xr.default.createElement("div",null,xr.default.createElement("div",{className:`font-medium ${r?"text-white":"text-gray-900"}`},u),xr.default.createElement("div",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},e?.email)))),s&&xr.default.createElement("div",{className:"py-1"},xr.default.createElement("button",{onClick:l,className:`w-full flex items-center space-x-3 px-4 py-2 text-left text-sm transition-colors ${r?"text-gray-300 hover:bg-gray-800":"text-gray-700 hover:bg-gray-100"}`},xr.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},xr.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1"})),xr.default.createElement("span",null,"Sign out")))))))}var ze=Z(J());var kt=Z(J());var t3=150,cCe=e=>e.reduce((t,r)=>t+(Number(r)||0),0),dCe=e=>e.length?cCe(e)/e.length:0,Ys=e=>e.reduce((t,r)=>r!=null&&Number(r)>t?Number(r):t,0),r3=e=>{if(!(e>0))return 1;let t=Math.pow(10,Math.floor(Math.log10(e))),r=e/t;return(r<=1?1:r<=2?2:r<=2.5?2.5:r<=5?5:10)*t},xf=(e,t)=>[0,25,50,75,100].map(r=>({top:r,label:t(e*(1-r/100))})),pCe=4,Mh=e=>Math.max(pCe,r3(e)),MQ=(e,t=2,r=6)=>{let n=e/4;for(let o=t;oMath.abs(n*i-Number((n*i).toFixed(o)))<=n*.1))return o;return r},fCe=5.5,mCe=12,gCe=(e,t)=>{let r=!!e.flip;if(!(t>0))return r;let n=String(e.label||"").length*fCe+mCe,o=Number(e.left)/100*t,a=t-o;return r?!(oo):aa},bf=(e,t)=>{let r=e.length,n=[];return e.forEach((o,a)=>{if(o==null||Number.isNaN(Number(o)))return;let i=r>1?a/(r-1)*100:50,s=100-Math.min(100,Math.max(0,Number(o)/t*100));n.push(`${i.toFixed(2)},${s.toFixed(2)}`)}),n.join(" ")},Z2=(e,t)=>{let r=bf(e,t);return r?`0,100 ${r} 100,100`:""},IQ=(e,t=24)=>{let r=e.length;if(!r)return"";let n=r/t,o=Array.from({length:t},(s,l)=>{let u=Math.floor(l*n),c=Math.max(u+1,Math.floor((l+1)*n));return dCe(e.slice(u,c).filter(d=>d!=null))}),a=Math.max(...o),i=Math.min(...o);return o.map((s,l)=>`${(l/(t-1)*100).toFixed(1)},${(26-(a===i?.5:(s-i)/(a-i))*24).toFixed(1)}`).join(" ")},X0=(e,t,r)=>{let n=e.length?e[0].data.length:0;return Array.from({length:n},(o,a)=>({title:r(a),segs:e.map(i=>({h:(Number(i.data[a])||0)/t*100,color:i.color}))}))};function DQ({label:e,value:t,unit:r,sub:n,delta:o,deltaColor:a,deltaSub:i,spark:s,sparkColor:l}){return kt.default.createElement(je,{padding:"14px 16px 12px",style:{display:"flex",flexDirection:"column",gap:6,minWidth:0}},kt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8}},kt.default.createElement(Ue,{size:11,spacing:"0.05em"},e),kt.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,fontWeight:600,color:a,whiteSpace:"nowrap"}},o)),kt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:6}},kt.default.createElement("span",{style:{fontFamily:U,fontSize:26,fontWeight:700,lineHeight:1.1,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},t),r?kt.default.createElement("span",{style:{fontFamily:U,fontSize:12,color:"var(--color-text-muted)"}},r):null),kt.default.createElement("div",{title:n,style:{fontFamily:U,fontSize:11,color:"var(--color-text-secondary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},n),kt.default.createElement("div",{style:{display:"flex",alignItems:"flex-end",gap:8,marginTop:2}},kt.default.createElement("svg",{viewBox:"0 0 100 28",preserveAspectRatio:"none","aria-hidden":"true",style:{flex:1,height:28,minWidth:0,display:"block",overflow:"visible"}},kt.default.createElement("polyline",{points:s,fill:"none",stroke:l,strokeWidth:"1.5",strokeLinejoin:"round",vectorEffect:"non-scaling-stroke"})),kt.default.createElement("span",{style:{fontSize:10,color:"var(--color-text-muted)",whiteSpace:"nowrap"}},i)))}function jQ({title:e,sub:t,value:r,valueColor:n="var(--color-text-primary)",legend:o=[],ticks:a=[],buckets:i=[],lines:s=[],areas:l=[],markers:u=[],xLabels:c=[],height:d=t3}){let p=(0,kt.useRef)(null),f=D0(p),m="1px dashed var(--color-text-secondary)";return kt.default.createElement(je,{padding:"14px 16px 12px",style:{minWidth:0,display:"flex",flexDirection:"column",gap:8}},kt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,flexWrap:"wrap"}},kt.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},e),kt.default.createElement("span",{style:{fontFamily:U,fontSize:10,color:"var(--color-text-muted)"}},t),kt.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:12,fontWeight:600,color:n,whiteSpace:"nowrap"}},r)),kt.default.createElement("div",{style:{display:"flex",gap:12,flexWrap:"wrap"}},o.map(y=>kt.default.createElement("span",{key:y.label,style:{display:"inline-flex",alignItems:"center",gap:5,fontFamily:U,fontSize:10,color:"var(--color-text-secondary)"}},kt.default.createElement("span",{style:{width:8,height:8,borderRadius:2,background:y.color,flexShrink:0}}),y.label))),kt.default.createElement("div",{ref:p,style:{position:"relative",height:d,margin:"6px 0 0 40px"}},a.map(y=>kt.default.createElement("div",{key:y.top,style:{position:"absolute",left:0,right:0,top:`${y.top}%`,borderTop:"1px solid var(--color-border-light)"}},kt.default.createElement("span",{style:{position:"absolute",right:"calc(100% + 6px)",top:-6,whiteSpace:"nowrap",fontFamily:U,fontSize:10,lineHeight:"12px",color:"var(--color-text-muted)"}},y.label))),i.length>0&&kt.default.createElement("div",{style:{position:"absolute",inset:0,display:"flex",alignItems:"stretch",gap:1}},i.map((y,b)=>kt.default.createElement("div",{key:b,title:y.title,style:{flex:1,minWidth:0,display:"flex",flexDirection:"column-reverse"}},y.segs.map((g,h)=>kt.default.createElement("div",{key:h,style:{height:`${g.h.toFixed(2)}%`,background:g.color,flexShrink:0}}))))),(s.length>0||l.length>0)&&kt.default.createElement("svg",{viewBox:"0 0 100 100",preserveAspectRatio:"none","aria-hidden":"true",style:{position:"absolute",inset:0,width:"100%",height:"100%",overflow:"visible",pointerEvents:"none"}},l.map((y,b)=>kt.default.createElement("polygon",{key:b,points:y.points,fill:y.color,opacity:"0.16"})),s.map((y,b)=>kt.default.createElement("polyline",{key:b,points:y.points,fill:"none",stroke:y.color,strokeWidth:y.width||1.5,strokeLinejoin:"round",strokeLinecap:"round",vectorEffect:"non-scaling-stroke"}))),u.map((y,b)=>{let g=gCe(y,f),h=`${Number(y.left).toFixed(2)}%`;return kt.default.createElement("div",{key:b,style:{position:"absolute",top:0,bottom:0,pointerEvents:"none",...g?{left:0,width:h,borderRight:m}:{left:h,right:0,borderLeft:m}}},kt.default.createElement("span",{style:{position:"absolute",top:-4,[g?"right":"left"]:4,maxWidth:"calc(100% - 8px)",boxSizing:"border-box",overflow:"hidden",textOverflow:"ellipsis",fontFamily:U,fontSize:9,lineHeight:"12px",color:"var(--color-text-secondary)",whiteSpace:"nowrap",background:"var(--color-card)",padding:"0 4px",borderRadius:3}},y.label))})),kt.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",marginLeft:40,fontFamily:U,fontSize:10,color:"var(--color-text-muted)"}},c.map((y,b)=>kt.default.createElement("span",{key:b},y))))}function Ih({label:e,qualifier:t,meta:r,children:n}){return kt.default.createElement(je,{padding:0,style:{overflow:"hidden"}},kt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,padding:"10px 14px",borderBottom:"1px solid var(--color-border-light)"}},kt.default.createElement(Ue,null,e),t?kt.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},t):null,r?kt.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},r):null),n)}function n3({template:e,columns:t}){return kt.default.createElement("div",{style:{display:"grid",gridTemplateColumns:e,gap:8,padding:"6px 14px 4px",fontFamily:U,fontSize:10,textTransform:"uppercase",letterSpacing:"0.05em",color:"var(--color-text-muted)"}},kt.default.createElement("span",null),t.map(r=>kt.default.createElement("span",{key:r,style:{textAlign:"right"}},r)))}function J2({template:e,active:t=!1,onClick:r,title:n,padding:o="8px 14px",children:a}){let i=typeof r=="function";return kt.default.createElement("div",{role:i?"button":void 0,tabIndex:i?0:void 0,"aria-pressed":i?t:void 0,onClick:r,onKeyDown:i?l=>{(l.key==="Enter"||l.key===" ")&&(l.preventDefault(),r(l))}:void 0,title:n,className:i?"hover:bg-[var(--color-hover)]":void 0,style:{display:"grid",gridTemplateColumns:e,gap:8,alignItems:"center",padding:o,borderTop:"1px solid var(--color-border-light)",cursor:i?"pointer":"default",background:t?"var(--color-muted)":void 0}},a)}function o3({children:e,padding:t="8px 14px"}){return kt.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:t,borderTop:"1px solid var(--color-border-light)"}},e)}function Z0({children:e}){return kt.default.createElement("div",{style:{padding:"12px 14px",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},e)}function a3({color:e}){return kt.default.createElement("span",{style:{width:8,height:8,borderRadius:2,background:e,flexShrink:0}})}function i3({pct:e,color:t}){return kt.default.createElement("div",{style:{marginTop:5,height:3,borderRadius:999,background:"var(--color-muted)",overflow:"hidden"}},kt.default.createElement("div",{style:{width:`${Math.max(0,Math.min(100,Number(e)||0))}%`,height:"100%",background:t}}))}function s3({pct:e,color:t,width:r=70}){return kt.default.createElement("span",{style:{width:r,height:4,borderRadius:999,background:"var(--color-muted)",overflow:"hidden",flexShrink:0,display:"inline-block"}},kt.default.createElement("span",{style:{display:"block",width:`${Math.max(0,Math.min(100,Number(e)||0))}%`,height:"100%",background:t}}))}function ys({children:e,color:t="var(--color-text-primary)",weight:r=400,width:n,style:o}){return kt.default.createElement("span",{style:{fontFamily:U,fontSize:11,fontWeight:r,textAlign:"right",color:t,width:n,...o}},e)}var BQ=6e4,hCe=1180,jh={"1h":{n:60,seconds:60,bucket:"1 min",prev:"vs previous hour",title:"last hour"},"24h":{n:96,seconds:900,bucket:"15 min",prev:"vs previous 24h",title:"last 24 hours"},"7d":{n:84,seconds:7200,bucket:"2 h",prev:"vs previous 7 days",title:"last 7 days"}},yCe=Object.keys(jh).map(e=>({value:e,label:e})),u3="24h",Dh=["var(--chart-1)","var(--chart-2)","var(--chart-3)","var(--chart-5)","var(--chart-4)"],J0=[{type:"429 rate limit",short:"429",color:"var(--color-error)"},{type:"timeout",short:"timeout",color:"var(--color-warning)"},{type:"tool error",short:"tool error",color:"var(--span-tool)"},{type:"provider 5xx",short:"5xx",color:"var(--color-token-out)"},{type:"other",short:"error",color:"var(--color-text-muted)"}],$Q=e=>J0.find(t=>t.type===e)?.color||"var(--color-text-muted)",vCe=3,R2="var(--color-text-primary)",xCe={success:"var(--color-success)",error:"var(--color-error)",muted:"var(--color-text-muted)"},bCe=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],l3=e=>String(e).padStart(2,"0"),Wt=e=>e==null||Number.isNaN(Number(e))?0:Number(e),wCe=e=>e.reduce((t,r)=>t+Wt(r),0),LQ=e=>`${Wt(e).toFixed(1)}%`,Q2=(e,t)=>`${e} ${t}${e===1?"":"s"}`,SCe=e=>e>=1e3?`${(e/1e3).toFixed(1)}s`:`${Math.round(e)}ms`,kCe=(e,t)=>{let r=Array.isArray(e)?[...e]:[];return t.forEach(n=>{n.name&&!r.some(o=>o.name===n.name)&&r.push(n)}),r},_Ce=e=>{let t=String(e.label||"incident"),r=J0.find(n=>t.startsWith(n.type));return r&&(t=`${r.short}${t.slice(r.type.length)}`),e.agent&&!t.includes(e.agent)?`${t} \xB7 ${e.agent}`:t},CCe=e=>{let t=Wt(e);return t<60?`${t}s`:t<3600?`${+(t/60).toFixed(1)} min`:`${+(t/3600).toFixed(1)} h`},zQ=async e=>{let t=await fetch(`/api/metrics?${e.toString()}`);if(!t.ok)throw new Error(`Request failed (${t.status})`);return t.json()},ACe=(e,t,r=Date.now())=>{let n=Math.max(1,Wt(t))*1e3,o=Math.max(1,Math.round(Wt(e)*6e4/n)),a=Math.floor(r/n)*n;return Array.from({length:o},(i,s)=>({ts:new Date(a-(o-1-s)*n).toISOString()}))},ECe=(e,t)=>{let r=e.summary||{},n=jh[e.range]||jh[t]||jh[u3],o=Wt(e.bucket_seconds)||n.seconds,a=Wt(e.window_minutes)||(e.window_hours?Wt(e.window_hours)*60:n.n*n.seconds/60),i=Array.isArray(e.series)?e.series:ACe(a,o),s=Wt(e.totals?.requests??r.total_requests),l=Wt(e.totals?.cost??r.total_cost),u={requests:s,requests_per_minute:a?s/a:0,p50_ms:null,p95_ms:null,p99_ms:null,errors:Wt(r.errors),error_rate:Wt(r.error_rate),tokens_in:Wt(r.tokens_input),tokens_out:Wt(r.tokens_output),tokens:Wt(r.tokens_used),cost:l,cost_per_request:s?l/s:0,tool_calls:0,tool_errors:0,tool_error_rate:0,...e.totals||{}},c={requests_pct:r.requests_change??null,p50_pct:r.latency_change??null,error_rate_pt:null,tokens_pct:null,cost_pct:null,...e.deltas||{}},d=Array.isArray(e.agents)?e.agents:(e.by_agent||[]).map(f=>({name:f.name,requests:Wt(f.requests),share_pct:s?Wt(f.requests)/s*100:0,p95_ms:null,error_rate:f.requests?Wt(f.errors)/Wt(f.requests)*100:0,cost:Wt(f.cost),tokens:Wt(f.tokens)})),p=Array.isArray(e.errors_by_type)&&e.errors_by_type.length?e.errors_by_type:J0.map(f=>({type:f.type,count:0}));return{range:e.range||t,bucketSeconds:o,windowMinutes:a,agent:e.agent||null,environment:e.environment||null,totals:u,deltas:c,series:i,agents:d,models:Array.isArray(e.models)?e.models:[],actions:Array.isArray(e.actions)?e.actions:[],tools:Array.isArray(e.tools)?e.tools:[],errorsByType:p,markers:Array.isArray(e.markers)?e.markers:[]}},FQ=e=>{let t=jh[e.range];if(t)return t;let r=Math.max(1,Math.round(e.windowMinutes/60));return{bucket:CCe(e.bucketSeconds),prev:`vs previous ${r}h`,title:`last ${r} hours`}},NCe=e=>{let[t,r]=(0,ze.useState)(()=>typeof window<"u"&&window.innerWidth{let n=window.matchMedia(`(max-width: ${e-1}px)`),o=()=>r(n.matches);return o(),n.addEventListener("change",o),()=>n.removeEventListener("change",o)},[e]),t};function c3(){let[e,t]=(0,ze.useState)(u3),[r,n]=(0,ze.useState)(""),[o,a]=(0,ze.useState)(null),[i,s]=(0,ze.useState)(!0),[l,u]=(0,ze.useState)(null),[c,d]=(0,ze.useState)(!1),p=(0,ze.useRef)(0),f=NCe(hCe),m=(0,ze.useRef)(null),y=(0,ze.useCallback)(async()=>{let S=++p.current;try{let k=new URLSearchParams({range:e});r&&k.set("agent",r);let[w,_]=await Promise.all([zQ(k),r?zQ(new URLSearchParams({range:e})).catch(()=>null):null]);if(S!==p.current)return;let A=r?_?.agents:w.agents;Array.isArray(A)&&(m.current=A),a({data:w,ranking:Array.isArray(A)?A:m.current}),u(null)}catch(k){if(S!==p.current)return;u(k.message)}finally{S===p.current&&s(!1)}},[e,r]);(0,ze.useEffect)(()=>{let S=!1;d(!0),y().finally(()=>{S||d(!1)});let k=setInterval(y,BQ);return()=>{S=!0,clearInterval(k)}},[y]);let b=(0,ze.useMemo)(()=>o?ECe(o.data,e):null,[o,e]),g=(0,ze.useMemo)(()=>b?b.agent?kCe(o.ranking,b.agents):b.agents:[],[b,o]),h=(0,ze.useMemo)(()=>g.map(S=>S.name).filter(Boolean),[g]),v=(0,ze.useMemo)(()=>{let S=Object.fromEntries(h.map((w,_)=>[w,Dh[_%Dh.length]])),k=h.length;return(b?b.agents:[]).forEach(w=>{w.name&&!S[w.name]&&(S[w.name]=Dh[k++%Dh.length])}),w=>S[w]||Dh[0]},[h,b]),x=(0,ze.useMemo)(()=>b?OCe(b,v):null,[b,v]);return i?ze.default.createElement("div",{className:"flex items-center justify-center h-64"},ze.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2",style:{borderBottomColor:"var(--color-accent-ui)"}})):l||!b?ze.default.createElement("div",null,ze.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:R2}},"Metrics"),ze.default.createElement("div",{style:{marginTop:16,padding:"12px 16px",background:"var(--color-error-soft)",borderRadius:8,color:"var(--color-error-text)",fontSize:14}},"Failed to load metrics",l?`: ${l}`:"")):ze.default.createElement(TCe,{m:b,view:x,railAgents:g,range:jh[e]?e:u3,agent:r,agentOptions:r&&!h.includes(r)?[...h,r]:h,colorFor:v,narrow:f,pending:c,onRange:t,onAgent:n})}function TCe({m:e,view:t,railAgents:r=e.agents,range:n,agent:o,agentOptions:a,colorFor:i,narrow:s,pending:l=!1,onRange:u,onAgent:c}){let d=FQ(e),p=e.totals.requests===0,f=m=>c(o===m?"":m);return ze.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16,width:"100%",maxWidth:1600,boxSizing:"border-box",color:R2,fontSize:13}},ze.default.createElement("div",{style:{display:"flex",alignItems:"flex-end",gap:16,flexWrap:"wrap"}},ze.default.createElement("div",{style:{flex:1,minWidth:240}},ze.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em"}},"Metrics"),ze.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)"}},"Requests, latency, errors, tokens and cost across every agent \u2014 ",d.title,o?` \xB7 ${o}`:"")),ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"}},ze.default.createElement("select",{value:o,onChange:m=>c(m.target.value),"aria-label":"Filter by agent",style:{padding:"6px 10px",borderRadius:8,fontSize:13,fontFamily:"inherit",border:"1px solid var(--color-border-strong)",background:"var(--color-card)",color:R2,cursor:"pointer"}},ze.default.createElement("option",{value:""},"All agents"),a.map(m=>ze.default.createElement("option",{key:m,value:m},m))),e.environment&&ze.default.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:6,padding:"6px 10px",borderRadius:8,border:"1px solid var(--color-border)",fontFamily:U,fontSize:11,color:"var(--color-text-cell)",background:"var(--color-card)"}},ze.default.createElement("span",{style:{color:"var(--color-text-muted)"}},"env"),e.environment),ze.default.createElement(qi,{options:yCe,value:n,onChange:u}),ze.default.createElement("span",{title:l?"loading\u2026":`refreshes every ${BQ/1e3}s`,style:{display:"inline-flex",alignItems:"center",gap:6,fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},ze.default.createElement("span",{style:{width:7,height:7,borderRadius:"50%",background:l?"var(--color-text-muted)":"var(--color-success)"}}),"live \xB7 ",d.bucket," buckets"))),p?ze.default.createElement(je,{style:{padding:"40px 24px",textAlign:"center",fontSize:14,color:"var(--color-text-secondary)"}},"No traffic yet \u2014 run an agent, or point your app's ActiveAgent telemetry at this workspace",ze.default.createElement("div",{style:{marginTop:8,fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},o||"all agents"," \xB7 ",d.title)):ze.default.createElement(ze.default.Fragment,null,ze.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:12,opacity:l?.6:1}},t.signals.map(m=>ze.default.createElement(DQ,{key:m.label,...m,deltaSub:d.prev}))),ze.default.createElement("div",{style:{display:"grid",gridTemplateColumns:s?"minmax(0, 1fr)":"minmax(0, 2.3fr) minmax(300px, 1fr)",gap:16,alignItems:"start",opacity:l?.6:1}},ze.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:16,minWidth:0}},t.panels.map(m=>ze.default.createElement(jQ,{key:m.title,...m,xLabels:t.xLabels,height:t3}))),ze.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16,minWidth:0}},ze.default.createElement(Ih,{label:"Agents",qualifier:"by requests \xB7 click to filter"},ze.default.createElement(n3,{template:"minmax(0, 1fr) 44px 44px 40px 52px",columns:["req","p95","err","cost"]}),r.length===0&&ze.default.createElement(Z0,null,"no agents in this window"),r.map(m=>ze.default.createElement(J2,{key:m.name,template:"minmax(0, 1fr) 44px 44px 40px 52px",active:o===m.name,onClick:()=>f(m.name),title:o===m.name?"Show all agents":`Filter to ${m.name}`},ze.default.createElement("div",{style:{minWidth:0}},ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0}},ze.default.createElement(a3,{color:i(m.name)}),ze.default.createElement("span",{style:{fontSize:12,fontWeight:600,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.name)),ze.default.createElement(i3,{pct:m.share_pct,color:i(m.name)})),ze.default.createElement(ys,null,On(m.requests)),ze.default.createElement(ys,{color:"var(--color-text-secondary)"},Bn(m.p95_ms)),ze.default.createElement(ys,{color:Wt(m.error_rate)>=1.5?"var(--color-error-text)":"var(--color-text-secondary)"},LQ(m.error_rate)),ze.default.createElement(ys,null,v0(m.cost))))),ze.default.createElement(Ih,{label:"Models",qualifier:"by tokens"},e.models.length===0&&ze.default.createElement(Z0,null,"no model usage in this window"),e.models.map((m,y)=>ze.default.createElement(J2,{key:`${m.model}-${m.provider}-${y}`,template:"minmax(0, 1fr) 52px 56px"},ze.default.createElement("div",{style:{minWidth:0}},ze.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:6,minWidth:0}},ze.default.createElement("span",{style:{fontFamily:U,fontSize:11,fontWeight:600,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.model||"unknown"),m.provider&&ze.default.createElement("span",{style:{fontFamily:U,fontSize:10,color:"var(--color-text-muted)"}},m.provider)),ze.default.createElement(i3,{pct:m.share_pct,color:"var(--color-token-in)"})),ze.default.createElement(ys,null,On(m.tokens)),ze.default.createElement(ys,{color:"var(--color-text-secondary)"},v0(m.cost))))),ze.default.createElement(Ih,{label:"Slowest actions",qualifier:"p95"},e.actions.length===0&&ze.default.createElement(Z0,null,"no actions in this window"),e.actions.map(m=>ze.default.createElement(o3,{key:m.name},ze.default.createElement("span",{title:m.name,style:{flex:1,minWidth:0,fontFamily:U,fontSize:11,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.name),ze.default.createElement(s3,{pct:t.slowestP95?Wt(m.p95_ms)/t.slowestP95*100:0,color:i(m.agent)}),ze.default.createElement(ys,{weight:600,width:40},Bn(m.p95_ms))))),ze.default.createElement(Ih,{label:"Tools",qualifier:"by calls"},ze.default.createElement(n3,{template:"minmax(0, 1fr) 44px 48px 40px",columns:["calls","avg","err"]}),e.tools.length===0&&ze.default.createElement(Z0,null,"no tool calls in this window"),e.tools.map(m=>ze.default.createElement(J2,{key:m.name,template:"minmax(0, 1fr) 44px 48px 40px",padding:"7px 14px"},ze.default.createElement("span",{title:m.name,style:{fontFamily:U,fontSize:11,fontWeight:600,color:"var(--span-tool)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.name),ze.default.createElement(ys,null,On(m.calls)),ze.default.createElement(ys,{color:"var(--color-text-secondary)"},Bn(m.avg_ms)),ze.default.createElement(ys,{color:Wt(m.error_rate)>=2?"var(--color-error-text)":"var(--color-text-secondary)"},LQ(m.error_rate))))),ze.default.createElement(Ih,{label:"Errors by type",meta:`${Math.round(e.totals.errors)} total`},e.errorsByType.map(m=>ze.default.createElement(o3,{key:m.type},ze.default.createElement(a3,{color:$Q(m.type)}),ze.default.createElement("span",{style:{flex:1,minWidth:0,fontSize:12,color:"var(--color-text-cell)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.type),ze.default.createElement(s3,{pct:t.errorTotal?Wt(m.count)/t.errorTotal*100:0,color:$Q(m.type)}),ze.default.createElement(ys,{weight:600,width:32},Math.round(Wt(m.count))))))))))}function OCe(e,t){let{series:r,totals:n,deltas:o}=e,a=r.length,i=FQ(e),s=r.map($=>new Date($.ts)),l=e.windowMinutes>=2880,u=$=>Number.isNaN($.getTime())?"":l?`${bCe[$.getDay()]} ${l3($.getHours())}h`:`${l3($.getHours())}:${l3($.getMinutes())}`,c=a?[0,1,2,3,4,5,6].map($=>$===6?"now":u(s[Math.round($*(a-1)/6)])):[],d=$=>r.map(ee=>Wt(ee[$])),p=d("requests"),f=d("errors"),m=d("tokens_in"),y=d("tokens_out"),b=d("cost"),g=d("tool_calls"),h=d("tool_errors"),v=$=>r.map(ee=>ee[$]==null?null:Wt(ee[$])),x=v("p50_ms"),S=v("p95_ms"),k=v("p99_ms"),w=r.map($=>$.requests_by_agent||{}),_=e.agents.map($=>$.name).filter(Boolean);w.forEach($=>Object.keys($).forEach(ee=>{_.includes(ee)||_.push(ee)}));let A=_.length?_.map($=>({label:$,color:t($),data:w.map(ee=>Wt(ee[$]))})):[{label:"requests",color:Dh[0],data:p}],C=J0.map($=>({label:$.type,color:$.color,data:r.map(ee=>Wt((ee.errors_by_type||{})[$.type]))})),N=(Wt(e.bucketSeconds)||(a>1?(s[1]-s[0])/1e3:0))*1e3,L=($,ee)=>{if(!$||a<2||!N)return null;let F=new Date($.ts).getTime();if(Number.isNaN(F))return null;let et=Math.min(a-1,Math.max(0,Math.floor((F-s[0].getTime())/N)))/(a-1);return{left:et*100,label:ee,flip:et>.55}},Q=e.markers.filter($=>$.kind==="deploy").sort(($,ee)=>new Date($.ts)-new Date(ee.ts)).slice(-vCe).map($=>L($,$.label)).filter(Boolean),B=e.markers.find($=>$.kind==="incident"),K=B?L(B,_Ce(B)):null,T=K?[K]:[],O=Mh(Ys(p)*1.1),I=Mh(Ys(f)*1.15),P=Mh(Math.max(Ys(k),Ys(S),Ys(x))*1.05),j=Mh(Math.max(Ys(m),Ys(y))*1.1),M=r3(Ys(b)*1.1),W=MQ(M),Y=Mh(Ys(g)*1.1),z=Wt(n.requests),V=Wt(n.requests_per_minute),q=Wt(n.errors),oe=Wt(n.error_rate),Me=Wt(n.tokens)||Wt(n.tokens_in)+Wt(n.tokens_out),fe=Wt(n.cost),le=n.cost_per_request!=null?Wt(n.cost_per_request):z?fe/z:0,R=Wt(n.tool_calls),te=n.tool_error_rate!=null?Wt(n.tool_error_rate):R?Wt(n.tool_errors)/R*100:0,He=Wt(e.errorsByType.find($=>$.type===J0[0].type)?.count),_e=[{title:"Requests",sub:`per ${i.bucket} \xB7 stacked by agent`,value:`${On(z)} \xB7 ${V.toFixed(1)}/min`,legend:A.map($=>({label:$.label,color:$.color})),ticks:xf(O,On),buckets:X0(A,O,$=>`${u(s[$])} \xB7 ${Math.round(p[$])} req`),markers:Q},{title:"Latency",sub:"generation percentiles",value:`p50 ${Bn(n.p50_ms)}`,legend:[{label:`p50 ${Bn(n.p50_ms)}`,color:"var(--color-token-in)"},{label:`p95 ${Bn(n.p95_ms)}`,color:"var(--color-warning)"},{label:`p99 ${Bn(n.p99_ms)}`,color:"var(--color-error)"}],ticks:xf(P,SCe),lines:[{points:bf(k,P),color:"var(--color-error)",width:1.5},{points:bf(S,P),color:"var(--color-warning)",width:1.5},{points:bf(x,P),color:"var(--color-token-in)",width:2}],areas:[{points:Z2(x,P),color:"var(--color-token-in)"}],markers:T},{title:"Errors",sub:`per ${i.bucket} \xB7 by type`,value:`${oe.toFixed(2)}% \xB7 ${Q2(Math.round(q),"error")}`,valueColor:oe>1?"var(--color-error)":R2,legend:C.map($=>({label:$.label,color:$.color})),ticks:xf(I,$=>String(Math.round($))),buckets:X0(C,I,$=>`${u(s[$])} \xB7 ${Q2(Math.round(f[$]),"error")}`),markers:T},{title:"Tokens",sub:`per ${i.bucket} \xB7 input / output`,value:`${On(Me)} \xB7 in ${On(n.tokens_in)} / out ${On(n.tokens_out)}`,legend:[{label:"input",color:"var(--color-token-in)"},{label:"output",color:"var(--color-token-out)"}],ticks:xf(j,On),lines:[{points:bf(m,j),color:"var(--color-token-in)",width:1.5},{points:bf(y,j),color:"var(--color-token-out)",width:1.5}],areas:[{points:Z2(m,j),color:"var(--color-token-in)"},{points:Z2(y,j),color:"var(--color-token-out)"}]},{title:"Cost",sub:`estimated \xB7 per ${i.bucket}`,value:`${v0(fe)} \xB7 ${x0(le)}/req`,legend:[{label:"spend",color:"var(--color-text-secondary)"}],ticks:xf(M,$=>x0($,W)),buckets:X0([{color:"var(--color-text-secondary)",data:b}],M,$=>`${u(s[$])} \xB7 ${x0(b[$],W)}`)},{title:"Tool calls",sub:`per ${i.bucket} \xB7 MCP + agent-defined`,value:`${On(R)} \xB7 ${te.toFixed(1)}% errors`,legend:[{label:"calls",color:"var(--span-tool)"},{label:"errors",color:"var(--color-error)"}],ticks:xf(Y,On),buckets:X0([{color:"var(--span-tool)",data:g.map(($,ee)=>Math.max(0,$-h[ee]))},{color:"var(--color-error)",data:h}],Y,$=>`${u(s[$])} \xB7 ${Q2(Math.round(g[$]),"call")}`)}],D=($,ee,F)=>{let me=$==null?null:Wt($);return me==null||me===0?"muted":ee&&ee(me)?"success":F&&F(me)?"error":"muted"},G=($,ee,F,me,et,rt,ge,ue)=>({label:$,value:ee,unit:F,sub:me,delta:et,deltaColor:xCe[rt],spark:IQ(ge),sparkColor:ue});return{signals:[G("Requests",On(z),"",`${V.toFixed(1)} req/min`,mh(o.requests_pct),D(o.requests_pct,$=>$>0,null),p,"var(--color-token-in)"),G("Latency",Bn(n.p50_ms),"p50",`p95 ${Bn(n.p95_ms)} \xB7 p99 ${Bn(n.p99_ms)}`,mh(o.p50_pct),D(o.p50_pct,$=>$<0,$=>$>0),x,"var(--color-token-in)"),G("Error rate",oe.toFixed(2),"%",`${Q2(Math.round(q),"error")} \xB7 ${Math.round(He)} rate-limited`,mh(o.error_rate_pt," pt",1),D(o.error_rate_pt,$=>$<0,$=>$>0),f,"var(--color-error)"),G("Tokens",On(Me),"",`in ${On(n.tokens_in)} \xB7 out ${On(n.tokens_out)}`,mh(o.tokens_pct),"muted",m.map(($,ee)=>$+y[ee]),"var(--color-token-in)"),G("Cost",v0(fe),"",`${x0(le)} per request`,mh(o.cost_pct),"muted",b,"var(--color-text-secondary)")],panels:_e,xLabels:c,slowestP95:Ys(e.actions.map($=>$.p95_ms)),errorTotal:wCe(e.errorsByType.map($=>$.count))}}var Be=Z(J());var PCe=6e4,MCe=[{value:24,label:"24h"},{value:168,label:"7d"},{value:720,label:"30d"}],UQ={mcp:{light:"#7c3aed",dark:"#c4b5fd",bgLight:"#f5f3ff",bgDark:"rgba(124,58,237,0.15)"},builtin:{light:"#2563eb",dark:"#93c5fd",bgLight:"#eff6ff",bgDark:"rgba(37,99,235,0.15)"},agent:{light:"#15803d",dark:"#86efac",bgLight:"#f0fdf4",bgDark:"rgba(34,197,94,0.12)"}},Q0=e=>e==null?"0":e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e),WQ=e=>e==null?"\u2014":e>=1e3?`${(e/1e3).toFixed(2)}s`:`${Math.round(e)}ms`,ICe=e=>{if(!e)return"\u2014";let t=new Date(e),r=Math.round((Date.now()-t.getTime())/6e4);if(r<1)return"just now";if(r<60)return`${r}m ago`;let n=Math.round(r/60);return n<24?`${n}h ago`:`${Math.round(n/24)}d ago`};function d3({onOpenServer:e}){let{darkMode:t}=ut(),[r,n]=(0,Be.useState)(null),[o,a]=(0,Be.useState)(!0),[i,s]=(0,Be.useState)(null),[l,u]=(0,Be.useState)("all"),[c,d]=(0,Be.useState)(""),[p,f]=(0,Be.useState)(168),[m,y]=(0,Be.useState)(null),b=(0,Be.useCallback)(async()=>{try{let A=new URLSearchParams({hours:String(p)});l!=="all"&&A.set("origin",l),c.trim()&&A.set("q",c.trim());let C=await fetch(`/api/tools?${A}`);if(!C.ok)throw new Error(`Request failed (${C.status})`);n(await C.json()),s(null)}catch(A){s(A.message)}finally{a(!1)}},[l,c,p]);(0,Be.useEffect)(()=>{let A=setTimeout(b,c?250:0);return()=>clearTimeout(A)},[b,c]),(0,Be.useEffect)(()=>{let A=setInterval(b,PCe);return()=>clearInterval(A)},[b]);let g={bg:t?"transparent":"#f9fafb",cardBg:t?"rgba(255,255,255,0.05)":"#ffffff",border:t?"rgba(255,255,255,0.1)":"#e5e7eb",borderLight:t?"rgba(255,255,255,0.05)":"#f3f4f6",textPrimary:t?"#ffffff":"#111827",textSecondary:t?"rgba(255,255,255,0.6)":"#6b7280",textMuted:t?"rgba(255,255,255,0.4)":"#9ca3af",textCell:t?"rgba(255,255,255,0.7)":"#4b5563",error:"#ef4444",errorBg:t?"rgba(239,68,68,0.2)":"#fef2f2",inputBg:t?"rgba(255,255,255,0.06)":"#ffffff"},h=A=>{let C=UQ[A]||UQ.agent;return{fg:t?C.dark:C.light,bg:t?C.bgDark:C.bgLight}};if(o&&!r)return Be.default.createElement("div",{className:"flex items-center justify-center h-64"},Be.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));if(i&&!r)return Be.default.createElement("div",{style:{padding:"24px"}},Be.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:g.textPrimary,margin:0}},"Tools"),Be.default.createElement("div",{style:{marginTop:"16px",padding:"12px 16px",background:g.errorBg,borderRadius:"8px",color:g.error,fontSize:"14px"}},"Failed to load tools: ",i));let{tools:v=[],summary:x={},origins:S={},sources:k={}}=r||{},w=!k.telemetry&&!k.generations&&!k.messages&&!k.declared,_=({label:A,value:C,hint:N,tone:L})=>Be.default.createElement("div",{style:{background:g.cardBg,borderRadius:"12px",padding:"20px",border:`1px solid ${g.border}`}},Be.default.createElement("div",{style:{fontSize:"11px",color:g.textSecondary,textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:"8px"}},A),Be.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",fontFamily:"monospace",color:L||g.textPrimary}},C),N&&Be.default.createElement("div",{style:{fontSize:"13px",color:g.textSecondary,marginTop:"8px"}},N));return Be.default.createElement("div",{style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)",backgroundColor:g.bg}},Be.default.createElement("div",{style:{padding:"24px 24px 16px 24px",borderBottom:`1px solid ${g.border}`,marginBottom:"16px"}},Be.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:"16px",flexWrap:"wrap"}},Be.default.createElement("div",null,Be.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:g.textPrimary,margin:0}},"Tools"),Be.default.createElement("p",{style:{fontSize:"14px",color:g.textSecondary,marginTop:"4px"}},"Detected from telemetry spans, generation request bodies, and agent records \u2014 nothing to register by hand")),Be.default.createElement("div",{style:{display:"flex",gap:"4px"}},MCe.map(A=>Be.default.createElement("button",{key:A.value,onClick:()=>f(A.value),style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${p===A.value?"#ef4444":g.border}`,background:p===A.value?t?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:p===A.value?"#ef4444":g.textSecondary}},A.label))))),Be.default.createElement("div",{style:{padding:"0 24px 24px 24px"}},Be.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:"16px",marginBottom:"16px"}},Be.default.createElement(_,{label:"Tools Detected",value:Q0(x.total_tools),hint:`${x.active_tools||0} called in this window`}),Be.default.createElement(_,{label:"Tool Calls",value:Q0(x.total_calls),hint:`${WQ(x.avg_duration_ms)} average`}),Be.default.createElement(_,{label:"Error Rate",value:`${x.error_rate||0}%`,tone:x.error_rate>5?g.error:g.textPrimary,hint:`${x.total_errors||0} failed call${x.total_errors===1?"":"s"}`}),Be.default.createElement(_,{label:"From MCP",value:Q0(x.mcp_tools),hint:`across ${x.mcp_servers_active||0} active server${x.mcp_servers_active===1?"":"s"}`}),Be.default.createElement(_,{label:"Never Called",value:Q0(x.unused_tools),hint:"offered or configured, unused"})),Be.default.createElement("div",{style:{display:"flex",gap:"8px",marginBottom:"16px",flexWrap:"wrap",alignItems:"center"}},Object.entries(S).map(([A,C])=>Be.default.createElement("button",{key:A,onClick:()=>u(A),style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${l===A?"#ef4444":g.border}`,background:l===A?t?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:l===A?"#ef4444":g.textSecondary}},C)),Be.default.createElement("input",{value:c,onChange:A=>d(A.target.value),placeholder:"Filter by name\u2026",style:{marginLeft:"auto",padding:"6px 12px",fontSize:"13px",borderRadius:"6px",minWidth:"200px",border:`1px solid ${g.border}`,background:g.inputBg,color:g.textPrimary}})),Be.default.createElement("div",{style:{background:g.cardBg,borderRadius:"12px",border:`1px solid ${g.border}`,overflow:"hidden"}},v.length===0?Be.default.createElement("div",{style:{textAlign:"center",padding:"48px 24px",color:g.textSecondary,fontSize:"14px"}},w?"No tool activity yet \u2014 run an agent, or point your app's ActiveAgent telemetry at this workspace":"No tools match these filters"):Be.default.createElement("div",{style:{overflowX:"auto"}},Be.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse",minWidth:"760px"}},Be.default.createElement("thead",null,Be.default.createElement("tr",{style:{textAlign:"left",fontSize:"13px",color:g.textSecondary,borderBottom:`1px solid ${g.border}`}},Be.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500"}},"Tool"),Be.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500"}},"Source"),Be.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Calls"),Be.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Errors"),Be.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Avg"),Be.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Last seen"))),Be.default.createElement("tbody",null,v.map((A,C)=>{let N=h(A.origin),L=m===A.name;return Be.default.createElement(Be.default.Fragment,{key:A.name},Be.default.createElement("tr",{onClick:()=>y(L?null:A.name),style:{borderBottom:C{Q.stopPropagation(),A.mcp_server&&e&&e(A.mcp_server)},style:{fontSize:"11px",padding:"3px 8px",borderRadius:"6px",border:"none",background:N.bg,color:N.fg,fontFamily:"monospace",cursor:A.mcp_server&&e?"pointer":"default"},title:A.mcp_server?`Open ${A.mcp_server} in MCP Services`:A.source_label},A.source_label)),Be.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",color:g.textCell,fontFamily:"monospace"}},Q0(A.calls)),Be.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",fontFamily:"monospace",color:A.errors>0?g.error:g.textCell}},A.errors),Be.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",color:g.textCell,fontFamily:"monospace"}},WQ(A.avg_duration_ms)),Be.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",color:g.textMuted,fontSize:"13px"}},ICe(A.last_seen))),L&&Be.default.createElement("tr",{style:{borderBottom:CBe.default.createElement("span",{key:A,style:{color:k[A]?g.textSecondary:g.textMuted,opacity:k[A]?1:.5}},k[A]?"\u25CF":"\u25CB"," ",C)))))}function DCe({tool:e,colors:t,tone:r,darkMode:n}){let o=({label:a,children:i})=>Be.default.createElement("div",{style:{display:"flex",gap:"12px",fontSize:"13px",alignItems:"baseline"}},Be.default.createElement("span",{style:{color:t.textMuted,minWidth:"108px",fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.05em"}},a),Be.default.createElement("span",{style:{color:t.textCell,flex:1,wordBreak:"break-word"}},i));return Be.default.createElement("div",{style:{display:"grid",gap:"8px",padding:"12px 16px",borderRadius:"8px",background:n?"rgba(0,0,0,0.25)":"#ffffff",border:`1px solid ${t.border}`}},Be.default.createElement(o,{label:"Full name"},Be.default.createElement("code",{style:{fontFamily:"monospace"}},e.name)),e.description&&Be.default.createElement(o,{label:"Description"},e.description),Be.default.createElement(o,{label:"Parameters"},e.parameters?.length>0?Be.default.createElement("code",{style:{fontFamily:"monospace",color:r.fg}},e.parameters.join(", ")):Be.default.createElement("span",{style:{color:t.textMuted}},"none recorded")),Be.default.createElement(o,{label:"Agents"},e.agents?.length>0?e.agents.join(", "):Be.default.createElement("span",{style:{color:t.textMuted}},"\u2014")),e.configured_by?.length>0&&Be.default.createElement(o,{label:"Configured by"},e.configured_by.join(", ")),Be.default.createElement(o,{label:"Call breakdown"},Be.default.createElement("span",{style:{fontFamily:"monospace"}},e.traced_calls," traced \xB7 ",e.requested," requested \xB7 ",e.results," results")),e.sample_arguments&&Be.default.createElement(o,{label:"Last arguments"},Be.default.createElement("code",{style:{fontFamily:"monospace",fontSize:"12px",color:t.textMuted}},e.sample_arguments)),e.last_error&&Be.default.createElement(o,{label:"Last error"},Be.default.createElement("span",{style:{color:t.error}},e.last_error)),Be.default.createElement(o,{label:"Detected from"},e.detected_from?.join(", ")||"\u2014"))}var qe=Z(J());var jCe=6e4,$Ce=[{value:24,label:"24h"},{value:168,label:"7d"},{value:720,label:"30d"}],LCe=[{value:"all",label:"All"},{value:"active",label:"Active"},{value:"configured",label:"Configured"},{value:"available",label:"Available"}],zCe=["http","streamable_http","sse"],HQ={active:{light:"#15803d",dark:"#86efac",bgLight:"#f0fdf4",bgDark:"rgba(34,197,94,0.15)"},configured:{light:"#b45309",dark:"#fcd34d",bgLight:"#fffbeb",bgDark:"rgba(245,158,11,0.15)"},available:{light:"#4b5563",dark:"rgba(255,255,255,0.6)",bgLight:"#f3f4f6",bgDark:"rgba(255,255,255,0.08)"},idle:{light:"#4b5563",dark:"rgba(255,255,255,0.6)",bgLight:"#f3f4f6",bgDark:"rgba(255,255,255,0.08)"}},R0=e=>e==null?"0":e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e);function p3({focusServer:e,onOpenTools:t}){let{darkMode:r}=ut(),[n,o]=(0,qe.useState)(null),[a,i]=(0,qe.useState)(!0),[s,l]=(0,qe.useState)(null),[u,c]=(0,qe.useState)("all"),[d,p]=(0,qe.useState)(168),[f,m]=(0,qe.useState)(e||null),[y,b]=(0,qe.useState)(null),[g,h]=(0,qe.useState)(null),v=(0,qe.useCallback)(async()=>{try{let B=await fetch(`/api/mcp_servers?hours=${d}`);if(!B.ok)throw new Error(`Request failed (${B.status})`);o(await B.json()),l(null)}catch(B){l(B.message)}finally{i(!1)}},[d]);(0,qe.useEffect)(()=>{v();let B=setInterval(v,jCe);return()=>clearInterval(B)},[v]),(0,qe.useEffect)(()=>{e&&m(e)},[e]);let x={bg:r?"transparent":"#f9fafb",cardBg:r?"rgba(255,255,255,0.05)":"#ffffff",border:r?"rgba(255,255,255,0.1)":"#e5e7eb",borderLight:r?"rgba(255,255,255,0.05)":"#f3f4f6",textPrimary:r?"#ffffff":"#111827",textSecondary:r?"rgba(255,255,255,0.6)":"#6b7280",textMuted:r?"rgba(255,255,255,0.4)":"#9ca3af",textCell:r?"rgba(255,255,255,0.7)":"#4b5563",error:"#ef4444",errorBg:r?"rgba(239,68,68,0.2)":"#fef2f2",codeBg:r?"rgba(0,0,0,0.35)":"#f9fafb"},S=B=>{let K=HQ[B]||HQ.available;return{fg:r?K.dark:K.light,bg:r?K.bgDark:K.bgLight}},k=async B=>{b(B.key),h(null);try{let K=await fetch(`/api/mcp_servers/${encodeURIComponent(B.key)}/launch`,{method:"POST",headers:{"Content-Type":"application/json"}}),T=await K.json();if(!K.ok)throw new Error(T.reason||T.error||`Launch failed (${K.status})`);h({kind:"ok",text:`${B.name} is starting in a sandbox (${T.sandbox.session_id.slice(0,8)}\u2026)`}),v()}catch(K){h({kind:"error",text:K.message})}finally{b(null)}};if(a&&!n)return qe.default.createElement("div",{className:"flex items-center justify-center h-64"},qe.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));if(s&&!n)return qe.default.createElement("div",{style:{padding:"24px"}},qe.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:x.textPrimary,margin:0}},"MCP Services"),qe.default.createElement("div",{style:{marginTop:"16px",padding:"12px 16px",background:x.errorBg,borderRadius:"8px",color:x.error,fontSize:"14px"}},"Failed to load MCP services: ",s));let{servers:w=[],summary:_={},sandboxes:A=[],statuses:C={}}=n||{},N=u==="all"?w:w.filter(B=>B.status===u),L=new Set(A.flatMap(B=>B.mcp_servers||[])),Q=({label:B,value:K,hint:T})=>qe.default.createElement("div",{style:{background:x.cardBg,borderRadius:"12px",padding:"20px",border:`1px solid ${x.border}`}},qe.default.createElement("div",{style:{fontSize:"11px",color:x.textSecondary,textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:"8px"}},B),qe.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",fontFamily:"monospace",color:x.textPrimary}},K),T&&qe.default.createElement("div",{style:{fontSize:"13px",color:x.textSecondary,marginTop:"8px"}},T));return qe.default.createElement("div",{style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)",backgroundColor:x.bg}},qe.default.createElement("div",{style:{padding:"24px 24px 16px 24px",borderBottom:`1px solid ${x.border}`,marginBottom:"16px"}},qe.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:"16px",flexWrap:"wrap"}},qe.default.createElement("div",null,qe.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:x.textPrimary,margin:0}},"MCP Services"),qe.default.createElement("p",{style:{fontSize:"14px",color:x.textSecondary,marginTop:"4px"}},"Servers detected from your agents' traffic, plus the defaults you can connect or run in a sandbox")),qe.default.createElement("div",{style:{display:"flex",gap:"4px"}},$Ce.map(B=>qe.default.createElement("button",{key:B.value,onClick:()=>p(B.value),style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${d===B.value?"#ef4444":x.border}`,background:d===B.value?r?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:d===B.value?"#ef4444":x.textSecondary}},B.label))))),qe.default.createElement("div",{style:{padding:"0 24px 24px 24px"}},qe.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:"16px",marginBottom:"16px"}},qe.default.createElement(Q,{label:"Active",value:R0(_.active),hint:"called in this window"}),qe.default.createElement(Q,{label:"Configured",value:R0(_.configured),hint:"declared, no traffic yet"}),qe.default.createElement(Q,{label:"Available",value:R0(_.available),hint:"defaults you can connect"}),qe.default.createElement(Q,{label:"Tool Calls",value:R0(_.total_calls),hint:"through MCP servers"})),g&&qe.default.createElement("div",{style:{marginBottom:"16px",padding:"12px 16px",borderRadius:"8px",fontSize:"14px",background:g.kind==="error"?x.errorBg:r?"rgba(34,197,94,0.15)":"#f0fdf4",color:g.kind==="error"?x.error:r?"#86efac":"#15803d"}},g.text),qe.default.createElement("div",{style:{display:"flex",gap:"8px",marginBottom:"16px",flexWrap:"wrap"}},LCe.map(B=>qe.default.createElement("button",{key:B.value,onClick:()=>c(B.value),title:C[B.value]||"Every MCP service known to this workspace",style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${u===B.value?"#ef4444":x.border}`,background:u===B.value?r?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:u===B.value?"#ef4444":x.textSecondary}},B.label))),qe.default.createElement("div",{style:{display:"grid",gap:"12px"}},N.length===0?qe.default.createElement("div",{style:{background:x.cardBg,borderRadius:"12px",border:`1px solid ${x.border}`,textAlign:"center",padding:"48px 24px",color:x.textSecondary,fontSize:"14px"}},"No MCP services in this state"):N.map(B=>{let K=S(B.status),T=f===B.key,O=L.has(B.key);return qe.default.createElement("div",{key:B.key,style:{background:x.cardBg,borderRadius:"12px",border:`1px solid ${T?K.fg:x.border}`,overflow:"hidden"}},qe.default.createElement("div",{onClick:()=>m(T?null:B.key),style:{padding:"16px 20px",cursor:"pointer",display:"flex",alignItems:"center",gap:"16px",flexWrap:"wrap"}},qe.default.createElement("div",{style:{flex:1,minWidth:"220px"}},qe.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}},qe.default.createElement("span",{style:{fontSize:"15px",fontWeight:"600",color:x.textPrimary}},B.name),qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:K.bg,color:K.fg,textTransform:"uppercase",letterSpacing:"0.04em"}},B.status),B.first_party&&qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r?"rgba(239,68,68,0.15)":"#fef2f2",color:"#ef4444"}},"first-party"),Zd(B)&&qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r?"rgba(59,130,246,0.15)":"#eff6ff",color:r?"#93c5fd":"#1d4ed8"},title:"The app runtime of a checkout sandbox started from Settings \u2192 Integrations"},"sandbox runtime"),av(B)&&qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r?"rgba(245,158,11,0.15)":"#fffbeb",color:r?"#fcd34d":"#b45309"},title:"This checkout sandbox has stopped; agents may still name its runtime"},"not running"),nw(B)&&qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:x.borderLight,color:x.textMuted},title:"Seen in your traffic but not in the platform catalog"},"undocumented"),O&&qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r?"rgba(34,197,94,0.15)":"#f0fdf4",color:r?"#86efac":"#15803d"}},"\u25CF sandbox running")),B.description&&qe.default.createElement("div",{style:{fontSize:"13px",color:x.textSecondary,marginTop:"4px"}},B.description)),qe.default.createElement("div",{style:{display:"flex",gap:"24px",alignItems:"center"}},qe.default.createElement("div",{style:{textAlign:"right"}},qe.default.createElement("div",{style:{fontSize:"18px",fontFamily:"monospace",fontWeight:"600",color:x.textPrimary}},R0(B.calls)),qe.default.createElement("div",{style:{fontSize:"11px",color:x.textMuted}},"calls")),qe.default.createElement("div",{style:{textAlign:"right"}},qe.default.createElement("div",{style:{fontSize:"18px",fontFamily:"monospace",fontWeight:"600",color:B.errors>0?x.error:x.textPrimary}},B.errors||0),qe.default.createElement("div",{style:{fontSize:"11px",color:x.textMuted}},"errors")),B.launchable&&qe.default.createElement("button",{onClick:I=>{I.stopPropagation(),k(B)},disabled:y===B.key,style:{padding:"8px 14px",fontSize:"13px",borderRadius:"6px",border:"none",background:y===B.key?x.borderLight:"#ef4444",color:y===B.key?x.textMuted:"#ffffff",cursor:y===B.key?"wait":"pointer",fontWeight:"500",whiteSpace:"nowrap"},title:`Start ${B.name} in a sandbox session`},y===B.key?"Starting\u2026":O?"Start another":"Start in sandbox"))),T&&qe.default.createElement(BCe,{server:B,colors:x,tone:K,onOpenTools:t}))})),A.length>0&&qe.default.createElement("div",{style:{marginTop:"24px",background:x.cardBg,borderRadius:"12px",border:`1px solid ${x.border}`,padding:"20px"}},qe.default.createElement("h3",{style:{fontSize:"16px",fontWeight:"600",color:x.textPrimary,margin:"0 0 12px 0"}},"Running sandboxes"),qe.default.createElement("div",{style:{display:"grid",gap:"8px"}},A.map(B=>qe.default.createElement("div",{key:B.session_id,style:{display:"flex",justifyContent:"space-between",gap:"12px",fontSize:"13px",color:x.textCell,flexWrap:"wrap"}},qe.default.createElement("span",{style:{fontFamily:"monospace"}},(B.mcp_servers||[]).join(", ")||B.sandbox_type),qe.default.createElement("span",{style:{color:x.textMuted}},B.status," \xB7 ",B.runs_count,"/",B.max_runs," runs \xB7 expires ",new Date(B.expires_at).toLocaleTimeString())))))))}function BCe({server:e,colors:t,tone:r,onOpenTools:n}){let o=({label:i,children:s})=>qe.default.createElement("div",{style:{display:"flex",gap:"12px",fontSize:"13px",alignItems:"baseline"}},qe.default.createElement("span",{style:{color:t.textMuted,minWidth:"120px",fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.05em"}},i),qe.default.createElement("span",{style:{color:t.textCell,flex:1,wordBreak:"break-word"}},s)),a=e.command||e.url;return qe.default.createElement("div",{style:{padding:"0 20px 20px 20px",display:"grid",gap:"10px"}},qe.default.createElement("div",{style:{height:"1px",background:t.borderLight,marginBottom:"4px"}}),a&&qe.default.createElement(o,{label:zCe.includes(e.transport)?"Endpoint":"Command"},qe.default.createElement("code",{style:{fontFamily:"monospace",fontSize:"12px",padding:"4px 8px",borderRadius:"4px",background:t.codeBg,display:"inline-block"}},a)),e.transport&&qe.default.createElement(o,{label:"Transport"},e.transport),e.categories?.length>0&&qe.default.createElement(o,{label:"Categories"},e.categories.join(", ")),e.requires_credentials?.length>0&&qe.default.createElement(o,{label:"Requires"},e.requires_credentials.join(", ")),qe.default.createElement(o,{label:e.tool_count>0?"Tools used":"Tools offered"},e.tools?.length>0?qe.default.createElement("span",{style:{display:"flex",gap:"6px",flexWrap:"wrap"}},e.tools.map(i=>qe.default.createElement("code",{key:i,style:{fontFamily:"monospace",fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r.bg,color:r.fg}},i))):qe.default.createElement("span",{style:{color:t.textMuted}},"none recorded")),e.agents?.length>0&&qe.default.createElement(o,{label:"Used by"},e.agents.join(", ")),e.configured_by?.length>0&&qe.default.createElement(o,{label:"Configured by"},e.configured_by.join(", ")),e.last_seen&&qe.default.createElement(o,{label:"Last call"},new Date(e.last_seen).toLocaleString()),qe.default.createElement("div",{style:{display:"flex",gap:"12px",marginTop:"4px",flexWrap:"wrap"}},e.docs_url&&qe.default.createElement("a",{href:e.docs_url,target:"_blank",rel:"noopener noreferrer",style:{fontSize:"13px",color:"#ef4444",textDecoration:"none"}},"Documentation \u2192"),e.calls>0&&n&&qe.default.createElement("button",{onClick:()=>n(e.key),style:{fontSize:"13px",color:"#ef4444",background:"none",border:"none",padding:0,cursor:"pointer"}},"View its tools \u2192")))}var re=Z(J());var yd=Z(J());var tA={logger:typeof console<"u"?console:void 0,WebSocket:typeof WebSocket<"u"?WebSocket:void 0},Fn={log(...e){this.enabled&&(e.push(Date.now()),tA.logger.log("[ActionCable]",...e))}},tb=()=>new Date().getTime(),eA=e=>(tb()-e)/1e3,rb=class{constructor(t){this.visibilityDidChange=this.visibilityDidChange.bind(this),this.connection=t,this.reconnectAttempts=0}start(){this.isRunning()||(this.startedAt=tb(),delete this.stoppedAt,this.startPolling(),addEventListener("visibilitychange",this.visibilityDidChange),Fn.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`))}stop(){this.isRunning()&&(this.stoppedAt=tb(),this.stopPolling(),removeEventListener("visibilitychange",this.visibilityDidChange),Fn.log("ConnectionMonitor stopped"))}isRunning(){return this.startedAt&&!this.stoppedAt}recordMessage(){this.pingedAt=tb()}recordConnect(){this.reconnectAttempts=0,delete this.disconnectedAt,Fn.log("ConnectionMonitor recorded connect")}recordDisconnect(){this.disconnectedAt=tb(),Fn.log("ConnectionMonitor recorded disconnect")}startPolling(){this.stopPolling(),this.poll()}stopPolling(){clearTimeout(this.pollTimeout)}poll(){this.pollTimeout=setTimeout((()=>{this.reconnectIfStale(),this.poll()}),this.getPollInterval())}getPollInterval(){let{staleThreshold:t,reconnectionBackoffRate:r}=this.constructor,n=Math.pow(1+r,Math.min(this.reconnectAttempts,10)),a=(this.reconnectAttempts===0?1:r)*Math.random();return t*1e3*n*(1+a)}reconnectIfStale(){this.connectionIsStale()&&(Fn.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${eA(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`),this.reconnectAttempts++,this.disconnectedRecently()?Fn.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${eA(this.disconnectedAt)} s`):(Fn.log("ConnectionMonitor reopening"),this.connection.reopen()))}get refreshedAt(){return this.pingedAt?this.pingedAt:this.startedAt}connectionIsStale(){return eA(this.refreshedAt)>this.constructor.staleThreshold}disconnectedRecently(){return this.disconnectedAt&&eA(this.disconnectedAt){(this.connectionIsStale()||!this.connection.isOpen())&&(Fn.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`),this.connection.reopen())}),200)}};rb.staleThreshold=6;rb.reconnectionBackoffRate=.15;var KQ={message_types:{welcome:"welcome",disconnect:"disconnect",ping:"ping",confirmation:"confirm_subscription",rejection:"reject_subscription"},disconnect_reasons:{unauthorized:"unauthorized",invalid_request:"invalid_request",server_restart:"server_restart",remote:"remote"},default_mount_path:"/cable",protocols:["actioncable-v1-json","actioncable-unsupported"]},{message_types:eb,protocols:f3}=KQ,FCe=f3.slice(0,f3.length-1),qQ=[].indexOf,nb=class{constructor(t){this.open=this.open.bind(this),this.consumer=t,this.subscriptions=this.consumer.subscriptions,this.monitor=new rb(this),this.disconnected=!0}send(t){return this.isOpen()?(this.webSocket.send(JSON.stringify(t)),!0):!1}open(){if(this.isActive())return Fn.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`),!1;{let t=[...f3,...this.consumer.subprotocols||[]];return Fn.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${t}`),this.webSocket&&this.uninstallEventHandlers(),this.webSocket=new tA.WebSocket(this.consumer.url,t),this.installEventHandlers(),this.monitor.start(),!0}}close({allowReconnect:t}={allowReconnect:!0}){if(t||this.monitor.stop(),this.isOpen())return this.webSocket.close()}reopen(){if(Fn.log(`Reopening WebSocket, current state is ${this.getState()}`),this.isActive())try{return this.close()}catch(t){Fn.log("Failed to reopen WebSocket",t)}finally{Fn.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`),setTimeout(this.open,this.constructor.reopenDelay)}else return this.open()}getProtocol(){if(this.webSocket)return this.webSocket.protocol}isOpen(){return this.isState("open")}isActive(){return this.isState("open","connecting")}triedToReconnect(){return this.monitor.reconnectAttempts>0}isProtocolSupported(){return qQ.call(FCe,this.getProtocol())>=0}isState(...t){return qQ.call(t,this.getState())>=0}getState(){if(this.webSocket){for(let t in tA.WebSocket)if(tA.WebSocket[t]===this.webSocket.readyState)return t.toLowerCase()}return null}installEventHandlers(){for(let t in this.events){let r=this.events[t].bind(this);this.webSocket[`on${t}`]=r}}uninstallEventHandlers(){for(let t in this.events)this.webSocket[`on${t}`]=function(){}}};nb.reopenDelay=500;nb.prototype.events={message(e){if(!this.isProtocolSupported())return;let{identifier:t,message:r,reason:n,reconnect:o,type:a}=JSON.parse(e.data);switch(this.monitor.recordMessage(),a){case eb.welcome:return this.triedToReconnect()&&(this.reconnectAttempted=!0),this.monitor.recordConnect(),this.subscriptions.reload();case eb.disconnect:return Fn.log(`Disconnecting. Reason: ${n}`),this.close({allowReconnect:o});case eb.ping:return null;case eb.confirmation:return this.subscriptions.confirmSubscription(t),this.reconnectAttempted?(this.reconnectAttempted=!1,this.subscriptions.notify(t,"connected",{reconnected:!0})):this.subscriptions.notify(t,"connected",{reconnected:!1});case eb.rejection:return this.subscriptions.reject(t);default:return this.subscriptions.notify(t,"received",r)}},open(){if(Fn.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`),this.disconnected=!1,!this.isProtocolSupported())return Fn.log("Protocol is unsupported. Stopping monitor and disconnecting."),this.close({allowReconnect:!1})},close(e){if(Fn.log("WebSocket onclose event"),!this.disconnected)return this.disconnected=!0,this.monitor.recordDisconnect(),this.subscriptions.notifyAll("disconnected",{willAttemptReconnect:this.monitor.isRunning()})},error(){Fn.log("WebSocket onerror event")}};var UCe=function(e,t){if(t!=null)for(let r in t){let n=t[r];e[r]=n}return e},m3=class{constructor(t,r={},n){this.consumer=t,this.identifier=JSON.stringify(r),UCe(this,n)}perform(t,r={}){return r.action=t,this.send(r)}send(t){return this.consumer.send({command:"message",identifier:this.identifier,data:JSON.stringify(t)})}unsubscribe(){return this.consumer.subscriptions.remove(this)}},g3=class{constructor(t){this.subscriptions=t,this.pendingSubscriptions=[]}guarantee(t){this.pendingSubscriptions.indexOf(t)==-1?(Fn.log(`SubscriptionGuarantor guaranteeing ${t.identifier}`),this.pendingSubscriptions.push(t)):Fn.log(`SubscriptionGuarantor already guaranteeing ${t.identifier}`),this.startGuaranteeing()}forget(t){Fn.log(`SubscriptionGuarantor forgetting ${t.identifier}`),this.pendingSubscriptions=this.pendingSubscriptions.filter((r=>r!==t))}startGuaranteeing(){this.stopGuaranteeing(),this.retrySubscribing()}stopGuaranteeing(){clearTimeout(this.retryTimeout)}retrySubscribing(){this.retryTimeout=setTimeout((()=>{this.subscriptions&&typeof this.subscriptions.subscribe=="function"&&this.pendingSubscriptions.map((t=>{Fn.log(`SubscriptionGuarantor resubscribing ${t.identifier}`),this.subscriptions.subscribe(t)}))}),500)}},h3=class{constructor(t){this.consumer=t,this.guarantor=new g3(this),this.subscriptions=[]}create(t,r){let n=t,o=typeof n=="object"?n:{channel:n},a=new m3(this.consumer,o,r);return this.add(a)}add(t){return this.subscriptions.push(t),this.consumer.ensureActiveConnection(),this.notify(t,"initialized"),this.subscribe(t),t}remove(t){return this.forget(t),this.findAll(t.identifier).length||this.sendCommand(t,"unsubscribe"),t}reject(t){return this.findAll(t).map((r=>(this.forget(r),this.notify(r,"rejected"),r)))}forget(t){return this.guarantor.forget(t),this.subscriptions=this.subscriptions.filter((r=>r!==t)),t}findAll(t){return this.subscriptions.filter((r=>r.identifier===t))}reload(){return this.subscriptions.map((t=>this.subscribe(t)))}notifyAll(t,...r){return this.subscriptions.map((n=>this.notify(n,t,...r)))}notify(t,r,...n){let o;return typeof t=="string"?o=this.findAll(t):o=[t],o.map((a=>typeof a[r]=="function"?a[r](...n):void 0))}subscribe(t){this.sendCommand(t,"subscribe")&&this.guarantor.guarantee(t)}confirmSubscription(t){Fn.log(`Subscription confirmed ${t}`),this.findAll(t).map((r=>this.guarantor.forget(r)))}sendCommand(t,r){let{identifier:n}=t;return this.consumer.send({command:r,identifier:n})}},y3=class{constructor(t){this._url=t,this.subscriptions=new h3(this),this.connection=new nb(this),this.subprotocols=[]}get url(){return WCe(this._url)}send(t){return this.connection.send(t)}connect(){return this.connection.open()}disconnect(){return this.connection.close({allowReconnect:!1})}ensureActiveConnection(){if(!this.connection.isActive())return this.connection.open()}addSubProtocol(t){this.subprotocols=[...this.subprotocols,t]}};function WCe(e){if(typeof e=="function"&&(e=e()),e&&!/^wss?:/i.test(e)){let t=document.createElement("a");return t.href=e,t.href=t.href,t.protocol=t.protocol.replace("http","ws"),t.href}else return e}function VQ(e=HCe("url")||KQ.default_mount_path){return new y3(e)}function HCe(e){let t=document.head.querySelector(`meta[name='action-cable-${e}']`);if(t)return t.getAttribute("content")}var rA=null;function qCe(){if(rA===null)try{rA=VQ()}catch{rA=!1}return rA||null}function $h(e,t,r,n=!0){let o=(0,yd.useRef)(null),a=(0,yd.useRef)(r);return(0,yd.useEffect)(()=>{a.current=r},[r]),(0,yd.useEffect)(()=>{if(!n||!e)return;let s=qCe();if(s)return o.current=s.subscriptions.create({channel:e,...t},{connected(){console.log(`[ActionCable] Connected to ${e}`,t)},disconnected(){console.log(`[ActionCable] Disconnected from ${e}`)},received(l){console.log(`[ActionCable] Received on ${e}:`,l),a.current&&a.current(l)},rejected(){console.warn(`[ActionCable] Subscription rejected for ${e}`)}}),()=>{o.current&&(console.log(`[ActionCable] Unsubscribing from ${e}`),o.current.unsubscribe(),o.current=null)}},[e,JSON.stringify(t),n]),{send:(0,yd.useCallback)((s,l)=>{o.current&&o.current.perform(s,l)},[])}}function Lh(e){return!e||typeof e!="object"||typeof e.type!="string"?null:{type:e.type,id:e.id??null,status:e.status??null}}var nA=[{id:"anthropic",name:"Anthropic",model:"claude-haiku-4-5",color:"bg-orange-500"},{id:"openai",name:"OpenAI",model:"gpt-4o",color:"bg-green-500"},{id:"ollama",name:"Ollama",model:"llama3.1:8b",color:"bg-purple-500"}],KCe={playwright_mcp:[{name:"Screenshot Example.com",task:"Take a screenshot of https://example.com",description:"Navigate to example.com and capture a screenshot"},{name:"Extract Hacker News Headlines",task:"Go to https://news.ycombinator.com and list the top 5 story titles with their scores",description:"Scrape the front page of Hacker News"},{name:"Check Wikipedia",task:"Navigate to https://en.wikipedia.org/wiki/Artificial_intelligence and extract the first paragraph",description:"Extract content from Wikipedia"},{name:"GitHub Trending",task:"Visit https://github.com/trending and list the top 3 trending repositories",description:"Check GitHub's trending repositories"}],comparison:[{name:"Explain Ruby Blocks",task:"Explain how Ruby blocks work with a simple example",description:"Compare how each model explains Ruby concepts"},{name:"Write a Haiku",task:"Write a haiku about programming",description:"Compare creative output across models"},{name:"Debug This Code",task:"What's wrong with this code? def add(a, b); a - b; end; puts add(2, 3)",description:"Compare debugging abilities"},{name:"Summarize AI",task:"Summarize the current state of AI in 3 sentences",description:"Compare factual knowledge and conciseness"}]},GQ={max_runs:10,timeout_seconds:300,session_duration_minutes:15};function v3({initialType:e="playwright_mcp",onClose:t,showAgents:r=!1}){let[n,o]=(0,re.useState)(e),[a,i]=(0,re.useState)(null),[s,l]=(0,re.useState)(""),[u,c]=(0,re.useState)([]),[d,p]=(0,re.useState)(null),[f,m]=(0,re.useState)(!1),[y,b]=(0,re.useState)(!1),[g,h]=(0,re.useState)(null),[v,x]=(0,re.useState)(null),[S,k]=(0,re.useState)(!1),[w,_]=(0,re.useState)(null),[A,C]=(0,re.useState)(!1),N=(0,re.useRef)(null),[L,Q]=(0,re.useState)(["anthropic"]),[B,K]=(0,re.useState)(!1),[T,O]=(0,re.useState)({}),[I,P]=(0,re.useState)([]),j=(0,re.useCallback)(async D=>{try{let G=await fetch(`/api/sandboxes/${D}`);if(!G.ok)return;let E=await G.json();i(E.sandbox),c(E.sandbox.runs||[])}catch(G){console.error("Could not refresh the sandbox session:",G)}},[]),M=(0,re.useCallback)(D=>{!Lh(D)||!a?.session_id||j(a.session_id)},[j,a?.session_id]);$h("SandboxChannel",{session_id:a?.session_id},M,!!a?.session_id),(0,re.useEffect)(()=>{Y(),W()},[n]);let W=async()=>{try{let D=await fetch("/api/usage");if(D.ok){let G=await D.json();_(G.usage)}}catch{console.log("Could not fetch usage (user may not be authenticated)")}};(0,re.useEffect)(()=>{if(!a?.expires_at)return;let D=setInterval(()=>{let G=new Date,E=new Date(a.expires_at),$=Math.max(0,Math.floor((E-G)/1e3));x($),$===0&&(i(ee=>({...ee,status:"expired"})),clearInterval(D))},1e3);return()=>clearInterval(D)},[a?.expires_at]),(0,re.useEffect)(()=>{N.current&&(N.current.scrollTop=N.current.scrollHeight)},[d?.result]);let Y=async()=>{b(!0),h(null);try{let D=await fetch("/api/sandboxes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sandbox_type:n})});if(!D.ok)throw new Error("Failed to create sandbox session");let G=await D.json();i(G.sandbox),c([]),p(null)}catch(D){h(D.message)}finally{b(!1)}},z=async()=>{!s.trim()||f||!a||(B&&L.length>1?await q():await V(L[0]||"anthropic"))},V=async D=>{m(!0),p({status:"running",task:s,provider:D,result:"",started_at:new Date().toISOString()});try{let G=await fetch(`/api/sandboxes/${a.session_id}/run`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({task:s,provider:D})}),E=await G.json();if(G.status===402&&E.upgrade_required){_(E.usage),k(!0),p($=>({...$,status:"failed",error:E.message||"Plan limit reached"})),m(!1);return}if(!G.ok)throw new Error(E.error||"Task execution failed");E.usage&&_(E.usage),le(E.run_id)}catch(G){p(E=>({...E,status:"failed",error:G.message})),m(!1)}},q=async()=>{m(!0),P([...L]),O({});let D={};L.forEach(G=>{D[G]={status:"running",result:"",started_at:new Date().toISOString()}}),O(D);try{let G=await fetch("/api/sandboxes/compare",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({task:s,providers:L,sandbox_id:a?.session_id,sandbox_type:n})});if(!G.ok){let $=await G.json();throw new Error($.error||"Comparison failed")}let E=await G.json();E.sandbox&&i(E.sandbox),oe(L,E.sandbox?.session_id||a?.session_id,E.sandbox?.runs_count??a?.runs_count??0)}catch(G){L.forEach(E=>{O($=>({...$,[E]:{status:"failed",error:G.message}}))}),m(!1),P([])}},oe=(D,G,E)=>{if(!G)return;let $=async()=>{try{let ee=await fetch(`/api/sandboxes/${G}`);if(!ee.ok)throw new Error(`HTTP ${ee.status}`);let F=await ee.json();i(F.sandbox);let me=F.sandbox.runs||[];c(me);let et=new Set;if(me.slice(E).forEach(rt=>{rt.provider&&(O(ge=>({...ge,[rt.provider]:{...rt,provider:rt.provider}})),(rt.status==="completed"||rt.status==="failed")&&et.add(rt.provider))}),D.every(rt=>et.has(rt))){m(!1),P([]);return}setTimeout($,1e3)}catch(ee){console.error("Comparison polling failed:",ee),m(!1),P([])}};setTimeout($,1e3)},Me=async()=>{if(a?.session_id)try{let G=await(await fetch(`/api/sandboxes/${a.session_id}`)).json();i(G.sandbox),c(G.sandbox.runs||[]),(G.sandbox.runs||[]).forEach(ee=>{ee.provider&&O(F=>({...F,[ee.provider]:{...ee,provider:ee.provider}}))}),L.every(ee=>{let F=T[ee];return F?.status==="completed"||F?.status==="failed"})&&(m(!1),P([]))}catch(D){console.error("Polling error:",D)}},fe=D=>{Q(G=>G.includes(D)?G.length===1?G:G.filter(E=>E!==D):[...G,D])},le=async D=>{let G=async()=>{try{let $=await(await fetch(`/api/sandboxes/${a.session_id}`)).json();i($.sandbox);let ee=$.sandbox.runs||[],F=ee[ee.length-1];if(F&&(p(F),c(ee),F.status==="completed"||F.status==="failed")){m(!1);return}setTimeout(G,1e3)}catch{m(!1)}};G()},R=D=>{D.key==="Enter"&&(D.metaKey||D.ctrlKey)&&z()},te=D=>{if(!D)return"--:--";let G=Math.floor(D/60),E=D%60;return`${G}:${E.toString().padStart(2,"0")}`},He=a?.status==="ready"&&a?.runs_count{C(!0);try{await Ph({planSlug:"pro",billingInterval:D})}catch(G){console.error("Checkout error:",G),h(G.message||"Failed to initiate checkout. Please try again."),C(!1)}};return re.default.createElement("div",{className:"h-full flex flex-col bg-gray-50"},r&&re.default.createElement("div",{className:"pb-6"},re.default.createElement(n0,{inline:!0})),re.default.createElement("div",{className:"bg-white border-b border-gray-200 px-6 py-4"},re.default.createElement("div",{className:"flex items-center justify-between"},re.default.createElement("div",{className:"flex items-center space-x-4"},re.default.createElement(In,{size:48,appearance:{hat:"fedora",hatAccessory:"theaterMasks",heldItem:"browser"}}),re.default.createElement("div",null,re.default.createElement("h1",{className:"text-xl font-semibold text-gray-900"},"PlaywrightMCP Demo"),re.default.createElement("p",{className:"text-sm text-gray-500"},"Try browser automation for free - no account required"))),re.default.createElement("div",{className:"flex items-center space-x-4"},a&&re.default.createElement("div",{className:"flex items-center space-x-3 text-sm"},re.default.createElement(ke,{tone:al(a.status)},a.status),re.default.createElement("span",{className:"text-gray-500"},a.runs_count,"/",a.max_runs," runs"),re.default.createElement("span",{className:`font-mono ${v<60?"text-red-500":"text-gray-500"}`},te(v))),t&&re.default.createElement("button",{onClick:t,className:"text-gray-400 hover:text-gray-600"},re.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},re.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})))))),re.default.createElement("div",{className:"flex-1 p-6 overflow-hidden"},re.default.createElement("div",{className:"grid grid-cols-3 gap-6 h-full"},re.default.createElement("div",{className:"col-span-2 flex flex-col space-y-4"},re.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},re.default.createElement("textarea",{value:s,onChange:D=>l(D.target.value),onKeyDown:R,placeholder:"Describe what you want the browser agent to do...",rows:3,disabled:!He,className:"w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-rose-500 focus:border-transparent resize-none disabled:bg-gray-100"}),re.default.createElement("div",{className:"flex items-center justify-between mt-3"},re.default.createElement("span",{className:"text-xs text-gray-400"},"Press ",re.default.createElement("kbd",{className:"px-1.5 py-0.5 bg-gray-100 rounded text-gray-600"},"Cmd")," + ",re.default.createElement("kbd",{className:"px-1.5 py-0.5 bg-gray-100 rounded text-gray-600"},"Enter")," to run"),re.default.createElement("button",{onClick:z,disabled:!s.trim()||!He,className:`flex items-center space-x-2 px-6 py-2 rounded-lg transition-colors ${s.trim()&&He?"bg-rose-500 text-white hover:bg-rose-600":"bg-gray-200 text-gray-400 cursor-not-allowed"}`},f?re.default.createElement(re.default.Fragment,null,re.default.createElement("span",{className:"animate-spin"},"\u25E0"),re.default.createElement("span",null,"Running...")):re.default.createElement(re.default.Fragment,null,re.default.createElement("span",null,"\u25B6"),re.default.createElement("span",null,"Run"))))),re.default.createElement("div",{className:"flex-1 bg-white rounded-xl border border-gray-200 flex flex-col overflow-hidden"},re.default.createElement("div",{className:"px-4 py-3 border-b border-gray-200 flex items-center justify-between"},re.default.createElement("h3",{className:"font-medium text-gray-900"},B&&Object.keys(T).length>0?"Comparison Results":"Output"),d&&!B&&re.default.createElement(ke,{tone:al(d.status)},d.status),B&&I.length>0&&re.default.createElement("span",{className:"text-xs text-blue-600"},"Running ",I.length," provider(s)...")),re.default.createElement("div",{ref:N,className:"flex-1 overflow-auto bg-gray-50"},y?re.default.createElement("div",{className:"flex items-center justify-center h-full text-gray-500 p-4"},re.default.createElement("span",{className:"animate-pulse"},"Starting sandbox...")):g?re.default.createElement("div",{className:"text-red-600 p-4"},g):B&&Object.keys(T).length>0?re.default.createElement("div",{className:"grid grid-cols-1 divide-y divide-gray-200"},L.map(D=>{let G=nA.find($=>$.id===D),E=T[D];return re.default.createElement("div",{key:D,className:"p-4"},re.default.createElement("div",{className:"flex items-center justify-between mb-2"},re.default.createElement("div",{className:"flex items-center space-x-2"},re.default.createElement("div",{className:`w-3 h-3 rounded-full ${G?.color||"bg-gray-400"}`}),re.default.createElement("span",{className:"font-medium text-gray-900"},G?.name||D),re.default.createElement("span",{className:"text-xs text-gray-500"},G?.model)),E&&re.default.createElement("div",{className:"flex items-center space-x-2"},re.default.createElement(ke,{tone:al(E.status)},E.status),E.tokens&&re.default.createElement("span",{className:"text-xs text-gray-500"},E.tokens," tokens"),E.duration_ms&&re.default.createElement("span",{className:"text-xs text-gray-500"},(E.duration_ms/1e3).toFixed(1),"s"))),re.default.createElement("div",{className:"bg-white rounded-lg border border-gray-200 p-3 font-mono text-sm max-h-48 overflow-auto"},E?.status==="running"?re.default.createElement("div",{className:"flex items-center space-x-2 text-gray-500"},re.default.createElement("span",{className:"animate-pulse"},"\u25CF"),re.default.createElement("span",null,"Processing...")):E?.error?re.default.createElement("div",{className:"text-red-600"},E.error):E?.result?re.default.createElement("pre",{className:"whitespace-pre-wrap text-gray-800"},E.result):re.default.createElement("span",{className:"text-gray-400"},"Waiting...")))})):d?re.default.createElement("div",{className:"p-4 font-mono text-sm"},d.provider&&re.default.createElement("div",{className:"flex items-center space-x-2 mb-3 pb-2 border-b border-gray-200"},re.default.createElement("div",{className:`w-2 h-2 rounded-full ${nA.find(D=>D.id===d.provider)?.color||"bg-gray-400"}`}),re.default.createElement("span",{className:"text-sm text-gray-600"},nA.find(D=>D.id===d.provider)?.name||d.provider)),d.status==="running"?re.default.createElement("div",{className:"flex items-center space-x-2 text-gray-500"},re.default.createElement("span",{className:"animate-pulse"},"\u25CF"),re.default.createElement("span",null,"Executing task...")):d.error?re.default.createElement("div",{className:"text-red-600"},re.default.createElement("div",{className:"font-semibold mb-2"},"Error:"),re.default.createElement("pre",{className:"whitespace-pre-wrap"},d.error)):re.default.createElement("pre",{className:"whitespace-pre-wrap text-gray-800"},d.result||"Processing...")):re.default.createElement("div",{className:"text-gray-400 text-center py-12"},re.default.createElement("p",{className:"mb-2"},"Select a sample task or enter your own"),re.default.createElement("p",{className:"text-xs"},B?`Compare results across ${L.length} providers`:"Task will execute using the selected provider"))))),re.default.createElement("div",{className:"space-y-4 overflow-auto"},re.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},re.default.createElement("div",{className:"flex items-center justify-between mb-3"},re.default.createElement("h4",{className:"font-medium text-gray-900"},"Providers"),re.default.createElement("label",{className:"flex items-center space-x-2 cursor-pointer"},re.default.createElement("input",{type:"checkbox",checked:B,onChange:D=>K(D.target.checked),className:"rounded border-gray-300 text-rose-500 focus:ring-rose-500"}),re.default.createElement("span",{className:"text-xs text-gray-600"},"Compare"))),re.default.createElement("div",{className:"space-y-2"},nA.map(D=>re.default.createElement("label",{key:D.id,className:`flex items-center justify-between p-2 rounded-lg border cursor-pointer transition-colors ${L.includes(D.id)?"border-rose-300 bg-rose-50":"border-gray-200 hover:bg-gray-50"}`},re.default.createElement("div",{className:"flex items-center space-x-3"},re.default.createElement("input",{type:"checkbox",checked:L.includes(D.id),onChange:()=>fe(D.id),className:"rounded border-gray-300 text-rose-500 focus:ring-rose-500"}),re.default.createElement("div",{className:`w-2 h-2 rounded-full ${D.color}`}),re.default.createElement("span",{className:"text-sm font-medium text-gray-900"},D.name)),re.default.createElement("span",{className:"text-xs text-gray-500"},D.model)))),B&&L.length>1&&re.default.createElement("div",{className:"mt-3 p-2 bg-purple-50 rounded-lg"},re.default.createElement("p",{className:"text-xs text-purple-700"},"Comparison mode: Run task on ",L.length," providers simultaneously"))),re.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},re.default.createElement("div",{className:"flex items-center justify-between mb-3"},re.default.createElement("h4",{className:"font-medium text-gray-900"},"Sample Tasks"),B&&re.default.createElement("button",{onClick:()=>o(n==="playwright_mcp"?"comparison":"playwright_mcp"),className:"text-xs text-rose-600 hover:text-rose-700"},n==="comparison"?"Browser Tasks":"Comparison Tasks")),re.default.createElement("div",{className:"space-y-2"},KCe[n]?.map((D,G)=>re.default.createElement("button",{key:G,onClick:()=>l(D.task),disabled:!He,className:"w-full text-left px-3 py-2 rounded-lg transition-colors border border-gray-200 hover:bg-gray-50 disabled:opacity-50"},re.default.createElement("div",{className:"font-medium text-sm text-gray-900"},D.name),re.default.createElement("div",{className:"text-xs text-gray-500 mt-0.5"},D.description))))),re.default.createElement("div",{className:"bg-gradient-to-br from-rose-50 to-purple-50 rounded-xl border border-rose-200 p-4"},re.default.createElement("h4",{className:"font-medium text-gray-900 mb-3"},w?.unlimited?"Unlimited":w?.plan==="free"?"Free Tier":`${w?.plan?.toUpperCase()||"FREE"} Plan`),w&&!w.unlimited&&w.runs_limit!=null&&re.default.createElement("div",{className:"mb-4"},re.default.createElement("div",{className:"flex justify-between text-sm mb-1"},re.default.createElement("span",{className:"text-gray-600"},"Agent Runs"),re.default.createElement("span",{className:`font-medium ${w.runs_remaining<=1?"text-rose-600":"text-gray-900"}`},w.runs_used," / ",w.runs_limit)),re.default.createElement("div",{className:"w-full bg-white rounded-full h-2 border border-rose-200"},re.default.createElement("div",{className:`h-2 rounded-full transition-all ${w.runs_remaining<=1?"bg-rose-500":"bg-emerald-500"}`,style:{width:`${Math.min(w.runs_used/w.runs_limit*100,100)}%`}})),w.runs_remaining<=1&&re.default.createElement("p",{className:"text-xs text-rose-600 mt-1"},w.runs_remaining===0?"Limit reached!":"Almost at limit!")),re.default.createElement("dl",{className:"space-y-2 text-sm"},re.default.createElement("div",{className:"flex justify-between"},re.default.createElement("dt",{className:"text-gray-500"},"Session Runs"),re.default.createElement("dd",{className:"text-gray-900"},a?.runs_count||0,"/",a?.max_runs||GQ.max_runs)),re.default.createElement("div",{className:"flex justify-between"},re.default.createElement("dt",{className:"text-gray-500"},"Timeout"),re.default.createElement("dd",{className:"text-gray-900"},GQ.timeout_seconds,"s per task"))),w?.plan==="free"&&re.default.createElement("div",{className:"mt-4 pt-4 border-t border-rose-200"},re.default.createElement("button",{onClick:()=>k(!0),className:"w-full text-center text-sm text-rose-600 hover:text-rose-700 font-medium"},"Upgrade to PRO \u2192"))),u.length>0&&re.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},re.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100"},re.default.createElement("h4",{className:"font-medium text-gray-900"},"Run History")),re.default.createElement("div",{className:"max-h-48 overflow-auto divide-y divide-gray-100"},u.slice().reverse().map((D,G)=>re.default.createElement("div",{key:D.id||G,className:"px-4 py-3 hover:bg-gray-50 cursor-pointer",onClick:()=>p(D)},re.default.createElement("div",{className:"flex items-center justify-between mb-1"},re.default.createElement(ke,{tone:al(D.status||"completed")},D.status||"completed"),re.default.createElement("span",{className:"text-xs text-gray-400"},D.tokens||0," tokens")),re.default.createElement("p",{className:"text-sm text-gray-600 truncate"},D.task))))),a?.status==="expired"&&re.default.createElement("button",{onClick:Y,className:"w-full px-4 py-3 bg-rose-500 text-white rounded-lg hover:bg-rose-600 transition-colors"},"Start New Session")))),S&&re.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4"},re.default.createElement("div",{className:"bg-white rounded-2xl max-w-4xl w-full overflow-hidden shadow-2xl max-h-[90vh] overflow-y-auto"},re.default.createElement("div",{className:"bg-gradient-to-r from-rose-500 to-purple-600 px-6 py-6 text-white text-center"},re.default.createElement("h2",{className:"text-2xl font-bold mb-1"},"Upgrade Your Plan"),re.default.createElement("p",{className:"text-rose-100 text-sm"},"You've used ",w?.runs_used||0," of ",w?.runs_limit||25," trial runs. Choose a plan to continue.")),re.default.createElement("div",{className:"p-6"},re.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},re.default.createElement("div",{className:"border border-gray-200 rounded-xl p-5"},re.default.createElement("div",{className:"text-center mb-4"},re.default.createElement("h3",{className:"font-semibold text-gray-900"},"Free"),re.default.createElement("div",{className:"mt-2"},re.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$0"),re.default.createElement("span",{className:"text-gray-500"},"/mo"))),re.default.createElement("ul",{className:"space-y-2 text-sm text-gray-600 mb-4"},re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"25 trial runs/month"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"Community support"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"Basic features")),re.default.createElement("button",{disabled:!0,className:"w-full py-2 px-4 border border-gray-300 text-gray-400 rounded-lg text-sm cursor-not-allowed"},"Current Plan")),re.default.createElement("div",{className:"border-2 border-rose-500 rounded-xl p-5 relative bg-rose-50"},re.default.createElement("div",{className:"absolute -top-3 left-1/2 transform -translate-x-1/2"},re.default.createElement("span",{className:"bg-rose-500 text-white text-xs font-semibold px-3 py-1 rounded-full"},"RECOMMENDED")),re.default.createElement("div",{className:"text-center mb-4 mt-2"},re.default.createElement("h3",{className:"font-semibold text-gray-900"},"Pro"),re.default.createElement("div",{className:"mt-2"},re.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$99"),re.default.createElement("span",{className:"text-gray-500"},"/mo")),re.default.createElement("p",{className:"text-xs text-gray-500 mt-1"},"or $995/year (save 16%)")),re.default.createElement("ul",{className:"space-y-2 text-sm text-gray-700 mb-4"},re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"10,000 agent runs/month"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Advanced cost tracking"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"25K traces/month"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Priority email support")),re.default.createElement("button",{onClick:()=>_e("monthly"),disabled:A,className:"w-full py-2 px-4 bg-rose-500 text-white rounded-lg text-sm font-semibold hover:bg-rose-600 transition-colors disabled:opacity-50"},A?"Loading...":"Upgrade to Pro")),re.default.createElement("div",{className:"border border-gray-200 rounded-xl p-5"},re.default.createElement("div",{className:"text-center mb-4"},re.default.createElement("h3",{className:"font-semibold text-gray-900"},"Enterprise"),re.default.createElement("div",{className:"mt-2"},re.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$269"),re.default.createElement("span",{className:"text-gray-500"},"/mo")),re.default.createElement("p",{className:"text-xs text-gray-500 mt-1"},"or $2,690/year (save 16%)")),re.default.createElement("ul",{className:"space-y-2 text-sm text-gray-600 mb-4"},re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Unlimited runs"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"500K traces/month"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"SSO & SOC2/HIPAA"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Dedicated support")),re.default.createElement("a",{href:"mailto:sales@activeagents.ai",className:"block w-full py-2 px-4 border border-gray-300 text-gray-700 rounded-lg text-sm font-semibold text-center hover:bg-gray-50 transition-colors"},"Contact Sales")))),re.default.createElement("div",{className:"px-6 py-4 bg-gray-50 border-t border-gray-100 flex justify-center"},re.default.createElement("button",{onClick:()=>k(!1),className:"text-gray-500 hover:text-gray-700 text-sm"},"Maybe later")))))}var ht=Z(J());var Mo=Z(J());var x3=["message","llm","tool","browser"];function oA(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function YQ(e={}){let t=[];return x3.forEach((r,n)=>{(e[r]||[]).forEach((o,a)=>{let i=oA(o?.start);if(i===null)return;let s=Math.max(0,Number(o.duration_ms)||0);t.push({entry:{...o,lane:r,startMs:i,endMs:i+s},laneIndex:n,index:a})})}),t.sort((r,n)=>r.entry.startMs-n.entry.startMs||r.laneIndex-n.laneIndex||r.index-n.index),t.map(({entry:r})=>r)}function XQ(e=[]){return e.filter(t=>t?.rrweb?.event_count>0&&oA(t.rrweb.first_at)!==null).map(t=>{let r=oA(t.rrweb.first_at);return{...t,startMs:r,endMs:Math.max(r,oA(t.rrweb.last_at)??r)}}).sort((t,r)=>t.startMs-r.startMs)}function ZQ(e=[],t=[]){return[...e.map(r=>[r.startMs,r.endMs]),...t.map(r=>[r.startMs,r.endMs])]}function JQ(e=[],{maxGapMs:t=1e4,gapMs:r=1e3,minSegmentMs:n=1e3}={}){let o=e.filter(([u,c])=>Number.isFinite(u)&&Number.isFinite(c)).map(([u,c])=>[u,Math.max(u,c)]).sort((u,c)=>u[0]-c[0]),a=[];for(let[u,c]of o){let d=a[a.length-1];d&&u-d[1]<=t?d[1]=Math.max(d[1],c):a.push([u,c])}let i=0,s=a.map(([u,c])=>{let d=Math.max(c,u+n),p={startMs:u,endMs:d,axisStart:i,axisEnd:i+(d-u)};return i=p.axisEnd+r,p}),l=s[s.length-1];return{segments:s,gapMs:r,totalMs:l?l.axisEnd:0,startMs:s[0]?.startMs??null,endMs:l?.endMs??null}}function QQ(e){return e.segments.slice(1).map((t,r)=>{let n=e.segments[r];return{axisStart:n.axisEnd,axisEnd:t.axisStart,skippedMs:t.startMs-n.endMs}})}function RQ(e,t){let{segments:r}=e;if(!r.length)return null;let n=Math.min(Math.max(t,0),e.totalMs);for(let o=0;ot<=n.axisEnd);return r===-1?Math.max(0,e.segments.length*2-2):t>=e.segments[r].axisStart?r*2:Math.max(0,r*2-1)}function b3(e,t){let r=0,n=e.length-1,o=-1;for(;r<=n;){let a=r+n>>1;e[a].startMs<=t?(o=a,r=a+1):n=a-1}return o}function tR(e,t,r){if(r>0)return e.find(n=>n.startMs>t)?.startMs??null;for(let n=e.length-1;n>=0;n-=1)if(e[n].startMst>=o.startMs&&t<=o.endMs);if(r)return r;let n=e.filter(o=>o.startMs<=t);return n[n.length-1]||e[0]}function nR(e,t){let r=Math.max(0,e.endMs-e.startMs);return te.endMs?{phase:"after",offsetMs:r}:{phase:"during",offsetMs:t-e.startMs}}function zh(e){let t=Math.max(0,Math.floor((Number(e)||0)/1e3)),r=Math.floor(t/3600),n=Math.floor(t%3600/60),o=String(t%60).padStart(2,"0");return r?`${r}:${String(n).padStart(2,"0")}:${o}`:`${n}:${o}`}function aA(e){let t=Math.max(0,Math.round((Number(e)||0)/1e3)),r=[["d",86400],["h",3600],["m",60],["s",1]],n=[],o=t;for(let[a,i]of r){let s=Math.floor(o/i);if(o-=s*i,(s||n.length)&&n.push(`${s}${a}`),n.length===2)break}return n.filter(a=>!a.startsWith("0")).join(" ")||"0s"}function w3(e){let t=String(e??"").replace(/\s+/g," ").trim();return t.length>140?`${t.slice(0,139)}\u2026`:t}function VCe(e){if(!e)return"";let t=Number(e.input??e.input_tokens)||0,r=Number(e.output??e.output_tokens)||0;return t||r?`${t} in / ${r} out`:""}function oR(e){switch(e?.lane){case"message":{let t=(e.tool_calls||[]).map(n=>n?.name||n?.function?.name).filter(Boolean),r=w3(e.content);return!r&&t.length?`${e.role} called ${t.join(", ")}`:e.role==="tool"?`${e.tool_name||"tool"} result: ${r}`:`${e.role}: ${r}`}case"llm":return[e.model||e.name||"model call",VCe(e.tokens)].filter(Boolean).join(" \xB7 ");case"tool":return`${e.name||"tool"}${e.error?" (failed)":""}`;case"browser":{let t=e.data||{};return e.kind==="console"?`console ${t.level||"log"}: ${w3(t.message??t.value)}`:e.kind==="marker"?`marker: ${w3(t.label??t.name??t.value)}`:t.tool_name||t.action_type||e.kind||"browser event"}default:return""}}function Bh(e){return e?e.error===!0?!0:["error","ERROR","failed"].includes(e.status):!1}function GCe(e=[]){return e.filter(t=>t?.kind==="rrweb").flatMap(t=>t.events||[]).filter(t=>t&&Number.isFinite(t.at)&&t.data&&typeof t.data=="object").map(t=>({...t.data,timestamp:t.at})).sort((t,r)=>t.timestamp-r.timestamp)}function YCe(e,t=null,r=50){let n=new URLSearchParams({kind:"rrweb",limit:String(r)});return t!=null&&n.set("after",String(t)),`/api/session_recordings/${encodeURIComponent(e)}/events?${n}`}async function aR(e,{fetchPage:t,onEvents:r,maxEvents:n=5e4,isCancelled:o=()=>!1}){let a=null,i=0;for(;;){let s=await t(YCe(e,a));if(o())return{count:i,truncated:!1};let l=GCe(s?.events);if(l.length&&(r(l,i===0),i+=l.length),!s?.has_more||s.next_after==null)return{count:i,truncated:!1};if(i>=n)return{count:i,truncated:!0};a=s.next_after}}var Uu=[{lane:"message",label:"messages",color:"var(--color-info)"},{lane:"llm",label:"model",color:"var(--color-token-out)"},{lane:"tool",label:"tools",color:"var(--color-warning)"},{lane:"browser",label:"browser",color:"var(--color-success)"}],ob=18,XCe=76,wf=(e,t)=>e.totalMs?t/e.totalMs*100:0,ZCe=(0,Mo.memo)(function({axis:t,entries:r,recordings:n}){let o=QQ(t);return Mo.default.createElement(Mo.default.Fragment,null,o.map(a=>Mo.default.createElement("div",{key:`gap-${a.axisStart}`,title:`${aA(a.skippedMs)} idle, shortened`,style:{position:"absolute",top:0,bottom:0,left:`${wf(t,a.axisStart)}%`,width:`${wf(t,a.axisEnd-a.axisStart)}%`,background:"repeating-linear-gradient(135deg, var(--color-muted) 0 4px, transparent 4px 8px)"}})),Uu.map((a,i)=>Mo.default.createElement(Mo.default.Fragment,{key:a.lane},a.lane==="browser"&&n.map(s=>{let l=vd(t,s.startMs);return Mo.default.createElement("div",{key:`recording-${s.id}`,title:`browser recording ${s.id}`,style:{position:"absolute",top:i*ob+7,height:4,borderRadius:2,left:`${wf(t,l)}%`,width:`${Math.max(wf(t,vd(t,s.endMs)-l),.3)}%`,background:a.color,opacity:.35}})}),r.filter(s=>s.lane===a.lane).map(s=>{let l=vd(t,s.startMs);return Mo.default.createElement("div",{key:s.id,style:{position:"absolute",top:i*ob+4,height:ob-8,borderRadius:2,left:`${wf(t,l)}%`,width:`max(3px, ${wf(t,vd(t,s.endMs)-l)}%)`,background:Bh(s)?"var(--color-error)":a.color}})}))))});function S3({axis:e,entries:t,recordings:r,position:n,onSeek:o}){let a=(0,Mo.useRef)(null),i=Uu.length*ob,s=u=>{let c=a.current?.getBoundingClientRect();if(!c?.width)return;let d=Math.min(Math.max((u.clientX-c.left)/c.width,0),1);o(d*e.totalMs)},l=u=>{let c=e.totalMs/100;if(u.key==="ArrowRight")o(n+c);else if(u.key==="ArrowLeft")o(n-c);else if(u.key==="Home")o(0);else if(u.key==="End")o(e.totalMs);else return;u.preventDefault()};return Mo.default.createElement("div",{"data-testid":"replay-scrubber",style:{display:"flex",gap:8}},Mo.default.createElement("div",{style:{width:XCe,flexShrink:0}},Uu.map(u=>Mo.default.createElement("div",{key:u.lane,style:{height:ob,display:"flex",alignItems:"center",gap:6,fontFamily:U,fontSize:10,color:"var(--color-text-muted)",textTransform:"uppercase"}},Mo.default.createElement("span",{style:{width:8,height:8,borderRadius:2,background:u.color}}),u.label))),Mo.default.createElement("div",{ref:a,role:"slider",tabIndex:0,"aria-label":"Session position","aria-valuemin":0,"aria-valuemax":Math.round(e.totalMs),"aria-valuenow":Math.round(n),onPointerDown:u=>{u.currentTarget.setPointerCapture?.(u.pointerId),s(u)},onPointerMove:u=>{u.buttons===1&&s(u)},onKeyDown:l,style:{position:"relative",flex:1,height:i,cursor:"pointer",borderRadius:6,overflow:"hidden",background:"var(--color-background)",border:"1px solid var(--color-border-light)",touchAction:"none"}},Mo.default.createElement(ZCe,{axis:e,entries:t,recordings:r}),Mo.default.createElement("div",{style:{position:"absolute",top:0,bottom:0,width:2,marginLeft:-1,pointerEvents:"none",left:`${wf(e,n)}%`,background:"var(--color-text-primary)"}})))}var ra=Z(J());var JCe=Object.fromEntries(Uu.map(e=>[e.lane,e])),QCe=(0,ra.memo)(function({entry:t,startMs:r,current:n,selected:o,onChoose:a,rowRef:i}){let s=JCe[t.lane],l=Bh(t);return ra.default.createElement("button",{type:"button",ref:i,"data-testid":"replay-entry","aria-current":n?"step":void 0,onClick:()=>a(t),style:{display:"flex",alignItems:"baseline",gap:10,width:"100%",textAlign:"left",cursor:"pointer",padding:"6px 12px",border:"none",borderLeft:`3px solid ${n?s.color:"transparent"}`,background:o?"var(--color-accent-ui-tint)":n?"var(--color-hover)":"transparent",fontFamily:"inherit"}},ra.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)",width:56,flexShrink:0}},zh(t.startMs-r)),ra.default.createElement("span",{style:{fontFamily:U,fontSize:10,textTransform:"uppercase",color:s.color,width:64,flexShrink:0}},s.label),ra.default.createElement("span",{style:{fontSize:13,color:l?"var(--color-error-text)":"var(--color-text-cell)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},oR(t)),t.duration_ms>0&&ra.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:"var(--color-text-muted)",flexShrink:0}},Math.round(t.duration_ms),"ms"))}),iR=(0,ra.memo)(function({entries:t,startMs:r,currentId:n,selectedId:o,playing:a,onChoose:i}){let s=(0,ra.useRef)(null),l=(0,ra.useRef)(null);return(0,ra.useEffect)(()=>{let u=l.current,c=s.current;if(!a||!u||!c)return;let d=u.offsetTop;(dc.scrollTop+c.clientHeight)&&(c.scrollTop=Math.max(0,d-c.clientHeight/3))},[n,a]),t.length?ra.default.createElement("div",{ref:s,"data-testid":"replay-transcript",style:{maxHeight:460,overflowY:"auto",position:"relative"}},t.map(u=>ra.default.createElement(QCe,{key:u.id,entry:u,startMs:r,current:u.id===n,selected:u.id===o,onChoose:i,rowRef:u.id===n?l:void 0}))):ra.default.createElement("div",{style:{padding:20,fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},"no entries in the lanes shown")});var Pi=Z(J());var RCe=Object.fromEntries(Uu.map(e=>[e.lane,e.label])),e2e={margin:0,padding:"8px 10px",borderRadius:8,background:"var(--color-background)",border:"1px solid var(--color-border-light)",fontFamily:U,fontSize:12,lineHeight:"18px",color:"var(--color-text-cell)",whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:220,overflow:"auto"};function t2e(e){return e==null||e===""?null:typeof e=="string"?e:JSON.stringify(e,null,2)}function r2e({label:e,value:t}){let r=t2e(t);return r==null?null:Pi.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:4}},Pi.default.createElement(Ue,{size:10},e),Pi.default.createElement("pre",{style:e2e},r))}function n2e(e){switch(e.lane){case"message":return[["content",e.content],["tool calls",e.tool_calls?.length?e.tool_calls:null]];case"llm":return[["model",[e.provider,e.model].filter(Boolean).join(" / ")],["finish reason",e.finish_reason],["tokens",e.tokens]];case"tool":return[["arguments",e.arguments],["result",e.result??e.detail]];case"browser":return[["event",e.data]];default:return[]}}function k3({entry:e}){return e?Pi.default.createElement("div",{"data-testid":"replay-entry-detail",style:{padding:14,display:"flex",flexDirection:"column",gap:10}},Pi.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Pi.default.createElement(ke,{tone:Bh(e)?"error":"muted"},RCe[e.lane]),e.role&&Pi.default.createElement(ke,{tone:"info"},e.role),(e.name||e.tool_name)&&e.lane!=="llm"&&Pi.default.createElement("span",{style:{fontFamily:U,fontSize:12,fontWeight:600,color:"var(--color-text-primary)"}},e.name||e.tool_name),Pi.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"},title:e.start},new Date(e.startMs).toLocaleTimeString(),e.duration_ms>0?` \xB7 ${Math.round(e.duration_ms)}ms`:"")),e.trace_id&&Pi.default.createElement("div",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},"trace ",e.trace_id),n2e(e).map(([t,r])=>Pi.default.createElement(r2e,{key:t,label:t,value:r}))):Pi.default.createElement("div",{style:{padding:16,fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},"choose an entry to see it in full")}var uo=Z(J());var sR="action-agent-session-player",lR="/session_player",uR="allow-scripts allow-same-origin";function cR(e,t={}){return{...t,channel:sR,type:e}}function dR(e,t,r){return!!e&&t!=null&&e.source===t&&e.origin===r&&e.data?.channel===sR&&typeof e.data.type=="string"}async function a2e(e){let t=await fetch(e);if(!t.ok)throw new Error(`Could not load the browser recording (HTTP ${t.status})`);return t.json()}var i2e="the session player did not start",s2e={loading:"loading the browser recording\u2026",empty:"this recording has too few browser events to replay",truncated:"showing the start of a long recording"};function _3({recordings:e,time:t,sessionStartMs:r,playing:n,speed:o,seekVersion:a}){let i=(0,uo.useRef)(null),s=(0,uo.useRef)(null),[l,u]=(0,uo.useState)(!1),[c,d]=(0,uo.useState)(!1),[p,f]=(0,uo.useState)(null),[m,y]=(0,uo.useState)({state:"loading"}),b=rR(e,t),g=b?.id,h=p!==null&&p===s.current,v=b?nR(b,t):null,x=(w,_)=>{i.current?.contentWindow?.postMessage(cR(w,_),window.location.origin)};(0,uo.useEffect)(()=>{let w=_=>{if(!dR(_,i.current?.contentWindow,window.location.origin))return;let{type:A}=_.data;A==="ready"?d(!0):A==="loaded"?f(_.data.token):A==="error"&&y({state:"error",message:_.data.message})};return window.addEventListener("message",w),()=>window.removeEventListener("message",w)},[]),(0,uo.useEffect)(()=>{if(!l||c)return;let w=setTimeout(()=>y({state:"error",message:i2e}),5e3);return()=>clearTimeout(w)},[l,c]),(0,uo.useEffect)(()=>{if(!c||g==null)return;let w=!1,_=[],A=`${g}:${Date.now()}`;return s.current=A,f(null),y({state:"loading"}),aR(g,{fetchPage:a2e,isCancelled:()=>w,onEvents:C=>{if(_===null){x("append",{events:C});return}_=_.concat(C),!(_.length<2)&&(x("load",{events:_,token:A}),_=null)}}).then(({truncated:C})=>{w||y(_!==null?{state:"empty"}:{state:C?"truncated":"ready"})}).catch(C=>{w||y({state:"error",message:C.message})}),()=>{w=!0}},[c,g]);let S=v?.phase;(0,uo.useEffect)(()=>{!h||!v||x("seek",{offset:v.offsetMs,playing:n&&S==="during"})},[h,a,n,S]),(0,uo.useEffect)(()=>{h&&x("speed",{speed:o})},[h,o]);let k=m.state==="error"?m.message:S==="before"?`the browser recording starts at ${zh(b.startMs-r)}`:s2e[m.state];return uo.default.createElement("div",{"data-testid":"replay-browser",style:{display:"flex",flexDirection:"column",gap:8}},uo.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10}},uo.default.createElement(Ue,null,"browser"),b&&uo.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},b.name||`recording ${b.id}`,e.length>1?` \xB7 ${e.indexOf(b)+1} of ${e.length}`:""),k&&uo.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:m.state==="error"?"var(--color-error-text)":"var(--color-text-muted)"}},k)),uo.default.createElement("iframe",{ref:i,title:"Browser recording",src:Re(lR),sandbox:uR,referrerPolicy:"no-referrer",onLoad:()=>u(!0),style:{width:"100%",height:480,border:"1px solid var(--color-border-light)",borderRadius:10,background:"var(--color-background)",opacity:S==="before"?.4:1}}))}var Ta=Z(J());function C3(e){let[t,r]=(0,Ta.useState)(0),[n,o]=(0,Ta.useState)(!1),[a,i]=(0,Ta.useState)(1),[s,l]=(0,Ta.useState)(0),u=(0,Ta.useRef)(0),c=(0,Ta.useRef)(0),d=(0,Ta.useCallback)((y,b)=>{let g=Math.min(Math.max(y,0),e.totalMs),h=eR(e,g);return u.current=g,r(g),(b||h!==c.current)&&l(v=>v+1),c.current=h,g},[e]);(0,Ta.useEffect)(()=>{if(!n)return;let y=null,b=performance.now(),g=h=>{let v=d(u.current+(h-b)*a,!1);if(b=h,v>=e.totalMs){o(!1);return}y=requestAnimationFrame(g)};return y=requestAnimationFrame(g),()=>cancelAnimationFrame(y)},[n,a,e,d]);let p=(0,Ta.useCallback)(y=>d(y,!0),[d]),f=(0,Ta.useCallback)(()=>{!n&&u.current>=e.totalMs&&d(0,!0),o(!n)},[n,e,d]),m=(0,Ta.useCallback)(()=>o(!1),[]);return{position:t,playing:n,speed:a,seekVersion:s,seek:p,togglePlay:f,pause:m,setSpeed:i}}var l2e=[.5,1,2,4,8,16],u2e={context:"Conversation",run:"Run",scenario_result:"Evaluation replay",recording:"Recording"};function c2e(e,t){let r=encodeURIComponent(t);return e==="recording"?`/api/session_recordings/${r}/timeline`:`/api/sessions/${e}/${r}/timeline`}function d2e(e){return e.reduce((t,r)=>({...t,[r.lane]:(t[r.lane]||0)+1}),{})}function p2e({kind:e,id:t,timeline:r,onBack:n,handoff:o}){let a=(0,ht.useMemo)(()=>YQ(r.lanes),[r]),i=(0,ht.useMemo)(()=>XQ(r.recordings),[r]),s=(0,ht.useMemo)(()=>JQ(ZQ(a,i)),[a,i]),l=C3(s),{seek:u,pause:c}=l,[d,p]=(0,ht.useState)(()=>new Set(x3)),[f,m]=(0,ht.useState)(null),y=RQ(s,l.position)??s.startMs,b=(0,ht.useMemo)(()=>a.filter(N=>d.has(N.lane)),[a,d]),g=a[b3(a,y)]||null,h=b[b3(b,y)]?.id??null,v=a.find(N=>N.id===f)||g,x=(0,ht.useMemo)(()=>d2e(a),[a]),S=(0,ht.useCallback)(N=>{c(),m(N.id),u(vd(s,N.startMs))},[s,c,u]),k=N=>{let L=tR(b,y,N);L!==null&&(c(),m(null),u(vd(s,L)))},w=()=>{m(null),l.togglePlay()},_=N=>p(L=>{let Q=new Set(L);return Q.has(N)?Q.delete(N):Q.add(N),Q}),A=r.session||{},C=a.length===0&&i.length===0;return ht.default.createElement("div",{"data-testid":"session-replay",style:{display:"flex",flexDirection:"column",gap:16,maxWidth:1400}},ht.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:12,flexWrap:"wrap"}},ht.default.createElement("div",{style:{minWidth:0}},ht.default.createElement(ce,{variant:"ghost",size:"sm",onClick:n,style:{padding:"2px 0",marginBottom:6}},"<- Sessions"),ht.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},u2e[e]||"Session"," #",t),ht.default.createElement("div",{style:{marginTop:4,display:"flex",gap:12,flexWrap:"wrap",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},A.started_at&&ht.default.createElement("span",{title:A.started_at},"started ",new Date(A.started_at).toLocaleString()),s.startMs!==null&&ht.default.createElement("span",null,aA(s.endMs-s.startMs)," long"),ht.default.createElement("span",null,x.message||0," messages \xB7 ",x.llm||0," model calls \xB7 ",x.tool||0," tool calls"),i.length>0&&ht.default.createElement("span",null,"browser recorded"))),ht.default.createElement("div",{style:{marginLeft:"auto",display:"flex",gap:8,alignItems:"center"}},A.truncated&&ht.default.createElement(ke,{tone:"warning",title:"Each lane holds its earliest 2,000 entries"},"truncated"),o)),C?ht.default.createElement(je,{testId:"replay-empty"},ht.default.createElement("div",{style:{fontSize:14,color:"var(--color-text-primary)"}},"Nothing to replay yet."),ht.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)",marginTop:6}},"This session has no messages, model calls, tool calls or browser events.")):ht.default.createElement(ht.default.Fragment,null,ht.default.createElement(je,{padding:14,style:{display:"flex",flexDirection:"column",gap:12}},ht.default.createElement("div",{"data-testid":"replay-controls",style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},ht.default.createElement(ce,{size:"sm",testId:"replay-step-back",title:"Previous entry",onClick:()=>k(-1)},"|<"),ht.default.createElement(ce,{size:"sm",variant:"primary",testId:"replay-play",onClick:w,style:{minWidth:72}},l.playing?"Pause":"Play"),ht.default.createElement(ce,{size:"sm",testId:"replay-step-forward",title:"Next entry",onClick:()=>k(1)},">|"),ht.default.createElement("select",{"aria-label":"Playback speed",value:l.speed,onChange:N=>l.setSpeed(Number(N.target.value)),style:{padding:"6px 8px",borderRadius:8,fontFamily:U,fontSize:12,background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"}},l2e.map(N=>ht.default.createElement("option",{key:N,value:N},N,"x"))),ht.default.createElement("span",{"data-testid":"replay-clock",style:{marginLeft:8,fontFamily:U,fontSize:12,color:"var(--color-text-primary)"}},zh(y-s.startMs)),ht.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"},title:"Idle stretches longer than 10 seconds play as one second"},Number.isFinite(y)?new Date(y).toLocaleTimeString():"")),ht.default.createElement(S3,{axis:s,entries:a,recordings:i,position:l.position,onSeek:u})),ht.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 3fr) minmax(0, 2fr)",gap:16,alignItems:"start"}},ht.default.createElement(je,{padding:0,style:{overflow:"hidden"}},ht.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"10px 12px",borderBottom:"1px solid var(--color-border-light)",flexWrap:"wrap"}},ht.default.createElement(Ue,{style:{marginRight:6}},"timeline"),Uu.map(N=>ht.default.createElement(jn,{key:N.lane,mono:!0,selected:d.has(N.lane),onClick:()=>_(N.lane)},N.label," ",x[N.lane]||0))),ht.default.createElement(iR,{entries:b,startMs:s.startMs,currentId:h,selectedId:f,playing:l.playing,onChoose:S})),ht.default.createElement(je,{padding:0},ht.default.createElement(k3,{entry:v}))),i.length>0&&ht.default.createElement(je,{padding:14},ht.default.createElement(_3,{recordings:i,time:y,sessionStartMs:s.startMs,playing:l.playing,speed:l.speed,seekVersion:l.seekVersion}))))}function A3({kind:e,id:t,onBack:r,onHandoff:n}){let[o,a]=(0,ht.useState)({status:"loading"}),[i,s]=(0,ht.useState)(!1);(0,ht.useEffect)(()=>{let c=!1;return a({status:"loading"}),fetch(c2e(e,t)).then(async d=>{if(c)return;if(d.status===404)return a({status:"missing"});let p=await d.json().catch(()=>({}));return d.ok?a({status:"ready",timeline:p.timeline||{}}):a({status:"error",message:p.error||`Could not load this session (HTTP ${d.status})`})}).catch(()=>{c||a({status:"error",message:"Could not load this session: the request did not complete"})}),e==="recording"&&fetch(`/api/session_recordings/${encodeURIComponent(t)}`).then(d=>d.ok?d.json():null).then(d=>{c||s(!!d?.recording?.handoff_state)}).catch(()=>{}),()=>{c=!0}},[e,t]);let l=async()=>{let c=await fetch(`/api/session_recordings/${encodeURIComponent(t)}/handoff`,{method:"POST",headers:{"Content-Type":"application/json"}});c.ok&&n?.(await c.json())};if(o.status==="ready")return ht.default.createElement(p2e,{kind:e,id:t,timeline:o.timeline,onBack:r,handoff:i&&ht.default.createElement(ce,{size:"sm",variant:"primary",testId:"replay-take-over",onClick:l},"Take over session")});let u=o.status==="loading"?"loading the session\u2026":o.status==="missing"?"This session does not exist, or you cannot open it.":o.message;return ht.default.createElement("div",{"data-testid":"session-replay",style:{display:"flex",flexDirection:"column",gap:12,maxWidth:1400}},ht.default.createElement(ce,{variant:"ghost",size:"sm",onClick:r,style:{padding:"2px 0",alignSelf:"flex-start"}},"<- Sessions"),ht.default.createElement(je,{testId:`replay-${o.status}`},ht.default.createElement("div",{style:{fontSize:13,color:o.status==="loading"?"var(--color-text-muted)":"var(--color-text-primary)"}},u)))}var dt=Z(J());function pR(){let e=0,t=r=>()=>r===e;return{next:()=>t(++e),latest:()=>t(e)}}var N3=[{value:"",label:"Every source"},{value:"dashboard",label:"Dashboard conversations"},{value:"evaluation",label:"Evaluation replays"},{value:"agent",label:"Agent browsers"}],T3=[{value:"",label:"Any outcome"},{value:"failed",label:"Failed or errored"},{value:"passed",label:"Passed"}],ab=Object.freeze({agentId:"",user:"",source:"",outcome:"",from:"",to:""}),mR={agentId:"agent_id",user:"user",source:"source",outcome:"outcome",from:"from",to:"to"},E3=/^(\d{4})-(\d{2})-(\d{2})$/,f2e={agentId:e=>/^\d+$/.test(e),user:e=>e==="me",source:e=>N3.some(t=>t.value&&t.value===e),outcome:e=>T3.some(t=>t.value&&t.value===e),from:e=>E3.test(e),to:e=>E3.test(e)};function iA(e={}){let t={...ab};for(let r of Object.keys(ab)){let n=String(e[r]??"");n&&f2e[r](n)&&(t[r]=n)}return t}function O3(e={}){return Object.values(iA(e)).some(Boolean)}function gR(e=""){let t=new URLSearchParams(e),r={};for(let[n,o]of Object.entries(mR))r[n]=t.get(o)||"";return iA(r)}function hR(e={}){let t=new URLSearchParams,r=iA(e);for(let[o,a]of Object.entries(mR))r[o]&&t.set(a,r[o]);let n=t.toString();return n?`?${n}`:""}function fR(e,t=0){let[,r,n,o]=e.match(E3);return new Date(Number(r),Number(n)-1,Number(o)+t).toISOString()}var yR=Object.freeze({openedFromSessions:!0});function vR(e){return e?.openedFromSessions===!0}function xR(e={},{before:t=null,perPage:r=25}={}){let n=iA(e),o=new URLSearchParams;return n.agentId&&o.set("agent_id",n.agentId),n.user&&o.set("user",n.user),n.source&&o.set("source",n.source),n.outcome&&o.set("outcome",n.outcome),n.from&&o.set("from",fR(n.from)),n.to&&o.set("to",fR(n.to,1)),o.set("per_page",String(r)),t&&o.set("before",t),`/api/sessions?${o}`}var bR={dashboard:{tone:"info",label:"conversation"},evaluation:{tone:"muted",label:"evaluation"},agent:{tone:"muted",label:"browser"}},m2e={failed:"error",passed:"success"},Fh={padding:"7px 10px",borderRadius:8,fontSize:13,fontFamily:"inherit",boxSizing:"border-box",background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"};async function wR(e,t){let r=await fetch(xR(e,{before:t})),n=await r.json().catch(()=>({}));if(!r.ok)throw new Error(n.error||`Could not load sessions (HTTP ${r.status})`);return n}function g2e(e){let t=[];return e.kind==="context"&&(t.push(`${e.message_count} message${e.message_count===1?"":"s"}`),e.recording_count&&t.push("browser recorded")),e.kind==="scenario_result"&&(e.evaluation?.name&&t.push(e.evaluation.name),e.model&&t.push(e.model)),e.kind==="recording"&&(t.push(`${e.event_count||0} events`),e.action_count&&t.push(`${e.action_count} actions`)),t.join(" \xB7 ")}function h2e({filters:e,onChange:t,agents:r,user:n}){let o=a=>i=>t({...e,[a]:i.target.value});return dt.default.createElement("div",{"data-testid":"sessions-filters",style:{display:"flex",gap:8,flexWrap:"wrap",alignItems:"center"}},dt.default.createElement("select",{"aria-label":"Agent",value:e.agentId,onChange:o("agentId"),style:Fh},dt.default.createElement("option",{value:""},"Every agent"),r.map(a=>dt.default.createElement("option",{key:a.id,value:String(a.id)},a.name))),n?.id!=null&&dt.default.createElement("select",{"aria-label":"Run by",value:e.user,onChange:o("user"),style:Fh},dt.default.createElement("option",{value:""},"Run by anyone"),dt.default.createElement("option",{value:"me"},"Run by me")),dt.default.createElement("select",{"aria-label":"Source",value:e.source,onChange:o("source"),style:Fh},N3.map(a=>dt.default.createElement("option",{key:a.value,value:a.value},a.label))),dt.default.createElement("select",{"aria-label":"Outcome",value:e.outcome,onChange:o("outcome"),style:Fh},T3.map(a=>dt.default.createElement("option",{key:a.value,value:a.value},a.label))),dt.default.createElement("label",{style:{display:"flex",alignItems:"center",gap:6,fontSize:12,color:"var(--color-text-secondary)"}},"From",dt.default.createElement("input",{type:"date","aria-label":"Active from",value:e.from,max:e.to||void 0,onChange:o("from"),style:Fh})),dt.default.createElement("label",{style:{display:"flex",alignItems:"center",gap:6,fontSize:12,color:"var(--color-text-secondary)"}},"To",dt.default.createElement("input",{type:"date","aria-label":"Active until",value:e.to,min:e.from||void 0,onChange:o("to"),style:Fh})),O3(e)&&dt.default.createElement(ce,{variant:"ghost",size:"sm",testId:"sessions-clear-filters",onClick:()=>t(ab)},"Clear filters"))}function y2e({session:e}){let t=dh(e.kind,e.id),r=bR[e.source]||bR.agent,n=g2e(e);return dt.default.createElement("a",{href:Re(t),"data-testid":"session-row",onClick:o=>{o.metaKey||o.ctrlKey||o.shiftKey||o.button!==0||(o.preventDefault(),lt(t,yR))},style:{display:"flex",alignItems:"center",gap:12,padding:"12px 16px",textDecoration:"none",borderTop:"1px solid var(--color-border-light)",color:"inherit"}},dt.default.createElement(ke,{tone:r.tone,style:{width:92,justifyContent:"center"}},r.label),dt.default.createElement("div",{style:{minWidth:0,flex:1}},dt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,minWidth:0}},dt.default.createElement("span",{style:{fontFamily:U,fontSize:13,fontWeight:600,color:"var(--color-text-primary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},e.title),e.agent&&dt.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)",whiteSpace:"nowrap"}},e.agent.name)),e.preview&&dt.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-cell)",marginTop:2,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},e.preview),n&&dt.default.createElement("div",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)",marginTop:2}},n)),e.outcome&&dt.default.createElement(ke,{tone:m2e[e.outcome]||"muted"},e.outcome),dt.default.createElement("span",{title:e.last_activity_at,style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)",width:96,textAlign:"right",flexShrink:0}},wo(e.last_activity_at)),dt.default.createElement("span",{style:{fontFamily:U,fontSize:12,color:"var(--color-info)",flexShrink:0}},"replay ->"))}function P3({agents:e=[],user:t=null}){let[r,n]=(0,dt.useState)(()=>gR(window.location.search)),[o,a]=(0,dt.useState)({sessions:[],total:0,nextBefore:null}),[i,s]=(0,dt.useState)("loading"),[l,u]=(0,dt.useState)(null),[c,d]=(0,dt.useState)(!1),[p,f]=(0,dt.useState)(null),[m,y]=(0,dt.useState)(0),[b]=(0,dt.useState)(pR);(0,dt.useEffect)(()=>{window.history.replaceState(window.history.state,"",`${window.location.pathname}${hR(r)}`);let v=b.next();return s("loading"),d(!1),f(null),wR(r,null).then(x=>{v()&&(a({sessions:x.sessions||[],total:x.total||0,nextBefore:x.next_before||null}),s("ready"))}).catch(x=>{v()&&(u(x.message),s("error"))}),()=>{b.next()}},[r,m]);let g=async()=>{let v=b.latest();d(!0),f(null);try{let x=await wR(r,o.nextBefore);if(!v())return;a(S=>({sessions:[...S.sessions,...x.sessions||[]],total:x.total??S.total,nextBefore:x.next_before||null}))}catch(x){v()&&f(x.message)}finally{v()&&d(!1)}},h=O3(r);return dt.default.createElement("div",{"data-testid":"sessions-view",style:{display:"flex",flexDirection:"column",gap:16,maxWidth:1200}},dt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},dt.default.createElement("div",null,dt.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Sessions"),dt.default.createElement("p",{style:{margin:"4px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},"Replay what an agent did: its messages, model calls and tool calls, and its browser when one was recorded.")),i==="ready"&&dt.default.createElement(Ue,null,o.total," session",o.total===1?"":"s")),dt.default.createElement(h2e,{filters:r,onChange:n,agents:e,user:t}),dt.default.createElement(je,{padding:0,testId:"sessions-list",style:{overflow:"hidden"}},i==="loading"&&dt.default.createElement(Jr,null,"loading sessions\u2026"),i==="error"&&dt.default.createElement("div",{style:{padding:20,display:"flex",alignItems:"center",gap:12,color:"var(--color-error-text)",fontSize:13}},l,dt.default.createElement(ce,{size:"sm",onClick:()=>y(v=>v+1)},"Retry")),i==="ready"&&o.sessions.length===0&&dt.default.createElement("div",{"data-testid":"sessions-empty",style:{padding:"32px 20px",textAlign:"center"}},h?dt.default.createElement(dt.default.Fragment,null,dt.default.createElement("div",{style:{fontSize:14,color:"var(--color-text-primary)"}},"No sessions match these filters."),dt.default.createElement(ce,{variant:"secondary",size:"sm",style:{marginTop:12},onClick:()=>n(ab)},"Clear filters")):dt.default.createElement(dt.default.Fragment,null,dt.default.createElement("div",{style:{fontSize:14,color:"var(--color-text-primary)"}},"No sessions yet."),dt.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)",marginTop:6}},"Every conversation in an agent's Run workbench and every evaluation replay appears here, ready to replay."))),i==="ready"&&o.sessions.map(v=>dt.default.createElement(y2e,{key:`${v.kind}-${v.id}`,session:v}))),i==="ready"&&o.nextBefore&&dt.default.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",gap:12}},p&&dt.default.createElement("span",{"data-testid":"sessions-load-more-error",role:"alert",style:{fontSize:13,color:"var(--color-error-text)"}},p),dt.default.createElement(ce,{size:"sm",testId:"sessions-load-more",onClick:g,disabled:c},c?"Loading\u2026":p?"Try again":"Load more")))}var Te=Z(J());var qt=Z(J());var v2e={personal:"Your key",host_resolver:"Organization key",organization:"Organization key",config:"Platform default",none:"Not configured"};function SR(e){return v2e[e]||null}function sA(e,t){return t?`${e}?scope=${encodeURIComponent(t)}`:e}function kR({set_by:e,updated_at:t}={},r=n=>new Date(n).toLocaleDateString()){let n=[];return e?.name&&n.push(`Set by ${e.name}`),t&&n.push(`${n.length?"updated":"Updated"} ${r(t)}`),n.length?n.join(" \xB7 "):null}var x2e="Setting your own host needs permission to manage the organization's keys.";function _R({editable:e=!0,scope:t,row:r={}}){let n=t==="personal"&&r.editable===!1;return{canChange:e&&!n,canRemove:e&&!!r.configured,note:e&&n&&r.host_based?x2e:null}}var AR={openai:{label:"OpenAI",icon:"\u{1F916}",placeholder:"sk-\u2026"},anthropic:{label:"Anthropic",icon:"\u{1F9E0}",placeholder:"sk-ant-\u2026"},openrouter:{label:"OpenRouter",icon:"\u{1F500}",placeholder:"sk-or-\u2026"},ollama:{label:"Ollama",icon:"\u{1F999}",placeholder:"http://localhost:11434/v1"}};function lA({onKeysChanged:e,onError:t,scope:r}){let[n,o]=(0,qt.useState)(null),[a,i]=(0,qt.useState)(""),[s,l]=(0,qt.useState)(""),[u,c]=(0,qt.useState)(!1),[d,p]=(0,qt.useState)({}),[f,m]=(0,qt.useState)(null);return{editingProvider:n,setEditingProvider:o,providerInput:a,setProviderInput:i,providerApiKeyInput:s,setProviderApiKeyInput:l,savingProvider:u,testResults:d,testingProvider:f,saveProviderKey:async(h,{hostBased:v=!1,clearApiKey:x=!1}={})=>{if(!(!a.trim()||u)){c(!0),t(null);try{let S={provider:h,credential:a.trim()};r&&(S.scope=r),v&&(s.trim()||x)&&(S.api_key=x?"":s.trim());let k=await fetch("/api/provider_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(S)});if(!k.ok){let w=await k.json().catch(()=>({}));throw new Error(Array.isArray(w.error)?w.error.join(", "):"save failed")}o(null),i(""),l(""),p(w=>({...w,[h]:null})),hT(),await e()}catch(S){t(`Could not save the ${AR[h]?.label||h} credential${S.message!=="save failed"?`: ${S.message}`:"."}`)}finally{c(!1)}}},testProviderHost:async(h,{editing:v=!1}={})=>{if(!f){m(h),t(null);try{let x={provider:h};r&&(x.scope=r),v&&(a.trim()&&(x.credential=a.trim()),s.trim()&&(x.api_key=s.trim()));let S=await fetch("/api/provider_keys/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(x)}),k=await S.json().catch(()=>({}));if(!S.ok)throw new Error(k.error||"test failed");p(w=>({...w,[h]:k}))}catch(x){p(S=>({...S,[h]:{ok:!1,models:[],error:x.message}}))}finally{m(null)}}},removeProviderKey:async h=>{if(await Wr(r==="personal"?{title:"Remove your key?",message:"Your runs will use the organization's key, or the platform default.",confirmLabel:"Remove key",danger:!0}:{title:"Remove this provider credential?",message:"Runs fall back to the platform default credentials, or fail until a key is configured.",confirmLabel:"Remove credential",danger:!0}))try{if(!(await fetch(sA(`/api/provider_keys/${h}`,r),{method:"DELETE"})).ok)throw new Error("delete failed");p(S=>({...S,[h]:null})),hT(),await e()}catch{t("Could not remove the provider credential.")}}}}var CR={default:{title:"Provider API Keys",description:"Configure your own LLM provider credentials. Agent runs and evaluations on this account use these instead of the platform defaults. Keys are encrypted at rest."},organization:{title:"Provider Keys",description:"Shared by everyone in this organization. Agent runs and evaluations use these instead of the platform defaults. Keys are encrypted at rest."},personal:{title:"Your Provider Keys",description:"Your own credentials, used by the runs you start. Where you have none, the organization's key applies. Keys are encrypted at rest."}};function ib({providerKeys:e,editor:t,scope:r,editable:n=!0}){let{darkMode:o}=ut(),{editingProvider:a,setEditingProvider:i,providerInput:s,setProviderInput:l,providerApiKeyInput:u,setProviderApiKeyInput:c,savingProvider:d,testResults:p,testingProvider:f,saveProviderKey:m,testProviderHost:y,removeProviderKey:b}=t,g={backgroundColor:o?"#1f1f1f":"#ffffff",borderColor:o?"#2a2a2a":"#e5e7eb"},h=CR[r]||CR.default;return qt.default.createElement("div",{className:"border rounded-lg p-6",style:g},qt.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${o?"text-white":"text-gray-900"}`},h.title),qt.default.createElement("p",{className:`text-sm mb-4 ${o?"text-gray-400":"text-gray-500"}`},h.description),!n&&qt.default.createElement("p",{className:`text-sm mb-4 ${o?"text-gray-500":"text-gray-400"}`},"You can see these keys but not change them."),qt.default.createElement("div",{className:"space-y-4"},e.filter(({kind:v})=>v!=="connection").map(v=>{let{provider:x,host_based:S,configured:k,hint:w,api_key_configured:_,api_key_hint:A,platform_default:C}=v,N=AR[x]||{label:x,icon:"\u{1F511}",placeholder:""},L=a===x,Q=p[x],B=f===x,K=S&&(L?s.trim():k||C),T=k?S?`${w}${_?` \xB7 key ${A}`:""}`:`Configured (${w})`:S&&C?`Platform default: ${C}`:"Not configured",O=r==="personal"?SR(v.effective_source):null,{canChange:I,canRemove:P,note:j}=_R({editable:n,scope:r,row:v}),M=r==="organization"&&k?kR(v):null;return qt.default.createElement("div",{key:x,className:"p-4 rounded-lg",style:{backgroundColor:o?"#252525":"#f9fafb"}},qt.default.createElement("div",{className:"flex items-center justify-between"},qt.default.createElement("div",{className:"flex items-center space-x-3"},qt.default.createElement("span",{className:"text-xl"},N.icon),qt.default.createElement("div",null,qt.default.createElement("p",{className:`font-medium ${o?"text-white":"text-gray-900"}`},N.label),qt.default.createElement("p",{className:`text-sm ${k?o?"text-green-400":"text-green-600":o?"text-gray-400":"text-gray-500"}`},T),M&&qt.default.createElement("p",{className:`text-xs ${o?"text-gray-500":"text-gray-400"}`,"data-testid":"provider-key-audit"},M)),O&&qt.default.createElement("span",{className:`px-2 py-0.5 rounded text-xs ${o?"bg-gray-700 text-gray-200":"bg-gray-200 text-gray-700"}`,"data-testid":"provider-key-source"},O)),(I||P)&&qt.default.createElement("div",{className:"flex items-center space-x-2"},I&&S&&!L&&K&&qt.default.createElement("button",{onClick:()=>y(x),disabled:B,className:`px-3 py-1 text-sm rounded disabled:opacity-50 ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},B?"Testing\u2026":"Test connection"),P&&!L&&qt.default.createElement("button",{onClick:()=>b(x),className:`px-3 py-1 text-sm rounded ${o?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},"Remove"),I&&qt.default.createElement("button",{onClick:()=>{i(L?null:x),l(!L&&S&&k?w:""),c("")},className:`px-3 py-1 text-sm rounded ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},L?"Cancel":k?"Update":"Configure"))),j&&qt.default.createElement("p",{className:`mt-2 text-xs ${o?"text-gray-500":"text-gray-400"}`,"data-testid":"provider-key-locked"},j),L&&qt.default.createElement("div",{className:"mt-3 space-y-2"},qt.default.createElement("div",{className:"flex items-center space-x-2"},qt.default.createElement("input",{type:S?"text":"password","data-aa-secret":S?void 0:"",value:s,onChange:W=>l(W.target.value),onKeyDown:W=>W.key==="Enter"&&m(x,{hostBased:S}),placeholder:S?N.placeholder:`${N.label} API key (${N.placeholder})`,"aria-label":S?`${N.label} host URL`:`${N.label} API key`,autoFocus:!0,className:`flex-1 px-3 py-2 border rounded-lg text-sm font-mono ${o?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),S&&qt.default.createElement("button",{onClick:()=>y(x,{editing:!0}),disabled:!s.trim()||B,className:`px-3 py-2 text-sm rounded-lg disabled:opacity-50 ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},B?"Testing\u2026":"Test"),qt.default.createElement("button",{onClick:()=>m(x,{hostBased:S}),disabled:!s.trim()||d,className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 disabled:opacity-50 text-sm"},d?"Saving\u2026":"Save")),S&&qt.default.createElement("div",{className:"flex items-center space-x-2"},qt.default.createElement("input",{type:"password","data-aa-secret":"",value:u,onChange:W=>c(W.target.value),onKeyDown:W=>W.key==="Enter"&&m(x,{hostBased:S}),placeholder:_?`API key (stored: ${A} \u2014 type to replace)`:"API key (optional \u2014 only for remote servers that require one)","aria-label":`${N.label} API key`,className:`flex-1 px-3 py-2 border rounded-lg text-sm font-mono ${o?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),_&&qt.default.createElement("button",{onClick:()=>m(x,{hostBased:S,clearApiKey:!0}),disabled:!s.trim()||d,className:`px-3 py-2 text-sm rounded-lg disabled:opacity-50 ${o?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},"Clear key"))),S&&L&&qt.default.createElement("p",{className:`mt-2 text-xs ${o?"text-gray-500":"text-gray-400"}`},"Your Ollama server's address \u2014 the OpenAI-compatible /v1 path is added if you leave it off. Local: http://localhost:11434. Remote: a LAN host, a tunnel URL, or Ollama Cloud (https://ollama.com), which needs an API key. Test lists the models the server currently serves."),S&&Q&&qt.default.createElement("div",{className:"mt-2 text-xs rounded-lg px-3 py-2",role:"status",style:{backgroundColor:Q.ok?o?"rgba(74,222,128,0.1)":"#ecfdf5":o?"rgba(248,113,113,0.1)":"#fef2f2",color:Q.ok?o?"#4ade80":"#047857":o?"#f87171":"#b91c1c"}},Q.ok?qt.default.createElement(qt.default.Fragment,null,qt.default.createElement("span",{className:"font-medium"},"Connected")," ","to ",Q.host,typeof Q.latency_ms=="number"?` in ${Q.latency_ms} ms`:""," \xB7 ",Q.models.length===0?"no models pulled yet (run `ollama pull ` on the server)":`${Q.models.length} model${Q.models.length===1?"":"s"}`,Q.models.length>0&&qt.default.createElement("span",{className:"block mt-1 font-mono",style:{color:o?"#d1d5db":"#374151"}},Q.models.join(" \xB7 "))):qt.default.createElement(qt.default.Fragment,null,qt.default.createElement("span",{className:"font-medium"},"Not reachable.")," ",Q.error)))})))}async function ER(e=fetch){let t=await e("/api/telemetry_key",{cache:"no-store"});if(!t.ok)throw new Error(`Could not load the telemetry key (HTTP ${t.status})`);return(await t.json().catch(()=>null))?.telemetry_api_key||null}var uA=e=>e==null?"0":e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString();function M3({account:e,user:t,subscription:r,agentCount:n=0}){let{darkMode:o}=ut(),[a,i]=(0,Te.useState)(null),[s,l]=(0,Te.useState)(!1),[u,c]=(0,Te.useState)(!1),[d,p]=(0,Te.useState)({status:"idle",value:null,error:null}),[f,m]=(0,Te.useState)(!1),[y,b]=(0,Te.useState)(null),[g,h]=(0,Te.useState)(null),[v,x]=(0,Te.useState)([]),[S,k]=(0,Te.useState)(!1),[w,_]=(0,Te.useState)(null),A=window.ACTIVE_AGENT_DASHBOARD?.meta?.memberInviteUrl;(0,Te.useEffect)(()=>{fetch("/api/usage").then(M=>M.ok?M.json():null).then(M=>i(M?.usage||null)).catch(()=>i(null)),fetch("/api/members").then(M=>M.ok?M.json():null).then(M=>h(M?.members||[])).catch(()=>h([]))},[]);let C=(0,Te.useCallback)(async()=>{try{let M=await fetch("/api/provider_keys?scope=organization");if(!M.ok)throw new Error("load failed");let W=await M.json();x(W.provider_keys||[]),k(!!W.can_manage_organization_keys),_(null)}catch{_("Could not load the organization's provider keys.")}},[]);(0,Te.useEffect)(()=>{C()},[C]);let N=lA({onKeysChanged:C,onError:_,scope:"organization"}),L=async()=>{m(!0),b(null);try{await Ph({planSlug:"pro"})}catch(M){b(M.message),m(!1)}},Q=async()=>{if(d.status==="ready")return d.value;p({status:"loading",value:null,error:null});try{let M=await ER();return p({status:"ready",value:M,error:null}),M}catch(M){return p({status:"error",value:null,error:M.message}),null}},B=async()=>{u?c(!1):await Q()&&c(!0)},K=async()=>{let M=await Q();if(M)try{await navigator.clipboard.writeText(M),l(!0),setTimeout(()=>l(!1),2e3)}catch{}},T=d.status==="ready"&&!d.value,O={backgroundColor:o?"#1f1f1f":"#ffffff",borderColor:o?"#2a2a2a":"#e5e7eb"},I=r?.plan_name||"Free",P={free:{seats:1,workspaces:1,agents:3,traces:"250/mo trial"},pro:{seats:5,workspaces:3,agents:"Unlimited",traces:"25,000/mo"},enterprise:{seats:"Unlimited",workspaces:"Unlimited",agents:"Unlimited",traces:"500,000+/mo"}},j=P[I.toLowerCase()]||P.free;return Te.default.createElement("div",{className:"p-6 space-y-6"},Te.default.createElement("div",null,Te.default.createElement("h2",{className:`text-2xl font-bold ${o?"text-white":"text-gray-900"}`},"Organization"),Te.default.createElement("p",{className:`mt-1 ${o?"text-gray-400":"text-gray-500"}`},"Manage your workspace, team, and billing")),Te.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6"},Te.default.createElement("div",{className:"border rounded-lg p-6",style:O},Te.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${o?"text-white":"text-gray-900"}`},"Workspace"),Te.default.createElement("div",{className:"space-y-3"},Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Name"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},e?.name||"My Workspace")),Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Owner"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},t?.email||"you@example.com")),Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Created"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},e?.created_at?new Date(e.created_at).toLocaleDateString():"Today")))),Te.default.createElement("div",{className:"border rounded-lg p-6",style:O},Te.default.createElement("div",{className:"flex items-center justify-between mb-4"},Te.default.createElement("h3",{className:`text-lg font-semibold ${o?"text-white":"text-gray-900"}`},"Current Plan"),Te.default.createElement("span",{className:"px-3 py-1 bg-red-100 text-red-700 rounded-full text-sm font-medium"},I)),Te.default.createElement("div",{className:"space-y-3"},Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Team Seats"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},j.seats)),Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Workspaces"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},j.workspaces)),Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Agents"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},j.agents)),Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Traces"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},j.traces))),I.toLowerCase()!=="enterprise"&&Te.default.createElement(Te.default.Fragment,null,Te.default.createElement("button",{onClick:L,disabled:f,className:"mt-4 w-full px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors disabled:opacity-50 disabled:cursor-not-allowed"},f?"Redirecting to checkout\u2026":"Upgrade Plan"),y&&Te.default.createElement("p",{className:"mt-2 text-sm text-red-500 text-center"},y)))),Te.default.createElement("div",{className:"border rounded-lg p-6",style:O},Te.default.createElement("div",{className:"flex items-center justify-between mb-4"},Te.default.createElement("h3",{className:`text-lg font-semibold ${o?"text-white":"text-gray-900"}`},"Team Members"),A&&Te.default.createElement("a",{href:A,className:"px-4 py-2 text-sm bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-colors"},"+ Invite Member")),Te.default.createElement("div",{className:"overflow-hidden"},Te.default.createElement("table",{className:"min-w-full"},Te.default.createElement("thead",null,Te.default.createElement("tr",{className:o?"border-b border-gray-700":"border-b border-gray-200"},Te.default.createElement("th",{className:`text-left py-3 px-4 text-sm font-medium ${o?"text-gray-400":"text-gray-500"}`},"Member"),Te.default.createElement("th",{className:`text-left py-3 px-4 text-sm font-medium ${o?"text-gray-400":"text-gray-500"}`},"Role"))),Te.default.createElement("tbody",null,(g||[]).map(M=>Te.default.createElement("tr",{key:M.id??M.email},Te.default.createElement("td",{className:"py-3 px-4"},Te.default.createElement("div",{className:"flex items-center space-x-3"},Te.default.createElement("div",{className:"w-8 h-8 bg-red-100 rounded-full flex items-center justify-center"},Te.default.createElement("span",{className:"text-red-600 font-medium text-sm"},(M.name||M.email||"?").charAt(0).toUpperCase())),Te.default.createElement("div",null,Te.default.createElement("p",{className:`font-medium ${o?"text-white":"text-gray-900"}`},M.name||M.email,M.id!=null&&M.id===t?.id&&Te.default.createElement("span",{className:`ml-2 text-xs ${o?"text-gray-500":"text-gray-400"}`},"(you)")),M.name&&M.email&&Te.default.createElement("p",{className:`text-sm ${o?"text-gray-400":"text-gray-500"}`},M.email)))),Te.default.createElement("td",{className:"py-3 px-4"},M.role?Te.default.createElement("span",{className:"px-2 py-1 bg-purple-100 text-purple-700 rounded text-sm"},String(M.role).charAt(0).toUpperCase()+String(M.role).slice(1)):Te.default.createElement("span",{className:o?"text-gray-500":"text-gray-400"},"\u2014")))))))),Te.default.createElement("div",{className:"space-y-2"},w&&Te.default.createElement("p",{className:"text-sm text-red-500",role:"alert"},w),Te.default.createElement(ib,{providerKeys:v,editor:N,scope:"organization",editable:S})),Te.default.createElement("div",{className:"border rounded-lg p-6",style:O},Te.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${o?"text-white":"text-gray-900"}`},"Usage This Month"),Te.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4"},Te.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:o?"#252525":"#f9fafb"}},Te.default.createElement("p",{className:`text-2xl font-bold ${o?"text-white":"text-gray-900"}`},n),Te.default.createElement("p",{className:`text-sm ${o?"text-gray-400":"text-gray-500"}`},"Agents")),Te.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:o?"#252525":"#f9fafb"}},Te.default.createElement("p",{className:`text-2xl font-bold ${o?"text-white":"text-gray-900"}`},uA(a?.traces_used),a?.traces_limit>0&&Te.default.createElement("span",{className:`text-sm font-normal ${o?"text-gray-500":"text-gray-400"}`}," / ",uA(a.traces_limit))),Te.default.createElement("p",{className:`text-sm ${o?"text-gray-400":"text-gray-500"}`},"Traces")),Te.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:o?"#252525":"#f9fafb"}},Te.default.createElement("p",{className:`text-2xl font-bold ${o?"text-white":"text-gray-900"}`},uA(a?.runs_used)),Te.default.createElement("p",{className:`text-sm ${o?"text-gray-400":"text-gray-500"}`},"Executions")),Te.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:o?"#252525":"#f9fafb"}},Te.default.createElement("p",{className:`text-2xl font-bold ${o?"text-white":"text-gray-900"}`},uA(a?.tokens_used)),Te.default.createElement("p",{className:`text-sm ${o?"text-gray-400":"text-gray-500"}`},"Tokens")))),Te.default.createElement("div",{className:"border rounded-lg p-6",style:O},Te.default.createElement("h3",{className:`text-lg font-semibold mb-1 ${o?"text-white":"text-gray-900"}`},"Telemetry"),Te.default.createElement("p",{className:`text-sm mb-4 ${o?"text-gray-400":"text-gray-500"}`},"Send traces from your own ActiveAgent app to this workspace. Add this to your"," ",Te.default.createElement("code",{className:`px-1 rounded text-xs ${o?"bg-gray-800 text-gray-300":"bg-gray-100 text-gray-700"}`},"config/active_agent.yml"),":"),Te.default.createElement("pre",{className:`text-xs rounded-lg p-4 overflow-x-auto mb-4 ${o?"bg-black text-gray-300":"bg-gray-900 text-gray-100"}`},`telemetry: +`)||x?.instructions||"",Xh=b.slice();h&&!Xh.some(ie=>ie.id===h)&&Xh.unshift({id:h,message_count:Qt.length});let CA=(c.trim().length>0||p.length>0)&&!C,Cd=L?.status==="awaiting_input",yb=Cd?ph(L.input_requests):[],AA=new Set(F.map(({request:ie})=>ie.id)),Zh=L&&!C&&L.status==="failed",Of=L&&!C&&L.status==="complete"&&!ys(L)&&!h,Il={background:a.cardBg,border:`1px solid ${a.cardBorder}`,borderRadius:"12px"},Ad={borderBottom:`1px solid ${a.cardBorder}`},Jh={padding:"6px 10px",borderRadius:"8px",border:`1px solid ${a.inputBorder}`,background:a.inputBg,color:a.textPrimary,fontSize:"13px",fontFamily:Pt.mono,maxWidth:"260px"},Qh={width:"100%",padding:"10px 12px",borderRadius:"8px",border:`1px solid ${m?Qo:a.inputBorder}`,background:a.inputBg,color:a.textPrimary,fontFamily:"inherit",fontSize:"13px",resize:"vertical"},qu=Ln("system",o),vb=qC(o);return X.default.createElement("div",{className:"grid grid-cols-3 gap-6 h-full"},X.default.createElement("div",{className:"col-span-2 flex flex-col gap-4 min-w-0"},le&&X.default.createElement("div",{className:"bg-amber-50 border border-amber-200 rounded-xl p-4 flex items-center justify-between gap-4"},X.default.createElement("div",null,X.default.createElement("p",{className:"font-medium text-amber-900"},"Monthly run limit reached"),X.default.createElement("p",{className:"text-sm text-amber-700 mt-0.5"},"You've used ",le.runs_used," of ",le.runs_limit," runs on the"," ",le.plan||"free"," plan. Upgrade to keep running agents."),_e&&X.default.createElement("p",{className:"text-sm text-red-600 mt-1"},_e)),X.default.createElement("div",{className:"flex items-center gap-2 flex-shrink-0"},kd&&X.default.createElement("a",{href:kd,className:"px-4 py-2 text-sm text-amber-800 hover:text-amber-900"},"See plans"),X.default.createElement("button",{onClick:Yh,disabled:te,className:"px-4 py-2 text-sm bg-amber-500 text-white rounded-lg hover:bg-amber-600 transition-colors disabled:opacity-50"},te?"Redirecting\u2026":"Upgrade to Pro"))),X.default.createElement("div",{"data-testid":"runner-toolbar",style:Il,className:"p-4 flex items-center gap-3 flex-wrap"},X.default.createElement(In,{size:40}),X.default.createElement("div",{className:"min-w-0"},X.default.createElement("div",{className:"font-semibold truncate",style:{color:a.textPrimary}},e.name),X.default.createElement("div",{className:"text-xs font-mono",style:{color:a.textSecondary}},e.provider," / ",e.model)),X.default.createElement("div",{className:"flex items-center gap-2 flex-wrap ml-auto"},X.default.createElement("select",{"data-testid":"runner-action-select",value:l,onChange:ie=>Ss(ie.target.value),disabled:C,className:"aa-field",style:Jh,title:"Agent action to invoke"},s.map(ie=>X.default.createElement("option",{key:ie,value:ie},"#",ie))),X.default.createElement("select",{"data-testid":"runner-conversation-select",value:h??"",onChange:ie=>Hu(ie.target.value),disabled:C,className:"aa-field",style:Jh,title:"Conversation to continue"},X.default.createElement("option",{value:""},"New conversation on first run"),Xh.map(ie=>X.default.createElement("option",{key:ie.id,value:ie.id},"Conversation #",ie.id," \xB7 ",ie.message_count??0," message",ie.message_count===1?"":"s"))),X.default.createElement(ma,{testId:"runner-new-conversation",variant:"secondary",size:"sm",colors:a,onClick:ro,disabled:C,title:"Start an empty conversation for this action"},"+ New conversation"),X.default.createElement(ma,{testId:"runner-back",variant:"secondary",size:"sm",colors:a,onClick:t},"\u2190 Back to editor"))),X.default.createElement("div",{"data-testid":"runner-context",ref:bs,style:Il,className:"flex flex-col overflow-hidden"},X.default.createElement("div",{className:"px-4 py-3 flex items-center justify-between gap-3 flex-wrap",style:Ad},X.default.createElement("div",{className:"flex items-center gap-2 min-w-0"},X.default.createElement("h3",{className:"font-medium",style:{color:a.textPrimary}},"Context"),x&&X.default.createElement("span",{className:"text-xs font-mono",style:{color:a.textMuted}},"#",x.id," \xB7 ",Qt.length," message",Qt.length===1?"":"s"),pt==="recording"&&X.default.createElement("span",{"data-testid":"runner-recording-notice",className:"text-xs inline-flex items-center gap-1",style:{color:a.textMuted},title:"This view is recorded for the conversation's replay. Field values are masked and keys are left out; the conversation is recorded as shown."},X.default.createElement("span",{"aria-hidden":"true",style:{color:"#ef4444"}},"\u25CF"),"Recording"),pt==="limit"&&X.default.createElement("span",{"data-testid":"runner-recording-stopped",className:"text-xs",style:{color:a.textMuted},title:"This visit reached the size limit for a recording, so the rest of it is not recorded. Open the conversation again to start a new recording."},"Recording stopped")),X.default.createElement("div",{className:"flex items-center gap-3 flex-wrap"},X.default.createElement(yCe,{run:L,darkMode:o,colors:a}),x&&X.default.createElement(ma,{testId:"runner-replay",variant:"secondary",size:"sm",colors:a,onClick:()=>lt(dh("context",x.id)),disabled:C,title:"Replay this conversation: its messages, model calls and tool calls on one timeline"},"Replay"),X.default.createElement("div",{className:"relative",ref:nt},X.default.createElement(ma,{testId:"runner-add-message",variant:"secondary",size:"sm",colors:a,onClick:()=>ee(ie=>!ie),disabled:C,title:"Insert a message into the context without running"},"+ Add message"),$&&X.default.createElement("div",{className:"absolute right-0 mt-1 z-10 py-1 rounded-lg shadow-lg",style:{background:a.cardBg,border:`1px solid ${a.borderStrong}`,minWidth:"180px"}},[["user","runner-add-user-message","User message"],["assistant","runner-add-assistant-message","Assistant message"]].map(([ie,Ie,st])=>X.default.createElement("button",{key:ie,type:"button","data-testid":Ie,onClick:()=>mo(ie),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-black/5",style:{color:a.textCell,background:"none",border:"none",cursor:"pointer"}},st)))))),X.default.createElement("div",{ref:ws,className:"p-4 overflow-auto",style:{maxHeight:"60vh"}},X.default.createElement("div",{"data-testid":"runner-system-row",className:"flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 cursor-pointer",onClick:()=>E(ie=>!ie),title:Y?"Collapse system instructions":"Show system instructions"},X.default.createElement("span",{className:"flex flex-col gap-1 flex-shrink-0 mt-0.5",style:{minWidth:"72px"}},X.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:qu.background,color:qu.color,textAlign:"center"}},qu.label)),X.default.createElement("div",{className:"min-w-0 flex-1"},_d?Y?X.default.createElement("pre",{style:{...vb,whiteSpace:"pre-wrap",maxHeight:"260px",overflowY:"auto"}},_d):X.default.createElement("div",{className:"text-sm truncate",style:{color:a.textSecondary}},_d.split(` +`).find(ie=>ie.trim())||""):X.default.createElement("div",{className:"text-sm",style:{color:a.textMuted}},"No system instructions"),X.default.createElement("div",{className:"text-xs mt-0.5 font-mono",style:{color:a.textMuted}},"read-only \xB7 Edit in the Instructions tab")),X.default.createElement(FQ,{open:Y,color:a.textMuted})),k&&X.default.createElement("div",{className:"text-sm mt-3",style:{color:"#dc2626"}},k),Qt.length>0?X.default.createElement("div",{className:"mt-3"},X.default.createElement(fs,{messages:Qt,darkMode:o,testIdPrefix:"runner-message",onUiAction:ja,onEditMessage:wd,onDeleteMessage:Sd})):!B&&!T&&!Zh&&X.default.createElement("div",{"data-testid":"runner-context-empty",className:"text-sm text-center py-8",style:{color:a.textMuted}},"No messages yet \u2014 say something below to test the agent as a user."),B&&X.default.createElement("div",{"data-testid":"runner-pending-turn",className:"flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 mt-3"},X.default.createElement("span",{className:"flex flex-col gap-1 flex-shrink-0 mt-0.5",style:{minWidth:"72px"}},X.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:Ln("user",o).background,color:Ln("user",o).color,textAlign:"center"}},"User")),X.default.createElement("div",{className:"min-w-0 flex-1"},X.default.createElement("div",{className:"text-sm break-words whitespace-pre-wrap",style:{color:a.textPrimary}},B.content),X.default.createElement(KC,{attachments:B.attachments,darkMode:o}))),L&&(C||ZD(L).length>0)&&X.default.createElement("div",{className:"mt-3 space-y-2"},X.default.createElement(hCe,{run:L,darkMode:o,colors:a,expanded:j,onToggle:ie=>O(Ie=>({...Ie,[ie]:!Ie[ie]}))}),C&&!Cd&&X.default.createElement("div",{className:"flex items-center gap-2 text-sm",style:{color:a.textSecondary}},X.default.createElement("span",{className:"animate-pulse"},"\u25CF"),X.default.createElement("span",null,ZD(L).length>0?"Working\u2026":"Starting run\u2026"))),(yb.length>0||F.length>0)&&X.default.createElement("div",{"data-testid":"runner-input-requests",className:"mt-3 space-y-2"},Cd&&X.default.createElement("div",{className:"text-sm",style:{color:a.textSecondary}},"Paused for input: answer to continue this run."),yb.filter(ie=>!AA.has(ie.id)).map(ie=>X.default.createElement(Qp,{key:ie.id,request:ie,showRunLink:!1,onSettled:Vh})),F.map(({request:ie,outcome:Ie})=>X.default.createElement(Qp,{key:ie.id,request:ie,initialOutcome:Ie,showRunLink:!1}))),I&&X.default.createElement("div",{className:"text-xs mt-3",style:{color:"#d97706"}},I),Zh&&L.error_message&&X.default.createElement("div",{className:"mt-3 rounded-lg p-3 text-sm",style:{background:o?"rgba(239,68,68,0.12)":"#fef2f2",color:o?"#fca5a5":"#b91c1c"}},X.default.createElement("div",{className:"font-semibold mb-1"},"Run failed"),X.default.createElement("pre",{className:"whitespace-pre-wrap font-mono text-xs",style:{margin:0}},L.error_message)),Of&&X.default.createElement("div",{className:"mt-3 rounded-lg p-3 text-sm",style:{background:a.innerBg,color:a.textPrimary}},X.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:a.textMuted}},"Output"),X.default.createElement(Us,{text:L.output||"No output",darkMode:o,onUiAction:ja})),T&&X.default.createElement("div",{"data-testid":"runner-inspected-run",className:"mt-3 rounded-lg p-3",style:{background:a.innerBg,border:`1px solid ${a.cardBorder}`}},X.default.createElement("div",{className:"flex items-center justify-between gap-3 flex-wrap mb-2"},X.default.createElement("div",{className:"flex items-center gap-2 text-xs font-mono",style:{color:a.textMuted}},X.default.createElement("span",{style:{color:a.textPrimary}},"Run #",T.id),X.default.createElement(hd,{tone:XD[T.status]||"neutral",darkMode:o},T.status),T.output_metadata?.model&&X.default.createElement("span",null,T.output_metadata.provider,"/",T.output_metadata.model),T.duration_ms?X.default.createElement("span",null,X2(T.duration_ms)):null,T.trace_id&&X.default.createElement("a",{href:Re(`/traces?trace=${T.trace_id}`),className:"hover:underline",style:{color:a.textSecondary}},"trace:",T.trace_id.slice(0,8)," \u2192"),X.default.createElement("span",null,"\xB7 no conversation attached")),X.default.createElement("button",{type:"button",onClick:()=>P(null),className:"text-xs font-mono",style:{color:a.textMuted,background:"none",border:"none",cursor:"pointer"},title:"Close"},"[x]")),(T.input_prompt||T.input_preview)&&X.default.createElement("div",{className:"text-sm mb-2 whitespace-pre-wrap",style:{color:a.textSecondary}},T.input_prompt||T.input_preview),T.error_message?X.default.createElement("pre",{className:"whitespace-pre-wrap font-mono text-xs",style:{margin:0,color:o?"#fca5a5":"#b91c1c"}},T.error_message):X.default.createElement("div",{className:"text-sm",style:{color:a.textPrimary}},X.default.createElement(Us,{text:T.output||"No output",darkMode:o}))),U&&X.default.createElement("div",{className:"mt-3 rounded-lg p-3",style:{border:`1px dashed ${a.borderStrong}`}},X.default.createElement("div",{className:"flex items-center gap-2 mb-2"},X.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:Ln(U,o).background,color:Ln(U,o).color}},Ln(U,o).label),X.default.createElement("span",{className:"text-xs",style:{color:a.textMuted}},"Added to the context without running the agent")),X.default.createElement("textarea",{"data-testid":"runner-inline-composer",value:et,onChange:ie=>rt(ie.target.value),onKeyDown:ie=>{ie.key==="Escape"&&me(null),ie.key==="Enter"&&(ie.metaKey||ie.ctrlKey)&&Ml()},placeholder:U==="user"?"What the user said\u2026":"What the assistant replied\u2026",rows:3,autoFocus:!0,className:"aa-field",style:{...Qh,border:`1px solid ${a.inputBorder}`}}),X.default.createElement("div",{className:"flex items-center gap-2 mt-2 flex-wrap"},X.default.createElement(ma,{testId:"runner-inline-submit",variant:"primary",size:"sm",colors:a,onClick:Ml,disabled:ge||!et.trim()},ge?"Adding\u2026":`Add ${U} message`),X.default.createElement(ma,{variant:"secondary",size:"sm",colors:a,onClick:()=>me(null),disabled:ge},"Cancel"),Fe&&X.default.createElement("span",{className:"text-xs",style:{color:"#dc2626"}},Fe))))),X.default.createElement("div",{style:Il,className:"p-4"},X.default.createElement("div",{onDragOver:ie=>{ie.preventDefault(),m||y(!0)},onDragLeave:()=>y(!1),onDrop:ie=>{ie.preventDefault(),y(!1),C||qh(ie.dataTransfer?.files)}},X.default.createElement("textarea",{"data-testid":"runner-prompt",value:c,onChange:ie=>d(ie.target.value),onKeyDown:Gh,placeholder:"Message the agent as a user\u2026 (\u2318/Ctrl+Enter to run \xB7 drop files here to attach)",rows:3,disabled:C,className:"aa-field",style:Qh})),X.default.createElement(KC,{attachments:p,darkMode:o,testId:"runner-attachment-chip",onRemove:(ie,Ie)=>fb(Ie),removeTestId:"runner-attachment-remove"}),X.default.createElement("div",{className:"flex items-center justify-between gap-3 flex-wrap mt-3"},X.default.createElement("div",{className:"flex items-center gap-3 flex-wrap"},X.default.createElement("input",{ref:ve,"data-testid":"runner-attach-input",type:"file",multiple:!0,style:{display:"none"},onChange:ie=>{qh(ie.target.files),ie.target.value=""}}),X.default.createElement(ma,{testId:"runner-attach",variant:"secondary",size:"sm",colors:a,onClick:()=>ve.current?.click(),disabled:C,title:"Attach images, PDFs, or text files to this message"},"\u{1F4CE} Attach files"),X.default.createElement("span",{className:"text-xs",style:{color:a.textMuted}},"Press ",X.default.createElement("kbd",{className:"px-1.5 py-0.5 rounded",style:{background:a.mutedBg,color:a.textSecondary}},"\u2318")," + ",X.default.createElement("kbd",{className:"px-1.5 py-0.5 rounded",style:{background:a.mutedBg,color:a.textSecondary}},"Enter")," to run")),X.default.createElement(ma,{testId:"runner-run",variant:"primary",colors:a,onClick:fo,disabled:!CA},C&&Cd?X.default.createElement(X.default.Fragment,null,X.default.createElement("span",{style:{fontFamily:Pt.mono}},"[?]")," Waiting for input"):C?X.default.createElement(X.default.Fragment,null,X.default.createElement("span",{className:"animate-spin inline-block",style:{fontFamily:Pt.mono}},"[~]")," Running\u2026"):X.default.createElement(X.default.Fragment,null,X.default.createElement("span",{style:{fontFamily:Pt.mono}},"[>]")," Run"))))),X.default.createElement("div",{className:"space-y-4 min-w-0"},X.default.createElement("div",{style:Il,className:"p-4"},X.default.createElement("h4",{className:"font-medium mb-3",style:{color:a.textPrimary}},"Configuration"),X.default.createElement("dl",{className:"space-y-2 text-sm"},X.default.createElement("div",{className:"flex justify-between"},X.default.createElement("dt",{style:{color:a.textSecondary}},"Temperature"),X.default.createElement("dd",{style:{color:a.textPrimary}},e.modelConfig?.temperature||e.model_config?.temperature||.7)),X.default.createElement(BQ,{label:"Tools",names:e.tools||[],colors:a}),X.default.createElement(BQ,{label:"MCP",names:(e.mcp_servers||e.mcpServers||[]).map(gCe),colors:a}),X.default.createElement("div",{className:"flex justify-between items-center gap-3"},X.default.createElement("dt",{className:"shrink-0",style:{color:a.textSecondary}},"Checkout"),X.default.createElement("dd",{className:"min-w-0"},X.default.createElement("select",{"data-testid":"runner-checkout",value:q,onChange:ie=>oe(ie.target.value),onFocus:Me,className:"text-xs rounded border px-1 py-0.5 max-w-[12rem]",style:{background:a.cardBg,borderColor:a.cardBorder,color:a.textPrimary}},X.default.createElement("option",{value:""},"None"),z.map(ie=>X.default.createElement("option",{key:ie.value,value:ie.value},ie.label))))),fe&&!q&&X.default.createElement("p",{className:"text-xs","data-testid":"runner-checkout-hint",style:{color:a.textMuted}},z.length?"Choose a checkout: the terminal, filesystem, edit and database tools act in it.":"The terminal, filesystem, edit and database tools act in a checkout. Boot one from a project's page, then choose it here."),X.default.createElement("div",{className:"flex justify-between items-center"},X.default.createElement("dt",{style:{color:a.textSecondary}},"Status"),X.default.createElement("dd",null,X.default.createElement(hd,{tone:e.status==="active"?"success":"neutral",darkMode:o},e.status)))),e.instructions&&X.default.createElement("div",{className:"mt-3 pt-3",style:{borderTop:`1px solid ${a.cardBorder}`}},X.default.createElement("div",{className:"text-xs mb-1.5",style:{color:a.textSecondary}},"System Instructions"),X.default.createElement("p",{className:"text-xs whitespace-pre-wrap max-h-44 overflow-y-auto font-mono leading-relaxed",style:{color:a.textCell}},e.instructions))),X.default.createElement("div",{style:Il,className:"overflow-hidden"},X.default.createElement("div",{className:"px-4 py-3",style:Ad},X.default.createElement("h4",{className:"font-medium",style:{color:a.textPrimary}},"Recent Runs")),X.default.createElement("div",{className:"max-h-64 overflow-auto"},_.length>0?X.default.createElement("div",null,_.map(ie=>X.default.createElement("div",{key:ie.id,"data-testid":"runner-recent-run",className:"px-4 py-3 cursor-pointer hover:bg-black/5",style:{borderBottom:`1px solid ${a.cardBorder}`},onClick:()=>gb(ie),title:ys(ie)?"Open this run\u2019s conversation":"Show this run\u2019s output"},X.default.createElement("div",{className:"flex items-center justify-between mb-1"},X.default.createElement(hd,{tone:XD[ie.status]||"neutral",darkMode:o},ie.status),X.default.createElement("span",{className:"text-xs",style:{color:a.textMuted}},X2(ie.duration_ms))),X.default.createElement("p",{className:"text-sm truncate",style:{color:a.textCell}},ie.input_preview||ie.input_prompt?.substring(0,50)),X.default.createElement("p",{className:"text-xs mt-1 flex items-center gap-2 flex-wrap",style:{color:a.textMuted}},ie.model&&X.default.createElement("span",{className:"px-1.5 py-0.5 rounded font-mono",style:{background:a.mutedBg,color:a.textSecondary}},ie.model),ys(ie)&&X.default.createElement("span",{className:"font-mono"},"#",ys(ie)),X.default.createElement("span",null,new Date(ie.created_at).toLocaleString()))))):X.default.createElement("div",{className:"px-4 py-8 text-center text-sm",style:{color:a.textMuted}},"No runs yet"))),X.default.createElement("div",{style:Il,className:"p-4"},X.default.createElement("h4",{className:"font-medium mb-3",style:{color:a.textPrimary}},"Example Prompts"),X.default.createElement("div",{className:"space-y-2"},dCe.map(ie=>X.default.createElement("button",{key:ie,type:"button","data-testid":"runner-example-prompt",onClick:()=>d(ie),className:"w-full text-left px-3 py-2 text-sm rounded-lg transition-colors hover:bg-black/5",style:{color:a.textCell,border:`1px solid ${a.cardBorder}`,background:"transparent",cursor:"pointer"}},ie))))))}var Ge=Z(Q()),Z2=e=>new Date(`${e}T00:00:00`),vCe=[{value:7,label:"7 days"},{value:14,label:"14 days"},{value:30,label:"30 days"},{value:90,label:"90 days"}];function QD({onSelectAgent:e}){let[t,r]=(0,Ge.useState)(null),[n,o]=(0,Ge.useState)(!0),[a,i]=(0,Ge.useState)(30);(0,Ge.useEffect)(()=>{s()},[a]);let s=async()=>{o(!0);try{let f=await(await fetch(`/api/analytics?days=${a}`)).json();r(f)}catch(p){console.error("Failed to load analytics:",p)}finally{o(!1)}},l=p=>p?p>=1e6?`${(p/1e6).toFixed(1)}M`:p>=1e3?`${(p/1e3).toFixed(1)}K`:p.toString():"0",u=p=>p?p<1e3?`${p}ms`:`${(p/1e3).toFixed(2)}s`:"-";if(n&&!t)return Ge.default.createElement("div",{className:"flex items-center justify-center h-64"},Ge.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let c=t?.charts?.runs_by_day?.length>0?Math.max(...t.charts.runs_by_day.map(p=>p.count)):1,d=t?.charts?.tokens_by_day?.length>0?Math.max(...t.charts.tokens_by_day.map(p=>p.tokens)):1;return Ge.default.createElement("div",{className:"space-y-6"},Ge.default.createElement("div",{className:"flex items-center justify-between"},Ge.default.createElement("div",null,Ge.default.createElement("h1",{className:"text-2xl font-bold text-gray-900"},"Analytics Dashboard"),Ge.default.createElement("p",{className:"text-sm text-gray-500"},"Overview of all your agents' performance")),Ge.default.createElement("select",{value:a,onChange:p=>i(Number(p.target.value)),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},vCe.map(p=>Ge.default.createElement("option",{key:p.value,value:p.value},"Last ",p.label)))),Ge.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-5 gap-4"},Ge.default.createElement(Y0,{title:"Total Agents",value:t?.summary?.total_agents||0,subtitle:`${t?.summary?.active_agents||0} active`,color:"rose"}),Ge.default.createElement(Y0,{title:"Total Runs",value:t?.summary?.total_runs||0,subtitle:`${t?.period_days} day period`,color:"blue"}),Ge.default.createElement(Y0,{title:"Success Rate",value:`${t?.summary?.success_rate||0}%`,subtitle:`${t?.summary?.completed_runs||0} completed`,color:"green"}),Ge.default.createElement(Y0,{title:"Avg Duration",value:u(t?.summary?.avg_duration_ms),subtitle:"per run",color:"purple"}),Ge.default.createElement(Y0,{title:"Total Tokens",value:l(t?.summary?.total_tokens),subtitle:`${l(t?.summary?.avg_tokens_per_run)}/run avg`,color:"amber"})),Ge.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6"},Ge.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},Ge.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Runs Over Time"),t?.charts?.runs_by_day?.length>0?Ge.default.createElement("div",{className:"h-48"},Ge.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},t.charts.runs_by_day.map((p,f)=>Ge.default.createElement("div",{key:p.date,className:"flex-1 flex flex-col items-center group"},Ge.default.createElement("div",{className:"relative w-full"},Ge.default.createElement("div",{className:"w-full bg-red-500 rounded-t transition-all hover:bg-red-600",style:{height:`${p.count/c*150}px`,minHeight:p.count>0?"4px":"0"}}),Ge.default.createElement("div",{className:"absolute -top-8 left-1/2 transform -translate-x-1/2 bg-gray-800 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap z-10"},p.count," runs"))))),Ge.default.createElement("div",{className:"flex justify-between mt-2 text-xs text-gray-400"},Ge.default.createElement("span",null,t.charts.runs_by_day[0]?.date&&Z2(t.charts.runs_by_day[0].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})),Ge.default.createElement("span",null,t.charts.runs_by_day[t.charts.runs_by_day.length-1]?.date&&Z2(t.charts.runs_by_day[t.charts.runs_by_day.length-1].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))):Ge.default.createElement("div",{className:"h-48 flex items-center justify-center text-gray-400"},"No runs in this period")),Ge.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},Ge.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Token Usage Over Time"),t?.charts?.tokens_by_day?.length>0?Ge.default.createElement("div",{className:"h-48"},Ge.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},t.charts.tokens_by_day.map((p,f)=>Ge.default.createElement("div",{key:p.date,className:"flex-1 flex flex-col items-center group"},Ge.default.createElement("div",{className:"relative w-full"},Ge.default.createElement("div",{className:"w-full bg-purple-500 rounded-t transition-all hover:bg-purple-600",style:{height:`${p.tokens/d*150}px`,minHeight:p.tokens>0?"4px":"0"}}),Ge.default.createElement("div",{className:"absolute -top-8 left-1/2 transform -translate-x-1/2 bg-gray-800 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap z-10"},l(p.tokens)," tokens"))))),Ge.default.createElement("div",{className:"flex justify-between mt-2 text-xs text-gray-400"},Ge.default.createElement("span",null,t.charts.tokens_by_day[0]?.date&&Z2(t.charts.tokens_by_day[0].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})),Ge.default.createElement("span",null,t.charts.tokens_by_day[t.charts.tokens_by_day.length-1]?.date&&Z2(t.charts.tokens_by_day[t.charts.tokens_by_day.length-1].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))):Ge.default.createElement("div",{className:"h-48 flex items-center justify-center text-gray-400"},"No token usage in this period"))),Ge.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6"},Ge.default.createElement("div",{className:"lg:col-span-2 bg-white rounded-xl border border-gray-200 p-6"},Ge.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Top Agents"),t?.top_agents?.length>0?Ge.default.createElement("div",{className:"space-y-3"},t.top_agents.map((p,f)=>Ge.default.createElement("div",{key:p.id,onClick:()=>e?.(p),className:"flex items-center space-x-4 p-3 rounded-lg hover:bg-gray-50 cursor-pointer transition-colors"},Ge.default.createElement("div",{className:"w-8 h-8 rounded-full bg-red-100 flex items-center justify-center text-red-600 font-semibold"},f+1),Ge.default.createElement("div",{className:"flex-1 min-w-0"},Ge.default.createElement("p",{className:"font-medium text-gray-900 truncate"},p.name),Ge.default.createElement("p",{className:"text-sm text-gray-500"},p.run_count," runs")),Ge.default.createElement("div",{className:"text-right"},Ge.default.createElement("p",{className:"font-medium text-gray-900"},l(p.total_tokens)),Ge.default.createElement("p",{className:"text-xs text-gray-500"},"tokens"))))):Ge.default.createElement("div",{className:"py-8 text-center text-gray-400"},"No agent activity yet")),Ge.default.createElement("div",{className:"space-y-6"},Ge.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},Ge.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"By Provider"),Object.keys(t?.provider_breakdown||{}).length>0?Ge.default.createElement("div",{className:"space-y-3"},Object.entries(t.provider_breakdown).map(([p,f])=>{let m=t?.summary?.total_runs||1,y=(f/m*100).toFixed(1);return Ge.default.createElement("div",{key:p},Ge.default.createElement("div",{className:"flex justify-between text-sm mb-1"},Ge.default.createElement("span",{className:"capitalize text-gray-600"},p),Ge.default.createElement("span",{className:"text-gray-900 font-medium"},f)),Ge.default.createElement("div",{className:"h-2 bg-gray-100 rounded-full overflow-hidden"},Ge.default.createElement("div",{className:"h-full bg-blue-500 rounded-full",style:{width:`${y}%`}})))})):Ge.default.createElement("div",{className:"py-4 text-center text-gray-400 text-sm"},"No data")),Ge.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},Ge.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Token Usage"),Ge.default.createElement("div",{className:"space-y-4"},Ge.default.createElement("div",{className:"flex justify-between items-center"},Ge.default.createElement("span",{className:"text-sm text-gray-500"},"Input Tokens"),Ge.default.createElement("span",{className:"font-medium text-gray-900"},l(t?.summary?.total_input_tokens))),Ge.default.createElement("div",{className:"flex justify-between items-center"},Ge.default.createElement("span",{className:"text-sm text-gray-500"},"Output Tokens"),Ge.default.createElement("span",{className:"font-medium text-gray-900"},l(t?.summary?.total_output_tokens))),Ge.default.createElement("div",{className:"pt-2 border-t border-gray-100"},Ge.default.createElement("div",{className:"flex justify-between items-center"},Ge.default.createElement("span",{className:"text-sm font-medium text-gray-700"},"Total"),Ge.default.createElement("span",{className:"font-bold text-gray-900"},l(t?.summary?.total_tokens)))))))))}function Y0({title:e,value:t,subtitle:r,color:n}){return Ge.default.createElement("div",{className:`bg-white rounded-xl border border-gray-200 border-l-4 ${{rose:"border-l-red-500",blue:"border-l-blue-500",green:"border-l-green-500",purple:"border-l-purple-500",amber:"border-l-amber-500"}[n]} p-4`},Ge.default.createElement("p",{className:"text-sm text-gray-500"},e),Ge.default.createElement("p",{className:"text-2xl font-bold text-gray-900 mt-1"},t),r&&Ge.default.createElement("p",{className:"text-xs text-gray-400 mt-1"},r))}var ne=Z(Q());function RD({agent:e,onBack:t}){let{timeWindow:r}=xl(),[n,o]=(0,ne.useState)([]),[a,i]=(0,ne.useState)([]),[s,l]=(0,ne.useState)(null),[u,c]=(0,ne.useState)(null),[d,p]=(0,ne.useState)([]),[f,m]=(0,ne.useState)("run"),[y,b]=(0,ne.useState)(!1),[g,h]=(0,ne.useState)(!1),v=(0,ne.useRef)(!1),x=(0,ne.useRef)(!1),[S,k]=(0,ne.useState)("recent"),[w,_]=(0,ne.useState)({}),[A,C]=(0,ne.useState)(!0),[N,L]=(0,ne.useState)(1),[J,B]=(0,ne.useState)(!0),[K,T]=(0,ne.useState)(""),[P,I]=(0,ne.useState)(""),[M,j]=(0,ne.useState)("recent"),O=(0,ne.useRef)(null),F=Re(`/agents/${e.id}/interactions`);(0,ne.useEffect)(()=>{V()},[e.id,N,K,P,M,r.minutes]),(0,ne.useEffect)(()=>{L(1)},[r.minutes]),(0,ne.useEffect)(()=>{fetch(`/api/interactions?agent_id=${e.id}`).then(D=>D.json()).then(D=>i(D.interactions||[])).catch(()=>{}).finally(()=>h(!0))},[e.id]),(0,ne.useEffect)(()=>{let D=()=>{let Y=Rn(),E=Y.match(/\/interactions\/runs\/(\d+)/),$=Y.match(/\/interactions\/sessions\/(\d+)/);if(E)m("run"),c(null),G(parseInt(E[1],10),{updateUrl:!1});else if($)m("all"),c({id:parseInt($[1],10)});else if(Y.endsWith("/interactions/sessions")||Y.endsWith("/interactions/all"))Y.endsWith("/all")&&window.history.replaceState({},"",Y.replace(/\/all$/,"/sessions")),m("all"),c(null);else{v.current=!1,l(null),c(null),p([]);return}v.current=!0};return D(),window.addEventListener("popstate",D),()=>window.removeEventListener("popstate",D)},[e.id]),(0,ne.useEffect)(()=>{v.current||x.current||!y||!g||m(n.length===0&&a.length>0?"all":"run")},[y,g,n.length,a.length]);let V=async()=>{C(!0);try{let D=new URLSearchParams({page:N.toString(),per_page:"20",minutes:String(r.minutes)});K&&D.append("status",K),P&&D.append("source",P),M!=="recent"&&D.append("sort",M);let E=await(await fetch(`/api/agents/${e.id}/runs?${D}`)).json();o(N===1?E.runs:$=>[...$,...E.runs]),B(E.runs.length===20)}catch(D){console.error("Failed to load runs:",D)}finally{C(!1),b(!0)}},z=D=>{window.location.pathname!==D&&window.history.pushState({},"",D)},G=async(D,{updateUrl:Y=!0}={})=>{try{let $=await(await fetch(`/api/runs/${D}`)).json();l($.run),p($.messages||[]),m("run"),c(null),Y&&z(`${F}/runs/${D}`)}catch(E){console.error("Failed to load run details:",E)}},q=D=>{if(D.source==="reported"){let Y=D.trace_id||String(D.id).replace(/^trace-/,"");window.history.pushState(window.history.state,"",Re(`/traces/${Y}`)),window.dispatchEvent(new CustomEvent("dashboard:navigate",{detail:{path:Re(`/traces/${Y}`)}}));return}G(D.record_id||D.id)},oe=()=>{l(null),c(null),p([]),m("run"),z(F)},Me=D=>{m("all"),D?(c({id:D.id,name:D.display_name}),z(`${F}/sessions/${D.id}`)):(c(null),z(`${F}/sessions`))},fe=D=>{x.current=!0,m(D),z(D==="all"?u?`${F}/sessions/${u.id}`:`${F}/sessions`:s?`${F}/runs/${s.id}`:F)},le=u?u.name||a.find(D=>D.id===u.id)?.display_name||`Session #${u.id}`:null,R=()=>{let D=new Map;n.forEach($=>{let ee=`${$.model||"unknown"}|${$.instructions_digest||"none"}`;D.has(ee)||D.set(ee,{key:ee,model:$.model,instructionsDigest:$.instructions_digest,instructionsVersion:$.instructions_version,instructionsCodename:$.instructions_codename,instructionsPreview:$.instructions_preview,runs:[]}),D.get(ee).runs.push($)});let Y=[...D.values()].map($=>({...$,count:$.runs.length,completed:$.runs.filter(ee=>ee.status==="complete").length,failed:$.runs.filter(ee=>ee.status==="failed").length,totalTokens:$.runs.reduce((ee,U)=>ee+(U.tokens||0),0),avgTokens:$.runs.reduce((ee,U)=>ee+(U.tokens||0),0)/$.runs.length,avgDuration:$.runs.reduce((ee,U)=>ee+(U.duration_ms||0),0)/$.runs.length,latest:$.runs[0],sortedRuns:[...$.runs].sort((ee,U)=>(U.duration_ms||0)-(ee.duration_ms||0))}));Y.sort(($,ee)=>S==="longest"?ee.avgDuration-$.avgDuration:new Date(ee.latest.created_at)-new Date($.latest.created_at));let E={runs:n.length,completed:n.filter($=>$.status==="complete").length,tokens:n.reduce(($,ee)=>$+(ee.tokens||0),0),avgDuration:n.length?n.reduce(($,ee)=>$+(ee.duration_ms||0),0)/n.length:0,models:[...new Set(n.map($=>$.model).filter(Boolean))]};return{cohorts:Y,totals:E}},te=D=>D?D<1e3?`${D}ms`:D<6e4?`${(D/1e3).toFixed(1)}s`:`${Math.floor(D/6e4)}m ${Math.floor(D%6e4/1e3)}s`:"-",He=D=>D==null?"\u2014":D===0?"$0":D<.01?`$${D.toFixed(4)}`:`$${D.toFixed(2)}`,_e=D=>{let Y=new Date(D),$=new Date-Y,ee=Math.floor($/6e4),U=Math.floor($/36e5),me=Math.floor($/864e5);return ee<1?"Just now":ee<60?`${ee}m ago`:U<24?`${U}h ago`:me<7?`${me}d ago`:Y.toLocaleDateString()};return ne.default.createElement("div",{className:"flex h-full"},ne.default.createElement("div",{className:"w-80 border-r border-gray-200 flex flex-col bg-white"},ne.default.createElement("div",{className:"p-4 border-b border-gray-200"},ne.default.createElement("div",{className:"flex items-center space-x-3 mb-4"},ne.default.createElement("button",{onClick:t,className:"p-1 text-gray-400 hover:text-gray-600 transition-colors"},ne.default.createElement("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ne.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"}))),ne.default.createElement("div",null,ne.default.createElement("h2",{className:"font-semibold text-gray-900"},"Agent Interactions"),ne.default.createElement("p",{className:"text-sm text-gray-500"},e.name))),ne.default.createElement("div",{className:"mb-2"},ne.default.createElement(bl,{compact:!0})),ne.default.createElement("div",{className:"flex bg-gray-100 rounded-lg p-1 mb-2 text-sm"},[{value:"",label:"All"},{value:"dashboard",label:"Dashboard"},{value:"reported",label:"Reported"}].map(D=>ne.default.createElement("button",{key:D.value||"all",onClick:()=>{I(D.value),L(1)},className:`flex-1 px-2 py-1 rounded-md transition-colors ${P===D.value?"bg-white shadow text-gray-900":"text-gray-600"}`,title:D.value==="dashboard"?"Executions started from this dashboard":D.value==="reported"?"Executions reported by your app via telemetry":"Every execution, however it started"},D.label))),ne.default.createElement("select",{value:K,onChange:D=>{T(D.target.value),L(1)},className:"w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500"},ne.default.createElement("option",{value:""},"All statuses"),ne.default.createElement("option",{value:"complete"},"Completed"),ne.default.createElement("option",{value:"failed"},"Failed"),ne.default.createElement("option",{value:"running"},"Running"),ne.default.createElement("option",{value:"cancelled"},"Cancelled")),ne.default.createElement("select",{value:M,onChange:D=>{j(D.target.value),L(1)},className:"w-full mt-2 px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500",title:"Rank these executions"},ne.default.createElement("option",{value:"recent"},"Most recent"),ne.default.createElement("option",{value:"longest"},"Longest running"),ne.default.createElement("option",{value:"cost"},"Highest cost"),ne.default.createElement("option",{value:"tokens"},"Most tokens"))),ne.default.createElement("div",{className:"flex-1 overflow-auto"},A&&n.length===0?ne.default.createElement("div",{className:"flex items-center justify-center h-32"},ne.default.createElement("div",{className:"animate-spin rounded-full h-6 w-6 border-b-2 border-red-500"})):n.length>0?ne.default.createElement(ne.default.Fragment,null,n.map(D=>{let Y=D.source==="reported";return ne.default.createElement("div",{key:D.id,onClick:()=>q(D),title:Y?"Reported by your app \u2014 opens its trace":"Started from this dashboard",className:`p-4 border-b border-gray-100 cursor-pointer transition-colors ${!Y&&s?.id===D.id?"bg-red-50 border-l-4 border-l-red-500":"hover:bg-gray-50"}`},ne.default.createElement("div",{className:"flex items-center justify-between mb-2 gap-2"},ne.default.createElement(ke,{tone:al(D.status)},D.status),ne.default.createElement("div",{className:"flex items-center gap-2"},ne.default.createElement("span",{className:`px-1.5 py-0.5 rounded text-[10px] uppercase tracking-wide ${Y?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-600"}`},Y?"reported":"dashboard"),ne.default.createElement("span",{className:"text-xs text-gray-400"},_e(D.created_at||D.occurred_at)),!Y&&ne.default.createElement(ld,{kind:"run",id:D.id,title:"Replay this run"}))),ne.default.createElement("p",{className:"text-sm text-gray-700 truncate"},D.input_preview||D.input_prompt?.substring(0,60)||(Y?`${D.action_name||"execution"} \xB7 trace ${String(D.trace_id||"").slice(0,8)}`:"No input")),ne.default.createElement("div",{className:"flex items-center space-x-3 mt-2 text-xs text-gray-400 flex-wrap gap-y-1"},D.model&&ne.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono"},D.model),ne.default.createElement("span",{className:M==="longest"?"text-gray-700 font-medium":void 0},te(D.duration_ms)),!!D.tokens&&ne.default.createElement("span",{className:M==="tokens"?"text-gray-700 font-medium":void 0},D.tokens," tokens"),D.cost!=null&&ne.default.createElement("span",{className:M==="cost"?"text-gray-700 font-medium":void 0,title:"Estimated from token counts at this model's published rates"},He(D.cost))))}),J&&ne.default.createElement("button",{onClick:()=>L(D=>D+1),disabled:A,className:"w-full py-3 text-sm text-red-600 hover:bg-gray-50 transition-colors"},A?"Loading...":"Load More")):ne.default.createElement("div",{className:"p-8 text-center text-gray-400"},ne.default.createElement("svg",{className:"w-12 h-12 mx-auto mb-3 text-gray-300",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ne.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"})),ne.default.createElement("p",null,"No conversations yet")))),ne.default.createElement("div",{className:"flex-1 flex flex-col bg-gray-50"},ne.default.createElement("div",{className:"px-4 py-2 bg-white border-b border-gray-100 flex items-center gap-1.5 text-xs text-gray-500"},ne.default.createElement("button",{onClick:t,className:"hover:text-gray-900 hover:underline transition-colors"},e.name),ne.default.createElement("span",{className:"text-gray-300"},"/"),f==="all"||s?ne.default.createElement(ne.default.Fragment,null,ne.default.createElement("button",{onClick:oe,className:"hover:text-gray-900 hover:underline transition-colors"},"Interactions"),ne.default.createElement("span",{className:"text-gray-300"},"/"),f==="all"?u?ne.default.createElement(ne.default.Fragment,null,ne.default.createElement("button",{onClick:()=>Me(null),className:"hover:text-gray-900 hover:underline transition-colors"},"Sessions"),ne.default.createElement("span",{className:"text-gray-300"},"/"),ne.default.createElement("span",{className:"text-gray-900 font-medium"},le)):ne.default.createElement("span",{className:"text-gray-900 font-medium"},"Sessions"):ne.default.createElement("span",{className:"text-gray-900 font-medium"},"Run #",s.id)):ne.default.createElement("span",{className:"text-gray-900 font-medium"},"Interactions")),ne.default.createElement("div",{className:"p-3 bg-white border-b border-gray-200 flex items-center justify-between"},ne.default.createElement("div",{className:"flex bg-gray-100 rounded-lg p-1"},ne.default.createElement("button",{onClick:()=>fe("run"),className:`px-3 py-1 text-sm rounded-md transition-colors ${f==="run"?"bg-white shadow text-gray-900":"text-gray-600"}`},"Selected run"),ne.default.createElement("button",{onClick:()=>fe("all"),className:`px-3 py-1 text-sm rounded-md transition-colors ${f==="all"?"bg-white shadow text-gray-900":"text-gray-600"}`},"Sessions")),f==="run"&&s&&ne.default.createElement(ke,{tone:al(s.status),size:12},s.status)),f==="all"?ne.default.createElement("div",{className:"flex-1 overflow-auto p-4 space-y-4"},(()=>{let{totals:D}=R();return ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4 space-y-3"},ne.default.createElement("div",{className:"flex items-center gap-3"},ne.default.createElement(In,{size:40}),ne.default.createElement("div",null,ne.default.createElement("h3",{className:"font-semibold text-gray-900"},e.name),ne.default.createElement("p",{className:"text-xs text-gray-500"},u?`${le} \u2014 one persisted interaction stream`:"Sessions group this agent\u2019s runs into persisted interaction streams"))),ne.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3"},ne.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Runs"),ne.default.createElement("p",{className:"text-lg font-bold text-gray-900"},D.runs)),ne.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Success"),ne.default.createElement("p",{className:"text-lg font-bold text-gray-900"},D.runs?Math.round(D.completed/D.runs*100):0,"%")),ne.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Avg Duration"),ne.default.createElement("p",{className:"text-lg font-bold text-gray-900"},te(Math.round(D.avgDuration)))),ne.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Tokens"),ne.default.createElement("p",{className:"text-lg font-bold text-gray-900"},D.tokens.toLocaleString()))))})(),ne.default.createElement($u,{agentId:e.id,embedded:!0,selectedSessionId:u?.id??null,onSelectSession:Me})):s?ne.default.createElement(ne.default.Fragment,null,ne.default.createElement("div",{className:"p-4 bg-white border-b border-gray-200"},ne.default.createElement("div",{className:"flex items-center space-x-3"},ne.default.createElement(In,{size:40}),ne.default.createElement("div",null,ne.default.createElement("h3",{className:"font-medium text-gray-900"},e.name," \u2014 Run #",s.id),ne.default.createElement("p",{className:"text-xs text-gray-500"},new Date(s.created_at).toLocaleString())))),ne.default.createElement("div",{ref:O,className:"flex-1 overflow-auto p-6"},ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 shadow-sm p-4"},d.length>0?ne.default.createElement(fs,{messages:d,darkMode:!1}):ne.default.createElement(fs,{darkMode:!1,messages:[{id:`run-${s.id}-input`,role:"user",content:s.input_prompt||s.input_preview,created_at:s.created_at},{id:`run-${s.id}-output`,role:"assistant",content:s.error_message||s.output||s.output_preview||"No response",created_at:s.completed_at||s.created_at}]}))),ne.default.createElement("div",{className:"p-4 bg-white border-t border-gray-200"},ne.default.createElement("div",{className:"flex items-center justify-center space-x-8 text-sm text-gray-500"},ne.default.createElement("span",null,"Duration: ",te(s.duration_ms)),s.total_tokens&&ne.default.createElement("span",null,"Tokens: ",s.total_tokens),s.input_tokens&&s.output_tokens&&ne.default.createElement("span",null,"Input: ",s.input_tokens," / Output: ",s.output_tokens),s.trace_id&&ne.default.createElement("a",{href:Re(`/traces?trace=${s.trace_id}`),className:"font-mono text-xs text-blue-500 hover:underline",title:`${s.trace_id} \u2014 open in Traces`},"trace:",s.trace_id.slice(0,8)," \u2192")))):(()=>{let{cohorts:D,totals:Y}=R();return D.length===0?ne.default.createElement("div",{className:"flex-1 flex items-center justify-center"},ne.default.createElement("div",{className:"text-center text-gray-400"},ne.default.createElement(In,{size:100}),ne.default.createElement("p",{className:"mt-4"},"No runs yet \u2014 run the agent to build its report"))):ne.default.createElement("div",{className:"flex-1 overflow-auto p-6 space-y-5"},ne.default.createElement("div",{className:"flex items-center gap-3"},ne.default.createElement(In,{size:40}),ne.default.createElement("div",null,ne.default.createElement("h3",{className:"font-semibold text-gray-900"},"Agent Report"),ne.default.createElement("p",{className:"text-xs text-gray-500"},"Recent activity for ",e.name," \u2014 select a run for its full interaction"))),ne.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3"},ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Runs"),ne.default.createElement("p",{className:"text-xl font-bold text-gray-900"},Y.runs)),ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Success"),ne.default.createElement("p",{className:"text-xl font-bold text-gray-900"},Y.runs?Math.round(Y.completed/Y.runs*100):0,"%")),ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Avg Duration"),ne.default.createElement("p",{className:"text-xl font-bold text-gray-900"},te(Math.round(Y.avgDuration)))),ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},ne.default.createElement("p",{className:"text-xs text-gray-500"},"Tokens"),ne.default.createElement("p",{className:"text-xl font-bold text-gray-900"},Y.tokens.toLocaleString()))),Y.models.length>0&&ne.default.createElement("div",{className:"flex items-center gap-2 flex-wrap text-xs"},ne.default.createElement("span",{className:"text-gray-500"},"Models used:"),Y.models.map(E=>ne.default.createElement("span",{key:E,className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono"},E))),a.length>0&&ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},ne.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100"},ne.default.createElement("span",{className:"text-xs uppercase tracking-wide text-gray-400"},"Sessions \u2014 grouped interaction streams")),ne.default.createElement("div",{className:"divide-y divide-gray-100"},a.map(E=>ne.default.createElement("div",{key:E.id,className:"px-4 py-3 hover:bg-gray-50 cursor-pointer flex items-center justify-between gap-3",onClick:()=>Me(E),title:"Open this session's interaction stream"},ne.default.createElement("div",{className:"flex items-center gap-2 min-w-0",title:E.display_name},ne.default.createElement("span",{className:"px-2 py-0.5 text-xs font-medium bg-blue-100 text-blue-700 rounded flex-shrink-0"},"SESSION"),ne.default.createElement("span",{className:"text-sm text-gray-900 truncate"},E.agent?.name||E.agent_name),E.action_name&&ne.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-purple-50 text-purple-700 font-mono text-xs flex-shrink-0"},"#",E.action_name)),ne.default.createElement("div",{className:"flex items-center gap-3 text-xs text-gray-400 flex-shrink-0"},ne.default.createElement("span",null,E.message_count," messages"),ne.default.createElement("span",null,(E.tokens?.total||0).toLocaleString()," tokens"),ne.default.createElement("span",null,_e(E.last_activity_at)),ne.default.createElement(ld,{kind:"context",id:E.id,title:"Replay this conversation"})))))),ne.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},ne.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100 flex items-center justify-between"},ne.default.createElement("span",{className:"text-xs uppercase tracking-wide text-gray-400"},"Interactions by instructions \xD7 model"),ne.default.createElement("select",{value:S,onChange:E=>k(E.target.value),className:"text-xs border border-gray-200 rounded px-2 py-1 text-gray-600"},ne.default.createElement("option",{value:"recent"},"Most recent"),ne.default.createElement("option",{value:"longest"},"Longest interactions"))),ne.default.createElement("div",{className:"divide-y divide-gray-100"},D.map(E=>ne.default.createElement("div",{key:E.key},ne.default.createElement("div",{className:"px-4 py-3 hover:bg-gray-50 cursor-pointer",onClick:()=>_($=>({...$,[E.key]:!$[E.key]})),title:"Show this configuration's runs"},ne.default.createElement("div",{className:"flex items-center gap-2 flex-wrap"},ne.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono text-xs"},E.model||"unknown model"),ne.default.createElement("span",{className:"text-xs text-gray-400 font-mono",title:E.instructionsDigest?`sha:${E.instructionsDigest}`:void 0},"instructions"," ",E.instructionsDigest?[E.instructionsVersion,E.instructionsCodename||E.instructionsDigest].filter(Boolean).join(" \xB7 "):"n/a")),E.instructionsPreview&&ne.default.createElement("p",{className:"text-xs text-gray-500 mt-1 truncate"},E.instructionsPreview),ne.default.createElement("div",{className:"flex items-center gap-3 mt-1.5 text-xs text-gray-400 flex-wrap gap-y-1"},ne.default.createElement("span",null,E.count," run",E.count>1?"s":""),ne.default.createElement("span",{className:E.failed>0?"text-red-500":"text-green-600"},E.count?Math.round(E.completed/E.count*100):0,"% success"),ne.default.createElement("span",null,"avg ",te(Math.round(E.avgDuration))),ne.default.createElement("span",null,"avg ",Math.round(E.avgTokens).toLocaleString()," tokens"),ne.default.createElement("span",null,"last ",_e(E.latest.created_at)))),w[E.key]&&ne.default.createElement("div",{className:"bg-gray-50 divide-y divide-gray-100 border-t border-gray-100"},E.sortedRuns.map($=>ne.default.createElement("div",{key:$.id,className:"px-6 py-2 hover:bg-gray-100 cursor-pointer",onClick:()=>G($.id),title:"Open this run's interaction"},ne.default.createElement("p",{className:"text-xs text-gray-700 truncate"},$.input_preview||"No input"),ne.default.createElement("div",{className:"flex items-center gap-3 mt-0.5 text-[11px] text-gray-400"},ne.default.createElement("span",{className:$.status==="failed"?"text-red-500":""},$.status),ne.default.createElement("span",null,te($.duration_ms)),$.tokens&&ne.default.createElement("span",null,$.tokens.toLocaleString()," tokens"),ne.default.createElement("span",null,_e($.created_at)))))))))))})()))}var ct=Z(Q());var xCe={productivity:"[+]",development:"<>",research:"[?]",creative:"[*]",data:"[#]",automation:"[>]"};function e3({onUseTemplate:e,onClose:t}){let[r,n]=(0,ct.useState)([]),[o,a]=(0,ct.useState)([]),[i,s]=(0,ct.useState)(""),[l,u]=(0,ct.useState)(null),[c,d]=(0,ct.useState)(!0),[p,f]=(0,ct.useState)(!1),[m,y]=(0,ct.useState)(null);(0,ct.useEffect)(()=>{b()},[i]);let b=async()=>{d(!0);try{let h=new URLSearchParams;i&&h.append("category",i);let x=await(await fetch(`/api/templates?${h}`)).json();n(x.templates),a(x.categories)}catch(h){console.error("Failed to load templates:",h)}finally{d(!1)}},g=async h=>{f(!0),y(null);try{let v=await fetch(`/api/templates/${h.id}/use`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:h.name})});if(v.ok){let x=await v.json();e(x.agent)}else{let x=`Could not create the agent (HTTP ${v.status})`;try{let S=await v.json(),k=S.errors||S.error;k&&(x=Array.isArray(k)?k.join(", "):String(k))}catch{}y(x)}}catch(v){console.error("Failed to create agent from template:",v),y("Could not create the agent \u2014 check your connection and try again.")}finally{f(!1)}};return ct.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4"},ct.default.createElement("div",{className:"bg-white rounded-2xl w-full max-w-5xl max-h-[90vh] flex flex-col overflow-hidden"},ct.default.createElement("div",{className:"px-6 py-4 border-b border-gray-200 flex items-center justify-between"},ct.default.createElement("div",null,ct.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Template Library"),ct.default.createElement("p",{className:"text-sm text-gray-500"},"Start with a pre-configured agent template")),ct.default.createElement("button",{onClick:t,className:"p-2 text-gray-400 hover:text-gray-600 transition-colors"},ct.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ct.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})))),ct.default.createElement("div",{className:"flex-1 flex overflow-hidden"},ct.default.createElement("div",{className:"w-48 border-r border-gray-200 p-4 flex-shrink-0"},ct.default.createElement("h3",{className:"text-xs font-semibold text-gray-400 uppercase mb-3"},"Categories"),ct.default.createElement("div",{className:"space-y-1"},ct.default.createElement("button",{onClick:()=>s(""),className:`w-full text-left px-3 py-2 rounded-lg text-sm transition-colors ${i?"text-gray-600 hover:bg-gray-50":"bg-red-50 text-red-600"}`},"All Templates"),o.map(h=>ct.default.createElement("button",{key:h,onClick:()=>s(h),className:`w-full text-left px-3 py-2 rounded-lg text-sm flex items-center space-x-2 transition-colors ${i===h?"bg-red-50 text-red-600":"text-gray-600 hover:bg-gray-50"}`},ct.default.createElement("span",null,xCe[h]||"\u{1F4E6}"),ct.default.createElement("span",{className:"capitalize"},h))))),ct.default.createElement("div",{className:"flex-1 p-6 overflow-auto"},c?ct.default.createElement("div",{className:"flex items-center justify-center h-full"},ct.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"})):r.length>0?ct.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-3 gap-4"},r.map(h=>ct.default.createElement("div",{key:h.id,onClick:()=>u(h),className:`bg-white rounded-xl border-2 p-4 cursor-pointer transition-all hover:shadow-lg ${l?.id===h.id?"border-red-500 ring-2 ring-red-100":"border-gray-200 hover:border-gray-300"}`},ct.default.createElement("div",{className:"flex items-start space-x-3"},ct.default.createElement("div",{className:"flex-shrink-0"},ct.default.createElement(In,{size:60})),ct.default.createElement("div",{className:"flex-1 min-w-0"},ct.default.createElement("div",{className:"flex items-center space-x-2"},ct.default.createElement("span",{className:"text-lg"},h.icon),ct.default.createElement("h3",{className:"font-medium text-gray-900 truncate"},h.name)),ct.default.createElement("p",{className:"text-xs text-gray-500 mt-1 line-clamp-2"},h.description),ct.default.createElement("div",{className:"flex items-center space-x-2 mt-2"},ct.default.createElement("span",{className:"text-xs px-2 py-0.5 bg-gray-100 rounded capitalize"},h.category),h.featured&&ct.default.createElement("span",{className:"text-xs px-2 py-0.5 bg-yellow-100 text-yellow-700 rounded"},"Featured"))))))):ct.default.createElement("div",{className:"text-center py-12 text-gray-500"},"No templates found in this category")),l&&ct.default.createElement("div",{className:"w-80 border-l border-gray-200 p-6 flex-shrink-0 bg-gray-50 overflow-auto"},ct.default.createElement("div",{className:"flex justify-center mb-4"},ct.default.createElement(In,{size:120})),ct.default.createElement("h3",{className:"text-lg font-semibold text-gray-900 text-center"},l.name),ct.default.createElement("p",{className:"text-sm text-gray-500 text-center mt-1"},l.description),ct.default.createElement("div",{className:"mt-6 space-y-4"},ct.default.createElement("div",null,ct.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Provider / Model"),ct.default.createElement("p",{className:"text-sm text-gray-900"},l.provider," / ",l.model)),l.tools?.length>0&&ct.default.createElement("div",null,ct.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Tools"),ct.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},l.tools.map(h=>ct.default.createElement("span",{key:h,className:"text-xs px-2 py-0.5 bg-red-100 text-red-700 rounded"},h)))),ct.default.createElement("div",null,ct.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Usage"),ct.default.createElement("p",{className:"text-sm text-gray-900"},l.usage_count," agents created"))),ct.default.createElement("button",{onClick:()=>g(l),disabled:p,className:"w-full mt-6 px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors disabled:opacity-50"},p?"Creating...":"Use This Template"),m&&ct.default.createElement("p",{className:"mt-2 text-sm text-red-600",role:"alert"},m)))))}var mt=Z(Q());function t3({currentView:e,onNavigate:t,agentCount:r,pendingInputCount:n,account:o,user:a,gemVersion:i,features:s={}}){let{darkMode:l}=ut(),[u,c]=(0,mt.useState)(!1),d=(0,mt.useRef)(null);(0,mt.useEffect)(()=>{function h(v){d.current&&!d.current.contains(v.target)&&c(!1)}return document.addEventListener("mousedown",h),()=>document.removeEventListener("mousedown",h)},[]);let p=o?.name||"My Workspace",f=a?.name||a?.email?.split("@")[0]||"User",m={agentCount:r,pendingInputCount:n},y=h=>{let v=h.badge?m[h.badge]:void 0;return h.badgeTone==="attention"&&!v?void 0:v},b=SY(s).map(h=>({...h,items:h.items.map(v=>({id:v.view,label:v.label,icon:v.glyph??Fo.nav[v.icon],badge:y(v),badgeTone:v.badgeTone,badgeTitle:v.badgeTitle}))})),g=({item:h})=>mt.default.createElement("button",{onClick:()=>t(h.id),className:`w-full flex items-center justify-between py-3 rounded-lg text-left transition-colors ${h.indent?"pl-10 pr-4":"px-4"}`,style:{backgroundColor:e===h.id?l?"rgba(239, 68, 68, 0.15)":"#fef2f2":"transparent",color:e===h.id?"#ef4444":l?"#d1d5db":"#374151"},onMouseEnter:v=>{e!==h.id&&(v.currentTarget.style.backgroundColor=l?"#252525":"#f3f4f6")},onMouseLeave:v=>{e!==h.id&&(v.currentTarget.style.backgroundColor="transparent")}},mt.default.createElement("div",{className:"flex items-center space-x-3"},mt.default.createElement("span",{style:{fontFamily:Pt.mono,fontSize:"12px",width:"20px",textAlign:"center"}},h.icon),mt.default.createElement("span",{className:"font-medium"},h.label)),h.badge!==void 0&&h.badgeTone==="attention"&&mt.default.createElement("span",{"data-testid":`nav-badge-${h.id}`,className:"px-2 py-0.5 text-xs rounded-full font-semibold",title:`${h.badge} ${h.badgeTitle||""}`.trim(),"aria-label":`${h.badge} ${h.badgeTitle||""}`.trim(),style:{backgroundColor:"var(--color-warning-soft)",color:"var(--color-warning-text)"}},h.badge),h.badge!==void 0&&h.badgeTone!=="attention"&&mt.default.createElement("span",{className:"px-2 py-0.5 text-xs rounded-full",style:{backgroundColor:e===h.id?"#fee2e2":l?"#2a2a2a":"#f3f4f6",color:e===h.id?"#ef4444":l?"#d1d5db":"#4b5563"}},h.badge));return mt.default.createElement("aside",{className:"w-64 border-r flex flex-col",style:{backgroundColor:l?"#1a1a1a":"#ffffff",borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:"h-16 flex items-center px-4 border-b relative",style:{borderColor:l?"#2a2a2a":"#e5e7eb"},ref:d},mt.default.createElement("button",{onClick:()=>c(!u),className:"w-full flex items-center justify-between px-2 py-2 rounded-lg transition-colors",style:{backgroundColor:u?l?"#252525":"#f3f4f6":"transparent"}},mt.default.createElement("div",{className:"flex items-center space-x-3 min-w-0"},mt.default.createElement(In,{size:28}),mt.default.createElement("span",{className:`font-semibold truncate ${l?"text-white":"text-gray-900"}`},p)),mt.default.createElement("svg",{className:`w-4 h-4 flex-shrink-0 transition-transform ${u?"rotate-180":""}`,style:{color:l?"#9ca3af":"#6b7280"},fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},mt.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))),u&&mt.default.createElement("div",{className:"absolute left-4 right-4 top-14 rounded-lg shadow-lg border overflow-hidden z-50",style:{backgroundColor:l?"#1a1a1a":"#ffffff",borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:"px-4 py-3 border-b",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:"flex items-center space-x-3"},mt.default.createElement(In,{size:32}),mt.default.createElement("div",{className:"min-w-0"},mt.default.createElement("div",{className:`font-medium truncate ${l?"text-white":"text-gray-900"}`},p)))),mt.default.createElement("div",{className:"py-1"},mt.default.createElement("button",{onClick:()=>{t("settings"),c(!1)},className:`w-full flex items-center space-x-3 px-4 py-2 text-left text-sm transition-colors ${l?"text-gray-300 hover:bg-gray-800":"text-gray-700 hover:bg-gray-100"}`},mt.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},mt.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),mt.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})),mt.default.createElement("span",null,"Settings")),mt.default.createElement("button",{onClick:()=>{t("organization"),c(!1)},className:`w-full flex items-center space-x-3 px-4 py-2 text-left text-sm transition-colors ${l?"text-gray-300 hover:bg-gray-800":"text-gray-700 hover:bg-gray-100"}`},mt.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},mt.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"})),mt.default.createElement("span",null,"Organization"))),mt.default.createElement("div",{className:"border-t py-1",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:`px-4 py-2 flex items-center space-x-3 ${l?"text-gray-300":"text-gray-700"}`},mt.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},mt.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})),mt.default.createElement("span",{className:"text-sm"},f))))),mt.default.createElement("nav",{className:"flex-1 px-4 py-4 space-y-1 overflow-y-auto"},b.map(h=>{let v=mt.default.createElement("div",{className:"space-y-1"},h.items.map(x=>mt.default.createElement(g,{key:x.id,item:x})));return h.label?mt.default.createElement("div",{key:h.id,className:"pt-4"},mt.default.createElement("div",{className:"px-4 pb-2"},mt.default.createElement("span",{className:`text-xs font-semibold uppercase tracking-wide ${l?"text-gray-500":"text-gray-400"}`},h.label)),v):mt.default.createElement(mt.default.Fragment,{key:h.id},v)})),mt.default.createElement("div",{className:"px-4 py-4 border-t",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:`text-xs font-semibold uppercase mb-3 ${l?"text-gray-500":"text-gray-400"}`},"Resources"),mt.default.createElement("div",{className:"space-y-2"},mt.default.createElement("a",{href:"https://docs.activeagents.ai",target:"_blank",rel:"noopener noreferrer",className:`flex items-center space-x-2 text-sm transition-colors ${l?"text-gray-400 hover:text-red-400":"text-gray-600 hover:text-red-600"}`},mt.default.createElement("span",{style:{fontFamily:Pt.mono,fontSize:"12px",width:"20px",textAlign:"center"}},Fo.nav.docs),mt.default.createElement("span",null,"Documentation")),mt.default.createElement("a",{href:"https://github.com/activeagents/activeagent",target:"_blank",rel:"noopener noreferrer",className:`flex items-center space-x-2 text-sm transition-colors ${l?"text-gray-400 hover:text-red-400":"text-gray-600 hover:text-red-600"}`},mt.default.createElement("span",{style:{fontFamily:Pt.mono,fontSize:"12px",width:"20px",textAlign:"center"}},Fo.nav.github),mt.default.createElement("span",null,"GitHub")))),mt.default.createElement("div",{className:"px-6 py-4 border-t",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},mt.default.createElement("div",{className:`text-xs ${l?"text-gray-500":"text-gray-400"}`},"Active Agent ",i?`v${i}`:"")))}var xr=Z(Q());function r3({user:e,account:t}){let{darkMode:r,toggleDarkMode:n}=ut(),[o,a]=(0,xr.useState)(!1),i=(0,xr.useRef)(null);(0,xr.useEffect)(()=>{function d(p){i.current&&!i.current.contains(p.target)&&a(!1)}return document.addEventListener("mousedown",d),()=>document.removeEventListener("mousedown",d)},[]);let s=window.ACTIVE_AGENT_DASHBOARD?.meta?.signOutPath,l=()=>{if(!s)return;let d=document.querySelector('meta[name="csrf-token"]')?.content,p=document.createElement("form");p.method="POST",p.action=s;let f=document.createElement("input");f.type="hidden",f.name="_method",f.value="delete",p.appendChild(f);let m=document.createElement("input");m.type="hidden",m.name="authenticity_token",m.value=d,p.appendChild(m),document.body.appendChild(p),p.submit()},u=e?.name||e?.email?.split("@")[0]||"User",c=u.charAt(0).toUpperCase();return xr.default.createElement("header",{className:"h-16 border-b flex items-center justify-between px-6",style:{backgroundColor:r?"#1a1a1a":"#ffffff",borderColor:r?"#2a2a2a":"#e5e7eb"}},xr.default.createElement("div",{className:"flex items-center space-x-4"}),xr.default.createElement("div",{className:"flex items-center space-x-4"},xr.default.createElement("button",{onClick:n,className:"p-2 rounded-lg transition-colors",style:{backgroundColor:r?"#252525":"#f3f4f6",color:r?"#fbbf24":"#4b5563"},title:r?"Switch to light mode":"Switch to dark mode"},r?xr.default.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20"},xr.default.createElement("path",{fillRule:"evenodd",d:"M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z",clipRule:"evenodd"})):xr.default.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20"},xr.default.createElement("path",{d:"M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"}))),xr.default.createElement("div",{className:`flex items-center space-x-2 text-sm ${r?"text-gray-400":"text-gray-500"}`},xr.default.createElement("span",{className:"w-2 h-2 bg-green-400 rounded-full"}),xr.default.createElement("span",null,"Connected")),xr.default.createElement("div",{className:"relative",ref:i},xr.default.createElement("button",{onClick:()=>a(!o),className:"flex items-center space-x-2 p-1 rounded-lg transition-colors",style:{backgroundColor:o?r?"#252525":"#f3f4f6":"transparent"}},xr.default.createElement("div",{className:"w-8 h-8 bg-red-100 rounded-full flex items-center justify-center"},xr.default.createElement("span",{className:"text-red-600 font-medium text-sm"},c))),o&&xr.default.createElement("div",{className:"absolute right-0 mt-2 w-64 rounded-lg shadow-lg border overflow-hidden z-50",style:{backgroundColor:r?"#1a1a1a":"#ffffff",borderColor:r?"#2a2a2a":"#e5e7eb"}},xr.default.createElement("div",{className:"px-4 py-3 border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},xr.default.createElement("div",{className:"flex items-center space-x-3"},xr.default.createElement("div",{className:"w-10 h-10 bg-red-100 rounded-full flex items-center justify-center"},xr.default.createElement("span",{className:"text-red-600 font-medium"},c)),xr.default.createElement("div",null,xr.default.createElement("div",{className:`font-medium ${r?"text-white":"text-gray-900"}`},u),xr.default.createElement("div",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},e?.email)))),s&&xr.default.createElement("div",{className:"py-1"},xr.default.createElement("button",{onClick:l,className:`w-full flex items-center space-x-3 px-4 py-2 text-left text-sm transition-colors ${r?"text-gray-300 hover:bg-gray-800":"text-gray-700 hover:bg-gray-100"}`},xr.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},xr.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1"})),xr.default.createElement("span",null,"Sign out")))))))}var ze=Z(Q());var kt=Z(Q());var n3=150,bCe=e=>e.reduce((t,r)=>t+(Number(r)||0),0),wCe=e=>e.length?bCe(e)/e.length:0,Ys=e=>e.reduce((t,r)=>r!=null&&Number(r)>t?Number(r):t,0),o3=e=>{if(!(e>0))return 1;let t=Math.pow(10,Math.floor(Math.log10(e))),r=e/t;return(r<=1?1:r<=2?2:r<=2.5?2.5:r<=5?5:10)*t},xf=(e,t)=>[0,25,50,75,100].map(r=>({top:r,label:t(e*(1-r/100))})),SCe=4,Mh=e=>Math.max(SCe,o3(e)),UQ=(e,t=2,r=6)=>{let n=e/4;for(let o=t;oMath.abs(n*i-Number((n*i).toFixed(o)))<=n*.1))return o;return r},kCe=5.5,_Ce=12,CCe=(e,t)=>{let r=!!e.flip;if(!(t>0))return r;let n=String(e.label||"").length*kCe+_Ce,o=Number(e.left)/100*t,a=t-o;return r?!(oo):aa},bf=(e,t)=>{let r=e.length,n=[];return e.forEach((o,a)=>{if(o==null||Number.isNaN(Number(o)))return;let i=r>1?a/(r-1)*100:50,s=100-Math.min(100,Math.max(0,Number(o)/t*100));n.push(`${i.toFixed(2)},${s.toFixed(2)}`)}),n.join(" ")},J2=(e,t)=>{let r=bf(e,t);return r?`0,100 ${r} 100,100`:""},WQ=(e,t=24)=>{let r=e.length;if(!r)return"";let n=r/t,o=Array.from({length:t},(s,l)=>{let u=Math.floor(l*n),c=Math.max(u+1,Math.floor((l+1)*n));return wCe(e.slice(u,c).filter(d=>d!=null))}),a=Math.max(...o),i=Math.min(...o);return o.map((s,l)=>`${(l/(t-1)*100).toFixed(1)},${(26-(a===i?.5:(s-i)/(a-i))*24).toFixed(1)}`).join(" ")},X0=(e,t,r)=>{let n=e.length?e[0].data.length:0;return Array.from({length:n},(o,a)=>({title:r(a),segs:e.map(i=>({h:(Number(i.data[a])||0)/t*100,color:i.color}))}))};function HQ({label:e,value:t,unit:r,sub:n,delta:o,deltaColor:a,deltaSub:i,spark:s,sparkColor:l}){return kt.default.createElement(je,{padding:"14px 16px 12px",style:{display:"flex",flexDirection:"column",gap:6,minWidth:0}},kt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8}},kt.default.createElement(Ue,{size:11,spacing:"0.05em"},e),kt.default.createElement("span",{style:{marginLeft:"auto",fontFamily:W,fontSize:11,fontWeight:600,color:a,whiteSpace:"nowrap"}},o)),kt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:6}},kt.default.createElement("span",{style:{fontFamily:W,fontSize:26,fontWeight:700,lineHeight:1.1,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},t),r?kt.default.createElement("span",{style:{fontFamily:W,fontSize:12,color:"var(--color-text-muted)"}},r):null),kt.default.createElement("div",{title:n,style:{fontFamily:W,fontSize:11,color:"var(--color-text-secondary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},n),kt.default.createElement("div",{style:{display:"flex",alignItems:"flex-end",gap:8,marginTop:2}},kt.default.createElement("svg",{viewBox:"0 0 100 28",preserveAspectRatio:"none","aria-hidden":"true",style:{flex:1,height:28,minWidth:0,display:"block",overflow:"visible"}},kt.default.createElement("polyline",{points:s,fill:"none",stroke:l,strokeWidth:"1.5",strokeLinejoin:"round",vectorEffect:"non-scaling-stroke"})),kt.default.createElement("span",{style:{fontSize:10,color:"var(--color-text-muted)",whiteSpace:"nowrap"}},i)))}function qQ({title:e,sub:t,value:r,valueColor:n="var(--color-text-primary)",legend:o=[],ticks:a=[],buckets:i=[],lines:s=[],areas:l=[],markers:u=[],xLabels:c=[],height:d=n3}){let p=(0,kt.useRef)(null),f=D0(p),m="1px dashed var(--color-text-secondary)";return kt.default.createElement(je,{padding:"14px 16px 12px",style:{minWidth:0,display:"flex",flexDirection:"column",gap:8}},kt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,flexWrap:"wrap"}},kt.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},e),kt.default.createElement("span",{style:{fontFamily:W,fontSize:10,color:"var(--color-text-muted)"}},t),kt.default.createElement("span",{style:{marginLeft:"auto",fontFamily:W,fontSize:12,fontWeight:600,color:n,whiteSpace:"nowrap"}},r)),kt.default.createElement("div",{style:{display:"flex",gap:12,flexWrap:"wrap"}},o.map(y=>kt.default.createElement("span",{key:y.label,style:{display:"inline-flex",alignItems:"center",gap:5,fontFamily:W,fontSize:10,color:"var(--color-text-secondary)"}},kt.default.createElement("span",{style:{width:8,height:8,borderRadius:2,background:y.color,flexShrink:0}}),y.label))),kt.default.createElement("div",{ref:p,style:{position:"relative",height:d,margin:"6px 0 0 40px"}},a.map(y=>kt.default.createElement("div",{key:y.top,style:{position:"absolute",left:0,right:0,top:`${y.top}%`,borderTop:"1px solid var(--color-border-light)"}},kt.default.createElement("span",{style:{position:"absolute",right:"calc(100% + 6px)",top:-6,whiteSpace:"nowrap",fontFamily:W,fontSize:10,lineHeight:"12px",color:"var(--color-text-muted)"}},y.label))),i.length>0&&kt.default.createElement("div",{style:{position:"absolute",inset:0,display:"flex",alignItems:"stretch",gap:1}},i.map((y,b)=>kt.default.createElement("div",{key:b,title:y.title,style:{flex:1,minWidth:0,display:"flex",flexDirection:"column-reverse"}},y.segs.map((g,h)=>kt.default.createElement("div",{key:h,style:{height:`${g.h.toFixed(2)}%`,background:g.color,flexShrink:0}}))))),(s.length>0||l.length>0)&&kt.default.createElement("svg",{viewBox:"0 0 100 100",preserveAspectRatio:"none","aria-hidden":"true",style:{position:"absolute",inset:0,width:"100%",height:"100%",overflow:"visible",pointerEvents:"none"}},l.map((y,b)=>kt.default.createElement("polygon",{key:b,points:y.points,fill:y.color,opacity:"0.16"})),s.map((y,b)=>kt.default.createElement("polyline",{key:b,points:y.points,fill:"none",stroke:y.color,strokeWidth:y.width||1.5,strokeLinejoin:"round",strokeLinecap:"round",vectorEffect:"non-scaling-stroke"}))),u.map((y,b)=>{let g=CCe(y,f),h=`${Number(y.left).toFixed(2)}%`;return kt.default.createElement("div",{key:b,style:{position:"absolute",top:0,bottom:0,pointerEvents:"none",...g?{left:0,width:h,borderRight:m}:{left:h,right:0,borderLeft:m}}},kt.default.createElement("span",{style:{position:"absolute",top:-4,[g?"right":"left"]:4,maxWidth:"calc(100% - 8px)",boxSizing:"border-box",overflow:"hidden",textOverflow:"ellipsis",fontFamily:W,fontSize:9,lineHeight:"12px",color:"var(--color-text-secondary)",whiteSpace:"nowrap",background:"var(--color-card)",padding:"0 4px",borderRadius:3}},y.label))})),kt.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",marginLeft:40,fontFamily:W,fontSize:10,color:"var(--color-text-muted)"}},c.map((y,b)=>kt.default.createElement("span",{key:b},y))))}function Ih({label:e,qualifier:t,meta:r,children:n}){return kt.default.createElement(je,{padding:0,style:{overflow:"hidden"}},kt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,padding:"10px 14px",borderBottom:"1px solid var(--color-border-light)"}},kt.default.createElement(Ue,null,e),t?kt.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},t):null,r?kt.default.createElement("span",{style:{marginLeft:"auto",fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},r):null),n)}function a3({template:e,columns:t}){return kt.default.createElement("div",{style:{display:"grid",gridTemplateColumns:e,gap:8,padding:"6px 14px 4px",fontFamily:W,fontSize:10,textTransform:"uppercase",letterSpacing:"0.05em",color:"var(--color-text-muted)"}},kt.default.createElement("span",null),t.map(r=>kt.default.createElement("span",{key:r,style:{textAlign:"right"}},r)))}function Q2({template:e,active:t=!1,onClick:r,title:n,padding:o="8px 14px",children:a}){let i=typeof r=="function";return kt.default.createElement("div",{role:i?"button":void 0,tabIndex:i?0:void 0,"aria-pressed":i?t:void 0,onClick:r,onKeyDown:i?l=>{(l.key==="Enter"||l.key===" ")&&(l.preventDefault(),r(l))}:void 0,title:n,className:i?"hover:bg-[var(--color-hover)]":void 0,style:{display:"grid",gridTemplateColumns:e,gap:8,alignItems:"center",padding:o,borderTop:"1px solid var(--color-border-light)",cursor:i?"pointer":"default",background:t?"var(--color-muted)":void 0}},a)}function i3({children:e,padding:t="8px 14px"}){return kt.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:t,borderTop:"1px solid var(--color-border-light)"}},e)}function Z0({children:e}){return kt.default.createElement("div",{style:{padding:"12px 14px",fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},e)}function s3({color:e}){return kt.default.createElement("span",{style:{width:8,height:8,borderRadius:2,background:e,flexShrink:0}})}function l3({pct:e,color:t}){return kt.default.createElement("div",{style:{marginTop:5,height:3,borderRadius:999,background:"var(--color-muted)",overflow:"hidden"}},kt.default.createElement("div",{style:{width:`${Math.max(0,Math.min(100,Number(e)||0))}%`,height:"100%",background:t}}))}function u3({pct:e,color:t,width:r=70}){return kt.default.createElement("span",{style:{width:r,height:4,borderRadius:999,background:"var(--color-muted)",overflow:"hidden",flexShrink:0,display:"inline-block"}},kt.default.createElement("span",{style:{display:"block",width:`${Math.max(0,Math.min(100,Number(e)||0))}%`,height:"100%",background:t}}))}function vs({children:e,color:t="var(--color-text-primary)",weight:r=400,width:n,style:o}){return kt.default.createElement("span",{style:{fontFamily:W,fontSize:11,fontWeight:r,textAlign:"right",color:t,width:n,...o}},e)}var YQ=6e4,ACe=1180,jh={"1h":{n:60,seconds:60,bucket:"1 min",prev:"vs previous hour",title:"last hour"},"24h":{n:96,seconds:900,bucket:"15 min",prev:"vs previous 24h",title:"last 24 hours"},"7d":{n:84,seconds:7200,bucket:"2 h",prev:"vs previous 7 days",title:"last 7 days"}},ECe=Object.keys(jh).map(e=>({value:e,label:e})),d3="24h",Dh=["var(--chart-1)","var(--chart-2)","var(--chart-3)","var(--chart-5)","var(--chart-4)"],J0=[{type:"429 rate limit",short:"429",color:"var(--color-error)"},{type:"timeout",short:"timeout",color:"var(--color-warning)"},{type:"tool error",short:"tool error",color:"var(--span-tool)"},{type:"provider 5xx",short:"5xx",color:"var(--color-token-out)"},{type:"other",short:"error",color:"var(--color-text-muted)"}],KQ=e=>J0.find(t=>t.type===e)?.color||"var(--color-text-muted)",NCe=3,eA="var(--color-text-primary)",TCe={success:"var(--color-success)",error:"var(--color-error)",muted:"var(--color-text-muted)"},OCe=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],c3=e=>String(e).padStart(2,"0"),Wt=e=>e==null||Number.isNaN(Number(e))?0:Number(e),PCe=e=>e.reduce((t,r)=>t+Wt(r),0),VQ=e=>`${Wt(e).toFixed(1)}%`,R2=(e,t)=>`${e} ${t}${e===1?"":"s"}`,MCe=e=>e>=1e3?`${(e/1e3).toFixed(1)}s`:`${Math.round(e)}ms`,ICe=(e,t)=>{let r=Array.isArray(e)?[...e]:[];return t.forEach(n=>{n.name&&!r.some(o=>o.name===n.name)&&r.push(n)}),r},DCe=e=>{let t=String(e.label||"incident"),r=J0.find(n=>t.startsWith(n.type));return r&&(t=`${r.short}${t.slice(r.type.length)}`),e.agent&&!t.includes(e.agent)?`${t} \xB7 ${e.agent}`:t},jCe=e=>{let t=Wt(e);return t<60?`${t}s`:t<3600?`${+(t/60).toFixed(1)} min`:`${+(t/3600).toFixed(1)} h`},GQ=async e=>{let t=await fetch(`/api/metrics?${e.toString()}`);if(!t.ok)throw new Error(`Request failed (${t.status})`);return t.json()},$Ce=(e,t,r=Date.now())=>{let n=Math.max(1,Wt(t))*1e3,o=Math.max(1,Math.round(Wt(e)*6e4/n)),a=Math.floor(r/n)*n;return Array.from({length:o},(i,s)=>({ts:new Date(a-(o-1-s)*n).toISOString()}))},LCe=(e,t)=>{let r=e.summary||{},n=jh[e.range]||jh[t]||jh[d3],o=Wt(e.bucket_seconds)||n.seconds,a=Wt(e.window_minutes)||(e.window_hours?Wt(e.window_hours)*60:n.n*n.seconds/60),i=Array.isArray(e.series)?e.series:$Ce(a,o),s=Wt(e.totals?.requests??r.total_requests),l=Wt(e.totals?.cost??r.total_cost),u={requests:s,requests_per_minute:a?s/a:0,p50_ms:null,p95_ms:null,p99_ms:null,errors:Wt(r.errors),error_rate:Wt(r.error_rate),tokens_in:Wt(r.tokens_input),tokens_out:Wt(r.tokens_output),tokens:Wt(r.tokens_used),cost:l,cost_per_request:s?l/s:0,tool_calls:0,tool_errors:0,tool_error_rate:0,...e.totals||{}},c={requests_pct:r.requests_change??null,p50_pct:r.latency_change??null,error_rate_pt:null,tokens_pct:null,cost_pct:null,...e.deltas||{}},d=Array.isArray(e.agents)?e.agents:(e.by_agent||[]).map(f=>({name:f.name,requests:Wt(f.requests),share_pct:s?Wt(f.requests)/s*100:0,p95_ms:null,error_rate:f.requests?Wt(f.errors)/Wt(f.requests)*100:0,cost:Wt(f.cost),tokens:Wt(f.tokens)})),p=Array.isArray(e.errors_by_type)&&e.errors_by_type.length?e.errors_by_type:J0.map(f=>({type:f.type,count:0}));return{range:e.range||t,bucketSeconds:o,windowMinutes:a,agent:e.agent||null,environment:e.environment||null,totals:u,deltas:c,series:i,agents:d,models:Array.isArray(e.models)?e.models:[],actions:Array.isArray(e.actions)?e.actions:[],tools:Array.isArray(e.tools)?e.tools:[],errorsByType:p,markers:Array.isArray(e.markers)?e.markers:[]}},XQ=e=>{let t=jh[e.range];if(t)return t;let r=Math.max(1,Math.round(e.windowMinutes/60));return{bucket:jCe(e.bucketSeconds),prev:`vs previous ${r}h`,title:`last ${r} hours`}},zCe=e=>{let[t,r]=(0,ze.useState)(()=>typeof window<"u"&&window.innerWidth{let n=window.matchMedia(`(max-width: ${e-1}px)`),o=()=>r(n.matches);return o(),n.addEventListener("change",o),()=>n.removeEventListener("change",o)},[e]),t};function p3(){let[e,t]=(0,ze.useState)(d3),[r,n]=(0,ze.useState)(""),[o,a]=(0,ze.useState)(null),[i,s]=(0,ze.useState)(!0),[l,u]=(0,ze.useState)(null),[c,d]=(0,ze.useState)(!1),p=(0,ze.useRef)(0),f=zCe(ACe),m=(0,ze.useRef)(null),y=(0,ze.useCallback)(async()=>{let S=++p.current;try{let k=new URLSearchParams({range:e});r&&k.set("agent",r);let[w,_]=await Promise.all([GQ(k),r?GQ(new URLSearchParams({range:e})).catch(()=>null):null]);if(S!==p.current)return;let A=r?_?.agents:w.agents;Array.isArray(A)&&(m.current=A),a({data:w,ranking:Array.isArray(A)?A:m.current}),u(null)}catch(k){if(S!==p.current)return;u(k.message)}finally{S===p.current&&s(!1)}},[e,r]);(0,ze.useEffect)(()=>{let S=!1;d(!0),y().finally(()=>{S||d(!1)});let k=setInterval(y,YQ);return()=>{S=!0,clearInterval(k)}},[y]);let b=(0,ze.useMemo)(()=>o?LCe(o.data,e):null,[o,e]),g=(0,ze.useMemo)(()=>b?b.agent?ICe(o.ranking,b.agents):b.agents:[],[b,o]),h=(0,ze.useMemo)(()=>g.map(S=>S.name).filter(Boolean),[g]),v=(0,ze.useMemo)(()=>{let S=Object.fromEntries(h.map((w,_)=>[w,Dh[_%Dh.length]])),k=h.length;return(b?b.agents:[]).forEach(w=>{w.name&&!S[w.name]&&(S[w.name]=Dh[k++%Dh.length])}),w=>S[w]||Dh[0]},[h,b]),x=(0,ze.useMemo)(()=>b?FCe(b,v):null,[b,v]);return i?ze.default.createElement("div",{className:"flex items-center justify-center h-64"},ze.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2",style:{borderBottomColor:"var(--color-accent-ui)"}})):l||!b?ze.default.createElement("div",null,ze.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:eA}},"Metrics"),ze.default.createElement("div",{style:{marginTop:16,padding:"12px 16px",background:"var(--color-error-soft)",borderRadius:8,color:"var(--color-error-text)",fontSize:14}},"Failed to load metrics",l?`: ${l}`:"")):ze.default.createElement(BCe,{m:b,view:x,railAgents:g,range:jh[e]?e:d3,agent:r,agentOptions:r&&!h.includes(r)?[...h,r]:h,colorFor:v,narrow:f,pending:c,onRange:t,onAgent:n})}function BCe({m:e,view:t,railAgents:r=e.agents,range:n,agent:o,agentOptions:a,colorFor:i,narrow:s,pending:l=!1,onRange:u,onAgent:c}){let d=XQ(e),p=e.totals.requests===0,f=m=>c(o===m?"":m);return ze.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16,width:"100%",maxWidth:1600,boxSizing:"border-box",color:eA,fontSize:13}},ze.default.createElement("div",{style:{display:"flex",alignItems:"flex-end",gap:16,flexWrap:"wrap"}},ze.default.createElement("div",{style:{flex:1,minWidth:240}},ze.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em"}},"Metrics"),ze.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)"}},"Requests, latency, errors, tokens and cost across every agent \u2014 ",d.title,o?` \xB7 ${o}`:"")),ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"}},ze.default.createElement("select",{value:o,onChange:m=>c(m.target.value),"aria-label":"Filter by agent",style:{padding:"6px 10px",borderRadius:8,fontSize:13,fontFamily:"inherit",border:"1px solid var(--color-border-strong)",background:"var(--color-card)",color:eA,cursor:"pointer"}},ze.default.createElement("option",{value:""},"All agents"),a.map(m=>ze.default.createElement("option",{key:m,value:m},m))),e.environment&&ze.default.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:6,padding:"6px 10px",borderRadius:8,border:"1px solid var(--color-border)",fontFamily:W,fontSize:11,color:"var(--color-text-cell)",background:"var(--color-card)"}},ze.default.createElement("span",{style:{color:"var(--color-text-muted)"}},"env"),e.environment),ze.default.createElement(Ka,{options:ECe,value:n,onChange:u}),ze.default.createElement("span",{title:l?"loading\u2026":`refreshes every ${YQ/1e3}s`,style:{display:"inline-flex",alignItems:"center",gap:6,fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},ze.default.createElement("span",{style:{width:7,height:7,borderRadius:"50%",background:l?"var(--color-text-muted)":"var(--color-success)"}}),"live \xB7 ",d.bucket," buckets"))),p?ze.default.createElement(je,{style:{padding:"40px 24px",textAlign:"center",fontSize:14,color:"var(--color-text-secondary)"}},"No traffic yet \u2014 run an agent, or point your app's ActiveAgent telemetry at this workspace",ze.default.createElement("div",{style:{marginTop:8,fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},o||"all agents"," \xB7 ",d.title)):ze.default.createElement(ze.default.Fragment,null,ze.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:12,opacity:l?.6:1}},t.signals.map(m=>ze.default.createElement(HQ,{key:m.label,...m,deltaSub:d.prev}))),ze.default.createElement("div",{style:{display:"grid",gridTemplateColumns:s?"minmax(0, 1fr)":"minmax(0, 2.3fr) minmax(300px, 1fr)",gap:16,alignItems:"start",opacity:l?.6:1}},ze.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:16,minWidth:0}},t.panels.map(m=>ze.default.createElement(qQ,{key:m.title,...m,xLabels:t.xLabels,height:n3}))),ze.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16,minWidth:0}},ze.default.createElement(Ih,{label:"Agents",qualifier:"by requests \xB7 click to filter"},ze.default.createElement(a3,{template:"minmax(0, 1fr) 44px 44px 40px 52px",columns:["req","p95","err","cost"]}),r.length===0&&ze.default.createElement(Z0,null,"no agents in this window"),r.map(m=>ze.default.createElement(Q2,{key:m.name,template:"minmax(0, 1fr) 44px 44px 40px 52px",active:o===m.name,onClick:()=>f(m.name),title:o===m.name?"Show all agents":`Filter to ${m.name}`},ze.default.createElement("div",{style:{minWidth:0}},ze.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0}},ze.default.createElement(s3,{color:i(m.name)}),ze.default.createElement("span",{style:{fontSize:12,fontWeight:600,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.name)),ze.default.createElement(l3,{pct:m.share_pct,color:i(m.name)})),ze.default.createElement(vs,null,On(m.requests)),ze.default.createElement(vs,{color:"var(--color-text-secondary)"},Bn(m.p95_ms)),ze.default.createElement(vs,{color:Wt(m.error_rate)>=1.5?"var(--color-error-text)":"var(--color-text-secondary)"},VQ(m.error_rate)),ze.default.createElement(vs,null,v0(m.cost))))),ze.default.createElement(Ih,{label:"Models",qualifier:"by tokens"},e.models.length===0&&ze.default.createElement(Z0,null,"no model usage in this window"),e.models.map((m,y)=>ze.default.createElement(Q2,{key:`${m.model}-${m.provider}-${y}`,template:"minmax(0, 1fr) 52px 56px"},ze.default.createElement("div",{style:{minWidth:0}},ze.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:6,minWidth:0}},ze.default.createElement("span",{style:{fontFamily:W,fontSize:11,fontWeight:600,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.model||"unknown"),m.provider&&ze.default.createElement("span",{style:{fontFamily:W,fontSize:10,color:"var(--color-text-muted)"}},m.provider)),ze.default.createElement(l3,{pct:m.share_pct,color:"var(--color-token-in)"})),ze.default.createElement(vs,null,On(m.tokens)),ze.default.createElement(vs,{color:"var(--color-text-secondary)"},v0(m.cost))))),ze.default.createElement(Ih,{label:"Slowest actions",qualifier:"p95"},e.actions.length===0&&ze.default.createElement(Z0,null,"no actions in this window"),e.actions.map(m=>ze.default.createElement(i3,{key:m.name},ze.default.createElement("span",{title:m.name,style:{flex:1,minWidth:0,fontFamily:W,fontSize:11,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.name),ze.default.createElement(u3,{pct:t.slowestP95?Wt(m.p95_ms)/t.slowestP95*100:0,color:i(m.agent)}),ze.default.createElement(vs,{weight:600,width:40},Bn(m.p95_ms))))),ze.default.createElement(Ih,{label:"Tools",qualifier:"by calls"},ze.default.createElement(a3,{template:"minmax(0, 1fr) 44px 48px 40px",columns:["calls","avg","err"]}),e.tools.length===0&&ze.default.createElement(Z0,null,"no tool calls in this window"),e.tools.map(m=>ze.default.createElement(Q2,{key:m.name,template:"minmax(0, 1fr) 44px 48px 40px",padding:"7px 14px"},ze.default.createElement("span",{title:m.name,style:{fontFamily:W,fontSize:11,fontWeight:600,color:"var(--span-tool)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.name),ze.default.createElement(vs,null,On(m.calls)),ze.default.createElement(vs,{color:"var(--color-text-secondary)"},Bn(m.avg_ms)),ze.default.createElement(vs,{color:Wt(m.error_rate)>=2?"var(--color-error-text)":"var(--color-text-secondary)"},VQ(m.error_rate))))),ze.default.createElement(Ih,{label:"Errors by type",meta:`${Math.round(e.totals.errors)} total`},e.errorsByType.map(m=>ze.default.createElement(i3,{key:m.type},ze.default.createElement(s3,{color:KQ(m.type)}),ze.default.createElement("span",{style:{flex:1,minWidth:0,fontSize:12,color:"var(--color-text-cell)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.type),ze.default.createElement(u3,{pct:t.errorTotal?Wt(m.count)/t.errorTotal*100:0,color:KQ(m.type)}),ze.default.createElement(vs,{weight:600,width:32},Math.round(Wt(m.count))))))))))}function FCe(e,t){let{series:r,totals:n,deltas:o}=e,a=r.length,i=XQ(e),s=r.map($=>new Date($.ts)),l=e.windowMinutes>=2880,u=$=>Number.isNaN($.getTime())?"":l?`${OCe[$.getDay()]} ${c3($.getHours())}h`:`${c3($.getHours())}:${c3($.getMinutes())}`,c=a?[0,1,2,3,4,5,6].map($=>$===6?"now":u(s[Math.round($*(a-1)/6)])):[],d=$=>r.map(ee=>Wt(ee[$])),p=d("requests"),f=d("errors"),m=d("tokens_in"),y=d("tokens_out"),b=d("cost"),g=d("tool_calls"),h=d("tool_errors"),v=$=>r.map(ee=>ee[$]==null?null:Wt(ee[$])),x=v("p50_ms"),S=v("p95_ms"),k=v("p99_ms"),w=r.map($=>$.requests_by_agent||{}),_=e.agents.map($=>$.name).filter(Boolean);w.forEach($=>Object.keys($).forEach(ee=>{_.includes(ee)||_.push(ee)}));let A=_.length?_.map($=>({label:$,color:t($),data:w.map(ee=>Wt(ee[$]))})):[{label:"requests",color:Dh[0],data:p}],C=J0.map($=>({label:$.type,color:$.color,data:r.map(ee=>Wt((ee.errors_by_type||{})[$.type]))})),N=(Wt(e.bucketSeconds)||(a>1?(s[1]-s[0])/1e3:0))*1e3,L=($,ee)=>{if(!$||a<2||!N)return null;let U=new Date($.ts).getTime();if(Number.isNaN(U))return null;let et=Math.min(a-1,Math.max(0,Math.floor((U-s[0].getTime())/N)))/(a-1);return{left:et*100,label:ee,flip:et>.55}},J=e.markers.filter($=>$.kind==="deploy").sort(($,ee)=>new Date($.ts)-new Date(ee.ts)).slice(-NCe).map($=>L($,$.label)).filter(Boolean),B=e.markers.find($=>$.kind==="incident"),K=B?L(B,DCe(B)):null,T=K?[K]:[],P=Mh(Ys(p)*1.1),I=Mh(Ys(f)*1.15),M=Mh(Math.max(Ys(k),Ys(S),Ys(x))*1.05),j=Mh(Math.max(Ys(m),Ys(y))*1.1),O=o3(Ys(b)*1.1),F=UQ(O),V=Mh(Ys(g)*1.1),z=Wt(n.requests),G=Wt(n.requests_per_minute),q=Wt(n.errors),oe=Wt(n.error_rate),Me=Wt(n.tokens)||Wt(n.tokens_in)+Wt(n.tokens_out),fe=Wt(n.cost),le=n.cost_per_request!=null?Wt(n.cost_per_request):z?fe/z:0,R=Wt(n.tool_calls),te=n.tool_error_rate!=null?Wt(n.tool_error_rate):R?Wt(n.tool_errors)/R*100:0,He=Wt(e.errorsByType.find($=>$.type===J0[0].type)?.count),_e=[{title:"Requests",sub:`per ${i.bucket} \xB7 stacked by agent`,value:`${On(z)} \xB7 ${G.toFixed(1)}/min`,legend:A.map($=>({label:$.label,color:$.color})),ticks:xf(P,On),buckets:X0(A,P,$=>`${u(s[$])} \xB7 ${Math.round(p[$])} req`),markers:J},{title:"Latency",sub:"generation percentiles",value:`p50 ${Bn(n.p50_ms)}`,legend:[{label:`p50 ${Bn(n.p50_ms)}`,color:"var(--color-token-in)"},{label:`p95 ${Bn(n.p95_ms)}`,color:"var(--color-warning)"},{label:`p99 ${Bn(n.p99_ms)}`,color:"var(--color-error)"}],ticks:xf(M,MCe),lines:[{points:bf(k,M),color:"var(--color-error)",width:1.5},{points:bf(S,M),color:"var(--color-warning)",width:1.5},{points:bf(x,M),color:"var(--color-token-in)",width:2}],areas:[{points:J2(x,M),color:"var(--color-token-in)"}],markers:T},{title:"Errors",sub:`per ${i.bucket} \xB7 by type`,value:`${oe.toFixed(2)}% \xB7 ${R2(Math.round(q),"error")}`,valueColor:oe>1?"var(--color-error)":eA,legend:C.map($=>({label:$.label,color:$.color})),ticks:xf(I,$=>String(Math.round($))),buckets:X0(C,I,$=>`${u(s[$])} \xB7 ${R2(Math.round(f[$]),"error")}`),markers:T},{title:"Tokens",sub:`per ${i.bucket} \xB7 input / output`,value:`${On(Me)} \xB7 in ${On(n.tokens_in)} / out ${On(n.tokens_out)}`,legend:[{label:"input",color:"var(--color-token-in)"},{label:"output",color:"var(--color-token-out)"}],ticks:xf(j,On),lines:[{points:bf(m,j),color:"var(--color-token-in)",width:1.5},{points:bf(y,j),color:"var(--color-token-out)",width:1.5}],areas:[{points:J2(m,j),color:"var(--color-token-in)"},{points:J2(y,j),color:"var(--color-token-out)"}]},{title:"Cost",sub:`estimated \xB7 per ${i.bucket}`,value:`${v0(fe)} \xB7 ${x0(le)}/req`,legend:[{label:"spend",color:"var(--color-text-secondary)"}],ticks:xf(O,$=>x0($,F)),buckets:X0([{color:"var(--color-text-secondary)",data:b}],O,$=>`${u(s[$])} \xB7 ${x0(b[$],F)}`)},{title:"Tool calls",sub:`per ${i.bucket} \xB7 MCP + agent-defined`,value:`${On(R)} \xB7 ${te.toFixed(1)}% errors`,legend:[{label:"calls",color:"var(--span-tool)"},{label:"errors",color:"var(--color-error)"}],ticks:xf(V,On),buckets:X0([{color:"var(--span-tool)",data:g.map(($,ee)=>Math.max(0,$-h[ee]))},{color:"var(--color-error)",data:h}],V,$=>`${u(s[$])} \xB7 ${R2(Math.round(g[$]),"call")}`)}],D=($,ee,U)=>{let me=$==null?null:Wt($);return me==null||me===0?"muted":ee&&ee(me)?"success":U&&U(me)?"error":"muted"},Y=($,ee,U,me,et,rt,ge,ue)=>({label:$,value:ee,unit:U,sub:me,delta:et,deltaColor:TCe[rt],spark:WQ(ge),sparkColor:ue});return{signals:[Y("Requests",On(z),"",`${G.toFixed(1)} req/min`,mh(o.requests_pct),D(o.requests_pct,$=>$>0,null),p,"var(--color-token-in)"),Y("Latency",Bn(n.p50_ms),"p50",`p95 ${Bn(n.p95_ms)} \xB7 p99 ${Bn(n.p99_ms)}`,mh(o.p50_pct),D(o.p50_pct,$=>$<0,$=>$>0),x,"var(--color-token-in)"),Y("Error rate",oe.toFixed(2),"%",`${R2(Math.round(q),"error")} \xB7 ${Math.round(He)} rate-limited`,mh(o.error_rate_pt," pt",1),D(o.error_rate_pt,$=>$<0,$=>$>0),f,"var(--color-error)"),Y("Tokens",On(Me),"",`in ${On(n.tokens_in)} \xB7 out ${On(n.tokens_out)}`,mh(o.tokens_pct),"muted",m.map(($,ee)=>$+y[ee]),"var(--color-token-in)"),Y("Cost",v0(fe),"",`${x0(le)} per request`,mh(o.cost_pct),"muted",b,"var(--color-text-secondary)")],panels:_e,xLabels:c,slowestP95:Ys(e.actions.map($=>$.p95_ms)),errorTotal:PCe(e.errorsByType.map($=>$.count))}}var Be=Z(Q());var UCe=6e4,WCe=[{value:24,label:"24h"},{value:168,label:"7d"},{value:720,label:"30d"}],ZQ={mcp:{light:"#7c3aed",dark:"#c4b5fd",bgLight:"#f5f3ff",bgDark:"rgba(124,58,237,0.15)"},builtin:{light:"#2563eb",dark:"#93c5fd",bgLight:"#eff6ff",bgDark:"rgba(37,99,235,0.15)"},agent:{light:"#15803d",dark:"#86efac",bgLight:"#f0fdf4",bgDark:"rgba(34,197,94,0.12)"}},Q0=e=>e==null?"0":e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e),JQ=e=>e==null?"\u2014":e>=1e3?`${(e/1e3).toFixed(2)}s`:`${Math.round(e)}ms`,HCe=e=>{if(!e)return"\u2014";let t=new Date(e),r=Math.round((Date.now()-t.getTime())/6e4);if(r<1)return"just now";if(r<60)return`${r}m ago`;let n=Math.round(r/60);return n<24?`${n}h ago`:`${Math.round(n/24)}d ago`};function f3({onOpenServer:e}){let{darkMode:t}=ut(),[r,n]=(0,Be.useState)(null),[o,a]=(0,Be.useState)(!0),[i,s]=(0,Be.useState)(null),[l,u]=(0,Be.useState)("all"),[c,d]=(0,Be.useState)(""),[p,f]=(0,Be.useState)(168),[m,y]=(0,Be.useState)(null),b=(0,Be.useCallback)(async()=>{try{let A=new URLSearchParams({hours:String(p)});l!=="all"&&A.set("origin",l),c.trim()&&A.set("q",c.trim());let C=await fetch(`/api/tools?${A}`);if(!C.ok)throw new Error(`Request failed (${C.status})`);n(await C.json()),s(null)}catch(A){s(A.message)}finally{a(!1)}},[l,c,p]);(0,Be.useEffect)(()=>{let A=setTimeout(b,c?250:0);return()=>clearTimeout(A)},[b,c]),(0,Be.useEffect)(()=>{let A=setInterval(b,UCe);return()=>clearInterval(A)},[b]);let g={bg:t?"transparent":"#f9fafb",cardBg:t?"rgba(255,255,255,0.05)":"#ffffff",border:t?"rgba(255,255,255,0.1)":"#e5e7eb",borderLight:t?"rgba(255,255,255,0.05)":"#f3f4f6",textPrimary:t?"#ffffff":"#111827",textSecondary:t?"rgba(255,255,255,0.6)":"#6b7280",textMuted:t?"rgba(255,255,255,0.4)":"#9ca3af",textCell:t?"rgba(255,255,255,0.7)":"#4b5563",error:"#ef4444",errorBg:t?"rgba(239,68,68,0.2)":"#fef2f2",inputBg:t?"rgba(255,255,255,0.06)":"#ffffff"},h=A=>{let C=ZQ[A]||ZQ.agent;return{fg:t?C.dark:C.light,bg:t?C.bgDark:C.bgLight}};if(o&&!r)return Be.default.createElement("div",{className:"flex items-center justify-center h-64"},Be.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));if(i&&!r)return Be.default.createElement("div",{style:{padding:"24px"}},Be.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:g.textPrimary,margin:0}},"Tools"),Be.default.createElement("div",{style:{marginTop:"16px",padding:"12px 16px",background:g.errorBg,borderRadius:"8px",color:g.error,fontSize:"14px"}},"Failed to load tools: ",i));let{tools:v=[],summary:x={},origins:S={},sources:k={}}=r||{},w=!k.telemetry&&!k.generations&&!k.messages&&!k.declared,_=({label:A,value:C,hint:N,tone:L})=>Be.default.createElement("div",{style:{background:g.cardBg,borderRadius:"12px",padding:"20px",border:`1px solid ${g.border}`}},Be.default.createElement("div",{style:{fontSize:"11px",color:g.textSecondary,textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:"8px"}},A),Be.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",fontFamily:"monospace",color:L||g.textPrimary}},C),N&&Be.default.createElement("div",{style:{fontSize:"13px",color:g.textSecondary,marginTop:"8px"}},N));return Be.default.createElement("div",{style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)",backgroundColor:g.bg}},Be.default.createElement("div",{style:{padding:"24px 24px 16px 24px",borderBottom:`1px solid ${g.border}`,marginBottom:"16px"}},Be.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:"16px",flexWrap:"wrap"}},Be.default.createElement("div",null,Be.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:g.textPrimary,margin:0}},"Tools"),Be.default.createElement("p",{style:{fontSize:"14px",color:g.textSecondary,marginTop:"4px"}},"Detected from telemetry spans, generation request bodies, and agent records \u2014 nothing to register by hand")),Be.default.createElement("div",{style:{display:"flex",gap:"4px"}},WCe.map(A=>Be.default.createElement("button",{key:A.value,onClick:()=>f(A.value),style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${p===A.value?"#ef4444":g.border}`,background:p===A.value?t?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:p===A.value?"#ef4444":g.textSecondary}},A.label))))),Be.default.createElement("div",{style:{padding:"0 24px 24px 24px"}},Be.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:"16px",marginBottom:"16px"}},Be.default.createElement(_,{label:"Tools Detected",value:Q0(x.total_tools),hint:`${x.active_tools||0} called in this window`}),Be.default.createElement(_,{label:"Tool Calls",value:Q0(x.total_calls),hint:`${JQ(x.avg_duration_ms)} average`}),Be.default.createElement(_,{label:"Error Rate",value:`${x.error_rate||0}%`,tone:x.error_rate>5?g.error:g.textPrimary,hint:`${x.total_errors||0} failed call${x.total_errors===1?"":"s"}`}),Be.default.createElement(_,{label:"From MCP",value:Q0(x.mcp_tools),hint:`across ${x.mcp_servers_active||0} active server${x.mcp_servers_active===1?"":"s"}`}),Be.default.createElement(_,{label:"Never Called",value:Q0(x.unused_tools),hint:"offered or configured, unused"})),Be.default.createElement("div",{style:{display:"flex",gap:"8px",marginBottom:"16px",flexWrap:"wrap",alignItems:"center"}},Object.entries(S).map(([A,C])=>Be.default.createElement("button",{key:A,onClick:()=>u(A),style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${l===A?"#ef4444":g.border}`,background:l===A?t?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:l===A?"#ef4444":g.textSecondary}},C)),Be.default.createElement("input",{value:c,onChange:A=>d(A.target.value),placeholder:"Filter by name\u2026",style:{marginLeft:"auto",padding:"6px 12px",fontSize:"13px",borderRadius:"6px",minWidth:"200px",border:`1px solid ${g.border}`,background:g.inputBg,color:g.textPrimary}})),Be.default.createElement("div",{style:{background:g.cardBg,borderRadius:"12px",border:`1px solid ${g.border}`,overflow:"hidden"}},v.length===0?Be.default.createElement("div",{style:{textAlign:"center",padding:"48px 24px",color:g.textSecondary,fontSize:"14px"}},w?"No tool activity yet \u2014 run an agent, or point your app's ActiveAgent telemetry at this workspace":"No tools match these filters"):Be.default.createElement("div",{style:{overflowX:"auto"}},Be.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse",minWidth:"760px"}},Be.default.createElement("thead",null,Be.default.createElement("tr",{style:{textAlign:"left",fontSize:"13px",color:g.textSecondary,borderBottom:`1px solid ${g.border}`}},Be.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500"}},"Tool"),Be.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500"}},"Source"),Be.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Calls"),Be.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Errors"),Be.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Avg"),Be.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Last seen"))),Be.default.createElement("tbody",null,v.map((A,C)=>{let N=h(A.origin),L=m===A.name;return Be.default.createElement(Be.default.Fragment,{key:A.name},Be.default.createElement("tr",{onClick:()=>y(L?null:A.name),style:{borderBottom:C{J.stopPropagation(),A.mcp_server&&e&&e(A.mcp_server)},style:{fontSize:"11px",padding:"3px 8px",borderRadius:"6px",border:"none",background:N.bg,color:N.fg,fontFamily:"monospace",cursor:A.mcp_server&&e?"pointer":"default"},title:A.mcp_server?`Open ${A.mcp_server} in MCP Services`:A.source_label},A.source_label)),Be.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",color:g.textCell,fontFamily:"monospace"}},Q0(A.calls)),Be.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",fontFamily:"monospace",color:A.errors>0?g.error:g.textCell}},A.errors),Be.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",color:g.textCell,fontFamily:"monospace"}},JQ(A.avg_duration_ms)),Be.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",color:g.textMuted,fontSize:"13px"}},HCe(A.last_seen))),L&&Be.default.createElement("tr",{style:{borderBottom:CBe.default.createElement("span",{key:A,style:{color:k[A]?g.textSecondary:g.textMuted,opacity:k[A]?1:.5}},k[A]?"\u25CF":"\u25CB"," ",C)))))}function qCe({tool:e,colors:t,tone:r,darkMode:n}){let o=({label:a,children:i})=>Be.default.createElement("div",{style:{display:"flex",gap:"12px",fontSize:"13px",alignItems:"baseline"}},Be.default.createElement("span",{style:{color:t.textMuted,minWidth:"108px",fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.05em"}},a),Be.default.createElement("span",{style:{color:t.textCell,flex:1,wordBreak:"break-word"}},i));return Be.default.createElement("div",{style:{display:"grid",gap:"8px",padding:"12px 16px",borderRadius:"8px",background:n?"rgba(0,0,0,0.25)":"#ffffff",border:`1px solid ${t.border}`}},Be.default.createElement(o,{label:"Full name"},Be.default.createElement("code",{style:{fontFamily:"monospace"}},e.name)),e.description&&Be.default.createElement(o,{label:"Description"},e.description),Be.default.createElement(o,{label:"Parameters"},e.parameters?.length>0?Be.default.createElement("code",{style:{fontFamily:"monospace",color:r.fg}},e.parameters.join(", ")):Be.default.createElement("span",{style:{color:t.textMuted}},"none recorded")),Be.default.createElement(o,{label:"Agents"},e.agents?.length>0?e.agents.join(", "):Be.default.createElement("span",{style:{color:t.textMuted}},"\u2014")),e.configured_by?.length>0&&Be.default.createElement(o,{label:"Configured by"},e.configured_by.join(", ")),Be.default.createElement(o,{label:"Call breakdown"},Be.default.createElement("span",{style:{fontFamily:"monospace"}},e.traced_calls," traced \xB7 ",e.requested," requested \xB7 ",e.results," results")),e.sample_arguments&&Be.default.createElement(o,{label:"Last arguments"},Be.default.createElement("code",{style:{fontFamily:"monospace",fontSize:"12px",color:t.textMuted}},e.sample_arguments)),e.last_error&&Be.default.createElement(o,{label:"Last error"},Be.default.createElement("span",{style:{color:t.error}},e.last_error)),Be.default.createElement(o,{label:"Detected from"},e.detected_from?.join(", ")||"\u2014"))}var qe=Z(Q());var KCe=6e4,VCe=[{value:24,label:"24h"},{value:168,label:"7d"},{value:720,label:"30d"}],GCe=[{value:"all",label:"All"},{value:"active",label:"Active"},{value:"configured",label:"Configured"},{value:"available",label:"Available"}],YCe=["http","streamable_http","sse"],QQ={active:{light:"#15803d",dark:"#86efac",bgLight:"#f0fdf4",bgDark:"rgba(34,197,94,0.15)"},configured:{light:"#b45309",dark:"#fcd34d",bgLight:"#fffbeb",bgDark:"rgba(245,158,11,0.15)"},available:{light:"#4b5563",dark:"rgba(255,255,255,0.6)",bgLight:"#f3f4f6",bgDark:"rgba(255,255,255,0.08)"},idle:{light:"#4b5563",dark:"rgba(255,255,255,0.6)",bgLight:"#f3f4f6",bgDark:"rgba(255,255,255,0.08)"}},R0=e=>e==null?"0":e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e);function m3({focusServer:e,onOpenTools:t}){let{darkMode:r}=ut(),[n,o]=(0,qe.useState)(null),[a,i]=(0,qe.useState)(!0),[s,l]=(0,qe.useState)(null),[u,c]=(0,qe.useState)("all"),[d,p]=(0,qe.useState)(168),[f,m]=(0,qe.useState)(e||null),[y,b]=(0,qe.useState)(null),[g,h]=(0,qe.useState)(null),v=(0,qe.useCallback)(async()=>{try{let B=await fetch(`/api/mcp_servers?hours=${d}`);if(!B.ok)throw new Error(`Request failed (${B.status})`);o(await B.json()),l(null)}catch(B){l(B.message)}finally{i(!1)}},[d]);(0,qe.useEffect)(()=>{v();let B=setInterval(v,KCe);return()=>clearInterval(B)},[v]),(0,qe.useEffect)(()=>{e&&m(e)},[e]);let x={bg:r?"transparent":"#f9fafb",cardBg:r?"rgba(255,255,255,0.05)":"#ffffff",border:r?"rgba(255,255,255,0.1)":"#e5e7eb",borderLight:r?"rgba(255,255,255,0.05)":"#f3f4f6",textPrimary:r?"#ffffff":"#111827",textSecondary:r?"rgba(255,255,255,0.6)":"#6b7280",textMuted:r?"rgba(255,255,255,0.4)":"#9ca3af",textCell:r?"rgba(255,255,255,0.7)":"#4b5563",error:"#ef4444",errorBg:r?"rgba(239,68,68,0.2)":"#fef2f2",codeBg:r?"rgba(0,0,0,0.35)":"#f9fafb"},S=B=>{let K=QQ[B]||QQ.available;return{fg:r?K.dark:K.light,bg:r?K.bgDark:K.bgLight}},k=async B=>{b(B.key),h(null);try{let K=await fetch(`/api/mcp_servers/${encodeURIComponent(B.key)}/launch`,{method:"POST",headers:{"Content-Type":"application/json"}}),T=await K.json();if(!K.ok)throw new Error(T.reason||T.error||`Launch failed (${K.status})`);h({kind:"ok",text:`${B.name} is starting in a sandbox (${T.sandbox.session_id.slice(0,8)}\u2026)`}),v()}catch(K){h({kind:"error",text:K.message})}finally{b(null)}};if(a&&!n)return qe.default.createElement("div",{className:"flex items-center justify-center h-64"},qe.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));if(s&&!n)return qe.default.createElement("div",{style:{padding:"24px"}},qe.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:x.textPrimary,margin:0}},"MCP Services"),qe.default.createElement("div",{style:{marginTop:"16px",padding:"12px 16px",background:x.errorBg,borderRadius:"8px",color:x.error,fontSize:"14px"}},"Failed to load MCP services: ",s));let{servers:w=[],summary:_={},sandboxes:A=[],statuses:C={}}=n||{},N=u==="all"?w:w.filter(B=>B.status===u),L=new Set(A.flatMap(B=>B.mcp_servers||[])),J=({label:B,value:K,hint:T})=>qe.default.createElement("div",{style:{background:x.cardBg,borderRadius:"12px",padding:"20px",border:`1px solid ${x.border}`}},qe.default.createElement("div",{style:{fontSize:"11px",color:x.textSecondary,textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:"8px"}},B),qe.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",fontFamily:"monospace",color:x.textPrimary}},K),T&&qe.default.createElement("div",{style:{fontSize:"13px",color:x.textSecondary,marginTop:"8px"}},T));return qe.default.createElement("div",{style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)",backgroundColor:x.bg}},qe.default.createElement("div",{style:{padding:"24px 24px 16px 24px",borderBottom:`1px solid ${x.border}`,marginBottom:"16px"}},qe.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:"16px",flexWrap:"wrap"}},qe.default.createElement("div",null,qe.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:x.textPrimary,margin:0}},"MCP Services"),qe.default.createElement("p",{style:{fontSize:"14px",color:x.textSecondary,marginTop:"4px"}},"Servers detected from your agents' traffic, plus the defaults you can connect or run in a sandbox")),qe.default.createElement("div",{style:{display:"flex",gap:"4px"}},VCe.map(B=>qe.default.createElement("button",{key:B.value,onClick:()=>p(B.value),style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${d===B.value?"#ef4444":x.border}`,background:d===B.value?r?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:d===B.value?"#ef4444":x.textSecondary}},B.label))))),qe.default.createElement("div",{style:{padding:"0 24px 24px 24px"}},qe.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:"16px",marginBottom:"16px"}},qe.default.createElement(J,{label:"Active",value:R0(_.active),hint:"called in this window"}),qe.default.createElement(J,{label:"Configured",value:R0(_.configured),hint:"declared, no traffic yet"}),qe.default.createElement(J,{label:"Available",value:R0(_.available),hint:"defaults you can connect"}),qe.default.createElement(J,{label:"Tool Calls",value:R0(_.total_calls),hint:"through MCP servers"})),g&&qe.default.createElement("div",{style:{marginBottom:"16px",padding:"12px 16px",borderRadius:"8px",fontSize:"14px",background:g.kind==="error"?x.errorBg:r?"rgba(34,197,94,0.15)":"#f0fdf4",color:g.kind==="error"?x.error:r?"#86efac":"#15803d"}},g.text),qe.default.createElement("div",{style:{display:"flex",gap:"8px",marginBottom:"16px",flexWrap:"wrap"}},GCe.map(B=>qe.default.createElement("button",{key:B.value,onClick:()=>c(B.value),title:C[B.value]||"Every MCP service known to this workspace",style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${u===B.value?"#ef4444":x.border}`,background:u===B.value?r?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:u===B.value?"#ef4444":x.textSecondary}},B.label))),qe.default.createElement("div",{style:{display:"grid",gap:"12px"}},N.length===0?qe.default.createElement("div",{style:{background:x.cardBg,borderRadius:"12px",border:`1px solid ${x.border}`,textAlign:"center",padding:"48px 24px",color:x.textSecondary,fontSize:"14px"}},"No MCP services in this state"):N.map(B=>{let K=S(B.status),T=f===B.key,P=L.has(B.key);return qe.default.createElement("div",{key:B.key,style:{background:x.cardBg,borderRadius:"12px",border:`1px solid ${T?K.fg:x.border}`,overflow:"hidden"}},qe.default.createElement("div",{onClick:()=>m(T?null:B.key),style:{padding:"16px 20px",cursor:"pointer",display:"flex",alignItems:"center",gap:"16px",flexWrap:"wrap"}},qe.default.createElement("div",{style:{flex:1,minWidth:"220px"}},qe.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}},qe.default.createElement("span",{style:{fontSize:"15px",fontWeight:"600",color:x.textPrimary}},B.name),qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:K.bg,color:K.fg,textTransform:"uppercase",letterSpacing:"0.04em"}},B.status),B.first_party&&qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r?"rgba(239,68,68,0.15)":"#fef2f2",color:"#ef4444"}},"first-party"),Zd(B)&&qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r?"rgba(59,130,246,0.15)":"#eff6ff",color:r?"#93c5fd":"#1d4ed8"},title:"The app runtime of a checkout sandbox started from Settings \u2192 Integrations"},"sandbox runtime"),av(B)&&qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r?"rgba(245,158,11,0.15)":"#fffbeb",color:r?"#fcd34d":"#b45309"},title:"This checkout sandbox has stopped; agents may still name its runtime"},"not running"),ow(B)&&qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:x.borderLight,color:x.textMuted},title:"Seen in your traffic but not in the platform catalog"},"undocumented"),P&&qe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r?"rgba(34,197,94,0.15)":"#f0fdf4",color:r?"#86efac":"#15803d"}},"\u25CF sandbox running")),B.description&&qe.default.createElement("div",{style:{fontSize:"13px",color:x.textSecondary,marginTop:"4px"}},B.description)),qe.default.createElement("div",{style:{display:"flex",gap:"24px",alignItems:"center"}},qe.default.createElement("div",{style:{textAlign:"right"}},qe.default.createElement("div",{style:{fontSize:"18px",fontFamily:"monospace",fontWeight:"600",color:x.textPrimary}},R0(B.calls)),qe.default.createElement("div",{style:{fontSize:"11px",color:x.textMuted}},"calls")),qe.default.createElement("div",{style:{textAlign:"right"}},qe.default.createElement("div",{style:{fontSize:"18px",fontFamily:"monospace",fontWeight:"600",color:B.errors>0?x.error:x.textPrimary}},B.errors||0),qe.default.createElement("div",{style:{fontSize:"11px",color:x.textMuted}},"errors")),B.launchable&&qe.default.createElement("button",{onClick:I=>{I.stopPropagation(),k(B)},disabled:y===B.key,style:{padding:"8px 14px",fontSize:"13px",borderRadius:"6px",border:"none",background:y===B.key?x.borderLight:"#ef4444",color:y===B.key?x.textMuted:"#ffffff",cursor:y===B.key?"wait":"pointer",fontWeight:"500",whiteSpace:"nowrap"},title:`Start ${B.name} in a sandbox session`},y===B.key?"Starting\u2026":P?"Start another":"Start in sandbox"))),T&&qe.default.createElement(XCe,{server:B,colors:x,tone:K,onOpenTools:t}))})),A.length>0&&qe.default.createElement("div",{style:{marginTop:"24px",background:x.cardBg,borderRadius:"12px",border:`1px solid ${x.border}`,padding:"20px"}},qe.default.createElement("h3",{style:{fontSize:"16px",fontWeight:"600",color:x.textPrimary,margin:"0 0 12px 0"}},"Running sandboxes"),qe.default.createElement("div",{style:{display:"grid",gap:"8px"}},A.map(B=>qe.default.createElement("div",{key:B.session_id,style:{display:"flex",justifyContent:"space-between",gap:"12px",fontSize:"13px",color:x.textCell,flexWrap:"wrap"}},qe.default.createElement("span",{style:{fontFamily:"monospace"}},(B.mcp_servers||[]).join(", ")||B.sandbox_type),qe.default.createElement("span",{style:{color:x.textMuted}},B.status," \xB7 ",B.runs_count,"/",B.max_runs," runs \xB7 expires ",new Date(B.expires_at).toLocaleTimeString())))))))}function XCe({server:e,colors:t,tone:r,onOpenTools:n}){let o=({label:i,children:s})=>qe.default.createElement("div",{style:{display:"flex",gap:"12px",fontSize:"13px",alignItems:"baseline"}},qe.default.createElement("span",{style:{color:t.textMuted,minWidth:"120px",fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.05em"}},i),qe.default.createElement("span",{style:{color:t.textCell,flex:1,wordBreak:"break-word"}},s)),a=e.command||e.url;return qe.default.createElement("div",{style:{padding:"0 20px 20px 20px",display:"grid",gap:"10px"}},qe.default.createElement("div",{style:{height:"1px",background:t.borderLight,marginBottom:"4px"}}),a&&qe.default.createElement(o,{label:YCe.includes(e.transport)?"Endpoint":"Command"},qe.default.createElement("code",{style:{fontFamily:"monospace",fontSize:"12px",padding:"4px 8px",borderRadius:"4px",background:t.codeBg,display:"inline-block"}},a)),e.transport&&qe.default.createElement(o,{label:"Transport"},e.transport),e.categories?.length>0&&qe.default.createElement(o,{label:"Categories"},e.categories.join(", ")),e.requires_credentials?.length>0&&qe.default.createElement(o,{label:"Requires"},e.requires_credentials.join(", ")),qe.default.createElement(o,{label:e.tool_count>0?"Tools used":"Tools offered"},e.tools?.length>0?qe.default.createElement("span",{style:{display:"flex",gap:"6px",flexWrap:"wrap"}},e.tools.map(i=>qe.default.createElement("code",{key:i,style:{fontFamily:"monospace",fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r.bg,color:r.fg}},i))):qe.default.createElement("span",{style:{color:t.textMuted}},"none recorded")),e.agents?.length>0&&qe.default.createElement(o,{label:"Used by"},e.agents.join(", ")),e.configured_by?.length>0&&qe.default.createElement(o,{label:"Configured by"},e.configured_by.join(", ")),e.last_seen&&qe.default.createElement(o,{label:"Last call"},new Date(e.last_seen).toLocaleString()),qe.default.createElement("div",{style:{display:"flex",gap:"12px",marginTop:"4px",flexWrap:"wrap"}},e.docs_url&&qe.default.createElement("a",{href:e.docs_url,target:"_blank",rel:"noopener noreferrer",style:{fontSize:"13px",color:"#ef4444",textDecoration:"none"}},"Documentation \u2192"),e.calls>0&&n&&qe.default.createElement("button",{onClick:()=>n(e.key),style:{fontSize:"13px",color:"#ef4444",background:"none",border:"none",padding:0,cursor:"pointer"}},"View its tools \u2192")))}var re=Z(Q());var yd=Z(Q());var rA={logger:typeof console<"u"?console:void 0,WebSocket:typeof WebSocket<"u"?WebSocket:void 0},Fn={log(...e){this.enabled&&(e.push(Date.now()),rA.logger.log("[ActionCable]",...e))}},tb=()=>new Date().getTime(),tA=e=>(tb()-e)/1e3,rb=class{constructor(t){this.visibilityDidChange=this.visibilityDidChange.bind(this),this.connection=t,this.reconnectAttempts=0}start(){this.isRunning()||(this.startedAt=tb(),delete this.stoppedAt,this.startPolling(),addEventListener("visibilitychange",this.visibilityDidChange),Fn.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`))}stop(){this.isRunning()&&(this.stoppedAt=tb(),this.stopPolling(),removeEventListener("visibilitychange",this.visibilityDidChange),Fn.log("ConnectionMonitor stopped"))}isRunning(){return this.startedAt&&!this.stoppedAt}recordMessage(){this.pingedAt=tb()}recordConnect(){this.reconnectAttempts=0,delete this.disconnectedAt,Fn.log("ConnectionMonitor recorded connect")}recordDisconnect(){this.disconnectedAt=tb(),Fn.log("ConnectionMonitor recorded disconnect")}startPolling(){this.stopPolling(),this.poll()}stopPolling(){clearTimeout(this.pollTimeout)}poll(){this.pollTimeout=setTimeout((()=>{this.reconnectIfStale(),this.poll()}),this.getPollInterval())}getPollInterval(){let{staleThreshold:t,reconnectionBackoffRate:r}=this.constructor,n=Math.pow(1+r,Math.min(this.reconnectAttempts,10)),a=(this.reconnectAttempts===0?1:r)*Math.random();return t*1e3*n*(1+a)}reconnectIfStale(){this.connectionIsStale()&&(Fn.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${tA(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`),this.reconnectAttempts++,this.disconnectedRecently()?Fn.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${tA(this.disconnectedAt)} s`):(Fn.log("ConnectionMonitor reopening"),this.connection.reopen()))}get refreshedAt(){return this.pingedAt?this.pingedAt:this.startedAt}connectionIsStale(){return tA(this.refreshedAt)>this.constructor.staleThreshold}disconnectedRecently(){return this.disconnectedAt&&tA(this.disconnectedAt){(this.connectionIsStale()||!this.connection.isOpen())&&(Fn.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`),this.connection.reopen())}),200)}};rb.staleThreshold=6;rb.reconnectionBackoffRate=.15;var eR={message_types:{welcome:"welcome",disconnect:"disconnect",ping:"ping",confirmation:"confirm_subscription",rejection:"reject_subscription"},disconnect_reasons:{unauthorized:"unauthorized",invalid_request:"invalid_request",server_restart:"server_restart",remote:"remote"},default_mount_path:"/cable",protocols:["actioncable-v1-json","actioncable-unsupported"]},{message_types:eb,protocols:g3}=eR,ZCe=g3.slice(0,g3.length-1),RQ=[].indexOf,nb=class{constructor(t){this.open=this.open.bind(this),this.consumer=t,this.subscriptions=this.consumer.subscriptions,this.monitor=new rb(this),this.disconnected=!0}send(t){return this.isOpen()?(this.webSocket.send(JSON.stringify(t)),!0):!1}open(){if(this.isActive())return Fn.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`),!1;{let t=[...g3,...this.consumer.subprotocols||[]];return Fn.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${t}`),this.webSocket&&this.uninstallEventHandlers(),this.webSocket=new rA.WebSocket(this.consumer.url,t),this.installEventHandlers(),this.monitor.start(),!0}}close({allowReconnect:t}={allowReconnect:!0}){if(t||this.monitor.stop(),this.isOpen())return this.webSocket.close()}reopen(){if(Fn.log(`Reopening WebSocket, current state is ${this.getState()}`),this.isActive())try{return this.close()}catch(t){Fn.log("Failed to reopen WebSocket",t)}finally{Fn.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`),setTimeout(this.open,this.constructor.reopenDelay)}else return this.open()}getProtocol(){if(this.webSocket)return this.webSocket.protocol}isOpen(){return this.isState("open")}isActive(){return this.isState("open","connecting")}triedToReconnect(){return this.monitor.reconnectAttempts>0}isProtocolSupported(){return RQ.call(ZCe,this.getProtocol())>=0}isState(...t){return RQ.call(t,this.getState())>=0}getState(){if(this.webSocket){for(let t in rA.WebSocket)if(rA.WebSocket[t]===this.webSocket.readyState)return t.toLowerCase()}return null}installEventHandlers(){for(let t in this.events){let r=this.events[t].bind(this);this.webSocket[`on${t}`]=r}}uninstallEventHandlers(){for(let t in this.events)this.webSocket[`on${t}`]=function(){}}};nb.reopenDelay=500;nb.prototype.events={message(e){if(!this.isProtocolSupported())return;let{identifier:t,message:r,reason:n,reconnect:o,type:a}=JSON.parse(e.data);switch(this.monitor.recordMessage(),a){case eb.welcome:return this.triedToReconnect()&&(this.reconnectAttempted=!0),this.monitor.recordConnect(),this.subscriptions.reload();case eb.disconnect:return Fn.log(`Disconnecting. Reason: ${n}`),this.close({allowReconnect:o});case eb.ping:return null;case eb.confirmation:return this.subscriptions.confirmSubscription(t),this.reconnectAttempted?(this.reconnectAttempted=!1,this.subscriptions.notify(t,"connected",{reconnected:!0})):this.subscriptions.notify(t,"connected",{reconnected:!1});case eb.rejection:return this.subscriptions.reject(t);default:return this.subscriptions.notify(t,"received",r)}},open(){if(Fn.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`),this.disconnected=!1,!this.isProtocolSupported())return Fn.log("Protocol is unsupported. Stopping monitor and disconnecting."),this.close({allowReconnect:!1})},close(e){if(Fn.log("WebSocket onclose event"),!this.disconnected)return this.disconnected=!0,this.monitor.recordDisconnect(),this.subscriptions.notifyAll("disconnected",{willAttemptReconnect:this.monitor.isRunning()})},error(){Fn.log("WebSocket onerror event")}};var JCe=function(e,t){if(t!=null)for(let r in t){let n=t[r];e[r]=n}return e},h3=class{constructor(t,r={},n){this.consumer=t,this.identifier=JSON.stringify(r),JCe(this,n)}perform(t,r={}){return r.action=t,this.send(r)}send(t){return this.consumer.send({command:"message",identifier:this.identifier,data:JSON.stringify(t)})}unsubscribe(){return this.consumer.subscriptions.remove(this)}},y3=class{constructor(t){this.subscriptions=t,this.pendingSubscriptions=[]}guarantee(t){this.pendingSubscriptions.indexOf(t)==-1?(Fn.log(`SubscriptionGuarantor guaranteeing ${t.identifier}`),this.pendingSubscriptions.push(t)):Fn.log(`SubscriptionGuarantor already guaranteeing ${t.identifier}`),this.startGuaranteeing()}forget(t){Fn.log(`SubscriptionGuarantor forgetting ${t.identifier}`),this.pendingSubscriptions=this.pendingSubscriptions.filter((r=>r!==t))}startGuaranteeing(){this.stopGuaranteeing(),this.retrySubscribing()}stopGuaranteeing(){clearTimeout(this.retryTimeout)}retrySubscribing(){this.retryTimeout=setTimeout((()=>{this.subscriptions&&typeof this.subscriptions.subscribe=="function"&&this.pendingSubscriptions.map((t=>{Fn.log(`SubscriptionGuarantor resubscribing ${t.identifier}`),this.subscriptions.subscribe(t)}))}),500)}},v3=class{constructor(t){this.consumer=t,this.guarantor=new y3(this),this.subscriptions=[]}create(t,r){let n=t,o=typeof n=="object"?n:{channel:n},a=new h3(this.consumer,o,r);return this.add(a)}add(t){return this.subscriptions.push(t),this.consumer.ensureActiveConnection(),this.notify(t,"initialized"),this.subscribe(t),t}remove(t){return this.forget(t),this.findAll(t.identifier).length||this.sendCommand(t,"unsubscribe"),t}reject(t){return this.findAll(t).map((r=>(this.forget(r),this.notify(r,"rejected"),r)))}forget(t){return this.guarantor.forget(t),this.subscriptions=this.subscriptions.filter((r=>r!==t)),t}findAll(t){return this.subscriptions.filter((r=>r.identifier===t))}reload(){return this.subscriptions.map((t=>this.subscribe(t)))}notifyAll(t,...r){return this.subscriptions.map((n=>this.notify(n,t,...r)))}notify(t,r,...n){let o;return typeof t=="string"?o=this.findAll(t):o=[t],o.map((a=>typeof a[r]=="function"?a[r](...n):void 0))}subscribe(t){this.sendCommand(t,"subscribe")&&this.guarantor.guarantee(t)}confirmSubscription(t){Fn.log(`Subscription confirmed ${t}`),this.findAll(t).map((r=>this.guarantor.forget(r)))}sendCommand(t,r){let{identifier:n}=t;return this.consumer.send({command:r,identifier:n})}},x3=class{constructor(t){this._url=t,this.subscriptions=new v3(this),this.connection=new nb(this),this.subprotocols=[]}get url(){return QCe(this._url)}send(t){return this.connection.send(t)}connect(){return this.connection.open()}disconnect(){return this.connection.close({allowReconnect:!1})}ensureActiveConnection(){if(!this.connection.isActive())return this.connection.open()}addSubProtocol(t){this.subprotocols=[...this.subprotocols,t]}};function QCe(e){if(typeof e=="function"&&(e=e()),e&&!/^wss?:/i.test(e)){let t=document.createElement("a");return t.href=e,t.href=t.href,t.protocol=t.protocol.replace("http","ws"),t.href}else return e}function tR(e=RCe("url")||eR.default_mount_path){return new x3(e)}function RCe(e){let t=document.head.querySelector(`meta[name='action-cable-${e}']`);if(t)return t.getAttribute("content")}var nA=null;function e2e(){if(nA===null)try{nA=tR()}catch{nA=!1}return nA||null}function $h(e,t,r,n=!0){let o=(0,yd.useRef)(null),a=(0,yd.useRef)(r);return(0,yd.useEffect)(()=>{a.current=r},[r]),(0,yd.useEffect)(()=>{if(!n||!e)return;let s=e2e();if(s)return o.current=s.subscriptions.create({channel:e,...t},{connected(){console.log(`[ActionCable] Connected to ${e}`,t)},disconnected(){console.log(`[ActionCable] Disconnected from ${e}`)},received(l){console.log(`[ActionCable] Received on ${e}:`,l),a.current&&a.current(l)},rejected(){console.warn(`[ActionCable] Subscription rejected for ${e}`)}}),()=>{o.current&&(console.log(`[ActionCable] Unsubscribing from ${e}`),o.current.unsubscribe(),o.current=null)}},[e,JSON.stringify(t),n]),{send:(0,yd.useCallback)((s,l)=>{o.current&&o.current.perform(s,l)},[])}}function Lh(e){return!e||typeof e!="object"||typeof e.type!="string"?null:{type:e.type,id:e.id??null,status:e.status??null}}var oA=[{id:"anthropic",name:"Anthropic",model:"claude-haiku-4-5",color:"bg-orange-500"},{id:"openai",name:"OpenAI",model:"gpt-4o",color:"bg-green-500"},{id:"ollama",name:"Ollama",model:"llama3.1:8b",color:"bg-purple-500"}],t2e={playwright_mcp:[{name:"Screenshot Example.com",task:"Take a screenshot of https://example.com",description:"Navigate to example.com and capture a screenshot"},{name:"Extract Hacker News Headlines",task:"Go to https://news.ycombinator.com and list the top 5 story titles with their scores",description:"Scrape the front page of Hacker News"},{name:"Check Wikipedia",task:"Navigate to https://en.wikipedia.org/wiki/Artificial_intelligence and extract the first paragraph",description:"Extract content from Wikipedia"},{name:"GitHub Trending",task:"Visit https://github.com/trending and list the top 3 trending repositories",description:"Check GitHub's trending repositories"}],comparison:[{name:"Explain Ruby Blocks",task:"Explain how Ruby blocks work with a simple example",description:"Compare how each model explains Ruby concepts"},{name:"Write a Haiku",task:"Write a haiku about programming",description:"Compare creative output across models"},{name:"Debug This Code",task:"What's wrong with this code? def add(a, b); a - b; end; puts add(2, 3)",description:"Compare debugging abilities"},{name:"Summarize AI",task:"Summarize the current state of AI in 3 sentences",description:"Compare factual knowledge and conciseness"}]},rR={max_runs:10,timeout_seconds:300,session_duration_minutes:15};function b3({initialType:e="playwright_mcp",onClose:t,showAgents:r=!1}){let[n,o]=(0,re.useState)(e),[a,i]=(0,re.useState)(null),[s,l]=(0,re.useState)(""),[u,c]=(0,re.useState)([]),[d,p]=(0,re.useState)(null),[f,m]=(0,re.useState)(!1),[y,b]=(0,re.useState)(!1),[g,h]=(0,re.useState)(null),[v,x]=(0,re.useState)(null),[S,k]=(0,re.useState)(!1),[w,_]=(0,re.useState)(null),[A,C]=(0,re.useState)(!1),N=(0,re.useRef)(null),[L,J]=(0,re.useState)(["anthropic"]),[B,K]=(0,re.useState)(!1),[T,P]=(0,re.useState)({}),[I,M]=(0,re.useState)([]),j=(0,re.useCallback)(async D=>{try{let Y=await fetch(`/api/sandboxes/${D}`);if(!Y.ok)return;let E=await Y.json();i(E.sandbox),c(E.sandbox.runs||[])}catch(Y){console.error("Could not refresh the sandbox session:",Y)}},[]),O=(0,re.useCallback)(D=>{!Lh(D)||!a?.session_id||j(a.session_id)},[j,a?.session_id]);$h("SandboxChannel",{session_id:a?.session_id},O,!!a?.session_id),(0,re.useEffect)(()=>{V(),F()},[n]);let F=async()=>{try{let D=await fetch("/api/usage");if(D.ok){let Y=await D.json();_(Y.usage)}}catch{console.log("Could not fetch usage (user may not be authenticated)")}};(0,re.useEffect)(()=>{if(!a?.expires_at)return;let D=setInterval(()=>{let Y=new Date,E=new Date(a.expires_at),$=Math.max(0,Math.floor((E-Y)/1e3));x($),$===0&&(i(ee=>({...ee,status:"expired"})),clearInterval(D))},1e3);return()=>clearInterval(D)},[a?.expires_at]),(0,re.useEffect)(()=>{N.current&&(N.current.scrollTop=N.current.scrollHeight)},[d?.result]);let V=async()=>{b(!0),h(null);try{let D=await fetch("/api/sandboxes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sandbox_type:n})});if(!D.ok)throw new Error("Failed to create sandbox session");let Y=await D.json();i(Y.sandbox),c([]),p(null)}catch(D){h(D.message)}finally{b(!1)}},z=async()=>{!s.trim()||f||!a||(B&&L.length>1?await q():await G(L[0]||"anthropic"))},G=async D=>{m(!0),p({status:"running",task:s,provider:D,result:"",started_at:new Date().toISOString()});try{let Y=await fetch(`/api/sandboxes/${a.session_id}/run`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({task:s,provider:D})}),E=await Y.json();if(Y.status===402&&E.upgrade_required){_(E.usage),k(!0),p($=>({...$,status:"failed",error:E.message||"Plan limit reached"})),m(!1);return}if(!Y.ok)throw new Error(E.error||"Task execution failed");E.usage&&_(E.usage),le(E.run_id)}catch(Y){p(E=>({...E,status:"failed",error:Y.message})),m(!1)}},q=async()=>{m(!0),M([...L]),P({});let D={};L.forEach(Y=>{D[Y]={status:"running",result:"",started_at:new Date().toISOString()}}),P(D);try{let Y=await fetch("/api/sandboxes/compare",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({task:s,providers:L,sandbox_id:a?.session_id,sandbox_type:n})});if(!Y.ok){let $=await Y.json();throw new Error($.error||"Comparison failed")}let E=await Y.json();E.sandbox&&i(E.sandbox),oe(L,E.sandbox?.session_id||a?.session_id,E.sandbox?.runs_count??a?.runs_count??0)}catch(Y){L.forEach(E=>{P($=>({...$,[E]:{status:"failed",error:Y.message}}))}),m(!1),M([])}},oe=(D,Y,E)=>{if(!Y)return;let $=async()=>{try{let ee=await fetch(`/api/sandboxes/${Y}`);if(!ee.ok)throw new Error(`HTTP ${ee.status}`);let U=await ee.json();i(U.sandbox);let me=U.sandbox.runs||[];c(me);let et=new Set;if(me.slice(E).forEach(rt=>{rt.provider&&(P(ge=>({...ge,[rt.provider]:{...rt,provider:rt.provider}})),(rt.status==="completed"||rt.status==="failed")&&et.add(rt.provider))}),D.every(rt=>et.has(rt))){m(!1),M([]);return}setTimeout($,1e3)}catch(ee){console.error("Comparison polling failed:",ee),m(!1),M([])}};setTimeout($,1e3)},Me=async()=>{if(a?.session_id)try{let Y=await(await fetch(`/api/sandboxes/${a.session_id}`)).json();i(Y.sandbox),c(Y.sandbox.runs||[]),(Y.sandbox.runs||[]).forEach(ee=>{ee.provider&&P(U=>({...U,[ee.provider]:{...ee,provider:ee.provider}}))}),L.every(ee=>{let U=T[ee];return U?.status==="completed"||U?.status==="failed"})&&(m(!1),M([]))}catch(D){console.error("Polling error:",D)}},fe=D=>{J(Y=>Y.includes(D)?Y.length===1?Y:Y.filter(E=>E!==D):[...Y,D])},le=async D=>{let Y=async()=>{try{let $=await(await fetch(`/api/sandboxes/${a.session_id}`)).json();i($.sandbox);let ee=$.sandbox.runs||[],U=ee[ee.length-1];if(U&&(p(U),c(ee),U.status==="completed"||U.status==="failed")){m(!1);return}setTimeout(Y,1e3)}catch{m(!1)}};Y()},R=D=>{D.key==="Enter"&&(D.metaKey||D.ctrlKey)&&z()},te=D=>{if(!D)return"--:--";let Y=Math.floor(D/60),E=D%60;return`${Y}:${E.toString().padStart(2,"0")}`},He=a?.status==="ready"&&a?.runs_count{C(!0);try{await Ph({planSlug:"pro",billingInterval:D})}catch(Y){console.error("Checkout error:",Y),h(Y.message||"Failed to initiate checkout. Please try again."),C(!1)}};return re.default.createElement("div",{className:"h-full flex flex-col bg-gray-50"},r&&re.default.createElement("div",{className:"pb-6"},re.default.createElement(n0,{inline:!0})),re.default.createElement("div",{className:"bg-white border-b border-gray-200 px-6 py-4"},re.default.createElement("div",{className:"flex items-center justify-between"},re.default.createElement("div",{className:"flex items-center space-x-4"},re.default.createElement(In,{size:48,appearance:{hat:"fedora",hatAccessory:"theaterMasks",heldItem:"browser"}}),re.default.createElement("div",null,re.default.createElement("h1",{className:"text-xl font-semibold text-gray-900"},"PlaywrightMCP Demo"),re.default.createElement("p",{className:"text-sm text-gray-500"},"Try browser automation for free - no account required"))),re.default.createElement("div",{className:"flex items-center space-x-4"},a&&re.default.createElement("div",{className:"flex items-center space-x-3 text-sm"},re.default.createElement(ke,{tone:al(a.status)},a.status),re.default.createElement("span",{className:"text-gray-500"},a.runs_count,"/",a.max_runs," runs"),re.default.createElement("span",{className:`font-mono ${v<60?"text-red-500":"text-gray-500"}`},te(v))),t&&re.default.createElement("button",{onClick:t,className:"text-gray-400 hover:text-gray-600"},re.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},re.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})))))),re.default.createElement("div",{className:"flex-1 p-6 overflow-hidden"},re.default.createElement("div",{className:"grid grid-cols-3 gap-6 h-full"},re.default.createElement("div",{className:"col-span-2 flex flex-col space-y-4"},re.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},re.default.createElement("textarea",{value:s,onChange:D=>l(D.target.value),onKeyDown:R,placeholder:"Describe what you want the browser agent to do...",rows:3,disabled:!He,className:"w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-rose-500 focus:border-transparent resize-none disabled:bg-gray-100"}),re.default.createElement("div",{className:"flex items-center justify-between mt-3"},re.default.createElement("span",{className:"text-xs text-gray-400"},"Press ",re.default.createElement("kbd",{className:"px-1.5 py-0.5 bg-gray-100 rounded text-gray-600"},"Cmd")," + ",re.default.createElement("kbd",{className:"px-1.5 py-0.5 bg-gray-100 rounded text-gray-600"},"Enter")," to run"),re.default.createElement("button",{onClick:z,disabled:!s.trim()||!He,className:`flex items-center space-x-2 px-6 py-2 rounded-lg transition-colors ${s.trim()&&He?"bg-rose-500 text-white hover:bg-rose-600":"bg-gray-200 text-gray-400 cursor-not-allowed"}`},f?re.default.createElement(re.default.Fragment,null,re.default.createElement("span",{className:"animate-spin"},"\u25E0"),re.default.createElement("span",null,"Running...")):re.default.createElement(re.default.Fragment,null,re.default.createElement("span",null,"\u25B6"),re.default.createElement("span",null,"Run"))))),re.default.createElement("div",{className:"flex-1 bg-white rounded-xl border border-gray-200 flex flex-col overflow-hidden"},re.default.createElement("div",{className:"px-4 py-3 border-b border-gray-200 flex items-center justify-between"},re.default.createElement("h3",{className:"font-medium text-gray-900"},B&&Object.keys(T).length>0?"Comparison Results":"Output"),d&&!B&&re.default.createElement(ke,{tone:al(d.status)},d.status),B&&I.length>0&&re.default.createElement("span",{className:"text-xs text-blue-600"},"Running ",I.length," provider(s)...")),re.default.createElement("div",{ref:N,className:"flex-1 overflow-auto bg-gray-50"},y?re.default.createElement("div",{className:"flex items-center justify-center h-full text-gray-500 p-4"},re.default.createElement("span",{className:"animate-pulse"},"Starting sandbox...")):g?re.default.createElement("div",{className:"text-red-600 p-4"},g):B&&Object.keys(T).length>0?re.default.createElement("div",{className:"grid grid-cols-1 divide-y divide-gray-200"},L.map(D=>{let Y=oA.find($=>$.id===D),E=T[D];return re.default.createElement("div",{key:D,className:"p-4"},re.default.createElement("div",{className:"flex items-center justify-between mb-2"},re.default.createElement("div",{className:"flex items-center space-x-2"},re.default.createElement("div",{className:`w-3 h-3 rounded-full ${Y?.color||"bg-gray-400"}`}),re.default.createElement("span",{className:"font-medium text-gray-900"},Y?.name||D),re.default.createElement("span",{className:"text-xs text-gray-500"},Y?.model)),E&&re.default.createElement("div",{className:"flex items-center space-x-2"},re.default.createElement(ke,{tone:al(E.status)},E.status),E.tokens&&re.default.createElement("span",{className:"text-xs text-gray-500"},E.tokens," tokens"),E.duration_ms&&re.default.createElement("span",{className:"text-xs text-gray-500"},(E.duration_ms/1e3).toFixed(1),"s"))),re.default.createElement("div",{className:"bg-white rounded-lg border border-gray-200 p-3 font-mono text-sm max-h-48 overflow-auto"},E?.status==="running"?re.default.createElement("div",{className:"flex items-center space-x-2 text-gray-500"},re.default.createElement("span",{className:"animate-pulse"},"\u25CF"),re.default.createElement("span",null,"Processing...")):E?.error?re.default.createElement("div",{className:"text-red-600"},E.error):E?.result?re.default.createElement("pre",{className:"whitespace-pre-wrap text-gray-800"},E.result):re.default.createElement("span",{className:"text-gray-400"},"Waiting...")))})):d?re.default.createElement("div",{className:"p-4 font-mono text-sm"},d.provider&&re.default.createElement("div",{className:"flex items-center space-x-2 mb-3 pb-2 border-b border-gray-200"},re.default.createElement("div",{className:`w-2 h-2 rounded-full ${oA.find(D=>D.id===d.provider)?.color||"bg-gray-400"}`}),re.default.createElement("span",{className:"text-sm text-gray-600"},oA.find(D=>D.id===d.provider)?.name||d.provider)),d.status==="running"?re.default.createElement("div",{className:"flex items-center space-x-2 text-gray-500"},re.default.createElement("span",{className:"animate-pulse"},"\u25CF"),re.default.createElement("span",null,"Executing task...")):d.error?re.default.createElement("div",{className:"text-red-600"},re.default.createElement("div",{className:"font-semibold mb-2"},"Error:"),re.default.createElement("pre",{className:"whitespace-pre-wrap"},d.error)):re.default.createElement("pre",{className:"whitespace-pre-wrap text-gray-800"},d.result||"Processing...")):re.default.createElement("div",{className:"text-gray-400 text-center py-12"},re.default.createElement("p",{className:"mb-2"},"Select a sample task or enter your own"),re.default.createElement("p",{className:"text-xs"},B?`Compare results across ${L.length} providers`:"Task will execute using the selected provider"))))),re.default.createElement("div",{className:"space-y-4 overflow-auto"},re.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},re.default.createElement("div",{className:"flex items-center justify-between mb-3"},re.default.createElement("h4",{className:"font-medium text-gray-900"},"Providers"),re.default.createElement("label",{className:"flex items-center space-x-2 cursor-pointer"},re.default.createElement("input",{type:"checkbox",checked:B,onChange:D=>K(D.target.checked),className:"rounded border-gray-300 text-rose-500 focus:ring-rose-500"}),re.default.createElement("span",{className:"text-xs text-gray-600"},"Compare"))),re.default.createElement("div",{className:"space-y-2"},oA.map(D=>re.default.createElement("label",{key:D.id,className:`flex items-center justify-between p-2 rounded-lg border cursor-pointer transition-colors ${L.includes(D.id)?"border-rose-300 bg-rose-50":"border-gray-200 hover:bg-gray-50"}`},re.default.createElement("div",{className:"flex items-center space-x-3"},re.default.createElement("input",{type:"checkbox",checked:L.includes(D.id),onChange:()=>fe(D.id),className:"rounded border-gray-300 text-rose-500 focus:ring-rose-500"}),re.default.createElement("div",{className:`w-2 h-2 rounded-full ${D.color}`}),re.default.createElement("span",{className:"text-sm font-medium text-gray-900"},D.name)),re.default.createElement("span",{className:"text-xs text-gray-500"},D.model)))),B&&L.length>1&&re.default.createElement("div",{className:"mt-3 p-2 bg-purple-50 rounded-lg"},re.default.createElement("p",{className:"text-xs text-purple-700"},"Comparison mode: Run task on ",L.length," providers simultaneously"))),re.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},re.default.createElement("div",{className:"flex items-center justify-between mb-3"},re.default.createElement("h4",{className:"font-medium text-gray-900"},"Sample Tasks"),B&&re.default.createElement("button",{onClick:()=>o(n==="playwright_mcp"?"comparison":"playwright_mcp"),className:"text-xs text-rose-600 hover:text-rose-700"},n==="comparison"?"Browser Tasks":"Comparison Tasks")),re.default.createElement("div",{className:"space-y-2"},t2e[n]?.map((D,Y)=>re.default.createElement("button",{key:Y,onClick:()=>l(D.task),disabled:!He,className:"w-full text-left px-3 py-2 rounded-lg transition-colors border border-gray-200 hover:bg-gray-50 disabled:opacity-50"},re.default.createElement("div",{className:"font-medium text-sm text-gray-900"},D.name),re.default.createElement("div",{className:"text-xs text-gray-500 mt-0.5"},D.description))))),re.default.createElement("div",{className:"bg-gradient-to-br from-rose-50 to-purple-50 rounded-xl border border-rose-200 p-4"},re.default.createElement("h4",{className:"font-medium text-gray-900 mb-3"},w?.unlimited?"Unlimited":w?.plan==="free"?"Free Tier":`${w?.plan?.toUpperCase()||"FREE"} Plan`),w&&!w.unlimited&&w.runs_limit!=null&&re.default.createElement("div",{className:"mb-4"},re.default.createElement("div",{className:"flex justify-between text-sm mb-1"},re.default.createElement("span",{className:"text-gray-600"},"Agent Runs"),re.default.createElement("span",{className:`font-medium ${w.runs_remaining<=1?"text-rose-600":"text-gray-900"}`},w.runs_used," / ",w.runs_limit)),re.default.createElement("div",{className:"w-full bg-white rounded-full h-2 border border-rose-200"},re.default.createElement("div",{className:`h-2 rounded-full transition-all ${w.runs_remaining<=1?"bg-rose-500":"bg-emerald-500"}`,style:{width:`${Math.min(w.runs_used/w.runs_limit*100,100)}%`}})),w.runs_remaining<=1&&re.default.createElement("p",{className:"text-xs text-rose-600 mt-1"},w.runs_remaining===0?"Limit reached!":"Almost at limit!")),re.default.createElement("dl",{className:"space-y-2 text-sm"},re.default.createElement("div",{className:"flex justify-between"},re.default.createElement("dt",{className:"text-gray-500"},"Session Runs"),re.default.createElement("dd",{className:"text-gray-900"},a?.runs_count||0,"/",a?.max_runs||rR.max_runs)),re.default.createElement("div",{className:"flex justify-between"},re.default.createElement("dt",{className:"text-gray-500"},"Timeout"),re.default.createElement("dd",{className:"text-gray-900"},rR.timeout_seconds,"s per task"))),w?.plan==="free"&&re.default.createElement("div",{className:"mt-4 pt-4 border-t border-rose-200"},re.default.createElement("button",{onClick:()=>k(!0),className:"w-full text-center text-sm text-rose-600 hover:text-rose-700 font-medium"},"Upgrade to PRO \u2192"))),u.length>0&&re.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},re.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100"},re.default.createElement("h4",{className:"font-medium text-gray-900"},"Run History")),re.default.createElement("div",{className:"max-h-48 overflow-auto divide-y divide-gray-100"},u.slice().reverse().map((D,Y)=>re.default.createElement("div",{key:D.id||Y,className:"px-4 py-3 hover:bg-gray-50 cursor-pointer",onClick:()=>p(D)},re.default.createElement("div",{className:"flex items-center justify-between mb-1"},re.default.createElement(ke,{tone:al(D.status||"completed")},D.status||"completed"),re.default.createElement("span",{className:"text-xs text-gray-400"},D.tokens||0," tokens")),re.default.createElement("p",{className:"text-sm text-gray-600 truncate"},D.task))))),a?.status==="expired"&&re.default.createElement("button",{onClick:V,className:"w-full px-4 py-3 bg-rose-500 text-white rounded-lg hover:bg-rose-600 transition-colors"},"Start New Session")))),S&&re.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4"},re.default.createElement("div",{className:"bg-white rounded-2xl max-w-4xl w-full overflow-hidden shadow-2xl max-h-[90vh] overflow-y-auto"},re.default.createElement("div",{className:"bg-gradient-to-r from-rose-500 to-purple-600 px-6 py-6 text-white text-center"},re.default.createElement("h2",{className:"text-2xl font-bold mb-1"},"Upgrade Your Plan"),re.default.createElement("p",{className:"text-rose-100 text-sm"},"You've used ",w?.runs_used||0," of ",w?.runs_limit||25," trial runs. Choose a plan to continue.")),re.default.createElement("div",{className:"p-6"},re.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},re.default.createElement("div",{className:"border border-gray-200 rounded-xl p-5"},re.default.createElement("div",{className:"text-center mb-4"},re.default.createElement("h3",{className:"font-semibold text-gray-900"},"Free"),re.default.createElement("div",{className:"mt-2"},re.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$0"),re.default.createElement("span",{className:"text-gray-500"},"/mo"))),re.default.createElement("ul",{className:"space-y-2 text-sm text-gray-600 mb-4"},re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"25 trial runs/month"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"Community support"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"Basic features")),re.default.createElement("button",{disabled:!0,className:"w-full py-2 px-4 border border-gray-300 text-gray-400 rounded-lg text-sm cursor-not-allowed"},"Current Plan")),re.default.createElement("div",{className:"border-2 border-rose-500 rounded-xl p-5 relative bg-rose-50"},re.default.createElement("div",{className:"absolute -top-3 left-1/2 transform -translate-x-1/2"},re.default.createElement("span",{className:"bg-rose-500 text-white text-xs font-semibold px-3 py-1 rounded-full"},"RECOMMENDED")),re.default.createElement("div",{className:"text-center mb-4 mt-2"},re.default.createElement("h3",{className:"font-semibold text-gray-900"},"Pro"),re.default.createElement("div",{className:"mt-2"},re.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$99"),re.default.createElement("span",{className:"text-gray-500"},"/mo")),re.default.createElement("p",{className:"text-xs text-gray-500 mt-1"},"or $995/year (save 16%)")),re.default.createElement("ul",{className:"space-y-2 text-sm text-gray-700 mb-4"},re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"10,000 agent runs/month"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Advanced cost tracking"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"25K traces/month"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Priority email support")),re.default.createElement("button",{onClick:()=>_e("monthly"),disabled:A,className:"w-full py-2 px-4 bg-rose-500 text-white rounded-lg text-sm font-semibold hover:bg-rose-600 transition-colors disabled:opacity-50"},A?"Loading...":"Upgrade to Pro")),re.default.createElement("div",{className:"border border-gray-200 rounded-xl p-5"},re.default.createElement("div",{className:"text-center mb-4"},re.default.createElement("h3",{className:"font-semibold text-gray-900"},"Enterprise"),re.default.createElement("div",{className:"mt-2"},re.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$269"),re.default.createElement("span",{className:"text-gray-500"},"/mo")),re.default.createElement("p",{className:"text-xs text-gray-500 mt-1"},"or $2,690/year (save 16%)")),re.default.createElement("ul",{className:"space-y-2 text-sm text-gray-600 mb-4"},re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Unlimited runs"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"500K traces/month"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"SSO & SOC2/HIPAA"),re.default.createElement("li",{className:"flex items-start"},re.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Dedicated support")),re.default.createElement("a",{href:"mailto:sales@activeagents.ai",className:"block w-full py-2 px-4 border border-gray-300 text-gray-700 rounded-lg text-sm font-semibold text-center hover:bg-gray-50 transition-colors"},"Contact Sales")))),re.default.createElement("div",{className:"px-6 py-4 bg-gray-50 border-t border-gray-100 flex justify-center"},re.default.createElement("button",{onClick:()=>k(!1),className:"text-gray-500 hover:text-gray-700 text-sm"},"Maybe later")))))}var ht=Z(Q());var Mo=Z(Q());var w3=["message","llm","tool","browser"];function aA(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function nR(e={}){let t=[];return w3.forEach((r,n)=>{(e[r]||[]).forEach((o,a)=>{let i=aA(o?.start);if(i===null)return;let s=Math.max(0,Number(o.duration_ms)||0);t.push({entry:{...o,lane:r,startMs:i,endMs:i+s},laneIndex:n,index:a})})}),t.sort((r,n)=>r.entry.startMs-n.entry.startMs||r.laneIndex-n.laneIndex||r.index-n.index),t.map(({entry:r})=>r)}function oR(e=[]){return e.filter(t=>t?.rrweb?.event_count>0&&aA(t.rrweb.first_at)!==null).map(t=>{let r=aA(t.rrweb.first_at);return{...t,startMs:r,endMs:Math.max(r,aA(t.rrweb.last_at)??r)}}).sort((t,r)=>t.startMs-r.startMs)}function aR(e=[],t=[]){return[...e.map(r=>[r.startMs,r.endMs]),...t.map(r=>[r.startMs,r.endMs])]}function iR(e=[],{maxGapMs:t=1e4,gapMs:r=1e3,minSegmentMs:n=1e3}={}){let o=e.filter(([u,c])=>Number.isFinite(u)&&Number.isFinite(c)).map(([u,c])=>[u,Math.max(u,c)]).sort((u,c)=>u[0]-c[0]),a=[];for(let[u,c]of o){let d=a[a.length-1];d&&u-d[1]<=t?d[1]=Math.max(d[1],c):a.push([u,c])}let i=0,s=a.map(([u,c])=>{let d=Math.max(c,u+n),p={startMs:u,endMs:d,axisStart:i,axisEnd:i+(d-u)};return i=p.axisEnd+r,p}),l=s[s.length-1];return{segments:s,gapMs:r,totalMs:l?l.axisEnd:0,startMs:s[0]?.startMs??null,endMs:l?.endMs??null}}function sR(e){return e.segments.slice(1).map((t,r)=>{let n=e.segments[r];return{axisStart:n.axisEnd,axisEnd:t.axisStart,skippedMs:t.startMs-n.endMs}})}function lR(e,t){let{segments:r}=e;if(!r.length)return null;let n=Math.min(Math.max(t,0),e.totalMs);for(let o=0;ot<=n.axisEnd);return r===-1?Math.max(0,e.segments.length*2-2):t>=e.segments[r].axisStart?r*2:Math.max(0,r*2-1)}function S3(e,t){let r=0,n=e.length-1,o=-1;for(;r<=n;){let a=r+n>>1;e[a].startMs<=t?(o=a,r=a+1):n=a-1}return o}function cR(e,t,r){if(r>0)return e.find(n=>n.startMs>t)?.startMs??null;for(let n=e.length-1;n>=0;n-=1)if(e[n].startMst>=o.startMs&&t<=o.endMs);if(r)return r;let n=e.filter(o=>o.startMs<=t);return n[n.length-1]||e[0]}function pR(e,t){let r=Math.max(0,e.endMs-e.startMs);return te.endMs?{phase:"after",offsetMs:r}:{phase:"during",offsetMs:t-e.startMs}}function zh(e){let t=Math.max(0,Math.floor((Number(e)||0)/1e3)),r=Math.floor(t/3600),n=Math.floor(t%3600/60),o=String(t%60).padStart(2,"0");return r?`${r}:${String(n).padStart(2,"0")}:${o}`:`${n}:${o}`}function iA(e){let t=Math.max(0,Math.round((Number(e)||0)/1e3)),r=[["d",86400],["h",3600],["m",60],["s",1]],n=[],o=t;for(let[a,i]of r){let s=Math.floor(o/i);if(o-=s*i,(s||n.length)&&n.push(`${s}${a}`),n.length===2)break}return n.filter(a=>!a.startsWith("0")).join(" ")||"0s"}function k3(e){let t=String(e??"").replace(/\s+/g," ").trim();return t.length>140?`${t.slice(0,139)}\u2026`:t}function r2e(e){if(!e)return"";let t=Number(e.input??e.input_tokens)||0,r=Number(e.output??e.output_tokens)||0;return t||r?`${t} in / ${r} out`:""}function fR(e){switch(e?.lane){case"message":{let t=(e.tool_calls||[]).map(n=>n?.name||n?.function?.name).filter(Boolean),r=k3(e.content);return!r&&t.length?`${e.role} called ${t.join(", ")}`:e.role==="tool"?`${e.tool_name||"tool"} result: ${r}`:`${e.role}: ${r}`}case"llm":return[e.model||e.name||"model call",r2e(e.tokens)].filter(Boolean).join(" \xB7 ");case"tool":return`${e.name||"tool"}${e.error?" (failed)":""}`;case"browser":{let t=e.data||{};return e.kind==="console"?`console ${t.level||"log"}: ${k3(t.message??t.value)}`:e.kind==="marker"?`marker: ${k3(t.label??t.name??t.value)}`:t.tool_name||t.action_type||e.kind||"browser event"}default:return""}}function Bh(e){return e?e.error===!0?!0:["error","ERROR","failed"].includes(e.status):!1}function n2e(e=[]){return e.filter(t=>t?.kind==="rrweb").flatMap(t=>t.events||[]).filter(t=>t&&Number.isFinite(t.at)&&t.data&&typeof t.data=="object").map(t=>({...t.data,timestamp:t.at})).sort((t,r)=>t.timestamp-r.timestamp)}function o2e(e,t=null,r=50){let n=new URLSearchParams({kind:"rrweb",limit:String(r)});return t!=null&&n.set("after",String(t)),`/api/session_recordings/${encodeURIComponent(e)}/events?${n}`}async function mR(e,{fetchPage:t,onEvents:r,maxEvents:n=5e4,isCancelled:o=()=>!1}){let a=null,i=0;for(;;){let s=await t(o2e(e,a));if(o())return{count:i,truncated:!1};let l=n2e(s?.events);if(l.length&&(r(l,i===0),i+=l.length),!s?.has_more||s.next_after==null)return{count:i,truncated:!1};if(i>=n)return{count:i,truncated:!0};a=s.next_after}}var Uu=[{lane:"message",label:"messages",color:"var(--color-info)"},{lane:"llm",label:"model",color:"var(--color-token-out)"},{lane:"tool",label:"tools",color:"var(--color-warning)"},{lane:"browser",label:"browser",color:"var(--color-success)"}],ob=18,a2e=76,wf=(e,t)=>e.totalMs?t/e.totalMs*100:0,i2e=(0,Mo.memo)(function({axis:t,entries:r,recordings:n}){let o=sR(t);return Mo.default.createElement(Mo.default.Fragment,null,o.map(a=>Mo.default.createElement("div",{key:`gap-${a.axisStart}`,title:`${iA(a.skippedMs)} idle, shortened`,style:{position:"absolute",top:0,bottom:0,left:`${wf(t,a.axisStart)}%`,width:`${wf(t,a.axisEnd-a.axisStart)}%`,background:"repeating-linear-gradient(135deg, var(--color-muted) 0 4px, transparent 4px 8px)"}})),Uu.map((a,i)=>Mo.default.createElement(Mo.default.Fragment,{key:a.lane},a.lane==="browser"&&n.map(s=>{let l=vd(t,s.startMs);return Mo.default.createElement("div",{key:`recording-${s.id}`,title:`browser recording ${s.id}`,style:{position:"absolute",top:i*ob+7,height:4,borderRadius:2,left:`${wf(t,l)}%`,width:`${Math.max(wf(t,vd(t,s.endMs)-l),.3)}%`,background:a.color,opacity:.35}})}),r.filter(s=>s.lane===a.lane).map(s=>{let l=vd(t,s.startMs);return Mo.default.createElement("div",{key:s.id,style:{position:"absolute",top:i*ob+4,height:ob-8,borderRadius:2,left:`${wf(t,l)}%`,width:`max(3px, ${wf(t,vd(t,s.endMs)-l)}%)`,background:Bh(s)?"var(--color-error)":a.color}})}))))});function _3({axis:e,entries:t,recordings:r,position:n,onSeek:o}){let a=(0,Mo.useRef)(null),i=Uu.length*ob,s=u=>{let c=a.current?.getBoundingClientRect();if(!c?.width)return;let d=Math.min(Math.max((u.clientX-c.left)/c.width,0),1);o(d*e.totalMs)},l=u=>{let c=e.totalMs/100;if(u.key==="ArrowRight")o(n+c);else if(u.key==="ArrowLeft")o(n-c);else if(u.key==="Home")o(0);else if(u.key==="End")o(e.totalMs);else return;u.preventDefault()};return Mo.default.createElement("div",{"data-testid":"replay-scrubber",style:{display:"flex",gap:8}},Mo.default.createElement("div",{style:{width:a2e,flexShrink:0}},Uu.map(u=>Mo.default.createElement("div",{key:u.lane,style:{height:ob,display:"flex",alignItems:"center",gap:6,fontFamily:W,fontSize:10,color:"var(--color-text-muted)",textTransform:"uppercase"}},Mo.default.createElement("span",{style:{width:8,height:8,borderRadius:2,background:u.color}}),u.label))),Mo.default.createElement("div",{ref:a,role:"slider",tabIndex:0,"aria-label":"Session position","aria-valuemin":0,"aria-valuemax":Math.round(e.totalMs),"aria-valuenow":Math.round(n),onPointerDown:u=>{u.currentTarget.setPointerCapture?.(u.pointerId),s(u)},onPointerMove:u=>{u.buttons===1&&s(u)},onKeyDown:l,style:{position:"relative",flex:1,height:i,cursor:"pointer",borderRadius:6,overflow:"hidden",background:"var(--color-background)",border:"1px solid var(--color-border-light)",touchAction:"none"}},Mo.default.createElement(i2e,{axis:e,entries:t,recordings:r}),Mo.default.createElement("div",{style:{position:"absolute",top:0,bottom:0,width:2,marginLeft:-1,pointerEvents:"none",left:`${wf(e,n)}%`,background:"var(--color-text-primary)"}})))}var ra=Z(Q());var s2e=Object.fromEntries(Uu.map(e=>[e.lane,e])),l2e=(0,ra.memo)(function({entry:t,startMs:r,current:n,selected:o,onChoose:a,rowRef:i}){let s=s2e[t.lane],l=Bh(t);return ra.default.createElement("button",{type:"button",ref:i,"data-testid":"replay-entry","aria-current":n?"step":void 0,onClick:()=>a(t),style:{display:"flex",alignItems:"baseline",gap:10,width:"100%",textAlign:"left",cursor:"pointer",padding:"6px 12px",border:"none",borderLeft:`3px solid ${n?s.color:"transparent"}`,background:o?"var(--color-accent-ui-tint)":n?"var(--color-hover)":"transparent",fontFamily:"inherit"}},ra.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)",width:56,flexShrink:0}},zh(t.startMs-r)),ra.default.createElement("span",{style:{fontFamily:W,fontSize:10,textTransform:"uppercase",color:s.color,width:64,flexShrink:0}},s.label),ra.default.createElement("span",{style:{fontSize:13,color:l?"var(--color-error-text)":"var(--color-text-cell)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},fR(t)),t.duration_ms>0&&ra.default.createElement("span",{style:{marginLeft:"auto",fontFamily:W,fontSize:11,color:"var(--color-text-muted)",flexShrink:0}},Math.round(t.duration_ms),"ms"))}),gR=(0,ra.memo)(function({entries:t,startMs:r,currentId:n,selectedId:o,playing:a,onChoose:i}){let s=(0,ra.useRef)(null),l=(0,ra.useRef)(null);return(0,ra.useEffect)(()=>{let u=l.current,c=s.current;if(!a||!u||!c)return;let d=u.offsetTop;(dc.scrollTop+c.clientHeight)&&(c.scrollTop=Math.max(0,d-c.clientHeight/3))},[n,a]),t.length?ra.default.createElement("div",{ref:s,"data-testid":"replay-transcript",style:{maxHeight:460,overflowY:"auto",position:"relative"}},t.map(u=>ra.default.createElement(l2e,{key:u.id,entry:u,startMs:r,current:u.id===n,selected:u.id===o,onChoose:i,rowRef:u.id===n?l:void 0}))):ra.default.createElement("div",{style:{padding:20,fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},"no entries in the lanes shown")});var Ii=Z(Q());var u2e=Object.fromEntries(Uu.map(e=>[e.lane,e.label])),c2e={margin:0,padding:"8px 10px",borderRadius:8,background:"var(--color-background)",border:"1px solid var(--color-border-light)",fontFamily:W,fontSize:12,lineHeight:"18px",color:"var(--color-text-cell)",whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:220,overflow:"auto"};function d2e(e){return e==null||e===""?null:typeof e=="string"?e:JSON.stringify(e,null,2)}function p2e({label:e,value:t}){let r=d2e(t);return r==null?null:Ii.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:4}},Ii.default.createElement(Ue,{size:10},e),Ii.default.createElement("pre",{style:c2e},r))}function f2e(e){switch(e.lane){case"message":return[["content",e.content],["tool calls",e.tool_calls?.length?e.tool_calls:null]];case"llm":return[["model",[e.provider,e.model].filter(Boolean).join(" / ")],["finish reason",e.finish_reason],["tokens",e.tokens]];case"tool":return[["arguments",e.arguments],["result",e.result??e.detail]];case"browser":return[["event",e.data]];default:return[]}}function C3({entry:e}){return e?Ii.default.createElement("div",{"data-testid":"replay-entry-detail",style:{padding:14,display:"flex",flexDirection:"column",gap:10}},Ii.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Ii.default.createElement(ke,{tone:Bh(e)?"error":"muted"},u2e[e.lane]),e.role&&Ii.default.createElement(ke,{tone:"info"},e.role),(e.name||e.tool_name)&&e.lane!=="llm"&&Ii.default.createElement("span",{style:{fontFamily:W,fontSize:12,fontWeight:600,color:"var(--color-text-primary)"}},e.name||e.tool_name),Ii.default.createElement("span",{style:{marginLeft:"auto",fontFamily:W,fontSize:11,color:"var(--color-text-muted)"},title:e.start},new Date(e.startMs).toLocaleTimeString(),e.duration_ms>0?` \xB7 ${Math.round(e.duration_ms)}ms`:"")),e.trace_id&&Ii.default.createElement("div",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},"trace ",e.trace_id),f2e(e).map(([t,r])=>Ii.default.createElement(p2e,{key:t,label:t,value:r}))):Ii.default.createElement("div",{style:{padding:16,fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},"choose an entry to see it in full")}var uo=Z(Q());var hR="action-agent-session-player",yR="/session_player",vR="allow-scripts allow-same-origin";function xR(e,t={}){return{...t,channel:hR,type:e}}function bR(e,t,r){return!!e&&t!=null&&e.source===t&&e.origin===r&&e.data?.channel===hR&&typeof e.data.type=="string"}async function g2e(e){let t=await fetch(e);if(!t.ok)throw new Error(`Could not load the browser recording (HTTP ${t.status})`);return t.json()}var h2e="the session player did not start",y2e={loading:"loading the browser recording\u2026",empty:"this recording has too few browser events to replay",truncated:"showing the start of a long recording"};function A3({recordings:e,time:t,sessionStartMs:r,playing:n,speed:o,seekVersion:a}){let i=(0,uo.useRef)(null),s=(0,uo.useRef)(null),[l,u]=(0,uo.useState)(!1),[c,d]=(0,uo.useState)(!1),[p,f]=(0,uo.useState)(null),[m,y]=(0,uo.useState)({state:"loading"}),b=dR(e,t),g=b?.id,h=p!==null&&p===s.current,v=b?pR(b,t):null,x=(w,_)=>{i.current?.contentWindow?.postMessage(xR(w,_),window.location.origin)};(0,uo.useEffect)(()=>{let w=_=>{if(!bR(_,i.current?.contentWindow,window.location.origin))return;let{type:A}=_.data;A==="ready"?d(!0):A==="loaded"?f(_.data.token):A==="error"&&y({state:"error",message:_.data.message})};return window.addEventListener("message",w),()=>window.removeEventListener("message",w)},[]),(0,uo.useEffect)(()=>{if(!l||c)return;let w=setTimeout(()=>y({state:"error",message:h2e}),5e3);return()=>clearTimeout(w)},[l,c]),(0,uo.useEffect)(()=>{if(!c||g==null)return;let w=!1,_=[],A=`${g}:${Date.now()}`;return s.current=A,f(null),y({state:"loading"}),mR(g,{fetchPage:g2e,isCancelled:()=>w,onEvents:C=>{if(_===null){x("append",{events:C});return}_=_.concat(C),!(_.length<2)&&(x("load",{events:_,token:A}),_=null)}}).then(({truncated:C})=>{w||y(_!==null?{state:"empty"}:{state:C?"truncated":"ready"})}).catch(C=>{w||y({state:"error",message:C.message})}),()=>{w=!0}},[c,g]);let S=v?.phase;(0,uo.useEffect)(()=>{!h||!v||x("seek",{offset:v.offsetMs,playing:n&&S==="during"})},[h,a,n,S]),(0,uo.useEffect)(()=>{h&&x("speed",{speed:o})},[h,o]);let k=m.state==="error"?m.message:S==="before"?`the browser recording starts at ${zh(b.startMs-r)}`:y2e[m.state];return uo.default.createElement("div",{"data-testid":"replay-browser",style:{display:"flex",flexDirection:"column",gap:8}},uo.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10}},uo.default.createElement(Ue,null,"browser"),b&&uo.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},b.name||`recording ${b.id}`,e.length>1?` \xB7 ${e.indexOf(b)+1} of ${e.length}`:""),k&&uo.default.createElement("span",{style:{marginLeft:"auto",fontFamily:W,fontSize:11,color:m.state==="error"?"var(--color-error-text)":"var(--color-text-muted)"}},k)),uo.default.createElement("iframe",{ref:i,title:"Browser recording",src:Re(yR),sandbox:vR,referrerPolicy:"no-referrer",onLoad:()=>u(!0),style:{width:"100%",height:480,border:"1px solid var(--color-border-light)",borderRadius:10,background:"var(--color-background)",opacity:S==="before"?.4:1}}))}var Oa=Z(Q());function E3(e){let[t,r]=(0,Oa.useState)(0),[n,o]=(0,Oa.useState)(!1),[a,i]=(0,Oa.useState)(1),[s,l]=(0,Oa.useState)(0),u=(0,Oa.useRef)(0),c=(0,Oa.useRef)(0),d=(0,Oa.useCallback)((y,b)=>{let g=Math.min(Math.max(y,0),e.totalMs),h=uR(e,g);return u.current=g,r(g),(b||h!==c.current)&&l(v=>v+1),c.current=h,g},[e]);(0,Oa.useEffect)(()=>{if(!n)return;let y=null,b=performance.now(),g=h=>{let v=d(u.current+(h-b)*a,!1);if(b=h,v>=e.totalMs){o(!1);return}y=requestAnimationFrame(g)};return y=requestAnimationFrame(g),()=>cancelAnimationFrame(y)},[n,a,e,d]);let p=(0,Oa.useCallback)(y=>d(y,!0),[d]),f=(0,Oa.useCallback)(()=>{!n&&u.current>=e.totalMs&&d(0,!0),o(!n)},[n,e,d]),m=(0,Oa.useCallback)(()=>o(!1),[]);return{position:t,playing:n,speed:a,seekVersion:s,seek:p,togglePlay:f,pause:m,setSpeed:i}}var v2e=[.5,1,2,4,8,16],x2e={context:"Conversation",run:"Run",scenario_result:"Evaluation replay",recording:"Recording"};function b2e(e,t){let r=encodeURIComponent(t);return e==="recording"?`/api/session_recordings/${r}/timeline`:`/api/sessions/${e}/${r}/timeline`}function w2e(e){return e.reduce((t,r)=>({...t,[r.lane]:(t[r.lane]||0)+1}),{})}function S2e({kind:e,id:t,timeline:r,onBack:n,handoff:o}){let a=(0,ht.useMemo)(()=>nR(r.lanes),[r]),i=(0,ht.useMemo)(()=>oR(r.recordings),[r]),s=(0,ht.useMemo)(()=>iR(aR(a,i)),[a,i]),l=E3(s),{seek:u,pause:c}=l,[d,p]=(0,ht.useState)(()=>new Set(w3)),[f,m]=(0,ht.useState)(null),y=lR(s,l.position)??s.startMs,b=(0,ht.useMemo)(()=>a.filter(N=>d.has(N.lane)),[a,d]),g=a[S3(a,y)]||null,h=b[S3(b,y)]?.id??null,v=a.find(N=>N.id===f)||g,x=(0,ht.useMemo)(()=>w2e(a),[a]),S=(0,ht.useCallback)(N=>{c(),m(N.id),u(vd(s,N.startMs))},[s,c,u]),k=N=>{let L=cR(b,y,N);L!==null&&(c(),m(null),u(vd(s,L)))},w=()=>{m(null),l.togglePlay()},_=N=>p(L=>{let J=new Set(L);return J.has(N)?J.delete(N):J.add(N),J}),A=r.session||{},C=a.length===0&&i.length===0;return ht.default.createElement("div",{"data-testid":"session-replay",style:{display:"flex",flexDirection:"column",gap:16,maxWidth:1400}},ht.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:12,flexWrap:"wrap"}},ht.default.createElement("div",{style:{minWidth:0}},ht.default.createElement(ce,{variant:"ghost",size:"sm",onClick:n,style:{padding:"2px 0",marginBottom:6}},"<- Sessions"),ht.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},x2e[e]||"Session"," #",t),ht.default.createElement("div",{style:{marginTop:4,display:"flex",gap:12,flexWrap:"wrap",fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},A.started_at&&ht.default.createElement("span",{title:A.started_at},"started ",new Date(A.started_at).toLocaleString()),s.startMs!==null&&ht.default.createElement("span",null,iA(s.endMs-s.startMs)," long"),ht.default.createElement("span",null,x.message||0," messages \xB7 ",x.llm||0," model calls \xB7 ",x.tool||0," tool calls"),i.length>0&&ht.default.createElement("span",null,"browser recorded"))),ht.default.createElement("div",{style:{marginLeft:"auto",display:"flex",gap:8,alignItems:"center"}},A.truncated&&ht.default.createElement(ke,{tone:"warning",title:"Each lane holds its earliest 2,000 entries"},"truncated"),o)),C?ht.default.createElement(je,{testId:"replay-empty"},ht.default.createElement("div",{style:{fontSize:14,color:"var(--color-text-primary)"}},"Nothing to replay yet."),ht.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)",marginTop:6}},"This session has no messages, model calls, tool calls or browser events.")):ht.default.createElement(ht.default.Fragment,null,ht.default.createElement(je,{padding:14,style:{display:"flex",flexDirection:"column",gap:12}},ht.default.createElement("div",{"data-testid":"replay-controls",style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},ht.default.createElement(ce,{size:"sm",testId:"replay-step-back",title:"Previous entry",onClick:()=>k(-1)},"|<"),ht.default.createElement(ce,{size:"sm",variant:"primary",testId:"replay-play",onClick:w,style:{minWidth:72}},l.playing?"Pause":"Play"),ht.default.createElement(ce,{size:"sm",testId:"replay-step-forward",title:"Next entry",onClick:()=>k(1)},">|"),ht.default.createElement("select",{"aria-label":"Playback speed",value:l.speed,onChange:N=>l.setSpeed(Number(N.target.value)),style:{padding:"6px 8px",borderRadius:8,fontFamily:W,fontSize:12,background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"}},v2e.map(N=>ht.default.createElement("option",{key:N,value:N},N,"x"))),ht.default.createElement("span",{"data-testid":"replay-clock",style:{marginLeft:8,fontFamily:W,fontSize:12,color:"var(--color-text-primary)"}},zh(y-s.startMs)),ht.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)"},title:"Idle stretches longer than 10 seconds play as one second"},Number.isFinite(y)?new Date(y).toLocaleTimeString():"")),ht.default.createElement(_3,{axis:s,entries:a,recordings:i,position:l.position,onSeek:u})),ht.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 3fr) minmax(0, 2fr)",gap:16,alignItems:"start"}},ht.default.createElement(je,{padding:0,style:{overflow:"hidden"}},ht.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"10px 12px",borderBottom:"1px solid var(--color-border-light)",flexWrap:"wrap"}},ht.default.createElement(Ue,{style:{marginRight:6}},"timeline"),Uu.map(N=>ht.default.createElement(jn,{key:N.lane,mono:!0,selected:d.has(N.lane),onClick:()=>_(N.lane)},N.label," ",x[N.lane]||0))),ht.default.createElement(gR,{entries:b,startMs:s.startMs,currentId:h,selectedId:f,playing:l.playing,onChoose:S})),ht.default.createElement(je,{padding:0},ht.default.createElement(C3,{entry:v}))),i.length>0&&ht.default.createElement(je,{padding:14},ht.default.createElement(A3,{recordings:i,time:y,sessionStartMs:s.startMs,playing:l.playing,speed:l.speed,seekVersion:l.seekVersion}))))}function N3({kind:e,id:t,onBack:r,onHandoff:n}){let[o,a]=(0,ht.useState)({status:"loading"}),[i,s]=(0,ht.useState)(!1);(0,ht.useEffect)(()=>{let c=!1;return a({status:"loading"}),fetch(b2e(e,t)).then(async d=>{if(c)return;if(d.status===404)return a({status:"missing"});let p=await d.json().catch(()=>({}));return d.ok?a({status:"ready",timeline:p.timeline||{}}):a({status:"error",message:p.error||`Could not load this session (HTTP ${d.status})`})}).catch(()=>{c||a({status:"error",message:"Could not load this session: the request did not complete"})}),e==="recording"&&fetch(`/api/session_recordings/${encodeURIComponent(t)}`).then(d=>d.ok?d.json():null).then(d=>{c||s(!!d?.recording?.handoff_state)}).catch(()=>{}),()=>{c=!0}},[e,t]);let l=async()=>{let c=await fetch(`/api/session_recordings/${encodeURIComponent(t)}/handoff`,{method:"POST",headers:{"Content-Type":"application/json"}});c.ok&&n?.(await c.json())};if(o.status==="ready")return ht.default.createElement(S2e,{kind:e,id:t,timeline:o.timeline,onBack:r,handoff:i&&ht.default.createElement(ce,{size:"sm",variant:"primary",testId:"replay-take-over",onClick:l},"Take over session")});let u=o.status==="loading"?"loading the session\u2026":o.status==="missing"?"This session does not exist, or you cannot open it.":o.message;return ht.default.createElement("div",{"data-testid":"session-replay",style:{display:"flex",flexDirection:"column",gap:12,maxWidth:1400}},ht.default.createElement(ce,{variant:"ghost",size:"sm",onClick:r,style:{padding:"2px 0",alignSelf:"flex-start"}},"<- Sessions"),ht.default.createElement(je,{testId:`replay-${o.status}`},ht.default.createElement("div",{style:{fontSize:13,color:o.status==="loading"?"var(--color-text-muted)":"var(--color-text-primary)"}},u)))}var dt=Z(Q());function wR(){let e=0,t=r=>()=>r===e;return{next:()=>t(++e),latest:()=>t(e)}}var O3=[{value:"",label:"Every source"},{value:"dashboard",label:"Dashboard conversations"},{value:"evaluation",label:"Evaluation replays"},{value:"agent",label:"Agent browsers"}],P3=[{value:"",label:"Any outcome"},{value:"failed",label:"Failed or errored"},{value:"passed",label:"Passed"}],ab=Object.freeze({agentId:"",user:"",source:"",outcome:"",from:"",to:""}),kR={agentId:"agent_id",user:"user",source:"source",outcome:"outcome",from:"from",to:"to"},T3=/^(\d{4})-(\d{2})-(\d{2})$/,k2e={agentId:e=>/^\d+$/.test(e),user:e=>e==="me",source:e=>O3.some(t=>t.value&&t.value===e),outcome:e=>P3.some(t=>t.value&&t.value===e),from:e=>T3.test(e),to:e=>T3.test(e)};function sA(e={}){let t={...ab};for(let r of Object.keys(ab)){let n=String(e[r]??"");n&&k2e[r](n)&&(t[r]=n)}return t}function M3(e={}){return Object.values(sA(e)).some(Boolean)}function _R(e=""){let t=new URLSearchParams(e),r={};for(let[n,o]of Object.entries(kR))r[n]=t.get(o)||"";return sA(r)}function CR(e={}){let t=new URLSearchParams,r=sA(e);for(let[o,a]of Object.entries(kR))r[o]&&t.set(a,r[o]);let n=t.toString();return n?`?${n}`:""}function SR(e,t=0){let[,r,n,o]=e.match(T3);return new Date(Number(r),Number(n)-1,Number(o)+t).toISOString()}var AR=Object.freeze({openedFromSessions:!0});function ER(e){return e?.openedFromSessions===!0}function NR(e={},{before:t=null,perPage:r=25}={}){let n=sA(e),o=new URLSearchParams;return n.agentId&&o.set("agent_id",n.agentId),n.user&&o.set("user",n.user),n.source&&o.set("source",n.source),n.outcome&&o.set("outcome",n.outcome),n.from&&o.set("from",SR(n.from)),n.to&&o.set("to",SR(n.to,1)),o.set("per_page",String(r)),t&&o.set("before",t),`/api/sessions?${o}`}var TR={dashboard:{tone:"info",label:"conversation"},evaluation:{tone:"muted",label:"evaluation"},agent:{tone:"muted",label:"browser"}},_2e={failed:"error",passed:"success"},Fh={padding:"7px 10px",borderRadius:8,fontSize:13,fontFamily:"inherit",boxSizing:"border-box",background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"};async function OR(e,t){let r=await fetch(NR(e,{before:t})),n=await r.json().catch(()=>({}));if(!r.ok)throw new Error(n.error||`Could not load sessions (HTTP ${r.status})`);return n}function C2e(e){let t=[];return e.kind==="context"&&(t.push(`${e.message_count} message${e.message_count===1?"":"s"}`),e.recording_count&&t.push("browser recorded")),e.kind==="scenario_result"&&(e.evaluation?.name&&t.push(e.evaluation.name),e.model&&t.push(e.model)),e.kind==="recording"&&(t.push(`${e.event_count||0} events`),e.action_count&&t.push(`${e.action_count} actions`)),t.join(" \xB7 ")}function A2e({filters:e,onChange:t,agents:r,user:n}){let o=a=>i=>t({...e,[a]:i.target.value});return dt.default.createElement("div",{"data-testid":"sessions-filters",style:{display:"flex",gap:8,flexWrap:"wrap",alignItems:"center"}},dt.default.createElement("select",{"aria-label":"Agent",value:e.agentId,onChange:o("agentId"),style:Fh},dt.default.createElement("option",{value:""},"Every agent"),r.map(a=>dt.default.createElement("option",{key:a.id,value:String(a.id)},a.name))),n?.id!=null&&dt.default.createElement("select",{"aria-label":"Run by",value:e.user,onChange:o("user"),style:Fh},dt.default.createElement("option",{value:""},"Run by anyone"),dt.default.createElement("option",{value:"me"},"Run by me")),dt.default.createElement("select",{"aria-label":"Source",value:e.source,onChange:o("source"),style:Fh},O3.map(a=>dt.default.createElement("option",{key:a.value,value:a.value},a.label))),dt.default.createElement("select",{"aria-label":"Outcome",value:e.outcome,onChange:o("outcome"),style:Fh},P3.map(a=>dt.default.createElement("option",{key:a.value,value:a.value},a.label))),dt.default.createElement("label",{style:{display:"flex",alignItems:"center",gap:6,fontSize:12,color:"var(--color-text-secondary)"}},"From",dt.default.createElement("input",{type:"date","aria-label":"Active from",value:e.from,max:e.to||void 0,onChange:o("from"),style:Fh})),dt.default.createElement("label",{style:{display:"flex",alignItems:"center",gap:6,fontSize:12,color:"var(--color-text-secondary)"}},"To",dt.default.createElement("input",{type:"date","aria-label":"Active until",value:e.to,min:e.from||void 0,onChange:o("to"),style:Fh})),M3(e)&&dt.default.createElement(ce,{variant:"ghost",size:"sm",testId:"sessions-clear-filters",onClick:()=>t(ab)},"Clear filters"))}function E2e({session:e}){let t=dh(e.kind,e.id),r=TR[e.source]||TR.agent,n=C2e(e);return dt.default.createElement("a",{href:Re(t),"data-testid":"session-row",onClick:o=>{o.metaKey||o.ctrlKey||o.shiftKey||o.button!==0||(o.preventDefault(),lt(t,AR))},style:{display:"flex",alignItems:"center",gap:12,padding:"12px 16px",textDecoration:"none",borderTop:"1px solid var(--color-border-light)",color:"inherit"}},dt.default.createElement(ke,{tone:r.tone,style:{width:92,justifyContent:"center"}},r.label),dt.default.createElement("div",{style:{minWidth:0,flex:1}},dt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,minWidth:0}},dt.default.createElement("span",{style:{fontFamily:W,fontSize:13,fontWeight:600,color:"var(--color-text-primary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},e.title),e.agent&&dt.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)",whiteSpace:"nowrap"}},e.agent.name)),e.preview&&dt.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-cell)",marginTop:2,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},e.preview),n&&dt.default.createElement("div",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)",marginTop:2}},n)),e.outcome&&dt.default.createElement(ke,{tone:_2e[e.outcome]||"muted"},e.outcome),dt.default.createElement("span",{title:e.last_activity_at,style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)",width:96,textAlign:"right",flexShrink:0}},wo(e.last_activity_at)),dt.default.createElement("span",{style:{fontFamily:W,fontSize:12,color:"var(--color-info)",flexShrink:0}},"replay ->"))}function I3({agents:e=[],user:t=null}){let[r,n]=(0,dt.useState)(()=>_R(window.location.search)),[o,a]=(0,dt.useState)({sessions:[],total:0,nextBefore:null}),[i,s]=(0,dt.useState)("loading"),[l,u]=(0,dt.useState)(null),[c,d]=(0,dt.useState)(!1),[p,f]=(0,dt.useState)(null),[m,y]=(0,dt.useState)(0),[b]=(0,dt.useState)(wR);(0,dt.useEffect)(()=>{window.history.replaceState(window.history.state,"",`${window.location.pathname}${CR(r)}`);let v=b.next();return s("loading"),d(!1),f(null),OR(r,null).then(x=>{v()&&(a({sessions:x.sessions||[],total:x.total||0,nextBefore:x.next_before||null}),s("ready"))}).catch(x=>{v()&&(u(x.message),s("error"))}),()=>{b.next()}},[r,m]);let g=async()=>{let v=b.latest();d(!0),f(null);try{let x=await OR(r,o.nextBefore);if(!v())return;a(S=>({sessions:[...S.sessions,...x.sessions||[]],total:x.total??S.total,nextBefore:x.next_before||null}))}catch(x){v()&&f(x.message)}finally{v()&&d(!1)}},h=M3(r);return dt.default.createElement("div",{"data-testid":"sessions-view",style:{display:"flex",flexDirection:"column",gap:16,maxWidth:1200}},dt.default.createElement("div",{style:{display:"flex",alignItems:"baseline",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},dt.default.createElement("div",null,dt.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Sessions"),dt.default.createElement("p",{style:{margin:"4px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},"Replay what an agent did: its messages, model calls and tool calls, and its browser when one was recorded.")),i==="ready"&&dt.default.createElement(Ue,null,o.total," session",o.total===1?"":"s")),dt.default.createElement(A2e,{filters:r,onChange:n,agents:e,user:t}),dt.default.createElement(je,{padding:0,testId:"sessions-list",style:{overflow:"hidden"}},i==="loading"&&dt.default.createElement(Jr,null,"loading sessions\u2026"),i==="error"&&dt.default.createElement("div",{style:{padding:20,display:"flex",alignItems:"center",gap:12,color:"var(--color-error-text)",fontSize:13}},l,dt.default.createElement(ce,{size:"sm",onClick:()=>y(v=>v+1)},"Retry")),i==="ready"&&o.sessions.length===0&&dt.default.createElement("div",{"data-testid":"sessions-empty",style:{padding:"32px 20px",textAlign:"center"}},h?dt.default.createElement(dt.default.Fragment,null,dt.default.createElement("div",{style:{fontSize:14,color:"var(--color-text-primary)"}},"No sessions match these filters."),dt.default.createElement(ce,{variant:"secondary",size:"sm",style:{marginTop:12},onClick:()=>n(ab)},"Clear filters")):dt.default.createElement(dt.default.Fragment,null,dt.default.createElement("div",{style:{fontSize:14,color:"var(--color-text-primary)"}},"No sessions yet."),dt.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)",marginTop:6}},"Every conversation in an agent's Run workbench and every evaluation replay appears here, ready to replay."))),i==="ready"&&o.sessions.map(v=>dt.default.createElement(E2e,{key:`${v.kind}-${v.id}`,session:v}))),i==="ready"&&o.nextBefore&&dt.default.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",gap:12}},p&&dt.default.createElement("span",{"data-testid":"sessions-load-more-error",role:"alert",style:{fontSize:13,color:"var(--color-error-text)"}},p),dt.default.createElement(ce,{size:"sm",testId:"sessions-load-more",onClick:g,disabled:c},c?"Loading\u2026":p?"Try again":"Load more")))}var Te=Z(Q());var qt=Z(Q());var N2e={personal:"Your key",host_resolver:"Organization key",organization:"Organization key",config:"Platform default",none:"Not configured"};function PR(e){return N2e[e]||null}function lA(e,t){return t?`${e}?scope=${encodeURIComponent(t)}`:e}function MR({set_by:e,updated_at:t}={},r=n=>new Date(n).toLocaleDateString()){let n=[];return e?.name&&n.push(`Set by ${e.name}`),t&&n.push(`${n.length?"updated":"Updated"} ${r(t)}`),n.length?n.join(" \xB7 "):null}var T2e="Setting your own host needs permission to manage the organization's keys.";function IR({editable:e=!0,scope:t,row:r={}}){let n=t==="personal"&&r.editable===!1;return{canChange:e&&!n,canRemove:e&&!!r.configured,note:e&&n&&r.host_based?T2e:null}}var jR={openai:{label:"OpenAI",icon:"\u{1F916}",placeholder:"sk-\u2026"},anthropic:{label:"Anthropic",icon:"\u{1F9E0}",placeholder:"sk-ant-\u2026"},openrouter:{label:"OpenRouter",icon:"\u{1F500}",placeholder:"sk-or-\u2026"},ollama:{label:"Ollama",icon:"\u{1F999}",placeholder:"http://localhost:11434/v1"}};function uA({onKeysChanged:e,onError:t,scope:r}){let[n,o]=(0,qt.useState)(null),[a,i]=(0,qt.useState)(""),[s,l]=(0,qt.useState)(""),[u,c]=(0,qt.useState)(!1),[d,p]=(0,qt.useState)({}),[f,m]=(0,qt.useState)(null);return{editingProvider:n,setEditingProvider:o,providerInput:a,setProviderInput:i,providerApiKeyInput:s,setProviderApiKeyInput:l,savingProvider:u,testResults:d,testingProvider:f,saveProviderKey:async(h,{hostBased:v=!1,clearApiKey:x=!1}={})=>{if(!(!a.trim()||u)){c(!0),t(null);try{let S={provider:h,credential:a.trim()};r&&(S.scope=r),v&&(s.trim()||x)&&(S.api_key=x?"":s.trim());let k=await fetch("/api/provider_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(S)});if(!k.ok){let w=await k.json().catch(()=>({}));throw new Error(Array.isArray(w.error)?w.error.join(", "):"save failed")}o(null),i(""),l(""),p(w=>({...w,[h]:null})),vT(),await e()}catch(S){t(`Could not save the ${jR[h]?.label||h} credential${S.message!=="save failed"?`: ${S.message}`:"."}`)}finally{c(!1)}}},testProviderHost:async(h,{editing:v=!1}={})=>{if(!f){m(h),t(null);try{let x={provider:h};r&&(x.scope=r),v&&(a.trim()&&(x.credential=a.trim()),s.trim()&&(x.api_key=s.trim()));let S=await fetch("/api/provider_keys/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(x)}),k=await S.json().catch(()=>({}));if(!S.ok)throw new Error(k.error||"test failed");p(w=>({...w,[h]:k}))}catch(x){p(S=>({...S,[h]:{ok:!1,models:[],error:x.message}}))}finally{m(null)}}},removeProviderKey:async h=>{if(await Wr(r==="personal"?{title:"Remove your key?",message:"Your runs will use the organization's key, or the platform default.",confirmLabel:"Remove key",danger:!0}:{title:"Remove this provider credential?",message:"Runs fall back to the platform default credentials, or fail until a key is configured.",confirmLabel:"Remove credential",danger:!0}))try{if(!(await fetch(lA(`/api/provider_keys/${h}`,r),{method:"DELETE"})).ok)throw new Error("delete failed");p(S=>({...S,[h]:null})),vT(),await e()}catch{t("Could not remove the provider credential.")}}}}var DR={default:{title:"Provider API Keys",description:"Configure your own LLM provider credentials. Agent runs and evaluations on this account use these instead of the platform defaults. Keys are encrypted at rest."},organization:{title:"Provider Keys",description:"Shared by everyone in this organization. Agent runs and evaluations use these instead of the platform defaults. Keys are encrypted at rest."},personal:{title:"Your Provider Keys",description:"Your own credentials, used by the runs you start. Where you have none, the organization's key applies. Keys are encrypted at rest."}};function ib({providerKeys:e,editor:t,scope:r,editable:n=!0}){let{darkMode:o}=ut(),{editingProvider:a,setEditingProvider:i,providerInput:s,setProviderInput:l,providerApiKeyInput:u,setProviderApiKeyInput:c,savingProvider:d,testResults:p,testingProvider:f,saveProviderKey:m,testProviderHost:y,removeProviderKey:b}=t,g={backgroundColor:o?"#1f1f1f":"#ffffff",borderColor:o?"#2a2a2a":"#e5e7eb"},h=DR[r]||DR.default;return qt.default.createElement("div",{className:"border rounded-lg p-6",style:g},qt.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${o?"text-white":"text-gray-900"}`},h.title),qt.default.createElement("p",{className:`text-sm mb-4 ${o?"text-gray-400":"text-gray-500"}`},h.description),!n&&qt.default.createElement("p",{className:`text-sm mb-4 ${o?"text-gray-500":"text-gray-400"}`},"You can see these keys but not change them."),qt.default.createElement("div",{className:"space-y-4"},e.filter(({kind:v})=>v!=="connection").map(v=>{let{provider:x,host_based:S,configured:k,hint:w,api_key_configured:_,api_key_hint:A,platform_default:C}=v,N=jR[x]||{label:x,icon:"\u{1F511}",placeholder:""},L=a===x,J=p[x],B=f===x,K=S&&(L?s.trim():k||C),T=k?S?`${w}${_?` \xB7 key ${A}`:""}`:`Configured (${w})`:S&&C?`Platform default: ${C}`:"Not configured",P=r==="personal"?PR(v.effective_source):null,{canChange:I,canRemove:M,note:j}=IR({editable:n,scope:r,row:v}),O=r==="organization"&&k?MR(v):null;return qt.default.createElement("div",{key:x,className:"p-4 rounded-lg",style:{backgroundColor:o?"#252525":"#f9fafb"}},qt.default.createElement("div",{className:"flex items-center justify-between"},qt.default.createElement("div",{className:"flex items-center space-x-3"},qt.default.createElement("span",{className:"text-xl"},N.icon),qt.default.createElement("div",null,qt.default.createElement("p",{className:`font-medium ${o?"text-white":"text-gray-900"}`},N.label),qt.default.createElement("p",{className:`text-sm ${k?o?"text-green-400":"text-green-600":o?"text-gray-400":"text-gray-500"}`},T),O&&qt.default.createElement("p",{className:`text-xs ${o?"text-gray-500":"text-gray-400"}`,"data-testid":"provider-key-audit"},O)),P&&qt.default.createElement("span",{className:`px-2 py-0.5 rounded text-xs ${o?"bg-gray-700 text-gray-200":"bg-gray-200 text-gray-700"}`,"data-testid":"provider-key-source"},P)),(I||M)&&qt.default.createElement("div",{className:"flex items-center space-x-2"},I&&S&&!L&&K&&qt.default.createElement("button",{onClick:()=>y(x),disabled:B,className:`px-3 py-1 text-sm rounded disabled:opacity-50 ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},B?"Testing\u2026":"Test connection"),M&&!L&&qt.default.createElement("button",{onClick:()=>b(x),className:`px-3 py-1 text-sm rounded ${o?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},"Remove"),I&&qt.default.createElement("button",{onClick:()=>{i(L?null:x),l(!L&&S&&k?w:""),c("")},className:`px-3 py-1 text-sm rounded ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},L?"Cancel":k?"Update":"Configure"))),j&&qt.default.createElement("p",{className:`mt-2 text-xs ${o?"text-gray-500":"text-gray-400"}`,"data-testid":"provider-key-locked"},j),L&&qt.default.createElement("div",{className:"mt-3 space-y-2"},qt.default.createElement("div",{className:"flex items-center space-x-2"},qt.default.createElement("input",{type:S?"text":"password","data-aa-secret":S?void 0:"",value:s,onChange:F=>l(F.target.value),onKeyDown:F=>F.key==="Enter"&&m(x,{hostBased:S}),placeholder:S?N.placeholder:`${N.label} API key (${N.placeholder})`,"aria-label":S?`${N.label} host URL`:`${N.label} API key`,autoFocus:!0,className:`flex-1 px-3 py-2 border rounded-lg text-sm font-mono ${o?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),S&&qt.default.createElement("button",{onClick:()=>y(x,{editing:!0}),disabled:!s.trim()||B,className:`px-3 py-2 text-sm rounded-lg disabled:opacity-50 ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},B?"Testing\u2026":"Test"),qt.default.createElement("button",{onClick:()=>m(x,{hostBased:S}),disabled:!s.trim()||d,className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 disabled:opacity-50 text-sm"},d?"Saving\u2026":"Save")),S&&qt.default.createElement("div",{className:"flex items-center space-x-2"},qt.default.createElement("input",{type:"password","data-aa-secret":"",value:u,onChange:F=>c(F.target.value),onKeyDown:F=>F.key==="Enter"&&m(x,{hostBased:S}),placeholder:_?`API key (stored: ${A} \u2014 type to replace)`:"API key (optional \u2014 only for remote servers that require one)","aria-label":`${N.label} API key`,className:`flex-1 px-3 py-2 border rounded-lg text-sm font-mono ${o?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),_&&qt.default.createElement("button",{onClick:()=>m(x,{hostBased:S,clearApiKey:!0}),disabled:!s.trim()||d,className:`px-3 py-2 text-sm rounded-lg disabled:opacity-50 ${o?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},"Clear key"))),S&&L&&qt.default.createElement("p",{className:`mt-2 text-xs ${o?"text-gray-500":"text-gray-400"}`},"Your Ollama server's address \u2014 the OpenAI-compatible /v1 path is added if you leave it off. Local: http://localhost:11434. Remote: a LAN host, a tunnel URL, or Ollama Cloud (https://ollama.com), which needs an API key. Test lists the models the server currently serves."),S&&J&&qt.default.createElement("div",{className:"mt-2 text-xs rounded-lg px-3 py-2",role:"status",style:{backgroundColor:J.ok?o?"rgba(74,222,128,0.1)":"#ecfdf5":o?"rgba(248,113,113,0.1)":"#fef2f2",color:J.ok?o?"#4ade80":"#047857":o?"#f87171":"#b91c1c"}},J.ok?qt.default.createElement(qt.default.Fragment,null,qt.default.createElement("span",{className:"font-medium"},"Connected")," ","to ",J.host,typeof J.latency_ms=="number"?` in ${J.latency_ms} ms`:""," \xB7 ",J.models.length===0?"no models pulled yet (run `ollama pull ` on the server)":`${J.models.length} model${J.models.length===1?"":"s"}`,J.models.length>0&&qt.default.createElement("span",{className:"block mt-1 font-mono",style:{color:o?"#d1d5db":"#374151"}},J.models.join(" \xB7 "))):qt.default.createElement(qt.default.Fragment,null,qt.default.createElement("span",{className:"font-medium"},"Not reachable.")," ",J.error)))})))}async function $R(e=fetch){let t=await e("/api/telemetry_key",{cache:"no-store"});if(!t.ok)throw new Error(`Could not load the telemetry key (HTTP ${t.status})`);return(await t.json().catch(()=>null))?.telemetry_api_key||null}var cA=e=>e==null?"0":e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString();function D3({account:e,user:t,subscription:r,agentCount:n=0}){let{darkMode:o}=ut(),[a,i]=(0,Te.useState)(null),[s,l]=(0,Te.useState)(!1),[u,c]=(0,Te.useState)(!1),[d,p]=(0,Te.useState)({status:"idle",value:null,error:null}),[f,m]=(0,Te.useState)(!1),[y,b]=(0,Te.useState)(null),[g,h]=(0,Te.useState)(null),[v,x]=(0,Te.useState)([]),[S,k]=(0,Te.useState)(!1),[w,_]=(0,Te.useState)(null),A=window.ACTIVE_AGENT_DASHBOARD?.meta?.memberInviteUrl;(0,Te.useEffect)(()=>{fetch("/api/usage").then(O=>O.ok?O.json():null).then(O=>i(O?.usage||null)).catch(()=>i(null)),fetch("/api/members").then(O=>O.ok?O.json():null).then(O=>h(O?.members||[])).catch(()=>h([]))},[]);let C=(0,Te.useCallback)(async()=>{try{let O=await fetch("/api/provider_keys?scope=organization");if(!O.ok)throw new Error("load failed");let F=await O.json();x(F.provider_keys||[]),k(!!F.can_manage_organization_keys),_(null)}catch{_("Could not load the organization's provider keys.")}},[]);(0,Te.useEffect)(()=>{C()},[C]);let N=uA({onKeysChanged:C,onError:_,scope:"organization"}),L=async()=>{m(!0),b(null);try{await Ph({planSlug:"pro"})}catch(O){b(O.message),m(!1)}},J=async()=>{if(d.status==="ready")return d.value;p({status:"loading",value:null,error:null});try{let O=await $R();return p({status:"ready",value:O,error:null}),O}catch(O){return p({status:"error",value:null,error:O.message}),null}},B=async()=>{u?c(!1):await J()&&c(!0)},K=async()=>{let O=await J();if(O)try{await navigator.clipboard.writeText(O),l(!0),setTimeout(()=>l(!1),2e3)}catch{}},T=d.status==="ready"&&!d.value,P={backgroundColor:o?"#1f1f1f":"#ffffff",borderColor:o?"#2a2a2a":"#e5e7eb"},I=r?.plan_name||"Free",M={free:{seats:1,workspaces:1,agents:3,traces:"250/mo trial"},pro:{seats:5,workspaces:3,agents:"Unlimited",traces:"25,000/mo"},enterprise:{seats:"Unlimited",workspaces:"Unlimited",agents:"Unlimited",traces:"500,000+/mo"}},j=M[I.toLowerCase()]||M.free;return Te.default.createElement("div",{className:"p-6 space-y-6"},Te.default.createElement("div",null,Te.default.createElement("h2",{className:`text-2xl font-bold ${o?"text-white":"text-gray-900"}`},"Organization"),Te.default.createElement("p",{className:`mt-1 ${o?"text-gray-400":"text-gray-500"}`},"Manage your workspace, team, and billing")),Te.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6"},Te.default.createElement("div",{className:"border rounded-lg p-6",style:P},Te.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${o?"text-white":"text-gray-900"}`},"Workspace"),Te.default.createElement("div",{className:"space-y-3"},Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Name"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},e?.name||"My Workspace")),Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Owner"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},t?.email||"you@example.com")),Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Created"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},e?.created_at?new Date(e.created_at).toLocaleDateString():"Today")))),Te.default.createElement("div",{className:"border rounded-lg p-6",style:P},Te.default.createElement("div",{className:"flex items-center justify-between mb-4"},Te.default.createElement("h3",{className:`text-lg font-semibold ${o?"text-white":"text-gray-900"}`},"Current Plan"),Te.default.createElement("span",{className:"px-3 py-1 bg-red-100 text-red-700 rounded-full text-sm font-medium"},I)),Te.default.createElement("div",{className:"space-y-3"},Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Team Seats"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},j.seats)),Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Workspaces"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},j.workspaces)),Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Agents"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},j.agents)),Te.default.createElement("div",{className:"flex justify-between items-center"},Te.default.createElement("span",{className:o?"text-gray-400":"text-gray-500"},"Traces"),Te.default.createElement("span",{className:`font-medium ${o?"text-white":"text-gray-900"}`},j.traces))),I.toLowerCase()!=="enterprise"&&Te.default.createElement(Te.default.Fragment,null,Te.default.createElement("button",{onClick:L,disabled:f,className:"mt-4 w-full px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors disabled:opacity-50 disabled:cursor-not-allowed"},f?"Redirecting to checkout\u2026":"Upgrade Plan"),y&&Te.default.createElement("p",{className:"mt-2 text-sm text-red-500 text-center"},y)))),Te.default.createElement("div",{className:"border rounded-lg p-6",style:P},Te.default.createElement("div",{className:"flex items-center justify-between mb-4"},Te.default.createElement("h3",{className:`text-lg font-semibold ${o?"text-white":"text-gray-900"}`},"Team Members"),A&&Te.default.createElement("a",{href:A,className:"px-4 py-2 text-sm bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-colors"},"+ Invite Member")),Te.default.createElement("div",{className:"overflow-hidden"},Te.default.createElement("table",{className:"min-w-full"},Te.default.createElement("thead",null,Te.default.createElement("tr",{className:o?"border-b border-gray-700":"border-b border-gray-200"},Te.default.createElement("th",{className:`text-left py-3 px-4 text-sm font-medium ${o?"text-gray-400":"text-gray-500"}`},"Member"),Te.default.createElement("th",{className:`text-left py-3 px-4 text-sm font-medium ${o?"text-gray-400":"text-gray-500"}`},"Role"))),Te.default.createElement("tbody",null,(g||[]).map(O=>Te.default.createElement("tr",{key:O.id??O.email},Te.default.createElement("td",{className:"py-3 px-4"},Te.default.createElement("div",{className:"flex items-center space-x-3"},Te.default.createElement("div",{className:"w-8 h-8 bg-red-100 rounded-full flex items-center justify-center"},Te.default.createElement("span",{className:"text-red-600 font-medium text-sm"},(O.name||O.email||"?").charAt(0).toUpperCase())),Te.default.createElement("div",null,Te.default.createElement("p",{className:`font-medium ${o?"text-white":"text-gray-900"}`},O.name||O.email,O.id!=null&&O.id===t?.id&&Te.default.createElement("span",{className:`ml-2 text-xs ${o?"text-gray-500":"text-gray-400"}`},"(you)")),O.name&&O.email&&Te.default.createElement("p",{className:`text-sm ${o?"text-gray-400":"text-gray-500"}`},O.email)))),Te.default.createElement("td",{className:"py-3 px-4"},O.role?Te.default.createElement("span",{className:"px-2 py-1 bg-purple-100 text-purple-700 rounded text-sm"},String(O.role).charAt(0).toUpperCase()+String(O.role).slice(1)):Te.default.createElement("span",{className:o?"text-gray-500":"text-gray-400"},"\u2014")))))))),Te.default.createElement("div",{className:"space-y-2"},w&&Te.default.createElement("p",{className:"text-sm text-red-500",role:"alert"},w),Te.default.createElement(ib,{providerKeys:v,editor:N,scope:"organization",editable:S})),Te.default.createElement("div",{className:"border rounded-lg p-6",style:P},Te.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${o?"text-white":"text-gray-900"}`},"Usage This Month"),Te.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4"},Te.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:o?"#252525":"#f9fafb"}},Te.default.createElement("p",{className:`text-2xl font-bold ${o?"text-white":"text-gray-900"}`},n),Te.default.createElement("p",{className:`text-sm ${o?"text-gray-400":"text-gray-500"}`},"Agents")),Te.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:o?"#252525":"#f9fafb"}},Te.default.createElement("p",{className:`text-2xl font-bold ${o?"text-white":"text-gray-900"}`},cA(a?.traces_used),a?.traces_limit>0&&Te.default.createElement("span",{className:`text-sm font-normal ${o?"text-gray-500":"text-gray-400"}`}," / ",cA(a.traces_limit))),Te.default.createElement("p",{className:`text-sm ${o?"text-gray-400":"text-gray-500"}`},"Traces")),Te.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:o?"#252525":"#f9fafb"}},Te.default.createElement("p",{className:`text-2xl font-bold ${o?"text-white":"text-gray-900"}`},cA(a?.runs_used)),Te.default.createElement("p",{className:`text-sm ${o?"text-gray-400":"text-gray-500"}`},"Executions")),Te.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:o?"#252525":"#f9fafb"}},Te.default.createElement("p",{className:`text-2xl font-bold ${o?"text-white":"text-gray-900"}`},cA(a?.tokens_used)),Te.default.createElement("p",{className:`text-sm ${o?"text-gray-400":"text-gray-500"}`},"Tokens")))),Te.default.createElement("div",{className:"border rounded-lg p-6",style:P},Te.default.createElement("h3",{className:`text-lg font-semibold mb-1 ${o?"text-white":"text-gray-900"}`},"Telemetry"),Te.default.createElement("p",{className:`text-sm mb-4 ${o?"text-gray-400":"text-gray-500"}`},"Send traces from your own ActiveAgent app to this workspace. Add this to your"," ",Te.default.createElement("code",{className:`px-1 rounded text-xs ${o?"bg-gray-800 text-gray-300":"bg-gray-100 text-gray-700"}`},"config/active_agent.yml"),":"),Te.default.createElement("pre",{className:`text-xs rounded-lg p-4 overflow-x-auto mb-4 ${o?"bg-black text-gray-300":"bg-gray-900 text-gray-100"}`},`telemetry: enabled: true endpoint: ${window.location.origin}/v1/traces - api_key: <%= ENV["ACTIVEAGENTS_API_KEY"] %>`),Te.default.createElement("div",{className:"flex items-center justify-between gap-3"},Te.default.createElement("div",{className:"min-w-0 flex-1"},Te.default.createElement("p",{className:`text-xs uppercase tracking-wide mb-1 ${o?"text-gray-500":"text-gray-400"}`},"API Key"),Te.default.createElement("code",{"data-testid":"telemetry-key","data-aa-secret":"",className:`block truncate text-sm font-mono px-3 py-2 rounded-lg border ${o?"bg-gray-900 border-gray-700 text-gray-300":"bg-gray-50 border-gray-200 text-gray-700"}`},T?"Not available":u?d.value:"\u2022".repeat(24))),Te.default.createElement("div",{className:"flex gap-2 flex-shrink-0 self-end"},Te.default.createElement("button",{onClick:B,disabled:T||d.status==="loading",className:"px-3 py-2 text-sm bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-colors disabled:opacity-50 disabled:cursor-not-allowed"},u?"Hide":"Show"),Te.default.createElement("button",{onClick:K,disabled:T||d.status==="loading",className:"px-3 py-2 text-sm bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors disabled:opacity-50 disabled:cursor-not-allowed"},s?"Copied!":"Copy"))),d.error&&Te.default.createElement("p",{role:"alert",className:"mt-2 text-sm text-red-500"},d.error)))}var Oe=Z(J());var Ke=Z(J());var b2e=/^[A-Za-z_][A-Za-z0-9_]*$/,w2e=/^(?:PORT|DATABASE_URL|RUBYOPT|RUBYLIB|LD_PRELOAD|PATH|NODE_OPTIONS)$|_DATABASE_URL$|^ACTION_AGENT_SANDBOX_|^DYLD_|^BUNDLE_|^GIT_/,S2e={OPENAI_API_KEY:"openai",ANTHROPIC_API_KEY:"anthropic",OPENROUTER_API_KEY:"openrouter"},k2e=["sk_live_","rk_live_"],NR=8,TR=2e3;function cA(e){return e?b2e.test(e)?w2e.test(e)?`${e} is set by the sandbox or changes how code is loaded, so a project cannot set it.`:null:"Use letters, digits and _ only, not starting with a digit.":"Name the variable."}function dA(e,t){let r=[],n=typeof t=="string"?t:"";return k2e.some(o=>n.startsWith(o))&&r.push({code:"live_credential",message:"This looks like a live-mode key. A sandbox runs the repository's code with it: use a test-mode key."}),n.length>0&&n.lengthn.name));return e.map(n=>({name:n.name,required:!!n.required,sources:n.sources||[],description:n.description||null,organizationKey:n.organization_key||S2e[n.name]||null,set:r.has(n.name)||!!n.set,value:"",useOrganizationKey:!1,consent:!1}))}function OR(e,t){return[...e,...sb([{name:t}])]}function PR({name:e,edited:t,fullName:r}){return t?e:r}function lb(e){return e.flatMap(t=>t.useOrganizationKey?[{name:t.name,source:"organization_key",consent:t.consent===!0}]:t.value?[{name:t.name,value:t.value}]:[])}function Uh(e){for(let t of e){let r=cA(t.name);if(r&&(t.value||t.useOrganizationKey))return r;if(t.useOrganizationKey&&!t.consent)return`Confirm that ${t.name}'s organization key may be read by the repository's code.`}return null}function MR({github:e,repositories:t,reconnectRequired:r=!1,pendingApproval:n=!1}={}){return e?e.mode==="none"?"not_configured":e.connected?r?"reconnect_required":n?"pending_approval":t==null?"loading":t.length===0?"empty":"ready":"not_connected":"loading"}function I3(e){return/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/.test(e||"")}function _2e(e){return(e?.items||[]).filter(t=>t.blocking&&!t.ok)}function IR({capabilities:e,preflight:t,secretsProblem:r}={}){if(!e)return"Checking what this dashboard can do\u2026";let n=_2e(e);return n.length>0?`Fix first: ${n.map(o=>o.label).join(", ")}.`:t?t.status==="unsupported"?t.summary:r||null:"Pick a repository."}var pA={supported:"success",bootstrap:"info",unsupported:"error"};function DR(e){return e==="checkout"?"Checkout":e==="preflight"?"Preflight":e==="setup"?"Setup":/^bundle_/.test(e)?"Bundle":/^(add|install)_/.test(e)?"Install":/_build$/.test(e)?"Assets":e==="db_prepare"?"Database":e==="manifest"?"Manifest":e==="start"||e==="server"?"Start and start URL":"Step"}function jR(e){if(e==null||Number.isNaN(Number(e)))return"\u2014";let t=Number(e);if(t<1e3)return`${Math.round(t)}ms`;if(t<6e4)return`${(t/1e3).toFixed(1)}s`;let r=Math.floor(t/6e4),n=Math.round(t%6e4/1e3);return`${r}m ${String(n).padStart(2,"0")}s`}var $R={succeeded:"success",failed:"error",running:"info",skipped:"muted",pending:"muted"};function LR(e){return e?.sandbox_state==="booting"}function Sf(e){return e==null?"/projects/new":`/projects/${e}`}function ub(e=""){if(/^\/projects\/new\/?$/.test(e))return{creating:!0};let t=e.match(/^\/projects\/(\d+)/);return t?{projectId:t[1]}:{}}var zR=["overview","explorations","environment","browser","sessions"];function BR(e=""){let t=new URLSearchParams(e).get("tab");return zR.includes(t)?t:"overview"}function FR(e="",t="overview"){let r=new URLSearchParams(e);t==="overview"||!zR.includes(t)?r.delete("tab"):r.set("tab",t);let n=r.toString();return n?`?${n}`:""}function fA(e){if(!e?.project?.id)return null;let t=Sf(e.project.id);return e.browser?.status==="running"?`${t}?tab=browser`:t}function UR(e,t=[]){return e?.sandbox_state!=="ready"||!e.sandbox?.session_id||t.length===0?null:e.sandbox.browser?.status==="running"?{label:"Watch live",watch:!0}:{label:"Open browser",watch:!1}}var Mn=Z(J());function kf({sandbox:e,modes:t,watchOnOpen:r=!1,onChange:n}){let{darkMode:o}=ut(),[a,i]=(0,Mn.useState)(e.browser||null),[s,l]=(0,Mn.useState)(!1),[u,c]=(0,Mn.useState)(null),[d,p]=(0,Mn.useState)(null),f=`/api/sandboxes/${encodeURIComponent(e.session_id)}/browser`;(0,Mn.useEffect)(()=>{i(e.browser||null)},[e.browser?.status,e.browser?.started_at,e.browser?.live_url]);let m=async(_,A,C)=>{c(_),p(null);try{let N=await fetch(f,A),L=await N.json().catch(()=>({}));if(L.browser&&(i(L.browser),n?.(L.browser)),!N.ok)throw new Error(L.message||at(L,`${C} (HTTP ${N.status}).`))}catch(N){p(N.message)}finally{c(null)}},y=()=>m("start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(GX({inWindow:s,modes:t}))},"Could not start the browser"),b=()=>m("stop",{method:"DELETE"},"Could not stop the browser"),g=o?"text-gray-400":"text-gray-500",h=o?"text-white":"text-gray-900",v=o?"border-gray-700":"border-gray-200",x=`px-3 py-1 text-sm rounded disabled:opacity-50 ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,S=KX(a),k=VX(a),w=a?.status==="running";return Mn.default.createElement("div",{className:`mt-2 p-3 rounded-lg border space-y-3 ${v}`},Mn.default.createElement("div",{className:"flex flex-wrap items-center justify-between gap-2"},Mn.default.createElement("div",{className:"flex items-center gap-2"},Mn.default.createElement("p",{className:`text-sm font-medium ${h}`},"Browser"),S&&Mn.default.createElement(Ks,{tone:S.tone},S.label)),k?Mn.default.createElement("button",{type:"button",onClick:b,disabled:u!==null,className:x},u==="stop"?"Stopping\u2026":"Stop browser"):Mn.default.createElement("div",{className:"flex items-center gap-3"},t.includes("headed")&&Mn.default.createElement("label",{className:`flex items-center gap-1 text-xs ${g}`},Mn.default.createElement("input",{type:"checkbox",checked:s,onChange:_=>l(_.target.checked),disabled:u!==null}),"Open a window on this machine"),Mn.default.createElement("button",{type:"button",onClick:y,disabled:u!==null,className:x},u==="start"?"Starting\u2026":"Start browser"))),d&&Mn.default.createElement("p",{className:`text-xs ${o?"text-red-400":"text-red-600"}`,role:"alert"},d),!k&&!d&&Mn.default.createElement("p",{className:`text-xs ${g}`},"A browser of this sandbox's own, opened on its app and recorded. Agent runs against the sandbox can drive it."),w&&a.server_key&&Mn.default.createElement("p",{className:`text-xs ${g}`},"Runs against this sandbox reach it as ",Mn.default.createElement("code",{className:"font-mono"},a.server_key),"."),w&&a.live_url&&Mn.default.createElement(S0,{key:a.started_at,sessionId:e.session_id,headed:a.mode==="headed",watchOnOpen:r}),w&&!a.live_url&&Mn.default.createElement("p",{className:`text-xs ${g}`},"This browser has no live view to watch."))}var tr=Z(J());var un=Z(J());function WR(e,t=""){let r=t.toLowerCase();return(e||[]).filter(n=>n.full_name.toLowerCase().includes(r))}function mA(e,t){let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r}var HR={loading:"Loading repositories\u2026",not_configured:"GitHub is not configured on this dashboard.",not_connected:"Connect GitHub to pick a repository.",reconnect_required:"GitHub rejected the stored token. Reconnect GitHub to list repositories again.",pending_approval:"The GitHub installation is waiting for an owner of the account to approve it. Check again once it is approved.",empty:"This GitHub connection reaches no repositories yet."};function _f({repositories:e,selection:t,onToggle:r,filter:n,onFilterChange:o,mode:a="multiple",selected:i=null,onSelect:s,state:l="ready",settingsHref:u,missingRepositoryUrl:c,onRefresh:d,onTypeName:p,typedNameError:f}){let{darkMode:m}=ut(),[y,b]=(0,un.useState)(""),[g,h]=(0,un.useState)(!1),v=m?"text-gray-400":"text-gray-500",x=m?"text-white":"text-gray-900",S={backgroundColor:m?"#252525":"#f9fafb"},k=`w-full px-3 py-2 border rounded-lg text-sm ${m?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`,w=WR(e,n);(0,un.useEffect)(()=>{if(!g||!d)return;let C=()=>{h(!1),d()};return window.addEventListener("focus",C),()=>window.removeEventListener("focus",C)},[g,d]);let _=c?un.default.createElement("a",{href:c,target:"_blank",rel:"noreferrer",onClick:()=>h(!0),className:"text-sm underline","data-testid":"repo-picker-missing"},"Repository not listed?"):null,A=p?un.default.createElement("form",{className:"flex items-center gap-2",onSubmit:C=>{C.preventDefault(),I3(y)&&p(y)}},un.default.createElement("input",{type:"text",value:y,onChange:C=>b(C.target.value.trim()),placeholder:"Type owner/name","aria-label":"Repository owner/name",className:k,"data-testid":"repo-picker-typed-name"}),un.default.createElement("button",{type:"submit",disabled:!I3(y),className:`px-3 py-2 border rounded-lg text-sm ${x}`},"Look up")):null;if(l!=="ready"){let C=["not_connected","reconnect_required"].includes(l)&&u;return un.default.createElement("div",{className:"space-y-2","data-testid":`repo-picker-${l}`},un.default.createElement("p",{className:`text-sm ${v}`},HR[l]||HR.loading),C&&un.default.createElement("a",{href:u,className:"text-sm underline"},l==="reconnect_required"?"Reconnect GitHub":"Connect GitHub"," in Settings \u2192 Integrations"),l==="pending_approval"&&d&&un.default.createElement("button",{type:"button",onClick:d,className:`px-3 py-2 border rounded-lg text-sm ${x}`},"Check again"),l==="empty"&&_,l==="empty"&&A,f&&un.default.createElement("p",{className:"text-sm text-red-500"},f))}return un.default.createElement("div",{className:"space-y-2"},un.default.createElement("input",{type:"text",value:n,onChange:C=>o(C.target.value),placeholder:"Filter repositories",className:k}),un.default.createElement("div",{className:"max-h-80 overflow-y-auto space-y-1"},w.map(C=>un.default.createElement("label",{key:C.id,className:"flex items-center space-x-3 p-2 rounded cursor-pointer",style:S},a==="single"?un.default.createElement("input",{type:"radio",name:"repository",checked:i===C.full_name,onChange:()=>s(C.full_name)}):un.default.createElement("input",{type:"checkbox",checked:t.has(C.full_name),onChange:()=>r(C.full_name)}),un.default.createElement("span",{className:`text-sm font-mono ${x}`},C.full_name),C.private&&un.default.createElement("span",{className:`text-xs ${v}`},"private"))),w.length===0&&un.default.createElement("p",{className:`text-sm ${v}`},"No repositories match.")),(_||A)&&un.default.createElement("div",{className:"space-y-2"},_,A,f&&un.default.createElement("p",{className:"text-sm text-red-500"},f)))}var qR={linked:{tone:"success",text:"GitHub App installation linked. Choose the repositories this workspace may use on it."},pending:{tone:"success",text:"Installation requested. Once an owner of the organization approves it on GitHub, that owner has to link it from this page."},denied:{tone:"error",text:"GitHub authorization was cancelled."},invalid_state:{tone:"error",text:"That GitHub App return expired or was not started here. Try again from this page."},missing_code:{tone:"error",text:"GitHub did not return an authorization code. Try again."},missing_installation:{tone:"error",text:"GitHub did not say which installation to link. Try installing again."},not_found:{tone:"error",text:"Your GitHub account cannot reach that installation, so it was not linked."},not_admin:{tone:"error",text:"Only the account the App is installed on, or an admin of its organization, can link an installation."},taken:{tone:"error",text:"That installation is already linked to another workspace."},not_configured:{tone:"error",text:"No GitHub App is configured on this dashboard."},forbidden:{tone:"error",text:"You do not have permission to change the GitHub App."},manifest_error:{tone:"error",text:"GitHub did not finish creating the App. Try again."},manifest_unavailable:{tone:"error",text:"Creating a GitHub App is not available on this dashboard."},error:{tone:"error",text:"Could not finish linking the GitHub App. Try again."}};function KR(e){let t=e.account_type==="Organization"?"organization":"user";return`@${e.account_login} \xB7 ${t}`}function gA(e){return e.status==="removed"?{label:"Removed from GitHub: reinstall or unlink",tone:"error"}:e.status==="suspended"?{label:"Suspended on GitHub",tone:"warning"}:null}function VR(e){let t=e||[];if(t.length===0)return{text:null,active:0};let r=t.filter(a=>gA(a)).length,n=t.length===1?"GitHub App installation":"GitHub App installations",o=r>0?` (${r} ${r===1?"needs":"need"} attention)`:"";return{text:`${t.length} ${n}${o}`,active:t.length-r}}function GR(e,t){let r=new Map;return(t||[]).forEach(n=>{gA(n)||(n.repositories||[]).forEach(o=>{let a=o.full_name.toLowerCase();r.has(a)||r.set(a,{...o,source:"app",installation:n})})}),(e?.repositories||[]).forEach(n=>{let o=n.full_name.toLowerCase();r.has(o)||r.set(o,{...n,source:"oauth",installation:null})}),[...r.values()]}function YR(e){return e.source==="app"?`GitHub App (@${e.installation.account_login})`:"OAuth"}function XR(e){return/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,38})$/.test(e)}function ZR(e,t,r){let n=e.createElement("form");n.method="post",n.action=t,n.style.display="none";let o=e.createElement("input");return o.type="hidden",o.name="manifest",o.value=JSON.stringify(r),n.appendChild(o),e.body.appendChild(n),n.submit(),n}function D3({app:e,onChanged:t,onError:r,onNotice:n}){let{darkMode:o}=ut(),[a,i]=(0,tr.useState)(null),[s,l]=(0,tr.useState)(null),[u,c]=(0,tr.useState)(new Set),[d,p]=(0,tr.useState)(""),[f,m]=(0,tr.useState)(!1),[y,b]=(0,tr.useState)(null),[g,h]=(0,tr.useState)(""),[v,x]=(0,tr.useState)(!1);if(!e||!e.configured&&!e.manifest_available)return null;let S=o?"text-gray-400":"text-gray-500",k=o?"text-white":"text-gray-900",w={backgroundColor:o?"#252525":"#f9fafb"},_=`px-3 py-1 text-sm rounded ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,A=`px-3 py-1 text-sm rounded ${o?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`,C={error:o?"text-red-400":"text-red-600",warning:o?"text-amber-300":"text-amber-700"},N=async I=>{r(null);try{let P=await fetch(`/api/github_installations/${I.id}/repositories`),j=await P.json().catch(()=>({}));if(!P.ok)throw j.reinstall_required&&t(),new Error(j.error||"Could not list the installation's repositories.");l(j.repositories||[]),c(new Set((I.repositories||[]).map(M=>M.full_name))),p(""),i(I.id)}catch(P){r(P.message)}},L=async I=>{b(I.id),r(null);try{let P=await fetch(`/api/github_installations/${I.id}/repositories`),j=await P.json().catch(()=>({}));if(!P.ok)throw new Error(j.error||"Could not check the installation on GitHub.");n({tone:"success",text:`The installation on @${I.account_login} is active again.`})}catch(P){r(P.message)}finally{b(null),t()}},Q=()=>{i(null),l(null)},B=async()=>{m(!0),r(null);try{let I=await fetch(`/api/github_installations/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({repositories:[...u]})}),P=await I.json().catch(()=>({}));if(!I.ok)throw new Error(P.error||"Could not save the selection.");Q(),n({tone:"success",text:"Repository selection saved."}),t()}catch(I){r(I.message)}finally{m(!1)}},K=async I=>{if(await Wr({title:`Unlink @${I.account_login}?`,message:"New sandboxes can no longer check out its repositories. The App stays installed on GitHub; uninstall it there to remove its access.",confirmLabel:"Unlink",danger:!0})){r(null);try{let P=await fetch(`/api/github_installations/${I.id}`,{method:"DELETE"});if(!P.ok&&P.status!==404)throw new Error("Could not unlink the installation.");a===I.id&&Q(),t()}catch(P){r(P.message)}}},T=async()=>{let I=g.trim();if(I&&!XR(I)){r("Enter the organization's GitHub login, or leave it empty to create the App under your account.");return}x(!0),r(null);try{let P=await fetch("/api/github_app_manifest",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(I?{organization:I}:{})}),j=await P.json().catch(()=>({}));if(!P.ok)throw new Error(j.error||"Could not start creating the GitHub App.");ZR(document,j.url,j.manifest)}catch(P){r(P.message),x(!1)}};if(!e.configured)return tr.default.createElement("div",{className:"p-3 rounded-lg space-y-2",style:w},tr.default.createElement("p",{className:`text-sm font-medium ${k}`},"Use a GitHub App"),tr.default.createElement("p",{className:`text-xs ${S}`},"A GitHub App gives each checkout a one-hour token limited to its one repository. Create one for this dashboard: GitHub registers it, and this page shows its settings once to add to your configuration."),tr.default.createElement("div",{className:"flex items-center gap-2"},tr.default.createElement("input",{type:"text",value:g,onChange:I=>h(I.target.value),placeholder:"Organization (optional)",className:`flex-1 px-3 py-1 border rounded text-sm ${o?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),tr.default.createElement("button",{type:"button",onClick:T,disabled:v,className:`${_} disabled:opacity-50`},v?"Opening GitHub\u2026":"Create GitHub App")));let O=e.installations||[];return tr.default.createElement("div",{className:"space-y-3"},tr.default.createElement("div",{className:"flex items-center justify-between"},tr.default.createElement("div",null,tr.default.createElement("p",{className:`text-sm font-medium ${k}`},"GitHub App"),tr.default.createElement("p",{className:`text-xs ${S}`},"Each checkout gets a one-hour token limited to its repository. When a repository is reachable both ways, the App is used.")),tr.default.createElement("a",{href:Re("/api/github_installations/install"),className:"shrink-0 px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600"},"Install the GitHub App")),O.length===0&&tr.default.createElement("p",{className:`text-sm ${S}`},"No installation is linked yet. Install the App on the repositories this workspace should use."),O.map(I=>{let P=gA(I),j=I.repositories||[];return tr.default.createElement("div",{key:I.id,className:"p-3 rounded-lg space-y-2",style:w},tr.default.createElement("div",{className:"flex items-center justify-between gap-3"},tr.default.createElement("div",{className:"min-w-0"},tr.default.createElement("p",{className:`text-sm font-mono ${k}`},KR(I)),tr.default.createElement("p",{className:`text-xs ${P?C[P.tone]:S}`},P?P.label:`${j.length} selected for sandboxes`)),tr.default.createElement("div",{className:"flex items-center gap-2 shrink-0"},a===I.id?tr.default.createElement(tr.default.Fragment,null,tr.default.createElement("button",{type:"button",onClick:Q,className:_},"Cancel"),tr.default.createElement("button",{type:"button",onClick:B,disabled:f,className:"px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600 disabled:opacity-50"},f?"Saving\u2026":`Save (${u.size})`)):tr.default.createElement(tr.default.Fragment,null,P?tr.default.createElement("button",{type:"button",onClick:()=>L(I),disabled:y===I.id,className:`${_} disabled:opacity-50`},y===I.id?"Checking\u2026":"Check again"):tr.default.createElement("button",{type:"button",onClick:()=>N(I),className:_},"Choose repositories"),I.settings_url&&tr.default.createElement("a",{href:I.settings_url,target:"_blank",rel:"noreferrer",className:_},"Access on GitHub"),tr.default.createElement("button",{type:"button",onClick:()=>K(I),className:A},"Unlink")))),a===I.id&&s&&tr.default.createElement(_f,{repositories:s,selection:u,onToggle:M=>c(W=>mA(W,M)),filter:d,onFilterChange:p}))}))}var A2e={connected:{tone:"success",text:"GitHub connected. Choose the repositories this workspace may use."},denied:{tone:"error",text:"GitHub authorization was cancelled."},invalid_state:{tone:"error",text:"That GitHub sign-in expired or was not started here. Try connecting again."},missing_code:{tone:"error",text:"GitHub did not return an authorization code. Try connecting again."},not_configured:{tone:"error",text:"GitHub OAuth is not configured on this dashboard."},forbidden:{tone:"error",text:"You do not have permission to change the GitHub connection."},error:{tone:"error",text:"Could not finish connecting GitHub. Try again."}};function j3({callbackStatus:e,appCallbackStatus:t,refreshKey:r}){let{darkMode:n}=ut(),[o,a]=(0,Ke.useState)(null),[i,s]=(0,Ke.useState)(null),[l,u]=(0,Ke.useState)(new Set),[c,d]=(0,Ke.useState)(""),[p,f]=(0,Ke.useState)(!1),[m,y]=(0,Ke.useState)(null),[b,g]=(0,Ke.useState)(A2e[e]||qR[t]||null),[h,v]=(0,Ke.useState)([]),[x,S]=(0,Ke.useState)(null),[k,w]=(0,Ke.useState)({}),[_,A]=(0,Ke.useState)(null),[C,N]=(0,Ke.useState)(null),[L,Q]=(0,Ke.useState)(0),[B,K]=(0,Ke.useState)({}),T=(0,Ke.useRef)({}),O=(0,Ke.useCallback)(async()=>{try{let ge=await fetch("/api/github_connection");if(!ge.ok)throw new Error("status failed");let ue=await ge.json();a(ue),u(new Set((ue.connection?.repositories||[]).map(Fe=>Fe.full_name)))}catch{y("Could not load the GitHub connection. Are you signed in?")}},[]);(0,Ke.useEffect)(()=>{O()},[O]);let I=(0,Ke.useCallback)(async()=>{try{let ge=await fetch("/api/sandboxes?sandbox_type=app_runtime"),ue=await ge.json().catch(()=>({}));if(!ge.ok)throw new Error(at(ue,`Could not list your sandboxes (HTTP ${ge.status}).`));v(ue.sandboxes||[]),S({codeSessions:!!ue.code_sessions_supported,claudeCode:{...i2(ue),sandboxes:ue.claude_code_sandboxes||[]},codex:s2(ue),pullRequests:ue.pull_requests_supported===!0,browserModes:Array.isArray(ue.browser_modes)?ue.browser_modes:[]})}catch(ge){y(ge.message)}},[]),P=o!==null,j=!!o?.connected;(0,Ke.useEffect)(()=>{P&&I()},[P,j,I,r]);let M=h.filter(ge=>n2(ge)&&!B[ge.session_id]?.stopped).map(ge=>ge.session_id).join(" ");(0,Ke.useEffect)(()=>{if(!M)return;let ge=!1,ue=setTimeout(async()=>{let Fe=await Promise.all(M.split(" ").map(async ot=>{try{let Tt=await fetch(`/api/sandboxes/${encodeURIComponent(ot)}`);if(Tt.status===404)return{id:ot,gone:!0};let Lt=await Tt.json().catch(()=>({}));return Tt.ok?{id:ot,sandbox:Lt.sandbox||null}:{id:ot,status:Tt.status,error:at(Lt,`Could not check on this sandbox (HTTP ${Tt.status}).`)}}catch{return{id:ot,status:null,error:"Could not reach the dashboard to check on this sandbox."}}}));if(ge)return;let Je={};Fe.forEach(({id:ot,status:Tt,error:Lt})=>{if(!Lt){delete T.current[ot],Je[ot]=null;return}let Hr=(T.current[ot]||0)+1;T.current[ot]=Hr,Je[ot]={message:Lt,stopped:e2(Tt,Hr)}}),K(ot=>Object.entries(Je).reduce((Tt,[Lt,Hr])=>{if(Hr)return{...Tt,[Lt]:Hr};if(!(Lt in Tt))return Tt;let{[Lt]:Io,...vs}=Tt;return vs},ot)),v(ot=>Fe.reduce((Tt,Lt)=>Lt.gone?Tt.filter(Hr=>Hr.session_id!==Lt.id):Lt.sandbox?WY(Tt,Lt.sandbox,"session_id"):Tt,ot)),Q(ot=>ot+1)},2e3);return()=>{ge=!0,clearTimeout(ue)}},[M,L]);let W=ge=>{delete T.current[ge],K(ue=>{let{[ge]:Fe,...Je}=ue;return Je})},Y=(ge,ue)=>{w(Fe=>({...Fe,[ge]:ue}))},z=async()=>{y(null);try{let ge=await fetch("/api/github_connection/repositories"),ue=await ge.json().catch(()=>({}));if(!ge.ok)throw new Error(ue.error||"Could not list repositories.");s(ue.repositories||[])}catch(ge){y(ge.message)}},V=ge=>{u(ue=>mA(ue,ge))},q=async()=>{f(!0),y(null);try{let ge=await fetch("/api/github_connection",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({repositories:[...l]})}),ue=await ge.json().catch(()=>({}));if(!ge.ok)throw new Error(ue.error||"Could not save the selection.");a(Fe=>({...Fe,connection:ue.connection})),s(null),g({tone:"success",text:"Repository selection saved."})}catch(ge){y(ge.message)}finally{f(!1)}},oe=async()=>{if(await Wr({title:"Disconnect GitHub?",message:"New checkout sandboxes can no longer clone its repositories. Sandboxes already running keep running until you stop them or they expire.",confirmLabel:"Disconnect",danger:!0}))try{if(!(await fetch("/api/github_connection",{method:"DELETE"})).ok)throw new Error("disconnect failed");s(null),g(null),await O()}catch{y("Could not disconnect GitHub.")}},Me=async ge=>{A(ge),Y(ge,null);try{let ue=await fetch("/api/sandboxes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sandbox_type:"app_runtime",repository:ge})}),Fe=await ue.json().catch(()=>({}));if(!ue.ok)throw new Error(at(Fe,`Could not start the sandbox (HTTP ${ue.status}).`));v(Je=>sd(Je,Fe.sandbox,"session_id"))}catch(ue){Y(ge,ue.message)}finally{A(null)}},fe=async ge=>{if(!(ge.status!=="failed"&&!await Wr({title:"Stop this sandbox?",message:"Its app stops and its checkout is deleted, including any changes Claude Code made there.",confirmLabel:"Stop sandbox",danger:!0}))){N(ge.session_id),Y(ge.repository,null);try{let ue=await fetch(`/api/sandboxes/${encodeURIComponent(ge.session_id)}`,{method:"DELETE"}),Fe=await ue.json().catch(()=>({}));if(!ue.ok&&ue.status!==404)throw new Error(at(Fe,`Could not stop the sandbox (HTTP ${ue.status}).`));v(Je=>Je.filter(ot=>ot.session_id!==ge.session_id)),W(ge.session_id)}catch(ue){Y(ge.repository,ue.message)}finally{N(null)}}},le=n?"text-gray-400":"text-gray-500",R=n?"text-white":"text-gray-900",te={backgroundColor:n?"#252525":"#f9fafb"},He=`px-3 py-1 text-sm rounded ${n?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,_e=o?.connection,D=_e?.repositories||[],G=o?.app?.configured?o.app.installations||[]:[],E=GR(_e,G),{byRepository:$,others:ee}=qY(h,E.map(ge=>ge.full_name)),F=G.length>0,me=VR(G),et=n?"text-red-400":"text-red-600",rt=(ge,{standalone:ue=!1}={})=>{let{label:Fe,tone:Je}=LY(ge.status),ot=n2(ge),Tt=zY(ge),Lt=Tt?$Y(ge.expires_at):null,Hr=ot?B[ge.session_id]:null;return Ke.default.createElement("div",{key:ge.session_id,className:ue?"p-3 rounded-lg space-y-2":`mt-3 pt-3 border-t space-y-2 ${n?"border-gray-700":"border-gray-200"}`,style:ue?te:void 0},Ke.default.createElement("div",{className:"flex items-center justify-between gap-3"},Ke.default.createElement("div",{className:"flex items-center gap-2 min-w-0 text-xs"},Ke.default.createElement(Ks,{tone:Je},Fe),Ke.default.createElement("span",{className:`font-mono truncate ${le}`},ue?ge.repository:"","@",ge.repository_ref),Lt&&Ke.default.createElement("span",{className:`shrink-0 ${le}`},"\xB7 ",Lt),fA(ge)&&Ke.default.createElement("a",{href:Re(fA(ge)),onClick:Io=>{Io.preventDefault(),lt(fA(ge))},className:`shrink-0 truncate hover:underline ${n?"text-blue-300":"text-blue-600"}`,"data-testid":"sandbox-project-link",title:ge.browser?.status==="running"?"Open the project's page on its browser":"Open the project's page"},"\xB7 ",ge.project.name," \u2192")),Ke.default.createElement("button",{onClick:()=>fe(ge),disabled:C===ge.session_id,className:`shrink-0 px-3 py-1 text-sm rounded disabled:opacity-50 ${n?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},C===ge.session_id?"Stopping\u2026":ge.status==="failed"?"Dismiss":"Stop")),ot&&!Hr?.stopped&&Ke.default.createElement("p",{className:`text-xs ${le}`},"Checking out the repository and booting its app; this can take a few minutes."),Hr&&Ke.default.createElement("p",{className:`text-xs ${et}`},Hr.message," ",Hr.stopped?Ke.default.createElement(Ke.default.Fragment,null,"Stopped checking; its status above may be out of date."," ",Ke.default.createElement("button",{type:"button",onClick:()=>W(ge.session_id),className:"underline"},"Retry")):"Trying again\u2026"),ge.error_message&&Ke.default.createElement("pre",{className:`p-2 rounded text-xs font-mono whitespace-pre-wrap break-words max-h-48 overflow-y-auto border ${n?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`},ge.error_message),ge.runtime_server_key&&Ke.default.createElement("p",{className:`text-xs ${le}`},"Enable ",Ke.default.createElement("code",{className:"font-mono"},ge.runtime_server_key)," in an agent's Tools tab to run it, or evaluate it, with this checkout's tools."),Tt&&x?.codeSessions&&Ke.default.createElement(b0,{sandbox:ge,claudeCode:x.claudeCode?.mode==="sandbox_login"?{...x.claudeCode,connected:!!x.claudeCode.sandboxes.find(Io=>Io.session_id===ge.session_id)?.credential_mode}:x.claudeCode,codex:x.codex,onRecheckConnection:I}),Tt&&x&&!x.codeSessions&&Ke.default.createElement("p",{className:`text-xs ${le}`},"The configured sandbox backend cannot run Claude Code sessions."),Tt&&x?.pullRequests&&Ke.default.createElement(H0,{sandbox:ge}),Tt&&x?.browserModes.length>0&&Ke.default.createElement(kf,{sandbox:ge,modes:x.browserModes}))};return Ke.default.createElement("div",{className:"space-y-4"},Ke.default.createElement("div",{className:"flex items-center justify-between"},Ke.default.createElement("div",{className:"flex items-center space-x-3"},Ke.default.createElement("span",{className:"text-xl"},"\u{1F419}"),Ke.default.createElement("div",null,Ke.default.createElement("p",{className:`font-medium ${R}`},"GitHub"),Ke.default.createElement("p",{className:`text-sm ${o?.connected||me.active>0?n?"text-green-400":"text-green-600":le}`},o?[o.connected?`Connected as @${_e.login}`:null,me.text].filter(Boolean).join(" \xB7 ")||"Not connected":"Loading\u2026"))),o?.connected?Ke.default.createElement("button",{onClick:oe,className:`px-3 py-1 text-sm rounded ${n?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},o.app?.configured?"Disconnect OAuth":"Disconnect"):o?.configured?Ke.default.createElement("a",{href:Re("/api/github_connection/connect"),className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 text-sm"},o.app?.configured?"Connect with OAuth":"Connect GitHub"):null),o&&!o.configured&&!o.connected&&!o.app?.configured&&Ke.default.createElement("p",{className:`text-sm ${le}`},"The operator has not configured a GitHub OAuth app. Set ",Ke.default.createElement("code",null,"ActionAgent.github_client_id")," and"," ",Ke.default.createElement("code",null,"github_client_secret")," (or ",Ke.default.createElement("code",null,"GITHUB_CLIENT_ID")," / ",Ke.default.createElement("code",null,"GITHUB_CLIENT_SECRET"),") and register"," ",Ke.default.createElement("code",null,Re("/api/github_connection/callback"))," as its callback URL."),b&&Ke.default.createElement("div",{className:`p-3 rounded-lg text-sm border ${b.tone==="success"?n?"bg-green-900/20 border-green-800 text-green-300":"bg-green-50 border-green-200 text-green-800":n?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`},b.text),m&&Ke.default.createElement("div",{className:`p-3 rounded-lg text-sm border ${n?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`},m),Ke.default.createElement(D3,{app:o?.app,onChanged:O,onError:y,onNotice:g}),o?.connected&&Ke.default.createElement("div",{className:"space-y-3"},Ke.default.createElement("div",{className:"flex items-center justify-between"},Ke.default.createElement("div",null,Ke.default.createElement("p",{className:`text-sm font-medium ${R}`},"OAuth connection"),Ke.default.createElement("p",{className:`text-xs ${le}`},D.length," selected for sandboxes, cloned with @",_e.login,"'s token.")),i?Ke.default.createElement("div",{className:"flex items-center space-x-2"},Ke.default.createElement("button",{onClick:()=>{s(null),u(new Set(D.map(ge=>ge.full_name)))},className:He},"Cancel"),Ke.default.createElement("button",{onClick:q,disabled:p,className:"px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600 disabled:opacity-50"},p?"Saving\u2026":`Save (${l.size})`)):Ke.default.createElement("button",{onClick:z,className:He},"Choose repositories")),i&&Ke.default.createElement(_f,{repositories:i,selection:l,onToggle:V,filter:c,onFilterChange:d})),(o?.connected||F)&&!i&&Ke.default.createElement("div",{className:"space-y-3"},Ke.default.createElement("p",{className:`text-sm font-medium ${R}`},"Available repositories"),E.length===0?Ke.default.createElement("p",{className:`text-sm ${le}`},"No repositories selected yet. Selected repositories can be checked out into sandboxes."):Ke.default.createElement("div",{className:"space-y-2"},E.map(ge=>{let ue=$[ge.full_name]||[],Fe=ue.some(n2),Je=o.app?.configured?` \xB7 via ${YR(ge)}`:"";return Ke.default.createElement("div",{key:ge.full_name,className:"p-3 rounded-lg",style:te},Ke.default.createElement("div",{className:"flex items-center justify-between"},Ke.default.createElement("div",null,Ke.default.createElement("p",{className:`text-sm font-mono ${R}`},ge.full_name),Ke.default.createElement("p",{className:`text-xs ${le}`},ge.private?"private":"public"," \xB7 ",ge.default_branch,Je)),Ke.default.createElement("button",{onClick:()=>Me(ge.full_name),disabled:_===ge.full_name||Fe,className:`${He} disabled:opacity-50`},_===ge.full_name?"Starting\u2026":Fe?"Booting\u2026":"Start sandbox")),k[ge.full_name]&&Ke.default.createElement("p",{className:`mt-2 text-xs ${et}`},k[ge.full_name]),ue.map(ot=>rt(ot)))}))),!i&&ee.length>0&&Ke.default.createElement("div",{className:"space-y-2"},Ke.default.createElement("p",{className:`text-sm font-medium ${R}`},j||F?"Other sandboxes":"Checkout sandboxes"),Ke.default.createElement("p",{className:`text-xs ${le}`},j||F?"From repositories no longer selected.":"Checked out while GitHub was connected."," ","They keep running until stopped or they expire."),ee.map(ge=>Ke.default.createElement(Ke.default.Fragment,{key:ge.session_id},k[ge.repository]&&Ke.default.createElement("p",{className:`text-xs ${et}`},k[ge.repository]),rt(ge,{standalone:!0})))))}var It=Z(J());var $3="claude_code";function L3({onChange:e}){let{darkMode:t}=ut(),[r,n]=(0,It.useState)(null),[o,a]=(0,It.useState)(null),[i,s]=(0,It.useState)(!1),[l,u]=(0,It.useState)(""),[c,d]=(0,It.useState)(!1),[p,f]=(0,It.useState)(null),[m,y]=(0,It.useState)([]),[b,g]=(0,It.useState)(""),h=(0,It.useCallback)(async()=>{try{let[C,N]=await Promise.all([fetch("/api/provider_keys"),fetch("/api/sandboxes?sandbox_type=app_runtime")]);if(!C.ok||!N.ok)throw new Error("load failed");let[L,Q]=await Promise.all([C.json(),N.json()]);n((L.provider_keys||[]).find(K=>K.provider===$3)||{configured:!1}),a(i2(Q));let B=(Q.sandboxes||[]).filter(K=>K.status==="ready");y(B),g(K=>B.some(T=>T.session_id===K)?K:B[0]?.session_id||"")}catch{f("Could not load the Claude Code connection. Are you signed in?")}},[]);(0,It.useEffect)(()=>{h()},[h]);let v=async()=>{if(!(!l.trim()||c)){d(!0),f(null);try{let C=await fetch("/api/provider_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:$3,credential:l.trim()})});if(!C.ok){let N=await C.json().catch(()=>({}));throw new Error(Array.isArray(N.error)?N.error.join(", "):"Could not save the API key.")}s(!1),u(""),await h(),e?.()}catch(C){f(C.message)}finally{d(!1)}}},x=async()=>{if(await Wr({title:"Remove the Claude Code API key?",message:"Sessions using a sandbox subscription keep their login.",confirmLabel:"Remove key",danger:!0}))try{if(!(await fetch(`/api/provider_keys/${$3}`,{method:"DELETE"})).ok)throw new Error("delete failed");await h(),e?.()}catch{f("Could not disconnect Claude Code.")}},S=t?"text-gray-400":"text-gray-500",k=nX(o,r),w=k.keyForm&&r?.configured,_={success:t?"text-green-400":"text-green-600",error:t?"text-amber-300":"text-amber-700",neutral:S}[k.tone],A=`underline ${t?"text-gray-300":"text-gray-700"}`;return It.default.createElement("div",{className:"space-y-3"},It.default.createElement("div",{className:"flex items-center justify-between"},It.default.createElement("div",{className:"flex items-center space-x-3"},It.default.createElement("span",{className:"font-mono text-sm","aria-hidden":"true"},">_"),It.default.createElement("div",null,It.default.createElement("p",{className:`font-medium ${t?"text-white":"text-gray-900"}`},"Claude Code"),It.default.createElement("p",{className:`text-sm ${_}`},k.status))),k.keyForm&&It.default.createElement("div",{className:"flex items-center space-x-2"},w&&!i&&It.default.createElement("button",{onClick:x,className:`px-3 py-1 text-sm rounded ${t?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},k.view==="sandbox_login"?"Remove API key":"Disconnect"),It.default.createElement("button",{onClick:()=>{s(!i),u(""),f(null)},className:`px-3 py-1 text-sm rounded ${t?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},i?"Cancel":k.view==="sandbox_login"?w?"Update API key":"Add API key":k.needsReplacing?"Replace":w?"Update":"Connect")),k.view==="local_login"&&It.default.createElement("button",{onClick:()=>{f(null),h(),e?.()},className:`px-3 py-1 text-sm rounded ${t?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},"Check again")),k.view==="local_login"&&It.default.createElement("p",{className:`text-xs ${S}`},"Sessions run ",It.default.createElement("code",{className:"font-mono"},"claude")," on this machine with its own login, which the dashboard never reads or stores."," ",k.loginHint&&It.default.createElement(It.default.Fragment,null,"Run ",It.default.createElement("code",{className:"font-mono"},k.loginHint)," on this machine, as the user the dashboard runs as, then check again.")),k.needsReplacing&&!i&&It.default.createElement("p",{className:`text-xs ${t?"text-amber-300":"text-amber-700"}`},"The Claude subscription token stored here is no longer used: Anthropic does not allow third-party apps to hold Claude.ai credentials. Replace it with an Anthropic API key to run Claude Code sessions."),k.keyForm&&i&&It.default.createElement(It.default.Fragment,null,It.default.createElement("div",{className:"flex items-center space-x-2"},It.default.createElement("input",{type:"password","data-aa-secret":"",value:l,onChange:C=>u(C.target.value),onKeyDown:C=>C.key==="Enter"&&v(),placeholder:eX,"aria-label":"Anthropic API key",autoFocus:!0,className:`flex-1 px-3 py-2 border rounded-lg text-sm font-mono ${t?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),It.default.createElement("button",{onClick:v,disabled:!l.trim()||c,className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 disabled:opacity-50 text-sm"},c?"Saving\u2026":"Save")),It.default.createElement("p",{className:`text-xs ${S}`},"Paste an Anthropic API key from the"," ",It.default.createElement("a",{href:tX,target:"_blank",rel:"noreferrer",className:A},"Claude Console"),". It is encrypted at rest and passed to checkout sandboxes so they can run Claude Code sessions against the repository. Claude subscription logins cannot be stored here (",It.default.createElement("a",{href:rX,target:"_blank",rel:"noreferrer",className:A},"why"),"); to use your own subscription, use the sandbox sign-in below when enabled by this installation.")),k.view==="sandbox_login"&&It.default.createElement("div",{className:"space-y-3"},m.length>0?It.default.createElement(It.default.Fragment,null,It.default.createElement("label",{className:`block text-xs ${S}`},"Sandbox",It.default.createElement("select",{"aria-label":"Claude subscription sandbox",value:b,onChange:C=>g(C.target.value),className:"w-full mt-2 p-2 border rounded",style:{background:"var(--color-background)",color:"var(--color-text-primary)",borderColor:"var(--color-border)"}},m.map(C=>It.default.createElement("option",{key:C.session_id,value:C.session_id},C.repository," \xB7 ",C.session_id.slice(0,8))))),m.find(C=>C.session_id===b)&&It.default.createElement(rf,{key:b,sandbox:m.find(C=>C.session_id===b),onChange:()=>{h(),e?.()}})):It.default.createElement("p",{className:`text-sm ${S}`},"Start a checkout sandbox in ",It.default.createElement("a",{className:"underline",href:Re("/projects")},"Projects")," to connect your Claude subscription."),It.default.createElement("p",{className:`text-xs ${S}`},"Each member uses their own sandbox login. Sessions without a personal login use the account\u2019s Anthropic API key when one is connected.")),p&&It.default.createElement("div",{className:`p-3 rounded-lg text-sm border ${t?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`},p))}var Nr=Z(J());function z3({onChange:e}){let{darkMode:t}=ut(),[r,n]=(0,Nr.useState)(null),[o,a]=(0,Nr.useState)(null),[i,s]=(0,Nr.useState)(!1),[l,u]=(0,Nr.useState)(""),[c,d]=(0,Nr.useState)(!1),[p,f]=(0,Nr.useState)(null),m=(0,Nr.useCallback)(async()=>{let[k,w]=await Promise.all([fetch("/api/provider_keys"),fetch("/api/sandboxes?sandbox_type=app_runtime")]);if(!k.ok||!w.ok)throw new Error("Could not load the Codex connection.");let[_,A]=await Promise.all([k.json(),w.json()]);n((_.provider_keys||[]).find(C=>C.provider==="codex")||{configured:!1}),a(s2(A))},[]);(0,Nr.useEffect)(()=>{m().catch(k=>f(k.message))},[m]);let y=async k=>{if(k.preventDefault(),!(c||!l.trim())){d(!0),f(null);try{let w=await fetch("/api/provider_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:"codex",credential:l.trim()})}),_=await w.json().catch(()=>({}));if(!w.ok)throw new Error(Array.isArray(_.error)?_.error.join(", "):_.error||"Could not save the API key.");u(""),s(!1),await m(),e?.()}catch(w){f(w.message)}finally{d(!1)}}},b=async()=>{if(await Wr({title:"Disconnect Codex?",message:"New Codex sessions will need an API key connected again.",confirmLabel:"Disconnect",danger:!0})){d(!0),f(null);try{if(!(await fetch("/api/provider_keys/codex",{method:"DELETE"})).ok)throw new Error("Could not disconnect Codex.");await m(),e?.()}catch(k){f(k.message)}finally{d(!1)}}},g=async()=>{f(null);try{await m(),e?.()}catch(k){f(k.message)}},h=t?"text-gray-400":"text-gray-500",v=`px-3 py-1 text-sm rounded ${t?"bg-gray-700 text-gray-200":"bg-gray-200 text-gray-800"}`,x=iX(o,r),S={success:t?"text-green-400":"text-green-600",error:t?"text-amber-300":"text-amber-700",neutral:h}[x.tone];return Nr.default.createElement("div",{className:"space-y-3"},Nr.default.createElement("div",{className:"flex items-center justify-between gap-3"},Nr.default.createElement("div",null,Nr.default.createElement("p",{className:`font-medium ${t?"text-white":"text-gray-900"}`},"Codex"),Nr.default.createElement("p",{className:`text-sm ${S}`},x.status)),Nr.default.createElement("div",{className:"flex gap-2"},x.keyForm&&r?.configured&&!i&&Nr.default.createElement("button",{className:v,disabled:c,onClick:b},"Disconnect"),x.keyForm&&Nr.default.createElement("button",{className:v,disabled:c,onClick:()=>{s(!i),u(""),f(null)}},i?"Cancel":r?.configured?"Update":"Connect"),x.view==="local_login"&&Nr.default.createElement("button",{className:v,disabled:c,onClick:g},"Check again"))),x.view==="local_login"?Nr.default.createElement("p",{className:`text-xs ${h}`},"Sessions run ",Nr.default.createElement("code",{className:"font-mono"},"codex")," on this machine with its own login (a ChatGPT plan, or a key the CLI holds), which the dashboard never reads or stores."," ",x.loginHint&&Nr.default.createElement(Nr.default.Fragment,null,"Run ",Nr.default.createElement("code",{className:"font-mono"},x.loginHint)," on this machine, as the user the dashboard runs as, then check again.")):Nr.default.createElement("p",{className:`text-sm ${h}`},"Run Codex in a repository checkout using an OpenAI API key. API usage is billed to that key's project."),x.keyForm&&i&&Nr.default.createElement("form",{onSubmit:y,className:"flex flex-wrap gap-2"},Nr.default.createElement("label",{className:`flex-1 text-sm ${h}`},"OpenAI API key for Codex",Nr.default.createElement("input",{type:"password","data-aa-secret":"",autoComplete:"off",spellCheck:!1,value:l,onChange:k=>u(k.target.value),placeholder:"sk-\u2026",disabled:c,className:`block w-full mt-1 px-3 py-2 border rounded ${t?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`})),Nr.default.createElement("button",{type:"submit",className:`${v} self-end`,disabled:c||!l.trim()},c?"Saving\u2026":"Save API key")),p&&Nr.default.createElement("p",{role:"alert",className:"text-sm text-red-500"},p))}var JR=Z(J());var wn=Z(J());function B3({provider:e,title:t,description:r,credentialLabel:n,placeholder:o,onChange:a}){let{darkMode:i}=ut(),[s,l]=(0,wn.useState)(null),[u,c]=(0,wn.useState)(!1),[d,p]=(0,wn.useState)(""),[f,m]=(0,wn.useState)(!1),[y,b]=(0,wn.useState)(null),g=(0,wn.useCallback)(async()=>{let k=await fetch("/api/provider_keys");if(!k.ok)throw new Error(`Could not load the ${t} connection.`);let w=await k.json();l((w.provider_keys||[]).find(_=>_.provider===e)||{configured:!1})},[e,t]);(0,wn.useEffect)(()=>{g().catch(k=>b(k.message))},[g]);let h=async k=>{if(k.preventDefault(),!(f||!d.trim())){m(!0),b(null);try{let w=await fetch("/api/provider_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e,credential:d.trim()})}),_=await w.json().catch(()=>({}));if(!w.ok)throw new Error(Array.isArray(_.error)?_.error.join(", "):_.error||`Could not save the ${n}.`);p(""),c(!1),await g(),a?.()}catch(w){b(w.message)}finally{m(!1)}}},v=async()=>{if(await Wr({title:`Disconnect ${t}?`,message:`${t} will need its ${n} connected again.`,confirmLabel:"Disconnect",danger:!0})){m(!0),b(null);try{if(!(await fetch(`/api/provider_keys/${e}`,{method:"DELETE"})).ok)throw new Error(`Could not disconnect ${t}.`);await g(),a?.()}catch(k){b(k.message)}finally{m(!1)}}},x=i?"text-gray-400":"text-gray-500",S=`px-3 py-1 text-sm rounded ${i?"bg-gray-700 text-gray-200":"bg-gray-200 text-gray-800"}`;return wn.default.createElement("div",{className:"space-y-3"},wn.default.createElement("div",{className:"flex items-center justify-between gap-3"},wn.default.createElement("div",null,wn.default.createElement("p",{className:`font-medium ${i?"text-white":"text-gray-900"}`},t),wn.default.createElement("p",{className:`text-sm ${x}`},s==null?"Loading\u2026":s.configured?`Connected \xB7 ${s.hint}`:"Not connected")),wn.default.createElement("div",{className:"flex gap-2"},s?.configured&&!u&&wn.default.createElement("button",{className:S,disabled:f,onClick:v},"Disconnect"),wn.default.createElement("button",{className:S,disabled:f||s==null,onClick:()=>{c(!u),p(""),b(null)}},u?"Cancel":s?.configured?"Update":"Connect"))),wn.default.createElement("p",{className:`text-sm ${x}`},r),u&&wn.default.createElement("form",{onSubmit:h,className:"flex flex-wrap gap-2"},wn.default.createElement("label",{className:`flex-1 text-sm ${x}`},n,wn.default.createElement("input",{type:"password","data-aa-secret":"",autoComplete:"off",spellCheck:!1,value:d,onChange:k=>p(k.target.value),placeholder:o,disabled:f,className:`block w-full mt-1 px-3 py-2 border rounded ${i?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`})),wn.default.createElement("button",{type:"submit",className:`${S} self-end`,disabled:f||!d.trim()},f?"Saving\u2026":"Save")),y&&wn.default.createElement("p",{role:"alert",className:"text-sm text-red-500"},y))}function F3({onChange:e}){return JR.default.createElement(B3,{provider:"slack",title:"Slack",description:"Agents with the Slack tool list channels, read them and post as this bot. Create a Slack app with the channels:read, channels:history and chat:write scopes, install it, and invite the bot to the channels it should see.",credentialLabel:"Bot User OAuth Token",placeholder:"xoxb-\u2026",onChange:e})}var E2e=["profile","api-keys","integrations","notifications","billing"];function N2e(){let e=new URLSearchParams(window.location.search),t=e.get("tab");return{tab:E2e.includes(t)?t:"profile",github:e.get("github"),githubApp:e.get("github_app")}}function U3({user:e,account:t}){let{darkMode:r,toggleDarkMode:n}=ut(),[o]=(0,Oe.useState)(()=>window.ACTIVE_AGENT_DASHBOARD?.meta?.personalProviderKeys?"personal":void 0),[{tab:a,github:i,githubApp:s}]=(0,Oe.useState)(N2e),[l,u]=(0,Oe.useState)(a),[c,d]=(0,Oe.useState)(0),[p,f]=(0,Oe.useState)([]),[m,y]=(0,Oe.useState)([]),[b,g]=(0,Oe.useState)(!1),[h,v]=(0,Oe.useState)(""),[x,S]=(0,Oe.useState)(!1),[k,w]=(0,Oe.useState)(null),[_,A]=(0,Oe.useState)(!1),[C,N]=(0,Oe.useState)(null),L=(0,Oe.useCallback)(async()=>{try{let[P,j]=await Promise.all([fetch("/api/api_keys"),fetch(sA("/api/provider_keys",o))]);if(!P.ok||!j.ok)throw new Error("Failed to load keys");let M=await P.json(),W=await j.json();f(M.api_keys||[]),y(W.provider_keys||[]),N(null)}catch{N("Could not load API keys. Are you signed in?")}finally{g(!0)}},[o]);(0,Oe.useEffect)(()=>{l==="api-keys"&&!b&&L()},[l,b,L]);let Q=lA({onKeysChanged:L,onError:N,scope:o}),B=async()=>{if(!(!h.trim()||x)){S(!0),N(null);try{let P=await fetch("/api/api_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:h.trim()})});if(!P.ok)throw new Error("create failed");let j=await P.json();w(j.api_key),A(!1),v(""),await L()}catch{N("Could not create the API key.")}finally{S(!1)}}},K=async P=>{if(await Wr({title:"Revoke this API key?",message:"Requests using it stop working immediately. This cannot be undone.",confirmLabel:"Revoke key",danger:!0}))try{if(!(await fetch(`/api/api_keys/${P}`,{method:"DELETE"})).ok)throw new Error("delete failed");k&&k.id===P&&w(null),await L()}catch{N("Could not revoke the API key.")}},T=async P=>{try{await navigator.clipboard.writeText(P),A(!0),setTimeout(()=>A(!1),2e3)}catch{}},O={backgroundColor:r?"#1f1f1f":"#ffffff",borderColor:r?"#2a2a2a":"#e5e7eb"};return Oe.default.createElement("div",{className:"p-6 space-y-6"},Oe.default.createElement("div",null,Oe.default.createElement("h2",{className:`text-2xl font-bold ${r?"text-white":"text-gray-900"}`},"Settings"),Oe.default.createElement("p",{className:`mt-1 ${r?"text-gray-400":"text-gray-500"}`},"Manage your account and preferences")),Oe.default.createElement("div",{className:"border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},Oe.default.createElement("nav",{className:"flex space-x-8"},[{id:"profile",label:"Profile"},{id:"api-keys",label:"API Keys"},{id:"integrations",label:"Integrations"},{id:"notifications",label:"Notifications"},{id:"billing",label:"Billing"}].map(P=>Oe.default.createElement("button",{key:P.id,onClick:()=>u(P.id),className:`py-4 px-1 border-b-2 font-medium text-sm transition-colors ${l===P.id?"border-red-500 text-red-500":`border-transparent ${r?"text-gray-400 hover:text-gray-300":"text-gray-500 hover:text-gray-700"}`}`},P.label)))),l==="profile"&&Oe.default.createElement("div",{className:"space-y-6"},Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Profile Information"),Oe.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4"},Oe.default.createElement("div",null,Oe.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"First Name"),Oe.default.createElement("input",{type:"text",defaultValue:e?.name?.split(" ")[0]||"",className:`w-full px-3 py-2 border rounded-lg ${r?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`})),Oe.default.createElement("div",null,Oe.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"Last Name"),Oe.default.createElement("input",{type:"text",defaultValue:e?.name?.split(" ")[1]||"",className:`w-full px-3 py-2 border rounded-lg ${r?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`})),Oe.default.createElement("div",{className:"md:col-span-2"},Oe.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"Email"),Oe.default.createElement("input",{type:"email",defaultValue:e?.email||"",disabled:!0,className:`w-full px-3 py-2 border rounded-lg cursor-not-allowed ${r?"bg-gray-900 border-gray-700 text-gray-500":"bg-gray-100 border-gray-300 text-gray-500"}`}))),Oe.default.createElement("button",{className:"mt-4 px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600"},"Save Changes")),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Appearance"),Oe.default.createElement("div",{className:"flex items-center justify-between"},Oe.default.createElement("div",null,Oe.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},"Dark Mode"),Oe.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},"Use dark theme across the dashboard")),Oe.default.createElement("button",{onClick:n,className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${r?"bg-red-500":"bg-gray-300"}`},Oe.default.createElement("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${r?"translate-x-6":"translate-x-1"}`}))))),l==="api-keys"&&Oe.default.createElement("div",{className:"space-y-6"},Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("div",{className:"flex items-center justify-between mb-4"},Oe.default.createElement("h3",{className:`text-lg font-semibold ${r?"text-white":"text-gray-900"}`},"API Keys"),Oe.default.createElement("div",{className:"flex items-center space-x-2"},Oe.default.createElement("input",{type:"text",value:h,onChange:P=>v(P.target.value),onKeyDown:P=>P.key==="Enter"&&B(),placeholder:"Key name (e.g. production)",className:`px-3 py-2 border rounded-lg text-sm ${r?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),Oe.default.createElement("button",{onClick:B,disabled:!h.trim()||x,className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 disabled:opacity-50 whitespace-nowrap"},x?"Creating\u2026":"+ Create New Key"))),Oe.default.createElement("div",{className:`p-4 rounded-lg mb-4 ${r?"bg-yellow-900/20 border border-yellow-800":"bg-yellow-50 border border-yellow-200"}`},Oe.default.createElement("p",{className:`text-sm ${r?"text-yellow-300":"text-yellow-800"}`},"\u26A0\uFE0F API keys are secrets. Never share them or commit them to version control.")),C&&Oe.default.createElement("div",{className:`p-4 rounded-lg mb-4 text-sm ${r?"bg-red-900/20 border border-red-800 text-red-300":"bg-red-50 border border-red-200 text-red-700"}`},C),k&&Oe.default.createElement("div",{className:`p-4 rounded-lg mb-4 border ${r?"bg-green-900/20 border-green-800":"bg-green-50 border-green-200"}`},Oe.default.createElement("p",{className:`text-sm font-medium mb-2 ${r?"text-green-300":"text-green-800"}`},"Key \u201C",k.name,"\u201D created. Copy it now \u2014 it won't be shown again."),Oe.default.createElement("div",{className:"flex items-center space-x-2"},Oe.default.createElement("code",{"data-aa-secret":"",className:`flex-1 px-3 py-2 rounded text-sm font-mono break-all ${r?"bg-gray-900 text-green-300":"bg-white text-green-800 border border-green-200"}`},k.token),Oe.default.createElement("button",{onClick:()=>T(k.token),className:`px-3 py-2 text-sm rounded ${r?"bg-gray-700 text-gray-200 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},_?"Copied!":"Copy"),Oe.default.createElement("button",{onClick:()=>w(null),className:`px-3 py-2 text-sm rounded ${r?"text-gray-400 hover:text-gray-200":"text-gray-500 hover:text-gray-700"}`},"Dismiss"))),p.length===0?Oe.default.createElement("div",{className:`text-center py-8 ${r?"text-gray-400":"text-gray-500"}`},Oe.default.createElement("p",null,b?"No API keys yet":"Loading\u2026"),b&&Oe.default.createElement("p",{className:"text-sm"},"Create your first API key to authenticate requests")):Oe.default.createElement("div",{className:"space-y-2"},p.map(P=>Oe.default.createElement("div",{key:P.id,className:"flex items-center justify-between p-4 rounded-lg",style:{backgroundColor:r?"#252525":"#f9fafb"}},Oe.default.createElement("div",null,Oe.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},P.name),Oe.default.createElement("p",{className:`text-sm font-mono ${r?"text-gray-400":"text-gray-500"}`},P.masked_token,Oe.default.createElement("span",{className:"font-sans"}," \xB7 created ",new Date(P.created_at).toLocaleDateString(),P.last_used_at?` \xB7 last used ${new Date(P.last_used_at).toLocaleDateString()}`:" \xB7 never used"))),Oe.default.createElement("button",{onClick:()=>K(P.id),className:`px-3 py-1 text-sm rounded ${r?"bg-red-900/40 text-red-300 hover:bg-red-900/60":"bg-red-50 text-red-600 hover:bg-red-100"}`},"Revoke"))))),Oe.default.createElement(ib,{providerKeys:m,editor:Q,scope:o})),l==="integrations"&&Oe.default.createElement("div",{className:"space-y-6"},Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-1 ${r?"text-white":"text-gray-900"}`},"Integrations"),Oe.default.createElement("p",{className:`text-sm mb-4 ${r?"text-gray-400":"text-gray-500"}`},"Connect GitHub to choose which repositories this workspace may use. A sandbox started from one boots that app's own runtime, so agents and evaluations can run with its tools, and Claude Code or Codex can work on the checkout."),Oe.default.createElement(j3,{callbackStatus:i,appCallbackStatus:s,refreshKey:c})),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement(L3,{onChange:()=>d(P=>P+1)})),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement(z3,{onChange:()=>d(P=>P+1)})),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement(F3,{onChange:()=>d(P=>P+1)}))),l==="notifications"&&Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Email Notifications"),Oe.default.createElement("div",{className:"space-y-4"},[{label:"Agent execution alerts",desc:"Get notified when agents fail or complete",enabled:!0},{label:"Weekly usage reports",desc:"Summary of traces, costs, and performance",enabled:!0},{label:"Security alerts",desc:"Important security notifications",enabled:!0},{label:"Product updates",desc:"New features and improvements",enabled:!1}].map((P,j)=>Oe.default.createElement("div",{key:j,className:"flex items-center justify-between py-3 border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},Oe.default.createElement("div",null,Oe.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},P.label),Oe.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},P.desc)),Oe.default.createElement("button",{className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${P.enabled?"bg-red-500":r?"bg-gray-700":"bg-gray-300"}`},Oe.default.createElement("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${P.enabled?"translate-x-6":"translate-x-1"}`})))))),l==="billing"&&Oe.default.createElement("div",{className:"space-y-6"},Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Subscription"),Oe.default.createElement("div",{className:"flex items-center justify-between p-4 rounded-lg",style:{backgroundColor:r?"#252525":"#f9fafb"}},Oe.default.createElement("div",null,Oe.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},"Free Plan"),Oe.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},"Current plan")),Oe.default.createElement("button",{className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600"},"Upgrade to Pro"))),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Payment Method"),Oe.default.createElement("p",{className:`${r?"text-gray-400":"text-gray-500"}`},"No payment method on file"),Oe.default.createElement("button",{className:`mt-4 px-4 py-2 rounded-lg ${r?"bg-gray-700 text-gray-300":"bg-gray-200 text-gray-700"}`},"Add Payment Method")),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:O},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Invoices"),Oe.default.createElement("p",{className:`${r?"text-gray-400":"text-gray-500"}`},"No invoices yet"))))}var Xe=Z(J());var T2e=[{label:"Find demo questions",message:"What demo questions worked in our latest evaluations? Show the evidence and tell me whether they are verified on current main."},{label:"Explain a failed eval",message:"Show my latest evaluation reports and explain which failures need attention."},{label:"Draft an agent",message:"Prepare a read-only support agent that cites available evidence and explains missing information instead of inventing answers."}],W3={width:"100%",background:"var(--color-card)",color:"var(--color-text-primary)",border:"1px solid var(--color-border-strong)",borderRadius:8,padding:"9px 12px",font:"inherit"},Xs={color:"var(--color-text-muted)",fontSize:12};function QR(e){let t=e.latest_run?.path||e.path||"";return/^\/evaluations(?:\/\d+\/runs\/\d+\/report)?$/.test(t)?Re(t):null}function O2e({card:e,onAsk:t,busy:r}){let n=QR(e),o=e.type==="demo_candidate",a=e.run_id||e.latest_run?.run_id,i=e.status||e.latest_run?.status;return Xe.default.createElement(je,{padding:16,testId:"assistant-evidence-card",style:{display:"grid",gap:10}},Xe.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Xe.default.createElement(ke,{tone:o?"warning":"info"},o?"Historical pass":"Recorded evaluation"),i&&Xe.default.createElement(ke,{tone:i==="errored"||i==="failed"?"error":"muted"},i),e.check_strength&&Xe.default.createElement("span",{style:Xs},String(e.check_strength).replaceAll("_"," "))),Xe.default.createElement("div",{style:{fontWeight:600,overflowWrap:"anywhere"}},e.recorded_prompt||e.title),Xe.default.createElement("div",{style:{...Xs,fontFamily:U}},[e.provider,e.model,a&&`run ${a}`].filter(Boolean).join(" \xB7 "),e.completed_at&&` \xB7 ${new Date(e.completed_at).toLocaleString()}`),e.output_excerpt&&Xe.default.createElement("div",{style:{fontSize:13,whiteSpace:"pre-wrap",color:"var(--color-text-secondary)"}},e.output_excerpt),(e.error||e.latest_run?.error)&&Xe.default.createElement("div",{style:{fontSize:13,whiteSpace:"pre-wrap",color:"var(--color-error)"}},e.error||e.latest_run.error),e.fault&&Xe.default.createElement("div",{style:Xs},"Fault: ",e.fault.replaceAll("_"," ")),e.samples_evaluated!=null&&Xe.default.createElement("div",{style:Xs},e.samples_passed||0," / ",e.samples_evaluated," scenarios passed"),e.tool_names?.length>0&&Xe.default.createElement("div",{style:Xs},"Tools recorded: ",e.tool_names.join(", ")),Array.isArray(e.caveats)&&e.caveats.length>0&&Xe.default.createElement("details",{style:Xs},Xe.default.createElement("summary",{style:{cursor:"pointer"}},"Evidence limits"),Xe.default.createElement("ul",{style:{paddingLeft:18,marginTop:8}},e.caveats.map((l,u)=>Xe.default.createElement("li",{key:u},l)))),Xe.default.createElement("div",{style:{display:"flex",gap:12,alignItems:"center",flexWrap:"wrap"}},n&&Xe.default.createElement("a",{href:n,target:"_blank",rel:"noopener noreferrer",style:{fontSize:13,color:"var(--color-accent-ui)"}},n===Re("/evaluations")?"Open evaluations \u2192":"Open report \u2192"),e.evaluation_id&&a&&Xe.default.createElement(ce,{size:"sm",disabled:r,onClick:()=>t(`Read evaluation ${e.evaluation_id}, run ${a}. Explain its results, the strength of its checks, and what needs fixing.`)},"Explain this run")))}function P2e({draft:e,onReview:t}){return Xe.default.createElement(je,{padding:18,testId:"assistant-agent-draft",style:{display:"grid",gap:12,borderColor:"var(--color-accent-ui)"}},Xe.default.createElement(Ue,null,"Agent draft \xB7 not saved"),Xe.default.createElement("div",{style:{fontWeight:600,fontSize:18}},e.name),Xe.default.createElement("p",{style:{margin:0,color:"var(--color-text-secondary)",fontSize:13}},e.description),Xe.default.createElement("div",{style:{...Xs,fontFamily:U}},e.provider," / ",e.model),Xe.default.createElement("details",null,Xe.default.createElement("summary",{style:{cursor:"pointer",fontSize:13}},"Review instructions and tools"),Xe.default.createElement("pre",{style:{whiteSpace:"pre-wrap",fontFamily:"inherit",fontSize:13,maxHeight:280,overflow:"auto"}},e.instructions),Xe.default.createElement("p",{style:Xs},"Tools: ",e.tools?.length?e.tools.join(", "):"None")),Xe.default.createElement(ce,{variant:"primary",onClick:()=>t(e),style:{justifySelf:"start"}},"Review in builder \u2192"))}function H3({session:e,onSessionChange:t,onReviewDraft:r,onOpenSettings:n,executionEnabled:o=!0}){let[a,i]=(0,Xe.useState)(null),[s,l]=(0,Xe.useState)(""),[u,c]=(0,Xe.useState)(!1),[d,p]=(0,Xe.useState)(null),[f,m]=(0,Xe.useState)(!1),y=(0,Xe.useRef)(null),b=(0,Xe.useRef)(null),g=(0,Xe.useRef)(e);g.current=e,(0,Xe.useEffect)(()=>{let _=new AbortController;return fetch("/api/dashboard_assistant",{signal:_.signal}).then(async A=>{let C=await A.json();if(!A.ok)throw new Error(C.error||"Could not load assistant configuration.");i(C),g.current.provider||t({...g.current,...C.defaults})}).catch(A=>{A.name!=="AbortError"&&p({message:A.message})}),()=>{_.abort(),y.current?.abort()}},[]);let h=e.messages||[],v=e.provider||a?.defaults?.provider||"",x=e.model||"",S=a?.limits?.message_characters||8e3,k=a?.providers?.find(_=>_.id===v),w=async _=>{let A=_.trim();if(!A||u||!a||!o||!x.trim()||!f)return;let C=h.map(Q=>({role:Q.role,content:Q.content})).slice(-12);for(;C.reduce((Q,B)=>Q+B.content.length,0)>24e3;)C.shift();let N=[...h,{role:"user",content:A}];t({...e,messages:N}),l(""),p(null),c(!0);let L=new AbortController;y.current=L;try{let Q=await fetch("/api/dashboard_assistant",{method:"POST",signal:L.signal,headers:{"Content-Type":"application/json"},body:JSON.stringify({message:A,history:C,provider:v,model:x.trim(),allow_provider_processing:!0})}),B=await Q.json();if(!Q.ok){p({message:typeof B.error=="string"?B.error:"The assistant could not complete this request.",setup:B.setup_required,retry:A}),t({...e,messages:h}),l(A);return}t({...e,messages:[...N,{role:"assistant",content:B.answer,cards:B.cards||[],references:B.references||[],drafts:B.drafts||[],limitations:B.limitations||[]}]})}catch(Q){Q.name!=="AbortError"&&(p({message:"Connection interrupted. No answer was received; the server may still be finishing the request."}),t({...e,messages:h}),l(A))}finally{c(!1)}};return Xe.default.createElement("div",{style:{maxWidth:980,margin:"0 auto",color:"var(--color-text-primary)",display:"grid",gap:22}},Xe.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:16,alignItems:"start"}},Xe.default.createElement("div",null,Xe.default.createElement(Ue,null,"Workspace assistant"),Xe.default.createElement("h1",{style:{margin:"8px 0",fontSize:30,fontWeight:600,letterSpacing:"-0.035em"}},"Ask ActiveAgents"),Xe.default.createElement("p",{style:{margin:0,color:"var(--color-text-secondary)",fontSize:14}},"Find evaluation evidence. Understand failures. Build the next agent.")),h.length>0&&Xe.default.createElement(ce,{disabled:u,onClick:()=>{t({...e,messages:[]}),p(null),l(""),m(!1)}},"New conversation")),!h.length&&Xe.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:12}},T2e.map(_=>Xe.default.createElement("button",{key:_.label,onClick:()=>{l(_.message),b.current?.querySelector("textarea")?.focus()},style:{textAlign:"left",padding:20,background:"var(--color-card)",color:"var(--color-text-primary)",border:"1px solid var(--color-border)",borderRadius:12,cursor:"pointer"}},Xe.default.createElement("div",{style:{fontSize:14,fontWeight:600,marginBottom:8}},_.label," \u2197"),Xe.default.createElement("div",{style:{fontSize:12,lineHeight:1.6,color:"var(--color-text-secondary)"}},_.message)))),Xe.default.createElement("div",{role:"log","aria-label":"Assistant conversation","aria-live":"polite",style:{display:"grid",gap:20}},h.map((_,A)=>Xe.default.createElement("div",{key:A,style:{display:"grid",gap:12}},Xe.default.createElement(Ue,{color:_.role==="user"?"var(--color-text-muted)":"var(--color-accent-ui)"},_.role==="user"?"You":"ActiveAgents"),Xe.default.createElement("div",{style:{whiteSpace:"pre-wrap",overflowWrap:"anywhere",lineHeight:1.7,fontSize:14}},_.content),_.cards?.map(C=>Xe.default.createElement(O2e,{key:C.id,card:C,onAsk:N=>{l(N),b.current?.querySelector("textarea")?.focus()},busy:u})),_.references?.length>0&&Xe.default.createElement("div",{"aria-label":"Evidence references",style:{...Xs,display:"flex",gap:12,flexWrap:"wrap"}},_.references.map(C=>{let N=QR(C);return N&&Xe.default.createElement("a",{key:C.id,href:N,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--color-accent-ui)"}},C.id)})),_.drafts?.map(C=>Xe.default.createElement(P2e,{key:C.id,draft:C,onReview:r})),_.limitations?.length>0&&Xe.default.createElement("details",{style:Xs},Xe.default.createElement("summary",{style:{cursor:"pointer"}},"Scope of this answer"),Xe.default.createElement("ul",{style:{paddingLeft:18}},_.limitations.map((C,N)=>Xe.default.createElement("li",{key:N},C)))))),u&&Xe.default.createElement("div",{role:"status",style:{color:"var(--color-text-secondary)",fontSize:13}},"Working with your workspace evidence\u2026")),d&&Xe.default.createElement(je,{padding:16,role:"alert",style:{borderColor:"var(--color-warning)",display:"grid",gap:12}},Xe.default.createElement("div",{style:{fontSize:14}},d.message),d.setup&&Xe.default.createElement(ce,{onClick:n,style:{justifySelf:"start"}},"Configure provider \u2192")),Xe.default.createElement(je,{padding:18},Xe.default.createElement("form",{ref:b,onSubmit:_=>{_.preventDefault(),w(s)},style:{display:"grid",gap:14}},Xe.default.createElement("label",{htmlFor:"assistant-question",style:{fontSize:13,fontWeight:600}},"What would you like to do?"),Xe.default.createElement("textarea",{id:"assistant-question",placeholder:"Ask about your evals, or describe an agent to build\u2026",value:s,onChange:_=>l(_.target.value),maxLength:S,rows:3,disabled:u,style:{...W3,resize:"vertical",boxSizing:"border-box"}}),Xe.default.createElement("div",{style:{display:"flex",gap:12,alignItems:"end",flexWrap:"wrap"}},Xe.default.createElement("label",{style:{display:"grid",gap:5,fontSize:11,flex:"1 1 140px"}},"Provider",Xe.default.createElement("select",{"aria-label":"Assistant provider",value:v,disabled:u||!a,onChange:_=>{let A=a.providers.find(C=>C.id===_.target.value);m(!1),t({...e,provider:A?.id||"",model:A?.default_model||""})},style:W3},Xe.default.createElement("option",{value:""},a?"Choose a provider\u2026":"Loading\u2026"),a?.providers?.map(_=>Xe.default.createElement("option",{key:_.id,value:_.id},_.id,_.configured?"":" \xB7 setup needed")))),Xe.default.createElement("label",{style:{display:"grid",gap:5,fontSize:11,flex:"2 1 200px"}},"Model",Xe.default.createElement("input",{"aria-label":"Assistant model",value:x,disabled:u||!a,maxLength:160,onChange:_=>{m(!1),t({...e,model:_.target.value})},style:W3})),Xe.default.createElement(ce,{variant:"primary",type:"submit",disabled:u||!a||!s.trim()||!x.trim()||!o||!f},u?"Working\u2026":"Ask ActiveAgents \u2192")),Xe.default.createElement("label",{style:{display:"flex",gap:9,alignItems:"start",fontSize:12,lineHeight:1.6,color:"var(--color-text-secondary)"}},Xe.default.createElement("input",{type:"checkbox",checked:f,disabled:u||!a,onChange:_=>m(_.target.checked),style:{marginTop:4}}),Xe.default.createElement("span",null,"Allow ",v||"the selected provider"," / ",x||"model"," to process my messages, recent conversation history, and authorized evaluation report excerpts for this conversation.")),Xe.default.createElement("div",{style:{...Xs,lineHeight:1.5}},o?k&&!k.configured?"This provider needs a credential in Settings before the assistant can respond.":"Uses your configured model provider. Agent drafts are reviewed before saving.":"Agent execution is disabled on this dashboard."," ","Reloading or starting a new conversation clears this conversation view. Your provider's data retention settings still apply."))))}var ga=Z(J());var vt=Z(J());var na=Z(J());function M2e(e){let t=e.filter(o=>!o.ok);if(t.length===0)return"ready";let r=t.filter(o=>o.blocking).length,n=`${t.length} ${t.length===1?"item needs":"items need"} action`;return r?`${n} \xB7 ${r} ${r===1?"blocks":"block"} creating a project`:n}function q3({capabilities:e}){let t=e?.items||[],r=t.some(i=>!i.ok&&i.blocking),[n,o]=(0,na.useState)(r),a=M2e(t);return na.default.createElement(Zr,{title:"Before you start",meta:e?.ready?"ready":"action needed",testId:"project-capabilities"},na.default.createElement("button",{type:"button","data-testid":"capabilities-toggle","aria-expanded":n,onClick:()=>o(!n),style:{display:"flex",width:"100%",alignItems:"center",gap:8,padding:"8px 12px",border:0,background:"transparent",cursor:"pointer",fontSize:13,color:r?"var(--color-error-text)":"var(--color-text-secondary)",textAlign:"left"}},na.default.createElement("span",{"aria-hidden":"true"},n?"\u25BE":"\u25B8"),na.default.createElement("span",{"data-testid":"capabilities-summary"},a),na.default.createElement("span",{style:{marginLeft:"auto",fontSize:12,color:"var(--color-text-muted)"}},n?"Hide":"Show"," checklist")),n&&na.default.createElement("ul",{style:{listStyle:"none",margin:0,padding:0}},t.map(i=>na.default.createElement("li",{key:i.key,"data-testid":`capability-${i.key}`,style:{display:"flex",gap:10,padding:"10px 12px",borderTop:"1px solid var(--color-border-light)"}},na.default.createElement(wa,{kind:i.ok?"pass":i.blocking?"fault":"info"}),na.default.createElement("div",{style:{minWidth:0,flex:1}},na.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"baseline",flexWrap:"wrap"}},na.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},i.label),!i.ok&&i.blocking&&na.default.createElement(Ue,{color:"var(--color-error-text)"},"blocks creating a project")),i.detail&&na.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)",overflowWrap:"anywhere"}},i.detail),!i.ok&&i.fix&&na.default.createElement("code",{"data-testid":`capability-fix-${i.key}`,style:{display:"block",marginTop:6,padding:"6px 8px",borderRadius:6,fontFamily:U,fontSize:12,background:"var(--color-muted)",color:"var(--color-text-cell)",overflowWrap:"anywhere"}},i.fix))))))}var rn=Z(J());var RR={width:"100%",padding:"6px 10px",borderRadius:6,fontSize:13,fontFamily:U,border:"1px solid var(--color-border)",background:"var(--color-card)",color:"var(--color-text-primary)"};function cb({rows:e,onChange:t,repository:r}){let[n,o]=(0,rn.useState)(""),a=(s,l)=>t(e.map((u,c)=>c===s?{...u,...l}:u)),i=n?cA(n)||(e.some(s=>s.name===n)?`${n} is already listed.`:null):null;return rn.default.createElement("div",{"data-testid":"project-secrets-form",style:{display:"flex",flexDirection:"column",gap:12}},e.length===0&&rn.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"No environment variables were found in .env.example, .env.sample, .activeagents/sandbox.yml or ENV call sites."),e.map((s,l)=>{let u=cA(s.name),c=s.useOrganizationKey?[]:dA(s.name,s.value);return rn.default.createElement("div",{key:s.name,"data-testid":`secret-row-${s.name}`,style:{borderTop:"1px solid var(--color-border-light)",paddingTop:10}},rn.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},rn.default.createElement("span",{style:{fontFamily:U,fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},s.name),s.required&&rn.default.createElement(ke,{tone:"warning"},"required"),s.set&&rn.default.createElement(ke,{tone:"success"},"set"),s.sources?.length>0&&rn.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},s.sources.join(" \xB7 "))),s.description&&rn.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},s.description),u?rn.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},u):rn.default.createElement(rn.default.Fragment,null,!s.useOrganizationKey&&rn.default.createElement("input",{type:"password",autoComplete:"off",value:s.value,onChange:d=>a(l,{value:d.target.value}),placeholder:s.set?"Leave empty to keep the current value":"Value","aria-label":`${s.name} value`,style:{...RR,marginTop:6}}),s.organizationKey&&rn.default.createElement("label",{style:{display:"flex",gap:6,alignItems:"center",marginTop:6,fontSize:13,color:"var(--color-text-cell)"}},rn.default.createElement("input",{type:"checkbox",checked:s.useOrganizationKey,onChange:d=>a(l,{useOrganizationKey:d.target.checked,consent:!1,value:""})}),"Use the organization's ",s.organizationKey," key"),s.useOrganizationKey&&rn.default.createElement("label",{"data-testid":`secret-consent-${s.name}`,style:{display:"flex",gap:6,alignItems:"flex-start",marginTop:4,fontSize:12,color:"var(--color-warning-text)"}},rn.default.createElement("input",{type:"checkbox",checked:s.consent,onChange:d=>a(l,{consent:d.target.checked})}),"I understand ",r||"the repository","'s code can read the organization's ",s.organizationKey," key. It is read when the sandbox boots and never copied into the project."),c.map(d=>rn.default.createElement("div",{key:d.code,"data-testid":`secret-warning-${d.code}`,style:{marginTop:4,fontSize:12,color:"var(--color-warning-text)"}},d.message))))}),rn.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"flex-start",borderTop:"1px solid var(--color-border-light)",paddingTop:10}},rn.default.createElement("div",{style:{flex:1}},rn.default.createElement(Ue,{as:"label",htmlFor:"project-secret-new-name"},"Another variable"),rn.default.createElement("input",{id:"project-secret-new-name",type:"text",value:n,onChange:s=>o(s.target.value.trim()),placeholder:"NAME",style:{...RR,marginTop:4}}),i&&rn.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},i)),rn.default.createElement(ce,{size:"sm",style:{marginTop:20},disabled:!n||!!i,onClick:()=>{t(OR(e,n)),o("")}},"Add")))}var eee={width:"100%",padding:"6px 10px",borderRadius:6,fontSize:13,border:"1px solid var(--color-border)",background:"var(--color-card)",color:"var(--color-text-primary)"};function I2e({repository:e,preflight:t}){return t?vt.default.createElement("div",{"data-testid":"project-preflight",style:{display:"flex",flexDirection:"column",gap:6}},vt.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},vt.default.createElement("span",{style:{fontFamily:U,fontSize:13,color:"var(--color-text-primary)"}},e),vt.default.createElement(ke,{tone:pA[t.status]||"muted"},t.summary)),vt.default.createElement("div",{style:{fontFamily:U,fontSize:12,color:"var(--color-text-muted)"}},"Ruby ",t.ruby||"unpinned",t.ruby_source?` (${t.ruby_source})`:""," \xB7 railties ",t.railties||"not locked"," ","\xB7 engine ",t.actionagent||"not bundled"," \xB7 ref ",t.ref),t.reasons?.slice(1).map(r=>vt.default.createElement("div",{key:r,style:{fontSize:13,color:"var(--color-error-text)"}},r)),t.warnings?.map(r=>vt.default.createElement("div",{key:r,style:{fontSize:13,color:"var(--color-warning-text)"}},r))):null}function K3({onCreated:e,onCancel:t}){let[r,n]=(0,vt.useState)(null),[o,a]=(0,vt.useState)(null),[i,s]=(0,vt.useState)(!1),[l,u]=(0,vt.useState)(""),[c,d]=(0,vt.useState)(null),[p,f]=(0,vt.useState)(null),[m,y]=(0,vt.useState)(null),[b,g]=(0,vt.useState)(!1),[h,v]=(0,vt.useState)([]),[x,S]=(0,vt.useState)(""),[k,w]=(0,vt.useState)(!1),[_,A]=(0,vt.useState)("/"),[C,N]=(0,vt.useState)(!1),[L,Q]=(0,vt.useState)(null),B=(0,vt.useCallback)(async()=>{let M=await fetch("/api/projects/capabilities"),W=await M.json().catch(()=>({}));if(!M.ok)throw new Error(at(W,`Could not check what this dashboard can do (HTTP ${M.status}).`));return n(W),W},[]),K=(0,vt.useCallback)(async()=>{a(null);let M=await fetch("/api/github_connection/repositories"),W=await M.json().catch(()=>({}));if(W.reconnect_required){s(!0);return}if(!M.ok)throw new Error(at(W,`Could not list repositories (HTTP ${M.status}).`));s(!1),a(W.repositories||[])},[]);(0,vt.useEffect)(()=>{B().then(M=>M.github?.connected?K():null).catch(M=>Q(M.message))},[B,K]);let T=(0,vt.useCallback)(async(M,{typed:W=!1}={})=>{Q(null),f(null),g(!0);try{let Y=`repository=${encodeURIComponent(M)}`,z=await fetch(`/api/projects/preflight?${Y}`),V=await z.json().catch(()=>({}));if(V.reconnect_required){s(!0);return}if(!z.ok){let Me=at(V,`Could not check ${M} (HTTP ${z.status}).`);W?f(Me):Q(Me);return}if(d(V.repository.full_name),y(V.preflight),S(Me=>PR({name:Me,edited:k,fullName:V.repository.full_name})),v([]),V.preflight.status==="unsupported")return;let q=await fetch(`/api/projects/discover_secrets?${Y}`),oe=await q.json().catch(()=>({}));if(!q.ok)throw new Error(at(oe,`Could not read ${M}'s environment variables (HTTP ${q.status}).`));v(sb(oe.variables||[]))}catch(Y){Q(Y.message)}finally{g(!1)}},[k]),O=async()=>{N(!0),Q(null);try{let M=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repository:c,name:x,start_url:_,secrets:lb(h)})}),W=await M.json().catch(()=>({}));if(!M.ok)throw new Error(at(W,`Could not create the project (HTTP ${M.status}).`));e(W.project)}catch(M){Q(M.message)}finally{N(!1)}},I=r?.github,P=MR({github:I,repositories:o,reconnectRequired:i,pendingApproval:I?.pending_approval===!0}),j=b?"Checking the repository\u2026":IR({capabilities:r,preflight:m,secretsProblem:Uh(h)});return vt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"new-project"},vt.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:16}},vt.default.createElement("div",{style:{flex:1}},vt.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"New project"),vt.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)"}},"Boot a repository in a sandbox, installing the engine there when it does not have it, and evaluate an agent against the running app.")),vt.default.createElement(ce,{onClick:t},"Cancel")),L&&vt.default.createElement("div",{style:{padding:"10px 12px",borderRadius:8,fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},L),vt.default.createElement(je,null,vt.default.createElement(Ue,null,"Repository"),vt.default.createElement("div",{style:{marginTop:8}},vt.default.createElement(_f,{mode:"single",state:P,repositories:o||[],filter:l,onFilterChange:u,selected:c,onSelect:M=>T(M),settingsHref:Re("/settings?tab=integrations"),missingRepositoryUrl:I?.access_settings_url,onRefresh:()=>K().catch(M=>Q(M.message)),onTypeName:M=>T(M,{typed:!0}),typedNameError:p})),m&&vt.default.createElement("div",{style:{marginTop:12}},vt.default.createElement(I2e,{repository:c,preflight:m}))),r&&vt.default.createElement(q3,{capabilities:r}),m&&m.status!=="unsupported"&&vt.default.createElement(je,null,vt.default.createElement(Ue,null,"Project"),vt.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:12,marginTop:8}},vt.default.createElement("label",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Name",vt.default.createElement("input",{type:"text",value:x,onChange:M=>{S(M.target.value),w(M.target.value!=="")},style:{...eee,marginTop:4}})),vt.default.createElement("label",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Start URL (must not answer 5xx once booted)",vt.default.createElement("input",{type:"text",value:_,onChange:M=>A(M.target.value),style:{...eee,marginTop:4,fontFamily:U}}))),vt.default.createElement("div",{style:{marginTop:16}},vt.default.createElement(Ue,null,"Secrets the boot needs"),vt.default.createElement("div",{style:{marginTop:8}},vt.default.createElement(cb,{rows:h,onChange:v,repository:c})))),vt.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12,justifyContent:"flex-end"}},j&&vt.default.createElement("span",{"data-testid":"create-problem",style:{fontSize:13,color:"var(--color-text-secondary)"}},j),vt.default.createElement(ce,{variant:"primary",onClick:O,disabled:!!j||C,testId:"create-project"},C?"Creating\u2026":"Create project")))}var Ve=Z(J());var Lr=Z(J());var D2e={success:"success",error:"error",progress:"info",neutral:"muted"};function V3({project:e}){let[t,r]=(0,Lr.useState)(null),[n,o]=(0,Lr.useState)(null),[a,i]=(0,Lr.useState)(""),[s,l]=(0,Lr.useState)(!1),u=e.sandbox,c=e.sandbox_state==="ready"&&!!u?.session_id,d=(0,Lr.useCallback)(async()=>{let m=await fetch(`/api/interactions?project_id=${e.id}`),y=await m.json().catch(()=>({}));if(!m.ok){o(at(y,`Could not list the conversations (HTTP ${m.status}).`));return}r(y.interactions||[])},[e.id]);(0,Lr.useEffect)(()=>{d()},[d]);let p=async m=>{m.preventDefault();let y=a.trim();if(!(!y||!c)){l(!0),o(null);try{let b=await fetch(`/api/sandboxes/${encodeURIComponent(u.session_id)}/code_sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:y,origin:"chat"})}),g=await b.json().catch(()=>({}));if(!b.ok)throw new Error(at(g,`The conversation did not start (HTTP ${b.status}).`));lt(ms(g.code_session.id))}catch(b){o(b.message),l(!1)}}},f={margin:0,fontSize:13,color:"var(--color-text-secondary)"};return Lr.default.createElement("div",{style:{display:"grid",gap:12},"data-testid":"project-sessions"},Lr.default.createElement(je,null,Lr.default.createElement("form",{onSubmit:p,style:{display:"grid",gap:8}},Lr.default.createElement(Ue,{as:"label",htmlFor:`project-${e.id}-chat`},"Chat with Claude Code"),Lr.default.createElement("textarea",{id:`project-${e.id}-chat`,value:a,onChange:m=>i(m.target.value),rows:3,disabled:!c,placeholder:c?`What should Claude Code do in ${e.repository}?`:"Boot the sandbox to start a conversation",style:{width:"100%",fontSize:13,padding:8,borderRadius:6,border:"1px solid var(--color-border)",background:"var(--color-surface)",color:"var(--color-text-primary)"}}),Lr.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:8}},Lr.default.createElement("p",{style:f},"It edits the checkout and never commits or pushes. The conversation opens with the sandbox's browser beside it."),Lr.default.createElement(ce,{variant:"primary",type:"submit",disabled:!c||s||!a.trim(),testId:"project-start-conversation"},s?"Starting\u2026":"Start")),n&&Lr.default.createElement("p",{role:"alert",style:{...f,color:"var(--color-error-text)"}},n))),Lr.default.createElement(je,null,Lr.default.createElement(Ue,null,"Conversations"),t===null&&!n&&Lr.default.createElement("p",{style:f},"Loading\u2026"),t?.length===0&&Lr.default.createElement("p",{style:f},"No conversations yet."),Lr.default.createElement("ul",{style:{listStyle:"none",margin:"8px 0 0",padding:0,display:"grid",gap:8}},(t||[]).map(m=>{let y=fs(m.status),b=ms(ef(m.id));return Lr.default.createElement("li",{key:m.id},Lr.default.createElement("a",{href:Re(b),onClick:g=>{g.preventDefault(),lt(b)},style:{display:"grid",gap:2,textDecoration:"none",color:"var(--color-text-primary)"},"data-testid":"project-conversation"},Lr.default.createElement("span",{style:{display:"flex",gap:8,alignItems:"center"}},Lr.default.createElement(ke,{tone:D2e[y.tone]||"muted"},y.label),Lr.default.createElement("span",{style:{fontSize:13}},m.preview?.input||m.display_name)),Lr.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)",fontFamily:U}},u2(m))))}))))}var sr=Z(J());function tee(e){let t=Number(e)||0;return t>0?`Waiting for you: ${t}`:null}function G3(e){return(e?.options||[]).map(t=>{if(t&&typeof t=="object"){let r=String(t.value??t.label??"");return{value:r,label:String(t.label??r)}}return{value:String(t),label:String(t)}})}function ree(e,t){if(!e||e.kind==="confirm")return null;let r=typeof t=="string"?t:"";return r.trim()?e.kind==="secret"&&r.length<8?"A secret is at least 8 characters.":e.kind==="choice"&&!G3(e).some(n=>n.value===r)?"Choose one of the answers.":null:e.kind==="choice"?"Choose an answer.":"Type an answer."}function nee(e,t){return e?.kind==="confirm"?{answer:t===!0}:{answer:t}}function oee(e){return e?e.available?e.last_run?`The setup assistant ${{awaiting_input:"is waiting for you",running:"is working",pending:"is starting",complete:"finished",failed:"failed"}[e.last_run.status]||e.last_run.status}.`:e.auto?"When a boot fails, the setup assistant reads its logs and asks for what is missing.":"The setup assistant starts only when you ask for it.":e.reason||"The setup assistant is not available.":null}function aee(e){return["pending","running","awaiting_input"].includes(e?.setup?.last_run?.status)||Y3(e)||(Number(e?.pending_input_requests)||0)>0}var j2e=6e4;function iee(e,t,r=Date.now()){return e?.sandbox_state!=="failed"||e?.setup?.auto===!1||t==null||!e.setup?.claude_code?.available&&!e.setup?.available?!1:r-t[n.name,o]));return Object.keys(e).sort((n,o)=>(r.get(n)??1/0)-(r.get(o)??1/0)||n.localeCompare(o)).map(n=>{let o=(t.find(i=>i.name===n)?.columns||[]).map(i=>i.name),a=i=>[...i].sort((s,l)=>(o.indexOf(s)+1||1/0)-(o.indexOf(l)+1||1/0));return{model:n,filterable:a(e[n].filterable),returns:a(e[n].returns)}})}function dee(e,t=[],r=[]){let n=o=>JSON.stringify(o.map(a=>({model:a.model,filterable:[...a.filterable||[]].sort(),returns:[...a.returns||[]].sort()})).sort((a,i)=>a.model.localeCompare(i.model)));return n(Z3(e,r))!==n(t)}function pee(e){return e?e.status==="queued"||e.status==="publishing"?{label:"publishing\u2026",tone:"info"}:e.status==="failed"?e.head_commit&&!e.number?{label:"branch published, pull request not opened",tone:"error"}:{label:"failed",tone:"error"}:e.state==="merged"?{label:"merged",tone:"success"}:e.state==="closed"?{label:"closed",tone:"muted"}:e.number?{label:e.draft?"draft open":"open",tone:"accent"}:{label:"branch published",tone:"warning"}:{label:"not opened",tone:"muted"}}function fee(e){return e?e.status==="queued"||e.status==="publishing"?2e3:e.number&&!["merged","closed"].includes(e.state)?6e4:null:null}function mee(e){let t=e?.status==="queued"||e?.status==="publishing",r=!!e?.number&&!["merged","closed"].includes(e?.state),n=!e||["merged","closed"].includes(e.state)||!e.number&&!e.head_commit&&e.status==="failed",o=null;return!t&&e?.head_commit&&!e.number&&(o=e.status==="draft_refused"?"regular":"draft"),{canOpen:!t&&n,canUpdate:!t&&r,openBranch:o}}function gee(e,t=[],r=""){let n=new URLSearchParams;for(let a of t)n.append("paths[]",a);r&&n.set("title",r);let o=n.toString();return`/api/projects/${e}/install_pull_request/patch${o?`?${o}`:""}`}async function hee(e){return e.json().catch(()=>({}))}function J3({project:e,onSaved:t,onConfirmationRequired:r}){let[n,o]=(0,sr.useState)(null),[a,i]=(0,sr.useState)({}),[s,l]=(0,sr.useState)(null),[u,c]=(0,sr.useState)(!1),d=e.schema_tools||[],p=(0,sr.useCallback)(async()=>{let m=await fetch(`/api/projects/${e.id}/app_models`),y=await hee(m);if(m.status===409){o(null);return}if(!m.ok)throw new Error(at(y,`Could not list the app's models (HTTP ${m.status}).`));o(y.models||[]),i(uee(y.schema_tools||[]))},[e.id]);(0,sr.useEffect)(()=>{e.app_models_listed&&p().catch(m=>l(m.message))},[p,e.app_models_listed]);let f=async(m,y=!1)=>{c(!0),l(null);try{let b=await fetch(`/api/projects/${e.id}/schema_tools`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({schema_tools:Z3(a,n||[]),apply:m,...y?{confirm:!0}:{}})}),g=await hee(b);if(b.status===409&&g.code==="confirmation_required"){r?.(g.confirmation,()=>f(m,!0));return}if(!b.ok)throw new Error(at(g,`Could not save what the assistant may read (HTTP ${b.status}).`));t?.(g.project)}catch(b){l(b.message)}finally{c(!1)}};return sr.default.createElement($2e,{listed:e.app_models_listed,models:n,selection:a,changed:n?dee(a,d,n):!1,busy:u,error:s,onToggle:(m,y,b)=>i(g=>cee(g,m,y,b)),onSave:()=>f(!1),onSaveAndRestart:()=>f(!0)})}function $2e({listed:e,models:t,selection:r,changed:n,busy:o,error:a,onToggle:i,onSave:s,onSaveAndRestart:l}){let u=(0,sr.useMemo)(()=>Object.keys(r||{}),[r]);return sr.default.createElement(Zr,{title:"Choose what the assistant may read",meta:`${u.length} ${u.length===1?"model":"models"}`,testId:"project-assistant-reads"},sr.default.createElement("p",{style:{margin:0,padding:"10px 12px",fontSize:13,color:"var(--color-text-secondary)"}},"Each model you choose gets find, count and get tools that filter on and return only the columns ticked here. Columns that look like secrets are never listed. The tools are written into the sandbox's checkout on every boot, and go into the install pull request."),!e&&sr.default.createElement("p",{style:{margin:0,padding:"0 12px 12px",fontSize:13,color:"var(--color-text-secondary)"}},"Boot the project first: a boot lists the app's models."),a&&sr.default.createElement("div",{style:{padding:"8px 12px",fontSize:13,color:"var(--color-error-text)"}},a),e&&t&&t.length===0&&sr.default.createElement("p",{style:{margin:0,padding:"0 12px 12px",fontSize:13,color:"var(--color-text-secondary)"}},"The app has no models with a table."),(t||[]).map(c=>{let d=r?.[c.name];return sr.default.createElement("details",{key:c.name,open:!!d,"data-testid":`assistant-model-${c.name}`,style:{borderTop:"1px solid var(--color-border-light)",padding:"8px 12px"}},sr.default.createElement("summary",{style:{cursor:"pointer",display:"flex",gap:8,alignItems:"center"}},sr.default.createElement("span",{style:{fontFamily:U,fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},c.name),sr.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-muted)"}},c.table),d&&sr.default.createElement(ke,{tone:"accent"},`${d.filterable.size} filter \xB7 ${d.returns.size} read`)),sr.default.createElement("table",{style:{marginTop:6,borderCollapse:"collapse",fontSize:12}},sr.default.createElement("thead",null,sr.default.createElement("tr",{style:{color:"var(--color-text-muted)",textAlign:"left"}},sr.default.createElement("th",{style:{padding:"2px 12px 2px 0",fontWeight:500}},"Column"),sr.default.createElement("th",{style:{padding:"2px 12px",fontWeight:500}},"Filter on"),sr.default.createElement("th",{style:{padding:"2px 12px",fontWeight:500}},"Read back"))),sr.default.createElement("tbody",null,c.columns.map(p=>sr.default.createElement("tr",{key:p.name},sr.default.createElement("td",{style:{padding:"2px 12px 2px 0",fontFamily:U,color:"var(--color-text-primary)"}},p.name," ",sr.default.createElement("span",{style:{color:"var(--color-text-muted)"}},p.type)),["filterable","returns"].map(f=>sr.default.createElement("td",{key:f,style:{padding:"2px 12px",textAlign:"center"}},sr.default.createElement("input",{type:"checkbox","aria-label":`${f==="filterable"?"Filter on":"Read back"} ${c.name}.${p.name}`,checked:!!d?.[f]?.has(p.name),disabled:o,onChange:()=>i(c.name,f,p.name)}))))))))}),e&&t&&t.length>0&&sr.default.createElement("div",{style:{display:"flex",gap:8,padding:"10px 12px",borderTop:"1px solid var(--color-border-light)"}},sr.default.createElement(ce,{size:"sm",onClick:s,disabled:o||!n},"Save"),sr.default.createElement(ce,{size:"sm",variant:"primary",onClick:l,disabled:o,testId:"assistant-reads-restart"},o?"Saving\u2026":"Save and restart the sandbox")))}var ei=Z(J());function Q3({boot:e,logTail:t,error:r,sandboxState:n,waiting:o}){let a=e?.steps||[];return ei.default.createElement(Zr,{title:"Boot",meta:tee(o)||n||"none",testId:"project-boot-progress"},a.length===0&&ei.default.createElement("p",{style:{margin:0,padding:12,fontSize:13,color:"var(--color-text-secondary)"}},n==="booting"?"Waiting for the sandbox to report its steps\u2026":"No boot to show yet."),a.length>0&&ei.default.createElement("ol",{style:{listStyle:"none",margin:0,padding:0}},a.map(i=>ei.default.createElement("li",{key:i.name,"data-testid":`boot-step-${i.name}`,style:{display:"grid",gridTemplateColumns:"92px 170px 1fr 80px",gap:10,alignItems:"baseline",padding:"8px 12px",borderTop:"1px solid var(--color-border-light)"}},ei.default.createElement(ke,{tone:$R[i.status]||"muted"},i.status),ei.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-primary)"}},DR(i.name)," ",ei.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},i.name)),ei.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)",overflowWrap:"anywhere"}},i.detail||""),ei.default.createElement("span",{style:{fontFamily:U,fontSize:12,color:"var(--color-text-muted)",textAlign:"right"}},i.status==="pending"?"":jR(i.duration_ms))))),r&&ei.default.createElement("div",{"data-testid":"boot-error",style:{padding:"8px 12px",fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)",whiteSpace:"pre-wrap"}},r),t?.text&&ei.default.createElement("div",{style:{borderTop:"1px solid var(--color-border-light)"}},ei.default.createElement("div",{style:{padding:"6px 12px",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},t.truncated?"last lines of ":"",t.step,".log"),ei.default.createElement("pre",{"data-testid":"boot-log-tail",style:{margin:0,padding:"8px 12px",maxHeight:280,overflow:"auto",fontFamily:U,fontSize:12,background:"var(--color-muted)",color:"var(--color-text-cell)",whiteSpace:"pre-wrap"}},t.text)))}var Ol=Z(J());var yee="/settings?tab=integrations";function R3({project:e,modes:t=[],watchOnOpen:r=!1,onChange:n}){let o=e.sandbox,a=e.sandbox_state==="ready"&&!!o?.session_id,i={margin:0,fontSize:13,color:"var(--color-text-secondary)"},s;return t.length===0?s=Ol.default.createElement("p",{style:i},"This dashboard's sandbox backend runs no browsers. The project's agent works through the app's tools."):a?s=Ol.default.createElement(Ol.default.Fragment,null,Ol.default.createElement("p",{style:i},"A browser of the sandbox's own, opened on ",e.repository,"'s running app. Watch it live, take over to click, type and upload files, and hand back. Agent runs reach it as ",Ol.default.createElement("span",{style:{fontFamily:U}},"browser:",o.session_id),"."),Ol.default.createElement(kf,{key:o.session_id,sandbox:o,modes:t,watchOnOpen:r,onChange:n})):s=Ol.default.createElement("p",{style:i},"Boot the sandbox to start its browser. It opens on the running app, and you can watch it live and take over."),Ol.default.createElement(Zr,{title:"Browser",meta:Ol.default.createElement(Gr,{href:Re(yee),onClick:()=>lt(yee)},"Manage runtimes"),testId:"project-browser",bodyStyle:{padding:12,display:"flex",flexDirection:"column",gap:8}},s)}var Un=Z(J());var L2e=e=>e?new Date(e).toLocaleString():"\u2014",z2e={entered:()=>"entered",organization_key:e=>`organization's ${e.provider} key`,setup_assistant:()=>"set by the setup assistant, not secret"};function ej({secrets:e,onReplace:t,onDelete:r,error:n}){let[o,a]=(0,Un.useState)(null),[i,s]=(0,Un.useState)(""),[l,u]=(0,Un.useState)(!1),c=o?dA(o,i):[],d=async p=>{u(!0);try{await p()}catch{return}finally{u(!1)}};return Un.default.createElement(Zr,{title:"Environment",meta:`${e.length} ${e.length===1?"secret":"secrets"}`,testId:"project-environment"},n&&Un.default.createElement("div",{style:{padding:"8px 12px",fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},n),e.length===0&&Un.default.createElement("p",{style:{margin:0,padding:12,fontSize:13,color:"var(--color-text-secondary)"}},"This project sets no environment variables."),Un.default.createElement("ul",{style:{listStyle:"none",margin:0,padding:0}},e.map(p=>Un.default.createElement("li",{key:p.name,"data-testid":`environment-${p.name}`,style:{padding:"10px 12px",borderTop:"1px solid var(--color-border-light)"}},Un.default.createElement("div",{style:{display:"flex",gap:10,alignItems:"center",flexWrap:"wrap"}},Un.default.createElement("span",{style:{fontFamily:U,fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},p.name),Un.default.createElement(ke,{tone:p.source==="organization_key"?"info":"muted"},z2e[p.source]?.(p)||"entered"),Un.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-muted)"}},p.set_by?.name?`set by ${p.set_by.name}`:"set"," \xB7 ",L2e(p.updated_at)),Un.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:6}},p.source!=="organization_key"&&Un.default.createElement(ce,{size:"sm",onClick:()=>{a(p.name),s("")},disabled:l},"Replace"),Un.default.createElement(ce,{size:"sm",variant:"danger",onClick:()=>d(()=>r(p.name)),disabled:l},"Delete"))),p.source==="setup_assistant"&&typeof p.value=="string"&&Un.default.createElement("div",{style:{marginTop:4,fontFamily:U,fontSize:12,color:"var(--color-text-secondary)",wordBreak:"break-all"}},p.name,"=",p.value),o===p.name&&Un.default.createElement("form",{style:{display:"flex",gap:6,marginTop:8,flexWrap:"wrap"},onSubmit:f=>{f.preventDefault(),i&&d(async()=>{await t(p.name,i),a(null),s("")})}},Un.default.createElement("input",{type:"password",autoComplete:"off",value:i,onChange:f=>s(f.target.value),placeholder:"New value","aria-label":`New value for ${p.name}`,style:{flex:1,minWidth:200,padding:"6px 10px",borderRadius:6,fontFamily:U,fontSize:13,border:"1px solid var(--color-border)",background:"var(--color-card)",color:"var(--color-text-primary)"}}),Un.default.createElement(ce,{size:"sm",variant:"primary",type:"submit",disabled:!i||l},"Save"),Un.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>a(null)},"Cancel"),c.map(f=>Un.default.createElement("div",{key:f.code,style:{width:"100%",fontSize:12,color:"var(--color-warning-text)"}},f.message)))))))}var Wn=Z(J());var xd=Z(J());var B2e=["proposed","edited"],nj={answerable:{label:"answerable",tone:"success",title:"Every expected tool is one the agent can call."},needs_tool:{label:"needs a tool",tone:"warning",title:"The agent cannot call every tool a good answer needs."},unverified:{label:"unverified",tone:"muted",title:"The agent's tools could not be read when this was checked."}},hA={pending:"info",running:"info",review:"accent",closed:"success",failed:"error"},vee={minutes:"Minutes",steps:"Browser steps",cost:"Cost"};function bee(e){return e?.status==="pending"||e?.status==="running"}function yA(e){return B2e.includes(e.state)}function oj(e=[],t=null){let r=e.filter(n=>yA(n)&&n.verdict==="answerable").map(n=>n.id);return Number.isInteger(t)&&t>=0?r.slice(0,t):r}function wee(e=[],t=[]){let r=new Set(t.filter(yA).map(n=>n.id));return e.filter(n=>r.has(n))}function xee(e,t){return e==="cost"?`$${Number(t||0).toFixed(2)}`:String(Math.round(Number(t||0)*10)/10)}function See(e={},t={}){return Object.keys(vee).flatMap(r=>{let n=Number(e?.[r]);if(!Number.isFinite(n)||n<=0)return[];let o=Math.max(Number(t?.[r])||0,0);return[{key:r,label:vee[r],used:o,limit:n,ratio:Math.min(o/n,1),text:`${xee(r,o)} / ${xee(r,n)}`}]})}function kee(e){let t=e?.provenance||{},r=t.recording_id;if(!Number.isInteger(r)||r<=0)return null;let n=t.range||{},o=["from_ms","to_ms"].filter(a=>Number.isInteger(n[a])).map(a=>`${a}=${n[a]}`);return`/replay/${r}${o.length?`?${o.join("&")}`:""}`}function _ee({evaluation:e=null,candidates:t=[],selectedIds:r=[]}={}){let n=new Set(r),o=t.filter(s=>n.has(s.id)&&!s.scenario_key).length,a=(e?.enabled_scenario_count||0)+o,i=Math.max(e?.model_count||1,1);return{added:o,scenarios:a,models:i,executions:a*i}}function Cee(e,t=null){let r=`${e.scenarios} scenario${e.scenarios===1?"":"s"}`,n=`${e.models} model${e.models===1?"":"s"}`,o=`The run uses ${e.executions} execution${e.executions===1?"":"s"} (${r} \xD7 ${n}).`;return Number.isFinite(t)?`${o} ${t} remaining on your plan.`:o}function tj(e){return(e||[]).join(", ")}function rj(e){return String(e||"").split(",").map(t=>t.trim()).filter(Boolean)}function Aee(e){let t=e.expectations||{};return{prompt:e.prompt||"",group:e.group||"",rubric:e.notes||"",tools:tj(t.tools),contains:tj(t.contains),not_contains:tj(t.not_contains)}}function Eee(e){return{prompt:e.prompt.trim(),group:e.group.trim(),rubric:e.rubric.trim(),tools:rj(e.tools),contains:rj(e.contains),not_contains:rj(e.not_contains)}}function vA(e){return`/explorations/${e}`}function xA(e){return{explorationId:String(e||"").match(/^\/explorations\/(\d+)/)?.[1]||null}}function Cf({explorations:e,onOpen:t,selectedId:r=null}){return xd.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8},"data-testid":"exploration-list"},e.map(n=>{let o=n.counts||{},a=String(n.id)===String(r);return xd.default.createElement(je,{key:n.id,padding:12,testId:`exploration-${n.id}`,style:a?{borderColor:"var(--color-accent-ui)"}:void 0},xd.default.createElement("button",{type:"button",onClick:()=>t(n),style:{all:"unset",cursor:"pointer",display:"flex",gap:8,alignItems:"center",width:"100%",flexWrap:"wrap"}},xd.default.createElement("span",{style:{fontFamily:U,fontSize:12,color:"var(--color-text-primary)"}},"#",n.id),xd.default.createElement(ke,{tone:hA[n.status]||"muted"},n.status),xd.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},n.source),xd.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},o.total||0," found \xB7 ",o.open||0," to review \xB7 ",o.accepted||0," accepted \xB7 ",wo(n.created_at))))}))}var _t=Z(J());var Af=Z(J());function aj({budget:e,usage:t}){let r=See(e,t);return r.length===0?null:Af.default.createElement(Zr,{title:"Budget",testId:"exploration-budget",bodyStyle:{padding:"10px 12px",display:"flex",flexDirection:"column",gap:8}},r.map(n=>{let o=n.ratio>=1?Dn.error:n.ratio>=.8?Dn.warning:Dn.info;return Af.default.createElement("div",{key:n.key,"data-testid":`exploration-budget-${n.key}`,style:{display:"flex",alignItems:"center",gap:10}},Af.default.createElement("span",{style:{width:110,fontSize:12,color:"var(--color-text-secondary)"}},n.label),Af.default.createElement("span",{style:{flex:1,height:6,borderRadius:999,background:"var(--color-muted)",overflow:"hidden"}},Af.default.createElement("span",{style:{display:"block",width:`${Math.round(n.ratio*100)}%`,height:"100%",background:o.strong}})),Af.default.createElement("span",{style:{fontFamily:U,fontSize:11,minWidth:90,textAlign:"right",color:o.text}},n.text))}))}var Dt=Z(J());var F2e={proposed:"info",edited:"info",accepted:"success",rejected:"muted"},Wh={width:"100%",boxSizing:"border-box",padding:"6px 8px",borderRadius:6,fontSize:13,fontFamily:"inherit",background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"};function Hh({label:e,children:t}){return Dt.default.createElement("label",{style:{display:"flex",flexDirection:"column",gap:4,fontSize:12,color:"var(--color-text-secondary)"}},e,t)}function ij({candidate:e,selected:t,onToggle:r,onSave:n,onState:o,busy:a,problem:i,agentId:s}){let[l,u]=(0,Dt.useState)(null),c=nj[e.verdict]||nj.unverified,d=e.expectations||{},p=new Set(e.missing_tools||[]),f=e.provenance||{},m=kee(e),y=yA(e),b=h=>v=>u({...l,[h]:v.target.value}),g=async()=>{await n(e.id,Eee(l))&&u(null)};return Dt.default.createElement("li",{"data-testid":`exploration-candidate-${e.id}`,style:{listStyle:"none",padding:"12px 0",borderTop:"1px solid var(--color-border-light)",display:"flex",gap:10}},Dt.default.createElement("input",{type:"checkbox","aria-label":`Accept candidate ${e.id}`,checked:t,disabled:!y||a,onChange:()=>r(e.id),style:{marginTop:3,alignSelf:"flex-start"}}),Dt.default.createElement("div",{style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",gap:6}},Dt.default.createElement("div",{style:{display:"flex",gap:6,alignItems:"center",flexWrap:"wrap"}},Dt.default.createElement("span",{style:{fontSize:14,fontWeight:600,color:"var(--color-text-primary)"}},e.prompt),Dt.default.createElement(ke,{tone:c.tone,title:c.title,testId:`candidate-verdict-${e.id}`},c.label),Dt.default.createElement(ke,{tone:F2e[e.state]||"muted"},e.state),e.group&&Dt.default.createElement(ke,null,e.group),e.scenario_key&&Dt.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},e.scenario_key)),l?Dt.default.createElement("div",{style:{display:"grid",gap:8},"data-testid":`candidate-edit-${e.id}`},Dt.default.createElement(Hh,{label:"Prompt"},Dt.default.createElement("input",{style:Wh,value:l.prompt,onChange:b("prompt")})),Dt.default.createElement(Hh,{label:"Rubric: what a good answer does (the judge grades against it)"},Dt.default.createElement("textarea",{style:{...Wh,minHeight:60},value:l.rubric,onChange:b("rubric")})),Dt.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(160px, 1fr))",gap:8}},Dt.default.createElement(Hh,{label:"Group"},Dt.default.createElement("input",{style:Wh,value:l.group,onChange:b("group")})),Dt.default.createElement(Hh,{label:"Tools (comma-separated)"},Dt.default.createElement("input",{style:Wh,value:l.tools,onChange:b("tools")})),Dt.default.createElement(Hh,{label:"Contains"},Dt.default.createElement("input",{style:Wh,value:l.contains,onChange:b("contains")})),Dt.default.createElement(Hh,{label:"Does not contain"},Dt.default.createElement("input",{style:Wh,value:l.not_contains,onChange:b("not_contains")}))),Dt.default.createElement("div",{style:{display:"flex",gap:8}},Dt.default.createElement(ce,{size:"sm",variant:"primary",onClick:g,disabled:a||!l.prompt.trim()},"Save"),Dt.default.createElement(ce,{size:"sm",onClick:()=>u(null),disabled:a},"Cancel"))):Dt.default.createElement(Dt.default.Fragment,null,Dt.default.createElement("div",{style:{fontSize:13,color:e.notes?"var(--color-text-cell)":"var(--color-text-muted)"}},e.notes||"No rubric yet: the judge has nothing to grade the answer against."),(d.tools?.length>0||d.contains?.length>0||d.not_contains?.length>0)&&Dt.default.createElement("div",{style:{display:"flex",gap:6,flexWrap:"wrap",alignItems:"center",fontFamily:U,fontSize:11}},(d.tools||[]).map(h=>Dt.default.createElement(ke,{key:h,tone:p.has(h)?"warning":"muted",title:p.has(h)?"The agent cannot call this tool":void 0},p.has(h)?`missing ${h}`:h)),(d.contains||[]).map(h=>Dt.default.createElement(ke,{key:`c-${h}`},"contains \u201C",h,"\u201D")),(d.not_contains||[]).map(h=>Dt.default.createElement(ke,{key:`n-${h}`},"not \u201C",h,"\u201D")))),i&&Dt.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},i),(f.steps?.length>0||f.urls?.length>0||f.screenshots?.length>0||m)&&Dt.default.createElement("details",{style:{fontSize:12,color:"var(--color-text-secondary)"}},Dt.default.createElement("summary",{style:{cursor:"pointer"}},"How it was found"),f.urls?.length>0&&Dt.default.createElement("div",{style:{marginTop:4,fontFamily:U,fontSize:11}},f.urls.join(" \xB7 ")),f.steps?.length>0&&Dt.default.createElement("ol",{style:{margin:"4px 0 0",paddingLeft:18}},f.steps.map((h,v)=>Dt.default.createElement("li",{key:v},h))),f.screenshots?.length>0&&Dt.default.createElement("div",{style:{marginTop:4,fontFamily:U,fontSize:11}},"Screenshots: ",f.screenshots.join(", "))),!l&&Dt.default.createElement("div",{style:{display:"flex",gap:6,flexWrap:"wrap"}},m&&Dt.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(m),testId:`candidate-replay-${e.id}`},"Replay"),e.verdict==="needs_tool"&&s&&Dt.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(`/agents/${s}/edit`)},"Give the agent the tool"),e.state!=="rejected"&&Dt.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>u(Aee(e)),disabled:a},"Edit"),y&&Dt.default.createElement(ce,{size:"sm",variant:"danger",onClick:()=>o(e.id,"rejected"),disabled:a},"Reject"),e.state==="rejected"&&Dt.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>o(e.id,"proposed"),disabled:a},"Reconsider"))))}var sj={minutes:15,steps:150},Nee={minutes:120,steps:1e3,cost:100},Tee={minutes:"Minutes",steps:"Browser steps",cost:"Cost cap"};function Pee(e={}){let t={};for(let r of["minutes","steps","cost"]){let n=String(e[r]??"").trim();if(n==="")continue;let o=Number(n),a=r!=="cost";if(!Number.isFinite(o)||o<=0||a&&!Number.isInteger(o))return{error:`${Tee[r]} must be a ${a?"whole number":"number"} above 0.`};if(o>Nee[r])return{error:`${Tee[r]} may be at most ${Nee[r]}.`};t[r]=o}return{budget:t}}var Oee={sandbox_not_ready:"Boot the project first: the explorer walks the app its sandbox serves.",exploration_running:"An exploration of this project is already walking the app. Stop it or wait for it to finish.",no_target:"Choose the agent to evaluate first: the explorer proposes questions for that agent.",browser_unavailable:null};function Mee(e,t={}){return e===402?t.message||t.error||"Your plan has no explorations left.":t.code&&Oee[t.code]?Oee[t.code]:t.error||`The exploration did not start (HTTP ${e}).`}var U2e={finished:"The explorer finished.",budget_minutes:"Its time budget ran out.",budget_steps:"Its browser step budget ran out.",budget_cost:"Its cost budget ran out.",budget_context:"Its conversation grew too long for the model.",stopped:"Stopped for review.",error:"It failed."};function Iee(e){return e?U2e[e]||e:null}var W2e={signed_in:"success",failed:"error",unsupported:"warning",error:"error"};function Dee(e){return e?{tone:W2e[e.status]||"muted",text:e.message||e.status}:null}function jee(e={},{passwordSaved:t=!1}={}){let r={};for(let n of["login_url","login","password","login_field","password_field","submit_field"]){let o=String(e[n]??"").trim();o&&(r[n]=n==="password"?String(e[n]):o)}return!r.password&&!t?{error:"Enter the test account's password."}:r.login_url&&(!r.login_url.startsWith("/")||r.login_url.startsWith("//"))?{error:"The login URL must be a path on the app, such as /users/sign_in."}:{payload:r}}function lj(e=[]){return e.filter(t=>!t.kind||t.kind==="env")}async function $ee(e){return e.json().catch(()=>({}))}var q2e={explorer:"explorer agent",external:"submitted from outside the dashboard"};function Ef({explorationId:e,onLoaded:t,scenarioSet:r=null,requireScenarioSet:n=!1,onAccepted:o}){let[a,i]=(0,_t.useState)(null),[s,l]=(0,_t.useState)(null),[u,c]=(0,_t.useState)([]),[d,p]=(0,_t.useState)(!1),[f,m]=(0,_t.useState)(!1),[y,b]=(0,_t.useState)({}),[g,h]=(0,_t.useState)(null),[v,x]=(0,_t.useState)(null),S=(0,_t.useRef)(t);S.current=t;let k=(0,_t.useCallback)(async()=>{let M=await fetch(`/api/explorations/${e}`),W=await $ee(M);if(!M.ok)throw new Error(at(W,`Could not load the exploration (HTTP ${M.status}).`));return i(W),S.current?.(W),W},[e]);(0,_t.useEffect)(()=>{k().catch(M=>l(M.message))},[k]);let w=a?.candidates||[];(0,_t.useEffect)(()=>{a&&c(M=>d?wee(M,w):oj(w,a.preselect_limit))},[a,d]);let _=bee(a?.exploration);(0,_t.useEffect)(()=>{if(!_)return;let M=setInterval(()=>k().catch(W=>l(W.message)),3e3);return()=>clearInterval(M)},[_,k]),$h("ExplorationChannel",{exploration_id:e},M=>{Lh(M)&&k().catch(()=>{})},!!e);let A=async(M,W,Y)=>{m(!0),l(null);try{let z=await fetch(M,{method:W,headers:{"Content-Type":"application/json"},body:JSON.stringify(Y||{})}),V=await $ee(z);return{res:z,data:V}}finally{m(!1)}},C=async(M,W)=>{let{res:Y,data:z}=await A(`/api/explorations/${e}/candidates/${M}`,"PATCH",W);return Y.ok?(b({...y,[M]:null}),await k(),!0):(b({...y,[M]:at(z,`Could not save the candidate (HTTP ${Y.status}).`)}),!1)},N=async(M,W)=>C(M,{state:W}),L=M=>{p(!0),c(W=>W.includes(M)?W.filter(Y=>Y!==M):[...W,M])},Q=async()=>{let M={candidate_ids:u,...r?{scenario_set_id:r.id}:{}},{res:W,data:Y}=await A(`/api/explorations/${e}/accept`,"POST",M);return W.ok?(b({}),h({accepted:Y.accepted,evaluation:r?null:Y.evaluation,scenarioSet:Y.scenario_set||null}),o?.(Y),p(!1),i(Y),S.current?.(Y),Y):(b(Y.problems||{}),l(at(Y,`Could not accept the candidates (HTTP ${W.status}).`)),null)},B=async(M,W,{confirm:Y=!1}={})=>{let z=W?`/api/projects/${W.id}/run_evaluation`:`/api/evaluations/${M.id}/run`,{res:V,data:q}=await A(z,"POST",Y?{confirm:!0}:{});if(V.status===409&&q.code==="confirmation_required"){x({question:q.confirmation,evaluation:M,project:W});return}if(!V.ok){l(at(q,`The scenarios were accepted, but the run did not start (HTTP ${V.status}).`));return}x(null),lt(`/evaluations/${q.run?.evaluation_id||M.id}/runs/${q.run.id}`)},K=async()=>{let M=await Q();M?.evaluation&&await B(M.evaluation,M.project)},T=async()=>{let{res:M,data:W}=await A(`/api/explorations/${e}/stop`,"POST");if(!M.ok&&M.status!==409){l(at(W,`Could not stop the exploration (HTTP ${M.status}).`));return}await k()};if(!a)return s?_t.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},s):_t.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Loading the exploration\u2026");let{exploration:O}=a,I=O.counts||{},P=_ee({evaluation:a.evaluation,candidates:w,selectedIds:u}),j=oj(w);return _t.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12},"data-testid":"exploration-review"},_t.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},_t.default.createElement(Ue,null,"Exploration ",O.id),_t.default.createElement(ke,{tone:hA[O.status]||"muted",testId:"exploration-status"},O.status),_t.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},q2e[O.source]||O.source," \xB7 ",wo(O.created_at),O.start_url?` \xB7 from ${O.start_url}`:""),_&&_t.default.createElement(ce,{size:"sm",onClick:T,disabled:f,style:{marginLeft:"auto"},testId:"exploration-stop"},"Stop and review")),O.stop_reason&&_t.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},Iee(O.stop_reason)),O.error_message&&_t.default.createElement("div",{style:{padding:"8px 12px",borderRadius:8,fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},O.error_message),_t.default.createElement(aj,{budget:O.budget,usage:O.usage}),s&&_t.default.createElement("div",{style:{padding:"10px 12px",borderRadius:8,fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},s),g&&_t.default.createElement(je,{padding:12,testId:"exploration-accepted"},_t.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-primary)"}},"Added ",g.accepted?.added?.length||0," and updated ",g.accepted?.updated?.length||0," scenarios in"," ",g.scenarioSet?`${g.scenarioSet.catalog?.name} / ${g.scenarioSet.name}`:g.evaluation?.name,".")," ",g.evaluation&&_t.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(`/evaluations/${g.evaluation.id}`)},"Open evaluation")),v&&_t.default.createElement(je,{testId:"exploration-run-confirmation",style:{borderColor:"var(--color-warning)"}},_t.default.createElement("p",{style:{margin:0,fontSize:14,color:"var(--color-text-primary)"}},v.question),_t.default.createElement("div",{style:{display:"flex",gap:8,marginTop:10}},_t.default.createElement(ce,{variant:"primary",onClick:()=>B(v.evaluation,v.project,{confirm:!0}),disabled:f},"Run it on this machine"),_t.default.createElement(ce,{onClick:()=>x(null)},"Cancel"))),_t.default.createElement(Zr,{title:"Found so far",meta:`${I.total||0} found \xB7 ${I.answerable||0} answerable \xB7 ${I.accepted||0} accepted`,testId:"exploration-candidates",bodyStyle:{padding:"0 12px"}},w.length===0?_t.default.createElement("div",{style:{padding:"12px 0",fontSize:13,color:"var(--color-text-secondary)"}},_?"Nothing yet. Candidates appear here as they are found.":"This exploration found nothing."):_t.default.createElement("ul",{style:{margin:0,padding:0}},w.map(M=>_t.default.createElement(ij,{key:M.id,candidate:M,selected:u.includes(M.id),onToggle:L,onSave:C,onState:N,busy:f,problem:y?.[M.id]||y?.[String(M.id)],agentId:a.target_agent?.id})))),w.length>0&&_t.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8}},_t.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},_t.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>{p(!0),c(j)},disabled:f},"Select every answerable"),_t.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>{p(!0),c([])},disabled:f},"Clear"),a.preselect_limit!=null&&j.length>a.preselect_limit&&_t.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"Your plan starts with ",a.preselect_limit," selected.")),_t.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},_t.default.createElement(ce,{variant:"primary",onClick:Q,disabled:f||u.length===0||n&&!r,testId:"exploration-accept"},"Accept ",u.length,r?` into ${r.label}`:""),!r&&!n&&_t.default.createElement(_t.default.Fragment,null,_t.default.createElement(ce,{onClick:K,disabled:f||u.length===0,testId:"exploration-accept-run"},"Accept and run"),_t.default.createElement("span",{style:{fontFamily:U,fontSize:11,color:"var(--color-text-secondary)"},"data-testid":"exploration-run-estimate"},Cee(P,a.runs_remaining))))))}var ti=Z(J());var K2e={width:90,padding:"6px 8px",borderRadius:6,fontSize:13,fontFamily:U,border:"1px solid var(--color-border)",background:"var(--color-card)",color:"var(--color-text-primary)"};function db({projectId:e,sandboxReady:t,onStarted:r}){let[n,o]=(0,ti.useState)({minutes:"",steps:"",cost:""}),[a,i]=(0,ti.useState)(null),[s,l]=(0,ti.useState)(!1),{error:u,budget:c}=Pee(n),d=async()=>{l(!0),i(null);try{let f=await fetch(`/api/projects/${e}/explorations`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({budget:c})}),m=await f.json().catch(()=>({}));if(!f.ok)throw new Error(Mee(f.status,m));r?.(m.exploration)}catch(f){i(f.message)}finally{l(!1)}},p=(f,m,y)=>ti.default.createElement("label",{style:{display:"flex",flexDirection:"column",gap:4}},ti.default.createElement(Ue,null,m),ti.default.createElement("input",{type:"number",min:"0",value:n[f],placeholder:y,onChange:b=>o({...n,[f]:b.target.value}),"aria-label":m,style:K2e}));return ti.default.createElement(Zr,{title:"Explore the app",testId:"explorer-start",bodyStyle:{padding:12,display:"flex",flexDirection:"column",gap:10}},ti.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"The explorer walks the app in the sandbox's browser and proposes the questions a user would ask the project's agent, each with a rubric. They wait here for review; nothing reaches the evaluation until you accept it."),ti.default.createElement("div",{style:{display:"flex",gap:12,alignItems:"flex-end",flexWrap:"wrap"}},p("minutes","Minutes",String(sj.minutes)),p("steps","Browser steps",String(sj.steps)),p("cost","Cost cap ($)","none"),ti.default.createElement(ce,{variant:"primary",onClick:d,disabled:s||!t||!!u,testId:"explorer-start-button"},s?"Starting\u2026":"Explore the app")),!t&&ti.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"Boot the project first: the explorer walks the app its sandbox serves."),(u||a)&&ti.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"},"data-testid":"explorer-start-error"},u||a))}var Yt=Z(J());var V2e={width:"100%",padding:"6px 10px",borderRadius:6,fontSize:13,fontFamily:U,border:"1px solid var(--color-border)",background:"var(--color-card)",color:"var(--color-text-primary)"},G2e=[{value:"credentials",label:"Seeded account"},{value:"by_hand",label:"Sign in by hand"},{value:"none",label:"No sign-in"}],Lee=e=>e?new Date(e).toLocaleString():"\u2014";async function Nf(e,t,r){let n=await fetch(e,{method:t,headers:{"Content-Type":"application/json"},body:r?JSON.stringify(r):void 0}),o=await n.json().catch(()=>({}));if(!n.ok)throw new Error(at(o,`The request failed (HTTP ${n.status}).`));return o}function uj({projectId:e,sandboxId:t,sandboxReady:r}){let[n,o]=(0,Yt.useState)(null),[a,i]=(0,Yt.useState)(null),[s,l]=(0,Yt.useState)({login_url:"",login:"",password:"",login_field:"",password_field:"",submit_field:""}),[u,c]=(0,Yt.useState)(null),[d,p]=(0,Yt.useState)(null),[f,m]=(0,Yt.useState)(null),[y,b]=(0,Yt.useState)(!1),g=(0,Yt.useCallback)(async()=>{let B=await Nf(`/api/projects/${e}/sign_in`,"GET");o(B.sign_in);let K=B.sign_in?.credentials;K&&l(T=>({...T,login_url:K.login_url||"",login:K.login||"",...K.fields})),i(T=>T||(K?"credentials":B.sign_in?.storage_state?"by_hand":"none"))},[e]);(0,Yt.useEffect)(()=>{g().catch(B=>p(B.message))},[g]);let h=async B=>{b(!0),p(null),m(null);try{await B()}catch(K){p(K.message)}finally{b(!1)}},v=n?.credentials,{error:x,payload:S}=jee(s,{passwordSaved:!!v?.password_set}),k=Dee(u),w=()=>h(async()=>{let B=await Nf(`/api/projects/${e}/sign_in`,"PUT",S);o(B.sign_in),l(K=>({...K,password:""})),m(B.warnings?.length?B.warnings.map(K=>K.message).join(" "):"Saved. The explorer signs in with them.")}),_=()=>h(async()=>{let B=await Nf(`/api/projects/${e}/sign_in/check`,"POST");c(B.result),o(B.sign_in)}),A=()=>h(async()=>{await Nf(`/api/sandboxes/${t}/browser`,"POST",{mode:"headed"}),await g(),m("A browser window opened on the app. Sign in there, then save its sign-in.")}),C=()=>h(async()=>{let B=await Nf(`/api/projects/${e}/sign_in/save_browser`,"POST");o(B.sign_in),m("Saved. Every browser of this project now starts signed in.")}),N=()=>h(async()=>{await Nf(`/api/sandboxes/${t}/browser`,"DELETE"),await g()}),L=()=>h(async()=>{let B=await Nf(`/api/projects/${e}/sign_in`,"DELETE");o(B.sign_in),c(null),m("The explorer explores what is reachable without signing in.")}),Q=(B,K,T="text",O="")=>Yt.default.createElement("label",{style:{display:"flex",flexDirection:"column",gap:4,flex:"1 1 200px"}},Yt.default.createElement(Ue,null,K),Yt.default.createElement("input",{type:T,autoComplete:"off",value:s[B],placeholder:O,onChange:I=>l({...s,[B]:I.target.value}),"aria-label":K,style:V2e}));return Yt.default.createElement(Zr,{title:"Sign-in",testId:"project-sign-in",bodyStyle:{padding:12,display:"flex",flexDirection:"column",gap:10}},Yt.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"How the explorer and the evaluation's replays sign in to the app. Credentials are typed into the app by the dashboard itself and never reach a model."),Yt.default.createElement("div",{style:{display:"flex",gap:6,flexWrap:"wrap",alignItems:"center"}},v&&Yt.default.createElement(ke,{tone:"success"},"credentials saved ",Lee(v.updated_at)),n?.storage_state&&Yt.default.createElement(ke,{tone:"success"},"browser sign-in saved ",Lee(n.storage_state.updated_at)),!v&&!n?.storage_state&&n&&Yt.default.createElement(ke,null,"no sign-in")),Yt.default.createElement(qi,{options:G2e,value:a||"none",onChange:i}),a==="credentials"&&Yt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8},"data-testid":"sign-in-credentials"},Yt.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap"}},Q("login_url","Login URL","text","/users/sign_in"),Q("login","Login","text","dev@example.com"),Q("password","Password","password",v?.password_set?"Saved; leave empty to keep it":"")),Yt.default.createElement("details",null,Yt.default.createElement("summary",{style:{fontSize:12,color:"var(--color-text-secondary)",cursor:"pointer"}},"Field selectors, when the form's fields are not found"),Yt.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap",marginTop:6}},Q("login_field","Login field","text","#user_email"),Q("password_field","Password field","text","#user_password"),Q("submit_field","Submit button","text","button[type=submit]"))),Yt.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},Yt.default.createElement(ce,{variant:"primary",size:"sm",onClick:w,disabled:y||!!x},"Save credentials"),Yt.default.createElement(ce,{size:"sm",onClick:_,disabled:y||!v||!r,testId:"sign-in-check"},"Check sign-in"),x&&Yt.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},x))),a==="by_hand"&&Yt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8},"data-testid":"sign-in-by-hand"},Yt.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"Open the sandbox's browser in a window, sign in to the app there, then save its sign-in. Later browsers of this project start with it."),Yt.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap"}},Yt.default.createElement(ce,{size:"sm",onClick:A,disabled:y||!r||n?.browser_running},"Open a browser window"),Yt.default.createElement(ce,{variant:"primary",size:"sm",onClick:C,disabled:y||!n?.browser_running},"Save the browser's sign-in"),n?.browser_running&&Yt.default.createElement(ce,{size:"sm",variant:"ghost",onClick:N,disabled:y},"Stop the browser"))),a==="none"&&(v||n?.storage_state)&&Yt.default.createElement("div",null,Yt.default.createElement(ce,{size:"sm",variant:"danger",onClick:L,disabled:y},"Remove the saved sign-in")),k&&Yt.default.createElement("div",{"data-testid":"sign-in-result",style:{fontSize:13,color:Dn[k.tone]?.text||"var(--color-text-secondary)"}},k.text),f&&Yt.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},f),d&&Yt.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},d))}function cj({projectId:e,project:t,onCount:r}){let[n,o]=(0,Wn.useState)(null),[a,i]=(0,Wn.useState)(null),[s,l]=(0,Wn.useState)(null),u=(0,Wn.useCallback)(async()=>{let f=await fetch(`/api/explorations?project_id=${e}`),m=await f.json().catch(()=>({}));if(!f.ok)throw new Error(at(m,`Could not list the project's explorations (HTTP ${f.status}).`));o(m.explorations||[]),r?.(m.explorations?.length||0)},[e,r]);(0,Wn.useEffect)(()=>{u().catch(f=>l(f.message))},[u]);let c=t?.sandbox_state==="ready",d=Wn.default.createElement(Wn.default.Fragment,null,Wn.default.createElement(db,{projectId:e,sandboxReady:c,onStarted:f=>{i(f.id),u().catch(m=>l(m.message))}}),Wn.default.createElement(uj,{projectId:e,sandboxId:t?.sandbox?.session_id,sandboxReady:c}));if(s)return Wn.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},s);if(!n)return Wn.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Loading explorations\u2026");if(n.length===0)return Wn.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},d,Wn.default.createElement(je,{testId:"project-explorations-empty"},Wn.default.createElement("p",{style:{margin:0,fontSize:14,color:"var(--color-text-secondary)"}},"No explorations yet. Explore the app above, or have an agent that explores it, such as a coding agent driving a browser, submit the questions it found with the explorations_submit MCP tool. They are reviewed here before any reaches the evaluation.")));let p=a||n[0].id;return Wn.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"project-explorations"},d,Wn.default.createElement(Cf,{explorations:n,selectedId:p,onOpen:f=>i(f.id)}),Wn.default.createElement("div",{style:{display:"flex",justifyContent:"flex-end"}},Wn.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(vA(p))},"Open on its own page")),Wn.default.createElement(Ef,{key:p,explorationId:p,onLoaded:()=>u().catch(()=>{})}))}var dr=Z(J());var Y2e={text:"question",choice:"choice",confirm:"approval",secret:"secret"};async function zee(e){return e.json().catch(()=>({}))}function dj({projectId:e,setupAgentId:t,version:r,onSettled:n}){let[o,a]=(0,dr.useState)(null),[i,s]=(0,dr.useState)(null),l=(0,dr.useCallback)(async()=>{let c=await fetch(`/api/projects/${e}/input_requests`),d=await zee(c);if(!c.ok)throw new Error(at(d,`Could not list what the project is waiting for (HTTP ${c.status}).`));a(d.input_requests||[])},[e]);(0,dr.useEffect)(()=>{l().catch(c=>s(c.message))},[l,r]);let u=async(c,d,p)=>{let f=await fetch(`/api/input_requests/${c.id}/${d}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(p||{})}),m=await zee(f);if(!f.ok)throw new Error(at(m,`Could not send the answer (HTTP ${f.status}).`));await l(),n?.()};return!o?.length&&!i?null:dr.default.createElement(Zr,{title:"Waiting for you",meta:`${o?.length||0}`,testId:"project-input-requests"},i&&dr.default.createElement("div",{style:{padding:"8px 12px",fontSize:13,color:"var(--color-error-text)"}},i),(o||[]).map(c=>dr.default.createElement(X2e,{key:c.id,request:c,onSettle:u,storesProjectSecret:t!=null&&c.agent?.id===t})))}function X2e({request:e,onSettle:t,storesProjectSecret:r}){let[n,o]=(0,dr.useState)(""),[a,i]=(0,dr.useState)(!1),[s,l]=(0,dr.useState)(null),u=async(c,d)=>{i(!0),l(null);try{await t(e,c,d),o("")}catch(p){l(p.message)}finally{i(!1)}};return dr.default.createElement(Z2e,{request:e,storesProjectSecret:r,value:n,onChange:o,busy:a,error:s,onAnswer:c=>u("answer",nee(e,c)),onDecline:()=>u("decline")})}function Z2e({request:e,storesProjectSecret:t,value:r,onChange:n,busy:o,error:a,onAnswer:i,onDecline:s}){let l=ree(e,r),u=`project-answer-${e.id}`;return dr.default.createElement("form",{"data-testid":`project-input-request-${e.id}`,style:{padding:"10px 12px",borderTop:"1px solid var(--color-border-light)",display:"flex",flexDirection:"column",gap:8},onSubmit:c=>{c.preventDefault(),e.kind!=="confirm"&&!l&&i(r)}},dr.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},dr.default.createElement(ke,{tone:e.kind==="secret"?"warning":"info"},Y2e[e.kind]||e.kind),dr.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-muted)"}},e.agent?.name||"An agent"," asks",e.actor?.name?`, for ${e.actor.name}`:""),dr.default.createElement("span",{style:{marginLeft:"auto",fontFamily:U,fontSize:11,color:"var(--color-text-muted)"}},"run ",e.run_id)),dr.default.createElement("label",{htmlFor:u,style:{fontSize:14,color:"var(--color-text-primary)",whiteSpace:"pre-wrap"}},e.prompt),e.kind==="choice"&&dr.default.createElement("select",{id:u,value:r,onChange:c=>n(c.target.value),disabled:o,style:{padding:"6px 8px",borderRadius:6,border:"1px solid var(--color-border-strong)",background:"var(--color-card)",color:"var(--color-text-primary)"}},dr.default.createElement("option",{value:""},"Choose\u2026"),G3(e).map(c=>dr.default.createElement("option",{key:c.value,value:c.value},c.label))),(e.kind==="text"||e.kind==="secret")&&dr.default.createElement("input",{id:u,type:e.kind==="secret"?"password":"text",autoComplete:e.kind==="secret"?"new-password":"off","data-aa-secret":e.kind==="secret"?"":void 0,value:r,onChange:c=>n(c.target.value),disabled:o,style:{padding:"6px 8px",borderRadius:6,border:"1px solid var(--color-border-strong)",background:"var(--color-card)",color:"var(--color-text-primary)",fontFamily:e.kind==="secret"?U:"inherit"}}),e.kind==="secret"&&dr.default.createElement("p",{style:{margin:0,fontSize:12,color:"var(--color-text-secondary)"}},t?"The assistant never sees this value: it is stored as one of the project's secrets.":"The agent never sees this value."),dr.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center"}},e.kind==="confirm"?dr.default.createElement(dr.default.Fragment,null,dr.default.createElement(ce,{variant:"primary",size:"sm",onClick:()=>i(!0),disabled:o},"Approve"),dr.default.createElement(ce,{size:"sm",onClick:()=>i(!1),disabled:o},"Decline")):dr.default.createElement(dr.default.Fragment,null,dr.default.createElement(ce,{variant:"primary",size:"sm",type:"submit",disabled:o||!!l},o?"Sending\u2026":"Answer"),dr.default.createElement(ce,{size:"sm",onClick:s,disabled:o},"Decline"),r&&l&&dr.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},l))),a&&dr.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},a))}var Ft=Z(J());async function bA(e){return e.json().catch(()=>({}))}function pj({project:e,onProjectChanged:t,onConfirmationRequired:r}){let n=`/api/projects/${e.id}/install_pull_request`,[o,a]=(0,Ft.useState)(null),[i,s]=(0,Ft.useState)(null),[l,u]=(0,Ft.useState)(null),[c,d]=(0,Ft.useState)(0),[p,f]=(0,Ft.useState)(!1),m=(0,Ft.useCallback)(async()=>{let g=await fetch(n),h=await bA(g);if(!g.ok)throw new Error(at(h,`Could not read the install pull request (HTTP ${g.status}).`));return h},[n]);(0,Ft.useEffect)(()=>{let g=!1,h=null,v=async()=>{try{let x=await m();if(g)return;a(x),s(null),x.project&&t?.(x.project);let S=fee(x.pull_request);S&&(h=setTimeout(v,S))}catch(x){g||s(x.message)}};return v(),()=>{g=!0,clearTimeout(h)}},[m,c]);let y=async g=>{f(!0),s(null);try{let h=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(g?{regular:!0}:{open:!0})}),v=await bA(h);if(!h.ok)throw new Error(at(v,`Could not open the pull request (HTTP ${h.status}).`));d(x=>x+1)}catch(h){s(h.message)}finally{f(!1)}},b=o?.pull_request||null;return e.install_state==="installed"&&!b?null:Ft.default.createElement(Ft.default.Fragment,null,Ft.default.createElement(J2e,{project:e,pullRequest:b,publishing:o?.publishing,allowlist:o?.allowlist||[],error:i,opening:p,onOpenDialog:u,onOpenBranch:y}),l&&Ft.default.createElement(Q2e,{project:e,base:n,pullRequest:b,mode:l,onConfirmationRequired:r,onClose:()=>u(null),onPublished:()=>{u(null),d(g=>g+1)}}))}function J2e({project:e,pullRequest:t,publishing:r,allowlist:n,error:o,opening:a,onOpenDialog:i,onOpenBranch:s}){let{label:l,tone:u}=pee(t),{canOpen:c,canUpdate:d,openBranch:p}=mee(t);return Ft.default.createElement(je,{testId:"project-install-pull-request"},Ft.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Ft.default.createElement(Ue,null,"Install pull request"),Ft.default.createElement(ke,{tone:u},l),t?.url&&Ft.default.createElement("a",{href:t.url,target:"_blank",rel:"noopener noreferrer",style:{fontSize:13,color:"var(--color-info)"}},"#",t.number),Ft.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:8}},d&&Ft.default.createElement(ce,{size:"sm",onClick:()=>i("update")},"Update draft PR"),c&&e.install_state!=="installed"&&Ft.default.createElement(ce,{size:"sm",variant:"primary",onClick:()=>i("create"),testId:"open-install-pr"},"Open install PR"),p&&Ft.default.createElement(ce,{size:"sm",onClick:()=>s(p==="regular"),disabled:a,testId:"open-install-branch"},a?"Opening\u2026":p==="regular"?"Open as a regular pull request":"Open the draft PR again"))),Ft.default.createElement("p",{style:{margin:"8px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},e.install_state==="installed"?"The pull request merged: the repository bundles the engine, and boots its own branch.":"Publishes what the sandbox installed as a draft pull request, from this dashboard, after you check the exact diff. Once it exists, every boot checks its branch out."),t?.branch&&Ft.default.createElement("p",{style:{margin:"4px 0 0",fontFamily:U,fontSize:12,color:"var(--color-text-muted)"}},t.branch,t.base_branch?` \u2192 ${t.base_branch}`:""),t?.status==="failed"&&t.error_message&&Ft.default.createElement("p",{style:{margin:"6px 0 0",fontSize:12,color:"var(--color-error-text)"}},t.error_message),r&&!r.available&&r.live&&Ft.default.createElement("p",{style:{margin:"6px 0 0",fontSize:12,color:"var(--color-text-secondary)"}},r.refusal),n.length>0&&Ft.default.createElement("details",{style:{marginTop:6}},Ft.default.createElement("summary",{style:{cursor:"pointer",fontSize:12,color:"var(--color-text-secondary)"}},"What it may publish"),Ft.default.createElement("ul",{style:{margin:"4px 0 0",paddingLeft:18,fontFamily:U,fontSize:12,color:"var(--color-text-secondary)"}},n.map(f=>Ft.default.createElement("li",{key:f},f)))),o&&Ft.default.createElement("p",{style:{margin:"6px 0 0",fontSize:12,color:"var(--color-error-text)"}},o))}function Q2e({project:e,base:t,pullRequest:r,mode:n,onConfirmationRequired:o,onClose:a,onPublished:i}){let s=n==="update",[l,u]=(0,Ft.useState)(null),[c,d]=(0,Ft.useState)(null),[p,f]=(0,Ft.useState)(!0),[m,y]=(0,Ft.useState)(null),[b,g]=(0,Ft.useState)(new Set),[h,v]=(0,Ft.useState)(s?r?.title||"":"Install ActiveAgent"),[x,S]=(0,Ft.useState)(""),[k,w]=(0,Ft.useState)(s&&r?.branch||""),[_,A]=(0,Ft.useState)(O2),[C,N]=(0,Ft.useState)(!1),[L,Q]=(0,Ft.useState)(0);(0,Ft.useEffect)(()=>{let K=!1,T=null;f(!0);let O=async(I=!1)=>{try{let P=await fetch(`${t}/preview`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(I?{confirm:!0}:{})}),j=await bA(P);if(K)return;if(P.status===409&&j.code==="confirmation_required"){o?.(j.confirmation,()=>O(!0));return}if(P.status===202){y(j.error),T=setTimeout(()=>O(),3e3);return}if(!P.ok)throw new Error(at(j,`Could not read the sandbox's changes (HTTP ${P.status}).`));y(null),u(j.preview),d(j.publishing),g(M2(j.preview.files)),w(M=>M||j.preview.suggested_branch||""),f(!1)}catch(P){K||(y(P.message),f(!1))}};return O(),()=>{K=!0,clearTimeout(T)}},[t,L]);let B=async()=>{N(!0),y(null);try{let K=D2({files:l?.files,selection:b,title:h,body:x,branch:k,message:_,update:s}),T=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(K)}),O=await bA(T);if(!T.ok)throw P2(O.code)&&Q(I=>I+1),new Error(at(O,`Could not publish (HTTP ${T.status}).`));i(O.pull_request)}catch(K){y(K.message)}finally{N(!1)}};return Ft.default.createElement(wD,{sandbox:{repository:e.repository,repository_ref:e.sandbox?.repository_ref||e.checkout_ref||"its default branch"},preview:l,loading:p,error:m,publishing:c,pullRequest:r,selection:b,onToggle:K=>g(T=>I2(T,K)),fields:{title:h,body:x,branch:k,message:_,allowlist:""},onField:(K,T)=>({title:v,body:S,branch:w,message:A})[K]?.(T),allowlistApplied:!1,mode:s?"update":"create",submitting:C,onSubmit:B,onCancel:a,patchHref:(K,T)=>gee(e.id,K,T)})}var cn=Z(J());var R2e={awaiting_input:"warning",running:"info",pending:"info",complete:"success",failed:"error"},eAe={progress:"info",success:"success",error:"error",neutral:"muted"};function fj({project:e,busy:t,onAsk:r,onFixWithClaudeCode:n,onToggleAuto:o}){let a=e?.setup;if(!a)return null;let i=a.last_run,s=a.claude_code,l=s?.last_session;return cn.default.createElement(je,{testId:"project-setup"},cn.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},cn.default.createElement(Ue,null,"Setup"),cn.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:8,alignItems:"center"}},cn.default.createElement("label",{style:{display:"flex",gap:6,alignItems:"center",fontSize:12,color:"var(--color-text-secondary)"}},cn.default.createElement("input",{type:"checkbox",checked:a.auto!==!1,disabled:t,onChange:u=>o(u.target.checked)}),"Start it when a boot fails"))),s&&cn.default.createElement("div",{"data-testid":"project-setup-claude-code",style:{marginTop:10}},cn.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},cn.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},"Claude Code"),!s.available&&!l&&cn.default.createElement(ke,{tone:"muted"},"not used"),l&&cn.default.createElement(ke,{tone:eAe[fs(l.status).tone]||"muted"},fs(l.status).label),X3(e)&&n&&cn.default.createElement(ce,{size:"sm",variant:"primary",onClick:n,disabled:t,testId:"fix-with-claude-code",style:{marginLeft:"auto"}},"Fix the boot with Claude Code")),cn.default.createElement("p",{"data-testid":"claude-code-status",style:{margin:"4px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},see(e)),l?.id&&cn.default.createElement("a",{href:Re(ms(l.id)),onClick:u=>{u.preventDefault(),lt(ms(l.id))},"data-testid":"boot-fix-conversation",style:{display:"inline-block",marginTop:4,fontSize:12,color:"var(--color-accent-ui)"}},"Ask Claude Code about this fix \u2192"),l?.sandbox_session_id&&cn.default.createElement(b0,{sandbox:{session_id:l.sandbox_session_id},readOnly:!0,focusSessionId:l.id,title:`Claude Code on ${s.failed_step||"the boot"}`})),cn.default.createElement("div",{style:{marginTop:12}},cn.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},cn.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},"Setup assistant"),!a.available&&cn.default.createElement(ke,{tone:"muted"},"unavailable"),i&&cn.default.createElement(ke,{tone:R2e[i.status]||"muted"},i.status.replace("_"," ")),cn.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:8,alignItems:"center"}},a.agent_id&&i&&cn.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(`/agents/${a.agent_id}/interactions`)},"Open its runs"),lee(e)&&cn.default.createElement(ce,{size:"sm",variant:X3(e)?"secondary":"primary",onClick:r,disabled:t,testId:"ask-setup-assistant"},"Ask the setup assistant"))),cn.default.createElement("p",{style:{margin:"4px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},oee(a),!a.available&&" Set the variables the boot needs in the Environment tab.",a.available&&s?.available&&" Claude Code goes first when a boot fails; the setup assistant is the fallback."),cn.default.createElement("p",{style:{margin:"4px 0 0",fontSize:12,color:"var(--color-text-muted)"}},"It reads the failed step's log, sets variables that are not secret, asks you for secrets, and retries the boot. It runs no commands and reads no files.")))}var Bee="/settings?tab=integrations",tAe={ready:"success",booting:"info",failed:"error",expired:"muted",none:"muted"},rAe={installed:"bundles the engine",detected:"installs the engine in the sandbox",bootstrapped:"engine installed in the sandbox"};async function Zs(e){return e.json().catch(()=>({}))}function mj({projectId:e,onBack:t,onDeleted:r}){let[n,o]=(0,Ve.useState)(null),[a,i]=(0,Ve.useState)(null),[s,l]=(0,Ve.useState)([]),[u,c]=(0,Ve.useState)(()=>BR(window.location.search)),[d,p]=(0,Ve.useState)(!1),[f,m]=(0,Ve.useState)(null),[y,b]=(0,Ve.useState)(null),[g,h]=(0,Ve.useState)(null),[v,x]=(0,Ve.useState)(!1),[S,k]=(0,Ve.useState)(null),[w,_]=(0,Ve.useState)(null),[A,C]=(0,Ve.useState)(null),N=(0,Ve.useCallback)(async()=>{let G=await fetch(`/api/projects/${e}/boot`),E=await Zs(G);if(!G.ok)throw new Error(at(E,`Could not load the project (HTTP ${G.status}).`));o(E.project),i(E)},[e]),L=(0,Ve.useCallback)(async()=>{let G=await fetch(`/api/projects/${e}/secrets`),E=await Zs(G);if(!G.ok)throw new Error(at(E,`Could not list the project's secrets (HTTP ${G.status}).`));l(E.secrets||[])},[e]);(0,Ve.useEffect)(()=>{N().catch(G=>m(G.message)),L().catch(G=>b(G.message))},[N,L]);let Q=G=>{c(G),G!=="browser"&&p(!1);let{pathname:E,search:$}=window.location;window.history.replaceState(window.history.state,"",`${E}${FR($,G)}`)},B=n?.sandbox_state==="failed",[K,T]=(0,Ve.useState)(null);(0,Ve.useEffect)(()=>{T(B?Date.now():null)},[B,n?.sandbox?.session_id]);let O=LR(n),I=O||aee(n)||iee(n,K);(0,Ve.useEffect)(()=>{if(!I)return;let G=setTimeout(()=>N().catch(E=>m(E.message)),TR);return()=>clearTimeout(G)},[I,a,N]);let P=n?.sandbox?.session_id;$h("SandboxChannel",{session_id:P},G=>{Lh(G)&&N().catch(()=>{})},!!P);let j=async(G,{confirm:E=!1,onDone:$}={})=>{x(!0),m(null);try{let ee=await fetch(G,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(E?{confirm:!0}:{})}),F=await Zs(ee);if(ee.status===409&&F.code==="confirmation_required")return h({question:F.confirmation,retry:()=>j(G,{confirm:!0,onDone:$})}),null;if(!ee.ok)throw new Error(at(F,`The request failed (HTTP ${ee.status}).`));return h(null),F.project&&o(F.project),await N(),$?.(F),F}catch(ee){return m(ee.message),null}finally{x(!1)}},M=()=>j(`/api/projects/${e}/run_evaluation`,{onDone:G=>{G.run&&k(G.run)}}),W=(G,E)=>h({question:G,retry:E}),Y=async(G,E,$="setup")=>{x(!0),m(null);try{let ee=await fetch(`/api/projects/${e}/${$}`,{method:G,headers:{"Content-Type":"application/json"},body:JSON.stringify(E||{})}),F=await Zs(ee);if(!ee.ok)throw new Error(at(F,`The setup request failed (HTTP ${ee.status}).`));F.project&&o(F.project),await N()}catch(ee){m(ee.message)}finally{x(!1)}},z=async()=>{m(null);let G=await fetch(`/api/projects/${e}/synced_agents`),E=await Zs(G);if(!G.ok){m(at(E,`Could not list the checkout's agents (HTTP ${G.status}).`));return}_(E.synced_agents||[])},V=async G=>{x(!0);try{let E=await fetch(`/api/projects/${e}/target`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(G)}),$=await Zs(E);if(!E.ok)throw new Error(at($,`Could not choose the agent (HTTP ${E.status}).`));o($.project),_(null)}catch(E){m(E.message)}finally{x(!1)}},q=async G=>{b(null);let E=await fetch(`/api/projects/${e}/secrets`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({secrets:G})}),$=await Zs(E);return E.ok?(l($.secrets||[]),!0):(b(at($,`Could not save the secrets (HTTP ${E.status}).`)),!1)},oe=async(G,E)=>{b(null);let $=await fetch(`/api/projects/${e}/secrets/${encodeURIComponent(G)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({value:E})}),ee=await Zs($);if(!$.ok){let F=at(ee,`Could not replace ${G} (HTTP ${$.status}).`);throw b(F),new Error(F)}await L()},Me=async G=>{b(null);let E=await fetch(`/api/projects/${e}/secrets/${encodeURIComponent(G)}`,{method:"DELETE"});if(!E.ok){b(at(await Zs(E),`Could not delete ${G} (HTTP ${E.status}).`));return}await L()},fe=async()=>{b(null);let G=`repository=${encodeURIComponent(n.repository)}&project_id=${e}${n.default_ref?`&ref=${encodeURIComponent(n.default_ref)}`:""}`,E=await fetch(`/api/projects/discover_secrets?${G}`),$=await Zs(E);if(!E.ok){b(at($,`Could not read the repository's environment variables (HTTP ${E.status}).`));return}C(sb($.variables||[],s))},le=async()=>{if(!await Wr({title:`Delete ${n.name}?`,message:"Its secrets, agent and evaluation are deleted, and its sandbox is stopped. This cannot be undone.",confirmLabel:"Delete project",danger:!0,requireText:n.name}))return;let G=await fetch(`/api/projects/${e}`,{method:"DELETE"});G.ok?r():m(at(await Zs(G),`Could not delete the project (HTTP ${G.status}).`))};if(!n)return f?Ve.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},f):Ve.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Loading the project\u2026");let R=a?.browser_modes||[],te=UR(n,R),He=G=>{G&&p(!0),Q("browser")},_e=n.target_agent,D=!_e&&n.install_state==="installed";return Ve.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"project-detail"},Ve.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:16,flexWrap:"wrap"}},Ve.default.createElement("div",{style:{flex:1,minWidth:260}},Ve.default.createElement(ce,{size:"sm",variant:"ghost",onClick:t,style:{padding:0}},"\u2190 Projects"),Ve.default.createElement("h1",{style:{margin:"4px 0 0",fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},n.name),Ve.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",marginTop:4,flexWrap:"wrap"}},Ve.default.createElement("span",{style:{fontFamily:U,fontSize:13,color:"var(--color-text-secondary)"}},n.repository,n.default_ref?`@${n.default_ref}`:""),Ve.default.createElement(ke,{tone:tAe[n.sandbox_state]||"muted"},"sandbox ",n.sandbox_state),Ve.default.createElement(ke,{tone:pA[n.install_state==="installed"?"supported":"bootstrap"]},rAe[n.install_state]),Ve.default.createElement(Gr,{href:Re(Bee),onClick:()=>lt(Bee),title:"Every sandbox and browser, in Settings \u2192 Integrations"},"Manage runtimes"))),Ve.default.createElement("div",{style:{display:"flex",gap:8}},Ve.default.createElement(ce,{onClick:()=>j(`/api/projects/${e}/boot`),disabled:v||O,testId:"boot-project"},n.sandbox_state==="ready"?"Sandbox running":O?"Booting\u2026":"Boot sandbox"),te&&Ve.default.createElement(ce,{onClick:()=>He(te.watch),testId:"project-watch-live"},te.label),Ve.default.createElement(ce,{variant:"primary",onClick:()=>M(),disabled:v||!_e,testId:"run-project-evaluation",title:_e?"Boots the sandbox first when it is not running":"Choose the agent to evaluate first"},"Run evaluation"))),g&&Ve.default.createElement(je,{testId:"local-boot-confirmation",style:{borderColor:"var(--color-warning)"}},Ve.default.createElement("p",{style:{margin:0,fontSize:14,color:"var(--color-text-primary)"}},g.question),Ve.default.createElement("div",{style:{display:"flex",gap:8,marginTop:10}},Ve.default.createElement(ce,{variant:"primary",onClick:()=>{let{retry:G}=g;h(null),G?.()},disabled:v},"Run it on this machine"),Ve.default.createElement(ce,{onClick:()=>h(null)},"Cancel"))),f&&Ve.default.createElement("div",{style:{padding:"10px 12px",borderRadius:8,fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},f),Ve.default.createElement(qi,{options:[{value:"overview",label:"Overview"},{value:"explorations",label:"Explorations"},{value:"environment",label:`Environment (${lj(s).length})`},...R.length>0||u==="browser"?[{value:"browser",label:n.sandbox?.browser?.status==="running"?"Browser \xB7 live":"Browser"}]:[],{value:"sessions",label:"Sessions"}],value:u,onChange:Q}),u==="overview"&&Ve.default.createElement(Ve.default.Fragment,null,Ve.default.createElement(Q3,{boot:a?.boot,logTail:a?.log_tail,error:a?.error,sandboxState:n.sandbox_state,waiting:n.pending_input_requests}),Ve.default.createElement(dj,{projectId:e,setupAgentId:n.setup?.agent_id,version:`${n.pending_input_requests}:${n.setup?.last_run?.id}:${n.setup?.last_run?.status}`,onSettled:()=>N().catch(()=>{})}),Ve.default.createElement(fj,{project:n,busy:v,onAsk:()=>Y("POST"),onFixWithClaudeCode:()=>Y("POST",null,"setup/claude_code"),onToggleAuto:G=>Y("PATCH",{auto:G})}),Ve.default.createElement(je,null,Ve.default.createElement(Ue,null,"Agent under evaluation"),_e&&Ve.default.createElement("div",{style:{marginTop:8,display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},Ve.default.createElement("span",{style:{fontSize:14,fontWeight:600,color:"var(--color-text-primary)"}},_e.name),Ve.default.createElement(ke,{tone:"accent"},_e.kind==="app_assistant"?"App assistant":`synced agent ${_e.synced_agent}`),Ve.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(`/agents/${_e.id}/edit`)},"Open agent"),n.evaluation&&Ve.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(`/evaluations/${n.evaluation.id}`)},"Open evaluation"),n.install_state==="installed"&&Ve.default.createElement(ce,{size:"sm",onClick:z},"Change")),D&&!w&&Ve.default.createElement("div",{style:{marginTop:8,fontSize:13,color:"var(--color-text-secondary)"}},"This repository has its own agents. Boot the sandbox, then pick the one to evaluate.",Ve.default.createElement("div",{style:{marginTop:8}},Ve.default.createElement(ce,{size:"sm",onClick:z,disabled:n.sandbox_state!=="ready"},"List the checkout's agents"))),w&&Ve.default.createElement("ul",{style:{listStyle:"none",margin:"8px 0 0",padding:0},"data-testid":"synced-agents"},w.length===0&&Ve.default.createElement("li",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"The sandbox serves no agents."),w.map(G=>Ve.default.createElement("li",{key:G.slug,style:{display:"flex",gap:8,alignItems:"center",padding:"6px 0"}},Ve.default.createElement("span",{style:{fontFamily:U,fontSize:13}},G.tool),Ve.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)",flex:1}},G.description),Ve.default.createElement(ce,{size:"sm",onClick:()=>V({synced_agent:G.slug}),disabled:v},"Evaluate this agent")))),S&&Ve.default.createElement("div",{"data-testid":"project-run",style:{marginTop:10,fontSize:13,color:"var(--color-text-secondary)"}},"Run ",S.id," is ",S.status,O?": it starts once the sandbox is ready":"","."," ",Ve.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(`/evaluations/${S.evaluation_id}/runs/${S.id}`)},"Open run"))),_e?.kind==="app_assistant"&&Ve.default.createElement(J3,{project:n,onSaved:G=>{G&&o(G),N().catch(()=>{})},onConfirmationRequired:W}),Ve.default.createElement(pj,{project:n,onProjectChanged:G=>o(E=>E&&G.install_state!==E.install_state?G:E),onConfirmationRequired:W}),Ve.default.createElement("div",null,Ve.default.createElement(ce,{variant:"danger",size:"sm",onClick:le},"Delete project"))),u==="explorations"&&Ve.default.createElement(cj,{projectId:e,project:n}),u==="browser"&&Ve.default.createElement(R3,{project:n,modes:R,watchOnOpen:d,onChange:()=>N().catch(()=>{})}),u==="sessions"&&Ve.default.createElement(V3,{project:n}),u==="environment"&&Ve.default.createElement(Ve.default.Fragment,null,Ve.default.createElement(ej,{secrets:lj(s),onReplace:oe,onDelete:Me,error:y}),A?Ve.default.createElement(je,null,Ve.default.createElement(Ue,null,"Add secrets"),Ve.default.createElement("div",{style:{marginTop:8}},Ve.default.createElement(cb,{rows:A,onChange:C,repository:n.repository})),Ve.default.createElement("div",{style:{display:"flex",gap:8,marginTop:12,alignItems:"center"}},Ve.default.createElement(ce,{variant:"primary",disabled:!!Uh(A)||lb(A).length===0,onClick:async()=>{await q(lb(A))&&C(null)}},"Save secrets"),Ve.default.createElement(ce,{onClick:()=>C(null)},"Cancel"),Uh(A)&&Ve.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-secondary)"}},Uh(A)))):Ve.default.createElement("div",null,Ve.default.createElement(ce,{size:"sm",onClick:fe},"Add secrets"))))}var ma=Z(J());var nAe={ready:"success",booting:"info",failed:"error",expired:"muted",none:"muted"};function gj({projects:e,onOpen:t,onNew:r}){return ma.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"project-list"},ma.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:16}},ma.default.createElement("div",{style:{flex:1}},ma.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Projects"),ma.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)"}},"A repository booted in a sandbox, with the secrets it needs and an agent evaluated against the running app.")),ma.default.createElement(ce,{variant:"primary",onClick:r,testId:"new-project-button"},"New project")),e.length===0&&ma.default.createElement(je,null,ma.default.createElement("p",{style:{margin:0,fontSize:14,color:"var(--color-text-secondary)"}},"No projects yet. Pick a repository to boot it in a sandbox, even one that does not use ActiveAgent.")),e.map(n=>ma.default.createElement(je,{key:n.id,padding:14,testId:`project-${n.id}`},ma.default.createElement("button",{type:"button",onClick:()=>t(n),style:{all:"unset",cursor:"pointer",display:"flex",gap:10,alignItems:"center",width:"100%",flexWrap:"wrap"}},ma.default.createElement("span",{style:{fontSize:15,fontWeight:600,color:"var(--color-text-primary)"}},n.name),ma.default.createElement("span",{style:{fontFamily:U,fontSize:12,color:"var(--color-text-muted)"}},n.repository),ma.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:6}},ma.default.createElement(ke,{tone:nAe[n.sandbox_state]||"muted"},"sandbox ",n.sandbox_state),n.target_agent&&ma.default.createElement(ke,{tone:"accent"},n.target_agent.kind==="app_assistant"?"App assistant":n.target_agent.synced_agent))))))}function hj({visit:e=0}){let[t,r]=(0,ga.useState)(()=>ub(Rn())),[n,o]=(0,ga.useState)(null),[a,i]=(0,ga.useState)(null);(0,ga.useEffect)(()=>{r(ub(Rn()))},[e]),(0,ga.useEffect)(()=>{let u=()=>r(ub(Rn()));return window.addEventListener("popstate",u),window.addEventListener("dashboard:navigate",u),()=>{window.removeEventListener("popstate",u),window.removeEventListener("dashboard:navigate",u)}},[]);let s=(0,ga.useCallback)(async()=>{try{let u=await fetch("/api/projects"),c=await u.json().catch(()=>({}));if(!u.ok)throw new Error(at(c,`Could not list projects (HTTP ${u.status}).`));o(c.projects||[])}catch(u){i(u.message)}},[]);(0,ga.useEffect)(()=>{!t.creating&&!t.projectId&&s()},[t,s]);let l=u=>{id(u),r(ub(u))};return t.creating?ga.default.createElement(K3,{onCreated:u=>l(Sf(u.id)),onCancel:()=>l("/projects")}):t.projectId?ga.default.createElement(mj,{key:t.projectId,projectId:t.projectId,onBack:()=>l("/projects"),onDeleted:()=>l("/projects")}):a?ga.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},a):n?ga.default.createElement(gj,{projects:n,onOpen:u=>l(Sf(u.id)),onNew:()=>l(Sf(null))}):ga.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Loading projects\u2026")}var Yr=Z(J());function yj({visit:e=0}){let[t,r]=(0,Yr.useState)(()=>xA(Rn())),[n,o]=(0,Yr.useState)(null),[a,i]=(0,Yr.useState)(null),[s,l]=(0,Yr.useState)(null);(0,Yr.useEffect)(()=>{r(xA(Rn()))},[e]),(0,Yr.useEffect)(()=>{let c=()=>r(xA(Rn()));return window.addEventListener("popstate",c),window.addEventListener("dashboard:navigate",c),()=>{window.removeEventListener("popstate",c),window.removeEventListener("dashboard:navigate",c)}},[]);let u=(0,Yr.useCallback)(async()=>{try{let c=await fetch("/api/explorations"),d=await c.json().catch(()=>({}));if(!c.ok)throw new Error(at(d,`Could not list explorations (HTTP ${c.status}).`));o(d.explorations||[])}catch(c){l(c.message)}},[]);if((0,Yr.useEffect)(()=>{t.explorationId||u()},[t,u]),t.explorationId){let c=a?.project,d=a?.evaluation;return Yr.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12}},Yr.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},c?Yr.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(Sf(c.id)),style:{padding:0}},"\u2190 ",c.name):Yr.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt("/explorations"),style:{padding:0}},"\u2190 Explorations"),!c&&d&&Yr.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(`/evaluations/${d.id}`)},"Open ",d.name)),Yr.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Review candidate scenarios"),Yr.default.createElement(Ef,{key:t.explorationId,explorationId:t.explorationId,onLoaded:i}))}return Yr.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},Yr.default.createElement("div",null,Yr.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Explorations"),Yr.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)"}},"Questions found by walking an app, waiting to be reviewed and accepted into an evaluation.")),s&&Yr.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},s),!s&&!n&&Yr.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Loading explorations\u2026"),n?.length===0&&Yr.default.createElement(je,null,Yr.default.createElement("p",{style:{margin:0,fontSize:14,color:"var(--color-text-secondary)"}},"No explorations yet. An agent that explores a project's app submits what it found with the explorations_submit MCP tool.")),n?.length>0&&Yr.default.createElement(Cf,{explorations:n,onOpen:c=>lt(vA(c.id))}))}var xt=Z(J());var he=Z(J());var ri=Z(J());var vj=e=>({padding:"6px 8px",borderRadius:6,border:"1px solid var(--color-border)",background:"var(--color-surface)",color:"var(--color-text-primary)",fontSize:13,fontFamily:e?U:void 0}),Fee={display:"flex",flexDirection:"column",gap:4,fontSize:12,color:"var(--color-text-secondary)"},Uee=e=>typeof e=="string"?e:void 0;function Sn({label:e,value:t,onChange:r,placeholder:n,mono:o=!1,multiline:a=!1,rows:i=3,testId:s}){let l=(0,ri.useId)(),u={id:l,value:t,onChange:c=>r(c.target.value),placeholder:n,"aria-label":Uee(e),"data-testid":s};return ri.default.createElement("div",{style:Fee},ri.default.createElement("label",{htmlFor:l},e),a?ri.default.createElement("textarea",{...u,rows:i,style:{...vj(o),resize:"vertical"}}):ri.default.createElement("input",{...u,style:vj(o)}))}function bd({label:e,value:t,onChange:r,children:n,testId:o}){let a=(0,ri.useId)();return ri.default.createElement("div",{style:Fee},ri.default.createElement("label",{htmlFor:a},e),ri.default.createElement("select",{id:a,value:t,onChange:i=>r(i.target.value),"aria-label":Uee(e),style:vj(!1),"data-testid":o},n))}function pb({label:e,checked:t,onChange:r}){return ri.default.createElement("label",{style:{display:"inline-flex",gap:6,alignItems:"center",fontSize:12,color:"var(--color-text-secondary)"}},ri.default.createElement("input",{type:"checkbox",checked:t,onChange:n=>r(n.target.checked)}),e)}function ha({tone:e="info",children:t}){let r=e==="error";return ri.default.createElement("div",{role:r?"alert":"status",style:{fontSize:13,padding:"8px 10px",borderRadius:8,background:r?"var(--color-error-soft)":"transparent",color:r?"var(--color-error-text)":"var(--color-text-secondary)",border:r?"none":"1px solid var(--color-border)"}},t)}async function eo(e,{method:t="GET",body:r,fallback:n="The request failed"}={}){let o={method:t};r!==void 0&&(o.headers={"Content-Type":"application/json"},o.body=JSON.stringify(r));let a=await fetch(e,o),i=await a.json().catch(()=>({}));if(!a.ok)throw new Error(at(i,`${n} (HTTP ${a.status}).`));return i}async function Wee(e){let t=await fetch(e);if(!t.ok)throw new Error(`The export failed (HTTP ${t.status}).`);return t.text()}var oAe=["collections","generate","import"],aAe=/^\/(?:scenarios|catalogs)(?:\/(\d+|generate|import))?\/?$/;function xj(e=""){let r=String(e).match(aAe)?.[1];return r?/^\d+$/.test(r)?{tab:"collections",collectionId:Number(r)}:{tab:r,collectionId:null}:{tab:"collections",collectionId:null}}function Hee({tab:e="collections",collectionId:t=null}={}){return t?`/scenarios/${t}`:e==="collections"||!oAe.includes(e)?"/scenarios":`/scenarios/${e}`}function bj(e,{productIds:t=[],setIds:r=[],scenarioIds:n=[]}={},{inline:o=!1}={}){let a=new URLSearchParams;t.length&&a.set("product_ids",t.join(",")),r.length&&a.set("set_ids",r.join(",")),n.length&&a.set("scenario_ids",n.join(",")),o&&a.set("disposition","inline");let i=a.toString();return`/api/scenario_catalogs/${e}/export${i?`?${i}`:""}`}function wA(e){let t=String(e??"").split(/[,\n]/).map(r=>r.trim()).filter(Boolean);return[...new Set(t)]}function qee(e={}){let t=e.expectations||{};return{key:e.key||"",prompt:e.prompt||"",notes:e.notes||"",tools:(t.tools||[]).join(", "),contains:(t.contains||[]).join(", "),notContains:(t.not_contains||[]).join(", "),tags:(e.tags||[]).join(", "),productionOnly:!!e.production_only,enabled:e.enabled!==!1}}function Kee(e){return{scenario:{key:e.key.trim(),prompt:e.prompt.trim(),notes:e.notes.trim(),expect:{tools:wA(e.tools),contains:wA(e.contains),not_contains:wA(e.notContains)},tags:wA(e.tags),production_only:e.productionOnly,enabled:e.enabled}}}function Vee(e){return e.prompt.trim()?e.key.trim()&&!/^[^\s]+$/.test(e.key.trim())?"A key has no spaces.":null:"A scenario needs a prompt."}function Gee(e={}){let t=[];return e.tools?.length&&t.push(`tools ${e.tools.join(", ")}`),e.contains?.length&&t.push(`contains ${e.contains.join(", ")}`),e.not_contains?.length&&t.push(`never ${e.not_contains.join(", ")}`),t.join(" \xB7 ")}var iAe=["create","update","remove","keep"],sAe={create:"New",update:"Overwritten",remove:"Removed",keep:"Kept (not in the document)"};function Yee(e){let t=e?.changes||[];return iAe.map(r=>({action:r,label:sAe[r],changes:t.filter(n=>n.action===r)})).filter(r=>r.changes.length>0)}function Xee(e){if(!e)return"";let t=e.counts||{},r=e.catalog?.action==="create"?"Creates":"Updates",n=[`${t.create||0} new`,`${t.update||0} overwritten`,e.mode==="merge"?`${t.keep||0} kept`:`${t.remove||0} removed`];return`${r} ${e.catalog?.key}: ${n.join(", ")} (${e.scenario_count} scenarios in the document).`}function Zee(e=[]){return e.some(t=>(t.counts?.update||0)+(t.counts?.remove||0)>0)}function Jee(e,t){return e.includes(t)?e.filter(r=>r!==t):[...e,t]}function wj({collectionId:e,agents:t,projects:r,storageAvailable:n,onBack:o,onChanged:a,onDeleted:i}){let[s,l]=(0,he.useState)(null),[u,c]=(0,he.useState)(null),[d,p]=(0,he.useState)(null),[f,m]=(0,he.useState)({productIds:[],setIds:[],scenarioIds:[]}),[y,b]=(0,he.useState)(!1),[g,h]=(0,he.useState)(!1),v=`/api/scenario_catalogs/${e}`,x=(0,he.useCallback)(async()=>{try{let N=await eo(v,{fallback:"Could not open the collection"});l(N.catalog),c(null)}catch(N){c(N.message)}},[v]);(0,he.useEffect)(()=>{x()},[x]);let S=async(N,L,Q,B)=>{let K=await eo(`${v}${N}`,{method:L,body:Q,fallback:B});return K.catalog?l(K.catalog):await x(),a?.(),K},k=async N=>{c(null),p(null);try{await N()}catch(L){c(L.message)}},w=f.productIds.length+f.setIds.length+f.scenarioIds.length,_=(N,L)=>m(Q=>({...Q,[N]:Jee(Q[N],L)})),A=N=>k(async()=>{let L=await Wee(bj(e,N,{inline:!0})),Q=await ud(L);p(Q?"YAML copied.":"The browser refused the clipboard; use Download instead.")}),C=N=>window.open(bj(e,N),"_blank");return s?he.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12},"data-testid":"scenario-collection"},he.default.createElement("div",null,he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:o,style:{padding:0}},"\u2190 Scenarios")),y?he.default.createElement(lAe,{collection:s,onCancel:()=>b(!1),onSave:async N=>{await S("","PATCH",{catalog:N},"Could not save the collection"),b(!1)}}):he.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:12,flexWrap:"wrap",alignItems:"flex-start"}},he.default.createElement("div",null,he.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},s.name),he.default.createElement("p",{style:{margin:"4px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},he.default.createElement("code",null,s.key),s.source_path?` \xB7 ${s.source_path}`:"",s.description?` \xB7 ${s.description}`:""),he.default.createElement("p",{style:{margin:"4px 0 0",fontSize:12,color:"var(--color-text-secondary)"}},s.scenario_count," scenarios \xB7 digest ",s.digest?s.digest.slice(0,12):"\u2014"," \xB7"," ",s.synced?"synced to storage":n?"not synced to storage":"Active Storage is off for this dashboard")),he.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap"}},he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>b(!0)},"Rename"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>C({}),testId:"scenarios-export-all"},"Export all"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>A({})},"Copy YAML"),n&&he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>k(async()=>{await S("/sync","POST",{direction:"push"},"Sync failed"),p("Written to storage.")})},"Write to storage"),he.default.createElement(ce,{size:"sm",variant:"danger",onClick:()=>k(async()=>{await Wr({title:`Delete the collection ${s.key}?`,message:"Its products, sets and scenarios are deleted. The evaluations its sets became stay, with their runs.",confirmLabel:"Delete collection",danger:!0,requireText:s.key})&&(await eo(v,{method:"DELETE",fallback:"Delete failed"}),i?.())})},"Delete"))),u&&he.default.createElement(ha,{tone:"error"},u),d&&he.default.createElement(ha,null,d),w>0&&he.default.createElement(je,{padding:12,testId:"scenarios-selection-bar",style:{position:"sticky",top:8,zIndex:1}},he.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},he.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-primary)"}},w," selected"),he.default.createElement(ce,{size:"sm",onClick:()=>C(f),testId:"scenarios-export-selection"},"Download YAML"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>A(f)},"Copy YAML"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>m({productIds:[],setIds:[],scenarioIds:[]})},"Clear"),he.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"Import it back with \u201CKeep what the document leaves out\u201D to update only these."))),(s.products||[]).length===0&&!g&&he.default.createElement(je,{testId:"scenarios-collection-empty"},he.default.createElement("p",{style:{margin:0,color:"var(--color-text-secondary)"}},"No products yet. A product is what its sets run against: an agent, or a project whose booted app the replays reach.")),(s.products||[]).map(N=>he.default.createElement(uAe,{key:N.id,product:N,collection:s,agents:t,projects:r,selection:f,onToggle:_,change:S,act:k,setNotice:p})),g?he.default.createElement(Ree,{agents:t,projects:r,onCancel:()=>h(!1),onSave:async N=>{await S("/products","POST",{product:N},"Could not add the product"),h(!1)}}):he.default.createElement("div",null,he.default.createElement(ce,{size:"sm",onClick:()=>h(!0),testId:"scenarios-add-product"},"Add product"))):u?he.default.createElement(ha,{tone:"error"},u):he.default.createElement("p",{style:{color:"var(--color-text-secondary)"}},"Loading the collection\u2026")}function lAe({collection:e,onSave:t,onCancel:r}){let[n,o]=(0,he.useState)(e.name||""),[a,i]=(0,he.useState)(e.description||"");return he.default.createElement(SA,{onSave:()=>t({name:n.trim(),description:a.trim()}),onCancel:r},he.default.createElement(Sn,{label:"Name",value:n,onChange:o}),he.default.createElement(Sn,{label:"Description",value:a,onChange:i}))}function uAe({product:e,collection:t,agents:r,projects:n,selection:o,onToggle:a,change:i,act:s,setNotice:l}){let[u,c]=(0,he.useState)(!1),[d,p]=(0,he.useState)(!1),f=`/products/${e.id}`;return he.default.createElement(je,{testId:"scenarios-product"},u?he.default.createElement(Ree,{product:e,agents:r,projects:n,onCancel:()=>c(!1),onSave:async m=>{await i(f,"PATCH",{product:m},"Could not save the product"),c(!1)}}):he.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},he.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"flex-start"}},he.default.createElement("input",{type:"checkbox","aria-label":`Select product ${e.key}`,checked:o.productIds.includes(e.id),onChange:()=>a("productIds",e.id),style:{marginTop:4}}),he.default.createElement("div",null,he.default.createElement("div",{style:{fontWeight:600,color:"var(--color-text-primary)"}},e.name),he.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},he.default.createElement("code",null,e.key),e.agent?` \xB7 agent ${e.agent.name}`:e.agent_name?` \xB7 agent ${e.agent_name} (not on this dashboard)`:" \xB7 no agent chosen",e.project?` \xB7 project ${e.project.name}`:""),e.description&&he.default.createElement("p",{style:{margin:"4px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},e.description))),he.default.createElement("div",{style:{display:"flex",gap:6,alignItems:"center",flexWrap:"wrap"}},he.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-secondary)"}},e.set_count," sets \xB7 ",e.scenario_count," scenarios"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>c(!0)},"Edit"),he.default.createElement(ce,{size:"sm",variant:"danger",onClick:()=>s(async()=>{await Wr({title:`Delete product ${e.key}?`,message:`Its ${e.set_count} sets and their scenarios are deleted.`,confirmLabel:"Delete product",danger:!0})&&await i(f,"DELETE",void 0,"Could not delete the product")})},"Delete"))),he.default.createElement("div",{style:{display:"grid",gap:8,marginTop:12}},(e.sets||[]).map(m=>he.default.createElement(cAe,{key:m.id,set:m,product:e,collection:t,agents:r,projects:n,selection:o,onToggle:a,change:i,act:s,setNotice:l})),d?he.default.createElement(ete,{onCancel:()=>p(!1),onSave:async m=>{await i(`${f}/sets`,"POST",{set:m},"Could not add the set"),p(!1)}}):he.default.createElement("div",null,he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>p(!0)},"Add set"))))}function cAe({set:e,product:t,collection:r,agents:n,projects:o,selection:a,onToggle:i,change:s,act:l,setNotice:u}){let[c,d]=(0,he.useState)((e.scenarios||[]).length<=5),[p,f]=(0,he.useState)(!1),[m,y]=(0,he.useState)(null),b=t.project?`project:${t.project.id}`:t.agent?`agent:${t.agent.id}`:"",[g,h]=(0,he.useState)(b),v=`/sets/${e.id}`,x=()=>l(async()=>{let[S,k]=g.split(":"),w=S==="project"?{project_id:Number(k)}:S==="agent"?{agent_id:Number(k)}:{},_=await eo(`/api/scenario_catalogs/${r.id}${v}/run`,{method:"POST",body:w,fallback:"The run could not start"});u(`Run #${_.run.id} of ${e.name} started; it shows under Evaluations as ${_.evaluation.name}.`)});return he.default.createElement("div",{style:{border:"1px solid var(--color-border)",borderRadius:8,padding:10},"data-testid":"scenarios-set"},p?he.default.createElement(ete,{set:e,onCancel:()=>f(!1),onSave:async S=>{await s(v,"PATCH",{set:S},"Could not save the set"),f(!1)}}):he.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:10,flexWrap:"wrap",alignItems:"center"}},he.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},he.default.createElement("input",{type:"checkbox","aria-label":`Select set ${e.key}`,checked:a.setIds.includes(e.id),onChange:()=>i("setIds",e.id)}),he.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},e.name),he.default.createElement("code",{style:{fontSize:12,color:"var(--color-text-secondary)"}},e.key),he.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"\xB7 ",e.scenario_count," scenarios"),e.judge?.kind&&he.default.createElement(ke,null,`judge ${e.judge.kind}`),e.evaluation&&he.default.createElement("a",{href:"#",style:{fontSize:12},onClick:S=>{S.preventDefault(),lt(`/evaluations/${e.evaluation.id}`)}},"evaluation",e.latest_run?` (latest run ${e.latest_run.status})`:"")),he.default.createElement("div",{style:{display:"flex",gap:6,alignItems:"center",flexWrap:"wrap"}},he.default.createElement("select",{value:g,onChange:S=>h(S.target.value),style:{fontSize:12,padding:4,borderRadius:6,border:"1px solid var(--color-border)",background:"var(--color-surface)",color:"var(--color-text-primary)"}},he.default.createElement("option",{value:""},"Run against\u2026"),o.length>0&&he.default.createElement("optgroup",{label:"Projects (booted app and browser)"},o.map(S=>he.default.createElement("option",{key:`project-${S.id}`,value:`project:${S.id}`},S.name))),n.length>0&&he.default.createElement("optgroup",{label:"Agents"},n.map(S=>he.default.createElement("option",{key:`agent-${S.id}`,value:`agent:${S.id}`},S.name)))),he.default.createElement(ce,{size:"sm",onClick:x,disabled:!g&&!t.agent&&!t.project||e.scenario_count===0},"Run set"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>d(S=>!S)},c?"Hide":"Scenarios"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>f(!0)},"Edit"),he.default.createElement(ce,{size:"sm",variant:"danger",onClick:()=>l(async()=>{await Wr({title:`Delete set ${e.key}?`,message:`Its ${e.scenario_count} scenarios are deleted. Its evaluation stays.`,confirmLabel:"Delete set",danger:!0})&&await s(v,"DELETE",void 0,"Could not delete the set")})},"Delete"))),c&&he.default.createElement("ul",{style:{listStyle:"none",margin:"10px 0 0",padding:0,display:"grid",gap:6}},(e.scenarios||[]).map(S=>m===S.id?he.default.createElement("li",{key:S.id},he.default.createElement(Qee,{scenario:S,onCancel:()=>y(null),onSave:async k=>{await s(`${v}/scenarios/${S.id}`,"PATCH",k,"Could not save the scenario"),y(null)}})):he.default.createElement(dAe,{key:S.id,scenario:S,selected:a.scenarioIds.includes(S.id),onToggle:()=>i("scenarioIds",S.id),onEdit:()=>y(S.id),onDelete:()=>l(async()=>{await Wr({title:`Delete scenario ${S.key}?`,confirmLabel:"Delete scenario",danger:!0})&&await s(`${v}/scenarios/${S.id}`,"DELETE",void 0,"Could not delete the scenario")})})),he.default.createElement("li",null,m==="new"?he.default.createElement(Qee,{onCancel:()=>y(null),onSave:async S=>{await s(`${v}/scenarios`,"POST",S,"Could not add the scenario"),y(null)}}):he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>{d(!0),y("new")},testId:"scenarios-add-scenario"},"Add scenario"))))}function dAe({scenario:e,selected:t,onToggle:r,onEdit:n,onDelete:o}){let a=Gee(e.expectations);return he.default.createElement("li",{style:{display:"flex",gap:8,alignItems:"flex-start",padding:"6px 8px",borderRadius:6,background:"var(--color-surface)"},"data-testid":"scenarios-scenario"},he.default.createElement("input",{type:"checkbox","aria-label":`Select scenario ${e.key}`,checked:t,onChange:r,style:{marginTop:3}}),he.default.createElement("div",{style:{flex:1,minWidth:0}},he.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-primary)",opacity:e.enabled?1:.6}},he.default.createElement("code",{style:{fontSize:11,color:"var(--color-text-secondary)"}},e.key)," ",e.prompt),(e.notes||a)&&he.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)",marginTop:2}},e.notes,e.notes&&a?" \xB7 ":"",a&&he.default.createElement("span",{style:{fontFamily:U}},a)),he.default.createElement("div",{style:{display:"flex",gap:4,marginTop:2,flexWrap:"wrap"}},(e.tags||[]).map(i=>he.default.createElement(ke,{key:i},i)),e.production_only&&he.default.createElement(ke,{tone:"warning"},"production only"),!e.enabled&&he.default.createElement(ke,null,"disabled"))),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:n},"Edit"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:o},"Delete"))}function SA({children:e,onSave:t,onCancel:r,problem:n=null,testId:o}){let[a,i]=(0,he.useState)(!1),[s,l]=(0,he.useState)(null);return he.default.createElement("form",{onSubmit:async c=>{if(c.preventDefault(),n){l(n);return}i(!0),l(null);try{await t()}catch(d){l(d.message)}finally{i(!1)}},style:{display:"flex",flexDirection:"column",gap:8,padding:10,border:"1px dashed var(--color-border)",borderRadius:8},"data-testid":o},e,s&&he.default.createElement(ha,{tone:"error"},s),he.default.createElement("div",{style:{display:"flex",gap:8}},he.default.createElement(ce,{type:"submit",size:"sm",variant:"primary",disabled:a},a?"Saving\u2026":"Save"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:r},"Cancel")))}function Ree({product:e=null,agents:t,projects:r,onSave:n,onCancel:o}){let[a,i]=(0,he.useState)(e?.name||""),[s,l]=(0,he.useState)(e?.key||""),[u,c]=(0,he.useState)(e?.description||""),[d,p]=(0,he.useState)(e?.agent?String(e.agent.id):""),[f,m]=(0,he.useState)(e?.project?String(e.project.id):"");return he.default.createElement(SA,{onCancel:o,onSave:()=>n({name:a.trim(),key:s.trim(),description:u.trim(),agent_id:d,project_id:f}),testId:"scenarios-product-form"},he.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))"}},he.default.createElement(Sn,{label:"Name",value:a,onChange:i,placeholder:"Triage"}),he.default.createElement(Sn,{label:"Key",value:s,onChange:l,placeholder:"made from the name when empty",mono:!0}),he.default.createElement(bd,{label:"Agent",value:d,onChange:p},he.default.createElement("option",{value:""},"None"),t.map(y=>he.default.createElement("option",{key:y.id,value:y.id},y.name))),he.default.createElement(bd,{label:"Project",value:f,onChange:m},he.default.createElement("option",{value:""},"None"),r.map(y=>he.default.createElement("option",{key:y.id,value:y.id},y.name)))),he.default.createElement(Sn,{label:"Description",value:u,onChange:c,placeholder:"optional"}))}function ete({set:e=null,onSave:t,onCancel:r}){let[n,o]=(0,he.useState)(e?.name||""),[a,i]=(0,he.useState)(e?.key||""),[s,l]=(0,he.useState)(e?.description||""),[u,c]=(0,he.useState)(e?.judge?.kind||"");return he.default.createElement(SA,{onCancel:r,onSave:()=>t({name:n.trim(),key:a.trim(),description:s.trim(),...u?{judge:{kind:u}}:{}}),testId:"scenarios-set-form"},he.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))"}},he.default.createElement(Sn,{label:"Name",value:n,onChange:o,placeholder:"Smoke"}),he.default.createElement(Sn,{label:"Key",value:a,onChange:i,placeholder:"made from the name when empty",mono:!0}),he.default.createElement(bd,{label:"Judge",value:u,onChange:c},he.default.createElement("option",{value:""},"The evaluation's default"),he.default.createElement("option",{value:"rules"},"Rules (expectations only)"),he.default.createElement("option",{value:"llm"},"LLM judge (grades against the notes)"))),he.default.createElement(Sn,{label:"Description",value:s,onChange:l,placeholder:"optional"}))}function Qee({scenario:e=null,onSave:t,onCancel:r}){let[n,o]=(0,he.useState)(()=>qee(e||{})),a=i=>s=>o(l=>({...l,[i]:s}));return he.default.createElement(SA,{onCancel:r,onSave:()=>t(Kee(n)),problem:Vee(n),testId:"scenarios-scenario-form"},he.default.createElement(Sn,{label:"Prompt: what a user asks the agent",value:n.prompt,onChange:a("prompt"),multiline:!0,testId:"scenario-prompt"}),he.default.createElement(Sn,{label:"Notes: the rubric, what a good answer does",value:n.notes,onChange:a("notes"),multiline:!0,rows:2}),he.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))"}},he.default.createElement(Sn,{label:"Expected tools",value:n.tools,onChange:a("tools"),placeholder:"lookup_order, refund_order",mono:!0}),he.default.createElement(Sn,{label:"Answer contains",value:n.contains,onChange:a("contains"),placeholder:"comma-separated"}),he.default.createElement(Sn,{label:"Answer never contains",value:n.notContains,onChange:a("notContains"),placeholder:"comma-separated"}),he.default.createElement(Sn,{label:"Tags",value:n.tags,onChange:a("tags"),placeholder:"billing, regression"}),he.default.createElement(Sn,{label:"Key",value:n.key,onChange:a("key"),placeholder:"made from the prompt when empty",mono:!0})),he.default.createElement("div",{style:{display:"flex",gap:16}},he.default.createElement(pb,{label:"Enabled",checked:n.enabled,onChange:a("enabled")}),he.default.createElement(pb,{label:"Production only",checked:n.productionOnly,onChange:a("productionOnly")})))}var Et=Z(J());function Sj({projects:e,collections:t,onAccepted:r}){let[n,o]=(0,Et.useState)(""),[a,i]=(0,Et.useState)(null),[s,l]=(0,Et.useState)(null),[u,c]=(0,Et.useState)({sandbox:null,modes:[]}),[d,p]=(0,Et.useState)([]),[f,m]=(0,Et.useState)(null),[y,b]=(0,Et.useState)({collectionId:"",setId:""}),[g,h]=(0,Et.useState)(null),[v,x]=(0,Et.useState)(null),S=(0,Et.useCallback)(async()=>{if(n)try{let[N,L,Q,B]=await Promise.all([eo(`/api/projects/${n}`,{fallback:"Could not load the project"}),eo("/api/projects/capabilities").catch(()=>({})),eo("/api/sandboxes").catch(()=>({})),eo(`/api/explorations?project_id=${n}`,{fallback:"Could not list the project's explorations"})]),K=N.project;i(K),l((L.items||[]).find(O=>O.key==="model_credentials")||null);let T=K?.sandbox?.session_id;c({sandbox:(Q.sandboxes||[]).find(O=>O.session_id===T)||null,modes:Q.browser_modes||[]}),p(B.explorations||[]),x(null)}catch(N){x(N.message)}},[n]);(0,Et.useEffect)(()=>{i(null),m(null),S()},[S]),(0,Et.useEffect)(()=>{if(!y.collectionId){h(null);return}eo(`/api/scenario_catalogs/${y.collectionId}`).then(N=>h(N.catalog)).catch(N=>x(N.message))},[y.collectionId]);let k=(g?.products||[]).flatMap(N=>(N.sets||[]).map(L=>({...L,product:N}))),w=k.find(N=>String(N.id)===String(y.setId)),_=async()=>{try{let L=(await eo("/api/scenario_catalogs",{method:"POST",body:{catalog:{name:a.name}},fallback:"Could not create the collection"})).catalogs[0].id,Q=await eo(`/api/scenario_catalogs/${L}/products`,{method:"POST",body:{product:{name:a.name,project_id:a.id}},fallback:"Could not add the product"}),B=await eo(`/api/scenario_catalogs/${L}/products/${Q.product.id}/sets`,{method:"POST",body:{set:{name:"Explored",key:"explored",judge:{kind:"llm"}}},fallback:"Could not add the set"});r?.(),b({collectionId:String(L),setId:String(B.set.id)})}catch(N){x(N.message)}},A=a?.sandbox_state==="ready",C=f||d[0]?.id;return Et.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12},"data-testid":"scenarios-generator"},Et.default.createElement(je,null,Et.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},Et.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"Pick a project. The explorer walks its running app in the sandbox's browser and proposes scenarios, which you edit and accept into a set below. Nothing is added until you accept it."),Et.default.createElement(bd,{label:"Project",value:n,onChange:o,testId:"scenarios-generator-project"},Et.default.createElement("option",{value:""},"Choose a project\u2026"),e.map(N=>Et.default.createElement("option",{key:N.id,value:N.id},N.name))),e.length===0&&Et.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"No projects yet. ",Et.default.createElement("a",{href:"#",onClick:N=>{N.preventDefault(),lt("/projects/new")}},"Create one")," from a repository first."))),v&&Et.default.createElement(ha,{tone:"error"},v),a&&Et.default.createElement(Et.default.Fragment,null,s&&!s.ok&&Et.default.createElement(ha,{tone:"error"},"The explorer runs on a model: ",s.detail||"no provider has credentials","."," ",Et.default.createElement("a",{href:"#",onClick:N=>{N.preventDefault(),lt("/settings?tab=api-keys")}},"Add a provider key"),", then start it."),!A&&Et.default.createElement(ha,null,a.name,"'s sandbox is ",a.sandbox_state||"not booted",". The explorer walks the app the sandbox serves:"," ",Et.default.createElement("a",{href:"#",onClick:N=>{N.preventDefault(),lt(`/projects/${a.id}`)}},"boot it on the project's page"),"."),Et.default.createElement(db,{projectId:a.id,sandboxReady:A,onStarted:N=>{m(N.id),S()}}),A&&u.sandbox&&u.modes.length>0&&Et.default.createElement(Zr,{title:"The sandbox's browser",meta:"watch the explorer walk the app",bodyStyle:{padding:12}},Et.default.createElement(kf,{sandbox:u.sandbox,modes:u.modes})),Et.default.createElement(Zr,{title:"Accept into",testId:"scenarios-generator-destination",bodyStyle:{padding:12,display:"flex",flexDirection:"column",gap:8}},Et.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))"}},Et.default.createElement(bd,{label:"Collection",value:y.collectionId,onChange:N=>b({collectionId:N,setId:""})},Et.default.createElement("option",{value:""},"Choose a collection\u2026"),t.map(N=>Et.default.createElement("option",{key:N.id,value:N.id},N.name))),Et.default.createElement(bd,{label:"Set",value:y.setId,onChange:N=>b(L=>({...L,setId:N}))},Et.default.createElement("option",{value:""},g&&k.length===0?"The collection has no sets yet":"Choose a set\u2026"),k.map(N=>Et.default.createElement("option",{key:N.id,value:N.id},N.product.name," / ",N.name)))),Et.default.createElement("div",null,Et.default.createElement(ce,{size:"sm",variant:"ghost",onClick:_},"New collection for ",a.name))),d.length===0?Et.default.createElement(je,null,Et.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"No explorations of ",a.name," yet. Start the explorer above, or have a coding agent driving a browser submit what it found with the explorations_submit MCP tool.")):Et.default.createElement(Et.default.Fragment,null,Et.default.createElement(Cf,{explorations:d,selectedId:C,onOpen:N=>m(N.id)}),!w&&Et.default.createElement(ha,null,"Choose the set to accept into, above."),Et.default.createElement(Ef,{key:`${C}-${w?.id||"none"}`,explorationId:C,requireScenarioSet:!0,scenarioSet:w?{id:w.id,label:`${w.product.name} / ${w.name}`}:null,onAccepted:()=>r?.()}))))}var Kt=Z(J());var pAe=[{value:"document",label:"Paste YAML"},{value:"file",label:"Upload a file"},{value:"repository",label:"From a repository"}],fAe=`catalog: support_desk + api_key: <%= ENV["ACTIVEAGENTS_API_KEY"] %>`),Te.default.createElement("div",{className:"flex items-center justify-between gap-3"},Te.default.createElement("div",{className:"min-w-0 flex-1"},Te.default.createElement("p",{className:`text-xs uppercase tracking-wide mb-1 ${o?"text-gray-500":"text-gray-400"}`},"API Key"),Te.default.createElement("code",{"data-testid":"telemetry-key","data-aa-secret":"",className:`block truncate text-sm font-mono px-3 py-2 rounded-lg border ${o?"bg-gray-900 border-gray-700 text-gray-300":"bg-gray-50 border-gray-200 text-gray-700"}`},T?"Not available":u?d.value:"\u2022".repeat(24))),Te.default.createElement("div",{className:"flex gap-2 flex-shrink-0 self-end"},Te.default.createElement("button",{onClick:B,disabled:T||d.status==="loading",className:"px-3 py-2 text-sm bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-colors disabled:opacity-50 disabled:cursor-not-allowed"},u?"Hide":"Show"),Te.default.createElement("button",{onClick:K,disabled:T||d.status==="loading",className:"px-3 py-2 text-sm bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors disabled:opacity-50 disabled:cursor-not-allowed"},s?"Copied!":"Copy"))),d.error&&Te.default.createElement("p",{role:"alert",className:"mt-2 text-sm text-red-500"},d.error)))}var Oe=Z(Q());var Ke=Z(Q());var O2e=/^[A-Za-z_][A-Za-z0-9_]*$/,P2e=/^(?:PORT|DATABASE_URL|RUBYOPT|RUBYLIB|LD_PRELOAD|PATH|NODE_OPTIONS)$|_DATABASE_URL$|^ACTION_AGENT_SANDBOX_|^DYLD_|^BUNDLE_|^GIT_/,M2e={OPENAI_API_KEY:"openai",ANTHROPIC_API_KEY:"anthropic",OPENROUTER_API_KEY:"openrouter"},I2e=["sk_live_","rk_live_"],LR=8,zR=2e3;function dA(e){return e?O2e.test(e)?P2e.test(e)?`${e} is set by the sandbox or changes how code is loaded, so a project cannot set it.`:null:"Use letters, digits and _ only, not starting with a digit.":"Name the variable."}function pA(e,t){let r=[],n=typeof t=="string"?t:"";return I2e.some(o=>n.startsWith(o))&&r.push({code:"live_credential",message:"This looks like a live-mode key. A sandbox runs the repository's code with it: use a test-mode key."}),n.length>0&&n.lengthn.name));return e.map(n=>({name:n.name,required:!!n.required,sources:n.sources||[],description:n.description||null,organizationKey:n.organization_key||M2e[n.name]||null,set:r.has(n.name)||!!n.set,value:"",useOrganizationKey:!1,consent:!1}))}function BR(e,t){return[...e,...sb([{name:t}])]}function FR({name:e,edited:t,fullName:r}){return t?e:r}function lb(e){return e.flatMap(t=>t.useOrganizationKey?[{name:t.name,source:"organization_key",consent:t.consent===!0}]:t.value?[{name:t.name,value:t.value}]:[])}function Uh(e){for(let t of e){let r=dA(t.name);if(r&&(t.value||t.useOrganizationKey))return r;if(t.useOrganizationKey&&!t.consent)return`Confirm that ${t.name}'s organization key may be read by the repository's code.`}return null}function UR({github:e,repositories:t,reconnectRequired:r=!1,pendingApproval:n=!1}={}){return e?e.mode==="none"?"not_configured":e.connected?r?"reconnect_required":n?"pending_approval":t==null?"loading":t.length===0?"empty":"ready":"not_connected":"loading"}function j3(e){return/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/.test(e||"")}function D2e(e){return(e?.items||[]).filter(t=>t.blocking&&!t.ok)}function WR({capabilities:e,preflight:t,secretsProblem:r}={}){if(!e)return"Checking what this dashboard can do\u2026";let n=D2e(e);return n.length>0?`Fix first: ${n.map(o=>o.label).join(", ")}.`:t?t.status==="unsupported"?t.summary:r||null:"Pick a repository."}var fA={supported:"success",bootstrap:"info",unsupported:"error"};function HR(e){return e==="checkout"?"Checkout":e==="preflight"?"Preflight":e==="setup"?"Setup":/^bundle_/.test(e)?"Bundle":/^(add|install)_/.test(e)?"Install":/_build$/.test(e)?"Assets":e==="db_prepare"?"Database":e==="manifest"?"Manifest":e==="start"||e==="server"?"Start and start URL":"Step"}function qR(e){if(e==null||Number.isNaN(Number(e)))return"\u2014";let t=Number(e);if(t<1e3)return`${Math.round(t)}ms`;if(t<6e4)return`${(t/1e3).toFixed(1)}s`;let r=Math.floor(t/6e4),n=Math.round(t%6e4/1e3);return`${r}m ${String(n).padStart(2,"0")}s`}var KR={succeeded:"success",failed:"error",running:"info",skipped:"muted",pending:"muted"};function VR(e){return e?.sandbox_state==="booting"}function Sf(e){return e==null?"/projects/new":`/projects/${e}`}function ub(e=""){if(/^\/projects\/new\/?$/.test(e))return{creating:!0};let t=e.match(/^\/projects\/(\d+)/);return t?{projectId:t[1]}:{}}var GR=["overview","explorations","environment","browser","sessions"];function YR(e=""){let t=new URLSearchParams(e).get("tab");return GR.includes(t)?t:"overview"}function XR(e="",t="overview"){let r=new URLSearchParams(e);t==="overview"||!GR.includes(t)?r.delete("tab"):r.set("tab",t);let n=r.toString();return n?`?${n}`:""}function mA(e){if(!e?.project?.id)return null;let t=Sf(e.project.id);return e.browser?.status==="running"?`${t}?tab=browser`:t}function ZR(e,t=[]){return e?.sandbox_state!=="ready"||!e.sandbox?.session_id||t.length===0?null:e.sandbox.browser?.status==="running"?{label:"Watch live",watch:!0}:{label:"Open browser",watch:!1}}var Mn=Z(Q());function kf({sandbox:e,modes:t,watchOnOpen:r=!1,onChange:n}){let{darkMode:o}=ut(),[a,i]=(0,Mn.useState)(e.browser||null),[s,l]=(0,Mn.useState)(!1),[u,c]=(0,Mn.useState)(null),[d,p]=(0,Mn.useState)(null),f=`/api/sandboxes/${encodeURIComponent(e.session_id)}/browser`;(0,Mn.useEffect)(()=>{i(e.browser||null)},[e.browser?.status,e.browser?.started_at,e.browser?.live_url]);let m=async(_,A,C)=>{c(_),p(null);try{let N=await fetch(f,A),L=await N.json().catch(()=>({}));if(L.browser&&(i(L.browser),n?.(L.browser)),!N.ok)throw new Error(L.message||at(L,`${C} (HTTP ${N.status}).`))}catch(N){p(N.message)}finally{c(null)}},y=()=>m("start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(rZ({inWindow:s,modes:t}))},"Could not start the browser"),b=()=>m("stop",{method:"DELETE"},"Could not stop the browser"),g=o?"text-gray-400":"text-gray-500",h=o?"text-white":"text-gray-900",v=o?"border-gray-700":"border-gray-200",x=`px-3 py-1 text-sm rounded disabled:opacity-50 ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,S=eZ(a),k=tZ(a),w=a?.status==="running";return Mn.default.createElement("div",{className:`mt-2 p-3 rounded-lg border space-y-3 ${v}`},Mn.default.createElement("div",{className:"flex flex-wrap items-center justify-between gap-2"},Mn.default.createElement("div",{className:"flex items-center gap-2"},Mn.default.createElement("p",{className:`text-sm font-medium ${h}`},"Browser"),S&&Mn.default.createElement(Ks,{tone:S.tone},S.label)),k?Mn.default.createElement("button",{type:"button",onClick:b,disabled:u!==null,className:x},u==="stop"?"Stopping\u2026":"Stop browser"):Mn.default.createElement("div",{className:"flex items-center gap-3"},t.includes("headed")&&Mn.default.createElement("label",{className:`flex items-center gap-1 text-xs ${g}`},Mn.default.createElement("input",{type:"checkbox",checked:s,onChange:_=>l(_.target.checked),disabled:u!==null}),"Open a window on this machine"),Mn.default.createElement("button",{type:"button",onClick:y,disabled:u!==null,className:x},u==="start"?"Starting\u2026":"Start browser"))),d&&Mn.default.createElement("p",{className:`text-xs ${o?"text-red-400":"text-red-600"}`,role:"alert"},d),!k&&!d&&Mn.default.createElement("p",{className:`text-xs ${g}`},"A browser of this sandbox's own, opened on its app and recorded. Agent runs against the sandbox can drive it."),w&&a.server_key&&Mn.default.createElement("p",{className:`text-xs ${g}`},"Runs against this sandbox reach it as ",Mn.default.createElement("code",{className:"font-mono"},a.server_key),"."),w&&a.live_url&&Mn.default.createElement(S0,{key:a.started_at,sessionId:e.session_id,headed:a.mode==="headed",watchOnOpen:r}),w&&!a.live_url&&Mn.default.createElement("p",{className:`text-xs ${g}`},"This browser has no live view to watch."))}var tr=Z(Q());var un=Z(Q());function JR(e,t=""){let r=t.toLowerCase();return(e||[]).filter(n=>n.full_name.toLowerCase().includes(r))}function gA(e,t){let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r}var QR={loading:"Loading repositories\u2026",not_configured:"GitHub is not configured on this dashboard.",not_connected:"Connect GitHub to pick a repository.",reconnect_required:"GitHub rejected the stored token. Reconnect GitHub to list repositories again.",pending_approval:"The GitHub installation is waiting for an owner of the account to approve it. Check again once it is approved.",empty:"This GitHub connection reaches no repositories yet."};function _f({repositories:e,selection:t,onToggle:r,filter:n,onFilterChange:o,mode:a="multiple",selected:i=null,onSelect:s,state:l="ready",settingsHref:u,missingRepositoryUrl:c,onRefresh:d,onTypeName:p,typedNameError:f}){let{darkMode:m}=ut(),[y,b]=(0,un.useState)(""),[g,h]=(0,un.useState)(!1),v=m?"text-gray-400":"text-gray-500",x=m?"text-white":"text-gray-900",S={backgroundColor:m?"#252525":"#f9fafb"},k=`w-full px-3 py-2 border rounded-lg text-sm ${m?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`,w=JR(e,n);(0,un.useEffect)(()=>{if(!g||!d)return;let C=()=>{h(!1),d()};return window.addEventListener("focus",C),()=>window.removeEventListener("focus",C)},[g,d]);let _=c?un.default.createElement("a",{href:c,target:"_blank",rel:"noreferrer",onClick:()=>h(!0),className:"text-sm underline","data-testid":"repo-picker-missing"},"Repository not listed?"):null,A=p?un.default.createElement("form",{className:"flex items-center gap-2",onSubmit:C=>{C.preventDefault(),j3(y)&&p(y)}},un.default.createElement("input",{type:"text",value:y,onChange:C=>b(C.target.value.trim()),placeholder:"Type owner/name","aria-label":"Repository owner/name",className:k,"data-testid":"repo-picker-typed-name"}),un.default.createElement("button",{type:"submit",disabled:!j3(y),className:`px-3 py-2 border rounded-lg text-sm ${x}`},"Look up")):null;if(l!=="ready"){let C=["not_connected","reconnect_required"].includes(l)&&u;return un.default.createElement("div",{className:"space-y-2","data-testid":`repo-picker-${l}`},un.default.createElement("p",{className:`text-sm ${v}`},QR[l]||QR.loading),C&&un.default.createElement("a",{href:u,className:"text-sm underline"},l==="reconnect_required"?"Reconnect GitHub":"Connect GitHub"," in Settings \u2192 Integrations"),l==="pending_approval"&&d&&un.default.createElement("button",{type:"button",onClick:d,className:`px-3 py-2 border rounded-lg text-sm ${x}`},"Check again"),l==="empty"&&_,l==="empty"&&A,f&&un.default.createElement("p",{className:"text-sm text-red-500"},f))}return un.default.createElement("div",{className:"space-y-2"},un.default.createElement("input",{type:"text",value:n,onChange:C=>o(C.target.value),placeholder:"Filter repositories",className:k}),un.default.createElement("div",{className:"max-h-80 overflow-y-auto space-y-1"},w.map(C=>un.default.createElement("label",{key:C.id,className:"flex items-center space-x-3 p-2 rounded cursor-pointer",style:S},a==="single"?un.default.createElement("input",{type:"radio",name:"repository",checked:i===C.full_name,onChange:()=>s(C.full_name)}):un.default.createElement("input",{type:"checkbox",checked:t.has(C.full_name),onChange:()=>r(C.full_name)}),un.default.createElement("span",{className:`text-sm font-mono ${x}`},C.full_name),C.private&&un.default.createElement("span",{className:`text-xs ${v}`},"private"))),w.length===0&&un.default.createElement("p",{className:`text-sm ${v}`},"No repositories match.")),(_||A)&&un.default.createElement("div",{className:"space-y-2"},_,A,f&&un.default.createElement("p",{className:"text-sm text-red-500"},f)))}var RR={linked:{tone:"success",text:"GitHub App installation linked. Choose the repositories this workspace may use on it."},pending:{tone:"success",text:"Installation requested. Once an owner of the organization approves it on GitHub, that owner has to link it from this page."},denied:{tone:"error",text:"GitHub authorization was cancelled."},invalid_state:{tone:"error",text:"That GitHub App return expired or was not started here. Try again from this page."},missing_code:{tone:"error",text:"GitHub did not return an authorization code. Try again."},missing_installation:{tone:"error",text:"GitHub did not say which installation to link. Try installing again."},not_found:{tone:"error",text:"Your GitHub account cannot reach that installation, so it was not linked."},not_admin:{tone:"error",text:"Only the account the App is installed on, or an admin of its organization, can link an installation."},taken:{tone:"error",text:"That installation is already linked to another workspace."},not_configured:{tone:"error",text:"No GitHub App is configured on this dashboard."},forbidden:{tone:"error",text:"You do not have permission to change the GitHub App."},manifest_error:{tone:"error",text:"GitHub did not finish creating the App. Try again."},manifest_unavailable:{tone:"error",text:"Creating a GitHub App is not available on this dashboard."},error:{tone:"error",text:"Could not finish linking the GitHub App. Try again."}};function eee(e){let t=e.account_type==="Organization"?"organization":"user";return`@${e.account_login} \xB7 ${t}`}function hA(e){return e.status==="removed"?{label:"Removed from GitHub: reinstall or unlink",tone:"error"}:e.status==="suspended"?{label:"Suspended on GitHub",tone:"warning"}:null}function tee(e){let t=e||[];if(t.length===0)return{text:null,active:0};let r=t.filter(a=>hA(a)).length,n=t.length===1?"GitHub App installation":"GitHub App installations",o=r>0?` (${r} ${r===1?"needs":"need"} attention)`:"";return{text:`${t.length} ${n}${o}`,active:t.length-r}}function ree(e,t){let r=new Map;return(t||[]).forEach(n=>{hA(n)||(n.repositories||[]).forEach(o=>{let a=o.full_name.toLowerCase();r.has(a)||r.set(a,{...o,source:"app",installation:n})})}),(e?.repositories||[]).forEach(n=>{let o=n.full_name.toLowerCase();r.has(o)||r.set(o,{...n,source:"oauth",installation:null})}),[...r.values()]}function nee(e){return e.source==="app"?`GitHub App (@${e.installation.account_login})`:"OAuth"}function oee(e){return/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,38})$/.test(e)}function aee(e,t,r){let n=e.createElement("form");n.method="post",n.action=t,n.style.display="none";let o=e.createElement("input");return o.type="hidden",o.name="manifest",o.value=JSON.stringify(r),n.appendChild(o),e.body.appendChild(n),n.submit(),n}function $3({app:e,onChanged:t,onError:r,onNotice:n}){let{darkMode:o}=ut(),[a,i]=(0,tr.useState)(null),[s,l]=(0,tr.useState)(null),[u,c]=(0,tr.useState)(new Set),[d,p]=(0,tr.useState)(""),[f,m]=(0,tr.useState)(!1),[y,b]=(0,tr.useState)(null),[g,h]=(0,tr.useState)(""),[v,x]=(0,tr.useState)(!1);if(!e||!e.configured&&!e.manifest_available)return null;let S=o?"text-gray-400":"text-gray-500",k=o?"text-white":"text-gray-900",w={backgroundColor:o?"#252525":"#f9fafb"},_=`px-3 py-1 text-sm rounded ${o?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,A=`px-3 py-1 text-sm rounded ${o?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`,C={error:o?"text-red-400":"text-red-600",warning:o?"text-amber-300":"text-amber-700"},N=async I=>{r(null);try{let M=await fetch(`/api/github_installations/${I.id}/repositories`),j=await M.json().catch(()=>({}));if(!M.ok)throw j.reinstall_required&&t(),new Error(j.error||"Could not list the installation's repositories.");l(j.repositories||[]),c(new Set((I.repositories||[]).map(O=>O.full_name))),p(""),i(I.id)}catch(M){r(M.message)}},L=async I=>{b(I.id),r(null);try{let M=await fetch(`/api/github_installations/${I.id}/repositories`),j=await M.json().catch(()=>({}));if(!M.ok)throw new Error(j.error||"Could not check the installation on GitHub.");n({tone:"success",text:`The installation on @${I.account_login} is active again.`})}catch(M){r(M.message)}finally{b(null),t()}},J=()=>{i(null),l(null)},B=async()=>{m(!0),r(null);try{let I=await fetch(`/api/github_installations/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({repositories:[...u]})}),M=await I.json().catch(()=>({}));if(!I.ok)throw new Error(M.error||"Could not save the selection.");J(),n({tone:"success",text:"Repository selection saved."}),t()}catch(I){r(I.message)}finally{m(!1)}},K=async I=>{if(await Wr({title:`Unlink @${I.account_login}?`,message:"New sandboxes can no longer check out its repositories. The App stays installed on GitHub; uninstall it there to remove its access.",confirmLabel:"Unlink",danger:!0})){r(null);try{let M=await fetch(`/api/github_installations/${I.id}`,{method:"DELETE"});if(!M.ok&&M.status!==404)throw new Error("Could not unlink the installation.");a===I.id&&J(),t()}catch(M){r(M.message)}}},T=async()=>{let I=g.trim();if(I&&!oee(I)){r("Enter the organization's GitHub login, or leave it empty to create the App under your account.");return}x(!0),r(null);try{let M=await fetch("/api/github_app_manifest",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(I?{organization:I}:{})}),j=await M.json().catch(()=>({}));if(!M.ok)throw new Error(j.error||"Could not start creating the GitHub App.");aee(document,j.url,j.manifest)}catch(M){r(M.message),x(!1)}};if(!e.configured)return tr.default.createElement("div",{className:"p-3 rounded-lg space-y-2",style:w},tr.default.createElement("p",{className:`text-sm font-medium ${k}`},"Use a GitHub App"),tr.default.createElement("p",{className:`text-xs ${S}`},"A GitHub App gives each checkout a one-hour token limited to its one repository. Create one for this dashboard: GitHub registers it, and this page shows its settings once to add to your configuration."),tr.default.createElement("div",{className:"flex items-center gap-2"},tr.default.createElement("input",{type:"text",value:g,onChange:I=>h(I.target.value),placeholder:"Organization (optional)",className:`flex-1 px-3 py-1 border rounded text-sm ${o?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),tr.default.createElement("button",{type:"button",onClick:T,disabled:v,className:`${_} disabled:opacity-50`},v?"Opening GitHub\u2026":"Create GitHub App")));let P=e.installations||[];return tr.default.createElement("div",{className:"space-y-3"},tr.default.createElement("div",{className:"flex items-center justify-between"},tr.default.createElement("div",null,tr.default.createElement("p",{className:`text-sm font-medium ${k}`},"GitHub App"),tr.default.createElement("p",{className:`text-xs ${S}`},"Each checkout gets a one-hour token limited to its repository. When a repository is reachable both ways, the App is used.")),tr.default.createElement("a",{href:Re("/api/github_installations/install"),className:"shrink-0 px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600"},"Install the GitHub App")),P.length===0&&tr.default.createElement("p",{className:`text-sm ${S}`},"No installation is linked yet. Install the App on the repositories this workspace should use."),P.map(I=>{let M=hA(I),j=I.repositories||[];return tr.default.createElement("div",{key:I.id,className:"p-3 rounded-lg space-y-2",style:w},tr.default.createElement("div",{className:"flex items-center justify-between gap-3"},tr.default.createElement("div",{className:"min-w-0"},tr.default.createElement("p",{className:`text-sm font-mono ${k}`},eee(I)),tr.default.createElement("p",{className:`text-xs ${M?C[M.tone]:S}`},M?M.label:`${j.length} selected for sandboxes`)),tr.default.createElement("div",{className:"flex items-center gap-2 shrink-0"},a===I.id?tr.default.createElement(tr.default.Fragment,null,tr.default.createElement("button",{type:"button",onClick:J,className:_},"Cancel"),tr.default.createElement("button",{type:"button",onClick:B,disabled:f,className:"px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600 disabled:opacity-50"},f?"Saving\u2026":`Save (${u.size})`)):tr.default.createElement(tr.default.Fragment,null,M?tr.default.createElement("button",{type:"button",onClick:()=>L(I),disabled:y===I.id,className:`${_} disabled:opacity-50`},y===I.id?"Checking\u2026":"Check again"):tr.default.createElement("button",{type:"button",onClick:()=>N(I),className:_},"Choose repositories"),I.settings_url&&tr.default.createElement("a",{href:I.settings_url,target:"_blank",rel:"noreferrer",className:_},"Access on GitHub"),tr.default.createElement("button",{type:"button",onClick:()=>K(I),className:A},"Unlink")))),a===I.id&&s&&tr.default.createElement(_f,{repositories:s,selection:u,onToggle:O=>c(F=>gA(F,O)),filter:d,onFilterChange:p}))}))}var $2e={connected:{tone:"success",text:"GitHub connected. Choose the repositories this workspace may use."},denied:{tone:"error",text:"GitHub authorization was cancelled."},invalid_state:{tone:"error",text:"That GitHub sign-in expired or was not started here. Try connecting again."},missing_code:{tone:"error",text:"GitHub did not return an authorization code. Try connecting again."},not_configured:{tone:"error",text:"GitHub OAuth is not configured on this dashboard."},forbidden:{tone:"error",text:"You do not have permission to change the GitHub connection."},error:{tone:"error",text:"Could not finish connecting GitHub. Try again."}};function L3({callbackStatus:e,appCallbackStatus:t,refreshKey:r}){let{darkMode:n}=ut(),[o,a]=(0,Ke.useState)(null),[i,s]=(0,Ke.useState)(null),[l,u]=(0,Ke.useState)(new Set),[c,d]=(0,Ke.useState)(""),[p,f]=(0,Ke.useState)(!1),[m,y]=(0,Ke.useState)(null),[b,g]=(0,Ke.useState)($2e[e]||RR[t]||null),[h,v]=(0,Ke.useState)([]),[x,S]=(0,Ke.useState)(null),[k,w]=(0,Ke.useState)({}),[_,A]=(0,Ke.useState)(null),[C,N]=(0,Ke.useState)(null),[L,J]=(0,Ke.useState)(0),[B,K]=(0,Ke.useState)({}),T=(0,Ke.useRef)({}),P=(0,Ke.useCallback)(async()=>{try{let ge=await fetch("/api/github_connection");if(!ge.ok)throw new Error("status failed");let ue=await ge.json();a(ue),u(new Set((ue.connection?.repositories||[]).map(Fe=>Fe.full_name)))}catch{y("Could not load the GitHub connection. Are you signed in?")}},[]);(0,Ke.useEffect)(()=>{P()},[P]);let I=(0,Ke.useCallback)(async()=>{try{let ge=await fetch("/api/sandboxes?sandbox_type=app_runtime"),ue=await ge.json().catch(()=>({}));if(!ge.ok)throw new Error(at(ue,`Could not list your sandboxes (HTTP ${ge.status}).`));v(ue.sandboxes||[]),S({codeSessions:!!ue.code_sessions_supported,claudeCode:{...s2(ue),sandboxes:ue.claude_code_sandboxes||[]},codex:l2(ue),pullRequests:ue.pull_requests_supported===!0,browserModes:Array.isArray(ue.browser_modes)?ue.browser_modes:[]})}catch(ge){y(ge.message)}},[]),M=o!==null,j=!!o?.connected;(0,Ke.useEffect)(()=>{M&&I()},[M,j,I,r]);let O=h.filter(ge=>o2(ge)&&!B[ge.session_id]?.stopped).map(ge=>ge.session_id).join(" ");(0,Ke.useEffect)(()=>{if(!O)return;let ge=!1,ue=setTimeout(async()=>{let Fe=await Promise.all(O.split(" ").map(async ot=>{try{let Tt=await fetch(`/api/sandboxes/${encodeURIComponent(ot)}`);if(Tt.status===404)return{id:ot,gone:!0};let Lt=await Tt.json().catch(()=>({}));return Tt.ok?{id:ot,sandbox:Lt.sandbox||null}:{id:ot,status:Tt.status,error:at(Lt,`Could not check on this sandbox (HTTP ${Tt.status}).`)}}catch{return{id:ot,status:null,error:"Could not reach the dashboard to check on this sandbox."}}}));if(ge)return;let Je={};Fe.forEach(({id:ot,status:Tt,error:Lt})=>{if(!Lt){delete T.current[ot],Je[ot]=null;return}let Hr=(T.current[ot]||0)+1;T.current[ot]=Hr,Je[ot]={message:Lt,stopped:t2(Tt,Hr)}}),K(ot=>Object.entries(Je).reduce((Tt,[Lt,Hr])=>{if(Hr)return{...Tt,[Lt]:Hr};if(!(Lt in Tt))return Tt;let{[Lt]:Io,...xs}=Tt;return xs},ot)),v(ot=>Fe.reduce((Tt,Lt)=>Lt.gone?Tt.filter(Hr=>Hr.session_id!==Lt.id):Lt.sandbox?JY(Tt,Lt.sandbox,"session_id"):Tt,ot)),J(ot=>ot+1)},2e3);return()=>{ge=!0,clearTimeout(ue)}},[O,L]);let F=ge=>{delete T.current[ge],K(ue=>{let{[ge]:Fe,...Je}=ue;return Je})},V=(ge,ue)=>{w(Fe=>({...Fe,[ge]:ue}))},z=async()=>{y(null);try{let ge=await fetch("/api/github_connection/repositories"),ue=await ge.json().catch(()=>({}));if(!ge.ok)throw new Error(ue.error||"Could not list repositories.");s(ue.repositories||[])}catch(ge){y(ge.message)}},G=ge=>{u(ue=>gA(ue,ge))},q=async()=>{f(!0),y(null);try{let ge=await fetch("/api/github_connection",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({repositories:[...l]})}),ue=await ge.json().catch(()=>({}));if(!ge.ok)throw new Error(ue.error||"Could not save the selection.");a(Fe=>({...Fe,connection:ue.connection})),s(null),g({tone:"success",text:"Repository selection saved."})}catch(ge){y(ge.message)}finally{f(!1)}},oe=async()=>{if(await Wr({title:"Disconnect GitHub?",message:"New checkout sandboxes can no longer clone its repositories. Sandboxes already running keep running until you stop them or they expire.",confirmLabel:"Disconnect",danger:!0}))try{if(!(await fetch("/api/github_connection",{method:"DELETE"})).ok)throw new Error("disconnect failed");s(null),g(null),await P()}catch{y("Could not disconnect GitHub.")}},Me=async ge=>{A(ge),V(ge,null);try{let ue=await fetch("/api/sandboxes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sandbox_type:"app_runtime",repository:ge})}),Fe=await ue.json().catch(()=>({}));if(!ue.ok)throw new Error(at(Fe,`Could not start the sandbox (HTTP ${ue.status}).`));v(Je=>sd(Je,Fe.sandbox,"session_id"))}catch(ue){V(ge,ue.message)}finally{A(null)}},fe=async ge=>{if(!(ge.status!=="failed"&&!await Wr({title:"Stop this sandbox?",message:"Its app stops and its checkout is deleted, including any changes Claude Code made there.",confirmLabel:"Stop sandbox",danger:!0}))){N(ge.session_id),V(ge.repository,null);try{let ue=await fetch(`/api/sandboxes/${encodeURIComponent(ge.session_id)}`,{method:"DELETE"}),Fe=await ue.json().catch(()=>({}));if(!ue.ok&&ue.status!==404)throw new Error(at(Fe,`Could not stop the sandbox (HTTP ${ue.status}).`));v(Je=>Je.filter(ot=>ot.session_id!==ge.session_id)),F(ge.session_id)}catch(ue){V(ge.repository,ue.message)}finally{N(null)}}},le=n?"text-gray-400":"text-gray-500",R=n?"text-white":"text-gray-900",te={backgroundColor:n?"#252525":"#f9fafb"},He=`px-3 py-1 text-sm rounded ${n?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,_e=o?.connection,D=_e?.repositories||[],Y=o?.app?.configured?o.app.installations||[]:[],E=ree(_e,Y),{byRepository:$,others:ee}=RY(h,E.map(ge=>ge.full_name)),U=Y.length>0,me=tee(Y),et=n?"text-red-400":"text-red-600",rt=(ge,{standalone:ue=!1}={})=>{let{label:Fe,tone:Je}=VY(ge.status),ot=o2(ge),Tt=GY(ge),Lt=Tt?KY(ge.expires_at):null,Hr=ot?B[ge.session_id]:null;return Ke.default.createElement("div",{key:ge.session_id,className:ue?"p-3 rounded-lg space-y-2":`mt-3 pt-3 border-t space-y-2 ${n?"border-gray-700":"border-gray-200"}`,style:ue?te:void 0},Ke.default.createElement("div",{className:"flex items-center justify-between gap-3"},Ke.default.createElement("div",{className:"flex items-center gap-2 min-w-0 text-xs"},Ke.default.createElement(Ks,{tone:Je},Fe),Ke.default.createElement("span",{className:`font-mono truncate ${le}`},ue?ge.repository:"","@",ge.repository_ref),Lt&&Ke.default.createElement("span",{className:`shrink-0 ${le}`},"\xB7 ",Lt),mA(ge)&&Ke.default.createElement("a",{href:Re(mA(ge)),onClick:Io=>{Io.preventDefault(),lt(mA(ge))},className:`shrink-0 truncate hover:underline ${n?"text-blue-300":"text-blue-600"}`,"data-testid":"sandbox-project-link",title:ge.browser?.status==="running"?"Open the project's page on its browser":"Open the project's page"},"\xB7 ",ge.project.name," \u2192")),Ke.default.createElement("button",{onClick:()=>fe(ge),disabled:C===ge.session_id,className:`shrink-0 px-3 py-1 text-sm rounded disabled:opacity-50 ${n?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},C===ge.session_id?"Stopping\u2026":ge.status==="failed"?"Dismiss":"Stop")),ot&&!Hr?.stopped&&Ke.default.createElement("p",{className:`text-xs ${le}`},"Checking out the repository and booting its app; this can take a few minutes."),Hr&&Ke.default.createElement("p",{className:`text-xs ${et}`},Hr.message," ",Hr.stopped?Ke.default.createElement(Ke.default.Fragment,null,"Stopped checking; its status above may be out of date."," ",Ke.default.createElement("button",{type:"button",onClick:()=>F(ge.session_id),className:"underline"},"Retry")):"Trying again\u2026"),ge.error_message&&Ke.default.createElement("pre",{className:`p-2 rounded text-xs font-mono whitespace-pre-wrap break-words max-h-48 overflow-y-auto border ${n?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`},ge.error_message),ge.runtime_server_key&&Ke.default.createElement("p",{className:`text-xs ${le}`},"Enable ",Ke.default.createElement("code",{className:"font-mono"},ge.runtime_server_key)," in an agent's Tools tab to run it, or evaluate it, with this checkout's tools."),Tt&&x?.codeSessions&&Ke.default.createElement(b0,{sandbox:ge,claudeCode:x.claudeCode?.mode==="sandbox_login"?{...x.claudeCode,connected:!!x.claudeCode.sandboxes.find(Io=>Io.session_id===ge.session_id)?.credential_mode}:x.claudeCode,codex:x.codex,onRecheckConnection:I}),Tt&&x&&!x.codeSessions&&Ke.default.createElement("p",{className:`text-xs ${le}`},"The configured sandbox backend cannot run Claude Code sessions."),Tt&&x?.pullRequests&&Ke.default.createElement(H0,{sandbox:ge}),Tt&&x?.browserModes.length>0&&Ke.default.createElement(kf,{sandbox:ge,modes:x.browserModes}))};return Ke.default.createElement("div",{className:"space-y-4"},Ke.default.createElement("div",{className:"flex items-center justify-between"},Ke.default.createElement("div",{className:"flex items-center space-x-3"},Ke.default.createElement("span",{className:"text-xl"},"\u{1F419}"),Ke.default.createElement("div",null,Ke.default.createElement("p",{className:`font-medium ${R}`},"GitHub"),Ke.default.createElement("p",{className:`text-sm ${o?.connected||me.active>0?n?"text-green-400":"text-green-600":le}`},o?[o.connected?`Connected as @${_e.login}`:null,me.text].filter(Boolean).join(" \xB7 ")||"Not connected":"Loading\u2026"))),o?.connected?Ke.default.createElement("button",{onClick:oe,className:`px-3 py-1 text-sm rounded ${n?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},o.app?.configured?"Disconnect OAuth":"Disconnect"):o?.configured?Ke.default.createElement("a",{href:Re("/api/github_connection/connect"),className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 text-sm"},o.app?.configured?"Connect with OAuth":"Connect GitHub"):null),o&&!o.configured&&!o.connected&&!o.app?.configured&&Ke.default.createElement("p",{className:`text-sm ${le}`},"The operator has not configured a GitHub OAuth app. Set ",Ke.default.createElement("code",null,"ActionAgent.github_client_id")," and"," ",Ke.default.createElement("code",null,"github_client_secret")," (or ",Ke.default.createElement("code",null,"GITHUB_CLIENT_ID")," / ",Ke.default.createElement("code",null,"GITHUB_CLIENT_SECRET"),") and register"," ",Ke.default.createElement("code",null,Re("/api/github_connection/callback"))," as its callback URL."),b&&Ke.default.createElement("div",{className:`p-3 rounded-lg text-sm border ${b.tone==="success"?n?"bg-green-900/20 border-green-800 text-green-300":"bg-green-50 border-green-200 text-green-800":n?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`},b.text),m&&Ke.default.createElement("div",{className:`p-3 rounded-lg text-sm border ${n?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`},m),Ke.default.createElement($3,{app:o?.app,onChanged:P,onError:y,onNotice:g}),o?.connected&&Ke.default.createElement("div",{className:"space-y-3"},Ke.default.createElement("div",{className:"flex items-center justify-between"},Ke.default.createElement("div",null,Ke.default.createElement("p",{className:`text-sm font-medium ${R}`},"OAuth connection"),Ke.default.createElement("p",{className:`text-xs ${le}`},D.length," selected for sandboxes, cloned with @",_e.login,"'s token.")),i?Ke.default.createElement("div",{className:"flex items-center space-x-2"},Ke.default.createElement("button",{onClick:()=>{s(null),u(new Set(D.map(ge=>ge.full_name)))},className:He},"Cancel"),Ke.default.createElement("button",{onClick:q,disabled:p,className:"px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600 disabled:opacity-50"},p?"Saving\u2026":`Save (${l.size})`)):Ke.default.createElement("button",{onClick:z,className:He},"Choose repositories")),i&&Ke.default.createElement(_f,{repositories:i,selection:l,onToggle:G,filter:c,onFilterChange:d})),(o?.connected||U)&&!i&&Ke.default.createElement("div",{className:"space-y-3"},Ke.default.createElement("p",{className:`text-sm font-medium ${R}`},"Available repositories"),E.length===0?Ke.default.createElement("p",{className:`text-sm ${le}`},"No repositories selected yet. Selected repositories can be checked out into sandboxes."):Ke.default.createElement("div",{className:"space-y-2"},E.map(ge=>{let ue=$[ge.full_name]||[],Fe=ue.some(o2),Je=o.app?.configured?` \xB7 via ${nee(ge)}`:"";return Ke.default.createElement("div",{key:ge.full_name,className:"p-3 rounded-lg",style:te},Ke.default.createElement("div",{className:"flex items-center justify-between"},Ke.default.createElement("div",null,Ke.default.createElement("p",{className:`text-sm font-mono ${R}`},ge.full_name),Ke.default.createElement("p",{className:`text-xs ${le}`},ge.private?"private":"public"," \xB7 ",ge.default_branch,Je)),Ke.default.createElement("button",{onClick:()=>Me(ge.full_name),disabled:_===ge.full_name||Fe,className:`${He} disabled:opacity-50`},_===ge.full_name?"Starting\u2026":Fe?"Booting\u2026":"Start sandbox")),k[ge.full_name]&&Ke.default.createElement("p",{className:`mt-2 text-xs ${et}`},k[ge.full_name]),ue.map(ot=>rt(ot)))}))),!i&&ee.length>0&&Ke.default.createElement("div",{className:"space-y-2"},Ke.default.createElement("p",{className:`text-sm font-medium ${R}`},j||U?"Other sandboxes":"Checkout sandboxes"),Ke.default.createElement("p",{className:`text-xs ${le}`},j||U?"From repositories no longer selected.":"Checked out while GitHub was connected."," ","They keep running until stopped or they expire."),ee.map(ge=>Ke.default.createElement(Ke.default.Fragment,{key:ge.session_id},k[ge.repository]&&Ke.default.createElement("p",{className:`text-xs ${et}`},k[ge.repository]),rt(ge,{standalone:!0})))))}var It=Z(Q());var z3="claude_code";function B3({onChange:e}){let{darkMode:t}=ut(),[r,n]=(0,It.useState)(null),[o,a]=(0,It.useState)(null),[i,s]=(0,It.useState)(!1),[l,u]=(0,It.useState)(""),[c,d]=(0,It.useState)(!1),[p,f]=(0,It.useState)(null),[m,y]=(0,It.useState)([]),[b,g]=(0,It.useState)(""),h=(0,It.useCallback)(async()=>{try{let[C,N]=await Promise.all([fetch("/api/provider_keys"),fetch("/api/sandboxes?sandbox_type=app_runtime")]);if(!C.ok||!N.ok)throw new Error("load failed");let[L,J]=await Promise.all([C.json(),N.json()]);n((L.provider_keys||[]).find(K=>K.provider===z3)||{configured:!1}),a(s2(J));let B=(J.sandboxes||[]).filter(K=>K.status==="ready");y(B),g(K=>B.some(T=>T.session_id===K)?K:B[0]?.session_id||"")}catch{f("Could not load the Claude Code connection. Are you signed in?")}},[]);(0,It.useEffect)(()=>{h()},[h]);let v=async()=>{if(!(!l.trim()||c)){d(!0),f(null);try{let C=await fetch("/api/provider_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:z3,credential:l.trim()})});if(!C.ok){let N=await C.json().catch(()=>({}));throw new Error(Array.isArray(N.error)?N.error.join(", "):"Could not save the API key.")}s(!1),u(""),await h(),e?.()}catch(C){f(C.message)}finally{d(!1)}}},x=async()=>{if(await Wr({title:"Remove the Claude Code API key?",message:"Sessions using a sandbox subscription keep their login.",confirmLabel:"Remove key",danger:!0}))try{if(!(await fetch(`/api/provider_keys/${z3}`,{method:"DELETE"})).ok)throw new Error("delete failed");await h(),e?.()}catch{f("Could not disconnect Claude Code.")}},S=t?"text-gray-400":"text-gray-500",k=pX(o,r),w=k.keyForm&&r?.configured,_={success:t?"text-green-400":"text-green-600",error:t?"text-amber-300":"text-amber-700",neutral:S}[k.tone],A=`underline ${t?"text-gray-300":"text-gray-700"}`;return It.default.createElement("div",{className:"space-y-3"},It.default.createElement("div",{className:"flex items-center justify-between"},It.default.createElement("div",{className:"flex items-center space-x-3"},It.default.createElement("span",{className:"font-mono text-sm","aria-hidden":"true"},">_"),It.default.createElement("div",null,It.default.createElement("p",{className:`font-medium ${t?"text-white":"text-gray-900"}`},"Claude Code"),It.default.createElement("p",{className:`text-sm ${_}`},k.status))),k.keyForm&&It.default.createElement("div",{className:"flex items-center space-x-2"},w&&!i&&It.default.createElement("button",{onClick:x,className:`px-3 py-1 text-sm rounded ${t?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},k.view==="sandbox_login"?"Remove API key":"Disconnect"),It.default.createElement("button",{onClick:()=>{s(!i),u(""),f(null)},className:`px-3 py-1 text-sm rounded ${t?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},i?"Cancel":k.view==="sandbox_login"?w?"Update API key":"Add API key":k.needsReplacing?"Replace":w?"Update":"Connect")),k.view==="local_login"&&It.default.createElement("button",{onClick:()=>{f(null),h(),e?.()},className:`px-3 py-1 text-sm rounded ${t?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},"Check again")),k.view==="local_login"&&It.default.createElement("p",{className:`text-xs ${S}`},"Sessions run ",It.default.createElement("code",{className:"font-mono"},"claude")," on this machine with its own login, which the dashboard never reads or stores."," ",k.loginHint&&It.default.createElement(It.default.Fragment,null,"Run ",It.default.createElement("code",{className:"font-mono"},k.loginHint)," on this machine, as the user the dashboard runs as, then check again.")),k.needsReplacing&&!i&&It.default.createElement("p",{className:`text-xs ${t?"text-amber-300":"text-amber-700"}`},"The Claude subscription token stored here is no longer used: Anthropic does not allow third-party apps to hold Claude.ai credentials. Replace it with an Anthropic API key to run Claude Code sessions."),k.keyForm&&i&&It.default.createElement(It.default.Fragment,null,It.default.createElement("div",{className:"flex items-center space-x-2"},It.default.createElement("input",{type:"password","data-aa-secret":"",value:l,onChange:C=>u(C.target.value),onKeyDown:C=>C.key==="Enter"&&v(),placeholder:uX,"aria-label":"Anthropic API key",autoFocus:!0,className:`flex-1 px-3 py-2 border rounded-lg text-sm font-mono ${t?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),It.default.createElement("button",{onClick:v,disabled:!l.trim()||c,className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 disabled:opacity-50 text-sm"},c?"Saving\u2026":"Save")),It.default.createElement("p",{className:`text-xs ${S}`},"Paste an Anthropic API key from the"," ",It.default.createElement("a",{href:cX,target:"_blank",rel:"noreferrer",className:A},"Claude Console"),". It is encrypted at rest and passed to checkout sandboxes so they can run Claude Code sessions against the repository. Claude subscription logins cannot be stored here (",It.default.createElement("a",{href:dX,target:"_blank",rel:"noreferrer",className:A},"why"),"); to use your own subscription, use the sandbox sign-in below when enabled by this installation.")),k.view==="sandbox_login"&&It.default.createElement("div",{className:"space-y-3"},m.length>0?It.default.createElement(It.default.Fragment,null,It.default.createElement("label",{className:`block text-xs ${S}`},"Sandbox",It.default.createElement("select",{"aria-label":"Claude subscription sandbox",value:b,onChange:C=>g(C.target.value),className:"w-full mt-2 p-2 border rounded",style:{background:"var(--color-background)",color:"var(--color-text-primary)",borderColor:"var(--color-border)"}},m.map(C=>It.default.createElement("option",{key:C.session_id,value:C.session_id},C.repository," \xB7 ",C.session_id.slice(0,8))))),m.find(C=>C.session_id===b)&&It.default.createElement(rf,{key:b,sandbox:m.find(C=>C.session_id===b),onChange:()=>{h(),e?.()}})):It.default.createElement("p",{className:`text-sm ${S}`},"Start a checkout sandbox in ",It.default.createElement("a",{className:"underline",href:Re("/projects")},"Projects")," to connect your Claude subscription."),It.default.createElement("p",{className:`text-xs ${S}`},"Each member uses their own sandbox login. Sessions without a personal login use the account\u2019s Anthropic API key when one is connected.")),p&&It.default.createElement("div",{className:`p-3 rounded-lg text-sm border ${t?"bg-red-900/20 border-red-800 text-red-300":"bg-red-50 border-red-200 text-red-700"}`},p))}var Nr=Z(Q());function F3({onChange:e}){let{darkMode:t}=ut(),[r,n]=(0,Nr.useState)(null),[o,a]=(0,Nr.useState)(null),[i,s]=(0,Nr.useState)(!1),[l,u]=(0,Nr.useState)(""),[c,d]=(0,Nr.useState)(!1),[p,f]=(0,Nr.useState)(null),m=(0,Nr.useCallback)(async()=>{let[k,w]=await Promise.all([fetch("/api/provider_keys"),fetch("/api/sandboxes?sandbox_type=app_runtime")]);if(!k.ok||!w.ok)throw new Error("Could not load the Codex connection.");let[_,A]=await Promise.all([k.json(),w.json()]);n((_.provider_keys||[]).find(C=>C.provider==="codex")||{configured:!1}),a(l2(A))},[]);(0,Nr.useEffect)(()=>{m().catch(k=>f(k.message))},[m]);let y=async k=>{if(k.preventDefault(),!(c||!l.trim())){d(!0),f(null);try{let w=await fetch("/api/provider_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:"codex",credential:l.trim()})}),_=await w.json().catch(()=>({}));if(!w.ok)throw new Error(Array.isArray(_.error)?_.error.join(", "):_.error||"Could not save the API key.");u(""),s(!1),await m(),e?.()}catch(w){f(w.message)}finally{d(!1)}}},b=async()=>{if(await Wr({title:"Disconnect Codex?",message:"New Codex sessions will need an API key connected again.",confirmLabel:"Disconnect",danger:!0})){d(!0),f(null);try{if(!(await fetch("/api/provider_keys/codex",{method:"DELETE"})).ok)throw new Error("Could not disconnect Codex.");await m(),e?.()}catch(k){f(k.message)}finally{d(!1)}}},g=async()=>{f(null);try{await m(),e?.()}catch(k){f(k.message)}},h=t?"text-gray-400":"text-gray-500",v=`px-3 py-1 text-sm rounded ${t?"bg-gray-700 text-gray-200":"bg-gray-200 text-gray-800"}`,x=gX(o,r),S={success:t?"text-green-400":"text-green-600",error:t?"text-amber-300":"text-amber-700",neutral:h}[x.tone];return Nr.default.createElement("div",{className:"space-y-3"},Nr.default.createElement("div",{className:"flex items-center justify-between gap-3"},Nr.default.createElement("div",null,Nr.default.createElement("p",{className:`font-medium ${t?"text-white":"text-gray-900"}`},"Codex"),Nr.default.createElement("p",{className:`text-sm ${S}`},x.status)),Nr.default.createElement("div",{className:"flex gap-2"},x.keyForm&&r?.configured&&!i&&Nr.default.createElement("button",{className:v,disabled:c,onClick:b},"Disconnect"),x.keyForm&&Nr.default.createElement("button",{className:v,disabled:c,onClick:()=>{s(!i),u(""),f(null)}},i?"Cancel":r?.configured?"Update":"Connect"),x.view==="local_login"&&Nr.default.createElement("button",{className:v,disabled:c,onClick:g},"Check again"))),x.view==="local_login"?Nr.default.createElement("p",{className:`text-xs ${h}`},"Sessions run ",Nr.default.createElement("code",{className:"font-mono"},"codex")," on this machine with its own login (a ChatGPT plan, or a key the CLI holds), which the dashboard never reads or stores."," ",x.loginHint&&Nr.default.createElement(Nr.default.Fragment,null,"Run ",Nr.default.createElement("code",{className:"font-mono"},x.loginHint)," on this machine, as the user the dashboard runs as, then check again.")):Nr.default.createElement("p",{className:`text-sm ${h}`},"Run Codex in a repository checkout using an OpenAI API key. API usage is billed to that key's project."),x.keyForm&&i&&Nr.default.createElement("form",{onSubmit:y,className:"flex flex-wrap gap-2"},Nr.default.createElement("label",{className:`flex-1 text-sm ${h}`},"OpenAI API key for Codex",Nr.default.createElement("input",{type:"password","data-aa-secret":"",autoComplete:"off",spellCheck:!1,value:l,onChange:k=>u(k.target.value),placeholder:"sk-\u2026",disabled:c,className:`block w-full mt-1 px-3 py-2 border rounded ${t?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`})),Nr.default.createElement("button",{type:"submit",className:`${v} self-end`,disabled:c||!l.trim()},c?"Saving\u2026":"Save API key")),p&&Nr.default.createElement("p",{role:"alert",className:"text-sm text-red-500"},p))}var iee=Z(Q());var wn=Z(Q());function U3({provider:e,title:t,description:r,credentialLabel:n,placeholder:o,onChange:a}){let{darkMode:i}=ut(),[s,l]=(0,wn.useState)(null),[u,c]=(0,wn.useState)(!1),[d,p]=(0,wn.useState)(""),[f,m]=(0,wn.useState)(!1),[y,b]=(0,wn.useState)(null),g=(0,wn.useCallback)(async()=>{let k=await fetch("/api/provider_keys");if(!k.ok)throw new Error(`Could not load the ${t} connection.`);let w=await k.json();l((w.provider_keys||[]).find(_=>_.provider===e)||{configured:!1})},[e,t]);(0,wn.useEffect)(()=>{g().catch(k=>b(k.message))},[g]);let h=async k=>{if(k.preventDefault(),!(f||!d.trim())){m(!0),b(null);try{let w=await fetch("/api/provider_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e,credential:d.trim()})}),_=await w.json().catch(()=>({}));if(!w.ok)throw new Error(Array.isArray(_.error)?_.error.join(", "):_.error||`Could not save the ${n}.`);p(""),c(!1),await g(),a?.()}catch(w){b(w.message)}finally{m(!1)}}},v=async()=>{if(await Wr({title:`Disconnect ${t}?`,message:`${t} will need its ${n} connected again.`,confirmLabel:"Disconnect",danger:!0})){m(!0),b(null);try{if(!(await fetch(`/api/provider_keys/${e}`,{method:"DELETE"})).ok)throw new Error(`Could not disconnect ${t}.`);await g(),a?.()}catch(k){b(k.message)}finally{m(!1)}}},x=i?"text-gray-400":"text-gray-500",S=`px-3 py-1 text-sm rounded ${i?"bg-gray-700 text-gray-200":"bg-gray-200 text-gray-800"}`;return wn.default.createElement("div",{className:"space-y-3"},wn.default.createElement("div",{className:"flex items-center justify-between gap-3"},wn.default.createElement("div",null,wn.default.createElement("p",{className:`font-medium ${i?"text-white":"text-gray-900"}`},t),wn.default.createElement("p",{className:`text-sm ${x}`},s==null?"Loading\u2026":s.configured?`Connected \xB7 ${s.hint}`:"Not connected")),wn.default.createElement("div",{className:"flex gap-2"},s?.configured&&!u&&wn.default.createElement("button",{className:S,disabled:f,onClick:v},"Disconnect"),wn.default.createElement("button",{className:S,disabled:f||s==null,onClick:()=>{c(!u),p(""),b(null)}},u?"Cancel":s?.configured?"Update":"Connect"))),wn.default.createElement("p",{className:`text-sm ${x}`},r),u&&wn.default.createElement("form",{onSubmit:h,className:"flex flex-wrap gap-2"},wn.default.createElement("label",{className:`flex-1 text-sm ${x}`},n,wn.default.createElement("input",{type:"password","data-aa-secret":"",autoComplete:"off",spellCheck:!1,value:d,onChange:k=>p(k.target.value),placeholder:o,disabled:f,className:`block w-full mt-1 px-3 py-2 border rounded ${i?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`})),wn.default.createElement("button",{type:"submit",className:`${S} self-end`,disabled:f||!d.trim()},f?"Saving\u2026":"Save")),y&&wn.default.createElement("p",{role:"alert",className:"text-sm text-red-500"},y))}function W3({onChange:e}){return iee.default.createElement(U3,{provider:"slack",title:"Slack",description:"Agents with the Slack tool list channels, read them and post as this bot. Create a Slack app with the channels:read, channels:history and chat:write scopes, install it, and invite the bot to the channels it should see.",credentialLabel:"Bot User OAuth Token",placeholder:"xoxb-\u2026",onChange:e})}var L2e=["profile","api-keys","integrations","notifications","billing"];function z2e(){let e=new URLSearchParams(window.location.search),t=e.get("tab");return{tab:L2e.includes(t)?t:"profile",github:e.get("github"),githubApp:e.get("github_app")}}function H3({user:e,account:t}){let{darkMode:r,theme:n,systemDark:o,setTheme:a}=ut(),[i]=(0,Oe.useState)(()=>window.ACTIVE_AGENT_DASHBOARD?.meta?.personalProviderKeys?"personal":void 0),[{tab:s,github:l,githubApp:u}]=(0,Oe.useState)(z2e),[c,d]=(0,Oe.useState)(s),[p,f]=(0,Oe.useState)(0),[m,y]=(0,Oe.useState)([]),[b,g]=(0,Oe.useState)([]),[h,v]=(0,Oe.useState)(!1),[x,S]=(0,Oe.useState)(""),[k,w]=(0,Oe.useState)(!1),[_,A]=(0,Oe.useState)(null),[C,N]=(0,Oe.useState)(!1),[L,J]=(0,Oe.useState)(null),B=(0,Oe.useCallback)(async()=>{try{let[O,F]=await Promise.all([fetch("/api/api_keys"),fetch(lA("/api/provider_keys",i))]);if(!O.ok||!F.ok)throw new Error("Failed to load keys");let V=await O.json(),z=await F.json();y(V.api_keys||[]),g(z.provider_keys||[]),J(null)}catch{J("Could not load API keys. Are you signed in?")}finally{v(!0)}},[i]);(0,Oe.useEffect)(()=>{c==="api-keys"&&!h&&B()},[c,h,B]);let K=uA({onKeysChanged:B,onError:J,scope:i}),T=async()=>{if(!(!x.trim()||k)){w(!0),J(null);try{let O=await fetch("/api/api_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:x.trim()})});if(!O.ok)throw new Error("create failed");let F=await O.json();A(F.api_key),N(!1),S(""),await B()}catch{J("Could not create the API key.")}finally{w(!1)}}},P=async O=>{if(await Wr({title:"Revoke this API key?",message:"Requests using it stop working immediately. This cannot be undone.",confirmLabel:"Revoke key",danger:!0}))try{if(!(await fetch(`/api/api_keys/${O}`,{method:"DELETE"})).ok)throw new Error("delete failed");_&&_.id===O&&A(null),await B()}catch{J("Could not revoke the API key.")}},I=async O=>{try{await navigator.clipboard.writeText(O),N(!0),setTimeout(()=>N(!1),2e3)}catch{}},M={backgroundColor:r?"#1f1f1f":"#ffffff",borderColor:r?"#2a2a2a":"#e5e7eb"};return Oe.default.createElement("div",{className:"p-6 space-y-6"},Oe.default.createElement("div",null,Oe.default.createElement("h2",{className:`text-2xl font-bold ${r?"text-white":"text-gray-900"}`},"Settings"),Oe.default.createElement("p",{className:`mt-1 ${r?"text-gray-400":"text-gray-500"}`},"Manage your account and preferences")),Oe.default.createElement("div",{className:"border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},Oe.default.createElement("nav",{className:"flex space-x-8"},[{id:"profile",label:"Profile"},{id:"api-keys",label:"API Keys"},{id:"integrations",label:"Integrations"},{id:"notifications",label:"Notifications"},{id:"billing",label:"Billing"}].map(O=>Oe.default.createElement("button",{key:O.id,onClick:()=>d(O.id),className:`py-4 px-1 border-b-2 font-medium text-sm transition-colors ${c===O.id?"border-red-500 text-red-500":`border-transparent ${r?"text-gray-400 hover:text-gray-300":"text-gray-500 hover:text-gray-700"}`}`},O.label)))),c==="profile"&&Oe.default.createElement("div",{className:"space-y-6"},Oe.default.createElement("div",{className:"border rounded-lg p-6",style:M},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Profile Information"),Oe.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4"},Oe.default.createElement("div",null,Oe.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"First Name"),Oe.default.createElement("input",{type:"text",defaultValue:e?.name?.split(" ")[0]||"",className:`w-full px-3 py-2 border rounded-lg ${r?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`})),Oe.default.createElement("div",null,Oe.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"Last Name"),Oe.default.createElement("input",{type:"text",defaultValue:e?.name?.split(" ")[1]||"",className:`w-full px-3 py-2 border rounded-lg ${r?"bg-gray-800 border-gray-700 text-white":"bg-white border-gray-300 text-gray-900"}`})),Oe.default.createElement("div",{className:"md:col-span-2"},Oe.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"Email"),Oe.default.createElement("input",{type:"email",defaultValue:e?.email||"",disabled:!0,className:`w-full px-3 py-2 border rounded-lg cursor-not-allowed ${r?"bg-gray-900 border-gray-700 text-gray-500":"bg-gray-100 border-gray-300 text-gray-500"}`}))),Oe.default.createElement("button",{className:"mt-4 px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600"},"Save Changes")),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:M},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Appearance"),Oe.default.createElement("div",{className:"flex items-center justify-between gap-4"},Oe.default.createElement("div",null,Oe.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},"Theme"),Oe.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`,"data-testid":"theme-description"},T6(n,o))),Oe.default.createElement(Ka,{options:_6,value:n,onChange:a})))),c==="api-keys"&&Oe.default.createElement("div",{className:"space-y-6"},Oe.default.createElement("div",{className:"border rounded-lg p-6",style:M},Oe.default.createElement("div",{className:"flex items-center justify-between mb-4"},Oe.default.createElement("h3",{className:`text-lg font-semibold ${r?"text-white":"text-gray-900"}`},"API Keys"),Oe.default.createElement("div",{className:"flex items-center space-x-2"},Oe.default.createElement("input",{type:"text",value:x,onChange:O=>S(O.target.value),onKeyDown:O=>O.key==="Enter"&&T(),placeholder:"Key name (e.g. production)",className:`px-3 py-2 border rounded-lg text-sm ${r?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),Oe.default.createElement("button",{onClick:T,disabled:!x.trim()||k,className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 disabled:opacity-50 whitespace-nowrap"},k?"Creating\u2026":"+ Create New Key"))),Oe.default.createElement("div",{className:`p-4 rounded-lg mb-4 ${r?"bg-yellow-900/20 border border-yellow-800":"bg-yellow-50 border border-yellow-200"}`},Oe.default.createElement("p",{className:`text-sm ${r?"text-yellow-300":"text-yellow-800"}`},"\u26A0\uFE0F API keys are secrets. Never share them or commit them to version control.")),L&&Oe.default.createElement("div",{className:`p-4 rounded-lg mb-4 text-sm ${r?"bg-red-900/20 border border-red-800 text-red-300":"bg-red-50 border border-red-200 text-red-700"}`},L),_&&Oe.default.createElement("div",{className:`p-4 rounded-lg mb-4 border ${r?"bg-green-900/20 border-green-800":"bg-green-50 border-green-200"}`},Oe.default.createElement("p",{className:`text-sm font-medium mb-2 ${r?"text-green-300":"text-green-800"}`},"Key \u201C",_.name,"\u201D created. Copy it now \u2014 it won't be shown again."),Oe.default.createElement("div",{className:"flex items-center space-x-2"},Oe.default.createElement("code",{"data-aa-secret":"",className:`flex-1 px-3 py-2 rounded text-sm font-mono break-all ${r?"bg-gray-900 text-green-300":"bg-white text-green-800 border border-green-200"}`},_.token),Oe.default.createElement("button",{onClick:()=>I(_.token),className:`px-3 py-2 text-sm rounded ${r?"bg-gray-700 text-gray-200 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},C?"Copied!":"Copy"),Oe.default.createElement("button",{onClick:()=>A(null),className:`px-3 py-2 text-sm rounded ${r?"text-gray-400 hover:text-gray-200":"text-gray-500 hover:text-gray-700"}`},"Dismiss"))),m.length===0?Oe.default.createElement("div",{className:`text-center py-8 ${r?"text-gray-400":"text-gray-500"}`},Oe.default.createElement("p",null,h?"No API keys yet":"Loading\u2026"),h&&Oe.default.createElement("p",{className:"text-sm"},"Create your first API key to authenticate requests")):Oe.default.createElement("div",{className:"space-y-2"},m.map(O=>Oe.default.createElement("div",{key:O.id,className:"flex items-center justify-between p-4 rounded-lg",style:{backgroundColor:r?"#252525":"#f9fafb"}},Oe.default.createElement("div",null,Oe.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},O.name),Oe.default.createElement("p",{className:`text-sm font-mono ${r?"text-gray-400":"text-gray-500"}`},O.masked_token,Oe.default.createElement("span",{className:"font-sans"}," \xB7 created ",new Date(O.created_at).toLocaleDateString(),O.last_used_at?` \xB7 last used ${new Date(O.last_used_at).toLocaleDateString()}`:" \xB7 never used"))),Oe.default.createElement("button",{onClick:()=>P(O.id),className:`px-3 py-1 text-sm rounded ${r?"bg-red-900/40 text-red-300 hover:bg-red-900/60":"bg-red-50 text-red-600 hover:bg-red-100"}`},"Revoke"))))),Oe.default.createElement(ib,{providerKeys:b,editor:K,scope:i})),c==="integrations"&&Oe.default.createElement("div",{className:"space-y-6"},Oe.default.createElement("div",{className:"border rounded-lg p-6",style:M},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-1 ${r?"text-white":"text-gray-900"}`},"Integrations"),Oe.default.createElement("p",{className:`text-sm mb-4 ${r?"text-gray-400":"text-gray-500"}`},"Connect GitHub to choose which repositories this workspace may use. A sandbox started from one boots that app's own runtime, so agents and evaluations can run with its tools, and Claude Code or Codex can work on the checkout."),Oe.default.createElement(L3,{callbackStatus:l,appCallbackStatus:u,refreshKey:p})),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:M},Oe.default.createElement(B3,{onChange:()=>f(O=>O+1)})),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:M},Oe.default.createElement(F3,{onChange:()=>f(O=>O+1)})),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:M},Oe.default.createElement(W3,{onChange:()=>f(O=>O+1)}))),c==="notifications"&&Oe.default.createElement("div",{className:"border rounded-lg p-6",style:M},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Email Notifications"),Oe.default.createElement("div",{className:"space-y-4"},[{label:"Agent execution alerts",desc:"Get notified when agents fail or complete",enabled:!0},{label:"Weekly usage reports",desc:"Summary of traces, costs, and performance",enabled:!0},{label:"Security alerts",desc:"Important security notifications",enabled:!0},{label:"Product updates",desc:"New features and improvements",enabled:!1}].map((O,F)=>Oe.default.createElement("div",{key:F,className:"flex items-center justify-between py-3 border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},Oe.default.createElement("div",null,Oe.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},O.label),Oe.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},O.desc)),Oe.default.createElement("button",{className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${O.enabled?"bg-red-500":r?"bg-gray-700":"bg-gray-300"}`},Oe.default.createElement("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${O.enabled?"translate-x-6":"translate-x-1"}`})))))),c==="billing"&&Oe.default.createElement("div",{className:"space-y-6"},Oe.default.createElement("div",{className:"border rounded-lg p-6",style:M},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Subscription"),Oe.default.createElement("div",{className:"flex items-center justify-between p-4 rounded-lg",style:{backgroundColor:r?"#252525":"#f9fafb"}},Oe.default.createElement("div",null,Oe.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},"Free Plan"),Oe.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},"Current plan")),Oe.default.createElement("button",{className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600"},"Upgrade to Pro"))),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:M},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Payment Method"),Oe.default.createElement("p",{className:`${r?"text-gray-400":"text-gray-500"}`},"No payment method on file"),Oe.default.createElement("button",{className:`mt-4 px-4 py-2 rounded-lg ${r?"bg-gray-700 text-gray-300":"bg-gray-200 text-gray-700"}`},"Add Payment Method")),Oe.default.createElement("div",{className:"border rounded-lg p-6",style:M},Oe.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Invoices"),Oe.default.createElement("p",{className:`${r?"text-gray-400":"text-gray-500"}`},"No invoices yet"))))}var Xe=Z(Q());var B2e=[{label:"Find demo questions",message:"What demo questions worked in our latest evaluations? Show the evidence and tell me whether they are verified on current main."},{label:"Explain a failed eval",message:"Show my latest evaluation reports and explain which failures need attention."},{label:"Draft an agent",message:"Prepare a read-only support agent that cites available evidence and explains missing information instead of inventing answers."}],q3={width:"100%",background:"var(--color-card)",color:"var(--color-text-primary)",border:"1px solid var(--color-border-strong)",borderRadius:8,padding:"9px 12px",font:"inherit"},Xs={color:"var(--color-text-muted)",fontSize:12};function see(e){let t=e.latest_run?.path||e.path||"";return/^\/evaluations(?:\/\d+\/runs\/\d+\/report)?$/.test(t)?Re(t):null}function F2e({card:e,onAsk:t,busy:r}){let n=see(e),o=e.type==="demo_candidate",a=e.run_id||e.latest_run?.run_id,i=e.status||e.latest_run?.status;return Xe.default.createElement(je,{padding:16,testId:"assistant-evidence-card",style:{display:"grid",gap:10}},Xe.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Xe.default.createElement(ke,{tone:o?"warning":"info"},o?"Historical pass":"Recorded evaluation"),i&&Xe.default.createElement(ke,{tone:i==="errored"||i==="failed"?"error":"muted"},i),e.check_strength&&Xe.default.createElement("span",{style:Xs},String(e.check_strength).replaceAll("_"," "))),Xe.default.createElement("div",{style:{fontWeight:600,overflowWrap:"anywhere"}},e.recorded_prompt||e.title),Xe.default.createElement("div",{style:{...Xs,fontFamily:W}},[e.provider,e.model,a&&`run ${a}`].filter(Boolean).join(" \xB7 "),e.completed_at&&` \xB7 ${new Date(e.completed_at).toLocaleString()}`),e.output_excerpt&&Xe.default.createElement("div",{style:{fontSize:13,whiteSpace:"pre-wrap",color:"var(--color-text-secondary)"}},e.output_excerpt),(e.error||e.latest_run?.error)&&Xe.default.createElement("div",{style:{fontSize:13,whiteSpace:"pre-wrap",color:"var(--color-error)"}},e.error||e.latest_run.error),e.fault&&Xe.default.createElement("div",{style:Xs},"Fault: ",e.fault.replaceAll("_"," ")),e.samples_evaluated!=null&&Xe.default.createElement("div",{style:Xs},e.samples_passed||0," / ",e.samples_evaluated," scenarios passed"),e.tool_names?.length>0&&Xe.default.createElement("div",{style:Xs},"Tools recorded: ",e.tool_names.join(", ")),Array.isArray(e.caveats)&&e.caveats.length>0&&Xe.default.createElement("details",{style:Xs},Xe.default.createElement("summary",{style:{cursor:"pointer"}},"Evidence limits"),Xe.default.createElement("ul",{style:{paddingLeft:18,marginTop:8}},e.caveats.map((l,u)=>Xe.default.createElement("li",{key:u},l)))),Xe.default.createElement("div",{style:{display:"flex",gap:12,alignItems:"center",flexWrap:"wrap"}},n&&Xe.default.createElement("a",{href:n,target:"_blank",rel:"noopener noreferrer",style:{fontSize:13,color:"var(--color-accent-ui)"}},n===Re("/evaluations")?"Open evaluations \u2192":"Open report \u2192"),e.evaluation_id&&a&&Xe.default.createElement(ce,{size:"sm",disabled:r,onClick:()=>t(`Read evaluation ${e.evaluation_id}, run ${a}. Explain its results, the strength of its checks, and what needs fixing.`)},"Explain this run")))}function U2e({draft:e,onReview:t}){return Xe.default.createElement(je,{padding:18,testId:"assistant-agent-draft",style:{display:"grid",gap:12,borderColor:"var(--color-accent-ui)"}},Xe.default.createElement(Ue,null,"Agent draft \xB7 not saved"),Xe.default.createElement("div",{style:{fontWeight:600,fontSize:18}},e.name),Xe.default.createElement("p",{style:{margin:0,color:"var(--color-text-secondary)",fontSize:13}},e.description),Xe.default.createElement("div",{style:{...Xs,fontFamily:W}},e.provider," / ",e.model),Xe.default.createElement("details",null,Xe.default.createElement("summary",{style:{cursor:"pointer",fontSize:13}},"Review instructions and tools"),Xe.default.createElement("pre",{style:{whiteSpace:"pre-wrap",fontFamily:"inherit",fontSize:13,maxHeight:280,overflow:"auto"}},e.instructions),Xe.default.createElement("p",{style:Xs},"Tools: ",e.tools?.length?e.tools.join(", "):"None")),Xe.default.createElement(ce,{variant:"primary",onClick:()=>t(e),style:{justifySelf:"start"}},"Review in builder \u2192"))}function K3({session:e,onSessionChange:t,onReviewDraft:r,onOpenSettings:n,executionEnabled:o=!0}){let[a,i]=(0,Xe.useState)(null),[s,l]=(0,Xe.useState)(""),[u,c]=(0,Xe.useState)(!1),[d,p]=(0,Xe.useState)(null),[f,m]=(0,Xe.useState)(!1),y=(0,Xe.useRef)(null),b=(0,Xe.useRef)(null),g=(0,Xe.useRef)(e);g.current=e,(0,Xe.useEffect)(()=>{let _=new AbortController;return fetch("/api/dashboard_assistant",{signal:_.signal}).then(async A=>{let C=await A.json();if(!A.ok)throw new Error(C.error||"Could not load assistant configuration.");i(C),g.current.provider||t({...g.current,...C.defaults})}).catch(A=>{A.name!=="AbortError"&&p({message:A.message})}),()=>{_.abort(),y.current?.abort()}},[]);let h=e.messages||[],v=e.provider||a?.defaults?.provider||"",x=e.model||"",S=a?.limits?.message_characters||8e3,k=a?.providers?.find(_=>_.id===v),w=async _=>{let A=_.trim();if(!A||u||!a||!o||!x.trim()||!f)return;let C=h.map(J=>({role:J.role,content:J.content})).slice(-12);for(;C.reduce((J,B)=>J+B.content.length,0)>24e3;)C.shift();let N=[...h,{role:"user",content:A}];t({...e,messages:N}),l(""),p(null),c(!0);let L=new AbortController;y.current=L;try{let J=await fetch("/api/dashboard_assistant",{method:"POST",signal:L.signal,headers:{"Content-Type":"application/json"},body:JSON.stringify({message:A,history:C,provider:v,model:x.trim(),allow_provider_processing:!0})}),B=await J.json();if(!J.ok){p({message:typeof B.error=="string"?B.error:"The assistant could not complete this request.",setup:B.setup_required,retry:A}),t({...e,messages:h}),l(A);return}t({...e,messages:[...N,{role:"assistant",content:B.answer,cards:B.cards||[],references:B.references||[],drafts:B.drafts||[],limitations:B.limitations||[]}]})}catch(J){J.name!=="AbortError"&&(p({message:"Connection interrupted. No answer was received; the server may still be finishing the request."}),t({...e,messages:h}),l(A))}finally{c(!1)}};return Xe.default.createElement("div",{style:{maxWidth:980,margin:"0 auto",color:"var(--color-text-primary)",display:"grid",gap:22}},Xe.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:16,alignItems:"start"}},Xe.default.createElement("div",null,Xe.default.createElement(Ue,null,"Workspace assistant"),Xe.default.createElement("h1",{style:{margin:"8px 0",fontSize:30,fontWeight:600,letterSpacing:"-0.035em"}},"Ask ActiveAgents"),Xe.default.createElement("p",{style:{margin:0,color:"var(--color-text-secondary)",fontSize:14}},"Find evaluation evidence. Understand failures. Build the next agent.")),h.length>0&&Xe.default.createElement(ce,{disabled:u,onClick:()=>{t({...e,messages:[]}),p(null),l(""),m(!1)}},"New conversation")),!h.length&&Xe.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:12}},B2e.map(_=>Xe.default.createElement("button",{key:_.label,onClick:()=>{l(_.message),b.current?.querySelector("textarea")?.focus()},style:{textAlign:"left",padding:20,background:"var(--color-card)",color:"var(--color-text-primary)",border:"1px solid var(--color-border)",borderRadius:12,cursor:"pointer"}},Xe.default.createElement("div",{style:{fontSize:14,fontWeight:600,marginBottom:8}},_.label," \u2197"),Xe.default.createElement("div",{style:{fontSize:12,lineHeight:1.6,color:"var(--color-text-secondary)"}},_.message)))),Xe.default.createElement("div",{role:"log","aria-label":"Assistant conversation","aria-live":"polite",style:{display:"grid",gap:20}},h.map((_,A)=>Xe.default.createElement("div",{key:A,style:{display:"grid",gap:12}},Xe.default.createElement(Ue,{color:_.role==="user"?"var(--color-text-muted)":"var(--color-accent-ui)"},_.role==="user"?"You":"ActiveAgents"),Xe.default.createElement("div",{style:{whiteSpace:"pre-wrap",overflowWrap:"anywhere",lineHeight:1.7,fontSize:14}},_.content),_.cards?.map(C=>Xe.default.createElement(F2e,{key:C.id,card:C,onAsk:N=>{l(N),b.current?.querySelector("textarea")?.focus()},busy:u})),_.references?.length>0&&Xe.default.createElement("div",{"aria-label":"Evidence references",style:{...Xs,display:"flex",gap:12,flexWrap:"wrap"}},_.references.map(C=>{let N=see(C);return N&&Xe.default.createElement("a",{key:C.id,href:N,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--color-accent-ui)"}},C.id)})),_.drafts?.map(C=>Xe.default.createElement(U2e,{key:C.id,draft:C,onReview:r})),_.limitations?.length>0&&Xe.default.createElement("details",{style:Xs},Xe.default.createElement("summary",{style:{cursor:"pointer"}},"Scope of this answer"),Xe.default.createElement("ul",{style:{paddingLeft:18}},_.limitations.map((C,N)=>Xe.default.createElement("li",{key:N},C)))))),u&&Xe.default.createElement("div",{role:"status",style:{color:"var(--color-text-secondary)",fontSize:13}},"Working with your workspace evidence\u2026")),d&&Xe.default.createElement(je,{padding:16,role:"alert",style:{borderColor:"var(--color-warning)",display:"grid",gap:12}},Xe.default.createElement("div",{style:{fontSize:14}},d.message),d.setup&&Xe.default.createElement(ce,{onClick:n,style:{justifySelf:"start"}},"Configure provider \u2192")),Xe.default.createElement(je,{padding:18},Xe.default.createElement("form",{ref:b,onSubmit:_=>{_.preventDefault(),w(s)},style:{display:"grid",gap:14}},Xe.default.createElement("label",{htmlFor:"assistant-question",style:{fontSize:13,fontWeight:600}},"What would you like to do?"),Xe.default.createElement("textarea",{id:"assistant-question",placeholder:"Ask about your evals, or describe an agent to build\u2026",value:s,onChange:_=>l(_.target.value),maxLength:S,rows:3,disabled:u,style:{...q3,resize:"vertical",boxSizing:"border-box"}}),Xe.default.createElement("div",{style:{display:"flex",gap:12,alignItems:"end",flexWrap:"wrap"}},Xe.default.createElement("label",{style:{display:"grid",gap:5,fontSize:11,flex:"1 1 140px"}},"Provider",Xe.default.createElement("select",{"aria-label":"Assistant provider",value:v,disabled:u||!a,onChange:_=>{let A=a.providers.find(C=>C.id===_.target.value);m(!1),t({...e,provider:A?.id||"",model:A?.default_model||""})},style:q3},Xe.default.createElement("option",{value:""},a?"Choose a provider\u2026":"Loading\u2026"),a?.providers?.map(_=>Xe.default.createElement("option",{key:_.id,value:_.id},_.id,_.configured?"":" \xB7 setup needed")))),Xe.default.createElement("label",{style:{display:"grid",gap:5,fontSize:11,flex:"2 1 200px"}},"Model",Xe.default.createElement("input",{"aria-label":"Assistant model",value:x,disabled:u||!a,maxLength:160,onChange:_=>{m(!1),t({...e,model:_.target.value})},style:q3})),Xe.default.createElement(ce,{variant:"primary",type:"submit",disabled:u||!a||!s.trim()||!x.trim()||!o||!f},u?"Working\u2026":"Ask ActiveAgents \u2192")),Xe.default.createElement("label",{style:{display:"flex",gap:9,alignItems:"start",fontSize:12,lineHeight:1.6,color:"var(--color-text-secondary)"}},Xe.default.createElement("input",{type:"checkbox",checked:f,disabled:u||!a,onChange:_=>m(_.target.checked),style:{marginTop:4}}),Xe.default.createElement("span",null,"Allow ",v||"the selected provider"," / ",x||"model"," to process my messages, recent conversation history, and authorized evaluation report excerpts for this conversation.")),Xe.default.createElement("div",{style:{...Xs,lineHeight:1.5}},o?k&&!k.configured?"This provider needs a credential in Settings before the assistant can respond.":"Uses your configured model provider. Agent drafts are reviewed before saving.":"Agent execution is disabled on this dashboard."," ","Reloading or starting a new conversation clears this conversation view. Your provider's data retention settings still apply."))))}var ha=Z(Q());var vt=Z(Q());var na=Z(Q());function W2e(e){let t=e.filter(o=>!o.ok);if(t.length===0)return"ready";let r=t.filter(o=>o.blocking).length,n=`${t.length} ${t.length===1?"item needs":"items need"} action`;return r?`${n} \xB7 ${r} ${r===1?"blocks":"block"} creating a project`:n}function V3({capabilities:e}){let t=e?.items||[],r=t.some(i=>!i.ok&&i.blocking),[n,o]=(0,na.useState)(r),a=W2e(t);return na.default.createElement(Zr,{title:"Before you start",meta:e?.ready?"ready":"action needed",testId:"project-capabilities"},na.default.createElement("button",{type:"button","data-testid":"capabilities-toggle","aria-expanded":n,onClick:()=>o(!n),style:{display:"flex",width:"100%",alignItems:"center",gap:8,padding:"8px 12px",border:0,background:"transparent",cursor:"pointer",fontSize:13,color:r?"var(--color-error-text)":"var(--color-text-secondary)",textAlign:"left"}},na.default.createElement("span",{"aria-hidden":"true"},n?"\u25BE":"\u25B8"),na.default.createElement("span",{"data-testid":"capabilities-summary"},a),na.default.createElement("span",{style:{marginLeft:"auto",fontSize:12,color:"var(--color-text-muted)"}},n?"Hide":"Show"," checklist")),n&&na.default.createElement("ul",{style:{listStyle:"none",margin:0,padding:0}},t.map(i=>na.default.createElement("li",{key:i.key,"data-testid":`capability-${i.key}`,style:{display:"flex",gap:10,padding:"10px 12px",borderTop:"1px solid var(--color-border-light)"}},na.default.createElement(Sa,{kind:i.ok?"pass":i.blocking?"fault":"info"}),na.default.createElement("div",{style:{minWidth:0,flex:1}},na.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"baseline",flexWrap:"wrap"}},na.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},i.label),!i.ok&&i.blocking&&na.default.createElement(Ue,{color:"var(--color-error-text)"},"blocks creating a project")),i.detail&&na.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)",overflowWrap:"anywhere"}},i.detail),!i.ok&&i.fix&&na.default.createElement("code",{"data-testid":`capability-fix-${i.key}`,style:{display:"block",marginTop:6,padding:"6px 8px",borderRadius:6,fontFamily:W,fontSize:12,background:"var(--color-muted)",color:"var(--color-text-cell)",overflowWrap:"anywhere"}},i.fix))))))}var rn=Z(Q());var lee={width:"100%",padding:"6px 10px",borderRadius:6,fontSize:13,fontFamily:W,border:"1px solid var(--color-border)",background:"var(--color-card)",color:"var(--color-text-primary)"};function cb({rows:e,onChange:t,repository:r}){let[n,o]=(0,rn.useState)(""),a=(s,l)=>t(e.map((u,c)=>c===s?{...u,...l}:u)),i=n?dA(n)||(e.some(s=>s.name===n)?`${n} is already listed.`:null):null;return rn.default.createElement("div",{"data-testid":"project-secrets-form",style:{display:"flex",flexDirection:"column",gap:12}},e.length===0&&rn.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"No environment variables were found in .env.example, .env.sample, .activeagents/sandbox.yml or ENV call sites."),e.map((s,l)=>{let u=dA(s.name),c=s.useOrganizationKey?[]:pA(s.name,s.value);return rn.default.createElement("div",{key:s.name,"data-testid":`secret-row-${s.name}`,style:{borderTop:"1px solid var(--color-border-light)",paddingTop:10}},rn.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},rn.default.createElement("span",{style:{fontFamily:W,fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},s.name),s.required&&rn.default.createElement(ke,{tone:"warning"},"required"),s.set&&rn.default.createElement(ke,{tone:"success"},"set"),s.sources?.length>0&&rn.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},s.sources.join(" \xB7 "))),s.description&&rn.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},s.description),u?rn.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},u):rn.default.createElement(rn.default.Fragment,null,!s.useOrganizationKey&&rn.default.createElement("input",{type:"password",autoComplete:"off",value:s.value,onChange:d=>a(l,{value:d.target.value}),placeholder:s.set?"Leave empty to keep the current value":"Value","aria-label":`${s.name} value`,style:{...lee,marginTop:6}}),s.organizationKey&&rn.default.createElement("label",{style:{display:"flex",gap:6,alignItems:"center",marginTop:6,fontSize:13,color:"var(--color-text-cell)"}},rn.default.createElement("input",{type:"checkbox",checked:s.useOrganizationKey,onChange:d=>a(l,{useOrganizationKey:d.target.checked,consent:!1,value:""})}),"Use the organization's ",s.organizationKey," key"),s.useOrganizationKey&&rn.default.createElement("label",{"data-testid":`secret-consent-${s.name}`,style:{display:"flex",gap:6,alignItems:"flex-start",marginTop:4,fontSize:12,color:"var(--color-warning-text)"}},rn.default.createElement("input",{type:"checkbox",checked:s.consent,onChange:d=>a(l,{consent:d.target.checked})}),"I understand ",r||"the repository","'s code can read the organization's ",s.organizationKey," key. It is read when the sandbox boots and never copied into the project."),c.map(d=>rn.default.createElement("div",{key:d.code,"data-testid":`secret-warning-${d.code}`,style:{marginTop:4,fontSize:12,color:"var(--color-warning-text)"}},d.message))))}),rn.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"flex-start",borderTop:"1px solid var(--color-border-light)",paddingTop:10}},rn.default.createElement("div",{style:{flex:1}},rn.default.createElement(Ue,{as:"label",htmlFor:"project-secret-new-name"},"Another variable"),rn.default.createElement("input",{id:"project-secret-new-name",type:"text",value:n,onChange:s=>o(s.target.value.trim()),placeholder:"NAME",style:{...lee,marginTop:4}}),i&&rn.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},i)),rn.default.createElement(ce,{size:"sm",style:{marginTop:20},disabled:!n||!!i,onClick:()=>{t(BR(e,n)),o("")}},"Add")))}var uee={width:"100%",padding:"6px 10px",borderRadius:6,fontSize:13,border:"1px solid var(--color-border)",background:"var(--color-card)",color:"var(--color-text-primary)"};function H2e({repository:e,preflight:t}){return t?vt.default.createElement("div",{"data-testid":"project-preflight",style:{display:"flex",flexDirection:"column",gap:6}},vt.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},vt.default.createElement("span",{style:{fontFamily:W,fontSize:13,color:"var(--color-text-primary)"}},e),vt.default.createElement(ke,{tone:fA[t.status]||"muted"},t.summary)),vt.default.createElement("div",{style:{fontFamily:W,fontSize:12,color:"var(--color-text-muted)"}},"Ruby ",t.ruby||"unpinned",t.ruby_source?` (${t.ruby_source})`:""," \xB7 railties ",t.railties||"not locked"," ","\xB7 engine ",t.actionagent||"not bundled"," \xB7 ref ",t.ref),t.reasons?.slice(1).map(r=>vt.default.createElement("div",{key:r,style:{fontSize:13,color:"var(--color-error-text)"}},r)),t.warnings?.map(r=>vt.default.createElement("div",{key:r,style:{fontSize:13,color:"var(--color-warning-text)"}},r))):null}function G3({onCreated:e,onCancel:t}){let[r,n]=(0,vt.useState)(null),[o,a]=(0,vt.useState)(null),[i,s]=(0,vt.useState)(!1),[l,u]=(0,vt.useState)(""),[c,d]=(0,vt.useState)(null),[p,f]=(0,vt.useState)(null),[m,y]=(0,vt.useState)(null),[b,g]=(0,vt.useState)(!1),[h,v]=(0,vt.useState)([]),[x,S]=(0,vt.useState)(""),[k,w]=(0,vt.useState)(!1),[_,A]=(0,vt.useState)("/"),[C,N]=(0,vt.useState)(!1),[L,J]=(0,vt.useState)(null),B=(0,vt.useCallback)(async()=>{let O=await fetch("/api/projects/capabilities"),F=await O.json().catch(()=>({}));if(!O.ok)throw new Error(at(F,`Could not check what this dashboard can do (HTTP ${O.status}).`));return n(F),F},[]),K=(0,vt.useCallback)(async()=>{a(null);let O=await fetch("/api/github_connection/repositories"),F=await O.json().catch(()=>({}));if(F.reconnect_required){s(!0);return}if(!O.ok)throw new Error(at(F,`Could not list repositories (HTTP ${O.status}).`));s(!1),a(F.repositories||[])},[]);(0,vt.useEffect)(()=>{B().then(O=>O.github?.connected?K():null).catch(O=>J(O.message))},[B,K]);let T=(0,vt.useCallback)(async(O,{typed:F=!1}={})=>{J(null),f(null),g(!0);try{let V=`repository=${encodeURIComponent(O)}`,z=await fetch(`/api/projects/preflight?${V}`),G=await z.json().catch(()=>({}));if(G.reconnect_required){s(!0);return}if(!z.ok){let Me=at(G,`Could not check ${O} (HTTP ${z.status}).`);F?f(Me):J(Me);return}if(d(G.repository.full_name),y(G.preflight),S(Me=>FR({name:Me,edited:k,fullName:G.repository.full_name})),v([]),G.preflight.status==="unsupported")return;let q=await fetch(`/api/projects/discover_secrets?${V}`),oe=await q.json().catch(()=>({}));if(!q.ok)throw new Error(at(oe,`Could not read ${O}'s environment variables (HTTP ${q.status}).`));v(sb(oe.variables||[]))}catch(V){J(V.message)}finally{g(!1)}},[k]),P=async()=>{N(!0),J(null);try{let O=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repository:c,name:x,start_url:_,secrets:lb(h)})}),F=await O.json().catch(()=>({}));if(!O.ok)throw new Error(at(F,`Could not create the project (HTTP ${O.status}).`));e(F.project)}catch(O){J(O.message)}finally{N(!1)}},I=r?.github,M=UR({github:I,repositories:o,reconnectRequired:i,pendingApproval:I?.pending_approval===!0}),j=b?"Checking the repository\u2026":WR({capabilities:r,preflight:m,secretsProblem:Uh(h)});return vt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"new-project"},vt.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:16}},vt.default.createElement("div",{style:{flex:1}},vt.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"New project"),vt.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)"}},"Boot a repository in a sandbox, installing the engine there when it does not have it, and evaluate an agent against the running app.")),vt.default.createElement(ce,{onClick:t},"Cancel")),L&&vt.default.createElement("div",{style:{padding:"10px 12px",borderRadius:8,fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},L),vt.default.createElement(je,null,vt.default.createElement(Ue,null,"Repository"),vt.default.createElement("div",{style:{marginTop:8}},vt.default.createElement(_f,{mode:"single",state:M,repositories:o||[],filter:l,onFilterChange:u,selected:c,onSelect:O=>T(O),settingsHref:Re("/settings?tab=integrations"),missingRepositoryUrl:I?.access_settings_url,onRefresh:()=>K().catch(O=>J(O.message)),onTypeName:O=>T(O,{typed:!0}),typedNameError:p})),m&&vt.default.createElement("div",{style:{marginTop:12}},vt.default.createElement(H2e,{repository:c,preflight:m}))),r&&vt.default.createElement(V3,{capabilities:r}),m&&m.status!=="unsupported"&&vt.default.createElement(je,null,vt.default.createElement(Ue,null,"Project"),vt.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:12,marginTop:8}},vt.default.createElement("label",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Name",vt.default.createElement("input",{type:"text",value:x,onChange:O=>{S(O.target.value),w(O.target.value!=="")},style:{...uee,marginTop:4}})),vt.default.createElement("label",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Start URL (must not answer 5xx once booted)",vt.default.createElement("input",{type:"text",value:_,onChange:O=>A(O.target.value),style:{...uee,marginTop:4,fontFamily:W}}))),vt.default.createElement("div",{style:{marginTop:16}},vt.default.createElement(Ue,null,"Secrets the boot needs"),vt.default.createElement("div",{style:{marginTop:8}},vt.default.createElement(cb,{rows:h,onChange:v,repository:c})))),vt.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12,justifyContent:"flex-end"}},j&&vt.default.createElement("span",{"data-testid":"create-problem",style:{fontSize:13,color:"var(--color-text-secondary)"}},j),vt.default.createElement(ce,{variant:"primary",onClick:P,disabled:!!j||C,testId:"create-project"},C?"Creating\u2026":"Create project")))}var Ve=Z(Q());var Lr=Z(Q());var q2e={success:"success",error:"error",progress:"info",neutral:"muted"};function Y3({project:e}){let[t,r]=(0,Lr.useState)(null),[n,o]=(0,Lr.useState)(null),[a,i]=(0,Lr.useState)(""),[s,l]=(0,Lr.useState)(!1),u=e.sandbox,c=e.sandbox_state==="ready"&&!!u?.session_id,d=(0,Lr.useCallback)(async()=>{let m=await fetch(`/api/interactions?project_id=${e.id}`),y=await m.json().catch(()=>({}));if(!m.ok){o(at(y,`Could not list the conversations (HTTP ${m.status}).`));return}r(y.interactions||[])},[e.id]);(0,Lr.useEffect)(()=>{d()},[d]);let p=async m=>{m.preventDefault();let y=a.trim();if(!(!y||!c)){l(!0),o(null);try{let b=await fetch(`/api/sandboxes/${encodeURIComponent(u.session_id)}/code_sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:y,origin:"chat"})}),g=await b.json().catch(()=>({}));if(!b.ok)throw new Error(at(g,`The conversation did not start (HTTP ${b.status}).`));lt(gs(g.code_session.id))}catch(b){o(b.message),l(!1)}}},f={margin:0,fontSize:13,color:"var(--color-text-secondary)"};return Lr.default.createElement("div",{style:{display:"grid",gap:12},"data-testid":"project-sessions"},Lr.default.createElement(je,null,Lr.default.createElement("form",{onSubmit:p,style:{display:"grid",gap:8}},Lr.default.createElement(Ue,{as:"label",htmlFor:`project-${e.id}-chat`},"Chat with Claude Code"),Lr.default.createElement("textarea",{id:`project-${e.id}-chat`,value:a,onChange:m=>i(m.target.value),rows:3,disabled:!c,placeholder:c?`What should Claude Code do in ${e.repository}?`:"Boot the sandbox to start a conversation",style:{width:"100%",fontSize:13,padding:8,borderRadius:6,border:"1px solid var(--color-border)",background:"var(--color-surface)",color:"var(--color-text-primary)"}}),Lr.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:8}},Lr.default.createElement("p",{style:f},"It edits the checkout and never commits or pushes. The conversation opens with the sandbox's browser beside it."),Lr.default.createElement(ce,{variant:"primary",type:"submit",disabled:!c||s||!a.trim(),testId:"project-start-conversation"},s?"Starting\u2026":"Start")),n&&Lr.default.createElement("p",{role:"alert",style:{...f,color:"var(--color-error-text)"}},n))),Lr.default.createElement(je,null,Lr.default.createElement(Ue,null,"Conversations"),t===null&&!n&&Lr.default.createElement("p",{style:f},"Loading\u2026"),t?.length===0&&Lr.default.createElement("p",{style:f},"No conversations yet."),Lr.default.createElement("ul",{style:{listStyle:"none",margin:"8px 0 0",padding:0,display:"grid",gap:8}},(t||[]).map(m=>{let y=ms(m.status),b=gs(ef(m.id));return Lr.default.createElement("li",{key:m.id},Lr.default.createElement("a",{href:Re(b),onClick:g=>{g.preventDefault(),lt(b)},style:{display:"grid",gap:2,textDecoration:"none",color:"var(--color-text-primary)"},"data-testid":"project-conversation"},Lr.default.createElement("span",{style:{display:"flex",gap:8,alignItems:"center"}},Lr.default.createElement(ke,{tone:q2e[y.tone]||"muted"},y.label),Lr.default.createElement("span",{style:{fontSize:13}},m.preview?.input||m.display_name)),Lr.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)",fontFamily:W}},c2(m))))}))))}var sr=Z(Q());function cee(e){let t=Number(e)||0;return t>0?`Waiting for you: ${t}`:null}function X3(e){return(e?.options||[]).map(t=>{if(t&&typeof t=="object"){let r=String(t.value??t.label??"");return{value:r,label:String(t.label??r)}}return{value:String(t),label:String(t)}})}function dee(e,t){if(!e||e.kind==="confirm")return null;let r=typeof t=="string"?t:"";return r.trim()?e.kind==="secret"&&r.length<8?"A secret is at least 8 characters.":e.kind==="choice"&&!X3(e).some(n=>n.value===r)?"Choose one of the answers.":null:e.kind==="choice"?"Choose an answer.":"Type an answer."}function pee(e,t){return e?.kind==="confirm"?{answer:t===!0}:{answer:t}}function fee(e){return e?e.available?e.last_run?`The setup assistant ${{awaiting_input:"is waiting for you",running:"is working",pending:"is starting",complete:"finished",failed:"failed"}[e.last_run.status]||e.last_run.status}.`:e.auto?"When a boot fails, the setup assistant reads its logs and asks for what is missing.":"The setup assistant starts only when you ask for it.":e.reason||"The setup assistant is not available.":null}function mee(e){return["pending","running","awaiting_input"].includes(e?.setup?.last_run?.status)||Z3(e)||(Number(e?.pending_input_requests)||0)>0}var K2e=6e4;function gee(e,t,r=Date.now()){return e?.sandbox_state!=="failed"||e?.setup?.auto===!1||t==null||!e.setup?.claude_code?.available&&!e.setup?.available?!1:r-t[n.name,o]));return Object.keys(e).sort((n,o)=>(r.get(n)??1/0)-(r.get(o)??1/0)||n.localeCompare(o)).map(n=>{let o=(t.find(i=>i.name===n)?.columns||[]).map(i=>i.name),a=i=>[...i].sort((s,l)=>(o.indexOf(s)+1||1/0)-(o.indexOf(l)+1||1/0));return{model:n,filterable:a(e[n].filterable),returns:a(e[n].returns)}})}function bee(e,t=[],r=[]){let n=o=>JSON.stringify(o.map(a=>({model:a.model,filterable:[...a.filterable||[]].sort(),returns:[...a.returns||[]].sort()})).sort((a,i)=>a.model.localeCompare(i.model)));return n(Q3(e,r))!==n(t)}function wee(e){return e?e.status==="queued"||e.status==="publishing"?{label:"publishing\u2026",tone:"info"}:e.status==="failed"?e.head_commit&&!e.number?{label:"branch published, pull request not opened",tone:"error"}:{label:"failed",tone:"error"}:e.state==="merged"?{label:"merged",tone:"success"}:e.state==="closed"?{label:"closed",tone:"muted"}:e.number?{label:e.draft?"draft open":"open",tone:"accent"}:{label:"branch published",tone:"warning"}:{label:"not opened",tone:"muted"}}function See(e){return e?e.status==="queued"||e.status==="publishing"?2e3:e.number&&!["merged","closed"].includes(e.state)?6e4:null:null}function kee(e){let t=e?.status==="queued"||e?.status==="publishing",r=!!e?.number&&!["merged","closed"].includes(e?.state),n=!e||["merged","closed"].includes(e.state)||!e.number&&!e.head_commit&&e.status==="failed",o=null;return!t&&e?.head_commit&&!e.number&&(o=e.status==="draft_refused"?"regular":"draft"),{canOpen:!t&&n,canUpdate:!t&&r,openBranch:o}}function _ee(e,t=[],r=""){let n=new URLSearchParams;for(let a of t)n.append("paths[]",a);r&&n.set("title",r);let o=n.toString();return`/api/projects/${e}/install_pull_request/patch${o?`?${o}`:""}`}async function Cee(e){return e.json().catch(()=>({}))}function R3({project:e,onSaved:t,onConfirmationRequired:r}){let[n,o]=(0,sr.useState)(null),[a,i]=(0,sr.useState)({}),[s,l]=(0,sr.useState)(null),[u,c]=(0,sr.useState)(!1),d=e.schema_tools||[],p=(0,sr.useCallback)(async()=>{let m=await fetch(`/api/projects/${e.id}/app_models`),y=await Cee(m);if(m.status===409){o(null);return}if(!m.ok)throw new Error(at(y,`Could not list the app's models (HTTP ${m.status}).`));o(y.models||[]),i(vee(y.schema_tools||[]))},[e.id]);(0,sr.useEffect)(()=>{e.app_models_listed&&p().catch(m=>l(m.message))},[p,e.app_models_listed]);let f=async(m,y=!1)=>{c(!0),l(null);try{let b=await fetch(`/api/projects/${e.id}/schema_tools`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({schema_tools:Q3(a,n||[]),apply:m,...y?{confirm:!0}:{}})}),g=await Cee(b);if(b.status===409&&g.code==="confirmation_required"){r?.(g.confirmation,()=>f(m,!0));return}if(!b.ok)throw new Error(at(g,`Could not save what the assistant may read (HTTP ${b.status}).`));t?.(g.project)}catch(b){l(b.message)}finally{c(!1)}};return sr.default.createElement(V2e,{listed:e.app_models_listed,models:n,selection:a,changed:n?bee(a,d,n):!1,busy:u,error:s,onToggle:(m,y,b)=>i(g=>xee(g,m,y,b)),onSave:()=>f(!1),onSaveAndRestart:()=>f(!0)})}function V2e({listed:e,models:t,selection:r,changed:n,busy:o,error:a,onToggle:i,onSave:s,onSaveAndRestart:l}){let u=(0,sr.useMemo)(()=>Object.keys(r||{}),[r]);return sr.default.createElement(Zr,{title:"Choose what the assistant may read",meta:`${u.length} ${u.length===1?"model":"models"}`,testId:"project-assistant-reads"},sr.default.createElement("p",{style:{margin:0,padding:"10px 12px",fontSize:13,color:"var(--color-text-secondary)"}},"Each model you choose gets find, count and get tools that filter on and return only the columns ticked here. Columns that look like secrets are never listed. The tools are written into the sandbox's checkout on every boot, and go into the install pull request."),!e&&sr.default.createElement("p",{style:{margin:0,padding:"0 12px 12px",fontSize:13,color:"var(--color-text-secondary)"}},"Boot the project first: a boot lists the app's models."),a&&sr.default.createElement("div",{style:{padding:"8px 12px",fontSize:13,color:"var(--color-error-text)"}},a),e&&t&&t.length===0&&sr.default.createElement("p",{style:{margin:0,padding:"0 12px 12px",fontSize:13,color:"var(--color-text-secondary)"}},"The app has no models with a table."),(t||[]).map(c=>{let d=r?.[c.name];return sr.default.createElement("details",{key:c.name,open:!!d,"data-testid":`assistant-model-${c.name}`,style:{borderTop:"1px solid var(--color-border-light)",padding:"8px 12px"}},sr.default.createElement("summary",{style:{cursor:"pointer",display:"flex",gap:8,alignItems:"center"}},sr.default.createElement("span",{style:{fontFamily:W,fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},c.name),sr.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-muted)"}},c.table),d&&sr.default.createElement(ke,{tone:"accent"},`${d.filterable.size} filter \xB7 ${d.returns.size} read`)),sr.default.createElement("table",{style:{marginTop:6,borderCollapse:"collapse",fontSize:12}},sr.default.createElement("thead",null,sr.default.createElement("tr",{style:{color:"var(--color-text-muted)",textAlign:"left"}},sr.default.createElement("th",{style:{padding:"2px 12px 2px 0",fontWeight:500}},"Column"),sr.default.createElement("th",{style:{padding:"2px 12px",fontWeight:500}},"Filter on"),sr.default.createElement("th",{style:{padding:"2px 12px",fontWeight:500}},"Read back"))),sr.default.createElement("tbody",null,c.columns.map(p=>sr.default.createElement("tr",{key:p.name},sr.default.createElement("td",{style:{padding:"2px 12px 2px 0",fontFamily:W,color:"var(--color-text-primary)"}},p.name," ",sr.default.createElement("span",{style:{color:"var(--color-text-muted)"}},p.type)),["filterable","returns"].map(f=>sr.default.createElement("td",{key:f,style:{padding:"2px 12px",textAlign:"center"}},sr.default.createElement("input",{type:"checkbox","aria-label":`${f==="filterable"?"Filter on":"Read back"} ${c.name}.${p.name}`,checked:!!d?.[f]?.has(p.name),disabled:o,onChange:()=>i(c.name,f,p.name)}))))))))}),e&&t&&t.length>0&&sr.default.createElement("div",{style:{display:"flex",gap:8,padding:"10px 12px",borderTop:"1px solid var(--color-border-light)"}},sr.default.createElement(ce,{size:"sm",onClick:s,disabled:o||!n},"Save"),sr.default.createElement(ce,{size:"sm",variant:"primary",onClick:l,disabled:o,testId:"assistant-reads-restart"},o?"Saving\u2026":"Save and restart the sandbox")))}var ri=Z(Q());function ej({boot:e,logTail:t,error:r,sandboxState:n,waiting:o}){let a=e?.steps||[];return ri.default.createElement(Zr,{title:"Boot",meta:cee(o)||n||"none",testId:"project-boot-progress"},a.length===0&&ri.default.createElement("p",{style:{margin:0,padding:12,fontSize:13,color:"var(--color-text-secondary)"}},n==="booting"?"Waiting for the sandbox to report its steps\u2026":"No boot to show yet."),a.length>0&&ri.default.createElement("ol",{style:{listStyle:"none",margin:0,padding:0}},a.map(i=>ri.default.createElement("li",{key:i.name,"data-testid":`boot-step-${i.name}`,style:{display:"grid",gridTemplateColumns:"92px 170px 1fr 80px",gap:10,alignItems:"baseline",padding:"8px 12px",borderTop:"1px solid var(--color-border-light)"}},ri.default.createElement(ke,{tone:KR[i.status]||"muted"},i.status),ri.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-primary)"}},HR(i.name)," ",ri.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},i.name)),ri.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)",overflowWrap:"anywhere"}},i.detail||""),ri.default.createElement("span",{style:{fontFamily:W,fontSize:12,color:"var(--color-text-muted)",textAlign:"right"}},i.status==="pending"?"":qR(i.duration_ms))))),r&&ri.default.createElement("div",{"data-testid":"boot-error",style:{padding:"8px 12px",fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)",whiteSpace:"pre-wrap"}},r),t?.text&&ri.default.createElement("div",{style:{borderTop:"1px solid var(--color-border-light)"}},ri.default.createElement("div",{style:{padding:"6px 12px",fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},t.truncated?"last lines of ":"",t.step,".log"),ri.default.createElement("pre",{"data-testid":"boot-log-tail",style:{margin:0,padding:"8px 12px",maxHeight:280,overflow:"auto",fontFamily:W,fontSize:12,background:"var(--color-muted)",color:"var(--color-text-cell)",whiteSpace:"pre-wrap"}},t.text)))}var Ol=Z(Q());var Aee="/settings?tab=integrations";function tj({project:e,modes:t=[],watchOnOpen:r=!1,onChange:n}){let o=e.sandbox,a=e.sandbox_state==="ready"&&!!o?.session_id,i={margin:0,fontSize:13,color:"var(--color-text-secondary)"},s;return t.length===0?s=Ol.default.createElement("p",{style:i},"This dashboard's sandbox backend runs no browsers. The project's agent works through the app's tools."):a?s=Ol.default.createElement(Ol.default.Fragment,null,Ol.default.createElement("p",{style:i},"A browser of the sandbox's own, opened on ",e.repository,"'s running app. Watch it live, take over to click, type and upload files, and hand back. Agent runs reach it as ",Ol.default.createElement("span",{style:{fontFamily:W}},"browser:",o.session_id),"."),Ol.default.createElement(kf,{key:o.session_id,sandbox:o,modes:t,watchOnOpen:r,onChange:n})):s=Ol.default.createElement("p",{style:i},"Boot the sandbox to start its browser. It opens on the running app, and you can watch it live and take over."),Ol.default.createElement(Zr,{title:"Browser",meta:Ol.default.createElement(Gr,{href:Re(Aee),onClick:()=>lt(Aee)},"Manage runtimes"),testId:"project-browser",bodyStyle:{padding:12,display:"flex",flexDirection:"column",gap:8}},s)}var Un=Z(Q());var G2e=e=>e?new Date(e).toLocaleString():"\u2014",Y2e={entered:()=>"entered",organization_key:e=>`organization's ${e.provider} key`,setup_assistant:()=>"set by the setup assistant, not secret"};function rj({secrets:e,onReplace:t,onDelete:r,error:n}){let[o,a]=(0,Un.useState)(null),[i,s]=(0,Un.useState)(""),[l,u]=(0,Un.useState)(!1),c=o?pA(o,i):[],d=async p=>{u(!0);try{await p()}catch{return}finally{u(!1)}};return Un.default.createElement(Zr,{title:"Environment",meta:`${e.length} ${e.length===1?"secret":"secrets"}`,testId:"project-environment"},n&&Un.default.createElement("div",{style:{padding:"8px 12px",fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},n),e.length===0&&Un.default.createElement("p",{style:{margin:0,padding:12,fontSize:13,color:"var(--color-text-secondary)"}},"This project sets no environment variables."),Un.default.createElement("ul",{style:{listStyle:"none",margin:0,padding:0}},e.map(p=>Un.default.createElement("li",{key:p.name,"data-testid":`environment-${p.name}`,style:{padding:"10px 12px",borderTop:"1px solid var(--color-border-light)"}},Un.default.createElement("div",{style:{display:"flex",gap:10,alignItems:"center",flexWrap:"wrap"}},Un.default.createElement("span",{style:{fontFamily:W,fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},p.name),Un.default.createElement(ke,{tone:p.source==="organization_key"?"info":"muted"},Y2e[p.source]?.(p)||"entered"),Un.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-muted)"}},p.set_by?.name?`set by ${p.set_by.name}`:"set"," \xB7 ",G2e(p.updated_at)),Un.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:6}},p.source!=="organization_key"&&Un.default.createElement(ce,{size:"sm",onClick:()=>{a(p.name),s("")},disabled:l},"Replace"),Un.default.createElement(ce,{size:"sm",variant:"danger",onClick:()=>d(()=>r(p.name)),disabled:l},"Delete"))),p.source==="setup_assistant"&&typeof p.value=="string"&&Un.default.createElement("div",{style:{marginTop:4,fontFamily:W,fontSize:12,color:"var(--color-text-secondary)",wordBreak:"break-all"}},p.name,"=",p.value),o===p.name&&Un.default.createElement("form",{style:{display:"flex",gap:6,marginTop:8,flexWrap:"wrap"},onSubmit:f=>{f.preventDefault(),i&&d(async()=>{await t(p.name,i),a(null),s("")})}},Un.default.createElement("input",{type:"password",autoComplete:"off",value:i,onChange:f=>s(f.target.value),placeholder:"New value","aria-label":`New value for ${p.name}`,style:{flex:1,minWidth:200,padding:"6px 10px",borderRadius:6,fontFamily:W,fontSize:13,border:"1px solid var(--color-border)",background:"var(--color-card)",color:"var(--color-text-primary)"}}),Un.default.createElement(ce,{size:"sm",variant:"primary",type:"submit",disabled:!i||l},"Save"),Un.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>a(null)},"Cancel"),c.map(f=>Un.default.createElement("div",{key:f.code,style:{width:"100%",fontSize:12,color:"var(--color-warning-text)"}},f.message)))))))}var Wn=Z(Q());var xd=Z(Q());var X2e=["proposed","edited"],aj={answerable:{label:"answerable",tone:"success",title:"Every expected tool is one the agent can call."},needs_tool:{label:"needs a tool",tone:"warning",title:"The agent cannot call every tool a good answer needs."},unverified:{label:"unverified",tone:"muted",title:"The agent's tools could not be read when this was checked."}},yA={pending:"info",running:"info",review:"accent",closed:"success",failed:"error"},Eee={minutes:"Minutes",steps:"Browser steps",cost:"Cost"};function Tee(e){return e?.status==="pending"||e?.status==="running"}function vA(e){return X2e.includes(e.state)}function ij(e=[],t=null){let r=e.filter(n=>vA(n)&&n.verdict==="answerable").map(n=>n.id);return Number.isInteger(t)&&t>=0?r.slice(0,t):r}function Oee(e=[],t=[]){let r=new Set(t.filter(vA).map(n=>n.id));return e.filter(n=>r.has(n))}function Nee(e,t){return e==="cost"?`$${Number(t||0).toFixed(2)}`:String(Math.round(Number(t||0)*10)/10)}function Pee(e={},t={}){return Object.keys(Eee).flatMap(r=>{let n=Number(e?.[r]);if(!Number.isFinite(n)||n<=0)return[];let o=Math.max(Number(t?.[r])||0,0);return[{key:r,label:Eee[r],used:o,limit:n,ratio:Math.min(o/n,1),text:`${Nee(r,o)} / ${Nee(r,n)}`}]})}function Mee(e){let t=e?.provenance||{},r=t.recording_id;if(!Number.isInteger(r)||r<=0)return null;let n=t.range||{},o=["from_ms","to_ms"].filter(a=>Number.isInteger(n[a])).map(a=>`${a}=${n[a]}`);return`/replay/${r}${o.length?`?${o.join("&")}`:""}`}function Iee({evaluation:e=null,candidates:t=[],selectedIds:r=[]}={}){let n=new Set(r),o=t.filter(s=>n.has(s.id)&&!s.scenario_key).length,a=(e?.enabled_scenario_count||0)+o,i=Math.max(e?.model_count||1,1);return{added:o,scenarios:a,models:i,executions:a*i}}function Dee(e,t=null){let r=`${e.scenarios} scenario${e.scenarios===1?"":"s"}`,n=`${e.models} model${e.models===1?"":"s"}`,o=`The run uses ${e.executions} execution${e.executions===1?"":"s"} (${r} \xD7 ${n}).`;return Number.isFinite(t)?`${o} ${t} remaining on your plan.`:o}function nj(e){return(e||[]).join(", ")}function oj(e){return String(e||"").split(",").map(t=>t.trim()).filter(Boolean)}function jee(e){let t=e.expectations||{};return{prompt:e.prompt||"",group:e.group||"",rubric:e.notes||"",tools:nj(t.tools),contains:nj(t.contains),not_contains:nj(t.not_contains)}}function $ee(e){return{prompt:e.prompt.trim(),group:e.group.trim(),rubric:e.rubric.trim(),tools:oj(e.tools),contains:oj(e.contains),not_contains:oj(e.not_contains)}}function xA(e){return`/explorations/${e}`}function bA(e){return{explorationId:String(e||"").match(/^\/explorations\/(\d+)/)?.[1]||null}}function Cf({explorations:e,onOpen:t,selectedId:r=null}){return xd.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8},"data-testid":"exploration-list"},e.map(n=>{let o=n.counts||{},a=String(n.id)===String(r);return xd.default.createElement(je,{key:n.id,padding:12,testId:`exploration-${n.id}`,style:a?{borderColor:"var(--color-accent-ui)"}:void 0},xd.default.createElement("button",{type:"button",onClick:()=>t(n),style:{all:"unset",cursor:"pointer",display:"flex",gap:8,alignItems:"center",width:"100%",flexWrap:"wrap"}},xd.default.createElement("span",{style:{fontFamily:W,fontSize:12,color:"var(--color-text-primary)"}},"#",n.id),xd.default.createElement(ke,{tone:yA[n.status]||"muted"},n.status),xd.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},n.source),xd.default.createElement("span",{style:{marginLeft:"auto",fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},o.total||0," found \xB7 ",o.open||0," to review \xB7 ",o.accepted||0," accepted \xB7 ",wo(n.created_at))))}))}var _t=Z(Q());var Af=Z(Q());function sj({budget:e,usage:t}){let r=Pee(e,t);return r.length===0?null:Af.default.createElement(Zr,{title:"Budget",testId:"exploration-budget",bodyStyle:{padding:"10px 12px",display:"flex",flexDirection:"column",gap:8}},r.map(n=>{let o=n.ratio>=1?Dn.error:n.ratio>=.8?Dn.warning:Dn.info;return Af.default.createElement("div",{key:n.key,"data-testid":`exploration-budget-${n.key}`,style:{display:"flex",alignItems:"center",gap:10}},Af.default.createElement("span",{style:{width:110,fontSize:12,color:"var(--color-text-secondary)"}},n.label),Af.default.createElement("span",{style:{flex:1,height:6,borderRadius:999,background:"var(--color-muted)",overflow:"hidden"}},Af.default.createElement("span",{style:{display:"block",width:`${Math.round(n.ratio*100)}%`,height:"100%",background:o.strong}})),Af.default.createElement("span",{style:{fontFamily:W,fontSize:11,minWidth:90,textAlign:"right",color:o.text}},n.text))}))}var Dt=Z(Q());var Z2e={proposed:"info",edited:"info",accepted:"success",rejected:"muted"},Wh={width:"100%",boxSizing:"border-box",padding:"6px 8px",borderRadius:6,fontSize:13,fontFamily:"inherit",background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"};function Hh({label:e,children:t}){return Dt.default.createElement("label",{style:{display:"flex",flexDirection:"column",gap:4,fontSize:12,color:"var(--color-text-secondary)"}},e,t)}function lj({candidate:e,selected:t,onToggle:r,onSave:n,onState:o,busy:a,problem:i,agentId:s}){let[l,u]=(0,Dt.useState)(null),c=aj[e.verdict]||aj.unverified,d=e.expectations||{},p=new Set(e.missing_tools||[]),f=e.provenance||{},m=Mee(e),y=vA(e),b=h=>v=>u({...l,[h]:v.target.value}),g=async()=>{await n(e.id,$ee(l))&&u(null)};return Dt.default.createElement("li",{"data-testid":`exploration-candidate-${e.id}`,style:{listStyle:"none",padding:"12px 0",borderTop:"1px solid var(--color-border-light)",display:"flex",gap:10}},Dt.default.createElement("input",{type:"checkbox","aria-label":`Accept candidate ${e.id}`,checked:t,disabled:!y||a,onChange:()=>r(e.id),style:{marginTop:3,alignSelf:"flex-start"}}),Dt.default.createElement("div",{style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",gap:6}},Dt.default.createElement("div",{style:{display:"flex",gap:6,alignItems:"center",flexWrap:"wrap"}},Dt.default.createElement("span",{style:{fontSize:14,fontWeight:600,color:"var(--color-text-primary)"}},e.prompt),Dt.default.createElement(ke,{tone:c.tone,title:c.title,testId:`candidate-verdict-${e.id}`},c.label),Dt.default.createElement(ke,{tone:Z2e[e.state]||"muted"},e.state),e.group&&Dt.default.createElement(ke,null,e.group),e.scenario_key&&Dt.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},e.scenario_key)),l?Dt.default.createElement("div",{style:{display:"grid",gap:8},"data-testid":`candidate-edit-${e.id}`},Dt.default.createElement(Hh,{label:"Prompt"},Dt.default.createElement("input",{style:Wh,value:l.prompt,onChange:b("prompt")})),Dt.default.createElement(Hh,{label:"Rubric: what a good answer does (the judge grades against it)"},Dt.default.createElement("textarea",{style:{...Wh,minHeight:60},value:l.rubric,onChange:b("rubric")})),Dt.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(160px, 1fr))",gap:8}},Dt.default.createElement(Hh,{label:"Group"},Dt.default.createElement("input",{style:Wh,value:l.group,onChange:b("group")})),Dt.default.createElement(Hh,{label:"Tools (comma-separated)"},Dt.default.createElement("input",{style:Wh,value:l.tools,onChange:b("tools")})),Dt.default.createElement(Hh,{label:"Contains"},Dt.default.createElement("input",{style:Wh,value:l.contains,onChange:b("contains")})),Dt.default.createElement(Hh,{label:"Does not contain"},Dt.default.createElement("input",{style:Wh,value:l.not_contains,onChange:b("not_contains")}))),Dt.default.createElement("div",{style:{display:"flex",gap:8}},Dt.default.createElement(ce,{size:"sm",variant:"primary",onClick:g,disabled:a||!l.prompt.trim()},"Save"),Dt.default.createElement(ce,{size:"sm",onClick:()=>u(null),disabled:a},"Cancel"))):Dt.default.createElement(Dt.default.Fragment,null,Dt.default.createElement("div",{style:{fontSize:13,color:e.notes?"var(--color-text-cell)":"var(--color-text-muted)"}},e.notes||"No rubric yet: the judge has nothing to grade the answer against."),(d.tools?.length>0||d.contains?.length>0||d.not_contains?.length>0)&&Dt.default.createElement("div",{style:{display:"flex",gap:6,flexWrap:"wrap",alignItems:"center",fontFamily:W,fontSize:11}},(d.tools||[]).map(h=>Dt.default.createElement(ke,{key:h,tone:p.has(h)?"warning":"muted",title:p.has(h)?"The agent cannot call this tool":void 0},p.has(h)?`missing ${h}`:h)),(d.contains||[]).map(h=>Dt.default.createElement(ke,{key:`c-${h}`},"contains \u201C",h,"\u201D")),(d.not_contains||[]).map(h=>Dt.default.createElement(ke,{key:`n-${h}`},"not \u201C",h,"\u201D")))),i&&Dt.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},i),(f.steps?.length>0||f.urls?.length>0||f.screenshots?.length>0||m)&&Dt.default.createElement("details",{style:{fontSize:12,color:"var(--color-text-secondary)"}},Dt.default.createElement("summary",{style:{cursor:"pointer"}},"How it was found"),f.urls?.length>0&&Dt.default.createElement("div",{style:{marginTop:4,fontFamily:W,fontSize:11}},f.urls.join(" \xB7 ")),f.steps?.length>0&&Dt.default.createElement("ol",{style:{margin:"4px 0 0",paddingLeft:18}},f.steps.map((h,v)=>Dt.default.createElement("li",{key:v},h))),f.screenshots?.length>0&&Dt.default.createElement("div",{style:{marginTop:4,fontFamily:W,fontSize:11}},"Screenshots: ",f.screenshots.join(", "))),!l&&Dt.default.createElement("div",{style:{display:"flex",gap:6,flexWrap:"wrap"}},m&&Dt.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(m),testId:`candidate-replay-${e.id}`},"Replay"),e.verdict==="needs_tool"&&s&&Dt.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(`/agents/${s}/edit`)},"Give the agent the tool"),e.state!=="rejected"&&Dt.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>u(jee(e)),disabled:a},"Edit"),y&&Dt.default.createElement(ce,{size:"sm",variant:"danger",onClick:()=>o(e.id,"rejected"),disabled:a},"Reject"),e.state==="rejected"&&Dt.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>o(e.id,"proposed"),disabled:a},"Reconsider"))))}var uj={minutes:15,steps:150},Lee={minutes:120,steps:1e3,cost:100},zee={minutes:"Minutes",steps:"Browser steps",cost:"Cost cap"};function Fee(e={}){let t={};for(let r of["minutes","steps","cost"]){let n=String(e[r]??"").trim();if(n==="")continue;let o=Number(n),a=r!=="cost";if(!Number.isFinite(o)||o<=0||a&&!Number.isInteger(o))return{error:`${zee[r]} must be a ${a?"whole number":"number"} above 0.`};if(o>Lee[r])return{error:`${zee[r]} may be at most ${Lee[r]}.`};t[r]=o}return{budget:t}}var Bee={sandbox_not_ready:"Boot the project first: the explorer walks the app its sandbox serves.",exploration_running:"An exploration of this project is already walking the app. Stop it or wait for it to finish.",no_target:"Choose the agent to evaluate first: the explorer proposes questions for that agent.",browser_unavailable:null};function Uee(e,t={}){return e===402?t.message||t.error||"Your plan has no explorations left.":t.code&&Bee[t.code]?Bee[t.code]:t.error||`The exploration did not start (HTTP ${e}).`}var J2e={finished:"The explorer finished.",budget_minutes:"Its time budget ran out.",budget_steps:"Its browser step budget ran out.",budget_cost:"Its cost budget ran out.",budget_context:"Its conversation grew too long for the model.",stopped:"Stopped for review.",error:"It failed."};function Wee(e){return e?J2e[e]||e:null}var Q2e={signed_in:"success",failed:"error",unsupported:"warning",error:"error"};function Hee(e){return e?{tone:Q2e[e.status]||"muted",text:e.message||e.status}:null}function qee(e={},{passwordSaved:t=!1}={}){let r={};for(let n of["login_url","login","password","login_field","password_field","submit_field"]){let o=String(e[n]??"").trim();o&&(r[n]=n==="password"?String(e[n]):o)}return!r.password&&!t?{error:"Enter the test account's password."}:r.login_url&&(!r.login_url.startsWith("/")||r.login_url.startsWith("//"))?{error:"The login URL must be a path on the app, such as /users/sign_in."}:{payload:r}}function cj(e=[]){return e.filter(t=>!t.kind||t.kind==="env")}async function Kee(e){return e.json().catch(()=>({}))}var eAe={explorer:"explorer agent",external:"submitted from outside the dashboard"};function Ef({explorationId:e,onLoaded:t,scenarioSet:r=null,requireScenarioSet:n=!1,onAccepted:o}){let[a,i]=(0,_t.useState)(null),[s,l]=(0,_t.useState)(null),[u,c]=(0,_t.useState)([]),[d,p]=(0,_t.useState)(!1),[f,m]=(0,_t.useState)(!1),[y,b]=(0,_t.useState)({}),[g,h]=(0,_t.useState)(null),[v,x]=(0,_t.useState)(null),S=(0,_t.useRef)(t);S.current=t;let k=(0,_t.useCallback)(async()=>{let O=await fetch(`/api/explorations/${e}`),F=await Kee(O);if(!O.ok)throw new Error(at(F,`Could not load the exploration (HTTP ${O.status}).`));return i(F),S.current?.(F),F},[e]);(0,_t.useEffect)(()=>{k().catch(O=>l(O.message))},[k]);let w=a?.candidates||[];(0,_t.useEffect)(()=>{a&&c(O=>d?Oee(O,w):ij(w,a.preselect_limit))},[a,d]);let _=Tee(a?.exploration);(0,_t.useEffect)(()=>{if(!_)return;let O=setInterval(()=>k().catch(F=>l(F.message)),3e3);return()=>clearInterval(O)},[_,k]),$h("ExplorationChannel",{exploration_id:e},O=>{Lh(O)&&k().catch(()=>{})},!!e);let A=async(O,F,V)=>{m(!0),l(null);try{let z=await fetch(O,{method:F,headers:{"Content-Type":"application/json"},body:JSON.stringify(V||{})}),G=await Kee(z);return{res:z,data:G}}finally{m(!1)}},C=async(O,F)=>{let{res:V,data:z}=await A(`/api/explorations/${e}/candidates/${O}`,"PATCH",F);return V.ok?(b({...y,[O]:null}),await k(),!0):(b({...y,[O]:at(z,`Could not save the candidate (HTTP ${V.status}).`)}),!1)},N=async(O,F)=>C(O,{state:F}),L=O=>{p(!0),c(F=>F.includes(O)?F.filter(V=>V!==O):[...F,O])},J=async()=>{let O={candidate_ids:u,...r?{scenario_set_id:r.id}:{}},{res:F,data:V}=await A(`/api/explorations/${e}/accept`,"POST",O);return F.ok?(b({}),h({accepted:V.accepted,evaluation:r?null:V.evaluation,scenarioSet:V.scenario_set||null}),o?.(V),p(!1),i(V),S.current?.(V),V):(b(V.problems||{}),l(at(V,`Could not accept the candidates (HTTP ${F.status}).`)),null)},B=async(O,F,{confirm:V=!1}={})=>{let z=F?`/api/projects/${F.id}/run_evaluation`:`/api/evaluations/${O.id}/run`,{res:G,data:q}=await A(z,"POST",V?{confirm:!0}:{});if(G.status===409&&q.code==="confirmation_required"){x({question:q.confirmation,evaluation:O,project:F});return}if(!G.ok){l(at(q,`The scenarios were accepted, but the run did not start (HTTP ${G.status}).`));return}x(null),lt(`/evaluations/${q.run?.evaluation_id||O.id}/runs/${q.run.id}`)},K=async()=>{let O=await J();O?.evaluation&&await B(O.evaluation,O.project)},T=async()=>{let{res:O,data:F}=await A(`/api/explorations/${e}/stop`,"POST");if(!O.ok&&O.status!==409){l(at(F,`Could not stop the exploration (HTTP ${O.status}).`));return}await k()};if(!a)return s?_t.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},s):_t.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Loading the exploration\u2026");let{exploration:P}=a,I=P.counts||{},M=Iee({evaluation:a.evaluation,candidates:w,selectedIds:u}),j=ij(w);return _t.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12},"data-testid":"exploration-review"},_t.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},_t.default.createElement(Ue,null,"Exploration ",P.id),_t.default.createElement(ke,{tone:yA[P.status]||"muted",testId:"exploration-status"},P.status),_t.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},eAe[P.source]||P.source," \xB7 ",wo(P.created_at),P.start_url?` \xB7 from ${P.start_url}`:""),_&&_t.default.createElement(ce,{size:"sm",onClick:T,disabled:f,style:{marginLeft:"auto"},testId:"exploration-stop"},"Stop and review")),P.stop_reason&&_t.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},Wee(P.stop_reason)),P.error_message&&_t.default.createElement("div",{style:{padding:"8px 12px",borderRadius:8,fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},P.error_message),_t.default.createElement(sj,{budget:P.budget,usage:P.usage}),s&&_t.default.createElement("div",{style:{padding:"10px 12px",borderRadius:8,fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},s),g&&_t.default.createElement(je,{padding:12,testId:"exploration-accepted"},_t.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-primary)"}},"Added ",g.accepted?.added?.length||0," and updated ",g.accepted?.updated?.length||0," scenarios in"," ",g.scenarioSet?`${g.scenarioSet.catalog?.name} / ${g.scenarioSet.name}`:g.evaluation?.name,".")," ",g.evaluation&&_t.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(`/evaluations/${g.evaluation.id}`)},"Open evaluation")),v&&_t.default.createElement(je,{testId:"exploration-run-confirmation",style:{borderColor:"var(--color-warning)"}},_t.default.createElement("p",{style:{margin:0,fontSize:14,color:"var(--color-text-primary)"}},v.question),_t.default.createElement("div",{style:{display:"flex",gap:8,marginTop:10}},_t.default.createElement(ce,{variant:"primary",onClick:()=>B(v.evaluation,v.project,{confirm:!0}),disabled:f},"Run it on this machine"),_t.default.createElement(ce,{onClick:()=>x(null)},"Cancel"))),_t.default.createElement(Zr,{title:"Found so far",meta:`${I.total||0} found \xB7 ${I.answerable||0} answerable \xB7 ${I.accepted||0} accepted`,testId:"exploration-candidates",bodyStyle:{padding:"0 12px"}},w.length===0?_t.default.createElement("div",{style:{padding:"12px 0",fontSize:13,color:"var(--color-text-secondary)"}},_?"Nothing yet. Candidates appear here as they are found.":"This exploration found nothing."):_t.default.createElement("ul",{style:{margin:0,padding:0}},w.map(O=>_t.default.createElement(lj,{key:O.id,candidate:O,selected:u.includes(O.id),onToggle:L,onSave:C,onState:N,busy:f,problem:y?.[O.id]||y?.[String(O.id)],agentId:a.target_agent?.id})))),w.length>0&&_t.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8}},_t.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},_t.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>{p(!0),c(j)},disabled:f},"Select every answerable"),_t.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>{p(!0),c([])},disabled:f},"Clear"),a.preselect_limit!=null&&j.length>a.preselect_limit&&_t.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"Your plan starts with ",a.preselect_limit," selected.")),_t.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},_t.default.createElement(ce,{variant:"primary",onClick:J,disabled:f||u.length===0||n&&!r,testId:"exploration-accept"},"Accept ",u.length,r?` into ${r.label}`:""),!r&&!n&&_t.default.createElement(_t.default.Fragment,null,_t.default.createElement(ce,{onClick:K,disabled:f||u.length===0,testId:"exploration-accept-run"},"Accept and run"),_t.default.createElement("span",{style:{fontFamily:W,fontSize:11,color:"var(--color-text-secondary)"},"data-testid":"exploration-run-estimate"},Dee(M,a.runs_remaining))))))}var ni=Z(Q());var tAe={width:90,padding:"6px 8px",borderRadius:6,fontSize:13,fontFamily:W,border:"1px solid var(--color-border)",background:"var(--color-card)",color:"var(--color-text-primary)"};function db({projectId:e,sandboxReady:t,onStarted:r}){let[n,o]=(0,ni.useState)({minutes:"",steps:"",cost:""}),[a,i]=(0,ni.useState)(null),[s,l]=(0,ni.useState)(!1),{error:u,budget:c}=Fee(n),d=async()=>{l(!0),i(null);try{let f=await fetch(`/api/projects/${e}/explorations`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({budget:c})}),m=await f.json().catch(()=>({}));if(!f.ok)throw new Error(Uee(f.status,m));r?.(m.exploration)}catch(f){i(f.message)}finally{l(!1)}},p=(f,m,y)=>ni.default.createElement("label",{style:{display:"flex",flexDirection:"column",gap:4}},ni.default.createElement(Ue,null,m),ni.default.createElement("input",{type:"number",min:"0",value:n[f],placeholder:y,onChange:b=>o({...n,[f]:b.target.value}),"aria-label":m,style:tAe}));return ni.default.createElement(Zr,{title:"Explore the app",testId:"explorer-start",bodyStyle:{padding:12,display:"flex",flexDirection:"column",gap:10}},ni.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"The explorer walks the app in the sandbox's browser and proposes the questions a user would ask the project's agent, each with a rubric. They wait here for review; nothing reaches the evaluation until you accept it."),ni.default.createElement("div",{style:{display:"flex",gap:12,alignItems:"flex-end",flexWrap:"wrap"}},p("minutes","Minutes",String(uj.minutes)),p("steps","Browser steps",String(uj.steps)),p("cost","Cost cap ($)","none"),ni.default.createElement(ce,{variant:"primary",onClick:d,disabled:s||!t||!!u,testId:"explorer-start-button"},s?"Starting\u2026":"Explore the app")),!t&&ni.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"Boot the project first: the explorer walks the app its sandbox serves."),(u||a)&&ni.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"},"data-testid":"explorer-start-error"},u||a))}var Yt=Z(Q());var rAe={width:"100%",padding:"6px 10px",borderRadius:6,fontSize:13,fontFamily:W,border:"1px solid var(--color-border)",background:"var(--color-card)",color:"var(--color-text-primary)"},nAe=[{value:"credentials",label:"Seeded account"},{value:"by_hand",label:"Sign in by hand"},{value:"none",label:"No sign-in"}],Vee=e=>e?new Date(e).toLocaleString():"\u2014";async function Nf(e,t,r){let n=await fetch(e,{method:t,headers:{"Content-Type":"application/json"},body:r?JSON.stringify(r):void 0}),o=await n.json().catch(()=>({}));if(!n.ok)throw new Error(at(o,`The request failed (HTTP ${n.status}).`));return o}function dj({projectId:e,sandboxId:t,sandboxReady:r}){let[n,o]=(0,Yt.useState)(null),[a,i]=(0,Yt.useState)(null),[s,l]=(0,Yt.useState)({login_url:"",login:"",password:"",login_field:"",password_field:"",submit_field:""}),[u,c]=(0,Yt.useState)(null),[d,p]=(0,Yt.useState)(null),[f,m]=(0,Yt.useState)(null),[y,b]=(0,Yt.useState)(!1),g=(0,Yt.useCallback)(async()=>{let B=await Nf(`/api/projects/${e}/sign_in`,"GET");o(B.sign_in);let K=B.sign_in?.credentials;K&&l(T=>({...T,login_url:K.login_url||"",login:K.login||"",...K.fields})),i(T=>T||(K?"credentials":B.sign_in?.storage_state?"by_hand":"none"))},[e]);(0,Yt.useEffect)(()=>{g().catch(B=>p(B.message))},[g]);let h=async B=>{b(!0),p(null),m(null);try{await B()}catch(K){p(K.message)}finally{b(!1)}},v=n?.credentials,{error:x,payload:S}=qee(s,{passwordSaved:!!v?.password_set}),k=Hee(u),w=()=>h(async()=>{let B=await Nf(`/api/projects/${e}/sign_in`,"PUT",S);o(B.sign_in),l(K=>({...K,password:""})),m(B.warnings?.length?B.warnings.map(K=>K.message).join(" "):"Saved. The explorer signs in with them.")}),_=()=>h(async()=>{let B=await Nf(`/api/projects/${e}/sign_in/check`,"POST");c(B.result),o(B.sign_in)}),A=()=>h(async()=>{await Nf(`/api/sandboxes/${t}/browser`,"POST",{mode:"headed"}),await g(),m("A browser window opened on the app. Sign in there, then save its sign-in.")}),C=()=>h(async()=>{let B=await Nf(`/api/projects/${e}/sign_in/save_browser`,"POST");o(B.sign_in),m("Saved. Every browser of this project now starts signed in.")}),N=()=>h(async()=>{await Nf(`/api/sandboxes/${t}/browser`,"DELETE"),await g()}),L=()=>h(async()=>{let B=await Nf(`/api/projects/${e}/sign_in`,"DELETE");o(B.sign_in),c(null),m("The explorer explores what is reachable without signing in.")}),J=(B,K,T="text",P="")=>Yt.default.createElement("label",{style:{display:"flex",flexDirection:"column",gap:4,flex:"1 1 200px"}},Yt.default.createElement(Ue,null,K),Yt.default.createElement("input",{type:T,autoComplete:"off",value:s[B],placeholder:P,onChange:I=>l({...s,[B]:I.target.value}),"aria-label":K,style:rAe}));return Yt.default.createElement(Zr,{title:"Sign-in",testId:"project-sign-in",bodyStyle:{padding:12,display:"flex",flexDirection:"column",gap:10}},Yt.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"How the explorer and the evaluation's replays sign in to the app. Credentials are typed into the app by the dashboard itself and never reach a model."),Yt.default.createElement("div",{style:{display:"flex",gap:6,flexWrap:"wrap",alignItems:"center"}},v&&Yt.default.createElement(ke,{tone:"success"},"credentials saved ",Vee(v.updated_at)),n?.storage_state&&Yt.default.createElement(ke,{tone:"success"},"browser sign-in saved ",Vee(n.storage_state.updated_at)),!v&&!n?.storage_state&&n&&Yt.default.createElement(ke,null,"no sign-in")),Yt.default.createElement(Ka,{options:nAe,value:a||"none",onChange:i}),a==="credentials"&&Yt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8},"data-testid":"sign-in-credentials"},Yt.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap"}},J("login_url","Login URL","text","/users/sign_in"),J("login","Login","text","dev@example.com"),J("password","Password","password",v?.password_set?"Saved; leave empty to keep it":"")),Yt.default.createElement("details",null,Yt.default.createElement("summary",{style:{fontSize:12,color:"var(--color-text-secondary)",cursor:"pointer"}},"Field selectors, when the form's fields are not found"),Yt.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap",marginTop:6}},J("login_field","Login field","text","#user_email"),J("password_field","Password field","text","#user_password"),J("submit_field","Submit button","text","button[type=submit]"))),Yt.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},Yt.default.createElement(ce,{variant:"primary",size:"sm",onClick:w,disabled:y||!!x},"Save credentials"),Yt.default.createElement(ce,{size:"sm",onClick:_,disabled:y||!v||!r,testId:"sign-in-check"},"Check sign-in"),x&&Yt.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},x))),a==="by_hand"&&Yt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8},"data-testid":"sign-in-by-hand"},Yt.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"Open the sandbox's browser in a window, sign in to the app there, then save its sign-in. Later browsers of this project start with it."),Yt.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap"}},Yt.default.createElement(ce,{size:"sm",onClick:A,disabled:y||!r||n?.browser_running},"Open a browser window"),Yt.default.createElement(ce,{variant:"primary",size:"sm",onClick:C,disabled:y||!n?.browser_running},"Save the browser's sign-in"),n?.browser_running&&Yt.default.createElement(ce,{size:"sm",variant:"ghost",onClick:N,disabled:y},"Stop the browser"))),a==="none"&&(v||n?.storage_state)&&Yt.default.createElement("div",null,Yt.default.createElement(ce,{size:"sm",variant:"danger",onClick:L,disabled:y},"Remove the saved sign-in")),k&&Yt.default.createElement("div",{"data-testid":"sign-in-result",style:{fontSize:13,color:Dn[k.tone]?.text||"var(--color-text-secondary)"}},k.text),f&&Yt.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},f),d&&Yt.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},d))}function pj({projectId:e,project:t,onCount:r}){let[n,o]=(0,Wn.useState)(null),[a,i]=(0,Wn.useState)(null),[s,l]=(0,Wn.useState)(null),u=(0,Wn.useCallback)(async()=>{let f=await fetch(`/api/explorations?project_id=${e}`),m=await f.json().catch(()=>({}));if(!f.ok)throw new Error(at(m,`Could not list the project's explorations (HTTP ${f.status}).`));o(m.explorations||[]),r?.(m.explorations?.length||0)},[e,r]);(0,Wn.useEffect)(()=>{u().catch(f=>l(f.message))},[u]);let c=t?.sandbox_state==="ready",d=Wn.default.createElement(Wn.default.Fragment,null,Wn.default.createElement(db,{projectId:e,sandboxReady:c,onStarted:f=>{i(f.id),u().catch(m=>l(m.message))}}),Wn.default.createElement(dj,{projectId:e,sandboxId:t?.sandbox?.session_id,sandboxReady:c}));if(s)return Wn.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},s);if(!n)return Wn.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Loading explorations\u2026");if(n.length===0)return Wn.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},d,Wn.default.createElement(je,{testId:"project-explorations-empty"},Wn.default.createElement("p",{style:{margin:0,fontSize:14,color:"var(--color-text-secondary)"}},"No explorations yet. Explore the app above, or have an agent that explores it, such as a coding agent driving a browser, submit the questions it found with the explorations_submit MCP tool. They are reviewed here before any reaches the evaluation.")));let p=a||n[0].id;return Wn.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"project-explorations"},d,Wn.default.createElement(Cf,{explorations:n,selectedId:p,onOpen:f=>i(f.id)}),Wn.default.createElement("div",{style:{display:"flex",justifyContent:"flex-end"}},Wn.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(xA(p))},"Open on its own page")),Wn.default.createElement(Ef,{key:p,explorationId:p,onLoaded:()=>u().catch(()=>{})}))}var dr=Z(Q());var oAe={text:"question",choice:"choice",confirm:"approval",secret:"secret"};async function Gee(e){return e.json().catch(()=>({}))}function fj({projectId:e,setupAgentId:t,version:r,onSettled:n}){let[o,a]=(0,dr.useState)(null),[i,s]=(0,dr.useState)(null),l=(0,dr.useCallback)(async()=>{let c=await fetch(`/api/projects/${e}/input_requests`),d=await Gee(c);if(!c.ok)throw new Error(at(d,`Could not list what the project is waiting for (HTTP ${c.status}).`));a(d.input_requests||[])},[e]);(0,dr.useEffect)(()=>{l().catch(c=>s(c.message))},[l,r]);let u=async(c,d,p)=>{let f=await fetch(`/api/input_requests/${c.id}/${d}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(p||{})}),m=await Gee(f);if(!f.ok)throw new Error(at(m,`Could not send the answer (HTTP ${f.status}).`));await l(),n?.()};return!o?.length&&!i?null:dr.default.createElement(Zr,{title:"Waiting for you",meta:`${o?.length||0}`,testId:"project-input-requests"},i&&dr.default.createElement("div",{style:{padding:"8px 12px",fontSize:13,color:"var(--color-error-text)"}},i),(o||[]).map(c=>dr.default.createElement(aAe,{key:c.id,request:c,onSettle:u,storesProjectSecret:t!=null&&c.agent?.id===t})))}function aAe({request:e,onSettle:t,storesProjectSecret:r}){let[n,o]=(0,dr.useState)(""),[a,i]=(0,dr.useState)(!1),[s,l]=(0,dr.useState)(null),u=async(c,d)=>{i(!0),l(null);try{await t(e,c,d),o("")}catch(p){l(p.message)}finally{i(!1)}};return dr.default.createElement(iAe,{request:e,storesProjectSecret:r,value:n,onChange:o,busy:a,error:s,onAnswer:c=>u("answer",pee(e,c)),onDecline:()=>u("decline")})}function iAe({request:e,storesProjectSecret:t,value:r,onChange:n,busy:o,error:a,onAnswer:i,onDecline:s}){let l=dee(e,r),u=`project-answer-${e.id}`;return dr.default.createElement("form",{"data-testid":`project-input-request-${e.id}`,style:{padding:"10px 12px",borderTop:"1px solid var(--color-border-light)",display:"flex",flexDirection:"column",gap:8},onSubmit:c=>{c.preventDefault(),e.kind!=="confirm"&&!l&&i(r)}},dr.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},dr.default.createElement(ke,{tone:e.kind==="secret"?"warning":"info"},oAe[e.kind]||e.kind),dr.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-muted)"}},e.agent?.name||"An agent"," asks",e.actor?.name?`, for ${e.actor.name}`:""),dr.default.createElement("span",{style:{marginLeft:"auto",fontFamily:W,fontSize:11,color:"var(--color-text-muted)"}},"run ",e.run_id)),dr.default.createElement("label",{htmlFor:u,style:{fontSize:14,color:"var(--color-text-primary)",whiteSpace:"pre-wrap"}},e.prompt),e.kind==="choice"&&dr.default.createElement("select",{id:u,value:r,onChange:c=>n(c.target.value),disabled:o,style:{padding:"6px 8px",borderRadius:6,border:"1px solid var(--color-border-strong)",background:"var(--color-card)",color:"var(--color-text-primary)"}},dr.default.createElement("option",{value:""},"Choose\u2026"),X3(e).map(c=>dr.default.createElement("option",{key:c.value,value:c.value},c.label))),(e.kind==="text"||e.kind==="secret")&&dr.default.createElement("input",{id:u,type:e.kind==="secret"?"password":"text",autoComplete:e.kind==="secret"?"new-password":"off","data-aa-secret":e.kind==="secret"?"":void 0,value:r,onChange:c=>n(c.target.value),disabled:o,style:{padding:"6px 8px",borderRadius:6,border:"1px solid var(--color-border-strong)",background:"var(--color-card)",color:"var(--color-text-primary)",fontFamily:e.kind==="secret"?W:"inherit"}}),e.kind==="secret"&&dr.default.createElement("p",{style:{margin:0,fontSize:12,color:"var(--color-text-secondary)"}},t?"The assistant never sees this value: it is stored as one of the project's secrets.":"The agent never sees this value."),dr.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center"}},e.kind==="confirm"?dr.default.createElement(dr.default.Fragment,null,dr.default.createElement(ce,{variant:"primary",size:"sm",onClick:()=>i(!0),disabled:o},"Approve"),dr.default.createElement(ce,{size:"sm",onClick:()=>i(!1),disabled:o},"Decline")):dr.default.createElement(dr.default.Fragment,null,dr.default.createElement(ce,{variant:"primary",size:"sm",type:"submit",disabled:o||!!l},o?"Sending\u2026":"Answer"),dr.default.createElement(ce,{size:"sm",onClick:s,disabled:o},"Decline"),r&&l&&dr.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},l))),a&&dr.default.createElement("div",{style:{fontSize:12,color:"var(--color-error-text)"}},a))}var Ft=Z(Q());async function wA(e){return e.json().catch(()=>({}))}function mj({project:e,onProjectChanged:t,onConfirmationRequired:r}){let n=`/api/projects/${e.id}/install_pull_request`,[o,a]=(0,Ft.useState)(null),[i,s]=(0,Ft.useState)(null),[l,u]=(0,Ft.useState)(null),[c,d]=(0,Ft.useState)(0),[p,f]=(0,Ft.useState)(!1),m=(0,Ft.useCallback)(async()=>{let g=await fetch(n),h=await wA(g);if(!g.ok)throw new Error(at(h,`Could not read the install pull request (HTTP ${g.status}).`));return h},[n]);(0,Ft.useEffect)(()=>{let g=!1,h=null,v=async()=>{try{let x=await m();if(g)return;a(x),s(null),x.project&&t?.(x.project);let S=See(x.pull_request);S&&(h=setTimeout(v,S))}catch(x){g||s(x.message)}};return v(),()=>{g=!0,clearTimeout(h)}},[m,c]);let y=async g=>{f(!0),s(null);try{let h=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(g?{regular:!0}:{open:!0})}),v=await wA(h);if(!h.ok)throw new Error(at(v,`Could not open the pull request (HTTP ${h.status}).`));d(x=>x+1)}catch(h){s(h.message)}finally{f(!1)}},b=o?.pull_request||null;return e.install_state==="installed"&&!b?null:Ft.default.createElement(Ft.default.Fragment,null,Ft.default.createElement(sAe,{project:e,pullRequest:b,publishing:o?.publishing,allowlist:o?.allowlist||[],error:i,opening:p,onOpenDialog:u,onOpenBranch:y}),l&&Ft.default.createElement(lAe,{project:e,base:n,pullRequest:b,mode:l,onConfirmationRequired:r,onClose:()=>u(null),onPublished:()=>{u(null),d(g=>g+1)}}))}function sAe({project:e,pullRequest:t,publishing:r,allowlist:n,error:o,opening:a,onOpenDialog:i,onOpenBranch:s}){let{label:l,tone:u}=wee(t),{canOpen:c,canUpdate:d,openBranch:p}=kee(t);return Ft.default.createElement(je,{testId:"project-install-pull-request"},Ft.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Ft.default.createElement(Ue,null,"Install pull request"),Ft.default.createElement(ke,{tone:u},l),t?.url&&Ft.default.createElement("a",{href:t.url,target:"_blank",rel:"noopener noreferrer",style:{fontSize:13,color:"var(--color-info)"}},"#",t.number),Ft.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:8}},d&&Ft.default.createElement(ce,{size:"sm",onClick:()=>i("update")},"Update draft PR"),c&&e.install_state!=="installed"&&Ft.default.createElement(ce,{size:"sm",variant:"primary",onClick:()=>i("create"),testId:"open-install-pr"},"Open install PR"),p&&Ft.default.createElement(ce,{size:"sm",onClick:()=>s(p==="regular"),disabled:a,testId:"open-install-branch"},a?"Opening\u2026":p==="regular"?"Open as a regular pull request":"Open the draft PR again"))),Ft.default.createElement("p",{style:{margin:"8px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},e.install_state==="installed"?"The pull request merged: the repository bundles the engine, and boots its own branch.":"Publishes what the sandbox installed as a draft pull request, from this dashboard, after you check the exact diff. Once it exists, every boot checks its branch out."),t?.branch&&Ft.default.createElement("p",{style:{margin:"4px 0 0",fontFamily:W,fontSize:12,color:"var(--color-text-muted)"}},t.branch,t.base_branch?` \u2192 ${t.base_branch}`:""),t?.status==="failed"&&t.error_message&&Ft.default.createElement("p",{style:{margin:"6px 0 0",fontSize:12,color:"var(--color-error-text)"}},t.error_message),r&&!r.available&&r.live&&Ft.default.createElement("p",{style:{margin:"6px 0 0",fontSize:12,color:"var(--color-text-secondary)"}},r.refusal),n.length>0&&Ft.default.createElement("details",{style:{marginTop:6}},Ft.default.createElement("summary",{style:{cursor:"pointer",fontSize:12,color:"var(--color-text-secondary)"}},"What it may publish"),Ft.default.createElement("ul",{style:{margin:"4px 0 0",paddingLeft:18,fontFamily:W,fontSize:12,color:"var(--color-text-secondary)"}},n.map(f=>Ft.default.createElement("li",{key:f},f)))),o&&Ft.default.createElement("p",{style:{margin:"6px 0 0",fontSize:12,color:"var(--color-error-text)"}},o))}function lAe({project:e,base:t,pullRequest:r,mode:n,onConfirmationRequired:o,onClose:a,onPublished:i}){let s=n==="update",[l,u]=(0,Ft.useState)(null),[c,d]=(0,Ft.useState)(null),[p,f]=(0,Ft.useState)(!0),[m,y]=(0,Ft.useState)(null),[b,g]=(0,Ft.useState)(new Set),[h,v]=(0,Ft.useState)(s?r?.title||"":"Install ActiveAgent"),[x,S]=(0,Ft.useState)(""),[k,w]=(0,Ft.useState)(s&&r?.branch||""),[_,A]=(0,Ft.useState)(P2),[C,N]=(0,Ft.useState)(!1),[L,J]=(0,Ft.useState)(0);(0,Ft.useEffect)(()=>{let K=!1,T=null;f(!0);let P=async(I=!1)=>{try{let M=await fetch(`${t}/preview`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(I?{confirm:!0}:{})}),j=await wA(M);if(K)return;if(M.status===409&&j.code==="confirmation_required"){o?.(j.confirmation,()=>P(!0));return}if(M.status===202){y(j.error),T=setTimeout(()=>P(),3e3);return}if(!M.ok)throw new Error(at(j,`Could not read the sandbox's changes (HTTP ${M.status}).`));y(null),u(j.preview),d(j.publishing),g(I2(j.preview.files)),w(O=>O||j.preview.suggested_branch||""),f(!1)}catch(M){K||(y(M.message),f(!1))}};return P(),()=>{K=!0,clearTimeout(T)}},[t,L]);let B=async()=>{N(!0),y(null);try{let K=j2({files:l?.files,selection:b,title:h,body:x,branch:k,message:_,update:s}),T=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(K)}),P=await wA(T);if(!T.ok)throw M2(P.code)&&J(I=>I+1),new Error(at(P,`Could not publish (HTTP ${T.status}).`));i(P.pull_request)}catch(K){y(K.message)}finally{N(!1)}};return Ft.default.createElement(kD,{sandbox:{repository:e.repository,repository_ref:e.sandbox?.repository_ref||e.checkout_ref||"its default branch"},preview:l,loading:p,error:m,publishing:c,pullRequest:r,selection:b,onToggle:K=>g(T=>D2(T,K)),fields:{title:h,body:x,branch:k,message:_,allowlist:""},onField:(K,T)=>({title:v,body:S,branch:w,message:A})[K]?.(T),allowlistApplied:!1,mode:s?"update":"create",submitting:C,onSubmit:B,onCancel:a,patchHref:(K,T)=>_ee(e.id,K,T)})}var cn=Z(Q());var uAe={awaiting_input:"warning",running:"info",pending:"info",complete:"success",failed:"error"},cAe={progress:"info",success:"success",error:"error",neutral:"muted"};function gj({project:e,busy:t,onAsk:r,onFixWithClaudeCode:n,onToggleAuto:o}){let a=e?.setup;if(!a)return null;let i=a.last_run,s=a.claude_code,l=s?.last_session;return cn.default.createElement(je,{testId:"project-setup"},cn.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},cn.default.createElement(Ue,null,"Setup"),cn.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:8,alignItems:"center"}},cn.default.createElement("label",{style:{display:"flex",gap:6,alignItems:"center",fontSize:12,color:"var(--color-text-secondary)"}},cn.default.createElement("input",{type:"checkbox",checked:a.auto!==!1,disabled:t,onChange:u=>o(u.target.checked)}),"Start it when a boot fails"))),s&&cn.default.createElement("div",{"data-testid":"project-setup-claude-code",style:{marginTop:10}},cn.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},cn.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},"Claude Code"),!s.available&&!l&&cn.default.createElement(ke,{tone:"muted"},"not used"),l&&cn.default.createElement(ke,{tone:cAe[ms(l.status).tone]||"muted"},ms(l.status).label),J3(e)&&n&&cn.default.createElement(ce,{size:"sm",variant:"primary",onClick:n,disabled:t,testId:"fix-with-claude-code",style:{marginLeft:"auto"}},"Fix the boot with Claude Code")),cn.default.createElement("p",{"data-testid":"claude-code-status",style:{margin:"4px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},hee(e)),l?.id&&cn.default.createElement("a",{href:Re(gs(l.id)),onClick:u=>{u.preventDefault(),lt(gs(l.id))},"data-testid":"boot-fix-conversation",style:{display:"inline-block",marginTop:4,fontSize:12,color:"var(--color-accent-ui)"}},"Ask Claude Code about this fix \u2192"),l?.sandbox_session_id&&cn.default.createElement(b0,{sandbox:{session_id:l.sandbox_session_id},readOnly:!0,focusSessionId:l.id,title:`Claude Code on ${s.failed_step||"the boot"}`})),cn.default.createElement("div",{style:{marginTop:12}},cn.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},cn.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},"Setup assistant"),!a.available&&cn.default.createElement(ke,{tone:"muted"},"unavailable"),i&&cn.default.createElement(ke,{tone:uAe[i.status]||"muted"},i.status.replace("_"," ")),cn.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:8,alignItems:"center"}},a.agent_id&&i&&cn.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(`/agents/${a.agent_id}/interactions`)},"Open its runs"),yee(e)&&cn.default.createElement(ce,{size:"sm",variant:J3(e)?"secondary":"primary",onClick:r,disabled:t,testId:"ask-setup-assistant"},"Ask the setup assistant"))),cn.default.createElement("p",{style:{margin:"4px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},fee(a),!a.available&&" Set the variables the boot needs in the Environment tab.",a.available&&s?.available&&" Claude Code goes first when a boot fails; the setup assistant is the fallback."),cn.default.createElement("p",{style:{margin:"4px 0 0",fontSize:12,color:"var(--color-text-muted)"}},"It reads the failed step's log, sets variables that are not secret, asks you for secrets, and retries the boot. It runs no commands and reads no files.")))}var Yee="/settings?tab=integrations",dAe={ready:"success",booting:"info",failed:"error",expired:"muted",none:"muted"},pAe={installed:"bundles the engine",detected:"installs the engine in the sandbox",bootstrapped:"engine installed in the sandbox"};async function Zs(e){return e.json().catch(()=>({}))}function hj({projectId:e,onBack:t,onDeleted:r}){let[n,o]=(0,Ve.useState)(null),[a,i]=(0,Ve.useState)(null),[s,l]=(0,Ve.useState)([]),[u,c]=(0,Ve.useState)(()=>YR(window.location.search)),[d,p]=(0,Ve.useState)(!1),[f,m]=(0,Ve.useState)(null),[y,b]=(0,Ve.useState)(null),[g,h]=(0,Ve.useState)(null),[v,x]=(0,Ve.useState)(!1),[S,k]=(0,Ve.useState)(null),[w,_]=(0,Ve.useState)(null),[A,C]=(0,Ve.useState)(null),N=(0,Ve.useCallback)(async()=>{let Y=await fetch(`/api/projects/${e}/boot`),E=await Zs(Y);if(!Y.ok)throw new Error(at(E,`Could not load the project (HTTP ${Y.status}).`));o(E.project),i(E)},[e]),L=(0,Ve.useCallback)(async()=>{let Y=await fetch(`/api/projects/${e}/secrets`),E=await Zs(Y);if(!Y.ok)throw new Error(at(E,`Could not list the project's secrets (HTTP ${Y.status}).`));l(E.secrets||[])},[e]);(0,Ve.useEffect)(()=>{N().catch(Y=>m(Y.message)),L().catch(Y=>b(Y.message))},[N,L]);let J=Y=>{c(Y),Y!=="browser"&&p(!1);let{pathname:E,search:$}=window.location;window.history.replaceState(window.history.state,"",`${E}${XR($,Y)}`)},B=n?.sandbox_state==="failed",[K,T]=(0,Ve.useState)(null);(0,Ve.useEffect)(()=>{T(B?Date.now():null)},[B,n?.sandbox?.session_id]);let P=VR(n),I=P||mee(n)||gee(n,K);(0,Ve.useEffect)(()=>{if(!I)return;let Y=setTimeout(()=>N().catch(E=>m(E.message)),zR);return()=>clearTimeout(Y)},[I,a,N]);let M=n?.sandbox?.session_id;$h("SandboxChannel",{session_id:M},Y=>{Lh(Y)&&N().catch(()=>{})},!!M);let j=async(Y,{confirm:E=!1,onDone:$}={})=>{x(!0),m(null);try{let ee=await fetch(Y,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(E?{confirm:!0}:{})}),U=await Zs(ee);if(ee.status===409&&U.code==="confirmation_required")return h({question:U.confirmation,retry:()=>j(Y,{confirm:!0,onDone:$})}),null;if(!ee.ok)throw new Error(at(U,`The request failed (HTTP ${ee.status}).`));return h(null),U.project&&o(U.project),await N(),$?.(U),U}catch(ee){return m(ee.message),null}finally{x(!1)}},O=()=>j(`/api/projects/${e}/run_evaluation`,{onDone:Y=>{Y.run&&k(Y.run)}}),F=(Y,E)=>h({question:Y,retry:E}),V=async(Y,E,$="setup")=>{x(!0),m(null);try{let ee=await fetch(`/api/projects/${e}/${$}`,{method:Y,headers:{"Content-Type":"application/json"},body:JSON.stringify(E||{})}),U=await Zs(ee);if(!ee.ok)throw new Error(at(U,`The setup request failed (HTTP ${ee.status}).`));U.project&&o(U.project),await N()}catch(ee){m(ee.message)}finally{x(!1)}},z=async()=>{m(null);let Y=await fetch(`/api/projects/${e}/synced_agents`),E=await Zs(Y);if(!Y.ok){m(at(E,`Could not list the checkout's agents (HTTP ${Y.status}).`));return}_(E.synced_agents||[])},G=async Y=>{x(!0);try{let E=await fetch(`/api/projects/${e}/target`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(Y)}),$=await Zs(E);if(!E.ok)throw new Error(at($,`Could not choose the agent (HTTP ${E.status}).`));o($.project),_(null)}catch(E){m(E.message)}finally{x(!1)}},q=async Y=>{b(null);let E=await fetch(`/api/projects/${e}/secrets`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({secrets:Y})}),$=await Zs(E);return E.ok?(l($.secrets||[]),!0):(b(at($,`Could not save the secrets (HTTP ${E.status}).`)),!1)},oe=async(Y,E)=>{b(null);let $=await fetch(`/api/projects/${e}/secrets/${encodeURIComponent(Y)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({value:E})}),ee=await Zs($);if(!$.ok){let U=at(ee,`Could not replace ${Y} (HTTP ${$.status}).`);throw b(U),new Error(U)}await L()},Me=async Y=>{b(null);let E=await fetch(`/api/projects/${e}/secrets/${encodeURIComponent(Y)}`,{method:"DELETE"});if(!E.ok){b(at(await Zs(E),`Could not delete ${Y} (HTTP ${E.status}).`));return}await L()},fe=async()=>{b(null);let Y=`repository=${encodeURIComponent(n.repository)}&project_id=${e}${n.default_ref?`&ref=${encodeURIComponent(n.default_ref)}`:""}`,E=await fetch(`/api/projects/discover_secrets?${Y}`),$=await Zs(E);if(!E.ok){b(at($,`Could not read the repository's environment variables (HTTP ${E.status}).`));return}C(sb($.variables||[],s))},le=async()=>{if(!await Wr({title:`Delete ${n.name}?`,message:"Its secrets, agent and evaluation are deleted, and its sandbox is stopped. This cannot be undone.",confirmLabel:"Delete project",danger:!0,requireText:n.name}))return;let Y=await fetch(`/api/projects/${e}`,{method:"DELETE"});Y.ok?r():m(at(await Zs(Y),`Could not delete the project (HTTP ${Y.status}).`))};if(!n)return f?Ve.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},f):Ve.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Loading the project\u2026");let R=a?.browser_modes||[],te=ZR(n,R),He=Y=>{Y&&p(!0),J("browser")},_e=n.target_agent,D=!_e&&n.install_state==="installed";return Ve.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"project-detail"},Ve.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:16,flexWrap:"wrap"}},Ve.default.createElement("div",{style:{flex:1,minWidth:260}},Ve.default.createElement(ce,{size:"sm",variant:"ghost",onClick:t,style:{padding:0}},"\u2190 Projects"),Ve.default.createElement("h1",{style:{margin:"4px 0 0",fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},n.name),Ve.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",marginTop:4,flexWrap:"wrap"}},Ve.default.createElement("span",{style:{fontFamily:W,fontSize:13,color:"var(--color-text-secondary)"}},n.repository,n.default_ref?`@${n.default_ref}`:""),Ve.default.createElement(ke,{tone:dAe[n.sandbox_state]||"muted"},"sandbox ",n.sandbox_state),Ve.default.createElement(ke,{tone:fA[n.install_state==="installed"?"supported":"bootstrap"]},pAe[n.install_state]),Ve.default.createElement(Gr,{href:Re(Yee),onClick:()=>lt(Yee),title:"Every sandbox and browser, in Settings \u2192 Integrations"},"Manage runtimes"))),Ve.default.createElement("div",{style:{display:"flex",gap:8}},Ve.default.createElement(ce,{onClick:()=>j(`/api/projects/${e}/boot`),disabled:v||P,testId:"boot-project"},n.sandbox_state==="ready"?"Sandbox running":P?"Booting\u2026":"Boot sandbox"),te&&Ve.default.createElement(ce,{onClick:()=>He(te.watch),testId:"project-watch-live"},te.label),Ve.default.createElement(ce,{variant:"primary",onClick:()=>O(),disabled:v||!_e,testId:"run-project-evaluation",title:_e?"Boots the sandbox first when it is not running":"Choose the agent to evaluate first"},"Run evaluation"))),g&&Ve.default.createElement(je,{testId:"local-boot-confirmation",style:{borderColor:"var(--color-warning)"}},Ve.default.createElement("p",{style:{margin:0,fontSize:14,color:"var(--color-text-primary)"}},g.question),Ve.default.createElement("div",{style:{display:"flex",gap:8,marginTop:10}},Ve.default.createElement(ce,{variant:"primary",onClick:()=>{let{retry:Y}=g;h(null),Y?.()},disabled:v},"Run it on this machine"),Ve.default.createElement(ce,{onClick:()=>h(null)},"Cancel"))),f&&Ve.default.createElement("div",{style:{padding:"10px 12px",borderRadius:8,fontSize:13,background:"var(--color-error-soft)",color:"var(--color-error-text)"}},f),Ve.default.createElement(Ka,{options:[{value:"overview",label:"Overview"},{value:"explorations",label:"Explorations"},{value:"environment",label:`Environment (${cj(s).length})`},...R.length>0||u==="browser"?[{value:"browser",label:n.sandbox?.browser?.status==="running"?"Browser \xB7 live":"Browser"}]:[],{value:"sessions",label:"Sessions"}],value:u,onChange:J}),u==="overview"&&Ve.default.createElement(Ve.default.Fragment,null,Ve.default.createElement(ej,{boot:a?.boot,logTail:a?.log_tail,error:a?.error,sandboxState:n.sandbox_state,waiting:n.pending_input_requests}),Ve.default.createElement(fj,{projectId:e,setupAgentId:n.setup?.agent_id,version:`${n.pending_input_requests}:${n.setup?.last_run?.id}:${n.setup?.last_run?.status}`,onSettled:()=>N().catch(()=>{})}),Ve.default.createElement(gj,{project:n,busy:v,onAsk:()=>V("POST"),onFixWithClaudeCode:()=>V("POST",null,"setup/claude_code"),onToggleAuto:Y=>V("PATCH",{auto:Y})}),Ve.default.createElement(je,null,Ve.default.createElement(Ue,null,"Agent under evaluation"),_e&&Ve.default.createElement("div",{style:{marginTop:8,display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},Ve.default.createElement("span",{style:{fontSize:14,fontWeight:600,color:"var(--color-text-primary)"}},_e.name),Ve.default.createElement(ke,{tone:"accent"},_e.kind==="app_assistant"?"App assistant":`synced agent ${_e.synced_agent}`),Ve.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(`/agents/${_e.id}/edit`)},"Open agent"),n.evaluation&&Ve.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(`/evaluations/${n.evaluation.id}`)},"Open evaluation"),n.install_state==="installed"&&Ve.default.createElement(ce,{size:"sm",onClick:z},"Change")),D&&!w&&Ve.default.createElement("div",{style:{marginTop:8,fontSize:13,color:"var(--color-text-secondary)"}},"This repository has its own agents. Boot the sandbox, then pick the one to evaluate.",Ve.default.createElement("div",{style:{marginTop:8}},Ve.default.createElement(ce,{size:"sm",onClick:z,disabled:n.sandbox_state!=="ready"},"List the checkout's agents"))),w&&Ve.default.createElement("ul",{style:{listStyle:"none",margin:"8px 0 0",padding:0},"data-testid":"synced-agents"},w.length===0&&Ve.default.createElement("li",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"The sandbox serves no agents."),w.map(Y=>Ve.default.createElement("li",{key:Y.slug,style:{display:"flex",gap:8,alignItems:"center",padding:"6px 0"}},Ve.default.createElement("span",{style:{fontFamily:W,fontSize:13}},Y.tool),Ve.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)",flex:1}},Y.description),Ve.default.createElement(ce,{size:"sm",onClick:()=>G({synced_agent:Y.slug}),disabled:v},"Evaluate this agent")))),S&&Ve.default.createElement("div",{"data-testid":"project-run",style:{marginTop:10,fontSize:13,color:"var(--color-text-secondary)"}},"Run ",S.id," is ",S.status,P?": it starts once the sandbox is ready":"","."," ",Ve.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(`/evaluations/${S.evaluation_id}/runs/${S.id}`)},"Open run"))),_e?.kind==="app_assistant"&&Ve.default.createElement(R3,{project:n,onSaved:Y=>{Y&&o(Y),N().catch(()=>{})},onConfirmationRequired:F}),Ve.default.createElement(mj,{project:n,onProjectChanged:Y=>o(E=>E&&Y.install_state!==E.install_state?Y:E),onConfirmationRequired:F}),Ve.default.createElement("div",null,Ve.default.createElement(ce,{variant:"danger",size:"sm",onClick:le},"Delete project"))),u==="explorations"&&Ve.default.createElement(pj,{projectId:e,project:n}),u==="browser"&&Ve.default.createElement(tj,{project:n,modes:R,watchOnOpen:d,onChange:()=>N().catch(()=>{})}),u==="sessions"&&Ve.default.createElement(Y3,{project:n}),u==="environment"&&Ve.default.createElement(Ve.default.Fragment,null,Ve.default.createElement(rj,{secrets:cj(s),onReplace:oe,onDelete:Me,error:y}),A?Ve.default.createElement(je,null,Ve.default.createElement(Ue,null,"Add secrets"),Ve.default.createElement("div",{style:{marginTop:8}},Ve.default.createElement(cb,{rows:A,onChange:C,repository:n.repository})),Ve.default.createElement("div",{style:{display:"flex",gap:8,marginTop:12,alignItems:"center"}},Ve.default.createElement(ce,{variant:"primary",disabled:!!Uh(A)||lb(A).length===0,onClick:async()=>{await q(lb(A))&&C(null)}},"Save secrets"),Ve.default.createElement(ce,{onClick:()=>C(null)},"Cancel"),Uh(A)&&Ve.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-secondary)"}},Uh(A)))):Ve.default.createElement("div",null,Ve.default.createElement(ce,{size:"sm",onClick:fe},"Add secrets"))))}var ga=Z(Q());var fAe={ready:"success",booting:"info",failed:"error",expired:"muted",none:"muted"};function yj({projects:e,onOpen:t,onNew:r}){return ga.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"project-list"},ga.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:16}},ga.default.createElement("div",{style:{flex:1}},ga.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Projects"),ga.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)"}},"A repository booted in a sandbox, with the secrets it needs and an agent evaluated against the running app.")),ga.default.createElement(ce,{variant:"primary",onClick:r,testId:"new-project-button"},"New project")),e.length===0&&ga.default.createElement(je,null,ga.default.createElement("p",{style:{margin:0,fontSize:14,color:"var(--color-text-secondary)"}},"No projects yet. Pick a repository to boot it in a sandbox, even one that does not use ActiveAgent.")),e.map(n=>ga.default.createElement(je,{key:n.id,padding:14,testId:`project-${n.id}`},ga.default.createElement("button",{type:"button",onClick:()=>t(n),style:{all:"unset",cursor:"pointer",display:"flex",gap:10,alignItems:"center",width:"100%",flexWrap:"wrap"}},ga.default.createElement("span",{style:{fontSize:15,fontWeight:600,color:"var(--color-text-primary)"}},n.name),ga.default.createElement("span",{style:{fontFamily:W,fontSize:12,color:"var(--color-text-muted)"}},n.repository),ga.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:6}},ga.default.createElement(ke,{tone:fAe[n.sandbox_state]||"muted"},"sandbox ",n.sandbox_state),n.target_agent&&ga.default.createElement(ke,{tone:"accent"},n.target_agent.kind==="app_assistant"?"App assistant":n.target_agent.synced_agent))))))}function vj({visit:e=0}){let[t,r]=(0,ha.useState)(()=>ub(Rn())),[n,o]=(0,ha.useState)(null),[a,i]=(0,ha.useState)(null);(0,ha.useEffect)(()=>{r(ub(Rn()))},[e]),(0,ha.useEffect)(()=>{let u=()=>r(ub(Rn()));return window.addEventListener("popstate",u),window.addEventListener("dashboard:navigate",u),()=>{window.removeEventListener("popstate",u),window.removeEventListener("dashboard:navigate",u)}},[]);let s=(0,ha.useCallback)(async()=>{try{let u=await fetch("/api/projects"),c=await u.json().catch(()=>({}));if(!u.ok)throw new Error(at(c,`Could not list projects (HTTP ${u.status}).`));o(c.projects||[])}catch(u){i(u.message)}},[]);(0,ha.useEffect)(()=>{!t.creating&&!t.projectId&&s()},[t,s]);let l=u=>{id(u),r(ub(u))};return t.creating?ha.default.createElement(G3,{onCreated:u=>l(Sf(u.id)),onCancel:()=>l("/projects")}):t.projectId?ha.default.createElement(hj,{key:t.projectId,projectId:t.projectId,onBack:()=>l("/projects"),onDeleted:()=>l("/projects")}):a?ha.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},a):n?ha.default.createElement(yj,{projects:n,onOpen:u=>l(Sf(u.id)),onNew:()=>l(Sf(null))}):ha.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Loading projects\u2026")}var Yr=Z(Q());function xj({visit:e=0}){let[t,r]=(0,Yr.useState)(()=>bA(Rn())),[n,o]=(0,Yr.useState)(null),[a,i]=(0,Yr.useState)(null),[s,l]=(0,Yr.useState)(null);(0,Yr.useEffect)(()=>{r(bA(Rn()))},[e]),(0,Yr.useEffect)(()=>{let c=()=>r(bA(Rn()));return window.addEventListener("popstate",c),window.addEventListener("dashboard:navigate",c),()=>{window.removeEventListener("popstate",c),window.removeEventListener("dashboard:navigate",c)}},[]);let u=(0,Yr.useCallback)(async()=>{try{let c=await fetch("/api/explorations"),d=await c.json().catch(()=>({}));if(!c.ok)throw new Error(at(d,`Could not list explorations (HTTP ${c.status}).`));o(d.explorations||[])}catch(c){l(c.message)}},[]);if((0,Yr.useEffect)(()=>{t.explorationId||u()},[t,u]),t.explorationId){let c=a?.project,d=a?.evaluation;return Yr.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12}},Yr.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},c?Yr.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(Sf(c.id)),style:{padding:0}},"\u2190 ",c.name):Yr.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt("/explorations"),style:{padding:0}},"\u2190 Explorations"),!c&&d&&Yr.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>lt(`/evaluations/${d.id}`)},"Open ",d.name)),Yr.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Review candidate scenarios"),Yr.default.createElement(Ef,{key:t.explorationId,explorationId:t.explorationId,onLoaded:i}))}return Yr.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},Yr.default.createElement("div",null,Yr.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Explorations"),Yr.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)"}},"Questions found by walking an app, waiting to be reviewed and accepted into an evaluation.")),s&&Yr.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},s),!s&&!n&&Yr.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)"}},"Loading explorations\u2026"),n?.length===0&&Yr.default.createElement(je,null,Yr.default.createElement("p",{style:{margin:0,fontSize:14,color:"var(--color-text-secondary)"}},"No explorations yet. An agent that explores a project's app submits what it found with the explorations_submit MCP tool.")),n?.length>0&&Yr.default.createElement(Cf,{explorations:n,onOpen:c=>lt(xA(c.id))}))}var xt=Z(Q());var he=Z(Q());var oi=Z(Q());var bj=e=>({padding:"6px 8px",borderRadius:6,border:"1px solid var(--color-border)",background:"var(--color-surface)",color:"var(--color-text-primary)",fontSize:13,fontFamily:e?W:void 0}),Xee={display:"flex",flexDirection:"column",gap:4,fontSize:12,color:"var(--color-text-secondary)"},Zee=e=>typeof e=="string"?e:void 0;function Sn({label:e,value:t,onChange:r,placeholder:n,mono:o=!1,multiline:a=!1,rows:i=3,testId:s}){let l=(0,oi.useId)(),u={id:l,value:t,onChange:c=>r(c.target.value),placeholder:n,"aria-label":Zee(e),"data-testid":s};return oi.default.createElement("div",{style:Xee},oi.default.createElement("label",{htmlFor:l},e),a?oi.default.createElement("textarea",{...u,rows:i,style:{...bj(o),resize:"vertical"}}):oi.default.createElement("input",{...u,style:bj(o)}))}function bd({label:e,value:t,onChange:r,children:n,testId:o}){let a=(0,oi.useId)();return oi.default.createElement("div",{style:Xee},oi.default.createElement("label",{htmlFor:a},e),oi.default.createElement("select",{id:a,value:t,onChange:i=>r(i.target.value),"aria-label":Zee(e),style:bj(!1),"data-testid":o},n))}function pb({label:e,checked:t,onChange:r}){return oi.default.createElement("label",{style:{display:"inline-flex",gap:6,alignItems:"center",fontSize:12,color:"var(--color-text-secondary)"}},oi.default.createElement("input",{type:"checkbox",checked:t,onChange:n=>r(n.target.checked)}),e)}function ya({tone:e="info",children:t}){let r=e==="error";return oi.default.createElement("div",{role:r?"alert":"status",style:{fontSize:13,padding:"8px 10px",borderRadius:8,background:r?"var(--color-error-soft)":"transparent",color:r?"var(--color-error-text)":"var(--color-text-secondary)",border:r?"none":"1px solid var(--color-border)"}},t)}async function eo(e,{method:t="GET",body:r,fallback:n="The request failed"}={}){let o={method:t};r!==void 0&&(o.headers={"Content-Type":"application/json"},o.body=JSON.stringify(r));let a=await fetch(e,o),i=await a.json().catch(()=>({}));if(!a.ok)throw new Error(at(i,`${n} (HTTP ${a.status}).`));return i}async function Jee(e){let t=await fetch(e);if(!t.ok)throw new Error(`The export failed (HTTP ${t.status}).`);return t.text()}var mAe=["collections","generate","import"],gAe=/^\/(?:scenarios|catalogs)(?:\/(\d+|generate|import))?\/?$/;function wj(e=""){let r=String(e).match(gAe)?.[1];return r?/^\d+$/.test(r)?{tab:"collections",collectionId:Number(r)}:{tab:r,collectionId:null}:{tab:"collections",collectionId:null}}function Qee({tab:e="collections",collectionId:t=null}={}){return t?`/scenarios/${t}`:e==="collections"||!mAe.includes(e)?"/scenarios":`/scenarios/${e}`}function Sj(e,{productIds:t=[],setIds:r=[],scenarioIds:n=[]}={},{inline:o=!1}={}){let a=new URLSearchParams;t.length&&a.set("product_ids",t.join(",")),r.length&&a.set("set_ids",r.join(",")),n.length&&a.set("scenario_ids",n.join(",")),o&&a.set("disposition","inline");let i=a.toString();return`/api/scenario_catalogs/${e}/export${i?`?${i}`:""}`}function SA(e){let t=String(e??"").split(/[,\n]/).map(r=>r.trim()).filter(Boolean);return[...new Set(t)]}function Ree(e={}){let t=e.expectations||{};return{key:e.key||"",prompt:e.prompt||"",notes:e.notes||"",tools:(t.tools||[]).join(", "),contains:(t.contains||[]).join(", "),notContains:(t.not_contains||[]).join(", "),tags:(e.tags||[]).join(", "),productionOnly:!!e.production_only,enabled:e.enabled!==!1}}function ete(e){return{scenario:{key:e.key.trim(),prompt:e.prompt.trim(),notes:e.notes.trim(),expect:{tools:SA(e.tools),contains:SA(e.contains),not_contains:SA(e.notContains)},tags:SA(e.tags),production_only:e.productionOnly,enabled:e.enabled}}}function tte(e){return e.prompt.trim()?e.key.trim()&&!/^[^\s]+$/.test(e.key.trim())?"A key has no spaces.":null:"A scenario needs a prompt."}function rte(e={}){let t=[];return e.tools?.length&&t.push(`tools ${e.tools.join(", ")}`),e.contains?.length&&t.push(`contains ${e.contains.join(", ")}`),e.not_contains?.length&&t.push(`never ${e.not_contains.join(", ")}`),t.join(" \xB7 ")}var hAe=["create","update","remove","keep"],yAe={create:"New",update:"Overwritten",remove:"Removed",keep:"Kept (not in the document)"};function nte(e){let t=e?.changes||[];return hAe.map(r=>({action:r,label:yAe[r],changes:t.filter(n=>n.action===r)})).filter(r=>r.changes.length>0)}function ote(e){if(!e)return"";let t=e.counts||{},r=e.catalog?.action==="create"?"Creates":"Updates",n=[`${t.create||0} new`,`${t.update||0} overwritten`,e.mode==="merge"?`${t.keep||0} kept`:`${t.remove||0} removed`];return`${r} ${e.catalog?.key}: ${n.join(", ")} (${e.scenario_count} scenarios in the document).`}function ate(e=[]){return e.some(t=>(t.counts?.update||0)+(t.counts?.remove||0)>0)}function ite(e,t){return e.includes(t)?e.filter(r=>r!==t):[...e,t]}function kj({collectionId:e,agents:t,projects:r,storageAvailable:n,onBack:o,onChanged:a,onDeleted:i}){let[s,l]=(0,he.useState)(null),[u,c]=(0,he.useState)(null),[d,p]=(0,he.useState)(null),[f,m]=(0,he.useState)({productIds:[],setIds:[],scenarioIds:[]}),[y,b]=(0,he.useState)(!1),[g,h]=(0,he.useState)(!1),v=`/api/scenario_catalogs/${e}`,x=(0,he.useCallback)(async()=>{try{let N=await eo(v,{fallback:"Could not open the collection"});l(N.catalog),c(null)}catch(N){c(N.message)}},[v]);(0,he.useEffect)(()=>{x()},[x]);let S=async(N,L,J,B)=>{let K=await eo(`${v}${N}`,{method:L,body:J,fallback:B});return K.catalog?l(K.catalog):await x(),a?.(),K},k=async N=>{c(null),p(null);try{await N()}catch(L){c(L.message)}},w=f.productIds.length+f.setIds.length+f.scenarioIds.length,_=(N,L)=>m(J=>({...J,[N]:ite(J[N],L)})),A=N=>k(async()=>{let L=await Jee(Sj(e,N,{inline:!0})),J=await ud(L);p(J?"YAML copied.":"The browser refused the clipboard; use Download instead.")}),C=N=>window.open(Sj(e,N),"_blank");return s?he.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12},"data-testid":"scenario-collection"},he.default.createElement("div",null,he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:o,style:{padding:0}},"\u2190 Scenarios")),y?he.default.createElement(vAe,{collection:s,onCancel:()=>b(!1),onSave:async N=>{await S("","PATCH",{catalog:N},"Could not save the collection"),b(!1)}}):he.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:12,flexWrap:"wrap",alignItems:"flex-start"}},he.default.createElement("div",null,he.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},s.name),he.default.createElement("p",{style:{margin:"4px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},he.default.createElement("code",null,s.key),s.source_path?` \xB7 ${s.source_path}`:"",s.description?` \xB7 ${s.description}`:""),he.default.createElement("p",{style:{margin:"4px 0 0",fontSize:12,color:"var(--color-text-secondary)"}},s.scenario_count," scenarios \xB7 digest ",s.digest?s.digest.slice(0,12):"\u2014"," \xB7"," ",s.synced?"synced to storage":n?"not synced to storage":"Active Storage is off for this dashboard")),he.default.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap"}},he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>b(!0)},"Rename"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>C({}),testId:"scenarios-export-all"},"Export all"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>A({})},"Copy YAML"),n&&he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>k(async()=>{await S("/sync","POST",{direction:"push"},"Sync failed"),p("Written to storage.")})},"Write to storage"),he.default.createElement(ce,{size:"sm",variant:"danger",onClick:()=>k(async()=>{await Wr({title:`Delete the collection ${s.key}?`,message:"Its products, sets and scenarios are deleted. The evaluations its sets became stay, with their runs.",confirmLabel:"Delete collection",danger:!0,requireText:s.key})&&(await eo(v,{method:"DELETE",fallback:"Delete failed"}),i?.())})},"Delete"))),u&&he.default.createElement(ya,{tone:"error"},u),d&&he.default.createElement(ya,null,d),w>0&&he.default.createElement(je,{padding:12,testId:"scenarios-selection-bar",style:{position:"sticky",top:8,zIndex:1}},he.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},he.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-primary)"}},w," selected"),he.default.createElement(ce,{size:"sm",onClick:()=>C(f),testId:"scenarios-export-selection"},"Download YAML"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>A(f)},"Copy YAML"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>m({productIds:[],setIds:[],scenarioIds:[]})},"Clear"),he.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"Import it back with \u201CKeep what the document leaves out\u201D to update only these."))),(s.products||[]).length===0&&!g&&he.default.createElement(je,{testId:"scenarios-collection-empty"},he.default.createElement("p",{style:{margin:0,color:"var(--color-text-secondary)"}},"No products yet. A product is what its sets run against: an agent, or a project whose booted app the replays reach.")),(s.products||[]).map(N=>he.default.createElement(xAe,{key:N.id,product:N,collection:s,agents:t,projects:r,selection:f,onToggle:_,change:S,act:k,setNotice:p})),g?he.default.createElement(lte,{agents:t,projects:r,onCancel:()=>h(!1),onSave:async N=>{await S("/products","POST",{product:N},"Could not add the product"),h(!1)}}):he.default.createElement("div",null,he.default.createElement(ce,{size:"sm",onClick:()=>h(!0),testId:"scenarios-add-product"},"Add product"))):u?he.default.createElement(ya,{tone:"error"},u):he.default.createElement("p",{style:{color:"var(--color-text-secondary)"}},"Loading the collection\u2026")}function vAe({collection:e,onSave:t,onCancel:r}){let[n,o]=(0,he.useState)(e.name||""),[a,i]=(0,he.useState)(e.description||"");return he.default.createElement(kA,{onSave:()=>t({name:n.trim(),description:a.trim()}),onCancel:r},he.default.createElement(Sn,{label:"Name",value:n,onChange:o}),he.default.createElement(Sn,{label:"Description",value:a,onChange:i}))}function xAe({product:e,collection:t,agents:r,projects:n,selection:o,onToggle:a,change:i,act:s,setNotice:l}){let[u,c]=(0,he.useState)(!1),[d,p]=(0,he.useState)(!1),f=`/products/${e.id}`;return he.default.createElement(je,{testId:"scenarios-product"},u?he.default.createElement(lte,{product:e,agents:r,projects:n,onCancel:()=>c(!1),onSave:async m=>{await i(f,"PATCH",{product:m},"Could not save the product"),c(!1)}}):he.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},he.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"flex-start"}},he.default.createElement("input",{type:"checkbox","aria-label":`Select product ${e.key}`,checked:o.productIds.includes(e.id),onChange:()=>a("productIds",e.id),style:{marginTop:4}}),he.default.createElement("div",null,he.default.createElement("div",{style:{fontWeight:600,color:"var(--color-text-primary)"}},e.name),he.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},he.default.createElement("code",null,e.key),e.agent?` \xB7 agent ${e.agent.name}`:e.agent_name?` \xB7 agent ${e.agent_name} (not on this dashboard)`:" \xB7 no agent chosen",e.project?` \xB7 project ${e.project.name}`:""),e.description&&he.default.createElement("p",{style:{margin:"4px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},e.description))),he.default.createElement("div",{style:{display:"flex",gap:6,alignItems:"center",flexWrap:"wrap"}},he.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-secondary)"}},e.set_count," sets \xB7 ",e.scenario_count," scenarios"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>c(!0)},"Edit"),he.default.createElement(ce,{size:"sm",variant:"danger",onClick:()=>s(async()=>{await Wr({title:`Delete product ${e.key}?`,message:`Its ${e.set_count} sets and their scenarios are deleted.`,confirmLabel:"Delete product",danger:!0})&&await i(f,"DELETE",void 0,"Could not delete the product")})},"Delete"))),he.default.createElement("div",{style:{display:"grid",gap:8,marginTop:12}},(e.sets||[]).map(m=>he.default.createElement(bAe,{key:m.id,set:m,product:e,collection:t,agents:r,projects:n,selection:o,onToggle:a,change:i,act:s,setNotice:l})),d?he.default.createElement(ute,{onCancel:()=>p(!1),onSave:async m=>{await i(`${f}/sets`,"POST",{set:m},"Could not add the set"),p(!1)}}):he.default.createElement("div",null,he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>p(!0)},"Add set"))))}function bAe({set:e,product:t,collection:r,agents:n,projects:o,selection:a,onToggle:i,change:s,act:l,setNotice:u}){let[c,d]=(0,he.useState)((e.scenarios||[]).length<=5),[p,f]=(0,he.useState)(!1),[m,y]=(0,he.useState)(null),b=t.project?`project:${t.project.id}`:t.agent?`agent:${t.agent.id}`:"",[g,h]=(0,he.useState)(b),v=`/sets/${e.id}`,x=()=>l(async()=>{let[S,k]=g.split(":"),w=S==="project"?{project_id:Number(k)}:S==="agent"?{agent_id:Number(k)}:{},_=await eo(`/api/scenario_catalogs/${r.id}${v}/run`,{method:"POST",body:w,fallback:"The run could not start"});u(`Run #${_.run.id} of ${e.name} started; it shows under Evaluations as ${_.evaluation.name}.`)});return he.default.createElement("div",{style:{border:"1px solid var(--color-border)",borderRadius:8,padding:10},"data-testid":"scenarios-set"},p?he.default.createElement(ute,{set:e,onCancel:()=>f(!1),onSave:async S=>{await s(v,"PATCH",{set:S},"Could not save the set"),f(!1)}}):he.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:10,flexWrap:"wrap",alignItems:"center"}},he.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},he.default.createElement("input",{type:"checkbox","aria-label":`Select set ${e.key}`,checked:a.setIds.includes(e.id),onChange:()=>i("setIds",e.id)}),he.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},e.name),he.default.createElement("code",{style:{fontSize:12,color:"var(--color-text-secondary)"}},e.key),he.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"\xB7 ",e.scenario_count," scenarios"),e.judge?.kind&&he.default.createElement(ke,null,`judge ${e.judge.kind}`),e.evaluation&&he.default.createElement("a",{href:"#",style:{fontSize:12},onClick:S=>{S.preventDefault(),lt(`/evaluations/${e.evaluation.id}`)}},"evaluation",e.latest_run?` (latest run ${e.latest_run.status})`:"")),he.default.createElement("div",{style:{display:"flex",gap:6,alignItems:"center",flexWrap:"wrap"}},he.default.createElement("select",{value:g,onChange:S=>h(S.target.value),style:{fontSize:12,padding:4,borderRadius:6,border:"1px solid var(--color-border)",background:"var(--color-surface)",color:"var(--color-text-primary)"}},he.default.createElement("option",{value:""},"Run against\u2026"),o.length>0&&he.default.createElement("optgroup",{label:"Projects (booted app and browser)"},o.map(S=>he.default.createElement("option",{key:`project-${S.id}`,value:`project:${S.id}`},S.name))),n.length>0&&he.default.createElement("optgroup",{label:"Agents"},n.map(S=>he.default.createElement("option",{key:`agent-${S.id}`,value:`agent:${S.id}`},S.name)))),he.default.createElement(ce,{size:"sm",onClick:x,disabled:!g&&!t.agent&&!t.project||e.scenario_count===0},"Run set"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>d(S=>!S)},c?"Hide":"Scenarios"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>f(!0)},"Edit"),he.default.createElement(ce,{size:"sm",variant:"danger",onClick:()=>l(async()=>{await Wr({title:`Delete set ${e.key}?`,message:`Its ${e.scenario_count} scenarios are deleted. Its evaluation stays.`,confirmLabel:"Delete set",danger:!0})&&await s(v,"DELETE",void 0,"Could not delete the set")})},"Delete"))),c&&he.default.createElement("ul",{style:{listStyle:"none",margin:"10px 0 0",padding:0,display:"grid",gap:6}},(e.scenarios||[]).map(S=>m===S.id?he.default.createElement("li",{key:S.id},he.default.createElement(ste,{scenario:S,onCancel:()=>y(null),onSave:async k=>{await s(`${v}/scenarios/${S.id}`,"PATCH",k,"Could not save the scenario"),y(null)}})):he.default.createElement(wAe,{key:S.id,scenario:S,selected:a.scenarioIds.includes(S.id),onToggle:()=>i("scenarioIds",S.id),onEdit:()=>y(S.id),onDelete:()=>l(async()=>{await Wr({title:`Delete scenario ${S.key}?`,confirmLabel:"Delete scenario",danger:!0})&&await s(`${v}/scenarios/${S.id}`,"DELETE",void 0,"Could not delete the scenario")})})),he.default.createElement("li",null,m==="new"?he.default.createElement(ste,{onCancel:()=>y(null),onSave:async S=>{await s(`${v}/scenarios`,"POST",S,"Could not add the scenario"),y(null)}}):he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:()=>{d(!0),y("new")},testId:"scenarios-add-scenario"},"Add scenario"))))}function wAe({scenario:e,selected:t,onToggle:r,onEdit:n,onDelete:o}){let a=rte(e.expectations);return he.default.createElement("li",{style:{display:"flex",gap:8,alignItems:"flex-start",padding:"6px 8px",borderRadius:6,background:"var(--color-surface)"},"data-testid":"scenarios-scenario"},he.default.createElement("input",{type:"checkbox","aria-label":`Select scenario ${e.key}`,checked:t,onChange:r,style:{marginTop:3}}),he.default.createElement("div",{style:{flex:1,minWidth:0}},he.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-primary)",opacity:e.enabled?1:.6}},he.default.createElement("code",{style:{fontSize:11,color:"var(--color-text-secondary)"}},e.key)," ",e.prompt),(e.notes||a)&&he.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)",marginTop:2}},e.notes,e.notes&&a?" \xB7 ":"",a&&he.default.createElement("span",{style:{fontFamily:W}},a)),he.default.createElement("div",{style:{display:"flex",gap:4,marginTop:2,flexWrap:"wrap"}},(e.tags||[]).map(i=>he.default.createElement(ke,{key:i},i)),e.production_only&&he.default.createElement(ke,{tone:"warning"},"production only"),!e.enabled&&he.default.createElement(ke,null,"disabled"))),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:n},"Edit"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:o},"Delete"))}function kA({children:e,onSave:t,onCancel:r,problem:n=null,testId:o}){let[a,i]=(0,he.useState)(!1),[s,l]=(0,he.useState)(null);return he.default.createElement("form",{onSubmit:async c=>{if(c.preventDefault(),n){l(n);return}i(!0),l(null);try{await t()}catch(d){l(d.message)}finally{i(!1)}},style:{display:"flex",flexDirection:"column",gap:8,padding:10,border:"1px dashed var(--color-border)",borderRadius:8},"data-testid":o},e,s&&he.default.createElement(ya,{tone:"error"},s),he.default.createElement("div",{style:{display:"flex",gap:8}},he.default.createElement(ce,{type:"submit",size:"sm",variant:"primary",disabled:a},a?"Saving\u2026":"Save"),he.default.createElement(ce,{size:"sm",variant:"ghost",onClick:r},"Cancel")))}function lte({product:e=null,agents:t,projects:r,onSave:n,onCancel:o}){let[a,i]=(0,he.useState)(e?.name||""),[s,l]=(0,he.useState)(e?.key||""),[u,c]=(0,he.useState)(e?.description||""),[d,p]=(0,he.useState)(e?.agent?String(e.agent.id):""),[f,m]=(0,he.useState)(e?.project?String(e.project.id):"");return he.default.createElement(kA,{onCancel:o,onSave:()=>n({name:a.trim(),key:s.trim(),description:u.trim(),agent_id:d,project_id:f}),testId:"scenarios-product-form"},he.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))"}},he.default.createElement(Sn,{label:"Name",value:a,onChange:i,placeholder:"Triage"}),he.default.createElement(Sn,{label:"Key",value:s,onChange:l,placeholder:"made from the name when empty",mono:!0}),he.default.createElement(bd,{label:"Agent",value:d,onChange:p},he.default.createElement("option",{value:""},"None"),t.map(y=>he.default.createElement("option",{key:y.id,value:y.id},y.name))),he.default.createElement(bd,{label:"Project",value:f,onChange:m},he.default.createElement("option",{value:""},"None"),r.map(y=>he.default.createElement("option",{key:y.id,value:y.id},y.name)))),he.default.createElement(Sn,{label:"Description",value:u,onChange:c,placeholder:"optional"}))}function ute({set:e=null,onSave:t,onCancel:r}){let[n,o]=(0,he.useState)(e?.name||""),[a,i]=(0,he.useState)(e?.key||""),[s,l]=(0,he.useState)(e?.description||""),[u,c]=(0,he.useState)(e?.judge?.kind||"");return he.default.createElement(kA,{onCancel:r,onSave:()=>t({name:n.trim(),key:a.trim(),description:s.trim(),...u?{judge:{kind:u}}:{}}),testId:"scenarios-set-form"},he.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))"}},he.default.createElement(Sn,{label:"Name",value:n,onChange:o,placeholder:"Smoke"}),he.default.createElement(Sn,{label:"Key",value:a,onChange:i,placeholder:"made from the name when empty",mono:!0}),he.default.createElement(bd,{label:"Judge",value:u,onChange:c},he.default.createElement("option",{value:""},"The evaluation's default"),he.default.createElement("option",{value:"rules"},"Rules (expectations only)"),he.default.createElement("option",{value:"llm"},"LLM judge (grades against the notes)"))),he.default.createElement(Sn,{label:"Description",value:s,onChange:l,placeholder:"optional"}))}function ste({scenario:e=null,onSave:t,onCancel:r}){let[n,o]=(0,he.useState)(()=>Ree(e||{})),a=i=>s=>o(l=>({...l,[i]:s}));return he.default.createElement(kA,{onCancel:r,onSave:()=>t(ete(n)),problem:tte(n),testId:"scenarios-scenario-form"},he.default.createElement(Sn,{label:"Prompt: what a user asks the agent",value:n.prompt,onChange:a("prompt"),multiline:!0,testId:"scenario-prompt"}),he.default.createElement(Sn,{label:"Notes: the rubric, what a good answer does",value:n.notes,onChange:a("notes"),multiline:!0,rows:2}),he.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))"}},he.default.createElement(Sn,{label:"Expected tools",value:n.tools,onChange:a("tools"),placeholder:"lookup_order, refund_order",mono:!0}),he.default.createElement(Sn,{label:"Answer contains",value:n.contains,onChange:a("contains"),placeholder:"comma-separated"}),he.default.createElement(Sn,{label:"Answer never contains",value:n.notContains,onChange:a("notContains"),placeholder:"comma-separated"}),he.default.createElement(Sn,{label:"Tags",value:n.tags,onChange:a("tags"),placeholder:"billing, regression"}),he.default.createElement(Sn,{label:"Key",value:n.key,onChange:a("key"),placeholder:"made from the prompt when empty",mono:!0})),he.default.createElement("div",{style:{display:"flex",gap:16}},he.default.createElement(pb,{label:"Enabled",checked:n.enabled,onChange:a("enabled")}),he.default.createElement(pb,{label:"Production only",checked:n.productionOnly,onChange:a("productionOnly")})))}var Et=Z(Q());function _j({projects:e,collections:t,onAccepted:r}){let[n,o]=(0,Et.useState)(""),[a,i]=(0,Et.useState)(null),[s,l]=(0,Et.useState)(null),[u,c]=(0,Et.useState)({sandbox:null,modes:[]}),[d,p]=(0,Et.useState)([]),[f,m]=(0,Et.useState)(null),[y,b]=(0,Et.useState)({collectionId:"",setId:""}),[g,h]=(0,Et.useState)(null),[v,x]=(0,Et.useState)(null),S=(0,Et.useCallback)(async()=>{if(n)try{let[N,L,J,B]=await Promise.all([eo(`/api/projects/${n}`,{fallback:"Could not load the project"}),eo("/api/projects/capabilities").catch(()=>({})),eo("/api/sandboxes").catch(()=>({})),eo(`/api/explorations?project_id=${n}`,{fallback:"Could not list the project's explorations"})]),K=N.project;i(K),l((L.items||[]).find(P=>P.key==="model_credentials")||null);let T=K?.sandbox?.session_id;c({sandbox:(J.sandboxes||[]).find(P=>P.session_id===T)||null,modes:J.browser_modes||[]}),p(B.explorations||[]),x(null)}catch(N){x(N.message)}},[n]);(0,Et.useEffect)(()=>{i(null),m(null),S()},[S]),(0,Et.useEffect)(()=>{if(!y.collectionId){h(null);return}eo(`/api/scenario_catalogs/${y.collectionId}`).then(N=>h(N.catalog)).catch(N=>x(N.message))},[y.collectionId]);let k=(g?.products||[]).flatMap(N=>(N.sets||[]).map(L=>({...L,product:N}))),w=k.find(N=>String(N.id)===String(y.setId)),_=async()=>{try{let L=(await eo("/api/scenario_catalogs",{method:"POST",body:{catalog:{name:a.name}},fallback:"Could not create the collection"})).catalogs[0].id,J=await eo(`/api/scenario_catalogs/${L}/products`,{method:"POST",body:{product:{name:a.name,project_id:a.id}},fallback:"Could not add the product"}),B=await eo(`/api/scenario_catalogs/${L}/products/${J.product.id}/sets`,{method:"POST",body:{set:{name:"Explored",key:"explored",judge:{kind:"llm"}}},fallback:"Could not add the set"});r?.(),b({collectionId:String(L),setId:String(B.set.id)})}catch(N){x(N.message)}},A=a?.sandbox_state==="ready",C=f||d[0]?.id;return Et.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12},"data-testid":"scenarios-generator"},Et.default.createElement(je,null,Et.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},Et.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"Pick a project. The explorer walks its running app in the sandbox's browser and proposes scenarios, which you edit and accept into a set below. Nothing is added until you accept it."),Et.default.createElement(bd,{label:"Project",value:n,onChange:o,testId:"scenarios-generator-project"},Et.default.createElement("option",{value:""},"Choose a project\u2026"),e.map(N=>Et.default.createElement("option",{key:N.id,value:N.id},N.name))),e.length===0&&Et.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},"No projects yet. ",Et.default.createElement("a",{href:"#",onClick:N=>{N.preventDefault(),lt("/projects/new")}},"Create one")," from a repository first."))),v&&Et.default.createElement(ya,{tone:"error"},v),a&&Et.default.createElement(Et.default.Fragment,null,s&&!s.ok&&Et.default.createElement(ya,{tone:"error"},"The explorer runs on a model: ",s.detail||"no provider has credentials","."," ",Et.default.createElement("a",{href:"#",onClick:N=>{N.preventDefault(),lt("/settings?tab=api-keys")}},"Add a provider key"),", then start it."),!A&&Et.default.createElement(ya,null,a.name,"'s sandbox is ",a.sandbox_state||"not booted",". The explorer walks the app the sandbox serves:"," ",Et.default.createElement("a",{href:"#",onClick:N=>{N.preventDefault(),lt(`/projects/${a.id}`)}},"boot it on the project's page"),"."),Et.default.createElement(db,{projectId:a.id,sandboxReady:A,onStarted:N=>{m(N.id),S()}}),A&&u.sandbox&&u.modes.length>0&&Et.default.createElement(Zr,{title:"The sandbox's browser",meta:"watch the explorer walk the app",bodyStyle:{padding:12}},Et.default.createElement(kf,{sandbox:u.sandbox,modes:u.modes})),Et.default.createElement(Zr,{title:"Accept into",testId:"scenarios-generator-destination",bodyStyle:{padding:12,display:"flex",flexDirection:"column",gap:8}},Et.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))"}},Et.default.createElement(bd,{label:"Collection",value:y.collectionId,onChange:N=>b({collectionId:N,setId:""})},Et.default.createElement("option",{value:""},"Choose a collection\u2026"),t.map(N=>Et.default.createElement("option",{key:N.id,value:N.id},N.name))),Et.default.createElement(bd,{label:"Set",value:y.setId,onChange:N=>b(L=>({...L,setId:N}))},Et.default.createElement("option",{value:""},g&&k.length===0?"The collection has no sets yet":"Choose a set\u2026"),k.map(N=>Et.default.createElement("option",{key:N.id,value:N.id},N.product.name," / ",N.name)))),Et.default.createElement("div",null,Et.default.createElement(ce,{size:"sm",variant:"ghost",onClick:_},"New collection for ",a.name))),d.length===0?Et.default.createElement(je,null,Et.default.createElement("p",{style:{margin:0,fontSize:13,color:"var(--color-text-secondary)"}},"No explorations of ",a.name," yet. Start the explorer above, or have a coding agent driving a browser submit what it found with the explorations_submit MCP tool.")):Et.default.createElement(Et.default.Fragment,null,Et.default.createElement(Cf,{explorations:d,selectedId:C,onOpen:N=>m(N.id)}),!w&&Et.default.createElement(ya,null,"Choose the set to accept into, above."),Et.default.createElement(Ef,{key:`${C}-${w?.id||"none"}`,explorationId:C,requireScenarioSet:!0,scenarioSet:w?{id:w.id,label:`${w.product.name} / ${w.name}`}:null,onAccepted:()=>r?.()}))))}var Kt=Z(Q());var SAe=[{value:"document",label:"Paste YAML"},{value:"file",label:"Upload a file"},{value:"repository",label:"From a repository"}],kAe=`catalog: support_desk products: - key: triage agent: TriageAgent @@ -101,7 +101,7 @@ products: - key: refund prompt: A customer asks for a refund. notes: Looks the order up before answering. - expect: { tools: [lookup_order] }`,mAe={create:"success",update:"warning",remove:"error",keep:"muted"};function kj({onImported:e}){let[t,r]=(0,Kt.useState)("document"),[n,o]=(0,Kt.useState)(""),[a,i]=(0,Kt.useState)(""),[s,l]=(0,Kt.useState)(""),[u,c]=(0,Kt.useState)(""),[d,p]=(0,Kt.useState)(".activeagents/evals"),[f,m]=(0,Kt.useState)(!0),[y,b]=(0,Kt.useState)(null),[g,h]=(0,Kt.useState)(!1),[v,x]=(0,Kt.useState)(null),S=()=>{let L=f?"merge":"replace";return t==="repository"?{repository:s.trim(),ref:u.trim()||void 0,path:d.trim()||void 0,mode:L}:{document:n,mode:L,...a?{source_path:a}:{}}},k=t==="repository"?!!s.trim():!!n.trim(),w=L=>Q=>{L(Q),b(null)},_=async L=>{h(!0),x(null);try{await L()}catch(Q){x(Q.message)}finally{h(!1)}},A=()=>_(async()=>{let L=await eo("/api/scenario_catalogs/preview",{method:"POST",body:S(),fallback:"The preview failed"});b(L.previews||[])}),C=()=>_(async()=>{let L=await eo("/api/scenario_catalogs",{method:"POST",body:S(),fallback:"Import refused"});b(null),o(""),i(""),e?.(L.catalogs||[])}),N=L=>{if(!L)return;let Q=new FileReader;Q.onload=()=>{i(L.name),w(o)(String(Q.result||""))},Q.onerror=()=>x(`Could not read ${L.name}.`),Q.readAsText(L)};return Kt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12},"data-testid":"scenarios-import"},Kt.default.createElement(je,null,Kt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},Kt.default.createElement(qi,{options:pAe,value:t,onChange:L=>{r(L),b(null)}}),t==="document"&&Kt.default.createElement(Sn,{label:"YAML",value:n,onChange:w(o),placeholder:fAe,mono:!0,multiline:!0,rows:12,testId:"scenarios-import-yaml"}),t==="file"&&Kt.default.createElement("label",{style:{display:"flex",flexDirection:"column",gap:6,fontSize:12,color:"var(--color-text-secondary)"}},"A .yml or .yaml file, such as one exported from this page",Kt.default.createElement("input",{type:"file",accept:".yml,.yaml,application/x-yaml,text/yaml",onChange:L=>N(L.target.files?.[0])}),a&&Kt.default.createElement("span",{style:{fontFamily:U}},a," \xB7 ",n.length," characters")),t==="repository"&&Kt.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))"}},Kt.default.createElement(Sn,{label:"Repository",value:s,onChange:w(l),placeholder:"owner/name",mono:!0}),Kt.default.createElement(Sn,{label:"Ref",value:u,onChange:w(c),placeholder:"the default branch when empty",mono:!0}),Kt.default.createElement(Sn,{label:"Path",value:d,onChange:w(p),placeholder:".activeagents/evals or one .yml file",mono:!0})),Kt.default.createElement(pb,{label:"Keep what the document leaves out (merge). Off: the document replaces the collection.",checked:f,onChange:w(m)}),Kt.default.createElement("div",{style:{display:"flex",gap:8}},Kt.default.createElement(ce,{onClick:A,disabled:g||!k,testId:"scenarios-import-preview"},g&&!y?"Reading\u2026":"Preview"),Kt.default.createElement(ce,{variant:"primary",onClick:C,disabled:g||!y||y.length===0,testId:"scenarios-import-apply"},Zee(y||[])?"Apply, overwriting":"Apply")))),v&&Kt.default.createElement(ha,{tone:"error"},v),y&&y.map(L=>Kt.default.createElement(gAe,{key:`${L.catalog?.key}-${L.source_path||""}`,preview:L})))}function gAe({preview:e}){let t=Yee(e);return Kt.default.createElement(je,{testId:"scenarios-import-preview-result"},Kt.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},Kt.default.createElement(ke,{tone:e.catalog?.action==="create"?"success":"info"},e.catalog?.action==="create"?"new collection":"existing collection"),Kt.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-primary)"}},Xee(e))),e.source_path&&Kt.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)",fontFamily:U,marginTop:4}},e.source_path),t.length===0?Kt.default.createElement("p",{style:{margin:"8px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},"Nothing changes: the collection already holds this document."):Kt.default.createElement("div",{style:{display:"grid",gap:8,marginTop:10}},t.map(r=>Kt.default.createElement("div",{key:r.action},Kt.default.createElement("div",{style:{display:"flex",gap:6,alignItems:"center"}},Kt.default.createElement(ke,{tone:mAe[r.action]},r.label),Kt.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},r.changes.length)),Kt.default.createElement("ul",{style:{margin:"4px 0 0",paddingLeft:18,fontSize:12,fontFamily:U,color:"var(--color-text-secondary)"}},r.changes.slice(0,50).map(n=>Kt.default.createElement("li",{key:`${n.level}-${n.path}`},n.level," ",n.path)),r.changes.length>50&&Kt.default.createElement("li",null,"and ",r.changes.length-50," more"))))))}var hAe=[{value:"collections",label:"Collections"},{value:"generate",label:"Generate"},{value:"import",label:"Import"}];function _j({visit:e=0}){let[t,r]=(0,xt.useState)(()=>xj(Rn())),[n,o]=(0,xt.useState)(null),[a,i]=(0,xt.useState)(!1),[s,l]=(0,xt.useState)({agents:[],projects:[]}),[u,c]=(0,xt.useState)(null),[d,p]=(0,xt.useState)(null),[f,m]=(0,xt.useState)(!1);(0,xt.useEffect)(()=>{let v=()=>r(xj(Rn()));return window.addEventListener("popstate",v),window.addEventListener("dashboard:navigate",v),()=>{window.removeEventListener("popstate",v),window.removeEventListener("dashboard:navigate",v)}},[]);let y=(0,xt.useCallback)(async()=>{try{let v=await eo("/api/scenario_catalogs",{fallback:"Could not list the collections"});o(v.catalogs||[]),i(v.storage_available===!0),c(null)}catch(v){c(v.message)}},[]),b=(0,xt.useCallback)(async()=>{try{let[v,x]=await Promise.all([eo("/api/agents").catch(()=>({})),eo("/api/projects").catch(()=>({}))]);l({agents:(v.agents||[]).filter(S=>!S.observed),projects:x.projects||[]})}catch{}},[]);(0,xt.useEffect)(()=>{y(),b()},[y,b,e]);let g=v=>{p(null),c(null),lt(Hee(v))},h=async v=>{let x=await eo("/api/scenario_catalogs",{method:"POST",body:{catalog:v},fallback:"Could not create the collection"});m(!1),await y(),g({collectionId:x.catalogs?.[0]?.id})};return t.collectionId?xt.default.createElement(wj,{key:t.collectionId,collectionId:t.collectionId,agents:s.agents,projects:s.projects,storageAvailable:a,onBack:()=>g({}),onChanged:y,onDeleted:async()=>{await y(),g({})}}):xt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"scenarios-view"},xt.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},xt.default.createElement("div",null,xt.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Scenarios"),xt.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)"}},"What your agents are evaluated on, by product and set. Write them here, generate them by exploring a project's app, or import and export them as YAML.")),t.tab==="collections"&&xt.default.createElement(ce,{variant:"primary",onClick:()=>m(v=>!v),testId:"scenarios-new-collection"},f?"Close":"New collection")),xt.default.createElement(qi,{options:hAe,value:t.tab,onChange:v=>g({tab:v})}),u&&xt.default.createElement(ha,{tone:"error"},u),d&&xt.default.createElement(ha,null,d),t.tab==="generate"&&xt.default.createElement(Sj,{projects:s.projects,collections:n||[],onAccepted:y}),t.tab==="import"&&xt.default.createElement(kj,{onImported:async v=>{await y(),v.length===1?g({collectionId:v[0].id}):p(`Imported ${v.map(x=>x.key).join(", ")||"nothing"}.`)}}),t.tab==="collections"&&xt.default.createElement(xt.default.Fragment,null,f&&xt.default.createElement(yAe,{onCreate:h}),n===null?xt.default.createElement("p",{style:{color:"var(--color-text-secondary)"}},"Loading\u2026"):n.length===0?xt.default.createElement(je,{testId:"scenarios-empty"},xt.default.createElement("p",{style:{margin:0,color:"var(--color-text-secondary)"}},"No scenarios yet. Start a new collection, generate scenarios by exploring a project's app, or import YAML, such as the"," ",xt.default.createElement("code",null,".activeagents/evals")," directory of a connected repository.")):xt.default.createElement("div",{style:{display:"grid",gap:12}},n.map(v=>xt.default.createElement(je,{key:v.id,style:{cursor:"pointer"},onClick:()=>g({collectionId:v.id}),testId:"scenarios-collection-card"},xt.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},xt.default.createElement("div",null,xt.default.createElement("div",{style:{fontWeight:600,color:"var(--color-text-primary)"}},v.name),xt.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},xt.default.createElement("code",null,v.key),v.source_path?` \xB7 ${v.source_path}`:v.source_kind==="api"?" \xB7 written here":` \xB7 ${v.source_kind}`)),xt.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)",textAlign:"right"}},v.product_count," ",v.product_count===1?"product":"products"," \xB7 ",v.scenario_count," scenarios",xt.default.createElement("div",null,v.synced?"synced to storage":a?"not synced":"database only"))))))))}function yAe({onCreate:e}){let[t,r]=(0,xt.useState)(""),[n,o]=(0,xt.useState)(""),[a,i]=(0,xt.useState)(""),[s,l]=(0,xt.useState)(!1),[u,c]=(0,xt.useState)(null);return xt.default.createElement(je,{testId:"scenarios-new-collection-form"},xt.default.createElement("form",{onSubmit:async p=>{p.preventDefault(),l(!0),c(null);try{await e({name:t.trim(),key:n.trim(),description:a.trim()})}catch(f){c(f.message)}finally{l(!1)}},style:{display:"flex",flexDirection:"column",gap:10}},xt.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))"}},xt.default.createElement(Sn,{label:"Name",value:t,onChange:r,placeholder:"Support desk"}),xt.default.createElement(Sn,{label:"Key",value:n,onChange:o,placeholder:"made from the name when empty",mono:!0})),xt.default.createElement(Sn,{label:"Description",value:a,onChange:i,placeholder:"optional"}),u&&xt.default.createElement(ha,{tone:"error"},u),xt.default.createElement("div",null,xt.default.createElement(ce,{type:"submit",variant:"primary",disabled:s||!t.trim()&&!n.trim()},s?"Creating\u2026":"Create collection"))))}var dn=Z(J());var vAe='button:not([disabled]), input:not([disabled]), [href], [tabindex]:not([tabindex="-1"])';function xAe({request:e,onSettle:t}){let[r,n]=(0,dn.useState)(""),o=(0,dn.useRef)(null),a=(0,dn.useRef)(null),i=(0,dn.useId)(),s=(0,dn.useId)(),l=fQ(e,r);(0,dn.useEffect)(()=>{let p=document.activeElement;return e.requireText?a.current?.focus():o.current?.querySelector('[data-testid="confirm-cancel"]')?.focus(),()=>p?.focus?.()},[e]);let u=()=>{l&&t(!0)},c=p=>{if(p.key==="Escape"){p.preventDefault(),t(!1);return}if(p.key!=="Tab")return;let f=[...o.current?.querySelectorAll(vAe)||[]];if(f.length===0)return;let m=f[0],y=f[f.length-1];p.shiftKey&&document.activeElement===m?(p.preventDefault(),y.focus()):!p.shiftKey&&document.activeElement===y&&(p.preventDefault(),m.focus())},d=e.danger?{background:"var(--color-error)",color:"#fff"}:void 0;return dn.default.createElement("div",{"data-testid":"confirm-overlay",onMouseDown:p=>{p.target===p.currentTarget&&t(!1)},style:{position:"fixed",inset:0,zIndex:70,padding:16,background:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center"}},dn.default.createElement("div",{ref:o,role:"alertdialog","aria-modal":"true","aria-labelledby":i,"aria-describedby":s,"data-testid":"confirm-dialog",onKeyDown:c,style:{width:"100%",maxWidth:440,padding:20,borderRadius:12,background:"var(--color-surface)",border:"1px solid var(--color-border)",color:"var(--color-text-primary)",boxShadow:"0 20px 40px rgba(0, 0, 0, 0.25)"}},dn.default.createElement("h2",{id:i,style:{margin:0,fontSize:16,fontWeight:600}},e.title),dn.default.createElement("div",{id:s},e.message&&dn.default.createElement("p",{style:{margin:"8px 0 0",fontSize:13,lineHeight:1.5,color:"var(--color-text-secondary)"}},e.message),e.requireText&&dn.default.createElement("label",{style:{display:"block",marginTop:14,fontSize:13,color:"var(--color-text-secondary)"}},"Type ",dn.default.createElement("code",{style:{fontFamily:"var(--font-mono)",color:"var(--color-text-primary)",fontWeight:600}},e.requireText)," to confirm.",dn.default.createElement("input",{ref:a,type:"text",value:r,autoComplete:"off",spellCheck:!1,"data-testid":"confirm-input","aria-label":`Type ${e.requireText} to confirm`,onChange:p=>n(p.target.value),onKeyDown:p=>{p.key==="Enter"&&(p.preventDefault(),u())},style:{display:"block",width:"100%",marginTop:6,padding:"8px 10px",borderRadius:8,boxSizing:"border-box",fontFamily:"var(--font-mono)",fontSize:13,color:"var(--color-text-primary)",background:"var(--color-background-page)",border:"1px solid var(--color-border-strong)"}}))),dn.default.createElement("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:18}},dn.default.createElement(ce,{testId:"confirm-cancel",onClick:()=>t(!1)},e.cancelLabel),dn.default.createElement(ce,{testId:"confirm-confirm",variant:"primary",onClick:u,disabled:!l,style:d},e.confirmLabel))))}function tte(){let[e,t]=(0,dn.useState)(dQ());return(0,dn.useEffect)(()=>pQ(t),[]),e?dn.default.createElement(xAe,{key:wAe(e),request:e,onSettle:cQ}):null}var Cj=new WeakMap,bAe=0;function wAe(e){return Cj.has(e)||Cj.set(e,++bAe),Cj.get(e)}function SAe({user:e,initialAgents:t=[],meta:r={},account:n=null,subscription:o=null}){let{darkMode:a}=ut(),[i,s]=(0,Nt.useState)(t),[l,u]=(0,Nt.useState)("list"),[c,d]=(0,Nt.useState)(null),[p,f]=(0,Nt.useState)(!1),[m,y]=(0,Nt.useState)(null),[b,g]=(0,Nt.useState)(!1),[h,v]=(0,Nt.useState)("recent"),[x,S]=(0,Nt.useState)({messages:[]}),[k,w]=(0,Nt.useState)(null),_=cY(r),[A,C]=(0,Nt.useState)(null),{requests:N}=QC({refreshKey:l}),[L,Q]=(0,Nt.useState)(0),[B,K]=(0,Nt.useState)(null);(0,Nt.useEffect)(()=>{let le=()=>{let R=dY(Rn(),_);R.focusServer&&C(R.focusServer),R.sessionId&&K({kind:R.sessionKind,id:R.sessionId}),R.replacePath&&window.history.replaceState({},"",Re(R.replacePath)),R.agentId?T(R.agentId,R.view):u(R.view)};return le(),window.addEventListener("popstate",le),window.addEventListener("dashboard:navigate",le),()=>{window.removeEventListener("popstate",le),window.removeEventListener("dashboard:navigate",le)}},[]);let T=async(le,R)=>{f(!0);try{let He=await(await fetch(`/api/agents/${le}`)).json();d(He.agent),u(R)}catch{P("Failed to load agent","error")}finally{f(!1)}},O=async(le=h)=>{f(!0);try{let te=await(await fetch(`/api/agents?sort=${le}`)).json();s(te.agents)}catch{P("Failed to refresh agents","error")}finally{f(!1)}},I=le=>{v(le),O(le)},P=(le,R="info")=>{y({message:le,type:R}),setTimeout(()=>y(null),3e3)},j=(le,R=null)=>{let te=XC(le,{agent:R,features:_});te!==null&&window.history.pushState({},"",Re(te))},M=async le=>{f(!0);try{let R=await fetch("/api/agents",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent:le})});if(R.ok){let _e=await R.json();return s([_e.agent,...i]),d(_e.agent),u("editor"),P("Agent created successfully!","success"),j("editor",_e.agent),null}let te=await R.json().catch(()=>({})),He={errors:te.errors?.length?te.errors:[te.error||`Failed to create agent (${R.status})`],fieldErrors:te.field_errors||{}};return P(He.errors.join(", "),"error"),He}catch{return P("Failed to create agent","error"),{errors:["Failed to create agent: the request did not complete"],fieldErrors:{}}}finally{f(!1)}},W=async(le,R)=>{f(!0);try{let te=await fetch(`/api/agents/${le}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent:R})});if(te.ok){let He=await te.json();s(i.map(_e=>_e.id===le?He.agent:_e)),d(He.agent),P("Agent updated!","success")}else{let He=await te.json();P(He.errors?.join(", ")||"Failed to update agent","error")}}catch{P("Failed to update agent","error")}finally{f(!1)}},Y=async le=>{let R=i.find(te=>te.id===le);if(await Wr({title:R?`Delete ${R.name}?`:"Delete this agent?",message:"Its versions and run history are deleted with it. This cannot be undone.",confirmLabel:"Delete agent",danger:!0,requireText:R?.name})){f(!0);try{(await fetch(`/api/agents/${le}`,{method:"DELETE"})).ok&&(s(i.filter(He=>He.id!==le)),d(null),u("list"),P("Agent deleted","success"),j("list"))}catch{P("Failed to delete agent","error")}finally{f(!1)}}},z=async le=>{f(!0);try{let R=await fetch(`/api/agents/${le}/duplicate`,{method:"POST"});if(R.ok){let te=await R.json();s([te.agent,...i]),P("Agent duplicated!","success")}}catch{P("Failed to duplicate agent","error")}finally{f(!1)}},V=le=>{s([le,...i]),g(!1),P("Agent created from template!","success"),oe("editor",le)},q=["editor","runner","agent-analytics","history"],oe=(le,R=null)=>{r0(le,_)&&(Q(te=>te+1),le==="builder"&&w(null),R?.id&&q.includes(le)&&R.instructions===void 0?T(R.id,le):(d(R),u(le)),j(le,R))},Me={assistant:()=>Nt.default.createElement(H3,{session:x,onSessionChange:S,executionEnabled:r.executionEnabled!==!1,onOpenSettings:()=>oe("settings"),onReviewDraft:le=>{w(le),u("builder"),j("builder")}}),builder:()=>Nt.default.createElement(_T,{key:k?.id||"new-agent",initialDraft:k,meta:r,onSave:M,onCancel:()=>oe(k?"assistant":"list"),isLoading:p}),editor:()=>c?Nt.default.createElement(V2,{key:`editor-${c.id}`,agent:c,meta:r,onSave:le=>W(c.id,le),onDelete:()=>Y(c.id),onRun:()=>oe("runner",c),onDuplicate:()=>z(c.id),onRunReport:()=>oe("history",c),onBack:()=>oe("list"),isLoading:p}):null,runner:()=>c?Nt.default.createElement(XD,{key:`runner-${c.id}-${window.location.search}`,agent:c,recorderUrl:r.recorderUrl,freshConversation:new URLSearchParams(window.location.search).has("new"),onBack:()=>oe("editor",c)}):null,"agent-analytics":()=>c?Nt.default.createElement(V2,{key:`agent-analytics-${c.id}`,agent:c,meta:r,initialTab:"metrics",onSave:le=>W(c.id,le),onDelete:()=>Y(c.id),onRun:()=>oe("runner",c),onDuplicate:()=>z(c.id),onRunReport:()=>oe("history",c),onBack:()=>oe("list"),isLoading:p}):null,history:()=>c?Nt.default.createElement(JD,{agent:c,onBack:()=>oe("editor",c)}):null,analytics:()=>Nt.default.createElement(ZD,{onSelectAgent:le=>{T(le.id,"agent-analytics")}}),traces:()=>Nt.default.createElement(Jp,null),metrics:()=>Nt.default.createElement(c3,null),interactions:()=>Nt.default.createElement($u,null),tools:()=>Nt.default.createElement(d3,{onOpenServer:le=>{C(le),oe("mcp")}}),mcp:()=>Nt.default.createElement(p3,{focusServer:A,onOpenTools:()=>{C(null),oe("tools")}}),evaluations:()=>Nt.default.createElement(V0,null),projects:()=>Nt.default.createElement(hj,{visit:L}),scenarios:()=>Nt.default.createElement(_j,{visit:L}),sessions:()=>Nt.default.createElement(P3,{agents:i,user:e}),exploration:()=>Nt.default.createElement(yj,{visit:L}),replay:()=>B?Nt.default.createElement(A3,{key:`${B.kind}-${B.id}`,kind:B.kind,id:B.id,onHandoff:le=>{let R=le?.handoff_state||{};R.url&&window.open(R.url,"_blank","noopener,noreferrer");let te=Object.entries(R.form_values||{}).map(([He,_e])=>`${He}: ${_e}`).join(" \xB7 ");P(R.url?`Taking over in a new tab${te?` \u2014 already entered: ${te}`:""}`:"Taking over session...","info")},onBack:()=>vR(window.history.state)?window.history.back():oe("sessions")}):null,sandbox:()=>Nt.default.createElement(v3,{initialType:"playwright_mcp",showAgents:!0,onClose:()=>oe("list")}),organization:()=>Nt.default.createElement(M3,{user:e,account:n,subscription:o,agentCount:i.length}),settings:()=>Nt.default.createElement(U3,{user:e}),list:()=>Nt.default.createElement(gT,{agents:i,meta:r,onSelect:le=>oe("editor",le),onNew:()=>oe("builder"),onBrowseTemplates:()=>g(!0),onDuplicate:z,onDelete:Y,onRefresh:O,sort:h,onSortChange:I,isLoading:p})},fe=()=>r0(l,_)?(Me[l]||Me.list)():null;return Nt.default.createElement("div",{className:`aa-dashboard min-h-screen flex${a?" theme-dark":""}`,style:{backgroundColor:a?"#0f0f0f":"#f9fafb"}},Nt.default.createElement(RD,{currentView:pY(l),onNavigate:oe,agentCount:i.length,pendingInputCount:yY(N),account:n,user:e,gemVersion:r.activeagentVersion,features:_}),Nt.default.createElement("div",{className:"flex-1 flex flex-col min-w-0"},Nt.default.createElement(e3,{user:e,account:n}),Nt.default.createElement("main",{className:"flex-1 p-6 overflow-x-clip"},fe())),b&&Nt.default.createElement(QD,{onUseTemplate:V,onClose:()=>g(!1)}),Nt.default.createElement(tte,null),m&&Nt.default.createElement("div",{className:`fixed bottom-4 right-4 z-[60] px-6 py-3 rounded-lg shadow-lg transition-all transform ${m.type==="error"?"bg-red-500":m.type==="success"?"bg-green-500":"bg-blue-500"} text-white`},m.message),p&&Nt.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-20 flex items-center justify-center z-50"},Nt.default.createElement("div",{className:`rounded-lg p-4 shadow-xl ${a?"bg-gray-800":"bg-white"}`},Nt.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}))))}function Aj(e){return Nt.default.createElement(S6,null,Nt.default.createElement(NG,null,Nt.default.createElement(SAe,{...e})))}var kAe=new Set(["POST","PUT","PATCH","DELETE"]);function _Ae(e,t,{base:r="",csrfToken:n,origin:o}){let a;if(typeof e=="string"){if(!e.startsWith("/api/"))return null;a=`${r}${e}`}else if(typeof Request<"u"&&e instanceof Request){let u=new URL(e.url,o);if(u.origin!==o||!u.pathname.startsWith("/api/"))return null;a=`${o}${r}${u.pathname}${u.search}`}else return null;let i=typeof e=="string"?a:new Request(a,e),s=(t?.method||(typeof e=="string"?"GET":e.method)).toUpperCase();if(!kAe.has(s)||!n)return[i,t];let l=new Headers(t?.headers??(typeof e=="string"?void 0:e.headers));return l.has("X-CSRF-Token")||l.set("X-CSRF-Token",n),[i,{...t,headers:l}]}function CAe(e=globalThis.document){return e?.querySelector('meta[name="csrf-token"]')?.content||null}function rte(e,t=globalThis){let r=e.replace(/\/$/,""),n=t.fetch.bind(t);t.fetch=(o,a)=>{let i=_Ae(o,a,{base:r,csrfToken:CAe(),origin:t.location.origin});return i?n(...i):n(o,a)}}var AAe="active-agent-dashboard";function nte(){let e=document.getElementById(AAe);if(!e)return;let t=JSON.parse(e.dataset.props||"{}");window.ACTIVE_AGENT_DASHBOARD=t,rte(t.mountPath||"/"),(0,ate.createRoot)(e).render(ote.default.createElement(Aj,{...t}))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",nte):nte(); + expect: { tools: [lookup_order] }`,_Ae={create:"success",update:"warning",remove:"error",keep:"muted"};function Cj({onImported:e}){let[t,r]=(0,Kt.useState)("document"),[n,o]=(0,Kt.useState)(""),[a,i]=(0,Kt.useState)(""),[s,l]=(0,Kt.useState)(""),[u,c]=(0,Kt.useState)(""),[d,p]=(0,Kt.useState)(".activeagents/evals"),[f,m]=(0,Kt.useState)(!0),[y,b]=(0,Kt.useState)(null),[g,h]=(0,Kt.useState)(!1),[v,x]=(0,Kt.useState)(null),S=()=>{let L=f?"merge":"replace";return t==="repository"?{repository:s.trim(),ref:u.trim()||void 0,path:d.trim()||void 0,mode:L}:{document:n,mode:L,...a?{source_path:a}:{}}},k=t==="repository"?!!s.trim():!!n.trim(),w=L=>J=>{L(J),b(null)},_=async L=>{h(!0),x(null);try{await L()}catch(J){x(J.message)}finally{h(!1)}},A=()=>_(async()=>{let L=await eo("/api/scenario_catalogs/preview",{method:"POST",body:S(),fallback:"The preview failed"});b(L.previews||[])}),C=()=>_(async()=>{let L=await eo("/api/scenario_catalogs",{method:"POST",body:S(),fallback:"Import refused"});b(null),o(""),i(""),e?.(L.catalogs||[])}),N=L=>{if(!L)return;let J=new FileReader;J.onload=()=>{i(L.name),w(o)(String(J.result||""))},J.onerror=()=>x(`Could not read ${L.name}.`),J.readAsText(L)};return Kt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:12},"data-testid":"scenarios-import"},Kt.default.createElement(je,null,Kt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},Kt.default.createElement(Ka,{options:SAe,value:t,onChange:L=>{r(L),b(null)}}),t==="document"&&Kt.default.createElement(Sn,{label:"YAML",value:n,onChange:w(o),placeholder:kAe,mono:!0,multiline:!0,rows:12,testId:"scenarios-import-yaml"}),t==="file"&&Kt.default.createElement("label",{style:{display:"flex",flexDirection:"column",gap:6,fontSize:12,color:"var(--color-text-secondary)"}},"A .yml or .yaml file, such as one exported from this page",Kt.default.createElement("input",{type:"file",accept:".yml,.yaml,application/x-yaml,text/yaml",onChange:L=>N(L.target.files?.[0])}),a&&Kt.default.createElement("span",{style:{fontFamily:W}},a," \xB7 ",n.length," characters")),t==="repository"&&Kt.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))"}},Kt.default.createElement(Sn,{label:"Repository",value:s,onChange:w(l),placeholder:"owner/name",mono:!0}),Kt.default.createElement(Sn,{label:"Ref",value:u,onChange:w(c),placeholder:"the default branch when empty",mono:!0}),Kt.default.createElement(Sn,{label:"Path",value:d,onChange:w(p),placeholder:".activeagents/evals or one .yml file",mono:!0})),Kt.default.createElement(pb,{label:"Keep what the document leaves out (merge). Off: the document replaces the collection.",checked:f,onChange:w(m)}),Kt.default.createElement("div",{style:{display:"flex",gap:8}},Kt.default.createElement(ce,{onClick:A,disabled:g||!k,testId:"scenarios-import-preview"},g&&!y?"Reading\u2026":"Preview"),Kt.default.createElement(ce,{variant:"primary",onClick:C,disabled:g||!y||y.length===0,testId:"scenarios-import-apply"},ate(y||[])?"Apply, overwriting":"Apply")))),v&&Kt.default.createElement(ya,{tone:"error"},v),y&&y.map(L=>Kt.default.createElement(CAe,{key:`${L.catalog?.key}-${L.source_path||""}`,preview:L})))}function CAe({preview:e}){let t=nte(e);return Kt.default.createElement(je,{testId:"scenarios-import-preview-result"},Kt.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},Kt.default.createElement(ke,{tone:e.catalog?.action==="create"?"success":"info"},e.catalog?.action==="create"?"new collection":"existing collection"),Kt.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-primary)"}},ote(e))),e.source_path&&Kt.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)",fontFamily:W,marginTop:4}},e.source_path),t.length===0?Kt.default.createElement("p",{style:{margin:"8px 0 0",fontSize:13,color:"var(--color-text-secondary)"}},"Nothing changes: the collection already holds this document."):Kt.default.createElement("div",{style:{display:"grid",gap:8,marginTop:10}},t.map(r=>Kt.default.createElement("div",{key:r.action},Kt.default.createElement("div",{style:{display:"flex",gap:6,alignItems:"center"}},Kt.default.createElement(ke,{tone:_Ae[r.action]},r.label),Kt.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-secondary)"}},r.changes.length)),Kt.default.createElement("ul",{style:{margin:"4px 0 0",paddingLeft:18,fontSize:12,fontFamily:W,color:"var(--color-text-secondary)"}},r.changes.slice(0,50).map(n=>Kt.default.createElement("li",{key:`${n.level}-${n.path}`},n.level," ",n.path)),r.changes.length>50&&Kt.default.createElement("li",null,"and ",r.changes.length-50," more"))))))}var AAe=[{value:"collections",label:"Collections"},{value:"generate",label:"Generate"},{value:"import",label:"Import"}];function Aj({visit:e=0}){let[t,r]=(0,xt.useState)(()=>wj(Rn())),[n,o]=(0,xt.useState)(null),[a,i]=(0,xt.useState)(!1),[s,l]=(0,xt.useState)({agents:[],projects:[]}),[u,c]=(0,xt.useState)(null),[d,p]=(0,xt.useState)(null),[f,m]=(0,xt.useState)(!1);(0,xt.useEffect)(()=>{let v=()=>r(wj(Rn()));return window.addEventListener("popstate",v),window.addEventListener("dashboard:navigate",v),()=>{window.removeEventListener("popstate",v),window.removeEventListener("dashboard:navigate",v)}},[]);let y=(0,xt.useCallback)(async()=>{try{let v=await eo("/api/scenario_catalogs",{fallback:"Could not list the collections"});o(v.catalogs||[]),i(v.storage_available===!0),c(null)}catch(v){c(v.message)}},[]),b=(0,xt.useCallback)(async()=>{try{let[v,x]=await Promise.all([eo("/api/agents").catch(()=>({})),eo("/api/projects").catch(()=>({}))]);l({agents:(v.agents||[]).filter(S=>!S.observed),projects:x.projects||[]})}catch{}},[]);(0,xt.useEffect)(()=>{y(),b()},[y,b,e]);let g=v=>{p(null),c(null),lt(Qee(v))},h=async v=>{let x=await eo("/api/scenario_catalogs",{method:"POST",body:{catalog:v},fallback:"Could not create the collection"});m(!1),await y(),g({collectionId:x.catalogs?.[0]?.id})};return t.collectionId?xt.default.createElement(kj,{key:t.collectionId,collectionId:t.collectionId,agents:s.agents,projects:s.projects,storageAvailable:a,onBack:()=>g({}),onChanged:y,onDeleted:async()=>{await y(),g({})}}):xt.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16},"data-testid":"scenarios-view"},xt.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},xt.default.createElement("div",null,xt.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Scenarios"),xt.default.createElement("p",{style:{margin:"4px 0 0",fontSize:14,color:"var(--color-text-secondary)"}},"What your agents are evaluated on, by product and set. Write them here, generate them by exploring a project's app, or import and export them as YAML.")),t.tab==="collections"&&xt.default.createElement(ce,{variant:"primary",onClick:()=>m(v=>!v),testId:"scenarios-new-collection"},f?"Close":"New collection")),xt.default.createElement(Ka,{options:AAe,value:t.tab,onChange:v=>g({tab:v})}),u&&xt.default.createElement(ya,{tone:"error"},u),d&&xt.default.createElement(ya,null,d),t.tab==="generate"&&xt.default.createElement(_j,{projects:s.projects,collections:n||[],onAccepted:y}),t.tab==="import"&&xt.default.createElement(Cj,{onImported:async v=>{await y(),v.length===1?g({collectionId:v[0].id}):p(`Imported ${v.map(x=>x.key).join(", ")||"nothing"}.`)}}),t.tab==="collections"&&xt.default.createElement(xt.default.Fragment,null,f&&xt.default.createElement(EAe,{onCreate:h}),n===null?xt.default.createElement("p",{style:{color:"var(--color-text-secondary)"}},"Loading\u2026"):n.length===0?xt.default.createElement(je,{testId:"scenarios-empty"},xt.default.createElement("p",{style:{margin:0,color:"var(--color-text-secondary)"}},"No scenarios yet. Start a new collection, generate scenarios by exploring a project's app, or import YAML, such as the"," ",xt.default.createElement("code",null,".activeagents/evals")," directory of a connected repository.")):xt.default.createElement("div",{style:{display:"grid",gap:12}},n.map(v=>xt.default.createElement(je,{key:v.id,style:{cursor:"pointer"},onClick:()=>g({collectionId:v.id}),testId:"scenarios-collection-card"},xt.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},xt.default.createElement("div",null,xt.default.createElement("div",{style:{fontWeight:600,color:"var(--color-text-primary)"}},v.name),xt.default.createElement("div",{style:{fontSize:12,color:"var(--color-text-secondary)"}},xt.default.createElement("code",null,v.key),v.source_path?` \xB7 ${v.source_path}`:v.source_kind==="api"?" \xB7 written here":` \xB7 ${v.source_kind}`)),xt.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)",textAlign:"right"}},v.product_count," ",v.product_count===1?"product":"products"," \xB7 ",v.scenario_count," scenarios",xt.default.createElement("div",null,v.synced?"synced to storage":a?"not synced":"database only"))))))))}function EAe({onCreate:e}){let[t,r]=(0,xt.useState)(""),[n,o]=(0,xt.useState)(""),[a,i]=(0,xt.useState)(""),[s,l]=(0,xt.useState)(!1),[u,c]=(0,xt.useState)(null);return xt.default.createElement(je,{testId:"scenarios-new-collection-form"},xt.default.createElement("form",{onSubmit:async p=>{p.preventDefault(),l(!0),c(null);try{await e({name:t.trim(),key:n.trim(),description:a.trim()})}catch(f){c(f.message)}finally{l(!1)}},style:{display:"flex",flexDirection:"column",gap:10}},xt.default.createElement("div",{style:{display:"grid",gap:8,gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))"}},xt.default.createElement(Sn,{label:"Name",value:t,onChange:r,placeholder:"Support desk"}),xt.default.createElement(Sn,{label:"Key",value:n,onChange:o,placeholder:"made from the name when empty",mono:!0})),xt.default.createElement(Sn,{label:"Description",value:a,onChange:i,placeholder:"optional"}),u&&xt.default.createElement(ya,{tone:"error"},u),xt.default.createElement("div",null,xt.default.createElement(ce,{type:"submit",variant:"primary",disabled:s||!t.trim()&&!n.trim()},s?"Creating\u2026":"Create collection"))))}var dn=Z(Q());var NAe='button:not([disabled]), input:not([disabled]), [href], [tabindex]:not([tabindex="-1"])';function TAe({request:e,onSettle:t}){let[r,n]=(0,dn.useState)(""),o=(0,dn.useRef)(null),a=(0,dn.useRef)(null),i=(0,dn.useId)(),s=(0,dn.useId)(),l=SQ(e,r);(0,dn.useEffect)(()=>{let p=document.activeElement;return e.requireText?a.current?.focus():o.current?.querySelector('[data-testid="confirm-cancel"]')?.focus(),()=>p?.focus?.()},[e]);let u=()=>{l&&t(!0)},c=p=>{if(p.key==="Escape"){p.preventDefault(),t(!1);return}if(p.key!=="Tab")return;let f=[...o.current?.querySelectorAll(NAe)||[]];if(f.length===0)return;let m=f[0],y=f[f.length-1];p.shiftKey&&document.activeElement===m?(p.preventDefault(),y.focus()):!p.shiftKey&&document.activeElement===y&&(p.preventDefault(),m.focus())},d=e.danger?{background:"var(--color-error)",color:"#fff"}:void 0;return dn.default.createElement("div",{"data-testid":"confirm-overlay",onMouseDown:p=>{p.target===p.currentTarget&&t(!1)},style:{position:"fixed",inset:0,zIndex:70,padding:16,background:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center"}},dn.default.createElement("div",{ref:o,role:"alertdialog","aria-modal":"true","aria-labelledby":i,"aria-describedby":s,"data-testid":"confirm-dialog",onKeyDown:c,style:{width:"100%",maxWidth:440,padding:20,borderRadius:12,background:"var(--color-surface)",border:"1px solid var(--color-border)",color:"var(--color-text-primary)",boxShadow:"0 20px 40px rgba(0, 0, 0, 0.25)"}},dn.default.createElement("h2",{id:i,style:{margin:0,fontSize:16,fontWeight:600}},e.title),dn.default.createElement("div",{id:s},e.message&&dn.default.createElement("p",{style:{margin:"8px 0 0",fontSize:13,lineHeight:1.5,color:"var(--color-text-secondary)"}},e.message),e.requireText&&dn.default.createElement("label",{style:{display:"block",marginTop:14,fontSize:13,color:"var(--color-text-secondary)"}},"Type ",dn.default.createElement("code",{style:{fontFamily:"var(--font-mono)",color:"var(--color-text-primary)",fontWeight:600}},e.requireText)," to confirm.",dn.default.createElement("input",{ref:a,type:"text",value:r,autoComplete:"off",spellCheck:!1,"data-testid":"confirm-input","aria-label":`Type ${e.requireText} to confirm`,onChange:p=>n(p.target.value),onKeyDown:p=>{p.key==="Enter"&&(p.preventDefault(),u())},style:{display:"block",width:"100%",marginTop:6,padding:"8px 10px",borderRadius:8,boxSizing:"border-box",fontFamily:"var(--font-mono)",fontSize:13,color:"var(--color-text-primary)",background:"var(--color-background-page)",border:"1px solid var(--color-border-strong)"}}))),dn.default.createElement("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:18}},dn.default.createElement(ce,{testId:"confirm-cancel",onClick:()=>t(!1)},e.cancelLabel),dn.default.createElement(ce,{testId:"confirm-confirm",variant:"primary",onClick:u,disabled:!l,style:d},e.confirmLabel))))}function cte(){let[e,t]=(0,dn.useState)(bQ());return(0,dn.useEffect)(()=>wQ(t),[]),e?dn.default.createElement(TAe,{key:PAe(e),request:e,onSettle:xQ}):null}var Ej=new WeakMap,OAe=0;function PAe(e){return Ej.has(e)||Ej.set(e,++OAe),Ej.get(e)}function MAe({user:e,initialAgents:t=[],meta:r={},account:n=null,subscription:o=null}){let{darkMode:a}=ut(),[i,s]=(0,Nt.useState)(t),[l,u]=(0,Nt.useState)("list"),[c,d]=(0,Nt.useState)(null),[p,f]=(0,Nt.useState)(!1),[m,y]=(0,Nt.useState)(null),[b,g]=(0,Nt.useState)(!1),[h,v]=(0,Nt.useState)("recent"),[x,S]=(0,Nt.useState)({messages:[]}),[k,w]=(0,Nt.useState)(null),_=xY(r),[A,C]=(0,Nt.useState)(null),{requests:N}=RC({refreshKey:l}),[L,J]=(0,Nt.useState)(0),[B,K]=(0,Nt.useState)(null);(0,Nt.useEffect)(()=>{let le=()=>{let R=bY(Rn(),_);R.focusServer&&C(R.focusServer),R.sessionId&&K({kind:R.sessionKind,id:R.sessionId}),R.replacePath&&window.history.replaceState({},"",Re(R.replacePath)),R.agentId?T(R.agentId,R.view):u(R.view)};return le(),window.addEventListener("popstate",le),window.addEventListener("dashboard:navigate",le),()=>{window.removeEventListener("popstate",le),window.removeEventListener("dashboard:navigate",le)}},[]);let T=async(le,R)=>{f(!0);try{let He=await(await fetch(`/api/agents/${le}`)).json();d(He.agent),u(R)}catch{M("Failed to load agent","error")}finally{f(!1)}},P=async(le=h)=>{f(!0);try{let te=await(await fetch(`/api/agents?sort=${le}`)).json();s(te.agents)}catch{M("Failed to refresh agents","error")}finally{f(!1)}},I=le=>{v(le),P(le)},M=(le,R="info")=>{y({message:le,type:R}),setTimeout(()=>y(null),3e3)},j=(le,R=null)=>{let te=ZC(le,{agent:R,features:_});te!==null&&window.history.pushState({},"",Re(te))},O=async le=>{f(!0);try{let R=await fetch("/api/agents",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent:le})});if(R.ok){let _e=await R.json();return s([_e.agent,...i]),d(_e.agent),u("editor"),M("Agent created successfully!","success"),j("editor",_e.agent),null}let te=await R.json().catch(()=>({})),He={errors:te.errors?.length?te.errors:[te.error||`Failed to create agent (${R.status})`],fieldErrors:te.field_errors||{}};return M(He.errors.join(", "),"error"),He}catch{return M("Failed to create agent","error"),{errors:["Failed to create agent: the request did not complete"],fieldErrors:{}}}finally{f(!1)}},F=async(le,R)=>{f(!0);try{let te=await fetch(`/api/agents/${le}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent:R})});if(te.ok){let He=await te.json();s(i.map(_e=>_e.id===le?He.agent:_e)),d(He.agent),M("Agent updated!","success")}else{let He=await te.json();M(He.errors?.join(", ")||"Failed to update agent","error")}}catch{M("Failed to update agent","error")}finally{f(!1)}},V=async le=>{let R=i.find(te=>te.id===le);if(await Wr({title:R?`Delete ${R.name}?`:"Delete this agent?",message:"Its versions and run history are deleted with it. This cannot be undone.",confirmLabel:"Delete agent",danger:!0,requireText:R?.name})){f(!0);try{(await fetch(`/api/agents/${le}`,{method:"DELETE"})).ok&&(s(i.filter(He=>He.id!==le)),d(null),u("list"),M("Agent deleted","success"),j("list"))}catch{M("Failed to delete agent","error")}finally{f(!1)}}},z=async le=>{f(!0);try{let R=await fetch(`/api/agents/${le}/duplicate`,{method:"POST"});if(R.ok){let te=await R.json();s([te.agent,...i]),M("Agent duplicated!","success")}}catch{M("Failed to duplicate agent","error")}finally{f(!1)}},G=le=>{s([le,...i]),g(!1),M("Agent created from template!","success"),oe("editor",le)},q=["editor","runner","agent-analytics","history"],oe=(le,R=null)=>{r0(le,_)&&(J(te=>te+1),le==="builder"&&w(null),R?.id&&q.includes(le)&&R.instructions===void 0?T(R.id,le):(d(R),u(le)),j(le,R))},Me={assistant:()=>Nt.default.createElement(K3,{session:x,onSessionChange:S,executionEnabled:r.executionEnabled!==!1,onOpenSettings:()=>oe("settings"),onReviewDraft:le=>{w(le),u("builder"),j("builder")}}),builder:()=>Nt.default.createElement(AT,{key:k?.id||"new-agent",initialDraft:k,meta:r,onSave:O,onCancel:()=>oe(k?"assistant":"list"),isLoading:p}),editor:()=>c?Nt.default.createElement(G2,{key:`editor-${c.id}`,agent:c,meta:r,onSave:le=>F(c.id,le),onDelete:()=>V(c.id),onRun:()=>oe("runner",c),onDuplicate:()=>z(c.id),onRunReport:()=>oe("history",c),onBack:()=>oe("list"),isLoading:p}):null,runner:()=>c?Nt.default.createElement(JD,{key:`runner-${c.id}-${window.location.search}`,agent:c,recorderUrl:r.recorderUrl,freshConversation:new URLSearchParams(window.location.search).has("new"),onBack:()=>oe("editor",c)}):null,"agent-analytics":()=>c?Nt.default.createElement(G2,{key:`agent-analytics-${c.id}`,agent:c,meta:r,initialTab:"metrics",onSave:le=>F(c.id,le),onDelete:()=>V(c.id),onRun:()=>oe("runner",c),onDuplicate:()=>z(c.id),onRunReport:()=>oe("history",c),onBack:()=>oe("list"),isLoading:p}):null,history:()=>c?Nt.default.createElement(RD,{agent:c,onBack:()=>oe("editor",c)}):null,analytics:()=>Nt.default.createElement(QD,{onSelectAgent:le=>{T(le.id,"agent-analytics")}}),traces:()=>Nt.default.createElement(Jp,null),metrics:()=>Nt.default.createElement(p3,null),interactions:()=>Nt.default.createElement($u,null),tools:()=>Nt.default.createElement(f3,{onOpenServer:le=>{C(le),oe("mcp")}}),mcp:()=>Nt.default.createElement(m3,{focusServer:A,onOpenTools:()=>{C(null),oe("tools")}}),evaluations:()=>Nt.default.createElement(V0,null),projects:()=>Nt.default.createElement(vj,{visit:L}),scenarios:()=>Nt.default.createElement(Aj,{visit:L}),sessions:()=>Nt.default.createElement(I3,{agents:i,user:e}),exploration:()=>Nt.default.createElement(xj,{visit:L}),replay:()=>B?Nt.default.createElement(N3,{key:`${B.kind}-${B.id}`,kind:B.kind,id:B.id,onHandoff:le=>{let R=le?.handoff_state||{};R.url&&window.open(R.url,"_blank","noopener,noreferrer");let te=Object.entries(R.form_values||{}).map(([He,_e])=>`${He}: ${_e}`).join(" \xB7 ");M(R.url?`Taking over in a new tab${te?` \u2014 already entered: ${te}`:""}`:"Taking over session...","info")},onBack:()=>ER(window.history.state)?window.history.back():oe("sessions")}):null,sandbox:()=>Nt.default.createElement(b3,{initialType:"playwright_mcp",showAgents:!0,onClose:()=>oe("list")}),organization:()=>Nt.default.createElement(D3,{user:e,account:n,subscription:o,agentCount:i.length}),settings:()=>Nt.default.createElement(H3,{user:e}),list:()=>Nt.default.createElement(yT,{agents:i,meta:r,onSelect:le=>oe("editor",le),onNew:()=>oe("builder"),onBrowseTemplates:()=>g(!0),onDuplicate:z,onDelete:V,onRefresh:P,sort:h,onSortChange:I,isLoading:p})},fe=()=>r0(l,_)?(Me[l]||Me.list)():null;return Nt.default.createElement("div",{className:`aa-dashboard min-h-screen flex${a?" theme-dark":""}`,style:{backgroundColor:a?"#0f0f0f":"#f9fafb"}},Nt.default.createElement(t3,{currentView:wY(l),onNavigate:oe,agentCount:i.length,pendingInputCount:AY(N),account:n,user:e,gemVersion:r.activeagentVersion,features:_}),Nt.default.createElement("div",{className:"flex-1 flex flex-col min-w-0"},Nt.default.createElement(r3,{user:e,account:n}),Nt.default.createElement("main",{className:"flex-1 p-6 overflow-x-clip"},fe())),b&&Nt.default.createElement(e3,{onUseTemplate:G,onClose:()=>g(!1)}),Nt.default.createElement(cte,null),m&&Nt.default.createElement("div",{className:`fixed bottom-4 right-4 z-[60] px-6 py-3 rounded-lg shadow-lg transition-all transform ${m.type==="error"?"bg-red-500":m.type==="success"?"bg-green-500":"bg-blue-500"} text-white`},m.message),p&&Nt.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-20 flex items-center justify-center z-50"},Nt.default.createElement("div",{className:`rounded-lg p-4 shadow-xl ${a?"bg-gray-800":"bg-white"}`},Nt.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}))))}function Nj(e){return Nt.default.createElement(P6,null,Nt.default.createElement(LG,null,Nt.default.createElement(MAe,{...e})))}var IAe=new Set(["POST","PUT","PATCH","DELETE"]);function DAe(e,t,{base:r="",csrfToken:n,origin:o}){let a;if(typeof e=="string"){if(!e.startsWith("/api/"))return null;a=`${r}${e}`}else if(typeof Request<"u"&&e instanceof Request){let u=new URL(e.url,o);if(u.origin!==o||!u.pathname.startsWith("/api/"))return null;a=`${o}${r}${u.pathname}${u.search}`}else return null;let i=typeof e=="string"?a:new Request(a,e),s=(t?.method||(typeof e=="string"?"GET":e.method)).toUpperCase();if(!IAe.has(s)||!n)return[i,t];let l=new Headers(t?.headers??(typeof e=="string"?void 0:e.headers));return l.has("X-CSRF-Token")||l.set("X-CSRF-Token",n),[i,{...t,headers:l}]}function jAe(e=globalThis.document){return e?.querySelector('meta[name="csrf-token"]')?.content||null}function dte(e,t=globalThis){let r=e.replace(/\/$/,""),n=t.fetch.bind(t);t.fetch=(o,a)=>{let i=DAe(o,a,{base:r,csrfToken:jAe(),origin:t.location.origin});return i?n(...i):n(o,a)}}var $Ae="active-agent-dashboard";function pte(){let e=document.getElementById($Ae);if(!e)return;let t=JSON.parse(e.dataset.props||"{}");window.ACTIVE_AGENT_DASHBOARD=t,dte(t.mountPath||"/"),(0,mte.createRoot)(e).render(fte.default.createElement(Nj,{...t}))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",pte):pte(); /*! Bundled license information: react/cjs/react.production.js: diff --git a/actionagent/frontend/components/dashboard/Header.jsx b/actionagent/frontend/components/dashboard/Header.jsx index 4a0c6b74f..41921ece0 100644 --- a/actionagent/frontend/components/dashboard/Header.jsx +++ b/actionagent/frontend/components/dashboard/Header.jsx @@ -69,7 +69,8 @@ export default function Header({ user, account }) { {/* Right side - User controls */}
- {/* Dark mode toggle */} + {/* One-click flip to the opposite of what shows, saved as a fixed + choice; Settings → Appearance has System, Light and Dark. */} + {/* System follows the OS appearance and changes with it. */} +
diff --git a/actionagent/frontend/contexts/ThemeContext.jsx b/actionagent/frontend/contexts/ThemeContext.jsx index 09994ebdf..a8798a4ee 100644 --- a/actionagent/frontend/contexts/ThemeContext.jsx +++ b/actionagent/frontend/contexts/ThemeContext.jsx @@ -1,40 +1,44 @@ -import React, { createContext, useContext, useState, useEffect } from 'react'; +import React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react'; +import { readThemeChoice, resolveDarkMode, systemDarkQuery, THEME_CHOICES, toggledChoice, writeThemeChoice } from '../utils/theme.mjs'; const ThemeContext = createContext(); +// `theme` is the viewer's choice: 'system' (the default) follows the OS +// appearance and changes with it; 'light' and 'dark' are fixed. `darkMode` +// is what shows, and what every component reads. `setTheme` saves a +// choice; `toggleDarkMode` is the one-click flip, which saves the opposite +// of what shows as a fixed choice. export function ThemeProvider({ children }) { - const [darkMode, setDarkMode] = useState(() => { - // Check localStorage first - const saved = localStorage.getItem('dashboard-theme'); - if (saved) return saved === 'dark'; - // Fall back to system preference - return window.matchMedia('(prefers-color-scheme: dark)').matches; - }); + const [theme, setThemeState] = useState(() => readThemeChoice(globalThis.localStorage)); + const [systemDark, setSystemDark] = useState(() => Boolean(systemDarkQuery()?.matches)); + // Follow the OS while the page is open. The listener stays on whatever + // the choice is, so switching back to 'system' shows the current + // appearance at once. useEffect(() => { - localStorage.setItem('dashboard-theme', darkMode ? 'dark' : 'light'); - }, [darkMode]); + const query = systemDarkQuery(); + if (!query) return undefined; + const handler = (event) => setSystemDark(event.matches); + setSystemDark(query.matches); + query.addEventListener('change', handler); + return () => query.removeEventListener('change', handler); + }, []); - // Listen for system preference changes - useEffect(() => { - const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)'); - const handler = (e) => { - // Only update if user hasn't explicitly set a preference - if (!localStorage.getItem('dashboard-theme')) { - setDarkMode(e.matches); - } - }; - mediaQuery.addEventListener('change', handler); - return () => mediaQuery.removeEventListener('change', handler); + const setTheme = useCallback((choice) => { + const next = THEME_CHOICES.includes(choice) ? choice : 'system'; + setThemeState(next); + writeThemeChoice(globalThis.localStorage, next); }, []); - const toggleDarkMode = () => setDarkMode(!darkMode); + const darkMode = resolveDarkMode(theme, systemDark); + const toggleDarkMode = useCallback(() => setTheme(toggledChoice(darkMode)), [darkMode, setTheme]); - return ( - - {children} - + const value = useMemo( + () => ({ darkMode, theme, systemDark, setTheme, toggleDarkMode }), + [darkMode, theme, systemDark, setTheme, toggleDarkMode], ); + + return {children}; } export function useTheme() { diff --git a/actionagent/frontend/test/settingsCards.test.mjs b/actionagent/frontend/test/settingsCards.test.mjs index 94cdf5055..280798401 100644 --- a/actionagent/frontend/test/settingsCards.test.mjs +++ b/actionagent/frontend/test/settingsCards.test.mjs @@ -75,6 +75,23 @@ function listedRepositories(html) { .map(([, checked, name]) => [name, Boolean(checked)]); } +// The Appearance card is on the profile tab; the query string is read on +// each render, so the test points it there and back. +function renderProfile(props) { + const search = window.location.search; + window.location.search = '?tab=profile'; + try { return render('SettingsView', props); } finally { window.location.search = search; } +} + +test('the appearance card offers System, Light and Dark and marks the saved choice', () => { + const html = renderProfile({ user: { name: 'Ada', email: 'ada@example.com' }, account: { name: 'Acme' } }); + const buttons = [...html.matchAll(/