diff --git a/CHANGELOG.md b/CHANGELOG.md index d0813ca9..13076a03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,19 +9,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- **Schema tools can be defined at runtime.** `ActiveAgent::SchemaTools.define(Reservation, - filterable:, returns:, scope: | policy:)` builds the same bounded roster a - file under `app/agent_tools` would — same allowlists, same `call`, named - `ReservationTools` for logs — from a declaration held anywhere: a table, a - dashboard form, a test. The class is registered under its model and a - redefinition replaces the previous one, so a registry rebuilt on every - change holds one class per model; `undefine` drops it. The dashboard - discovers registry entries beside the files and lets a runtime definition - supersede a file for the same model. What is persisted, and where, stays the - host's decision; this is the seam a persisted declaration builds on. (#441) - ### Fixed +- **The caller can no longer be named by the model, or by the client.** + `actor:` reached `AgentToolbox.call` in the same keyword namespace as the + arguments a provider parsed out of a model's tool call, and + `params[params][actor]` in an execute request would have won over the + controller's own. Both are now stripped: the caller is a property of the + run, set once by whatever authenticated it. Scoped `SchemaTools` reads are + also excluded from the tool-result cache, so one caller's rows are never + replayed for the next. - **A superseded runtime tool class is no longer offered twice.** Discovery read every `SchemaTools` subclass out of `descendants`, where a class built at runtime stays until it is collected, so rebuilding a model's tools diff --git a/actionagent/app/assets/builds/action_agent.css b/actionagent/app/assets/builds/action_agent.css index f101ec7f..b7ea0983 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;--tw-ease: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-100:oklch(95.4% .038 75.164);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-200:oklch(92.4% .12 95.746);--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-100:oklch(96.2% .044 156.743);--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-100:oklch(93.2% .032 255.585);--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-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;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--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}.-top-0\.5{top:calc(var(--spacing) * -.5)}.-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-50{z-index:50}.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-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-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-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-\[500px\]{height:500px}.h-full{height:100%}.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-96{max-height:calc(var(--spacing) * 96)}.max-h-\[90vh\]{max-height:90vh}.max-h-full{max-height:100%}.min-h-screen{min-height:100vh}.w-1{width:var(--spacing)}.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-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.min-w-\[4\.5rem\]{min-width:4.5rem}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-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-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.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-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-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-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-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-black{background-color:var(--color-black)}.bg-black\/75{background-color:#000000bf}@supports (color:color-mix(in lab, red, red)){.bg-black\/75{background-color:color-mix(in oklab, var(--color-black) 75%, transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-500{background-color:var(--color-blue-500)}.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-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-100{background-color:var(--color-green-100)}.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-indigo-50{background-color:var(--color-indigo-50)}.bg-orange-100{background-color:var(--color-orange-100)}.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-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\/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-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-red-500{--tw-gradient-from:var(--color-red-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))}.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))}.to-rose-500{--tw-gradient-to: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))}.object-contain{object-fit:contain}.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)}.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-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-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.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-orange-600{color:var(--color-orange-600)}.text-purple-700{color:var(--color-purple-700)}.text-red-300{color:var(--color-red-300)}.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-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))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.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-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-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-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\:from-red-600:hover{--tw-gradient-from:var(--color-red-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))}.hover\:to-rose-600:hover{--tw-gradient-to:var(--color-rose-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))}.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\: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-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-rose-500:focus{--tw-ring-color:var(--color-rose-500)}.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}@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\: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))}}@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;--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}.aa-dashboard .aa-chevron{transition:transform .15s;display:inline-block}.aa-dashboard .aa-chevron[data-open=true]{transform:rotate(90deg)}@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}@property --tw-ease{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;--tw-ease: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-100:oklch(95.4% .038 75.164);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-200:oklch(92.4% .12 95.746);--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-100:oklch(96.2% .044 156.743);--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-100:oklch(93.2% .032 255.585);--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-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;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--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}.-top-0\.5{top:calc(var(--spacing) * -.5)}.-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-50{z-index:50}.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-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-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-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-\[500px\]{height:500px}.h-full{height:100%}.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-96{max-height:calc(var(--spacing) * 96)}.max-h-\[90vh\]{max-height:90vh}.max-h-full{max-height:100%}.min-h-screen{min-height:100vh}.w-1{width:var(--spacing)}.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-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.min-w-\[4\.5rem\]{min-width:4.5rem}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-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-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.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-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-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-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-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-black{background-color:var(--color-black)}.bg-black\/75{background-color:#000000bf}@supports (color:color-mix(in lab, red, red)){.bg-black\/75{background-color:color-mix(in oklab, var(--color-black) 75%, transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-500{background-color:var(--color-blue-500)}.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-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-100{background-color:var(--color-green-100)}.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-indigo-50{background-color:var(--color-indigo-50)}.bg-orange-100{background-color:var(--color-orange-100)}.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-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\/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-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-red-500{--tw-gradient-from:var(--color-red-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))}.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))}.to-rose-500{--tw-gradient-to: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))}.object-contain{object-fit:contain}.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)}.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-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-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.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-orange-600{color:var(--color-orange-600)}.text-purple-700{color:var(--color-purple-700)}.text-red-300{color:var(--color-red-300)}.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-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))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.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-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-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-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\:from-red-600:hover{--tw-gradient-from:var(--color-red-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))}.hover\:to-rose-600:hover{--tw-gradient-to:var(--color-rose-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))}.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\: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-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-rose-500:focus{--tw-ring-color:var(--color-rose-500)}.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}@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\: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))}}@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;--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}.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)}@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}@property --tw-ease{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 d35ed783..52681f9b 100644 --- a/actionagent/app/assets/builds/action_agent.js +++ b/actionagent/app/assets/builds/action_agent.js @@ -1,83 +1,83 @@ -var B$=Object.create;var aw=Object.defineProperty;var $$=Object.getOwnPropertyDescriptor;var U$=Object.getOwnPropertyNames;var F$=Object.getPrototypeOf,W$=Object.prototype.hasOwnProperty;var Xr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),H$=(e,t)=>{for(var r in t)aw(e,r,{get:t[r],enumerable:!0})},V$=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of U$(t))!W$.call(e,a)&&a!==r&&aw(e,a,{get:()=>t[a],enumerable:!(n=$$(t,a))||n.enumerable});return e};var re=(e,t,r)=>(r=e!=null?B$(F$(e)):{},V$(t||!e||!e.__esModule?aw(r,"default",{value:e,enumerable:!0}):r,e));var H_=Xr(Ze=>{"use strict";var lw=Symbol.for("react.transitional.element"),K$=Symbol.for("react.portal"),q$=Symbol.for("react.fragment"),Y$=Symbol.for("react.strict_mode"),G$=Symbol.for("react.profiler"),X$=Symbol.for("react.consumer"),Z$=Symbol.for("react.context"),Q$=Symbol.for("react.forward_ref"),J$=Symbol.for("react.suspense"),R$=Symbol.for("react.memo"),L_=Symbol.for("react.lazy"),eU=Symbol.for("react.activity"),D_=Symbol.iterator;function tU(e){return e===null||typeof e!="object"?null:(e=D_&&e[D_]||e["@@iterator"],typeof e=="function"?e:null)}var B_={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},$_=Object.assign,U_={};function sc(e,t,r){this.props=e,this.context=t,this.refs=U_,this.updater=r||B_}sc.prototype.isReactComponent={};sc.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")};sc.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function F_(){}F_.prototype=sc.prototype;function sw(e,t,r){this.props=e,this.context=t,this.refs=U_,this.updater=r||B_}var uw=sw.prototype=new F_;uw.constructor=sw;$_(uw,sc.prototype);uw.isPureReactComponent=!0;var I_=Array.isArray;function ow(){}var Zt={H:null,A:null,T:null,S:null},W_=Object.prototype.hasOwnProperty;function cw(e,t,r){var n=r.ref;return{$$typeof:lw,type:e,key:t,ref:n!==void 0?n:null,props:r}}function rU(e,t){return cw(e.type,t,e.props)}function dw(e){return typeof e=="object"&&e!==null&&e.$$typeof===lw}function nU(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(r){return t[r]})}var j_=/\/+/g;function iw(e,t){return typeof e=="object"&&e!==null&&e.key!=null?nU(""+e.key):t.toString(36)}function aU(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(ow,ow):(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 lc(e,t,r,n,a){var i=typeof e;(i==="undefined"||i==="boolean")&&(e=null);var o=!1;if(e===null)o=!0;else switch(i){case"bigint":case"string":case"number":o=!0;break;case"object":switch(e.$$typeof){case lw:case K$:o=!0;break;case L_:return o=e._init,lc(o(e._payload),t,r,n,a)}}if(o)return a=a(e),o=n===""?"."+iw(e,0):n,I_(a)?(r="",o!=null&&(r=o.replace(j_,"$&/")+"/"),lc(a,t,r,"",function(u){return u})):a!=null&&(dw(a)&&(a=rU(a,r+(a.key==null||e&&e.key===a.key?"":(""+a.key).replace(j_,"$&/")+"/")+o)),t.push(a)),1;o=0;var l=n===""?".":n+":";if(I_(e))for(var s=0;s{"use strict";V_.exports=H_()});var e5=Xr(ar=>{"use strict";function vw(e,t){var r=e.length;e.push(t);e:for(;0>>1,a=e[n];if(0>>1;ncg(l,r))scg(u,l)?(e[n]=u,e[s]=r,n=s):(e[n]=l,e[o]=r,n=o);else if(scg(u,r))e[n]=u,e[s]=r,n=s;else break e}}return t}function cg(e,t){var r=e.sortIndex-t.sortIndex;return r!==0?r:e.id-t.id}ar.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(K_=performance,ar.unstable_now=function(){return K_.now()}):(fw=Date,q_=fw.now(),ar.unstable_now=function(){return fw.now()-q_});var K_,fw,q_,to=[],il=[],lU=1,_a=null,gn=3,gw=!1,Yf=!1,Gf=!1,yw=!1,X_=typeof setTimeout=="function"?setTimeout:null,Z_=typeof clearTimeout=="function"?clearTimeout:null,Y_=typeof setImmediate<"u"?setImmediate:null;function dg(e){for(var t=Oi(il);t!==null;){if(t.callback===null)fg(il);else if(t.startTime<=e)fg(il),t.sortIndex=t.expirationTime,vw(to,t);else break;t=Oi(il)}}function hw(e){if(Gf=!1,dg(e),!Yf)if(Oi(to)!==null)Yf=!0,cc||(cc=!0,uc());else{var t=Oi(il);t!==null&&xw(hw,t.startTime-e)}}var cc=!1,Xf=-1,Q_=5,J_=-1;function R_(){return yw?!0:!(ar.unstable_now()-J_e&&R_());){var n=_a.callback;if(typeof n=="function"){_a.callback=null,gn=_a.priorityLevel;var a=n(_a.expirationTime<=e);if(e=ar.unstable_now(),typeof a=="function"){_a.callback=a,dg(e),t=!0;break t}_a===Oi(to)&&fg(to),dg(e)}else fg(to);_a=Oi(to)}if(_a!==null)t=!0;else{var i=Oi(il);i!==null&&xw(hw,i.startTime-e),t=!1}}break e}finally{_a=null,gn=r,gw=!1}t=void 0}}finally{t?uc():cc=!1}}}var uc;typeof Y_=="function"?uc=function(){Y_(pw)}:typeof MessageChannel<"u"?(mw=new MessageChannel,G_=mw.port2,mw.port1.onmessage=pw,uc=function(){G_.postMessage(null)}):uc=function(){X_(pw,0)};var mw,G_;function xw(e,t){Xf=X_(function(){e(ar.unstable_now())},t)}ar.unstable_IdlePriority=5;ar.unstable_ImmediatePriority=1;ar.unstable_LowPriority=4;ar.unstable_NormalPriority=3;ar.unstable_Profiling=null;ar.unstable_UserBlockingPriority=2;ar.unstable_cancelCallback=function(e){e.callback=null};ar.unstable_forceFrameRate=function(e){0>e||125n?(e.sortIndex=r,vw(il,e),Oi(to)===null&&e===Oi(il)&&(Gf?(Z_(Xf),Xf=-1):Gf=!0,xw(hw,r-n))):(e.sortIndex=a,vw(to,e),Yf||gw||(Yf=!0,cc||(cc=!0,uc()))),e};ar.unstable_shouldYield=R_;ar.unstable_wrapCallback=function(e){var t=gn;return function(){var r=gn;gn=t;try{return e.apply(this,arguments)}finally{gn=r}}}});var r5=Xr((Zue,t5)=>{"use strict";t5.exports=e5()});var a5=Xr(En=>{"use strict";var sU=ne();function n5(e){var t="https://react.dev/errors/"+e;if(1{"use strict";function i5(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i5)}catch(e){console.error(e)}}i5(),o5.exports=a5()});var h3=Xr(By=>{"use strict";var Fr=r5(),PO=ne(),dU=Qf();function ce(e){var t="https://react.dev/errors/"+e;if(1yc||(e.current=aS[yc],aS[yc]=null,yc--)}function Vt(e,t){yc++,aS[yc]=e.current,e.current=t}var Di=Ii(null),Ap=Ii(null),hl=Ii(null),Yg=Ii(null);function Gg(e,t){switch(Vt(hl,t),Vt(Ap,e),Vt(Di,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?vO(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=vO(t),e=a3(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}Jr(Di),Vt(Di,e)}function jc(){Jr(Di),Jr(Ap),Jr(hl)}function iS(e){e.memoizedState!==null&&Vt(Yg,e);var t=Di.current,r=a3(t,e.type);t!==r&&(Vt(Ap,e),Vt(Di,r))}function Xg(e){Ap.current===e&&(Jr(Di),Jr(Ap)),Yg.current===e&&(Jr(Yg),Ip._currentValue=Ts)}var bw,u5;function Cs(e){if(bw===void 0)try{throw Error()}catch(r){var t=r.stack.trim().match(/\n( *(at )?)/);bw=t&&t[1]||"",u5=-1()=>(t||e((t={exports:{}}).exports,t),t.exports),fU=(e,t)=>{for(var r in t)fw(e,r,{get:t[r],enumerable:!0})},pU=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of uU(t))!dU.call(e,a)&&a!==r&&fw(e,a,{get:()=>t[a],enumerable:!(n=sU(t,a))||n.enumerable});return e};var te=(e,t,r)=>(r=e!=null?lU(cU(e)):{},pU(t||!e||!e.__esModule?fw(r,"default",{value:e,enumerable:!0}):r,e));var n5=Jr(Je=>{"use strict";var vw=Symbol.for("react.transitional.element"),mU=Symbol.for("react.portal"),vU=Symbol.for("react.fragment"),gU=Symbol.for("react.strict_mode"),yU=Symbol.for("react.profiler"),hU=Symbol.for("react.consumer"),xU=Symbol.for("react.context"),bU=Symbol.for("react.forward_ref"),wU=Symbol.for("react.suspense"),SU=Symbol.for("react.memo"),Q_=Symbol.for("react.lazy"),AU=Symbol.for("react.activity"),Y_=Symbol.iterator;function kU(e){return e===null||typeof e!="object"?null:(e=Y_&&e[Y_]||e["@@iterator"],typeof e=="function"?e:null)}var J_={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},R_=Object.assign,e5={};function fc(e,t,r){this.props=e,this.context=t,this.refs=e5,this.updater=r||J_}fc.prototype.isReactComponent={};fc.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")};fc.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function t5(){}t5.prototype=fc.prototype;function gw(e,t,r){this.props=e,this.context=t,this.refs=e5,this.updater=r||J_}var yw=gw.prototype=new t5;yw.constructor=gw;R_(yw,fc.prototype);yw.isPureReactComponent=!0;var G_=Array.isArray;function mw(){}var Qt={H:null,A:null,T:null,S:null},r5=Object.prototype.hasOwnProperty;function hw(e,t,r){var n=r.ref;return{$$typeof:vw,type:e,key:t,ref:n!==void 0?n:null,props:r}}function NU(e,t){return hw(e.type,t,e.props)}function xw(e){return typeof e=="object"&&e!==null&&e.$$typeof===vw}function CU(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(r){return t[r]})}var X_=/\/+/g;function pw(e,t){return typeof e=="object"&&e!==null&&e.key!=null?CU(""+e.key):t.toString(36)}function EU(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(mw,mw):(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 dc(e,t,r,n,a){var o=typeof e;(o==="undefined"||o==="boolean")&&(e=null);var i=!1;if(e===null)i=!0;else switch(o){case"bigint":case"string":case"number":i=!0;break;case"object":switch(e.$$typeof){case vw:case mU:i=!0;break;case Q_:return i=e._init,dc(i(e._payload),t,r,n,a)}}if(i)return a=a(e),i=n===""?"."+pw(e,0):n,G_(a)?(r="",i!=null&&(r=i.replace(X_,"$&/")+"/"),dc(a,t,r,"",function(u){return u})):a!=null&&(xw(a)&&(a=NU(a,r+(a.key==null||e&&e.key===a.key?"":(""+a.key).replace(X_,"$&/")+"/")+i)),t.push(a)),1;i=0;var l=n===""?".":n+":";if(G_(e))for(var s=0;s{"use strict";a5.exports=n5()});var m5=Jr(or=>{"use strict";function Aw(e,t){var r=e.length;e.push(t);e:for(;0>>1,a=e[n];if(0>>1;ngg(l,r))sgg(u,l)?(e[n]=u,e[s]=r,n=s):(e[n]=l,e[i]=r,n=i);else if(sgg(u,r))e[n]=u,e[s]=r,n=s;else break e}}return t}function gg(e,t){var r=e.sortIndex-t.sortIndex;return r!==0?r:e.id-t.id}or.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(o5=performance,or.unstable_now=function(){return o5.now()}):(bw=Date,i5=bw.now(),or.unstable_now=function(){return bw.now()-i5});var o5,bw,i5,oi=[],sl=[],TU=1,Ta=null,xn=3,kw=!1,Jf=!1,Rf=!1,Nw=!1,u5=typeof setTimeout=="function"?setTimeout:null,c5=typeof clearTimeout=="function"?clearTimeout:null,l5=typeof setImmediate<"u"?setImmediate:null;function yg(e){for(var t=Po(sl);t!==null;){if(t.callback===null)hg(sl);else if(t.startTime<=e)hg(sl),t.sortIndex=t.expirationTime,Aw(oi,t);else break;t=Po(sl)}}function Cw(e){if(Rf=!1,yg(e),!Jf)if(Po(oi)!==null)Jf=!0,mc||(mc=!0,pc());else{var t=Po(sl);t!==null&&Ew(Cw,t.startTime-e)}}var mc=!1,ep=-1,d5=5,f5=-1;function p5(){return Nw?!0:!(or.unstable_now()-f5e&&p5());){var n=Ta.callback;if(typeof n=="function"){Ta.callback=null,xn=Ta.priorityLevel;var a=n(Ta.expirationTime<=e);if(e=or.unstable_now(),typeof a=="function"){Ta.callback=a,yg(e),t=!0;break t}Ta===Po(oi)&&hg(oi),yg(e)}else hg(oi);Ta=Po(oi)}if(Ta!==null)t=!0;else{var o=Po(sl);o!==null&&Ew(Cw,o.startTime-e),t=!1}}break e}finally{Ta=null,xn=r,kw=!1}t=void 0}}finally{t?pc():mc=!1}}}var pc;typeof l5=="function"?pc=function(){l5(ww)}:typeof MessageChannel<"u"?(Sw=new MessageChannel,s5=Sw.port2,Sw.port1.onmessage=ww,pc=function(){s5.postMessage(null)}):pc=function(){u5(ww,0)};var Sw,s5;function Ew(e,t){ep=u5(function(){e(or.unstable_now())},t)}or.unstable_IdlePriority=5;or.unstable_ImmediatePriority=1;or.unstable_LowPriority=4;or.unstable_NormalPriority=3;or.unstable_Profiling=null;or.unstable_UserBlockingPriority=2;or.unstable_cancelCallback=function(e){e.callback=null};or.unstable_forceFrameRate=function(e){0>e||125n?(e.sortIndex=r,Aw(sl,e),Po(oi)===null&&e===Po(sl)&&(Rf?(c5(ep),ep=-1):Rf=!0,Ew(Cw,r-n))):(e.sortIndex=a,Aw(oi,e),Jf||kw||(Jf=!0,mc||(mc=!0,pc()))),e};or.unstable_shouldYield=p5;or.unstable_wrapCallback=function(e){var t=xn;return function(){var r=xn;xn=t;try{return e.apply(this,arguments)}finally{xn=r}}}});var g5=Jr((Cce,v5)=>{"use strict";v5.exports=m5()});var h5=Jr(On=>{"use strict";var MU=ne();function y5(e){var t="https://react.dev/errors/"+e;if(1{"use strict";function x5(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(x5)}catch(e){console.error(e)}}x5(),b5.exports=h5()});var P3=Jr(Vy=>{"use strict";var Kr=g5(),qO=ne(),IU=rp();function pe(e){var t="https://react.dev/errors/"+e;if(1wc||(e.current=fS[wc],fS[wc]=null,wc--)}function Kt(e,t){wc++,fS[wc]=e.current,e.current=t}var zo=Lo(null),_p=Lo(null),wl=Lo(null),Rg=Lo(null);function ey(e,t){switch(Kt(wl,t),Kt(_p,e),Kt(zo,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?OO(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=OO(t),e=h3(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}tn(zo),Kt(zo,e)}function $c(){tn(zo),tn(_p),tn(wl)}function pS(e){e.memoizedState!==null&&Kt(Rg,e);var t=zo.current,r=h3(t,e.type);t!==r&&(Kt(_p,e),Kt(zo,r))}function ty(e){_p.current===e&&(tn(zo),tn(_p)),Rg.current===e&&(tn(Rg),$p._currentValue=Ps)}var _w,A5;function _s(e){if(_w===void 0)try{throw Error()}catch(r){var t=r.stack.trim().match(/\n( *(at )?)/);_w=t&&t[1]||"",A5=-1)":-1a||s[n]!==u[a]){var c=` -`+s[n].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=n&&0<=a);break}}}finally{ww=!1,Error.prepareStackTrace=r}return(r=e?e.displayName||e.name:"")?Cs(r):""}function gU(e,t){switch(e.tag){case 26:case 27:case 5:return Cs(e.type);case 16:return Cs("Lazy");case 13:return e.child!==t&&t!==null?Cs("Suspense Fallback"):Cs("Suspense");case 19:return Cs("SuspenseList");case 0:case 15:return Sw(e.type,!1);case 11:return Sw(e.type.render,!1);case 1:return Sw(e.type,!0);case 31:return Cs("Activity");default:return""}}function c5(e){try{var t="",r=null;do t+=gU(e,r),r=e,e=e.return;while(e);return t}catch(n){return` +`+s[n].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=n&&0<=a);break}}}finally{Ow=!1,Error.prepareStackTrace=r}return(r=e?e.displayName||e.name:"")?_s(r):""}function $U(e,t){switch(e.tag){case 26:case 27:case 5:return _s(e.type);case 16:return _s("Lazy");case 13:return e.child!==t&&t!==null?_s("Suspense Fallback"):_s("Suspense");case 19:return _s("SuspenseList");case 0:case 15:return Tw(e.type,!1);case 11:return Tw(e.type.render,!1);case 1:return Tw(e.type,!0);case 31:return _s("Activity");default:return""}}function k5(e){try{var t="",r=null;do t+=$U(e,r),r=e,e=e.return;while(e);return t}catch(n){return` Error generating stack: `+n.message+` -`+n.stack}}var oS=Object.prototype.hasOwnProperty,ZS=Fr.unstable_scheduleCallback,Aw=Fr.unstable_cancelCallback,yU=Fr.unstable_shouldYield,hU=Fr.unstable_requestPaint,sa=Fr.unstable_now,xU=Fr.unstable_getCurrentPriorityLevel,$O=Fr.unstable_ImmediatePriority,UO=Fr.unstable_UserBlockingPriority,Zg=Fr.unstable_NormalPriority,bU=Fr.unstable_LowPriority,FO=Fr.unstable_IdlePriority,wU=Fr.log,SU=Fr.unstable_setDisableYieldValue,Bp=null,ua=null;function pl(e){if(typeof wU=="function"&&SU(e),ua&&typeof ua.setStrictMode=="function")try{ua.setStrictMode(Bp,e)}catch{}}var ca=Math.clz32?Math.clz32:NU,AU=Math.log,kU=Math.LN2;function NU(e){return e>>>=0,e===0?32:31-(AU(e)/kU|0)|0}var vg=256,gg=262144,yg=4194304;function Es(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 Sy(e,t,r){var n=e.pendingLanes;if(n===0)return 0;var a=0,i=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var l=n&134217727;return l!==0?(n=l&~i,n!==0?a=Es(n):(o&=l,o!==0?a=Es(o):r||(r=l&~e,r!==0&&(a=Es(r))))):(l=n&~i,l!==0?a=Es(l):o!==0?a=Es(o):r||(r=n&~e,r!==0&&(a=Es(r)))),a===0?0:t!==0&&t!==a&&(t&i)===0&&(i=a&-a,r=t&-t,i>=r||i===32&&(r&4194048)!==0)?t:a}function $p(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function CU(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 WO(){var e=yg;return yg<<=1,(yg&62914560)===0&&(yg=4194304),e}function kw(e){for(var t=[],r=0;31>r;r++)t.push(e);return t}function Up(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function EU(e,t,r,n,a,i){var o=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 l=e.entanglements,s=e.expirationTimes,u=e.hiddenUpdates;for(r=o&~r;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var DU=/[\n"\\]/g;function Da(e){return e.replace(DU,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function uS(e,t,r,n,a,i,o,l){e.name="",o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"?e.type=o:e.removeAttribute("type"),t!=null?o==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Ta(t)):e.value!==""+Ta(t)&&(e.value=""+Ta(t)):o!=="submit"&&o!=="reset"||e.removeAttribute("value"),t!=null?cS(e,o,Ta(t)):r!=null?cS(e,o,Ta(r)):n!=null&&e.removeAttribute("value"),a==null&&i!=null&&(e.defaultChecked=!!i),a!=null&&(e.checked=a&&typeof a!="function"&&typeof a!="symbol"),l!=null&&typeof l!="function"&&typeof l!="symbol"&&typeof l!="boolean"?e.name=""+Ta(l):e.removeAttribute("name")}function QO(e,t,r,n,a,i,o,l){if(i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(e.type=i),t!=null||r!=null){if(!(i!=="submit"&&i!=="reset"||t!=null)){sS(e);return}r=r!=null?""+Ta(r):"",t=t!=null?""+Ta(t):r,l||t===e.value||(e.value=t),e.defaultValue=t}n=n??a,n=typeof n!="function"&&typeof n!="symbol"&&!!n,e.checked=l?e.checked:!!n,e.defaultChecked=!!n,o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"&&(e.name=o),sS(e)}function cS(e,t,r){t==="number"&&Qg(e.ownerDocument)===e||e.defaultValue===""+r||(e.defaultValue=""+r)}function Oc(e,t,r,n){if(e=e.options,t){t={};for(var a=0;a"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),fS=!1;if(go)try{dc={},Object.defineProperty(dc,"passive",{get:function(){fS=!0}}),window.addEventListener("test",dc,dc),window.removeEventListener("test",dc,dc)}catch{fS=!1}var dc,ml=null,r2=null,Ig=null;function rT(){if(Ig)return Ig;var e,t=r2,r=t.length,n,a="value"in ml?ml.value:ml.textContent,i=a.length;for(e=0;e=cp),w5=" ",S5=!1;function aT(e,t){switch(e){case"keyup":return lF.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function iT(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var bc=!1;function uF(e,t){switch(e){case"compositionend":return iT(t);case"keypress":return t.which!==32?null:(S5=!0,w5);case"textInput":return e=t.data,e===w5&&S5?null:e;default:return null}}function cF(e,t){if(bc)return e==="compositionend"||!a2&&aT(e,t)?(e=rT(),Ig=r2=ml=null,bc=!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=C5(r)}}function uT(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?uT(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function cT(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Qg(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=Qg(e.document)}return t}function i2(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 hF=go&&"documentMode"in document&&11>=document.documentMode,wc=null,pS=null,fp=null,mS=!1;function _5(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;mS||wc==null||wc!==Qg(n)||(n=wc,"selectionStart"in n&&i2(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}),fp&&Cp(fp,n)||(fp=n,n=vy(pS,"onSelect"),0>=o,a-=o,Ti=1<<32-ca(t)+a|r<k?(A=_,_=null):A=_.sibling;var P=f(v,_,b[k],x);if(P===null){_===null&&(_=A);break}e&&_&&P.alternate===null&&t(v,_),g=i(P,g,k),w===null?S=P:w.sibling=P,w=P,_=A}if(k===b.length)return r(v,_),vt&&lo(v,k),S;if(_===null){for(;kk?(A=_,_=null):A=_.sibling;var K=f(v,_,P.value,x);if(K===null){_===null&&(_=A);break}e&&_&&K.alternate===null&&t(v,_),g=i(K,g,k),w===null?S=K:w.sibling=K,w=K,_=A}if(P.done)return r(v,_),vt&&lo(v,k),S;if(_===null){for(;!P.done;k++,P=b.next())P=d(v,P.value,x),P!==null&&(g=i(P,g,k),w===null?S=P:w.sibling=P,w=P);return vt&&lo(v,k),S}for(_=n(_);!P.done;k++,P=b.next())P=p(_,v,k,P.value,x),P!==null&&(e&&P.alternate!==null&&_.delete(P.key===null?k:P.key),g=i(P,g,k),w===null?S=P:w.sibling=P,w=P);return e&&_.forEach(function(z){return t(v,z)}),vt&&lo(v,k),S}function h(v,g,b,x){if(typeof b=="object"&&b!==null&&b.type===gc&&b.key===null&&(b=b.props.children),typeof b=="object"&&b!==null){switch(b.$$typeof){case mg:e:{for(var S=b.key;g!==null;){if(g.key===S){if(S=b.type,S===gc){if(g.tag===7){r(v,g.sibling),x=a(g,b.props.children),x.return=v,v=x;break e}}else if(g.elementType===S||typeof S=="object"&&S!==null&&S.$$typeof===ll&&_s(S)===g.type){r(v,g.sibling),x=a(g,b.props),ep(x,b),x.return=v,v=x;break e}r(v,g);break}else t(v,g);g=g.sibling}b.type===gc?(x=Ms(b.props.children,v.mode,x,b.key),x.return=v,v=x):(x=zg(b.type,b.key,b.props,null,v.mode,x),ep(x,b),x.return=v,v=x)}return o(v);case ip:e:{for(S=b.key;g!==null;){if(g.key===S)if(g.tag===4&&g.stateNode.containerInfo===b.containerInfo&&g.stateNode.implementation===b.implementation){r(v,g.sibling),x=a(g,b.children||[]),x.return=v,v=x;break e}else{r(v,g);break}else t(v,g);g=g.sibling}x=Pw(b,v.mode,x),x.return=v,v=x}return o(v);case ll:return b=_s(b),h(v,g,b,x)}if(op(b))return m(v,g,b,x);if(Jf(b)){if(S=Jf(b),typeof S!="function")throw Error(ce(150));return b=S.call(b),y(v,g,b,x)}if(typeof b.then=="function")return h(v,g,Ag(b),x);if(b.$$typeof===uo)return h(v,g,Sg(v,b),x);kg(v,b)}return typeof b=="string"&&b!==""||typeof b=="number"||typeof b=="bigint"?(b=""+b,g!==null&&g.tag===6?(r(v,g.sibling),x=a(g,b),x.return=v,v=x):(r(v,g),x=Mw(b,v.mode,x),x.return=v,v=x),o(v)):r(v,g)}return function(v,g,b,x){try{Op=0;var S=h(v,g,b,x);return Pc=null,S}catch(_){if(_===Xc||_===_y)throw _;var w=oa(29,_,null,v.mode);return w.lanes=x,w.return=v,w}}}var Ls=NT(!0),CT=NT(!1),sl=!1;function m2(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function wS(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 bl(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function wl(e,t,r){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,(_t&2)!==0){var a=n.pending;return a===null?t.next=t:(t.next=a.next,a.next=t),n.pending=t,t=Rg(e),yT(e,null,r),t}return Ey(e,n,t,r),Rg(e)}function mp(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,VO(e,r)}}function Iw(e,t){var r=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,r===n)){var a=null,i=null;if(r=r.firstBaseUpdate,r!==null){do{var o={lane:r.lane,tag:r.tag,payload:r.payload,callback:null,next:null};i===null?a=i=o:i=i.next=o,r=r.next}while(r!==null);i===null?a=i=t:i=i.next=t}else a=i=t;r={baseState:n.baseState,firstBaseUpdate:a,lastBaseUpdate:i,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 SS=!1;function vp(){if(SS){var e=Mc;if(e!==null)throw e}}function gp(e,t,r,n){SS=!1;var a=e.updateQueue;sl=!1;var i=a.firstBaseUpdate,o=a.lastBaseUpdate,l=a.shared.pending;if(l!==null){a.shared.pending=null;var s=l,u=s.next;s.next=null,o===null?i=u:o.next=u,o=s;var c=e.alternate;c!==null&&(c=c.updateQueue,l=c.lastBaseUpdate,l!==o&&(l===null?c.firstBaseUpdate=u:l.next=u,c.lastBaseUpdate=s))}if(i!==null){var d=a.baseState;o=0,c=u=s=null,l=i;do{var f=l.lane&-536870913,p=f!==l.lane;if(p?(pt&f)===f:(n&f)===f){f!==0&&f===Bc&&(SS=!0),c!==null&&(c=c.next={lane:0,tag:l.tag,payload:l.payload,callback:null,next:null});e:{var m=e,y=l;f=t;var h=r;switch(y.tag){case 1:if(m=y.payload,typeof m=="function"){d=m.call(h,d,f);break e}d=m;break e;case 3:m.flags=m.flags&-65537|128;case 0:if(m=y.payload,f=typeof m=="function"?m.call(h,d,f):m,f==null)break e;d=Rt({},d,f);break e;case 2:sl=!0}}f=l.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=a.callbacks,p===null?a.callbacks=[f]:p.push(f))}else p={lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},c===null?(u=c=p,s=d):c=c.next=p,o|=f;if(l=l.next,l===null){if(l=a.shared.pending,l===null)break;p=l,l=p.next,p.next=null,a.lastBaseUpdate=p,a.shared.pending=null}}while(!0);c===null&&(s=d),a.baseState=s,a.firstBaseUpdate=u,a.lastBaseUpdate=c,i===null&&(a.shared.lanes=0),Tl|=o,e.lanes=o,e.memoizedState=d}}function ET(e,t){if(typeof e!="function")throw Error(ce(191,e));e.call(t)}function _T(e,t){var r=e.callbacks;if(r!==null)for(e.callbacks=null,e=0;ei?i:8;var o=Ve.T,l={};Ve.T=l,E2(e,!1,t,r);try{var s=a(),u=Ve.S;if(u!==null&&u(l,s),s!==null&&typeof s=="object"&&typeof s.then=="function"){var c=EF(s,n);yp(e,t,c,da(e))}else yp(e,t,n,da(e))}catch(d){yp(e,t,{then:function(){},status:"rejected",reason:d},da())}finally{Ot.p=i,o!==null&&l.types!==null&&(o.types=l.types),Ve.T=o}}function DF(){}function ES(e,t,r,n){if(e.tag!==5)throw Error(ce(476));var a=RT(e).queue;JT(e,a,t,Ts,r===null?DF:function(){return e4(e),r(n)})}function RT(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:Ts,baseState:Ts,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ho,lastRenderedState:Ts},next:null};var r={};return t.next={memoizedState:r,baseState:r,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ho,lastRenderedState:r},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function e4(e){var t=RT(e);t.next===null&&(t=e.alternate.memoizedState),yp(e,t.next.queue,{},da())}function C2(){return dn(Ip)}function t4(){return Cr().memoizedState}function r4(){return Cr().memoizedState}function IF(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var r=da();e=bl(r);var n=wl(t,e,r);n!==null&&(Vn(n,t,r),mp(n,t,r)),t={cache:d2()},e.payload=t;return}t=t.return}}function jF(e,t,r){var n=da();r={lane:n,revertLane:0,gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Py(e)?a4(t,r):(r=l2(e,t,r,n),r!==null&&(Vn(r,e,n),i4(r,t,n)))}function n4(e,t,r){var n=da();yp(e,t,r,n)}function yp(e,t,r,n){var a={lane:n,revertLane:0,gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null};if(Py(e))a4(t,a);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var o=t.lastRenderedState,l=i(o,r);if(a.hasEagerState=!0,a.eagerState=l,fa(l,o))return Ey(e,t,a,0),Bt===null&&Cy(),!1}catch{}if(r=l2(e,t,a,n),r!==null)return Vn(r,e,n),i4(r,t,n),!0}return!1}function E2(e,t,r,n){if(n={lane:2,revertLane:z2(),gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Py(e)){if(t)throw Error(ce(479))}else t=l2(e,r,n,2),t!==null&&Vn(t,e,2)}function Py(e){var t=e.alternate;return e===Re||t!==null&&t===Re}function a4(e,t){Dc=iy=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function i4(e,t,r){if((r&4194048)!==0){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,VO(e,r)}}var Mp={readContext:dn,use:Ty,useCallback:yr,useContext:yr,useEffect:yr,useImperativeHandle:yr,useLayoutEffect:yr,useInsertionEffect:yr,useMemo:yr,useReducer:yr,useRef:yr,useState:yr,useDebugValue:yr,useDeferredValue:yr,useTransition:yr,useSyncExternalStore:yr,useId:yr,useHostTransitionStatus:yr,useFormState:yr,useActionState:yr,useOptimistic:yr,useMemoCache:yr,useCacheRefresh:yr};Mp.useEffectEvent=yr;var o4={readContext:dn,use:Ty,useCallback:function(e,t){return _n().memoizedState=[e,t===void 0?null:t],e},useContext:dn,useEffect:H5,useImperativeHandle:function(e,t,r){r=r!=null?r.concat([e]):null,$g(4194308,4,YT.bind(null,t,e),r)},useLayoutEffect:function(e,t){return $g(4194308,4,e,t)},useInsertionEffect:function(e,t){$g(4,2,e,t)},useMemo:function(e,t){var r=_n();t=t===void 0?null:t;var n=e();if(Bs){pl(!0);try{e()}finally{pl(!1)}}return r.memoizedState=[n,t],n},useReducer:function(e,t,r){var n=_n();if(r!==void 0){var a=r(t);if(Bs){pl(!0);try{r(t)}finally{pl(!1)}}}else a=t;return n.memoizedState=n.baseState=a,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:a},n.queue=e,e=e.dispatch=jF.bind(null,Re,e),[n.memoizedState,e]},useRef:function(e){var t=_n();return e={current:e},t.memoizedState=e},useState:function(e){e=NS(e);var t=e.queue,r=n4.bind(null,Re,t);return t.dispatch=r,[e.memoizedState,r]},useDebugValue:k2,useDeferredValue:function(e,t){var r=_n();return N2(r,e,t)},useTransition:function(){var e=NS(!1);return e=JT.bind(null,Re,e.queue,!0,!1),_n().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,r){var n=Re,a=_n();if(vt){if(r===void 0)throw Error(ce(407));r=r()}else{if(r=t(),Bt===null)throw Error(ce(349));(pt&127)!==0||DT(n,t,r)}a.memoizedState=r;var i={value:r,getSnapshot:t};return a.queue=i,H5(jT.bind(null,n,i,e),[e]),n.flags|=2048,Uc(9,{destroy:void 0},IT.bind(null,n,i,r,t),null),r},useId:function(){var e=_n(),t=Bt.identifierPrefix;if(vt){var r=Mi,n=Ti;r=(n&~(1<<32-ca(n)-1)).toString(32)+r,t="_"+t+"R_"+r,r=oy++,0<\/script>",i=i.removeChild(i.firstChild);break;case"select":i=typeof n.is=="string"?o.createElement("select",{is:n.is}):o.createElement("select"),n.multiple?i.multiple=!0:n.size&&(i.size=n.size);break;default:i=typeof n.is=="string"?o.createElement(a,{is:n.is}):o.createElement(a)}}i[un]=t,i[Kn]=n;e:for(o=t.child;o!==null;){if(o.tag===5||o.tag===6)i.appendChild(o.stateNode);else if(o.tag!==4&&o.tag!==27&&o.child!==null){o.child.return=o,o=o.child;continue}if(o===t)break e;for(;o.sibling===null;){if(o.return===null||o.return===t)break e;o=o.return}o.sibling.return=o.return,o=o.sibling}t.stateNode=i;e:switch(fn(i,a,n),a){case"button":case"input":case"select":case"textarea":n=!!n.autoFocus;break e;case"img":n=!0;break e;default:n=!1}n&&no(t)}}return Qt(t),Ww(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,r),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==n&&no(t);else{if(typeof n!="string"&&t.stateNode===null)throw Error(ce(166));if(e=hl.current,fc(t)){if(e=t.stateNode,r=t.memoizedProps,n=null,a=cn,a!==null)switch(a.tag){case 27:case 5:n=a.memoizedProps}e[un]=t,e=!!(e.nodeValue===r||n!==null&&n.suppressHydrationWarning===!0||n3(e.nodeValue,r)),e||_l(t,!0)}else e=gy(e).createTextNode(n),e[un]=t,t.stateNode=e}return Qt(t),null;case 31:if(r=t.memoizedState,e===null||e.memoizedState!==null){if(n=fc(t),r!==null){if(e===null){if(!n)throw Error(ce(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(ce(557));e[un]=t}else js(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Qt(t),e=!1}else r=Dw(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=r),e=!0;if(!e)return t.flags&256?(ia(t),t):(ia(t),null);if((t.flags&128)!==0)throw Error(ce(558))}return Qt(t),null;case 13:if(n=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=fc(t),n!==null&&n.dehydrated!==null){if(e===null){if(!a)throw Error(ce(318));if(a=t.memoizedState,a=a!==null?a.dehydrated:null,!a)throw Error(ce(317));a[un]=t}else js(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Qt(t),a=!1}else a=Dw(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(ia(t),t):(ia(t),null)}return ia(t),(t.flags&128)!==0?(t.lanes=r,t):(r=n!==null,e=e!==null&&e.memoizedState!==null,r&&(n=t.child,a=null,n.alternate!==null&&n.alternate.memoizedState!==null&&n.alternate.memoizedState.cachePool!==null&&(a=n.alternate.memoizedState.cachePool.pool),i=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(i=n.memoizedState.cachePool.pool),i!==a&&(n.flags|=2048)),r!==e&&r&&(t.child.flags|=8192),Ng(t,t.updateQueue),Qt(t),null);case 4:return jc(),e===null&&L2(t.stateNode.containerInfo),Qt(t),null;case 10:return mo(t.type),Qt(t),null;case 19:if(Jr(Nr),n=t.memoizedState,n===null)return Qt(t),null;if(a=(t.flags&128)!==0,i=n.rendering,i===null)if(a)tp(n,!1);else{if(hr!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(i=ay(e),i!==null){for(t.flags|=128,tp(n,!1),e=i.updateQueue,t.updateQueue=e,Ng(t,e),t.subtreeFlags=0,e=r,r=t.child;r!==null;)hT(r,e),r=r.sibling;return Vt(Nr,Nr.current&1|2),vt&&lo(t,n.treeForkCount),t.child}e=e.sibling}n.tail!==null&&sa()>cy&&(t.flags|=128,a=!0,tp(n,!1),t.lanes=4194304)}else{if(!a)if(e=ay(i),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Ng(t,e),tp(n,!0),n.tail===null&&n.tailMode==="hidden"&&!i.alternate&&!vt)return Qt(t),null}else 2*sa()-n.renderingStartTime>cy&&r!==536870912&&(t.flags|=128,a=!0,tp(n,!1),t.lanes=4194304);n.isBackwards?(i.sibling=t.child,t.child=i):(e=n.last,e!==null?e.sibling=i:t.child=i,n.last=i)}return n.tail!==null?(e=n.tail,n.rendering=e,n.tail=e.sibling,n.renderingStartTime=sa(),e.sibling=null,r=Nr.current,Vt(Nr,a?r&1|2:r&1),vt&&lo(t,n.treeForkCount),e):(Qt(t),null);case 22:case 23:return ia(t),v2(),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&&(Qt(t),t.subtreeFlags&6&&(t.flags|=8192)):Qt(t),r=t.updateQueue,r!==null&&Ng(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&&Jr(Ps),null;case 24:return r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),mo(jr),Qt(t),null;case 25:return null;case 30:return null}throw Error(ce(156,t.tag))}function UF(e,t){switch(c2(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return mo(jr),jc(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Xg(t),null;case 31:if(t.memoizedState!==null){if(ia(t),t.alternate===null)throw Error(ce(340));js()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(ia(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ce(340));js()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Jr(Nr),null;case 4:return jc(),null;case 10:return mo(t.type),null;case 22:case 23:return ia(t),v2(),e!==null&&Jr(Ps),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return mo(jr),null;case 25:return null;default:return null}}function h4(e,t){switch(c2(t),t.tag){case 3:mo(jr),jc();break;case 26:case 27:case 5:Xg(t);break;case 4:jc();break;case 31:t.memoizedState!==null&&ia(t);break;case 13:ia(t);break;case 19:Jr(Nr);break;case 10:mo(t.type);break;case 22:case 23:ia(t),v2(),e!==null&&Jr(Ps);break;case 24:mo(jr)}}function Kp(e,t){try{var r=t.updateQueue,n=r!==null?r.lastEffect:null;if(n!==null){var a=n.next;r=a;do{if((r.tag&e)===e){n=void 0;var i=r.create,o=r.inst;n=i(),o.destroy=n}r=r.next}while(r!==a)}}catch(l){Dt(t,t.return,l)}}function Ol(e,t,r){try{var n=t.updateQueue,a=n!==null?n.lastEffect:null;if(a!==null){var i=a.next;n=i;do{if((n.tag&e)===e){var o=n.inst,l=o.destroy;if(l!==void 0){o.destroy=void 0,a=t;var s=r,u=l;try{u()}catch(c){Dt(a,s,c)}}}n=n.next}while(n!==i)}}catch(c){Dt(t,t.return,c)}}function x4(e){var t=e.updateQueue;if(t!==null){var r=e.stateNode;try{_T(t,r)}catch(n){Dt(e,e.return,n)}}}function b4(e,t,r){r.props=$s(e.type,e.memoizedProps),r.state=e.memoizedState;try{r.componentWillUnmount()}catch(n){Dt(e,t,n)}}function hp(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(a){Dt(e,t,a)}}function Pi(e,t){var r=e.ref,n=e.refCleanup;if(r!==null)if(typeof n=="function")try{n()}catch(a){Dt(e,t,a)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof r=="function")try{r(null)}catch(a){Dt(e,t,a)}else r.current=null}function w4(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(a){Dt(e,e.return,a)}}function Hw(e,t,r){try{var n=e.stateNode;oW(n,e.type,r,t),n[Kn]=t}catch(a){Dt(e,e.return,a)}}function S4(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Pl(e.type)||e.tag===4}function Vw(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||S4(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&&Pl(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 PS(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=co));else if(n!==4&&(n===27&&Pl(e.type)&&(r=e.stateNode,t=null),e=e.child,e!==null))for(PS(e,t,r),e=e.sibling;e!==null;)PS(e,t,r),e=e.sibling}function uy(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&&Pl(e.type)&&(r=e.stateNode),e=e.child,e!==null))for(uy(e,t,r),e=e.sibling;e!==null;)uy(e,t,r),e=e.sibling}function A4(e){var t=e.stateNode,r=e.memoizedProps;try{for(var n=e.type,a=t.attributes;a.length;)t.removeAttributeNode(a[0]);fn(t,n,r),t[un]=e,t[Kn]=r}catch(i){Dt(e,e.return,i)}}var so=!1,Ir=!1,Kw=!1,rO=typeof WeakSet=="function"?WeakSet:Set,Zr=null;function FF(e,t){if(e=e.containerInfo,$S=by,e=cT(e),i2(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 a=n.anchorOffset,i=n.focusNode;n=n.focusOffset;try{r.nodeType,i.nodeType}catch{r=null;break e}var o=0,l=-1,s=-1,u=0,c=0,d=e,f=null;t:for(;;){for(var p;d!==r||a!==0&&d.nodeType!==3||(l=o+a),d!==i||n!==0&&d.nodeType!==3||(s=o+n),d.nodeType===3&&(o+=d.nodeValue.length),(p=d.firstChild)!==null;)f=d,d=p;for(;;){if(d===e)break t;if(f===r&&++u===a&&(l=o),f===i&&++c===n&&(s=o),(p=d.nextSibling)!==null)break;d=f,f=d.parentNode}d=p}r=l===-1||s===-1?null:{start:l,end:s}}else r=null}r=r||{start:0,end:0}}else r=null;for(US={focusedElem:e,selectionRange:r},by=!1,Zr=t;Zr!==null;)if(t=Zr,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Zr=e;else for(;Zr!==null;){switch(t=Zr,i=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"))),fn(i,n,r),i[un]=e,Qr(i),n=i;break e;case"link":var o=kO("link","href",a).get(n+(r.href||""));if(o){for(var l=0;lh&&(o=h,h=y,y=o);var v=E5(l,y),g=E5(l,h);if(v&&g&&(p.rangeCount!==1||p.anchorNode!==v.node||p.anchorOffset!==v.offset||p.focusNode!==g.node||p.focusOffset!==g.offset)){var b=d.createRange();b.setStart(v.node,v.offset),p.removeAllRanges(),y>h?(p.addRange(b),p.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),p.addRange(b))}}}}for(d=[],p=l;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof l.focus=="function"&&l.focus(),l=0;lr?32:r,Ve.T=null,r=jS,jS=null;var i=Al,o=vo;if(Ur=0,Wc=Al=null,vo=0,(_t&6)!==0)throw Error(ce(331));var l=_t;if(_t|=4,I4(i.current),M4(i,i.current,o,r),_t=l,qp(0,!1),ua&&typeof ua.onPostCommitFiberRoot=="function")try{ua.onPostCommitFiberRoot(Bp,i)}catch{}return!0}finally{Ot.p=a,Ve.T=n,X4(e,t)}}function oO(e,t,r){t=Ia(r,t),t=OS(e.stateNode,t,2),e=wl(e,t,2),e!==null&&(Up(e,2),ji(e))}function Dt(e,t,r){if(e.tag===3)oO(e,e,r);else for(;t!==null;){if(t.tag===3){oO(t,e,r);break}else if(t.tag===1){var n=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof n.componentDidCatch=="function"&&(Sl===null||!Sl.has(n))){e=Ia(r,e),r=d4(2),n=wl(t,r,2),n!==null&&(f4(r,n,t,e),Up(n,2),ji(n));break}}t=t.return}}function Yw(e,t,r){var n=e.pingCache;if(n===null){n=e.pingCache=new VF;var a=new Set;n.set(t,a)}else a=n.get(t),a===void 0&&(a=new Set,n.set(t,a));a.has(r)||(D2=!0,a.add(r),e=XF.bind(null,e,t,r),t.then(e,e))}function XF(e,t,r){var n=e.pingCache;n!==null&&n.delete(t),e.pingedLanes|=e.suspendedLanes&r,e.warmLanes&=~r,Bt===e&&(pt&r)===r&&(hr===4||hr===3&&(pt&62914560)===pt&&300>sa()-Dy?(_t&2)===0&&Hc(e,0):I2|=r,Fc===pt&&(Fc=0)),ji(e)}function Q4(e,t){t===0&&(t=WO()),e=Hs(e,t),e!==null&&(Up(e,t),ji(e))}function ZF(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),Q4(e,r)}function QF(e,t){var r=0;switch(e.tag){case 31:case 13:var n=e.stateNode,a=e.memoizedState;a!==null&&(r=a.retryLane);break;case 19:n=e.stateNode;break;case 22:n=e.stateNode._retryCache;break;default:throw Error(ce(314))}n!==null&&n.delete(t),Q4(e,r)}function JF(e,t){return ZS(e,t)}var py=null,vc=null,LS=!1,my=!1,Gw=!1,yl=0;function ji(e){e!==vc&&e.next===null&&(vc===null?py=vc=e:vc=vc.next=e),my=!0,LS||(LS=!0,eW())}function qp(e,t){if(!Gw&&my){Gw=!0;do for(var r=!1,n=py;n!==null;){if(!t)if(e!==0){var a=n.pendingLanes;if(a===0)var i=0;else{var o=n.suspendedLanes,l=n.pingedLanes;i=(1<<31-ca(42|e)+1)-1,i&=a&~(o&~l),i=i&201326741?i&201326741|1:i?i|2:0}i!==0&&(r=!0,lO(n,i))}else i=pt,i=Sy(n,n===Bt?i:0,n.cancelPendingCommit!==null||n.timeoutHandle!==-1),(i&3)===0||$p(n,i)||(r=!0,lO(n,i));n=n.next}while(r);Gw=!1}}function RF(){J4()}function J4(){my=LS=!1;var e=0;yl!==0&&sW()&&(e=yl);for(var t=sa(),r=null,n=py;n!==null;){var a=n.next,i=R4(n,t);i===0?(n.next=null,r===null?py=a:r.next=a,a===null&&(vc=r)):(r=n,(e!==0||(i&3)!==0)&&(my=!0)),n=a}Ur!==0&&Ur!==5||qp(e,!1),yl!==0&&(yl=0)}function R4(e,t){for(var r=e.suspendedLanes,n=e.pingedLanes,a=e.expirationTimes,i=e.pendingLanes&-62914561;0l)break;var c=s.transferSize,d=s.initiatorType;c&&mO(d)&&(s=s.responseEnd,o+=c*(s"u"?null:document;function s3(e,t,r){var n=Qc;if(n&&typeof t=="string"&&t){var a=Da(t);a='link[rel="'+e+'"][href="'+a+'"]',typeof r=="string"&&(a+='[crossorigin="'+r+'"]'),wO.has(a)||(wO.add(a),e={rel:e,crossOrigin:r,href:t},n.querySelector(a)===null&&(t=n.createElement("link"),fn(t,"link",e),Qr(t),n.head.appendChild(t)))}}function yW(e){wo.D(e),s3("dns-prefetch",e,null)}function hW(e,t){wo.C(e,t),s3("preconnect",e,t)}function xW(e,t,r){wo.L(e,t,r);var n=Qc;if(n&&e&&t){var a='link[rel="preload"][as="'+Da(t)+'"]';t==="image"&&r&&r.imageSrcSet?(a+='[imagesrcset="'+Da(r.imageSrcSet)+'"]',typeof r.imageSizes=="string"&&(a+='[imagesizes="'+Da(r.imageSizes)+'"]')):a+='[href="'+Da(e)+'"]';var i=a;switch(t){case"style":i=Vc(e);break;case"script":i=Jc(e)}Ba.has(i)||(e=Rt({rel:"preload",href:t==="image"&&r&&r.imageSrcSet?void 0:e,as:t},r),Ba.set(i,e),n.querySelector(a)!==null||t==="style"&&n.querySelector(Yp(i))||t==="script"&&n.querySelector(Gp(i))||(t=n.createElement("link"),fn(t,"link",e),Qr(t),n.head.appendChild(t)))}}function bW(e,t){wo.m(e,t);var r=Qc;if(r&&e){var n=t&&typeof t.as=="string"?t.as:"script",a='link[rel="modulepreload"][as="'+Da(n)+'"][href="'+Da(e)+'"]',i=a;switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":i=Jc(e)}if(!Ba.has(i)&&(e=Rt({rel:"modulepreload",href:e},t),Ba.set(i,e),r.querySelector(a)===null)){switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(r.querySelector(Gp(i)))return}n=r.createElement("link"),fn(n,"link",e),Qr(n),r.head.appendChild(n)}}}function wW(e,t,r){wo.S(e,t,r);var n=Qc;if(n&&e){var a=_c(n).hoistableStyles,i=Vc(e);t=t||"default";var o=a.get(i);if(!o){var l={loading:0,preload:null};if(o=n.querySelector(Yp(i)))l.loading=5;else{e=Rt({rel:"stylesheet",href:e,"data-precedence":t},r),(r=Ba.get(i))&&B2(e,r);var s=o=n.createElement("link");Qr(s),fn(s,"link",e),s._p=new Promise(function(u,c){s.onload=u,s.onerror=c}),s.addEventListener("load",function(){l.loading|=1}),s.addEventListener("error",function(){l.loading|=2}),l.loading|=4,Hg(o,t,n)}o={type:"stylesheet",instance:o,count:1,state:l},a.set(i,o)}}}function SW(e,t){wo.X(e,t);var r=Qc;if(r&&e){var n=_c(r).hoistableScripts,a=Jc(e),i=n.get(a);i||(i=r.querySelector(Gp(a)),i||(e=Rt({src:e,async:!0},t),(t=Ba.get(a))&&$2(e,t),i=r.createElement("script"),Qr(i),fn(i,"link",e),r.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},n.set(a,i))}}function AW(e,t){wo.M(e,t);var r=Qc;if(r&&e){var n=_c(r).hoistableScripts,a=Jc(e),i=n.get(a);i||(i=r.querySelector(Gp(a)),i||(e=Rt({src:e,async:!0,type:"module"},t),(t=Ba.get(a))&&$2(e,t),i=r.createElement("script"),Qr(i),fn(i,"link",e),r.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},n.set(a,i))}}function SO(e,t,r,n){var a=(a=hl.current)?yy(a):null;if(!a)throw Error(ce(446));switch(e){case"meta":case"title":return null;case"style":return typeof r.precedence=="string"&&typeof r.href=="string"?(t=Vc(r.href),r=_c(a).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=Vc(r.href);var i=_c(a).hoistableStyles,o=i.get(e);if(o||(a=a.ownerDocument||a,o={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},i.set(e,o),(i=a.querySelector(Yp(e)))&&!i._p&&(o.instance=i,o.state.loading=5),Ba.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},Ba.set(e,r),i||kW(a,e,r,o.state))),t&&n===null)throw Error(ce(528,""));return o}if(t&&n!==null)throw Error(ce(529,""));return null;case"script":return t=r.async,r=r.src,typeof r=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Jc(r),r=_c(a).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(ce(444,e))}}function Vc(e){return'href="'+Da(e)+'"'}function Yp(e){return'link[rel="stylesheet"]['+e+"]"}function u3(e){return Rt({},e,{"data-precedence":e.precedence,precedence:null})}function kW(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}),fn(t,"link",r),Qr(t),e.head.appendChild(t))}function Jc(e){return'[src="'+Da(e)+'"]'}function Gp(e){return"script[async]"+e}function AO(e,t,r){if(t.count++,t.instance===null)switch(t.type){case"style":var n=e.querySelector('style[data-href~="'+Da(r.href)+'"]');if(n)return t.instance=n,Qr(n),n;var a=Rt({},r,{"data-href":r.href,"data-precedence":r.precedence,href:null,precedence:null});return n=(e.ownerDocument||e).createElement("style"),Qr(n),fn(n,"style",a),Hg(n,r.precedence,e),t.instance=n;case"stylesheet":a=Vc(r.href);var i=e.querySelector(Yp(a));if(i)return t.state.loading|=4,t.instance=i,Qr(i),i;n=u3(r),(a=Ba.get(a))&&B2(n,a),i=(e.ownerDocument||e).createElement("link"),Qr(i);var o=i;return o._p=new Promise(function(l,s){o.onload=l,o.onerror=s}),fn(i,"link",n),t.state.loading|=4,Hg(i,r.precedence,e),t.instance=i;case"script":return i=Jc(r.src),(a=e.querySelector(Gp(i)))?(t.instance=a,Qr(a),a):(n=r,(a=Ba.get(i))&&(n=Rt({},r),$2(n,a)),e=e.ownerDocument||e,a=e.createElement("script"),Qr(a),fn(a,"link",n),e.head.appendChild(a),t.instance=a);case"void":return null;default:throw Error(ce(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(n=t.instance,t.state.loading|=4,Hg(n,r.precedence,e));return t.instance}function Hg(e,t,r){for(var n=r.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),a=n.length?n[n.length-1]:null,i=a,o=0;o title"):null)}function NW(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 c3(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function CW(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 a=Vc(n.href),i=t.querySelector(Yp(a));if(i){t=i._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=hy.bind(e),t.then(e,e)),r.state.loading|=4,r.instance=i,Qr(i);return}i=t.ownerDocument||t,n=u3(n),(a=Ba.get(a))&&B2(n,a),i=i.createElement("link"),Qr(i);var o=i;o._p=new Promise(function(l,s){o.onload=l,o.onerror=s}),fn(i,"link",n),r.instance=i}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(r,t),(t=r.state.preload)&&(r.state.loading&3)===0&&(e.count++,r=hy.bind(e),t.addEventListener("load",r),t.addEventListener("error",r))}}var Jw=0;function EW(e,t){return e.stylesheets&&e.count===0&&Kg(e,e.stylesheets),0Jw?50:800)+t);return e.unsuspend=r,function(){e.unsuspend=null,clearTimeout(n),clearTimeout(a)}}:null}function hy(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Kg(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var xy=null;function Kg(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,xy=new Map,t.forEach(_W,e),xy=null,hy.call(e))}function _W(e,t){if(!(t.state.loading&4)){var r=xy.get(e);if(r)var n=r.get(null);else{r=new Map,xy.set(e,r);for(var a=e.querySelectorAll("link[data-precedence],style[data-precedence]"),i=0;i{"use strict";function x3(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(x3)}catch(e){console.error(e)}}x3(),b3.exports=h3()});var kM=Xr(AM=>{"use strict";var yd=ne();function FH(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var WH=typeof Object.is=="function"?Object.is:FH,HH=yd.useState,VH=yd.useEffect,KH=yd.useLayoutEffect,qH=yd.useDebugValue;function YH(e,t){var r=t(),n=HH({inst:{value:r,getSnapshot:t}}),a=n[0].inst,i=n[1];return KH(function(){a.value=r,a.getSnapshot=t,DA(a)&&i({inst:a})},[e,r,t]),VH(function(){return DA(a)&&i({inst:a}),e(function(){DA(a)&&i({inst:a})})},[e]),qH(r),r}function DA(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!WH(e,r)}catch{return!0}}function GH(e,t){return t()}var XH=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?GH:YH;AM.useSyncExternalStore=yd.useSyncExternalStore!==void 0?yd.useSyncExternalStore:XH});var CM=Xr((kme,NM)=>{"use strict";NM.exports=kM()});var _M=Xr(EM=>{"use strict";var Eh=ne(),ZH=CM();function QH(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var JH=typeof Object.is=="function"?Object.is:QH,RH=ZH.useSyncExternalStore,eV=Eh.useRef,tV=Eh.useEffect,rV=Eh.useMemo,nV=Eh.useDebugValue;EM.useSyncExternalStoreWithSelector=function(e,t,r,n,a){var i=eV(null);if(i.current===null){var o={hasValue:!1,value:null};i.current=o}else o=i.current;i=rV(function(){function s(p){if(!u){if(u=!0,c=p,p=n(p),a!==void 0&&o.hasValue){var m=o.value;if(a(m,p))return d=m}return d=p}if(m=d,JH(c,p))return m;var y=n(p);return a!==void 0&&a(m,y)?(c=p,m):(c=p,d=y)}var u=!1,c,d,f=r===void 0?null:r;return[function(){return s(t())},f===null?void 0:function(){return s(f())}]},[t,r,n,a]);var l=RH(e,i[0],i[1]);return tV(function(){o.hasValue=!0,o.value=l},[l]),nV(l),l}});var TM=Xr((Cme,OM)=>{"use strict";OM.exports=_M()});var yD=Xr(gD=>{"use strict";var gm=ne();function lq(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var sq=typeof Object.is=="function"?Object.is:lq,uq=gm.useSyncExternalStore,cq=gm.useRef,dq=gm.useEffect,fq=gm.useMemo,pq=gm.useDebugValue;gD.useSyncExternalStoreWithSelector=function(e,t,r,n,a){var i=cq(null);if(i.current===null){var o={hasValue:!1,value:null};i.current=o}else o=i.current;i=fq(function(){function s(p){if(!u){if(u=!0,c=p,p=n(p),a!==void 0&&o.hasValue){var m=o.value;if(a(m,p))return d=m}return d=p}if(m=d,sq(c,p))return m;var y=n(p);return a!==void 0&&a(m,y)?(c=p,m):(c=p,d=y)}var u=!1,c,d,f=r===void 0?null:r;return[function(){return s(t())},f===null?void 0:function(){return s(f())}]},[t,r,n,a]);var l=uq(e,i[0],i[1]);return dq(function(){o.hasValue=!0,o.value=l},[l]),pq(l),l}});var xD=Xr((Nge,hD)=>{"use strict";hD.exports=yD()});var _k=Xr((V8,L0)=>{(function(e){"use strict";var t=1e9,r={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},n=!0,a="[DecimalError] ",i=a+"Invalid argument: ",o=a+"Exponent out of range: ",l=Math.floor,s=Math.pow,u=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,c,d=1e7,f=7,p=9007199254740991,m=l(p/f),y={};y.absoluteValue=y.abs=function(){var N=new this.constructor(this);return N.s&&(N.s=1),N},y.comparedTo=y.cmp=function(N){var O,I,D,T,j=this;if(N=new j.constructor(N),j.s!==N.s)return j.s||-N.s;if(j.e!==N.e)return j.e>N.e^j.s<0?1:-1;for(D=j.d.length,T=N.d.length,O=0,I=DN.d[O]^j.s<0?1:-1;return D===T?0:D>T^j.s<0?1:-1},y.decimalPlaces=y.dp=function(){var N=this,O=N.d.length-1,I=(O-N.e)*f;if(O=N.d[O],O)for(;O%10==0;O/=10)I--;return I<0?0:I},y.dividedBy=y.div=function(N){return b(this,new this.constructor(N))},y.dividedToIntegerBy=y.idiv=function(N){var O=this,I=O.constructor;return P(b(O,new I(N),0,1),I.precision)},y.equals=y.eq=function(N){return!this.cmp(N)},y.exponent=function(){return S(this)},y.greaterThan=y.gt=function(N){return this.cmp(N)>0},y.greaterThanOrEqualTo=y.gte=function(N){return this.cmp(N)>=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(N){return this.cmp(N)<0},y.lessThanOrEqualTo=y.lte=function(N){return this.cmp(N)<1},y.logarithm=y.log=function(N){var O,I=this,D=I.constructor,T=D.precision,j=T+5;if(N===void 0)N=new D(10);else if(N=new D(N),N.s<1||N.eq(c))throw Error(a+"NaN");if(I.s<1)throw Error(a+(I.s?"NaN":"-Infinity"));return I.eq(c)?new D(0):(n=!1,O=b(k(I,j),k(N,j),j),n=!0,P(O,T))},y.minus=y.sub=function(N){var O=this;return N=new O.constructor(N),O.s==N.s?K(O,N):h(O,(N.s=-N.s,N))},y.modulo=y.mod=function(N){var O,I=this,D=I.constructor,T=D.precision;if(N=new D(N),!N.s)throw Error(a+"NaN");return I.s?(n=!1,O=b(I,N,0,1).times(N),n=!0,I.minus(O)):P(new D(I),T)},y.naturalExponential=y.exp=function(){return x(this)},y.naturalLogarithm=y.ln=function(){return k(this)},y.negated=y.neg=function(){var N=new this.constructor(this);return N.s=-N.s||0,N},y.plus=y.add=function(N){var O=this;return N=new O.constructor(N),O.s==N.s?h(O,N):K(O,(N.s=-N.s,N))},y.precision=y.sd=function(N){var O,I,D,T=this;if(N!==void 0&&N!==!!N&&N!==1&&N!==0)throw Error(i+N);if(O=S(T)+1,D=T.d.length-1,I=D*f+1,D=T.d[D],D){for(;D%10==0;D/=10)I--;for(D=T.d[0];D>=10;D/=10)I++}return N&&O>I?O:I},y.squareRoot=y.sqrt=function(){var N,O,I,D,T,j,R,U=this,q=U.constructor;if(U.s<1){if(!U.s)return new q(0);throw Error(a+"NaN")}for(N=S(U),n=!1,T=Math.sqrt(+U),T==0||T==1/0?(O=g(U.d),(O.length+N)%2==0&&(O+="0"),T=Math.sqrt(O),N=l((N+1)/2)-(N<0||N%2),T==1/0?O="5e"+N:(O=T.toExponential(),O=O.slice(0,O.indexOf("e")+1)+N),D=new q(O)):D=new q(T.toString()),I=q.precision,T=R=I+3;;)if(j=D,D=j.plus(b(U,j,R+2)).times(.5),g(j.d).slice(0,R)===(O=g(D.d)).slice(0,R)){if(O=O.slice(R-3,R+1),T==R&&O=="4999"){if(P(j,I+1,0),j.times(j).eq(U)){D=j;break}}else if(O!="9999")break;R+=4}return n=!0,P(D,I)},y.times=y.mul=function(N){var O,I,D,T,j,R,U,q,ee,fe=this,pe=fe.constructor,Pe=fe.d,oe=(N=new pe(N)).d;if(!fe.s||!N.s)return new pe(0);for(N.s*=fe.s,I=fe.e+N.e,q=Pe.length,ee=oe.length,q=0;){for(O=0,T=q+D;T>D;)U=j[T]+oe[D]*Pe[T-D-1]+O,j[T--]=U%d|0,O=U/d|0;j[T]=(j[T]+O)%d|0}for(;!j[--R];)j.pop();return O?++I:j.shift(),N.d=j,N.e=I,n?P(N,pe.precision):N},y.toDecimalPlaces=y.todp=function(N,O){var I=this,D=I.constructor;return I=new D(I),N===void 0?I:(v(N,0,t),O===void 0?O=D.rounding:v(O,0,8),P(I,N+S(I)+1,O))},y.toExponential=function(N,O){var I,D=this,T=D.constructor;return N===void 0?I=z(D,!0):(v(N,0,t),O===void 0?O=T.rounding:v(O,0,8),D=P(new T(D),N+1,O),I=z(D,!0,N+1)),I},y.toFixed=function(N,O){var I,D,T=this,j=T.constructor;return N===void 0?z(T):(v(N,0,t),O===void 0?O=j.rounding:v(O,0,8),D=P(new j(T),N+S(T)+1,O),I=z(D.abs(),!1,N+S(D)+1),T.isneg()&&!T.isZero()?"-"+I:I)},y.toInteger=y.toint=function(){var N=this,O=N.constructor;return P(new O(N),S(N)+1,O.rounding)},y.toNumber=function(){return+this},y.toPower=y.pow=function(N){var O,I,D,T,j,R,U=this,q=U.constructor,ee=12,fe=+(N=new q(N));if(!N.s)return new q(c);if(U=new q(U),!U.s){if(N.s<1)throw Error(a+"Infinity");return U}if(U.eq(c))return U;if(D=q.precision,N.eq(c))return P(U,D);if(O=N.e,I=N.d.length-1,R=O>=I,j=U.s,R){if((I=fe<0?-fe:fe)<=p){for(T=new q(c),O=Math.ceil(D/f+4),n=!1;I%2&&(T=T.times(U),Q(T.d,O)),I=l(I/2),I!==0;)U=U.times(U),Q(U.d,O);return n=!0,N.s<0?new q(c).div(T):P(T,D)}}else if(j<0)throw Error(a+"NaN");return j=j<0&&N.d[Math.max(O,I)]&1?-1:1,U.s=1,n=!1,T=N.times(k(U,D+ee)),n=!0,T=x(T),T.s=j,T},y.toPrecision=function(N,O){var I,D,T=this,j=T.constructor;return N===void 0?(I=S(T),D=z(T,I<=j.toExpNeg||I>=j.toExpPos)):(v(N,1,t),O===void 0?O=j.rounding:v(O,0,8),T=P(new j(T),N,O),I=S(T),D=z(T,N<=I||I<=j.toExpNeg,N)),D},y.toSignificantDigits=y.tosd=function(N,O){var I=this,D=I.constructor;return N===void 0?(N=D.precision,O=D.rounding):(v(N,1,t),O===void 0?O=D.rounding:v(O,0,8)),P(new D(I),N,O)},y.toString=y.valueOf=y.val=y.toJSON=function(){var N=this,O=S(N),I=N.constructor;return z(N,O<=I.toExpNeg||O>=I.toExpPos)};function h(N,O){var I,D,T,j,R,U,q,ee,fe=N.constructor,pe=fe.precision;if(!N.s||!O.s)return O.s||(O=new fe(N)),n?P(O,pe):O;if(q=N.d,ee=O.d,R=N.e,T=O.e,q=q.slice(),j=R-T,j){for(j<0?(D=q,j=-j,U=ee.length):(D=ee,T=R,U=q.length),R=Math.ceil(pe/f),U=R>U?R+1:U+1,j>U&&(j=U,D.length=1),D.reverse();j--;)D.push(0);D.reverse()}for(U=q.length,j=ee.length,U-j<0&&(j=U,D=ee,ee=q,q=D),I=0;j;)I=(q[--j]=q[j]+ee[j]+I)/d|0,q[j]%=d;for(I&&(q.unshift(I),++T),U=q.length;q[--U]==0;)q.pop();return O.d=q,O.e=T,n?P(O,pe):O}function v(N,O,I){if(N!==~~N||NI)throw Error(i+N)}function g(N){var O,I,D,T=N.length-1,j="",R=N[0];if(T>0){for(j+=R,O=1;OR?1:-1;else for(U=q=0;UT[U]?1:-1;break}return q}function I(D,T,j){for(var R=0;j--;)D[j]-=R,R=D[j]1;)D.shift()}return function(D,T,j,R){var U,q,ee,fe,pe,Pe,oe,Te,V,J,E,L,X,B,Ae,C,Y,ve,ze=D.constructor,tt=D.s==T.s?1:-1,Lt=D.d,ct=T.d;if(!D.s)return new ze(D);if(!T.s)throw Error(a+"Division by zero");for(q=D.e-T.e,Y=ct.length,Ae=Lt.length,oe=new ze(tt),Te=oe.d=[],ee=0;ct[ee]==(Lt[ee]||0);)++ee;if(ct[ee]>(Lt[ee]||0)&&--q,j==null?L=j=ze.precision:R?L=j+(S(D)-S(T))+1:L=j,L<0)return new ze(0);if(L=L/f+2|0,ee=0,Y==1)for(fe=0,ct=ct[0],L++;(ee1&&(ct=N(ct,fe),Lt=N(Lt,fe),Y=ct.length,Ae=Lt.length),B=Y,V=Lt.slice(0,Y),J=V.length;J=d/2&&++C;do fe=0,U=O(ct,V,Y,J),U<0?(E=V[0],Y!=J&&(E=E*d+(V[1]||0)),fe=E/C|0,fe>1?(fe>=d&&(fe=d-1),pe=N(ct,fe),Pe=pe.length,J=V.length,U=O(pe,V,Pe,J),U==1&&(fe--,I(pe,Y16)throw Error(o+S(N));if(!N.s)return new fe(c);for(O==null?(n=!1,U=pe):U=O,R=new fe(.03125);N.abs().gte(.1);)N=N.times(R),ee+=5;for(D=Math.log(s(2,ee))/Math.LN10*2+5|0,U+=D,I=T=j=new fe(c),fe.precision=U;;){if(T=P(T.times(N),U),I=I.times(++q),R=j.plus(b(T,I,U)),g(R.d).slice(0,U)===g(j.d).slice(0,U)){for(;ee--;)j=P(j.times(j),U);return fe.precision=pe,O==null?(n=!0,P(j,pe)):j}j=R}}function S(N){for(var O=N.e*f,I=N.d[0];I>=10;I/=10)O++;return O}function w(N,O,I){if(O>N.LN10.sd())throw n=!0,I&&(N.precision=I),Error(a+"LN10 precision limit exceeded");return P(new N(N.LN10),O)}function _(N){for(var O="";N--;)O+="0";return O}function k(N,O){var I,D,T,j,R,U,q,ee,fe,pe=1,Pe=10,oe=N,Te=oe.d,V=oe.constructor,J=V.precision;if(oe.s<1)throw Error(a+(oe.s?"NaN":"-Infinity"));if(oe.eq(c))return new V(0);if(O==null?(n=!1,ee=J):ee=O,oe.eq(10))return O==null&&(n=!0),w(V,ee);if(ee+=Pe,V.precision=ee,I=g(Te),D=I.charAt(0),j=S(oe),Math.abs(j)<15e14){for(;D<7&&D!=1||D==1&&I.charAt(1)>3;)oe=oe.times(N),I=g(oe.d),D=I.charAt(0),pe++;j=S(oe),D>1?(oe=new V("0."+I),j++):oe=new V(D+"."+I.slice(1))}else return q=w(V,ee+2,J).times(j+""),oe=k(new V(D+"."+I.slice(1)),ee-Pe).plus(q),V.precision=J,O==null?(n=!0,P(oe,J)):oe;for(U=R=oe=b(oe.minus(c),oe.plus(c),ee),fe=P(oe.times(oe),ee),T=3;;){if(R=P(R.times(fe),ee),q=U.plus(b(R,new V(T),ee)),g(q.d).slice(0,ee)===g(U.d).slice(0,ee))return U=U.times(2),j!==0&&(U=U.plus(w(V,ee+2,J).times(j+""))),U=b(U,new V(pe),ee),V.precision=J,O==null?(n=!0,P(U,J)):U;U=q,T+=2}}function A(N,O){var I,D,T;for((I=O.indexOf("."))>-1&&(O=O.replace(".","")),(D=O.search(/e/i))>0?(I<0&&(I=D),I+=+O.slice(D+1),O=O.substring(0,D)):I<0&&(I=O.length),D=0;O.charCodeAt(D)===48;)++D;for(T=O.length;O.charCodeAt(T-1)===48;)--T;if(O=O.slice(D,T),O){if(T-=D,I=I-D-1,N.e=l(I/f),N.d=[],D=(I+1)%f,I<0&&(D+=f),Dm||N.e<-m))throw Error(o+I)}else N.s=0,N.e=0,N.d=[0];return N}function P(N,O,I){var D,T,j,R,U,q,ee,fe,pe=N.d;for(R=1,j=pe[0];j>=10;j/=10)R++;if(D=O-R,D<0)D+=f,T=O,ee=pe[fe=0];else{if(fe=Math.ceil((D+1)/f),j=pe.length,fe>=j)return N;for(ee=j=pe[fe],R=1;j>=10;j/=10)R++;D%=f,T=D-f+R}if(I!==void 0&&(j=s(10,R-T-1),U=ee/j%10|0,q=O<0||pe[fe+1]!==void 0||ee%j,q=I<4?(U||q)&&(I==0||I==(N.s<0?3:2)):U>5||U==5&&(I==4||q||I==6&&(D>0?T>0?ee/s(10,R-T):0:pe[fe-1])%10&1||I==(N.s<0?8:7))),O<1||!pe[0])return q?(j=S(N),pe.length=1,O=O-j-1,pe[0]=s(10,(f-O%f)%f),N.e=l(-O/f)||0):(pe.length=1,pe[0]=N.e=N.s=0),N;if(D==0?(pe.length=fe,j=1,fe--):(pe.length=fe+1,j=s(10,f-D),pe[fe]=T>0?(ee/s(10,R-T)%s(10,T)|0)*j:0),q)for(;;)if(fe==0){(pe[0]+=j)==d&&(pe[0]=1,++N.e);break}else{if(pe[fe]+=j,pe[fe]!=d)break;pe[fe--]=0,j=1}for(D=pe.length;pe[--D]===0;)pe.pop();if(n&&(N.e>m||N.e<-m))throw Error(o+S(N));return N}function K(N,O){var I,D,T,j,R,U,q,ee,fe,pe,Pe=N.constructor,oe=Pe.precision;if(!N.s||!O.s)return O.s?O.s=-O.s:O=new Pe(N),n?P(O,oe):O;if(q=N.d,pe=O.d,D=O.e,ee=N.e,q=q.slice(),R=ee-D,R){for(fe=R<0,fe?(I=q,R=-R,U=pe.length):(I=pe,D=ee,U=q.length),T=Math.max(Math.ceil(oe/f),U)+2,R>T&&(R=T,I.length=1),I.reverse(),T=R;T--;)I.push(0);I.reverse()}else{for(T=q.length,U=pe.length,fe=T0;--T)q[U++]=0;for(T=pe.length;T>R;){if(q[--T]0?j=j.charAt(0)+"."+j.slice(1)+_(D):R>1&&(j=j.charAt(0)+"."+j.slice(1)),j=j+(T<0?"e":"e+")+T):T<0?(j="0."+_(-T-1)+j,I&&(D=I-R)>0&&(j+=_(D))):T>=R?(j+=_(T+1-R),I&&(D=I-T-1)>0&&(j=j+"."+_(D))):((D=T+1)0&&(T+1===R&&(j+="."),j+=_(D))),N.s<0?"-"+j:j}function Q(N,O){if(N.length>O)return N.length=O,!0}function M(N){var O,I,D;function T(j){var R=this;if(!(R instanceof T))return new T(j);if(R.constructor=T,j instanceof T){R.s=j.s,R.e=j.e,R.d=(j=j.d)?j.slice():j;return}if(typeof j=="number"){if(j*0!==0)throw Error(i+j);if(j>0)R.s=1;else if(j<0)j=-j,R.s=-1;else{R.s=0,R.e=0,R.d=[0];return}if(j===~~j&&j<1e7){R.e=0,R.d=[j];return}return A(R,j.toString())}else if(typeof j!="string")throw Error(i+j);if(j.charCodeAt(0)===45?(j=j.slice(1),R.s=-1):R.s=1,u.test(j))A(R,j);else throw Error(i+j)}if(T.prototype=y,T.ROUND_UP=0,T.ROUND_DOWN=1,T.ROUND_CEIL=2,T.ROUND_FLOOR=3,T.ROUND_HALF_UP=4,T.ROUND_HALF_DOWN=5,T.ROUND_HALF_EVEN=6,T.ROUND_HALF_CEIL=7,T.ROUND_HALF_FLOOR=8,T.clone=M,T.config=T.set=F,N===void 0&&(N={}),N)for(D=["precision","rounding","toExpNeg","toExpPos","LN10"],O=0;O=T[O+1]&&D<=T[O+2])this[I]=D;else throw Error(i+I+": "+D);if((D=N[I="LN10"])!==void 0)if(D==Math.LN10)this[I]=new this(D);else throw Error(i+I+": "+D);return this}r=M(r),r.default=r.Decimal=r,c=new r(1),typeof define=="function"&&define.amd?define(function(){return r}):typeof L0<"u"&&L0.exports?L0.exports=r:(e||(e=typeof self<"u"&&self&&self.self==self?self:Function("return this")()),e.Decimal=r)})(V8)});var $j=Xr((pke,pC)=>{"use strict";var gR=Object.prototype.hasOwnProperty,In="~";function lv(){}Object.create&&(lv.prototype=Object.create(null),new lv().__proto__||(In=!1));function yR(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function Bj(e,t,r,n,a){if(typeof r!="function")throw new TypeError("The listener must be a function");var i=new yR(r,n||e,a),o=In?In+t:t;return e._events[o]?e._events[o].fn?e._events[o]=[e._events[o],i]:e._events[o].push(i):(e._events[o]=i,e._eventsCount++),e}function lb(e,t){--e._eventsCount===0?e._events=new lv:delete e._events[t]}function xn(){this._events=new lv,this._eventsCount=0}xn.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)gR.call(r,n)&&t.push(In?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};xn.prototype.listeners=function(t){var r=In?In+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var a=0,i=n.length,o=new Array(i);a{"use strict";var AC=Symbol.for("react.transitional.element"),kC=Symbol.for("react.portal"),wb=Symbol.for("react.fragment"),Sb=Symbol.for("react.strict_mode"),Ab=Symbol.for("react.profiler"),kb=Symbol.for("react.consumer"),Nb=Symbol.for("react.context"),Cb=Symbol.for("react.forward_ref"),Eb=Symbol.for("react.suspense"),_b=Symbol.for("react.suspense_list"),Ob=Symbol.for("react.memo"),Tb=Symbol.for("react.lazy"),rte=Symbol.for("react.view_transition"),nte=Symbol.for("react.client.reference");function Ra(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case AC:switch(e=e.type,e){case wb:case Ab:case Sb:case Eb:case _b:case rte:return e;default:switch(e=e&&e.$$typeof,e){case Nb:case Cb:case Tb:case Ob:return e;case kb:return e;default:return t}}case kC:return t}}}Wt.ContextConsumer=kb;Wt.ContextProvider=Nb;Wt.Element=AC;Wt.ForwardRef=Cb;Wt.Fragment=wb;Wt.Lazy=Tb;Wt.Memo=Ob;Wt.Portal=kC;Wt.Profiler=Ab;Wt.StrictMode=Sb;Wt.Suspense=Eb;Wt.SuspenseList=_b;Wt.isContextConsumer=function(e){return Ra(e)===kb};Wt.isContextProvider=function(e){return Ra(e)===Nb};Wt.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===AC};Wt.isForwardRef=function(e){return Ra(e)===Cb};Wt.isFragment=function(e){return Ra(e)===wb};Wt.isLazy=function(e){return Ra(e)===Tb};Wt.isMemo=function(e){return Ra(e)===Ob};Wt.isPortal=function(e){return Ra(e)===kC};Wt.isProfiler=function(e){return Ra(e)===Ab};Wt.isStrictMode=function(e){return Ra(e)===Sb};Wt.isSuspense=function(e){return Ra(e)===Eb};Wt.isSuspenseList=function(e){return Ra(e)===_b};Wt.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===wb||e===Ab||e===Sb||e===Eb||e===_b||typeof e=="object"&&e!==null&&(e.$$typeof===Tb||e.$$typeof===Ob||e.$$typeof===Nb||e.$$typeof===kb||e.$$typeof===Cb||e.$$typeof===nte||e.getModuleId!==void 0)};Wt.typeOf=Ra});var Qz=Xr((vCe,Zz)=>{"use strict";Zz.exports=Xz()});var I$=re(ne()),j$=re(w3());var Ge=re(ne());var Le=re(ne());var St=re(ne()),Ks={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"}},qs={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"}},Rc={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 zW=({id:e="mascot"})=>St.default.createElement("g",{stroke:"none",fill:"none",fillRule:"evenodd",strokeWidth:"1"},St.default.createElement("g",{transform:"translate(25, 475) scale(-1, 1) rotate(-180) translate(-25, -475) translate(0, 450)"},St.default.createElement("g",{fillRule:"nonzero"},St.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"})),St.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"}),St.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"}),St.default.createElement("g",{transform:"translate(75.105, 196.182)"},St.default.createElement("ellipse",{fill:"#F5E6D3",cx:"87",cy:"55",rx:"35",ry:"29"}),St.default.createElement("ellipse",{fill:"#5D4037",cx:"87",cy:"57",rx:"20",ry:"20"}),St.default.createElement("ellipse",{fill:"#2D1F1F",cx:"87",cy:"57",rx:"12",ry:"12"}),St.default.createElement("ellipse",{fill:"#FFFFFF",cx:"80",cy:"51",rx:"5",ry:"5"}),St.default.createElement("ellipse",{fill:"#F5E6D3",cx:"259",cy:"55",rx:"35",ry:"29"}),St.default.createElement("ellipse",{fill:"#5D4037",cx:"259",cy:"57",rx:"20",ry:"20"}),St.default.createElement("ellipse",{fill:"#2D1F1F",cx:"259",cy:"57",rx:"12",ry:"12"}),St.default.createElement("ellipse",{fill:"#FFFFFF",cx:"252",cy:"51",rx:"5",ry:"5"})),St.default.createElement("g",{transform:"translate(75.105, 196.182)",fillRule:"nonzero"},St.default.createElement("g",{transform:"translate(267.395, 54.835) scale(-1, 1) translate(-267.395, -54.835)"},St.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"})),St.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"})),St.default.createElement("g",{transform:"translate(75.105, 196.182)",fillRule:"nonzero"},St.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"})),St.default.createElement("g",{transform:"translate(83.563, 252.212)",fill:"#FFFFFF",fillRule:"nonzero"},St.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"}),St.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 fr({size:e=200,instructions:t=[],tools:r=[],showDecorations:n=!1,className:a="",hat:i,hatAccessory:o,heldItem:l,theme:s,customColors:u}){return St.default.createElement("div",{className:`inline-flex flex-col items-center ${a}`},n&&t.length>0&&St.default.createElement("div",{className:"flex gap-1 mb-1"},t.map(c=>{let d=Ks[c];return d?St.default.createElement("span",{key:c,className:"text-sm",title:d.label},d.emoji):null})),St.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"},St.default.createElement("title",null,"ActiveAgent"),St.default.createElement(zW,null)),n&&r.length>0&&St.default.createElement("div",{className:"flex gap-1 mt-1"},r.map(c=>{let d=qs[c];return d?St.default.createElement("span",{key:c,className:"text-sm",title:d.label},d.emoji):null})))}var Yn=re(ne());var pi=re(ne()),S3=(0,pi.createContext)();function A3({children:e}){let[t,r]=(0,pi.useState)(()=>{let a=localStorage.getItem("dashboard-theme");return a?a==="dark":window.matchMedia("(prefers-color-scheme: dark)").matches});(0,pi.useEffect)(()=>{localStorage.setItem("dashboard-theme",t?"dark":"light")},[t]),(0,pi.useEffect)(()=>{let a=window.matchMedia("(prefers-color-scheme: dark)"),i=o=>{localStorage.getItem("dashboard-theme")||r(o.matches)};return a.addEventListener("change",i),()=>a.removeEventListener("change",i)},[]);let n=()=>r(!t);return pi.default.createElement(S3.Provider,{value:{darkMode:t,toggleDarkMode:n}},e)}function At(){let e=(0,pi.useContext)(S3);if(!e)throw new Error("useTheme must be used within a ThemeProvider");return e}function ed({name:e,subtitle:t,badge:r,accentColor:n,stats:a=[],footer:i,onClick:o,actions:l}){let{darkMode:s}=At(),[u,c]=Yn.default.useState(!1),d={cardBg:s?"rgba(255,255,255,0.05)":"#ffffff",border:s?"rgba(255,255,255,0.1)":"#e5e7eb",borderHover:s?"rgba(255,255,255,0.2)":"#d1d5db",tileBg:s?"rgba(255,255,255,0.05)":"#f9fafb",textPrimary:s?"#f9fafb":"#111827",textSecondary:s?"#9ca3af":"#6b7280",textMuted:s?"#6b7280":"#9ca3af"},f=p=>p==="good"?s?"#4ade80":"#16a34a":p==="warn"?s?"#facc15":"#ca8a04":p==="bad"?s?"#f87171":"#dc2626":p==="muted"?d.textMuted:d.textPrimary;return Yn.default.createElement("div",{"data-testid":"agent-card","data-agent-name":typeof e=="string"?e:void 0,onClick:o,onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),role:o?"button":void 0,tabIndex:o?0:void 0,onKeyDown:p=>{o&&(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),o(p))},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:o?"pointer":"default",transition:"border-color 0.15s ease, box-shadow 0.15s ease",boxShadow:u&&o?"0 4px 16px rgba(0,0,0,0.08)":"none",display:"flex",flexDirection:"column",gap:"12px"}},Yn.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"8px"}},Yn.default.createElement("div",{style:{minWidth:0}},Yn.default.createElement("div",{style:{fontWeight:600,fontSize:"15px",color:u&&o?"#ef4444":d.textPrimary,transition:"color 0.15s ease",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e},e),t&&Yn.default.createElement("div",{style:{fontSize:"13px",color:d.textSecondary,marginTop:"2px",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"}},t)),r&&Yn.default.createElement("div",{style:{flexShrink:0}},r)),a.length>0&&Yn.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:"6px"}},a.map(p=>Yn.default.createElement("div",{key:p.label,title:p.title,style:{background:d.tileBg,borderRadius:"8px",padding:"6px 8px",textAlign:"center"}},Yn.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,lineHeight:1.2,color:f(p.tone)}},p.value),Yn.default.createElement("div",{style:{fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.04em",color:d.textMuted,whiteSpace:"nowrap"}},p.label)))),i&&Yn.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"8px",fontSize:"12px",color:d.textMuted}},i),l&&Yn.default.createElement("div",{style:{opacity:u?1:0,transition:"opacity 0.15s ease"}},l))}function V2(e){return e==null?"muted":e>=.85?"good":e>=.7?"warn":"bad"}var LW=[{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 K2({agents:e,meta:t,onSelect:r,onNew:n,onBrowseTemplates:a,onDuplicate:i,onDelete:o,onRefresh:l,sort:s="recent",onSortChange:u,isLoading:c}){let[d,f]=(0,Le.useState)(""),[p,m]=(0,Le.useState)(""),[y,h]=(0,Le.useState)(""),v=e.filter(k=>{let A=!d||k.name.toLowerCase().includes(d.toLowerCase())||k.description?.toLowerCase().includes(d.toLowerCase()),P=!p||k.provider===p,K=!y||k.status===y;return A&&P&&K}),g=k=>{let A=new Date(k),K=new Date-A,z=Math.floor(K/(1e3*60*60*24));return z===0?"Today":z===1?"Yesterday":z<7?`${z} days ago`:A.toLocaleDateString()},b=k=>{switch(k){case"active":return"bg-green-100 text-green-700";case"draft":return"bg-yellow-100 text-yellow-700";case"archived":return"bg-gray-100 text-gray-500";default:return"bg-gray-100 text-gray-500"}},x=k=>k==null?"\u2014":k<1e3?`${Math.round(k)}ms`:`${(k/1e3).toFixed(1)}s`,S=k=>k==null?"\u2014":k>=1e6?`${(k/1e6).toFixed(1)}M`:k>=1e3?`${(k/1e3).toFixed(1)}k`:`${k}`,w=k=>k==null?"\u2014":k>0&&k<.01?"<$0.01":`$${k.toFixed(2)}`,_=k=>{if(!k)return"\u2014";let A=Math.floor((new Date-new Date(k))/(1e3*60*60*24));return A<=0?"Today":A<30?`${A}d ago`:new Date(k).toLocaleDateString()};return Le.default.createElement("div",{className:"space-y-6"},Le.default.createElement("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4"},Le.default.createElement("div",{className:"flex-1 flex items-center space-x-4"},Le.default.createElement("div",{className:"relative flex-1 max-w-md"},Le.default.createElement("input",{type:"text",placeholder:"Search agents...",value:d,onChange:k=>f(k.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"}),Le.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"},Le.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"}))),Le.default.createElement("select",{value:p,onChange:k=>m(k.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},Le.default.createElement("option",{value:""},"All Providers"),t.providers?.map(k=>Le.default.createElement("option",{key:k,value:k},k.charAt(0).toUpperCase()+k.slice(1)))),Le.default.createElement("select",{value:y,onChange:k=>h(k.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},Le.default.createElement("option",{value:""},"All Status"),Le.default.createElement("option",{value:"active"},"Active"),Le.default.createElement("option",{value:"draft"},"Draft"),Le.default.createElement("option",{value:"archived"},"Archived")),Le.default.createElement("select",{value:s,onChange:k=>u?.(k.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"},LW.map(k=>Le.default.createElement("option",{key:k.value,value:k.value},k.label)))),Le.default.createElement("div",{className:"flex items-center space-x-3"},Le.default.createElement("button",{onClick:l,disabled:c,className:"p-2 text-gray-500 hover:text-gray-700 hover:bg-gray-100 rounded-lg transition-colors"},Le.default.createElement("svg",{className:`h-5 w-5 ${c?"animate-spin":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Le.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"}))),Le.default.createElement("button",{onClick:a,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"},Le.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Le.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"})),Le.default.createElement("span",null,"Browse Templates")),Le.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"},Le.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Le.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})),Le.default.createElement("span",null,"New Agent")))),v.length>0?Le.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6"},v.map(k=>{let A=k.stats||{},P=A.run_sources||[],K=P.length?`Counted from ${P.map(z=>z==="platform"?"dashboard runs":"reported telemetry").join(" + ")}`:void 0;return Le.default.createElement(ed,{key:k.id,name:k.name,subtitle:k.description||"No description",badge:Le.default.createElement("span",{className:`px-2 py-0.5 text-xs font-medium rounded-full ${b(k.status)}`},k.status),onClick:()=>r(k),stats:[{label:`Runs ${A.window_days||30}d`,value:A.runs??0,title:K},{label:"Success",value:A.success_rate!=null?`${Math.round(A.success_rate)}%`:"\u2014",tone:V2(A.success_rate!=null?A.success_rate/100:null)},{label:"Avg time",value:x(A.avg_duration_ms)},{label:A.eval_samples_evaluated?`Eval ${A.eval_samples_passed}/${A.eval_samples_evaluated}`:"Eval",title:A.eval_samples_evaluated?`Latest evaluation: ${A.eval_samples_passed} of ${A.eval_samples_evaluated} samples passed`:void 0,value:A.eval_score!=null?`${Math.round(A.eval_score*100)}%`:"\u2014",tone:V2(A.eval_score)},{label:"Tokens",value:S(A.tokens)},{label:"Cost",value:w(A.cost),title:"Estimated from token counts at each model's published rates",tone:A.cost==null?"muted":void 0}],footer:Le.default.createElement(Le.default.Fragment,null,Le.default.createElement("span",{style:{display:"flex",alignItems:"center",gap:"6px",minWidth:0}},Le.default.createElement("span",{style:{padding:"2px 6px",borderRadius:"4px",background:"rgba(128,128,128,0.15)",whiteSpace:"nowrap",flexShrink:0}},k.provider),Le.default.createElement("span",{title:k.model,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},k.model)),Le.default.createElement("span",{style:{whiteSpace:"nowrap"},title:`Updated ${g(k.updatedAt||k.updated_at)}`},A.last_run_at?`Last run ${_(A.last_run_at)}`:`Updated ${g(k.updatedAt||k.updated_at)}`)),actions:Le.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",fontSize:"13px"}},Le.default.createElement("button",{onClick:z=>{z.stopPropagation(),i(k.id)},className:"text-gray-500 hover:text-red-600 transition-colors"},"Duplicate"),Le.default.createElement("button",{onClick:z=>{z.stopPropagation(),o(k.id)},className:"text-red-500 hover:text-red-700 transition-colors"},"Delete"))})})):Le.default.createElement("div",{className:"text-center py-16"},Le.default.createElement("div",{className:"inline-block mb-4"},Le.default.createElement(fr,{size:100})),Le.default.createElement("h3",{className:"text-lg font-medium text-gray-900 mb-2"},e.length===0?"No agents yet":"No matching agents"),Le.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&&Le.default.createElement("div",{className:"flex items-center justify-center space-x-4"},Le.default.createElement("button",{onClick:a,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"},Le.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Le.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"})),Le.default.createElement("span",null,"Browse Templates")),Le.default.createElement("span",{className:"text-gray-400"},"or"),Le.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"},Le.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Le.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})),Le.default.createElement("span",null,"Create From Scratch")))))}var me=re(ne());var $t={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 $e={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 td={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"]};async function $y(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 td[e]||[]}var Uy=[{id:"basics",label:"Basics",icon:"1"},{id:"configure",label:"Configure",icon:"2"},{id:"review",label:"Review",icon:"3"}];function q2({meta:e,onSave:t,onCancel:r,isLoading:n,initialDraft:a=null}){let[i,o]=(0,me.useState)(0),[l,s]=(0,me.useState)(td),[u,c]=(0,me.useState)({name:"",description:"",provider:"openai",model:td.openai[0],instructions:"",preset_type:"terminal",instruction_sets:["github"],tools:["terminal","code"],model_config:{temperature:.7},...a?{name:a.name,description:a.description||"",instructions:a.instructions,provider:a.provider,model:a.model,tools:a.tools||[],instruction_sets:[],mcp_servers:[]}:{}});(0,me.useEffect)(()=>{let h=!1;return $y(u.provider).then(v=>{if(h||v.length===0)return;let g=a?.provider===u.provider&&a.model?[...new Set([a.model,...v])]:v;s(b=>({...b,[u.provider]:g})),c(b=>g.includes(b.model)?b:{...b,model:g[0]})}),()=>{h=!0}},[u.provider]);let d=(h,v)=>{c(g=>({...g,[h]:v}))},f=(h,v)=>{c(g=>{let b=g[h]||[],x=b.includes(v)?b.filter(S=>S!==v):[...b,v];return{...g,[h]:x}})},p=h=>{if(d("preset_type",h),Rc[h]){let v=Rc[h];d("instruction_sets",[...v.instructions]),d("tools",[...v.tools])}},m=()=>{switch(i){case 0:return u.name.trim().length>=2;case 1:return!0;case 2:return!0;default:return!1}},y=()=>{t(u)};return me.default.createElement("div",{className:"max-w-4xl mx-auto"},a&&me.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."),me.default.createElement("div",{className:"mb-8"},me.default.createElement("div",{className:"flex items-center justify-between"},Uy.map((h,v)=>me.default.createElement("div",{key:h.id,className:"flex items-center"},me.default.createElement("div",{className:`flex items-center justify-center w-10 h-10 rounded-full border-2 transition-colors ${vo(i-1),className:"px-6 py-2 border border-gray-300 rounded-lg text-gray-700 hover:bg-gray-50 transition-colors"},i===0?"Cancel":"Back"),me.default.createElement("button",{onClick:i===Uy.length-1?y:()=>o(i+1),disabled:!m()||n,className:`px-6 py-2 rounded-lg transition-colors ${m()&&!n?"bg-red-500 text-white hover:bg-red-600":"bg-gray-200 text-gray-400 cursor-not-allowed"}`},i===Uy.length-1?"Create Agent":"Continue")))}function BW({formData:e,updateField:t,providerModels:r}){return me.default.createElement("div",{className:"space-y-6"},me.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Basic Information"),me.default.createElement("p",{className:"text-gray-500"},"Give your agent a name and configure its AI provider."),me.default.createElement("div",{className:"space-y-4"},me.default.createElement("div",null,me.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Agent Name *"),me.default.createElement("input",{type:"text",value:e.name,onChange:n=>t("name",n.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"})),me.default.createElement("div",null,me.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Description"),me.default.createElement("textarea",{value:e.description,onChange:n=>t("description",n.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"})),me.default.createElement("div",{className:"grid grid-cols-2 gap-4"},me.default.createElement("div",null,me.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Provider"),me.default.createElement("select",{value:e.provider,onChange:n=>{t("provider",n.target.value),t("model",r[n.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(n=>me.default.createElement("option",{key:n,value:n},n.charAt(0).toUpperCase()+n.slice(1))))),me.default.createElement("div",null,me.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Model"),me.default.createElement("select",{value:e.model,onChange:n=>t("model",n.target.value),className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},r[e.provider].map(n=>me.default.createElement("option",{key:n,value:n},n))))),me.default.createElement("div",null,me.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Temperature: ",e.model_config.temperature),me.default.createElement("input",{type:"range",min:"0",max:"1",step:"0.1",value:e.model_config.temperature,onChange:n=>t("model_config",{...e.model_config,temperature:parseFloat(n.target.value)}),className:"w-full accent-red-500"}),me.default.createElement("div",{className:"flex justify-between text-xs text-gray-400"},me.default.createElement("span",null,"Precise"),me.default.createElement("span",null,"Creative")))))}function $W({formData:e,meta:t,toggleArrayItem:r,updateField:n,selectPreset:a}){let i=Object.keys(Rc),o=Object.keys(Ks),l=Object.keys(qs);return me.default.createElement("div",{className:"space-y-6"},me.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Configure Agent"),me.default.createElement("p",{className:"text-gray-500"},"Choose a preset or customize instructions and tools."),me.default.createElement("div",{className:"flex justify-center py-6 bg-gradient-to-br from-gray-50 to-gray-100 rounded-xl"},me.default.createElement("div",{className:"flex flex-col items-center"},me.default.createElement("div",{className:"flex gap-2 mb-2"},e.instruction_sets.map(s=>{let u=Ks[s];return u?me.default.createElement("span",{key:s,className:"text-lg",title:u.label},u.emoji):null})),me.default.createElement(fr,{size:120}),me.default.createElement("div",{className:"flex gap-2 mt-2"},e.tools.map(s=>{let u=qs[s];return u?me.default.createElement("span",{key:s,className:"text-lg",title:u.label},u.emoji):null})))),me.default.createElement("div",null,me.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},"Quick Presets"),me.default.createElement("div",{className:"flex flex-wrap gap-2"},i.map(s=>me.default.createElement("button",{key:s,onClick:()=>a(s),className:`px-4 py-2 rounded-lg border-2 text-sm transition-all ${e.preset_type===s?"border-red-500 bg-red-50 text-red-700":"border-gray-200 hover:border-gray-300 text-gray-600"}`},me.default.createElement("span",{className:"capitalize"},s.replace(/([A-Z])/g," $1").trim()))))),me.default.createElement("div",null,me.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},me.default.createElement("strong",null,"Instructions"),me.default.createElement("span",{className:"text-gray-400 font-normal ml-2"},"System/developer messages")),me.default.createElement("div",{className:"flex flex-wrap gap-2"},o.map(s=>{let u=Ks[s];return me.default.createElement("button",{key:s,onClick:()=>r("instruction_sets",s),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-full text-sm transition-colors ${e.instruction_sets.includes(s)?"bg-red-500 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`},me.default.createElement("span",null,u.emoji),me.default.createElement("span",null,u.label))}))),me.default.createElement("div",null,me.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},me.default.createElement("strong",null,"Tools"),me.default.createElement("span",{className:"text-gray-400 font-normal ml-2"},"MCPs and integrations")),me.default.createElement("div",{className:"flex flex-wrap gap-2"},l.map(s=>{let u=qs[s];return me.default.createElement("button",{key:s,onClick:()=>r("tools",s),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-full text-sm transition-colors ${e.tools.includes(s)?"bg-red-500 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`},me.default.createElement("span",null,u.emoji),me.default.createElement("span",null,u.label))}))),me.default.createElement("div",null,me.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-2"},"System Instructions"),me.default.createElement("textarea",{value:e.instructions,onChange:s=>n("instructions",s.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 UW({formData:e}){return me.default.createElement("div",{className:"space-y-6"},me.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Review Your Agent"),me.default.createElement("p",{className:"text-gray-500"},"Confirm the configuration before creating your agent."),me.default.createElement("div",{className:"grid grid-cols-2 gap-8"},me.default.createElement("div",{className:"flex flex-col items-center py-6 bg-gradient-to-br from-gray-50 to-gray-100 rounded-xl"},me.default.createElement("div",{className:"flex gap-2 mb-2"},e.instruction_sets.map(t=>{let r=Ks[t];return r?me.default.createElement("span",{key:t,className:"text-lg",title:r.label},r.emoji):null})),me.default.createElement(fr,{size:100}),me.default.createElement("div",{className:"flex gap-2 mt-2"},e.tools.map(t=>{let r=qs[t];return r?me.default.createElement("span",{key:t,className:"text-lg",title:r.label},r.emoji):null})),me.default.createElement("h3",{className:"mt-4 text-lg font-semibold text-gray-900"},e.name),me.default.createElement("p",{className:"text-sm text-gray-500"},e.description||"No description")),me.default.createElement("div",{className:"space-y-4"},me.default.createElement("div",null,me.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Provider / Model"),me.default.createElement("p",{className:"text-gray-900"},e.provider," / ",e.model)),me.default.createElement("div",null,me.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Temperature"),me.default.createElement("p",{className:"text-gray-900"},e.model_config.temperature)),me.default.createElement("div",null,me.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Instructions"),me.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},e.instruction_sets.length>0?e.instruction_sets.map(t=>{let r=Ks[t];return r?me.default.createElement("span",{key:t,className:"px-2 py-0.5 bg-gray-100 rounded text-xs"},r.emoji," ",r.label):null}):me.default.createElement("span",{className:"text-gray-400 text-sm"},"None selected"))),me.default.createElement("div",null,me.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Tools"),me.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},e.tools.length>0?e.tools.map(t=>{let r=qs[t];return r?me.default.createElement("span",{key:t,className:"px-2 py-0.5 bg-red-100 text-red-700 rounded text-xs"},r.emoji," ",r.label):null}):me.default.createElement("span",{className:"text-gray-400 text-sm"},"None selected"))))),e.instructions&&me.default.createElement("div",null,me.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"System Instructions"),me.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)))}var ae=re(ne());var $a=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"}),Wr="#ef4444";var $=re(ne());var Fy=re(ne()),_3=re(ne());function k3(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t{var r=e.children,n=e.width,a=e.height,i=e.viewBox,o=e.className,l=e.style,s=e.title,u=e.desc,c=KW(e,VW),d=i||{width:n,height:a,x:0,y:0},f=Ue("recharts-surface",o);return Fy.createElement("svg",X2({},tr(c),{className:f,width:n,height:a,style:l,viewBox:"".concat(d.x," ").concat(d.y," ").concat(d.width," ").concat(d.height),ref:t}),Fy.createElement("title",null,s),Fy.createElement("desc",null,u),r)});var Wy=re(ne());var YW=["children","className"];function Z2(){return Z2=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=e.children,n=e.className,a=GW(e,YW),i=Ue("recharts-layer",n);return Wy.createElement("g",Z2({className:i},tr(a),{ref:t}),r)});var ba=re(ne()),v0=re(ne()),_D=re(Qf());function Hy(e){return e==="__proto__"}var ZW=/\.|(\[(?:[^[\]]*|(["'])(?:(?!\2)[^\\]|\\.)*?\2)\])/;function Vy(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e===""||e.startsWith(".")||e.endsWith(".")?!1:ZW.test(e);default:return!1}}function rd(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function Q2(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(Q2).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function nd(e){if(Array.isArray(e))return e.map(rd);if(typeof e=="symbol")return[e];e=Q2(e);let t=[],r=e.length;if(r===0)return t;let n=0,a="",i="",o=!1;for(e.charCodeAt(0)===46&&t.push("");n1&&arguments[1]!==void 0?arguments[1]:JW,r=10**t,n=Math.round(e*r)/r;return Object.is(n,-0)?0:n}function Hr(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n{var l=r[o-1];return typeof l=="string"?a+l+i:l!==void 0?a+Ua(l)+i:a+i},"")}var Ut=e=>e===0?0:e>0?1:-1,en=e=>typeof e=="number"&&e!=+e,So=e=>typeof e=="string"&&e.length>1&&e.indexOf("%")===e.length-1,he=e=>(typeof e=="number"||e instanceof Number)&&!en(e),On=e=>he(e)||typeof e=="string",RW=0,Ao=e=>{var t=++RW;return"".concat(e||"").concat(t)},pr=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!he(t)&&typeof t!="string")return n;var i;if(So(t)){if(r==null)return n;var o=t.indexOf("%");i=r*parseFloat(t.slice(0,o))/100}else i=+t;return en(i)&&(i=n),a&&r!=null&&i>r&&(i=r),i},J2=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,r={},n=0;nn&&(typeof t=="function"?t(n):Rr(n,t))===r)}var st=e=>e===null||typeof e>"u",ko=e=>st(e)?e:"".concat(e.charAt(0).toUpperCase()).concat(e.slice(1));function Vr(e){return e!=null}function Tn(){}function Qp(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 O3(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function zi(e){for(var t=1;t{var t=e.viewBox,r=e.position,n=e.offset,a=n===void 0?0:n,i=e.parentViewBox,o=e.clamp,l=Qp(t),s=l.x,u=l.y,c=l.height,d=l.upperWidth,f=l.lowerWidth,p=s,m=s+(d-f)/2,y=(p+m)/2,h=(d+f)/2,v=p+d/2,g=c>=0?1:-1,b=g*a,x=g>0?"end":"start",S=g>0?"start":"end",w=d>=0?1:-1,_=w*a,k=w>0?"end":"start",A=w>0?"start":"end",P=i;if(r==="top"){var K={x:p+d/2,y:u-b,horizontalAnchor:"middle",verticalAnchor:x};return o&&P&&(K.height=Math.max(u-P.y,0),K.width=d),K}if(r==="bottom"){var z={x:m+f/2,y:u+c+b,horizontalAnchor:"middle",verticalAnchor:S};return o&&P&&(z.height=Math.max(P.y+P.height-(u+c),0),z.width=f),z}if(r==="left"){var Q={x:y-_,y:u+c/2,horizontalAnchor:k,verticalAnchor:"middle"};return o&&P&&(Q.width=Math.max(Q.x-P.x,0),Q.height=c),Q}if(r==="right"){var M={x:y+h+_,y:u+c/2,horizontalAnchor:A,verticalAnchor:"middle"};return o&&P&&(M.width=Math.max(P.x+P.width-M.x,0),M.height=c),M}var F=o&&P?{width:h,height:c}:{};return r==="insideLeft"?zi({x:y+_,y:u+c/2,horizontalAnchor:A,verticalAnchor:"middle"},F):r==="insideRight"?zi({x:y+h-_,y:u+c/2,horizontalAnchor:k,verticalAnchor:"middle"},F):r==="insideTop"?zi({x:p+d/2,y:u+b,horizontalAnchor:"middle",verticalAnchor:S},F):r==="insideBottom"?zi({x:m+f/2,y:u+c-b,horizontalAnchor:"middle",verticalAnchor:x},F):r==="insideTopLeft"?zi({x:p+_,y:u+b,horizontalAnchor:A,verticalAnchor:S},F):r==="insideTopRight"?zi({x:p+d-_,y:u+b,horizontalAnchor:k,verticalAnchor:S},F):r==="insideBottomLeft"?zi({x:m+_,y:u+c-b,horizontalAnchor:A,verticalAnchor:x},F):r==="insideBottomRight"?zi({x:m+f-_,y:u+c-b,horizontalAnchor:k,verticalAnchor:x},F):r&&typeof r=="object"&&(he(r.x)||So(r.x))&&(he(r.y)||So(r.y))?zi({x:s+pr(r.x,h),y:u+pr(r.y,c),horizontalAnchor:"end",verticalAnchor:"end"},F):zi({x:v,y:u+c/2,horizontalAnchor:"middle",verticalAnchor:"middle"},F)},nH=["top","left","right","bottom"];function Jp(e){return e==null?!1:typeof e=="object"?!0:nH.includes(e)}var Yy=re(ne()),R2=(0,Yy.createContext)(null),T3=()=>(0,Yy.useContext)(R2);var Mn=re(ne());var X3=re(ne());function Tt(e){return function(){return e}}var eA=Math.cos;var Rp=Math.sin,tn=Math.sqrt;var Ys=Math.PI,Jce=Ys/2,ad=2*Ys;var tA=Math.PI,rA=2*tA,Gs=1e-6,aH=rA-Gs;function M3(e){this._+=e[0];for(let t=1,r=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return M3;let r=10**t;return function(n){this._+=n[0];for(let a=1,i=n.length;aGs)if(!(Math.abs(d*s-u*c)>Gs)||!i)this._append`L${this._x1=t},${this._y1=r}`;else{let p=n-o,m=a-l,y=s*s+u*u,h=p*p+m*m,v=Math.sqrt(y),g=Math.sqrt(f),b=i*Math.tan((tA-Math.acos((y+f-h)/(2*v*g)))/2),x=b/g,S=b/v;Math.abs(x-1)>Gs&&this._append`L${t+x*c},${r+x*d}`,this._append`A${i},${i},0,0,${+(d*p>c*m)},${this._x1=t+S*s},${this._y1=r+S*u}`}}arc(t,r,n,a,i,o){if(t=+t,r=+r,n=+n,o=!!o,n<0)throw new Error(`negative radius: ${n}`);let l=n*Math.cos(a),s=n*Math.sin(a),u=t+l,c=r+s,d=1^o,f=o?a-i:i-a;this._x1===null?this._append`M${u},${c}`:(Math.abs(this._x1-u)>Gs||Math.abs(this._y1-c)>Gs)&&this._append`L${u},${c}`,n&&(f<0&&(f=f%rA+rA),f>aH?this._append`A${n},${n},0,1,${d},${t-l},${r-s}A${n},${n},0,1,${d},${this._x1=u},${this._y1=c}`:f>Gs&&this._append`A${n},${n},0,${+(f>=tA)},${d},${this._x1=t+n*Math.cos(i)},${this._y1=r+n*Math.sin(i)}`)}rect(t,r,n,a){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+a}h${-n}Z`}toString(){return this._}};function P3(){return new Xs}P3.prototype=Xs.prototype;function id(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 Xs(t)}var ode=Array.prototype.slice;function od(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function D3(e){this._context=e}D3.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 Dl(e){return new D3(e)}function Gy(e){return e[0]}function Xy(e){return e[1]}function em(e,t){var r=Tt(!0),n=null,a=Dl,i=null,o=id(l);e=typeof e=="function"?e:e===void 0?Gy:Tt(e),t=typeof t=="function"?t:t===void 0?Xy:Tt(t);function l(s){var u,c=(s=od(s)).length,d,f=!1,p;for(n==null&&(i=a(p=o())),u=0;u<=c;++u)!(u=p;--m)l.point(b[m],x[m]);l.lineEnd(),l.areaEnd()}v&&(b[f]=+e(h,f,d),x[f]=+t(h,f,d),l.point(n?+n(h,f,d):b[f],r?+r(h,f,d):x[f]))}if(g)return l=null,g+""||null}function c(){return em().defined(a).curve(o).context(i)}return u.x=function(d){return arguments.length?(e=typeof d=="function"?d:Tt(+d),n=null,u):e},u.x0=function(d){return arguments.length?(e=typeof d=="function"?d:Tt(+d),u):e},u.x1=function(d){return arguments.length?(n=d==null?null:typeof d=="function"?d:Tt(+d),u):n},u.y=function(d){return arguments.length?(t=typeof d=="function"?d:Tt(+d),r=null,u):t},u.y0=function(d){return arguments.length?(t=typeof d=="function"?d:Tt(+d),u):t},u.y1=function(d){return arguments.length?(r=d==null?null:typeof d=="function"?d:Tt(+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?(a=typeof d=="function"?d:Tt(!!d),u):a},u.curve=function(d){return arguments.length?(o=d,i!=null&&(l=o(i)),u):o},u.context=function(d){return arguments.length?(d==null?i=l=null:l=o(i=d),u):i},u}var Zy=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 nA(e){return new Zy(e,!0)}function aA(e){return new Zy(e,!1)}var sd={draw(e,t){let r=tn(t/Ys);e.moveTo(r,0),e.arc(0,0,r,0,ad)}};var iA={draw(e,t){let r=tn(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 I3=tn(1/3),oH=I3*2,oA={draw(e,t){let r=tn(t/oH),n=r*I3;e.moveTo(0,-r),e.lineTo(n,0),e.lineTo(0,r),e.lineTo(-n,0),e.closePath()}};var lA={draw(e,t){let r=tn(t),n=-r/2;e.rect(n,n,r,r)}};var lH=.8908130915292852,j3=Rp(Ys/10)/Rp(7*Ys/10),sH=Rp(ad/10)*j3,uH=-eA(ad/10)*j3,sA={draw(e,t){let r=tn(t*lH),n=sH*r,a=uH*r;e.moveTo(0,-r),e.lineTo(n,a);for(let i=1;i<5;++i){let o=ad*i/5,l=eA(o),s=Rp(o);e.lineTo(s*r,-l*r),e.lineTo(l*n-s*a,s*n+l*a)}e.closePath()}};var uA=tn(3),cA={draw(e,t){let r=-tn(t/(uA*3));e.moveTo(0,r*2),e.lineTo(-uA*r,-r),e.lineTo(uA*r,-r),e.closePath()}};var Fa=-.5,Wa=tn(3)/2,dA=1/tn(12),cH=(dA/2+1)*3,fA={draw(e,t){let r=tn(t/cH),n=r/2,a=r*dA,i=n,o=r*dA+r,l=-i,s=o;e.moveTo(n,a),e.lineTo(i,o),e.lineTo(l,s),e.lineTo(Fa*n-Wa*a,Wa*n+Fa*a),e.lineTo(Fa*i-Wa*o,Wa*i+Fa*o),e.lineTo(Fa*l-Wa*s,Wa*l+Fa*s),e.lineTo(Fa*n+Wa*a,Fa*a-Wa*n),e.lineTo(Fa*i+Wa*o,Fa*o-Wa*i),e.lineTo(Fa*l+Wa*s,Fa*s-Wa*l),e.closePath()}};function Qy(e,t){let r=null,n=id(a);e=typeof e=="function"?e:Tt(e||sd),t=typeof t=="function"?t:Tt(t===void 0?64:+t);function a(){let i;if(r||(r=i=n()),e.apply(this,arguments).draw(r,+t.apply(this,arguments)),i)return r=null,i+""||null}return a.type=function(i){return arguments.length?(e=typeof i=="function"?i:Tt(i),a):e},a.size=function(i){return arguments.length?(t=typeof i=="function"?i:Tt(+i),a):t},a.context=function(i){return arguments.length?(r=i??null,a):r},a}function ud(){}function cd(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 z3(e){this._context=e}z3.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:cd(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:cd(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function pA(e){return new z3(e)}function L3(e){this._context=e}L3.prototype={areaStart:ud,areaEnd:ud,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:cd(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function mA(e){return new L3(e)}function B3(e){this._context=e}B3.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:cd(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function vA(e){return new B3(e)}function $3(e){this._context=e}$3.prototype={areaStart:ud,areaEnd:ud,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 gA(e){return new $3(e)}function U3(e){return e<0?-1:1}function F3(e,t,r){var n=e._x1-e._x0,a=t-e._x1,i=(e._y1-e._y0)/(n||a<0&&-0),o=(r-e._y1)/(a||n<0&&-0),l=(i*a+o*n)/(n+a);return(U3(i)+U3(o))*Math.min(Math.abs(i),Math.abs(o),.5*Math.abs(l))||0}function W3(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function yA(e,t,r){var n=e._x0,a=e._y0,i=e._x1,o=e._y1,l=(i-n)/3;e._context.bezierCurveTo(n+l,a+l*t,i-l,o-l*r,i,o)}function Jy(e){this._context=e}Jy.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:yA(this,this._t0,W3(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,yA(this,W3(this,r=F3(this,e,t)),r);break;default:yA(this,this._t0,r=F3(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function H3(e){this._context=new V3(e)}(H3.prototype=Object.create(Jy.prototype)).point=function(e,t){Jy.prototype.point.call(this,t,e)};function V3(e){this._context=e}V3.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,a,i){this._context.bezierCurveTo(t,e,n,r,i,a)}};function hA(e){return new Jy(e)}function xA(e){return new H3(e)}function q3(e){this._context=e}q3.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=K3(e),a=K3(t),i=0,o=1;o=0;--t)a[t]=(o[t]-a[t+1])/i[t];for(i[r-1]=(e[r]+a[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 wA(e){return new Ry(e,.5)}function SA(e){return new Ry(e,0)}function AA(e){return new Ry(e,1)}function va(e,t){if((o=e.length)>1)for(var r=1,n,a,i=e[t[0]],o,l=i.length;r=0;)r[t]=t;return r}function dH(e,t){return e[t]}function fH(e){let t=[];return t.key=e,t}function kA(){var e=Tt([]),t=dd,r=va,n=dH;function a(i){var o=Array.from(e.apply(this,arguments),fH),l,s=o.length,u=-1,c;for(let d of i)for(l=0,++u;l0){for(var r,n,a=0,i=e[0].length,o;a0){for(var r=0,n=e[t[0]],a,i=n.length;r0)||!((i=(a=e[t[0]]).length)>0))){for(var r=0,n=1,a,i,o;n{var t="symbol".concat(ko(e));return Z3[t]||sd},SH=(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*bH;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}},AH=(e,t)=>{Z3["symbol".concat(ko(e))]=t},OA=e=>{var t=e.type,r=t===void 0?"circle":t,n=e.size,a=n===void 0?64:n,i=e.sizeType,o=i===void 0?"area":i,l=hH(e,mH),s=G3(G3({},l),{},{type:r,size:a,sizeType:o}),u="circle";typeof r=="string"&&(u=r);var c=()=>{var y=wH(u),h=Qy().type(y).size(SH(a,o,u)),v=h();if(v!==null)return v},d=s.className,f=s.cx,p=s.cy,m=tr(s);return he(f)&&he(p)&&he(a)?X3.createElement("path",_A({},m,{className:Ue("recharts-symbols",d),transform:"translate(".concat(f,", ").concat(p,")"),d:c()})):null};OA.registerSymbol=AH;var Q3=re(ne());var eh=e=>"radius"in e&&"startAngle"in e&&"endAngle"in e,fd=(e,t)=>{if(!e||typeof e=="function"||typeof e=="boolean")return null;var r=e;if((0,Q3.isValidElement)(e)&&(r=e.props),typeof r!="object"&&typeof r!="function")return null;var n={};return Object.keys(r).forEach(a=>{Xp(a)&&typeof r[a]=="function"&&(n[a]=t||(i=>r[a](r,i)))}),n},kH=(e,t,r)=>n=>(e(t,r,n),null),No=(e,t,r)=>{if(e===null||typeof e!="object"&&typeof e!="function")return null;var n=null;return Object.keys(e).forEach(a=>{var i=e[a];Xp(a)&&typeof i=="function"&&(n||(n={}),n[a]=kH(i,t,r))}),n};function J3(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function NH(e){for(var t=1;t(o[l]===void 0&&n[l]!==void 0&&(o[l]=n[l]),o),r);return i}function th(){return th=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var p,m,y=d.formatter||a,h=Ue({"recharts-legend-item":!0,["legend-item-".concat(f)]:!0,inactive:d.inactive});if(d.type==="none")return null;var v=typeof l=="object"?eM({},l):{};v.color=d.inactive?i:v.color||d.color,(p=v.whiteSpace)!==null&&p!==void 0||(v.whiteSpace="normal"),(m=v.overflowWrap)!==null&&m!==void 0||(v.overflowWrap="break-word");var g=y?y(d.value,d,f):d.value;return Mn.createElement("li",th({className:h,style:u,key:"legend-item-".concat(f)},No(e,d,f)),Mn.createElement(Zp,{width:r,height:r,viewBox:s,style:c,"aria-label":d.value==null?"legend icon":"".concat(d.value," legend icon")},Mn.createElement(IH,{data:d,iconType:o,inactiveColor:i})),Mn.createElement("span",{className:"recharts-legend-item-text",style:v},g))})}var tM=e=>{var t=it(e,PH),r=t.payload,n=t.layout,a=t.align;if(!r||!r.length)return null;var i={padding:0,margin:0,textAlign:n==="horizontal"?a:"left"};return Mn.createElement("ul",{className:"recharts-default-legend",style:i},Mn.createElement(jH,th({},t,{payload:r})))};function rM(e,t){let r=new Map;for(let n=0;nObject.prototype.propertyIsEnumerable.call(e,t))}function Co(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}var nh="[object RegExp]",pd="[object String]",md="[object Number]",vd="[object Boolean]",ah="[object Arguments]",ih="[object Symbol]",oh="[object Date]",lh="[object Map]",sh="[object Set]",uh="[object Array]",oM="[object Function]",ch="[object ArrayBuffer]",gd="[object Object]",lM="[object Error]",dh="[object DataView]",fh="[object Uint8Array]",ph="[object Uint8ClampedArray]",mh="[object Uint16Array]",vh="[object Uint32Array]",sM="[object BigUint64Array]",gh="[object Int8Array]",yh="[object Int16Array]",hh="[object Int32Array]",uM="[object BigInt64Array]",xh="[object Float32Array]",bh="[object Float64Array]";var TA=typeof globalThis=="object"&&globalThis||typeof window=="object"&&window||typeof self=="object"&&self||typeof global=="object"&&global||(function(){return this})();function nm(e){return typeof TA.Buffer<"u"&&TA.Buffer.isBuffer(e)}function cM(e,t){return Il(e,void 0,e,new Map,t)}function Il(e,t,r,n=new Map,a=void 0){let i=a?.(e,t,r,n);if(i!==void 0)return i;if(tm(e))return e;if(n.has(e))return n.get(e);if(Array.isArray(e)){let o=new Array(e.length);n.set(e,o);for(let l=0;l{}):MA(e,t,function n(a,i,o,l,s,u){let c=r(a,i,o,l,s,u);return c!==void 0?!!c:MA(a,i,n,u,!1)},new Map,!0)}function MA(e,t,r,n,a=!1){if(t===e)return!0;switch(typeof t){case"object":return LH(e,t,r,n);case"function":return Object.keys(t).length>0?MA(e,{...t},r,n,a):jl(e,t);default:return wh(e)?a?typeof t=="string"?t==="":!0:jl(e,t):jl(e,t)}}function LH(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return fM(e,t,r,n);if(t instanceof Map)return BH(e,t,r,n);if(t instanceof Set)return $H(e,t,r,n);let a=Object.keys(t);if(e==null||tm(e))return a.length===0;if(a.length===0)return!0;if(n?.has(t))return n.get(t)===e;n?.set(t,e);try{for(let i=0;i{})}function pM(e){return e=dM(e),t=>Sh(t,e)}function mM(e,t){return cM(e,(r,n,a,i)=>{let o=t?.(r,n,a,i);if(o!==void 0)return o;if(typeof e=="object"){if(Co(e)==="[object Object]"&&typeof e.constructor!="function"){let l={};return i.set(e,l),Va(l,e,a,i),l}switch(Object.prototype.toString.call(e)){case md:case pd:case vd:{let l=new e.constructor(e?.valueOf());return Va(l,e),l}case ah:{let l={};return Va(l,e),l.length=e.length,l[Symbol.iterator]=e[Symbol.iterator],l}default:return}}})}function vM(e){return mM(e)}var UH=/^(?:0|[1-9]\d*)$/;function Ah(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e=0}function kh(e){return e!=null&&typeof e!="function"&&bM(e.length)}function wM(e){return typeof e=="object"&&e!==null}function SM(e){return wM(e)&&kh(e)}function Nh(e,t=rh){return SM(e)?rM(Array.from(e),nM(xM(t),1)):[]}function Ch(e,t,r){return t===!0?Nh(e,r):typeof t=="function"?Nh(e,t):e}var PM=re(TM()),im=re(ne());var MM=re(ne()),am=(0,MM.createContext)(null);var aV=e=>e,He=()=>{var e=(0,im.useContext)(am);return e?e.store.dispatch:aV},_h=()=>{},iV=()=>_h,oV=(e,t)=>e===t;function xe(e){var t=(0,im.useContext)(am),r=(0,im.useMemo)(()=>t?n=>{if(n!=null)return e(n)}:_h,[t,e]);return(0,PM.useSyncExternalStoreWithSelector)(t?t.subscription.addNestedSub:iV,t?t.store.getState:_h,t?t.store.getState:_h,r,oV)}function lV(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function sV(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 DM=e=>Array.isArray(e)?e:[e];function uV(e){let t=Array.isArray(e[0])?e[0]:e;return sV(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function cV(e,t){let r=[],{length:n}=e;for(let a=0;atypeof WeakRef>"u"?dV:WeakRef,jM=fV(),pV=0,IM=1;function Oh(){return{s:pV,v:void 0,o:null,p:null}}function mV(e){return e instanceof jM?e.deref():e}function zM(e,t={}){let r=Oh(),{resultEqualityCheck:n}=t,a,i=0;function o(){let l=r,{length:s}=arguments;for(let d=0,f=s;d{r=Oh(),o.resetResultsCount()},o.resultsCount=()=>i,o.resetResultsCount=()=>{i=0},o}function vV(e,...t){let r=typeof e=="function"?{memoize:e,memoizeOptions:t}:e,n=(...a)=>{let i=0,o=0,l,s={},u=a.pop();typeof u=="object"&&(s=u,u=a.pop()),lV(u,`createSelector expects an output function after the inputs, but received: [${typeof u}]`);let c={...r,...s},{memoize:d,memoizeOptions:f=[],argsMemoize:p=zM,argsMemoizeOptions:m=[]}=c,y=DM(f),h=DM(m),v=uV(a),g=d(function(){return i++,u.apply(null,arguments)},...y),b=!0,x=p(function(){o++;let w=cV(v,arguments);return l=g.apply(null,w),l},...h);return Object.assign(x,{resultFunc:u,memoizedResultFunc:g,dependencies:v,dependencyRecomputations:()=>o,resetDependencyRecomputations:()=>{o=0},lastResult:()=>l,recomputations:()=>i,resetRecomputations:()=>{i=0},memoize:d,argsMemoize:p})};return Object.assign(n,{withTypes:()=>n}),n}var Z=vV(zM);function LM(e,t=1){let r=[],n=Math.floor(t),a=(i,o)=>{for(let l=0;l{if(e!==t){let n=BM(e),a=BM(t);if(n===a&&n===0){if(et)return r==="desc"?-1:1}return r==="desc"?a-n:n-a}return 0};function Th(e){return typeof e=="symbol"||e instanceof Symbol}var gV=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,yV=/^\w*$/;function UM(e,t){return Array.isArray(e)?!1:typeof e=="number"||typeof e=="boolean"||e==null||Th(e)?!0:typeof e=="string"&&(yV.test(e)||!gV.test(e))||t!=null&&Object.hasOwn(t,e)}function FM(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(l=>String(l));let a=(l,s)=>{let u=l;for(let c=0;cs==null||l==null?s:typeof l=="object"&&"key"in l?Object.hasOwn(s,l.key)?s[l.key]:a(s,l.path):typeof l=="function"?l(s):Array.isArray(l)?a(s,l):typeof s=="object"?s[l]:s,o=t.map(l=>(Array.isArray(l)&&l.length===1&&(l=l[0]),l==null||typeof l=="function"||Array.isArray(l)||UM(l)?l:{key:l,path:nd(l)}));return e.map(l=>({original:l,criteria:o.map(s=>i(s,l))})).slice().sort((l,s)=>{for(let u=0;ul.original)}function Eo(e,...t){let r=t.length;return r>1&&om(e,t[0],t[1])?t=[]:r>2&&om(t[0],t[1],t[2])&&(t=[t[0]]),FM(e,LM(t),["asc"])}var IA=e=>e.legend.settings,WM=e=>e.legend.size,hV=e=>e.legend.payload,HM=Z([hV,IA],(e,t)=>{var r=t.itemSorter,n=e.flat(1);return r?Eo(n,r):n});function VM(){return xe(HM)}var _o=re(ne());function xV(e,t){return AV(e)||SV(e,t)||wV(e,t)||bV()}function bV(){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 wV(e,t){if(e){if(typeof e=="string")return KM(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)?KM(e,t):void 0}}function KM(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rMh||Math.abs(e.left-t.left)>Mh||Math.abs(e.top-t.top)>Mh||Math.abs(e.width-t.width)>Mh}function YM(e){var t=e.getBoundingClientRect();return{height:t.height,left:t.left,top:t.top,width:t.width}}function Ph(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=(0,_o.useState)({height:0,left:0,top:0,width:0}),r=xV(t,2),n=r[0],a=r[1],i=(0,_o.useRef)(null),o=(0,_o.useRef)(n);o.current=n;var l=(0,_o.useCallback)(s=>{if(i.current!=null&&(i.current.disconnect(),i.current=null),s!=null){var u=YM(s);if(qM(u,o.current)&&a(u),typeof ResizeObserver<"u"){var c=new ResizeObserver(()=>{var d=YM(s);qM(d,o.current)&&a(d)});c.observe(s),i.current=c}}},[...e]);return(0,_o.useEffect)(()=>()=>{var s;(s=i.current)===null||s===void 0||s.disconnect()},[]),[n,l]}var uD=re(ne());function pn(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 kV=typeof Symbol=="function"&&Symbol.observable||"@@observable",GM=kV,jA=()=>Math.random().toString(36).substring(7).split("").join("."),NV={INIT:`@@redux/INIT${jA()}`,REPLACE:`@@redux/REPLACE${jA()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${jA()}`},Dh=NV;function Ih(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 zA(e,t,r){if(typeof e!="function")throw new Error(pn(2));if(typeof t=="function"&&typeof r=="function"||typeof r=="function"&&typeof arguments[3]=="function")throw new Error(pn(0));if(typeof t=="function"&&typeof r>"u"&&(r=t,t=void 0),typeof r<"u"){if(typeof r!="function")throw new Error(pn(1));return r(zA)(e,t)}let n=e,a=t,i=new Map,o=i,l=0,s=!1;function u(){o===i&&(o=new Map,i.forEach((h,v)=>{o.set(v,h)}))}function c(){if(s)throw new Error(pn(3));return a}function d(h){if(typeof h!="function")throw new Error(pn(4));if(s)throw new Error(pn(5));let v=!0;u();let g=l++;return o.set(g,h),function(){if(v){if(s)throw new Error(pn(6));v=!1,u(),o.delete(g),i=null}}}function f(h){if(!Ih(h))throw new Error(pn(7));if(typeof h.type>"u")throw new Error(pn(8));if(typeof h.type!="string")throw new Error(pn(17));if(s)throw new Error(pn(9));try{s=!0,a=n(a,h)}finally{s=!1}return(i=o).forEach(g=>{g()}),h}function p(h){if(typeof h!="function")throw new Error(pn(10));n=h,f({type:Dh.REPLACE})}function m(){let h=d;return{subscribe(v){if(typeof v!="object"||v===null)throw new Error(pn(11));function g(){let x=v;x.next&&x.next(c())}return g(),{unsubscribe:h(g)}},[GM](){return this}}}return f({type:Dh.INIT}),{dispatch:f,subscribe:d,getState:c,replaceReducer:p,[GM]:m}}function CV(e){Object.keys(e).forEach(t=>{let r=e[t];if(typeof r(void 0,{type:Dh.INIT})>"u")throw new Error(pn(12));if(typeof r(void 0,{type:Dh.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(pn(13))})}function jh(e){let t=Object.keys(e),r={};for(let o=0;o"u"){let h=s&&s.type;throw new Error(pn(14))}c[f]=y,u=u||y!==m}return u=u||n.length!==Object.keys(l).length,u?c:l}}function lm(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function XM(...e){return t=>(r,n)=>{let a=t(r,n),i=()=>{throw new Error(pn(15))},o={getState:a.getState,dispatch:(s,...u)=>i(s,...u)},l=e.map(s=>s(o));return i=lm(...l)(a.dispatch),{...a,dispatch:i}}}function LA(e){return Ih(e)&&"type"in e&&typeof e.type=="string"}var aP=Symbol.for("immer-nothing"),ZM=Symbol.for("immer-draftable"),yn=Symbol.for("immer-state");function mi(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var ga=Object,xd=ga.getPrototypeOf,$h="constructor",Kh="prototype",FA="configurable",Uh="enumerable",Lh="writable",sm="value",Li=e=>!!e&&!!e[yn];function ya(e){return e?iP(e)||Yh(e)||!!e[ZM]||!!e[$h]?.[ZM]||Gh(e)||Xh(e):!1}var EV=ga[Kh][$h].toString(),QM=new WeakMap;function iP(e){if(!e||!XA(e))return!1;let t=xd(e);if(t===null||t===ga[Kh])return!0;let r=ga.hasOwnProperty.call(t,$h)&&t[$h];if(r===Object)return!0;if(!hd(r))return!1;let n=QM.get(r);return n===void 0&&(n=Function.toString.call(r),QM.set(r,n)),n===EV}function qh(e,t,r=!0){dm(e)===0?(r?Reflect.ownKeys(e):ga.keys(e)).forEach(a=>{t(a,e[a],e)}):e.forEach((n,a)=>t(a,n,e))}function dm(e){let t=e[yn];return t?t.type_:Yh(e)?1:Gh(e)?2:Xh(e)?3:0}var BA=(e,t,r=dm(e))=>r===2?e.has(t):ga[Kh].hasOwnProperty.call(e,t),WA=(e,t,r=dm(e))=>r===2?e.get(t):e[t],Fh=(e,t,r,n=dm(e))=>{n===2?e.set(t,r):n===3?e.add(r):e[t]=r};function _V(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var Yh=Array.isArray,Gh=e=>e instanceof Map,Xh=e=>e instanceof Set,XA=e=>typeof e=="object",hd=e=>typeof e=="function",$A=e=>typeof e=="boolean";function OV(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var Oo=e=>e.copy_||e.base_;var ZA=e=>e.modified_?e.copy_:e.base_;function HA(e,t){if(Gh(e))return new Map(e);if(Xh(e))return new Set(e);if(Yh(e))return Array[Kh].slice.call(e);let r=iP(e);if(t===!0||t==="class_only"&&!r){let n=ga.getOwnPropertyDescriptors(e);delete n[yn];let a=Reflect.ownKeys(n);for(let i=0;i1&&ga.defineProperties(e,{set:zh,add:zh,clear:zh,delete:zh}),ga.freeze(e),t&&qh(e,(r,n)=>{QA(n,!0)},!1)),e}function TV(){mi(2)}var zh={[sm]:TV};function Zh(e){return e===null||!XA(e)?!0:ga.isFrozen(e)}var Wh="MapSet",VA="Patches",JM="ArrayMethods",oP={};function Zs(e){let t=oP[e];return t||mi(0,e),t}var RM=e=>!!oP[e];var um,lP=()=>um,MV=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:RM(Wh)?Zs(Wh):void 0,arrayMethodsPlugin_:RM(JM)?Zs(JM):void 0});function eP(e,t){t&&(e.patchPlugin_=Zs(VA),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function KA(e){qA(e),e.drafts_.forEach(PV),e.drafts_=null}function qA(e){e===um&&(um=e.parent_)}var tP=e=>um=MV(um,e);function PV(e){let t=e[yn];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function rP(e,t){t.unfinalizedDrafts_=t.drafts_.length;let r=t.drafts_[0];if(e!==void 0&&e!==r){r[yn].modified_&&(KA(t),mi(4)),ya(e)&&(e=nP(t,e));let{patchPlugin_:a}=t;a&&a.generateReplacementPatches_(r[yn].base_,e,t)}else e=nP(t,r);return DV(t,e,!0),KA(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==aP?e:void 0}function nP(e,t){if(Zh(t))return t;let r=t[yn];if(!r)return Hh(t,e.handledSet_,e);if(!Qh(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);cP(r,e)}return r.copy_}function DV(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&QA(t,r)}function sP(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var Qh=(e,t)=>e.scope_===t,IV=[];function uP(e,t,r,n){let a=Oo(e),i=e.type_;if(n!==void 0&&WA(a,n,i)===t){Fh(a,n,r,i);return}if(!e.draftLocations_){let l=e.draftLocations_=new Map;qh(a,(s,u)=>{if(Li(u)){let c=l.get(u)||[];c.push(s),l.set(u,c)}})}let o=e.draftLocations_.get(t)??IV;for(let l of o)Fh(a,l,r,i)}function jV(e,t,r){e.callbacks_.push(function(a){let i=t;if(!i||!Qh(i,a))return;a.mapSetPlugin_?.fixSetContents(i);let o=ZA(i);uP(e,i.draft_??i,o,r),cP(i,a)})}function cP(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 a=n.getPath(e);a&&n.generatePatches_(e,a,t)}sP(e)}}function zV(e,t,r){let{scope_:n}=e;if(Li(r)){let a=r[yn];Qh(a,n)&&a.callbacks_.push(function(){Bh(e);let o=ZA(a);uP(e,r,o,t)})}else ya(r)&&e.callbacks_.push(function(){let i=Oo(e);e.type_===3?i.has(r)&&Hh(r,n.handledSet_,n):WA(i,t,e.type_)===r&&n.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&Hh(WA(e.copy_,t,e.type_),n.handledSet_,n)})}function Hh(e,t,r){return!r.immer_.autoFreeze_&&r.unfinalizedDrafts_<1||Li(e)||t.has(e)||!ya(e)||Zh(e)||(t.add(e),qh(e,(n,a)=>{if(Li(a)){let i=a[yn];if(Qh(i,r)){let o=ZA(i);Fh(e,n,o,e.type_),sP(i)}}else ya(a)&&Hh(a,t,r)})),e}function LV(e,t){let r=Yh(e),n={type_:r?1:0,scope_:t?t.scope_:lP(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},a=n,i=Vh;r&&(a=[n],i=cm);let{revoke:o,proxy:l}=Proxy.revocable(a,i);return n.draft_=l,n.revoke_=o,[l,n]}var Vh={get(e,t){if(t===yn)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 a=Oo(e);if(!BA(a,t,e.type_))return $V(e,a,t);let i=a[t];if(e.finalized_||!ya(i)||n&&e.operationMethod&&r?.isMutatingArrayMethod(e.operationMethod)&&OV(t))return i;if(i===UA(e.base_,t)||BV(e,t,i)){Bh(e);let o=e.type_===1?+t:t,l=GA(e.scope_,i,e,o);return e.copy_[o]=l}return i},has(e,t){return t in Oo(e)},ownKeys(e){return Reflect.ownKeys(Oo(e))},set(e,t,r){let n=dP(Oo(e),t);if(n?.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){let a=UA(Oo(e),t),i=a?.[yn];if(i&&i.base_===r)return e.copy_[t]=r,e.assigned_.set(t,!1),!0;if(_V(r,a)&&(r!==void 0||BA(e.base_,t,e.type_)))return!0;Bh(e),YA(e)}return e.copy_[t]===r&&(r!==void 0||BA(e.copy_,t,e.type_))||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_.set(t,!0),zV(e,t,r)),!0},deleteProperty(e,t){return Bh(e),UA(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),YA(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let r=Oo(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{[Lh]:!0,[FA]:e.type_!==1||t!=="length",[Uh]:n[Uh],[sm]:r[t]}},defineProperty(){mi(11)},getPrototypeOf(e){return xd(e.base_)},setPrototypeOf(){mi(12)}},cm={};for(let e in Vh){let t=Vh[e];cm[e]=function(){let r=arguments;return r[0]=r[0][0],t.apply(this,r)}}cm.deleteProperty=function(e,t){return cm.set.call(this,e,t,void 0)};cm.set=function(e,t,r){return Vh.set.call(this,e[0],t,r,e[0])};function UA(e,t){let r=e[yn];return(r?Oo(r):e)[t]}function BV(e,t,r){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!ya(r)||r[yn]?!1:e.baseRefs_.has(r)}function $V(e,t,r){let n=dP(t,r);return n?sm in n?n[sm]:n.get?.call(e.draft_):void 0}function dP(e,t){if(!(t in e))return;let r=xd(e);for(;r;){let n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=xd(r)}}function YA(e){e.modified_||(e.modified_=!0,e.parent_&&YA(e.parent_))}function Bh(e){e.copy_||(e.assigned_=new Map,e.copy_=HA(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var UV=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(t,r,n)=>{if(hd(t)&&!hd(r)){let i=r;r=t;let o=this;return function(s=i,...u){return o.produce(s,c=>r.call(this,c,...u))}}hd(r)||mi(6),n!==void 0&&!hd(n)&&mi(7);let a;if(ya(t)){let i=tP(this),o=GA(i,t,void 0),l=!0;try{a=r(o),l=!1}finally{l?KA(i):qA(i)}return eP(i,n),rP(a,i)}else if(!t||!XA(t)){if(a=r(t),a===void 0&&(a=t),a===aP&&(a=void 0),this.autoFreeze_&&QA(a,!0),n){let i=[],o=[];Zs(VA).generateReplacementPatches_(t,a,{patches_:i,inversePatches_:o}),n(i,o)}return a}else mi(1,t)},this.produceWithPatches=(t,r)=>{if(hd(t))return(o,...l)=>this.produceWithPatches(o,s=>t(s,...l));let n,a;return[this.produce(t,r,(o,l)=>{n=o,a=l}),n,a]},$A(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),$A(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),$A(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){ya(e)||mi(8),Li(e)&&(e=mn(e));let t=tP(this),r=GA(t,e,void 0);return r[yn].isManual_=!0,qA(t),r}finishDraft(e,t){let r=e&&e[yn];(!r||!r.isManual_)&&mi(9);let{scope_:n}=r;return eP(n,t),rP(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 a=t[r];if(a.path.length===0&&a.op==="replace"){e=a.value;break}}r>-1&&(t=t.slice(r+1));let n=Zs(VA).applyPatches_;return Li(e)?n(e,t):this.produce(e,a=>n(a,t))}};function GA(e,t,r,n){let[a,i]=Gh(t)?Zs(Wh).proxyMap_(t,r):Xh(t)?Zs(Wh).proxySet_(t,r):LV(t,r);return(r?.scope_??lP()).drafts_.push(a),i.callbacks_=r?.callbacks_??[],i.key_=n,r&&n!==void 0?jV(r,i,n):i.callbacks_.push(function(s){s.mapSetPlugin_?.fixSetContents(i);let{patchPlugin_:u}=s;i.modified_&&u&&u.generatePatches_(i,[],s)}),a}function mn(e){return Li(e)||mi(10,e),fP(e)}function fP(e){if(!ya(e)||Zh(e))return e;let t=e[yn],r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=HA(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=HA(e,!0);return qh(r,(a,i)=>{Fh(r,a,fP(i))},n),t&&(t.finalized_=!1),r}var FV=new UV,JA=FV.produce;var et=e=>e;function pP(e){return({dispatch:r,getState:n})=>a=>i=>typeof i=="function"?i(r,n,e):a(i)}var mP=pP(),vP=pP;var WV=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?lm:lm.apply(null,arguments)},fve=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION__?window.__REDUX_DEVTOOLS_EXTENSION__:function(){return function(e){return e}},HV=e=>e&&typeof e.match=="function";function Lr(e,t){function r(...n){if(t){let a=t(...n);if(!a)throw new Error(ha(0));return{type:e,payload:a.payload,..."meta"in a&&{meta:a.meta},..."error"in a&&{error:a.error}}}return{type:e,payload:n[0]}}return r.toString=()=>`${e}`,r.type=e,r.match=n=>LA(n)&&n.type===e,r}var AP=class fm extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,fm.prototype)}static get[Symbol.species](){return fm}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new fm(...t[0].concat(this)):new fm(...t.concat(this))}};function gP(e){return ya(e)?JA(e,()=>{}):e}function Jh(e,t,r){return e.has(t)?e.get(t):e.set(t,r(t)).get(t)}function VV(e){return typeof e=="boolean"}var KV=()=>function(t){let{thunk:r=!0,immutableCheck:n=!0,serializableCheck:a=!0,actionCreatorCheck:i=!0}=t??{},o=new AP;return r&&(VV(r)?o.push(mP):o.push(vP(r.extraArgument))),o},kP="RTK_autoBatch",Mt=()=>e=>({payload:e,meta:{[kP]:!0}}),yP=e=>t=>{setTimeout(t,e)},qV=(e,t)=>r=>{let n=!1,a=()=>{n||(n=!0,cancelAnimationFrame(i),clearTimeout(o),r())},i=e(a),o=setTimeout(a,t)},rk=(e={type:"raf"})=>t=>(...r)=>{let n=t(...r),a=!0,i=!1,o=!1,l=new Set,s=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?qV(window.requestAnimationFrame,100):yP(10):e.type==="callback"?e.queueNotification:yP(e.timeout),u=()=>{o=!1,i&&(i=!1,l.forEach(c=>c()))};return Object.assign({},n,{subscribe(c){let d=()=>a&&c(),f=n.subscribe(d);return l.add(c),()=>{f(),l.delete(c)}},dispatch(c){try{return a=!c?.meta?.[kP],i=!a,i&&(o||(o=!0,s(u))),n.dispatch(c)}finally{a=!0}}})},YV=e=>function(r){let{autoBatch:n=!0}=r??{},a=new AP(e);return n&&a.push(rk(typeof n=="object"?n:void 0)),a};function NP(e){let t=KV(),{reducer:r=void 0,middleware:n,devTools:a=!0,duplicateMiddlewareCheck:i=!0,preloadedState:o=void 0,enhancers:l=void 0}=e||{},s;if(typeof r=="function")s=r;else if(Ih(r))s=jh(r);else throw new Error(ha(1));let u;typeof n=="function"?u=n(t):u=t();let c=lm;a&&(c=WV({trace:!1,...typeof a=="object"&&a}));let d=XM(...u),f=YV(d),p=typeof l=="function"?l(f):f(),m=c(...p);return zA(s,o,m)}function CP(e){let t={},r=[],n,a={addCase(i,o){let l=typeof i=="string"?i:i.type;if(!l)throw new Error(ha(28));if(l in t)throw new Error(ha(29));return t[l]=o,a},addAsyncThunk(i,o){return o.pending&&(t[i.pending.type]=o.pending),o.rejected&&(t[i.rejected.type]=o.rejected),o.fulfilled&&(t[i.fulfilled.type]=o.fulfilled),o.settled&&r.push({matcher:i.settled,reducer:o.settled}),a},addMatcher(i,o){return r.push({matcher:i,reducer:o}),a},addDefaultCase(i){return n=i,a}};return e(a),[t,r,n]}function GV(e){return typeof e=="function"}function XV(e,t){let[r,n,a]=CP(t),i;if(GV(e))i=()=>gP(e());else{let l=gP(e);i=()=>l}function o(l=i(),s){let u=[r[s.type],...n.filter(({matcher:c})=>c(s)).map(({reducer:c})=>c)];return u.filter(c=>!!c).length===0&&(u=[a]),u.reduce((c,d)=>{if(d)if(Li(c)){let p=d(c,s);return p===void 0?c:p}else{if(ya(c))return JA(c,f=>d(f,s));{let f=d(c,s);if(f===void 0){if(c===null)return c;throw Error("A case reducer on a non-draftable value must not return undefined")}return f}}return c},l)}return o.getInitialState=i,o}var ZV=(e,t)=>HV(e)?e.match(t):e(t);function QV(...e){return t=>e.some(r=>ZV(r,t))}var JV="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",EP=(e=21)=>{let t="",r=e;for(;r--;)t+=JV[Math.random()*64|0];return t},RV=["name","message","stack","code"],RA=class{constructor(e,t){this.payload=e,this.meta=t}payload;meta;_type},hP=class{constructor(e,t){this.payload=e,this.meta=t}payload;meta;_type},eK=e=>{if(typeof e=="object"&&e!==null){let t={};for(let r of RV)typeof e[r]=="string"&&(t[r]=e[r]);return t}return{message:String(e)}},xP="External signal was aborted",tK=(()=>{function e(t,r,n){let a=Lr(t+"/fulfilled",(s,u,c,d)=>({payload:s,meta:{...d||{},arg:c,requestId:u,requestStatus:"fulfilled"}})),i=Lr(t+"/pending",(s,u,c)=>({payload:void 0,meta:{...c||{},arg:u,requestId:s,requestStatus:"pending"}})),o=Lr(t+"/rejected",(s,u,c,d,f)=>({payload:d,error:(n&&n.serializeError||eK)(s||"Rejected"),meta:{...f||{},arg:c,requestId:u,rejectedWithValue:!!d,requestStatus:"rejected",aborted:s?.name==="AbortError",condition:s?.name==="ConditionError"}}));function l(s,{signal:u}={}){return(c,d,f)=>{let p=n?.idGenerator?n.idGenerator(s):EP(),m=new AbortController,y,h;function v(b){h=b,m.abort()}u&&(u.aborted?v(xP):u.addEventListener("abort",()=>v(xP),{once:!0}));let g=(async function(){let b;try{let S=n?.condition?.(s,{getState:d,extra:f});if(nK(S)&&(S=await S),S===!1||m.signal.aborted)throw{name:"ConditionError",message:"Aborted due to condition callback returning false."};let w=new Promise((_,k)=>{y=()=>{k({name:"AbortError",message:h||"Aborted"})},m.signal.addEventListener("abort",y,{once:!0})});c(i(p,s,n?.getPendingMeta?.({requestId:p,arg:s},{getState:d,extra:f}))),b=await Promise.race([w,Promise.resolve(r(s,{dispatch:c,getState:d,extra:f,requestId:p,signal:m.signal,abort:v,rejectWithValue:((_,k)=>new RA(_,k)),fulfillWithValue:((_,k)=>new hP(_,k))})).then(_=>{if(_ instanceof RA)throw _;return _ instanceof hP?a(_.payload,p,s,_.meta):a(_,p,s)})])}catch(S){b=S instanceof RA?o(null,p,s,S.payload,S.meta):o(S,p,s)}finally{y&&m.signal.removeEventListener("abort",y)}return n&&!n.dispatchConditionRejection&&o.match(b)&&b.meta.condition||c(b),b})();return Object.assign(g,{abort:v,requestId:p,arg:s,unwrap(){return g.then(rK)}})}}return Object.assign(l,{pending:i,rejected:o,fulfilled:a,settled:QV(o,a),typePrefix:t})}return e.withTypes=()=>e,e})();function rK(e){if(e.meta&&e.meta.rejectedWithValue)throw e.payload;if(e.error)throw e.error;return e.payload}function nK(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}var _P=Symbol.for("rtk-slice-createasyncthunk"),mve={[_P]:tK};function aK(e,t){return`${e}/${t}`}function iK({creators:e}={}){let t=e?.asyncThunk?.[_P];return function(n){let{name:a,reducerPath:i=a}=n;if(!a)throw new Error(ha(11));typeof process<"u";let o=(typeof n.reducers=="function"?n.reducers(lK()):n.reducers)||{},l=Object.keys(o),s={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},u={addCase(b,x){let S=typeof b=="string"?b:b.type;if(!S)throw new Error(ha(12));if(S in s.sliceCaseReducersByType)throw new Error(ha(13));return s.sliceCaseReducersByType[S]=x,u},addMatcher(b,x){return s.sliceMatchers.push({matcher:b,reducer:x}),u},exposeAction(b,x){return s.actionCreators[b]=x,u},exposeCaseReducer(b,x){return s.sliceCaseReducersByName[b]=x,u}};l.forEach(b=>{let x=o[b],S={reducerName:b,type:aK(a,b),createNotation:typeof n.reducers=="function"};uK(x)?dK(S,x,u,t):sK(S,x,u)});function c(){let[b={},x=[],S=void 0]=typeof n.extraReducers=="function"?CP(n.extraReducers):[n.extraReducers],w={...b,...s.sliceCaseReducersByType};return XV(n.initialState,_=>{for(let k in w)_.addCase(k,w[k]);for(let k of s.sliceMatchers)_.addMatcher(k.matcher,k.reducer);for(let k of x)_.addMatcher(k.matcher,k.reducer);S&&_.addDefaultCase(S)})}let d=b=>b,f=new Map,p=new WeakMap,m;function y(b,x){return m||(m=c()),m(b,x)}function h(){return m||(m=c()),m.getInitialState()}function v(b,x=!1){function S(_){let k=_[b];return typeof k>"u"&&x&&(k=Jh(p,S,h)),k}function w(_=d){let k=Jh(f,x,()=>new WeakMap);return Jh(k,_,()=>{let A={};for(let[P,K]of Object.entries(n.selectors??{}))A[P]=oK(K,_,()=>Jh(p,_,h),x);return A})}return{reducerPath:b,getSelectors:w,get selectors(){return w(S)},selectSlice:S}}let g={name:a,reducer:y,actions:s.actionCreators,caseReducers:s.sliceCaseReducersByName,getInitialState:h,...v(i),injectInto(b,{reducerPath:x,...S}={}){let w=x??i;return b.inject({reducerPath:w,reducer:y},S),{...g,...v(w,!0)}}};return g}}function oK(e,t,r,n){function a(i,...o){let l=t(i);return typeof l>"u"&&n&&(l=r()),e(l,...o)}return a.unwrapped=e,a}var Nt=iK();function lK(){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 sK({type:e,reducerName:t,createNotation:r},n,a){let i,o;if("reducer"in n){if(r&&!cK(n))throw new Error(ha(17));i=n.reducer,o=n.prepare}else i=n;a.addCase(e,i).exposeCaseReducer(t,i).exposeAction(t,o?Lr(e,o):Lr(e))}function uK(e){return e._reducerDefinitionType==="asyncThunk"}function cK(e){return e._reducerDefinitionType==="reducerWithPrepare"}function dK({type:e,reducerName:t},r,n,a){if(!a)throw new Error(ha(18));let{payloadCreator:i,fulfilled:o,pending:l,rejected:s,settled:u,options:c}=r,d=a(e,i,c);n.exposeAction(t,d),o&&n.addCase(d.fulfilled,o),l&&n.addCase(d.pending,l),s&&n.addCase(d.rejected,s),u&&n.addMatcher(d.settled,u),n.exposeCaseReducer(t,{fulfilled:o||Rh,pending:l||Rh,rejected:s||Rh,settled:u||Rh})}function Rh(){}var fK="task",OP="listener",TP="completed",nk="cancelled",pK=`task-${nk}`,mK=`task-${TP}`,ek=`${OP}-${nk}`,vK=`${OP}-${TP}`,r0=class{constructor(e){this.code=e,this.message=`${fK} ${nk} (reason: ${e})`}code;name="TaskAbortError";message},ak=(e,t)=>{if(typeof e!="function")throw new TypeError(ha(32))},e0=()=>{},MP=(e,t=e0)=>(e.catch(t),e),PP=(e,t)=>(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)),Qs=e=>{if(e.aborted)throw new r0(e.reason)};function DP(e,t){let r=e0;return new Promise((n,a)=>{let i=()=>a(new r0(e.reason));if(e.aborted){i();return}r=PP(e,i),t.finally(()=>r()).then(n,a)}).finally(()=>{r=e0})}var gK=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(r){return{status:r instanceof r0?"cancelled":"rejected",error:r}}finally{t?.()}},t0=e=>t=>MP(DP(e,t).then(r=>(Qs(e),r))),IP=e=>{let t=t0(e);return r=>t(new Promise(n=>setTimeout(n,r)))},{assign:bd}=Object,bP={},n0="listenerMiddleware",yK=(e,t)=>{let r=n=>PP(e,()=>n.abort(e.reason));return(n,a)=>{ak(n,"taskExecutor");let i=new AbortController;r(i);let o=gK(async()=>{Qs(e),Qs(i.signal);let l=await n({pause:t0(i.signal),delay:IP(i.signal),signal:i.signal});return Qs(i.signal),l},()=>i.abort(mK));return a?.autoJoin&&t.push(o.catch(e0)),{result:t0(e)(o),cancel(){i.abort(pK)}}}},hK=(e,t)=>{let r=async(n,a)=>{Qs(t);let i=()=>{},l=[new Promise((s,u)=>{let c=e({predicate:n,effect:(d,f)=>{f.unsubscribe(),s([d,f.getState(),f.getOriginalState()])}});i=()=>{c(),u()}})];a!=null&&l.push(new Promise(s=>setTimeout(s,a,null)));try{let s=await DP(t,Promise.race(l));return Qs(t),s}finally{i()}};return((n,a)=>MP(r(n,a)))},jP=e=>{let{type:t,actionCreator:r,matcher:n,predicate:a,effect:i}=e;if(t)a=Lr(t).match;else if(r)t=r.type,a=r.match;else if(n)a=n;else if(!a)throw new Error(ha(21));return ak(i,"options.listener"),{predicate:a,type:t,effect:i}},zP=bd(e=>{let{type:t,predicate:r,effect:n}=jP(e);return{id:EP(),effect:n,type:t,predicate:r,pending:new Set,unsubscribe:()=>{throw new Error(ha(22))}}},{withTypes:()=>zP}),wP=(e,t)=>{let{type:r,effect:n,predicate:a}=jP(t);return Array.from(e.values()).find(i=>(typeof r=="string"?i.type===r:i.predicate===a)&&i.effect===n)},tk=e=>{e.pending.forEach(t=>{t.abort(ek)})},xK=(e,t)=>()=>{for(let r of t.keys())tk(r);e.clear()},SP=(e,t,r)=>{try{e(t,r)}catch(n){setTimeout(()=>{throw n},0)}},LP=bd(Lr(`${n0}/add`),{withTypes:()=>LP}),bK=Lr(`${n0}/removeAll`),BP=bd(Lr(`${n0}/remove`),{withTypes:()=>BP}),wK=(...e)=>{console.error(`${n0}/error`,...e)},To=(e={})=>{let t=new Map,r=new Map,n=p=>{let m=r.get(p)??0;r.set(p,m+1)},a=p=>{let m=r.get(p)??1;m===1?r.delete(p):r.set(p,m-1)},{extra:i,onError:o=wK}=e;ak(o,"onError");let l=p=>(p.unsubscribe=()=>t.delete(p.id),t.set(p.id,p),m=>{p.unsubscribe(),m?.cancelActive&&tk(p)}),s=(p=>{let m=wP(t,p)??zP(p);return l(m)});bd(s,{withTypes:()=>s});let u=p=>{let m=wP(t,p);return m&&(m.unsubscribe(),p.cancelActive&&tk(m)),!!m};bd(u,{withTypes:()=>u});let c=async(p,m,y,h)=>{let v=new AbortController,g=hK(s,v.signal),b=[];try{p.pending.add(v),n(p),await Promise.resolve(p.effect(m,bd({},y,{getOriginalState:h,condition:(x,S)=>g(x,S).then(Boolean),take:g,delay:IP(v.signal),pause:t0(v.signal),extra:i,signal:v.signal,fork:yK(v.signal,b),unsubscribe:p.unsubscribe,subscribe:()=>{t.set(p.id,p)},cancelActiveListeners:()=>{p.pending.forEach((x,S,w)=>{x!==v&&(x.abort(ek),w.delete(x))})},cancel:()=>{v.abort(ek),p.pending.delete(v)},throwIfCancelled:()=>{Qs(v.signal)}})))}catch(x){x instanceof r0||SP(o,x,{raisedBy:"effect"})}finally{await Promise.all(b),v.abort(vK),a(p),p.pending.delete(v)}},d=xK(t,r);return{middleware:p=>m=>y=>{if(!LA(y))return m(y);if(LP.match(y))return s(y.payload);if(bK.match(y)){d();return}if(BP.match(y))return u(y.payload);let h=p.getState(),v=()=>{if(h===bP)throw new Error(ha(23));return h},g;try{if(g=m(y),t.size>0){let b=p.getState(),x=Array.from(t.values());for(let S of x){let w=!1;try{w=S.predicate(y,b,h)}catch(_){w=!1,SP(o,_,{raisedBy:"predicate"})}w&&c(S,y,p,v)}}}finally{h=bP}return g},startListening:s,stopListening:u,clearListeners:d}};function ha(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 SK={layoutType:"horizontal",width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},$P=Nt({name:"chartLayout",initialState:SK,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,a,i;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=(a=t.payload.bottom)!==null&&a!==void 0?a:0,e.margin.left=(i=t.payload.left)!==null&&i!==void 0?i:0},setScale(e,t){e.scale=t.payload}}}),a0=$P.actions,ik=a0.setMargin,UP=a0.setLayout,FP=a0.setChartSize,WP=a0.setScale;var HP=$P.reducer;function i0(e,t,r){return Array.isArray(e)&&e&&t+r!==0?e.slice(t,r+1):e}function We(e){return Number.isFinite(e)}function Gn(e){return typeof e=="number"&&e>0&&Number.isFinite(e)}function VP(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Xn(e){for(var t=1;t{if(t&&r){var n=r.width,a=r.height,i=t.align,o=t.verticalAlign,l=t.layout,s=t.position,u=t.offset,c=u===void 0?0:u;if(s!=null){if(Jp(s)){if(s==="top"&&he(e.top))return Xn(Xn({},e),{},{top:e.top+(a||0)+c});if(s==="bottom"&&he(e.bottom))return Xn(Xn({},e),{},{bottom:e.bottom+(a||0)+c});if(s==="left"&&he(e.left))return Xn(Xn({},e),{},{left:e.left+(n||0)+c});if(s==="right"&&he(e.right))return Xn(Xn({},e),{},{right:e.right+(n||0)+c})}return e}if((l==="vertical"||l==="horizontal"&&o==="middle")&&i!=="center"&&he(e[i]))return Xn(Xn({},e),{},{[i]:e[i]+(n||0)});if((l==="horizontal"||l==="vertical"&&i==="center")&&o!=="middle"&&he(e[o]))return Xn(Xn({},e),{},{[o]:e[o]+(a||0)})}return e},hn=(e,t)=>e==="horizontal"&&t==="xAxis"||e==="vertical"&&t==="yAxis"||e==="centric"&&t==="angleAxis"||e==="radial"&&t==="radiusAxis",ok=(e,t,r,n)=>{if(n)return e.map(l=>l.coordinate);var a,i,o=e.map(l=>(l.coordinate===t&&(a=!0),l.coordinate===r&&(i=!0),l.coordinate));return a||o.push(t),i||o.push(r),o},lk=(e,t,r)=>{if(!e)return null;var n=e.duplicateDomain,a=e.type,i=e.range,o=e.scale,l=e.realScaleType,s=e.isCategorical,u=e.categoricalDomain,c=e.tickCount,d=e.ticks,f=e.niceTicks,p=e.axisType;if(!o)return null;var m=l==="scaleBand"&&o.bandwidth?o.bandwidth()/2:2,y=(t||r)&&a==="category"&&o.bandwidth?o.bandwidth()/m:0;if(y=p==="angleAxis"&&i&&i.length>=2?Ut(i[0]-i[1])*2*y:y,t&&(d||f)){var h=(d||f||[]).map((v,g)=>{var b=n?n.indexOf(v):v,x=o.map(b);return We(x)?{coordinate:x+y,value:v,offset:y,index:g}:null}).filter(Vr);return h}return s&&u?u.map((v,g)=>{var b=o.map(v);return We(b)?{coordinate:b+y,value:v,index:g,offset:y}:null}).filter(Vr):o.ticks&&!r&&c!=null?o.ticks(c).map((v,g)=>{var b=o.map(v);return We(b)?{coordinate:b+y,value:v,index:g,offset:y}:null}).filter(Vr):o.domain().map((v,g)=>{var b=o.map(v);return We(b)?{coordinate:b+y,value:n?n[v]:v,index:g,offset:y}:null}).filter(Vr)},qP=(e,t)=>{if(!t||t.length!==2||!he(t[0])||!he(t[1]))return e;var r=Math.min(t[0],t[1]),n=Math.max(t[0],t[1]),a=[e[0],e[1]];return(!he(e[0])||e[0]n)&&(a[1]=n),a[0]>n&&(a[0]=n),a[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 a=0;a=0?(u[0]=i,i+=f,u[1]=i):(u[0]=o,o+=f,u[1]=o)}}}},EK=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 a=0;a=0?(s[0]=i,i+=u,s[1]=i):(s[0]=0,s[1]=0)}}}},_K={sign:CK,expand:NA,none:va,silhouette:CA,wiggle:EA,positive:EK},YP=(e,t,r)=>{var n,a=(n=_K[r])!==null&&n!==void 0?n:va,i=kA().keys(t).value((l,s)=>Number(Xe(l,s,0))).order(dd).offset(a),o=i(e);return o.forEach((l,s)=>{l.forEach((u,c)=>{var d=Xe(e[c],t[s],0);Array.isArray(d)&&d.length===2&&he(d[0])&&he(d[1])&&(u[0]=d[0],u[1]=d[1])})}),o};function o0(e){return e==null?void 0:String(e)}function wd(e){var t=e.axis,r=e.ticks,n=e.bandSize,a=e.entry,i=e.index,o=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!st(a[t.dataKey])){var l=Ky(r,"value",a[t.dataKey]);if(l)return l.coordinate+n/2}return r!=null&&r[i]?r[i].coordinate+n/2:null}var s=Xe(a,st(o)?t.dataKey:o),u=t.scale.map(s);return he(u)?u:null}var sk=e=>{var t=e.axis,r=e.ticks,n=e.offset,a=e.bandSize,i=e.entry,o=e.index;if(t.type==="category")return r[o]?r[o].coordinate+n:null;var l=Xe(i,t.dataKey,t.scale.domain()[o]);if(st(l))return null;var s=t.scale.map(l);return he(s)?s-a/2+n:null},GP=e=>{var t=e.numericAxis,r=t.scale.domain();if(t.type==="number"){var n=Math.min(r[0],r[1]),a=Math.max(r[0],r[1]);return n<=0&&a>=0?0:a<0?a:n}return r[0]},OK=e=>{var t=e.flat(2).filter(he);return[Math.min(...t),Math.max(...t)]},TK=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],XP=(e,t,r)=>{if(!(e==null||Object.keys(e).length===0))return TK(Object.keys(e).reduce((n,a)=>{var i=e[a];if(!i)return n;var o=i.stackedData,l=o.reduce((s,u)=>{var c=i0(u,t,r),d=OK(c);return!We(d[0])||!We(d[1])?s:[Math.min(s[0],d[0]),Math.max(s[1],d[1])]},[1/0,-1/0]);return[Math.min(l[0],n[0]),Math.max(l[1],n[1])]},[1/0,-1/0]))},uk=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,ck=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Ka=(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 a=Eo(t,y=>y.coordinate),i=[],o=0,l=1,s=a.length;lf&&(p=Math.min(m,p));return p===1/0?0:p}return r?void 0:0};function dk(e){var t=e.tooltipEntrySettings,r=e.dataKey,n=e.payload,a=e.value,i=e.name;return Xn(Xn({},t),{},{dataKey:r,payload:n,value:a,name:i})}function xa(e,t){if(e!=null)return String(e);if(typeof t=="string")return t}var ZP=(e,t)=>{if(t==="horizontal")return e.relativeX;if(t==="vertical")return e.relativeY},QP=(e,t)=>t==="centric"?e.angle:e.radius;var rn=e=>e.layout.width,nn=e=>e.layout.height,JP=e=>e.layout.scale,Sd=e=>e.layout.margin;var Ad=Z(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),kd=Z(e=>e.cartesianAxis.yAxis,e=>Object.values(e));var l0="data-recharts-item-index",s0="data-recharts-item-id",Js=60,pm=30;function RP(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function u0(e){for(var t=1;te.brush.height;function jK(e){var t=kd(e);return t.reduce((r,n)=>{if(n.orientation==="left"&&!n.mirror&&!n.hide){var a=typeof n.width=="number"?n.width:Js;return r+a}return r},0)}function zK(e){var t=kd(e);return t.reduce((r,n)=>{if(n.orientation==="right"&&!n.mirror&&!n.hide){var a=typeof n.width=="number"?n.width:Js;return r+a}return r},0)}function LK(e){var t=Ad(e);return t.reduce((r,n)=>{if(n.orientation==="top"&&!n.mirror&&!n.hide){var a=typeof n.height=="number"?n.height:pm;return r+a}return r},0)}function BK(e){var t=Ad(e);return t.reduce((r,n)=>{if(n.orientation==="bottom"&&!n.mirror&&!n.hide){var a=typeof n.height=="number"?n.height:pm;return r+a}return r},0)}var It=Z([rn,nn,Sd,IK,jK,zK,LK,BK,IA,WM],(e,t,r,n,a,i,o,l,s,u)=>{var c={left:(r.left||0)+a,right:(r.right||0)+i},d={top:(r.top||0)+o,bottom:(r.bottom||0)+l},f=u0(u0({},d),c),p=f.bottom;f.bottom+=n,f=KP(f,s,u);var m=e-f.left-f.right,y=t-f.top-f.bottom;return u0(u0({brushBottom:p},f),{},{width:Math.max(m,0),height:Math.max(y,0)})}),c0=Z(It,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),Nd=Z(rn,nn,(e,t)=>({x:0,y:0,width:e,height:t}));var $K=re(ne()),d0=re(ne()),UK=(0,d0.createContext)(null),Ct=()=>(0,d0.useContext)(UK)!=null;var Cd=e=>e.brush,Rs=Z([Cd,It,Sd],(e,t,r)=>({height:e.height,x:he(e.x)?e.x:t.left,y:he(e.y)?e.y:t.top+t.height+t.brushBottom-(r?.bottom||0),width:he(e.width)?e.width:t.width}));var eu=re(ne()),Br=re(ne());function eD(e,t,{signal:r,edges:n}={}){let a,i=null,o=n!=null&&n.includes("leading"),l=n==null||n.includes("trailing"),s=()=>{i!==null&&(e.apply(a,i),a=void 0,i=null)},u=()=>{l&&s(),p()},c=null,d=()=>{c!=null&&clearTimeout(c),c=setTimeout(()=>{c=null,u()},t)},f=()=>{c!==null&&(clearTimeout(c),c=null)},p=()=>{f(),a=void 0,i=null},m=()=>{s()},y=function(...h){if(r?.aborted)return;a=this,i=h;let v=c==null;d(),o&&v&&s()};return y.schedule=d,y.cancel=p,y.flush=m,r?.addEventListener("abort",p,{once:!0}),y}function tD(e,t=0,r={}){typeof r!="object"&&(r={});let{leading:n=!1,trailing:a=!0,maxWait:i}=r,o=Array(2);n&&(o[0]="leading"),a&&(o[1]="trailing");let l,s=null,u=eD(function(...f){l=e.apply(this,f),s=null},t,{edges:o}),c=function(...f){return i!=null&&(s===null&&(s=Date.now()),Date.now()-s>=i)?(l=e.apply(this,f),s=Date.now(),u.cancel(),u.schedule(),l):(u.apply(this,f),l)},d=()=>(u.flush(),l);return c.cancel=u.cancel,c.flush=d,c}function fk(e,t=0,r={}){let{leading:n=!0,trailing:a=!0}=r;return tD(e,t,{leading:n,maxWait:t,trailing:a})}var FK=!0,Ed=function(t,r){for(var n=arguments.length,a=new Array(n>2?n-2:0),i=2;ia[o++]))}};var vi={width:"100%",height:"100%",debounce:0,minWidth:0,initialDimension:{width:-1,height:-1}},pk=(e,t,r)=>{var n=r.width,a=n===void 0?vi.width:n,i=r.height,o=i===void 0?vi.height:i,l=r.aspect,s=r.maxHeight,u=So(a)?e:Number(a),c=So(o)?t:Number(o);return l&&l>0&&(u?c=u/l:c&&(u=c*l),s&&c!=null&&c>s&&(c=s)),{calculatedWidth:u,calculatedHeight:c}},WK={width:0,height:0,overflow:"visible"},HK={width:0,overflowX:"visible"},VK={height:0,overflowY:"visible"},KK={},rD=e=>{var t=e.width,r=e.height,n=So(t),a=So(r);return n&&a?WK:n?HK:a?VK:KK};function nD(e){var t=e.width,r=e.height,n=e.aspect,a=t,i=r;return a===void 0&&i===void 0?(a=vi.width,i=vi.height):a===void 0?a=n&&n>0?void 0:vi.width:i===void 0&&(i=n&&n>0?void 0:vi.height),{width:a,height:i}}var qK=["aspect","initialDimension","width","height","minWidth","minHeight","maxHeight","children","debounce","id","className","onResize","style"];function f0(){return f0=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 nq(a)?eu.createElement(lD.Provider,{value:a},t):null}var mm=()=>(0,Br.useContext)(lD),aq=(0,Br.forwardRef)((e,t)=>{var r=e.aspect,n=e.initialDimension,a=n===void 0?vi.initialDimension:n,i=e.width,o=e.height,l=e.minWidth,s=l===void 0?vi.minWidth:l,u=e.minHeight,c=e.maxHeight,d=e.children,f=e.debounce,p=f===void 0?vi.debounce:f,m=e.id,y=e.className,h=e.onResize,v=e.style,g=v===void 0?{}:v,b=tq(e,qK),x=(0,Br.useRef)(null),S=(0,Br.useRef)();S.current=h,(0,Br.useImperativeHandle)(t,()=>x.current);var w=(0,Br.useState)({containerWidth:a.width,containerHeight:a.height}),_=ZK(w,2),k=_[0],A=_[1],P=(0,Br.useCallback)((N,O)=>{A(I=>{var D=Math.round(N),T=Math.round(O);return I.containerWidth===D&&I.containerHeight===T?I:{containerWidth:D,containerHeight:T}})},[]);(0,Br.useEffect)(()=>{if(x.current==null||typeof ResizeObserver>"u")return Tn;var N=j=>{var R,U=j[0];if(U!=null){var q=U.contentRect,ee=q.width,fe=q.height;P(ee,fe),(R=S.current)===null||R===void 0||R.call(S,ee,fe)}};p>0&&(N=fk(N,p,{trailing:!0,leading:!1}));var O=new ResizeObserver(N),I=x.current.getBoundingClientRect(),D=I.width,T=I.height;return P(D,T),O.observe(x.current),()=>{O.disconnect()}},[P,p]);var K=k.containerWidth,z=k.containerHeight;Ed(!r||r>0,"The aspect(%s) must be greater than zero.",r);var Q=pk(K,z,{width:i,height:o,aspect:r,maxHeight:c}),M=Q.calculatedWidth,F=Q.calculatedHeight;return Ed(K<0||z<0||M!=null&&M>0||F!=null&&F>0,`The width(%s) and height(%s) of chart should be greater than 0, +`+n.stack}}var mS=Object.prototype.hasOwnProperty,a2=Kr.unstable_scheduleCallback,Mw=Kr.unstable_cancelCallback,UU=Kr.unstable_shouldYield,FU=Kr.unstable_requestPaint,ca=Kr.unstable_now,WU=Kr.unstable_getCurrentPriorityLevel,RO=Kr.unstable_ImmediatePriority,eT=Kr.unstable_UserBlockingPriority,ry=Kr.unstable_NormalPriority,HU=Kr.unstable_LowPriority,tT=Kr.unstable_IdlePriority,VU=Kr.log,KU=Kr.unstable_setDisableYieldValue,Hp=null,da=null;function gl(e){if(typeof VU=="function"&&KU(e),da&&typeof da.setStrictMode=="function")try{da.setStrictMode(Hp,e)}catch{}}var fa=Math.clz32?Math.clz32:GU,qU=Math.log,YU=Math.LN2;function GU(e){return e>>>=0,e===0?32:31-(qU(e)/YU|0)|0}var wg=256,Sg=262144,Ag=4194304;function Os(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 _y(e,t,r){var n=e.pendingLanes;if(n===0)return 0;var a=0,o=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var l=n&134217727;return l!==0?(n=l&~o,n!==0?a=Os(n):(i&=l,i!==0?a=Os(i):r||(r=l&~e,r!==0&&(a=Os(r))))):(l=n&~o,l!==0?a=Os(l):i!==0?a=Os(i):r||(r=n&~e,r!==0&&(a=Os(r)))),a===0?0:t!==0&&t!==a&&(t&o)===0&&(o=a&-a,r=t&-t,o>=r||o===32&&(r&4194048)!==0)?t:a}function Vp(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function XU(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 rT(){var e=Ag;return Ag<<=1,(Ag&62914560)===0&&(Ag=4194304),e}function Pw(e){for(var t=[],r=0;31>r;r++)t.push(e);return t}function Kp(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function ZU(e,t,r,n,a,o){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 l=e.entanglements,s=e.expirationTimes,u=e.hiddenUpdates;for(r=i&~r;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var rF=/[\n"\\]/g;function ja(e){return e.replace(rF,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function yS(e,t,r,n,a,o,i,l){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=""+Pa(t)):e.value!==""+Pa(t)&&(e.value=""+Pa(t)):i!=="submit"&&i!=="reset"||e.removeAttribute("value"),t!=null?hS(e,i,Pa(t)):r!=null?hS(e,i,Pa(r)):n!=null&&e.removeAttribute("value"),a==null&&o!=null&&(e.defaultChecked=!!o),a!=null&&(e.checked=a&&typeof a!="function"&&typeof a!="symbol"),l!=null&&typeof l!="function"&&typeof l!="symbol"&&typeof l!="boolean"?e.name=""+Pa(l):e.removeAttribute("name")}function dT(e,t,r,n,a,o,i,l){if(o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"&&(e.type=o),t!=null||r!=null){if(!(o!=="submit"&&o!=="reset"||t!=null)){gS(e);return}r=r!=null?""+Pa(r):"",t=t!=null?""+Pa(t):r,l||t===e.value||(e.value=t),e.defaultValue=t}n=n??a,n=typeof n!="function"&&typeof n!="symbol"&&!!n,e.checked=l?e.checked:!!n,e.defaultChecked=!!n,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(e.name=i),gS(e)}function hS(e,t,r){t==="number"&&ny(e.ownerDocument)===e||e.defaultValue===""+r||(e.defaultValue=""+r)}function Dc(e,t,r,n){if(e=e.options,t){t={};for(var a=0;a"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),bS=!1;if(xi)try{vc={},Object.defineProperty(vc,"passive",{get:function(){bS=!0}}),window.addEventListener("test",vc,vc),window.removeEventListener("test",vc,vc)}catch{bS=!1}var vc,yl=null,c2=null,Ug=null;function gT(){if(Ug)return Ug;var e,t=c2,r=t.length,n,a="value"in yl?yl.value:yl.textContent,o=a.length;for(e=0;e=vp),j5=" ",z5=!1;function hT(e,t){switch(e){case"keyup":return TF.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function xT(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var kc=!1;function PF(e,t){switch(e){case"compositionend":return xT(t);case"keypress":return t.which!==32?null:(z5=!0,j5);case"textInput":return e=t.data,e===j5&&z5?null:e;default:return null}}function DF(e,t){if(kc)return e==="compositionend"||!f2&&hT(e,t)?(e=gT(),Ug=c2=yl=null,kc=!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=U5(r)}}function AT(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?AT(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function kT(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=ny(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=ny(e.document)}return t}function p2(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 FF=xi&&"documentMode"in document&&11>=document.documentMode,Nc=null,wS=null,yp=null,SS=!1;function W5(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;SS||Nc==null||Nc!==ny(n)||(n=Nc,"selectionStart"in n&&p2(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}),yp&&Mp(yp,n)||(yp=n,n=wy(wS,"onSelect"),0>=i,a-=i,Do=1<<32-fa(t)+a|r<k?(A=O,O=null):A=O.sibling;var M=f(v,O,b[k],x);if(M===null){O===null&&(O=A);break}e&&O&&M.alternate===null&&t(v,O),g=o(M,g,k),w===null?S=M:w.sibling=M,w=M,O=A}if(k===b.length)return r(v,O),yt&&di(v,k),S;if(O===null){for(;kk?(A=O,O=null):A=O.sibling;var W=f(v,O,M.value,x);if(W===null){O===null&&(O=A);break}e&&O&&W.alternate===null&&t(v,O),g=o(W,g,k),w===null?S=W:w.sibling=W,w=W,O=A}if(M.done)return r(v,O),yt&&di(v,k),S;if(O===null){for(;!M.done;k++,M=b.next())M=d(v,M.value,x),M!==null&&(g=o(M,g,k),w===null?S=M:w.sibling=M,w=M);return yt&&di(v,k),S}for(O=n(O);!M.done;k++,M=b.next())M=p(O,v,k,M.value,x),M!==null&&(e&&M.alternate!==null&&O.delete(M.key===null?k:M.key),g=o(M,g,k),w===null?S=M:w.sibling=M,w=M);return e&&O.forEach(function(L){return t(v,L)}),yt&&di(v,k),S}function h(v,g,b,x){if(typeof b=="object"&&b!==null&&b.type===bc&&b.key===null&&(b=b.props.children),typeof b=="object"&&b!==null){switch(b.$$typeof){case bg:e:{for(var S=b.key;g!==null;){if(g.key===S){if(S=b.type,S===bc){if(g.tag===7){r(v,g.sibling),x=a(g,b.props.children),x.return=v,v=x;break e}}else if(g.elementType===S||typeof S=="object"&&S!==null&&S.$$typeof===cl&&Ts(S)===g.type){r(v,g.sibling),x=a(g,b.props),op(x,b),x.return=v,v=x;break e}r(v,g);break}else t(v,g);g=g.sibling}b.type===bc?(x=Ds(b.props.children,v.mode,x,b.key),x.return=v,v=x):(x=Wg(b.type,b.key,b.props,null,v.mode,x),op(x,b),x.return=v,v=x)}return i(v);case cp:e:{for(S=b.key;g!==null;){if(g.key===S)if(g.tag===4&&g.stateNode.containerInfo===b.containerInfo&&g.stateNode.implementation===b.implementation){r(v,g.sibling),x=a(g,b.children||[]),x.return=v,v=x;break e}else{r(v,g);break}else t(v,g);g=g.sibling}x=Uw(b,v.mode,x),x.return=v,v=x}return i(v);case cl:return b=Ts(b),h(v,g,b,x)}if(dp(b))return m(v,g,b,x);if(np(b)){if(S=np(b),typeof S!="function")throw Error(pe(150));return b=S.call(b),y(v,g,b,x)}if(typeof b.then=="function")return h(v,g,Og(b),x);if(b.$$typeof===pi)return h(v,g,_g(v,b),x);Tg(v,b)}return typeof b=="string"&&b!==""||typeof b=="number"||typeof b=="bigint"?(b=""+b,g!==null&&g.tag===6?(r(v,g.sibling),x=a(g,b),x.return=v,v=x):(r(v,g),x=$w(b,v.mode,x),x.return=v,v=x),i(v)):r(v,g)}return function(v,g,b,x){try{Ip=0;var S=h(v,g,b,x);return zc=null,S}catch(O){if(O===Rc||O===Iy)throw O;var w=sa(29,O,null,v.mode);return w.lanes=x,w.return=v,w}}}var $s=$T(!0),UT=$T(!1),dl=!1;function S2(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function OS(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 Al(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function kl(e,t,r){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,(Ot&2)!==0){var a=n.pending;return a===null?t.next=t:(t.next=a.next,a.next=t),n.pending=t,t=oy(e),MT(e,null,r),t}return Dy(e,n,t,r),oy(e)}function xp(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,aT(e,r)}}function Ww(e,t){var r=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,r===n)){var a=null,o=null;if(r=r.firstBaseUpdate,r!==null){do{var i={lane:r.lane,tag:r.tag,payload:r.payload,callback:null,next:null};o===null?a=o=i:o=o.next=i,r=r.next}while(r!==null);o===null?a=o=t:o=o.next=t}else a=o=t;r={baseState:n.baseState,firstBaseUpdate:a,lastBaseUpdate:o,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 TS=!1;function bp(){if(TS){var e=jc;if(e!==null)throw e}}function wp(e,t,r,n){TS=!1;var a=e.updateQueue;dl=!1;var o=a.firstBaseUpdate,i=a.lastBaseUpdate,l=a.shared.pending;if(l!==null){a.shared.pending=null;var s=l,u=s.next;s.next=null,i===null?o=u:i.next=u,i=s;var c=e.alternate;c!==null&&(c=c.updateQueue,l=c.lastBaseUpdate,l!==i&&(l===null?c.firstBaseUpdate=u:l.next=u,c.lastBaseUpdate=s))}if(o!==null){var d=a.baseState;i=0,c=u=s=null,l=o;do{var f=l.lane&-536870913,p=f!==l.lane;if(p?(vt&f)===f:(n&f)===f){f!==0&&f===Wc&&(TS=!0),c!==null&&(c=c.next={lane:0,tag:l.tag,payload:l.payload,callback:null,next:null});e:{var m=e,y=l;f=t;var h=r;switch(y.tag){case 1:if(m=y.payload,typeof m=="function"){d=m.call(h,d,f);break e}d=m;break e;case 3:m.flags=m.flags&-65537|128;case 0:if(m=y.payload,f=typeof m=="function"?m.call(h,d,f):m,f==null)break e;d=er({},d,f);break e;case 2:dl=!0}}f=l.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=a.callbacks,p===null?a.callbacks=[f]:p.push(f))}else p={lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},c===null?(u=c=p,s=d):c=c.next=p,i|=f;if(l=l.next,l===null){if(l=a.shared.pending,l===null)break;p=l,l=p.next,p.next=null,a.lastBaseUpdate=p,a.shared.pending=null}}while(!0);c===null&&(s=d),a.baseState=s,a.firstBaseUpdate=u,a.lastBaseUpdate=c,o===null&&(a.shared.lanes=0),Dl|=i,e.lanes=i,e.memoizedState=d}}function FT(e,t){if(typeof e!="function")throw Error(pe(191,e));e.call(t)}function WT(e,t){var r=e.callbacks;if(r!==null)for(e.callbacks=null,e=0;eo?o:8;var i=Ke.T,l={};Ke.T=l,j2(e,!1,t,r);try{var s=a(),u=Ke.S;if(u!==null&&u(l,s),s!==null&&typeof s=="object"&&typeof s.then=="function"){var c=ZF(s,n);Sp(e,t,c,pa(e))}else Sp(e,t,n,pa(e))}catch(d){Sp(e,t,{then:function(){},status:"rejected",reason:d},pa())}finally{Tt.p=o,i!==null&&l.types!==null&&(i.types=l.types),Ke.T=i}}function rW(){}function jS(e,t,r,n){if(e.tag!==5)throw Error(pe(476));var a=p4(e).queue;f4(e,a,t,Ps,r===null?rW:function(){return m4(e),r(n)})}function p4(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:Ps,baseState:Ps,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:wi,lastRenderedState:Ps},next:null};var r={};return t.next={memoizedState:r,baseState:r,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:wi,lastRenderedState:r},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function m4(e){var t=p4(e);t.next===null&&(t=e.alternate.memoizedState),Sp(e,t.next.queue,{},pa())}function I2(){return pn($p)}function v4(){return Or().memoizedState}function g4(){return Or().memoizedState}function nW(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var r=pa();e=Al(r);var n=kl(t,e,r);n!==null&&(Kn(n,t,r),xp(n,t,r)),t={cache:x2()},e.payload=t;return}t=t.return}}function aW(e,t,r){var n=pa();r={lane:n,revertLane:0,gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},By(e)?h4(t,r):(r=v2(e,t,r,n),r!==null&&(Kn(r,e,n),x4(r,t,n)))}function y4(e,t,r){var n=pa();Sp(e,t,r,n)}function Sp(e,t,r,n){var a={lane:n,revertLane:0,gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null};if(By(e))h4(t,a);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var i=t.lastRenderedState,l=o(i,r);if(a.hasEagerState=!0,a.eagerState=l,ma(l,i))return Dy(e,t,a,0),$t===null&&Py(),!1}catch{}if(r=v2(e,t,a,n),r!==null)return Kn(r,e,n),x4(r,t,n),!0}return!1}function j2(e,t,r,n){if(n={lane:2,revertLane:V2(),gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},By(e)){if(t)throw Error(pe(479))}else t=v2(e,r,n,2),t!==null&&Kn(t,e,2)}function By(e){var t=e.alternate;return e===et||t!==null&&t===et}function h4(e,t){Lc=dy=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function x4(e,t,r){if((r&4194048)!==0){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,aT(e,r)}}var zp={readContext:pn,use:zy,useCallback:br,useContext:br,useEffect:br,useImperativeHandle:br,useLayoutEffect:br,useInsertionEffect:br,useMemo:br,useReducer:br,useRef:br,useState:br,useDebugValue:br,useDeferredValue:br,useTransition:br,useSyncExternalStore:br,useId:br,useHostTransitionStatus:br,useFormState:br,useActionState:br,useOptimistic:br,useMemoCache:br,useCacheRefresh:br};zp.useEffectEvent=br;var b4={readContext:pn,use:zy,useCallback:function(e,t){return Tn().memoizedState=[e,t===void 0?null:t],e},useContext:pn,useEffect:nO,useImperativeHandle:function(e,t,r){r=r!=null?r.concat([e]):null,Kg(4194308,4,l4.bind(null,t,e),r)},useLayoutEffect:function(e,t){return Kg(4194308,4,e,t)},useInsertionEffect:function(e,t){Kg(4,2,e,t)},useMemo:function(e,t){var r=Tn();t=t===void 0?null:t;var n=e();if(Us){gl(!0);try{e()}finally{gl(!1)}}return r.memoizedState=[n,t],n},useReducer:function(e,t,r){var n=Tn();if(r!==void 0){var a=r(t);if(Us){gl(!0);try{r(t)}finally{gl(!1)}}}else a=t;return n.memoizedState=n.baseState=a,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:a},n.queue=e,e=e.dispatch=aW.bind(null,et,e),[n.memoizedState,e]},useRef:function(e){var t=Tn();return e={current:e},t.memoizedState=e},useState:function(e){e=DS(e);var t=e.queue,r=y4.bind(null,et,t);return t.dispatch=r,[e.memoizedState,r]},useDebugValue:P2,useDeferredValue:function(e,t){var r=Tn();return D2(r,e,t)},useTransition:function(){var e=DS(!1);return e=f4.bind(null,et,e.queue,!0,!1),Tn().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,r){var n=et,a=Tn();if(yt){if(r===void 0)throw Error(pe(407));r=r()}else{if(r=t(),$t===null)throw Error(pe(349));(vt&127)!==0||YT(n,t,r)}a.memoizedState=r;var o={value:r,getSnapshot:t};return a.queue=o,nO(XT.bind(null,n,o,e),[e]),n.flags|=2048,Vc(9,{destroy:void 0},GT.bind(null,n,o,r,t),null),r},useId:function(){var e=Tn(),t=$t.identifierPrefix;if(yt){var r=Io,n=Do;r=(n&~(1<<32-fa(n)-1)).toString(32)+r,t="_"+t+"R_"+r,r=fy++,0<\/script>",o=o.removeChild(o.firstChild);break;case"select":o=typeof n.is=="string"?i.createElement("select",{is:n.is}):i.createElement("select"),n.multiple?o.multiple=!0:n.size&&(o.size=n.size);break;default:o=typeof n.is=="string"?i.createElement(a,{is:n.is}):i.createElement(a)}}o[dn]=t,o[qn]=n;e:for(i=t.child;i!==null;){if(i.tag===5||i.tag===6)o.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=o;e:switch(mn(o,a,n),a){case"button":case"input":case"select":case"textarea":n=!!n.autoFocus;break e;case"img":n=!0;break e;default:n=!1}n&&li(t)}}return Jt(t),Zw(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,r),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==n&&li(t);else{if(typeof n!="string"&&t.stateNode===null)throw Error(pe(166));if(e=wl.current,gc(t)){if(e=t.stateNode,r=t.memoizedProps,n=null,a=fn,a!==null)switch(a.tag){case 27:case 5:n=a.memoizedProps}e[dn]=t,e=!!(e.nodeValue===r||n!==null&&n.suppressHydrationWarning===!0||y3(e.nodeValue,r)),e||Ml(t,!0)}else e=Sy(e).createTextNode(n),e[dn]=t,t.stateNode=e}return Jt(t),null;case 31:if(r=t.memoizedState,e===null||e.memoizedState!==null){if(n=gc(t),r!==null){if(e===null){if(!n)throw Error(pe(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(pe(557));e[dn]=t}else Ls(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Jt(t),e=!1}else r=Fw(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=r),e=!0;if(!e)return t.flags&256?(la(t),t):(la(t),null);if((t.flags&128)!==0)throw Error(pe(558))}return Jt(t),null;case 13:if(n=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=gc(t),n!==null&&n.dehydrated!==null){if(e===null){if(!a)throw Error(pe(318));if(a=t.memoizedState,a=a!==null?a.dehydrated:null,!a)throw Error(pe(317));a[dn]=t}else Ls(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Jt(t),a=!1}else a=Fw(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(la(t),t):(la(t),null)}return la(t),(t.flags&128)!==0?(t.lanes=r,t):(r=n!==null,e=e!==null&&e.memoizedState!==null,r&&(n=t.child,a=null,n.alternate!==null&&n.alternate.memoizedState!==null&&n.alternate.memoizedState.cachePool!==null&&(a=n.alternate.memoizedState.cachePool.pool),o=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(o=n.memoizedState.cachePool.pool),o!==a&&(n.flags|=2048)),r!==e&&r&&(t.child.flags|=8192),Mg(t,t.updateQueue),Jt(t),null);case 4:return $c(),e===null&&K2(t.stateNode.containerInfo),Jt(t),null;case 10:return yi(t.type),Jt(t),null;case 19:if(tn(_r),n=t.memoizedState,n===null)return Jt(t),null;if(a=(t.flags&128)!==0,o=n.rendering,o===null)if(a)ip(n,!1);else{if(wr!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(o=cy(e),o!==null){for(t.flags|=128,ip(n,!1),e=o.updateQueue,t.updateQueue=e,Mg(t,e),t.subtreeFlags=0,e=r,r=t.child;r!==null;)PT(r,e),r=r.sibling;return Kt(_r,_r.current&1|2),yt&&di(t,n.treeForkCount),t.child}e=e.sibling}n.tail!==null&&ca()>gy&&(t.flags|=128,a=!0,ip(n,!1),t.lanes=4194304)}else{if(!a)if(e=cy(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Mg(t,e),ip(n,!0),n.tail===null&&n.tailMode==="hidden"&&!o.alternate&&!yt)return Jt(t),null}else 2*ca()-n.renderingStartTime>gy&&r!==536870912&&(t.flags|=128,a=!0,ip(n,!1),t.lanes=4194304);n.isBackwards?(o.sibling=t.child,t.child=o):(e=n.last,e!==null?e.sibling=o:t.child=o,n.last=o)}return n.tail!==null?(e=n.tail,n.rendering=e,n.tail=e.sibling,n.renderingStartTime=ca(),e.sibling=null,r=_r.current,Kt(_r,a?r&1|2:r&1),yt&&di(t,n.treeForkCount),e):(Jt(t),null);case 22:case 23:return la(t),A2(),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&&(Jt(t),t.subtreeFlags&6&&(t.flags|=8192)):Jt(t),r=t.updateQueue,r!==null&&Mg(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&&tn(Is),null;case 24:return r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),yi($r),Jt(t),null;case 25:return null;case 30:return null}throw Error(pe(156,t.tag))}function uW(e,t){switch(h2(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return yi($r),$c(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return ty(t),null;case 31:if(t.memoizedState!==null){if(la(t),t.alternate===null)throw Error(pe(340));Ls()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(la(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(pe(340));Ls()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return tn(_r),null;case 4:return $c(),null;case 10:return yi(t.type),null;case 22:case 23:return la(t),A2(),e!==null&&tn(Is),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return yi($r),null;case 25:return null;default:return null}}function P4(e,t){switch(h2(t),t.tag){case 3:yi($r),$c();break;case 26:case 27:case 5:ty(t);break;case 4:$c();break;case 31:t.memoizedState!==null&&la(t);break;case 13:la(t);break;case 19:tn(_r);break;case 10:yi(t.type);break;case 22:case 23:la(t),A2(),e!==null&&tn(Is);break;case 24:yi($r)}}function Zp(e,t){try{var r=t.updateQueue,n=r!==null?r.lastEffect:null;if(n!==null){var a=n.next;r=a;do{if((r.tag&e)===e){n=void 0;var o=r.create,i=r.inst;n=o(),i.destroy=n}r=r.next}while(r!==a)}}catch(l){It(t,t.return,l)}}function Pl(e,t,r){try{var n=t.updateQueue,a=n!==null?n.lastEffect:null;if(a!==null){var o=a.next;n=o;do{if((n.tag&e)===e){var i=n.inst,l=i.destroy;if(l!==void 0){i.destroy=void 0,a=t;var s=r,u=l;try{u()}catch(c){It(a,s,c)}}}n=n.next}while(n!==o)}}catch(c){It(t,t.return,c)}}function D4(e){var t=e.updateQueue;if(t!==null){var r=e.stateNode;try{WT(t,r)}catch(n){It(e,e.return,n)}}}function I4(e,t,r){r.props=Fs(e.type,e.memoizedProps),r.state=e.memoizedState;try{r.componentWillUnmount()}catch(n){It(e,t,n)}}function Ap(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(a){It(e,t,a)}}function jo(e,t){var r=e.ref,n=e.refCleanup;if(r!==null)if(typeof n=="function")try{n()}catch(a){It(e,t,a)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof r=="function")try{r(null)}catch(a){It(e,t,a)}else r.current=null}function j4(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(a){It(e,e.return,a)}}function Qw(e,t,r){try{var n=e.stateNode;OW(n,e.type,r,t),n[qn]=t}catch(a){It(e,e.return,a)}}function z4(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&jl(e.type)||e.tag===4}function Jw(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||z4(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&&jl(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 US(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=mi));else if(n!==4&&(n===27&&jl(e.type)&&(r=e.stateNode,t=null),e=e.child,e!==null))for(US(e,t,r),e=e.sibling;e!==null;)US(e,t,r),e=e.sibling}function vy(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&&jl(e.type)&&(r=e.stateNode),e=e.child,e!==null))for(vy(e,t,r),e=e.sibling;e!==null;)vy(e,t,r),e=e.sibling}function L4(e){var t=e.stateNode,r=e.memoizedProps;try{for(var n=e.type,a=t.attributes;a.length;)t.removeAttributeNode(a[0]);mn(t,n,r),t[dn]=e,t[qn]=r}catch(o){It(e,e.return,o)}}var fi=!1,Br=!1,Rw=!1,gO=typeof WeakSet=="function"?WeakSet:Set,Rr=null;function cW(e,t){if(e=e.containerInfo,YS=Cy,e=kT(e),p2(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 a=n.anchorOffset,o=n.focusNode;n=n.focusOffset;try{r.nodeType,o.nodeType}catch{r=null;break e}var i=0,l=-1,s=-1,u=0,c=0,d=e,f=null;t:for(;;){for(var p;d!==r||a!==0&&d.nodeType!==3||(l=i+a),d!==o||n!==0&&d.nodeType!==3||(s=i+n),d.nodeType===3&&(i+=d.nodeValue.length),(p=d.firstChild)!==null;)f=d,d=p;for(;;){if(d===e)break t;if(f===r&&++u===a&&(l=i),f===o&&++c===n&&(s=i),(p=d.nextSibling)!==null)break;d=f,f=d.parentNode}d=p}r=l===-1||s===-1?null:{start:l,end:s}}else r=null}r=r||{start:0,end:0}}else r=null;for(GS={focusedElem:e,selectionRange:r},Cy=!1,Rr=t;Rr!==null;)if(t=Rr,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Rr=e;else for(;Rr!==null;){switch(t=Rr,o=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"))),mn(o,n,r),o[dn]=e,en(o),n=o;break e;case"link":var i=BO("link","href",a).get(n+(r.href||""));if(i){for(var l=0;lh&&(i=h,h=y,y=i);var v=F5(l,y),g=F5(l,h);if(v&&g&&(p.rangeCount!==1||p.anchorNode!==v.node||p.anchorOffset!==v.offset||p.focusNode!==g.node||p.focusOffset!==g.offset)){var b=d.createRange();b.setStart(v.node,v.offset),p.removeAllRanges(),y>h?(p.addRange(b),p.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),p.addRange(b))}}}}for(d=[],p=l;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof l.focus=="function"&&l.focus(),l=0;lr?32:r,Ke.T=null,r=HS,HS=null;var o=Cl,i=hi;if(Vr=0,qc=Cl=null,hi=0,(Ot&6)!==0)throw Error(pe(331));var l=Ot;if(Ot|=4,G4(o.current),K4(o,o.current,i,r),Ot=l,Qp(0,!1),da&&typeof da.onPostCommitFiberRoot=="function")try{da.onPostCommitFiberRoot(Hp,o)}catch{}return!0}finally{Tt.p=a,Ke.T=n,u3(e,t)}}function bO(e,t,r){t=za(r,t),t=LS(e.stateNode,t,2),e=kl(e,t,2),e!==null&&(Kp(e,2),Bo(e))}function It(e,t,r){if(e.tag===3)bO(e,e,r);else for(;t!==null;){if(t.tag===3){bO(t,e,r);break}else if(t.tag===1){var n=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof n.componentDidCatch=="function"&&(Nl===null||!Nl.has(n))){e=za(r,e),r=N4(2),n=kl(t,r,2),n!==null&&(C4(r,n,t,e),Kp(n,2),Bo(n));break}}t=t.return}}function tS(e,t,r){var n=e.pingCache;if(n===null){n=e.pingCache=new pW;var a=new Set;n.set(t,a)}else a=n.get(t),a===void 0&&(a=new Set,n.set(t,a));a.has(r)||(F2=!0,a.add(r),e=hW.bind(null,e,t,r),t.then(e,e))}function hW(e,t,r){var n=e.pingCache;n!==null&&n.delete(t),e.pingedLanes|=e.suspendedLanes&r,e.warmLanes&=~r,$t===e&&(vt&r)===r&&(wr===4||wr===3&&(vt&62914560)===vt&&300>ca()-$y?(Ot&2)===0&&Yc(e,0):W2|=r,Kc===vt&&(Kc=0)),Bo(e)}function d3(e,t){t===0&&(t=rT()),e=Ks(e,t),e!==null&&(Kp(e,t),Bo(e))}function xW(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),d3(e,r)}function bW(e,t){var r=0;switch(e.tag){case 31:case 13:var n=e.stateNode,a=e.memoizedState;a!==null&&(r=a.retryLane);break;case 19:n=e.stateNode;break;case 22:n=e.stateNode._retryCache;break;default:throw Error(pe(314))}n!==null&&n.delete(t),d3(e,r)}function wW(e,t){return a2(e,t)}var xy=null,xc=null,KS=!1,by=!1,rS=!1,bl=0;function Bo(e){e!==xc&&e.next===null&&(xc===null?xy=xc=e:xc=xc.next=e),by=!0,KS||(KS=!0,AW())}function Qp(e,t){if(!rS&&by){rS=!0;do for(var r=!1,n=xy;n!==null;){if(!t)if(e!==0){var a=n.pendingLanes;if(a===0)var o=0;else{var i=n.suspendedLanes,l=n.pingedLanes;o=(1<<31-fa(42|e)+1)-1,o&=a&~(i&~l),o=o&201326741?o&201326741|1:o?o|2:0}o!==0&&(r=!0,wO(n,o))}else o=vt,o=_y(n,n===$t?o:0,n.cancelPendingCommit!==null||n.timeoutHandle!==-1),(o&3)===0||Vp(n,o)||(r=!0,wO(n,o));n=n.next}while(r);rS=!1}}function SW(){f3()}function f3(){by=KS=!1;var e=0;bl!==0&&MW()&&(e=bl);for(var t=ca(),r=null,n=xy;n!==null;){var a=n.next,o=p3(n,t);o===0?(n.next=null,r===null?xy=a:r.next=a,a===null&&(xc=r)):(r=n,(e!==0||(o&3)!==0)&&(by=!0)),n=a}Vr!==0&&Vr!==5||Qp(e,!1),bl!==0&&(bl=0)}function p3(e,t){for(var r=e.suspendedLanes,n=e.pingedLanes,a=e.expirationTimes,o=e.pendingLanes&-62914561;0l)break;var c=s.transferSize,d=s.initiatorType;c&&_O(d)&&(s=s.responseEnd,i+=c*(s"u"?null:document;function S3(e,t,r){var n=td;if(n&&typeof t=="string"&&t){var a=ja(t);a='link[rel="'+e+'"][href="'+a+'"]',typeof r=="string"&&(a+='[crossorigin="'+r+'"]'),jO.has(a)||(jO.add(a),e={rel:e,crossOrigin:r,href:t},n.querySelector(a)===null&&(t=n.createElement("link"),mn(t,"link",e),en(t),n.head.appendChild(t)))}}function UW(e){ki.D(e),S3("dns-prefetch",e,null)}function FW(e,t){ki.C(e,t),S3("preconnect",e,t)}function WW(e,t,r){ki.L(e,t,r);var n=td;if(n&&e&&t){var a='link[rel="preload"][as="'+ja(t)+'"]';t==="image"&&r&&r.imageSrcSet?(a+='[imagesrcset="'+ja(r.imageSrcSet)+'"]',typeof r.imageSizes=="string"&&(a+='[imagesizes="'+ja(r.imageSizes)+'"]')):a+='[href="'+ja(e)+'"]';var o=a;switch(t){case"style":o=Gc(e);break;case"script":o=rd(e)}Ua.has(o)||(e=er({rel:"preload",href:t==="image"&&r&&r.imageSrcSet?void 0:e,as:t},r),Ua.set(o,e),n.querySelector(a)!==null||t==="style"&&n.querySelector(Jp(o))||t==="script"&&n.querySelector(Rp(o))||(t=n.createElement("link"),mn(t,"link",e),en(t),n.head.appendChild(t)))}}function HW(e,t){ki.m(e,t);var r=td;if(r&&e){var n=t&&typeof t.as=="string"?t.as:"script",a='link[rel="modulepreload"][as="'+ja(n)+'"][href="'+ja(e)+'"]',o=a;switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":o=rd(e)}if(!Ua.has(o)&&(e=er({rel:"modulepreload",href:e},t),Ua.set(o,e),r.querySelector(a)===null)){switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(r.querySelector(Rp(o)))return}n=r.createElement("link"),mn(n,"link",e),en(n),r.head.appendChild(n)}}}function VW(e,t,r){ki.S(e,t,r);var n=td;if(n&&e){var a=Pc(n).hoistableStyles,o=Gc(e);t=t||"default";var i=a.get(o);if(!i){var l={loading:0,preload:null};if(i=n.querySelector(Jp(o)))l.loading=5;else{e=er({rel:"stylesheet",href:e,"data-precedence":t},r),(r=Ua.get(o))&&q2(e,r);var s=i=n.createElement("link");en(s),mn(s,"link",e),s._p=new Promise(function(u,c){s.onload=u,s.onerror=c}),s.addEventListener("load",function(){l.loading|=1}),s.addEventListener("error",function(){l.loading|=2}),l.loading|=4,Xg(i,t,n)}i={type:"stylesheet",instance:i,count:1,state:l},a.set(o,i)}}}function KW(e,t){ki.X(e,t);var r=td;if(r&&e){var n=Pc(r).hoistableScripts,a=rd(e),o=n.get(a);o||(o=r.querySelector(Rp(a)),o||(e=er({src:e,async:!0},t),(t=Ua.get(a))&&Y2(e,t),o=r.createElement("script"),en(o),mn(o,"link",e),r.head.appendChild(o)),o={type:"script",instance:o,count:1,state:null},n.set(a,o))}}function qW(e,t){ki.M(e,t);var r=td;if(r&&e){var n=Pc(r).hoistableScripts,a=rd(e),o=n.get(a);o||(o=r.querySelector(Rp(a)),o||(e=er({src:e,async:!0,type:"module"},t),(t=Ua.get(a))&&Y2(e,t),o=r.createElement("script"),en(o),mn(o,"link",e),r.head.appendChild(o)),o={type:"script",instance:o,count:1,state:null},n.set(a,o))}}function zO(e,t,r,n){var a=(a=wl.current)?Ay(a):null;if(!a)throw Error(pe(446));switch(e){case"meta":case"title":return null;case"style":return typeof r.precedence=="string"&&typeof r.href=="string"?(t=Gc(r.href),r=Pc(a).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=Gc(r.href);var o=Pc(a).hoistableStyles,i=o.get(e);if(i||(a=a.ownerDocument||a,i={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},o.set(e,i),(o=a.querySelector(Jp(e)))&&!o._p&&(i.instance=o,i.state.loading=5),Ua.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},Ua.set(e,r),o||YW(a,e,r,i.state))),t&&n===null)throw Error(pe(528,""));return i}if(t&&n!==null)throw Error(pe(529,""));return null;case"script":return t=r.async,r=r.src,typeof r=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=rd(r),r=Pc(a).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(pe(444,e))}}function Gc(e){return'href="'+ja(e)+'"'}function Jp(e){return'link[rel="stylesheet"]['+e+"]"}function A3(e){return er({},e,{"data-precedence":e.precedence,precedence:null})}function YW(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}),mn(t,"link",r),en(t),e.head.appendChild(t))}function rd(e){return'[src="'+ja(e)+'"]'}function Rp(e){return"script[async]"+e}function LO(e,t,r){if(t.count++,t.instance===null)switch(t.type){case"style":var n=e.querySelector('style[data-href~="'+ja(r.href)+'"]');if(n)return t.instance=n,en(n),n;var a=er({},r,{"data-href":r.href,"data-precedence":r.precedence,href:null,precedence:null});return n=(e.ownerDocument||e).createElement("style"),en(n),mn(n,"style",a),Xg(n,r.precedence,e),t.instance=n;case"stylesheet":a=Gc(r.href);var o=e.querySelector(Jp(a));if(o)return t.state.loading|=4,t.instance=o,en(o),o;n=A3(r),(a=Ua.get(a))&&q2(n,a),o=(e.ownerDocument||e).createElement("link"),en(o);var i=o;return i._p=new Promise(function(l,s){i.onload=l,i.onerror=s}),mn(o,"link",n),t.state.loading|=4,Xg(o,r.precedence,e),t.instance=o;case"script":return o=rd(r.src),(a=e.querySelector(Rp(o)))?(t.instance=a,en(a),a):(n=r,(a=Ua.get(o))&&(n=er({},r),Y2(n,a)),e=e.ownerDocument||e,a=e.createElement("script"),en(a),mn(a,"link",n),e.head.appendChild(a),t.instance=a);case"void":return null;default:throw Error(pe(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(n=t.instance,t.state.loading|=4,Xg(n,r.precedence,e));return t.instance}function Xg(e,t,r){for(var n=r.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),a=n.length?n[n.length-1]:null,o=a,i=0;i title"):null)}function GW(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 k3(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function XW(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 a=Gc(n.href),o=t.querySelector(Jp(a));if(o){t=o._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=ky.bind(e),t.then(e,e)),r.state.loading|=4,r.instance=o,en(o);return}o=t.ownerDocument||t,n=A3(n),(a=Ua.get(a))&&q2(n,a),o=o.createElement("link"),en(o);var i=o;i._p=new Promise(function(l,s){i.onload=l,i.onerror=s}),mn(o,"link",n),r.instance=o}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(r,t),(t=r.state.preload)&&(r.state.loading&3)===0&&(e.count++,r=ky.bind(e),t.addEventListener("load",r),t.addEventListener("error",r))}}var iS=0;function ZW(e,t){return e.stylesheets&&e.count===0&&Qg(e,e.stylesheets),0iS?50:800)+t);return e.unsuspend=r,function(){e.unsuspend=null,clearTimeout(n),clearTimeout(a)}}:null}function ky(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Qg(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Ny=null;function Qg(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Ny=new Map,t.forEach(QW,e),Ny=null,ky.call(e))}function QW(e,t){if(!(t.state.loading&4)){var r=Ny.get(e);if(r)var n=r.get(null);else{r=new Map,Ny.set(e,r);for(var a=e.querySelectorAll("link[data-precedence],style[data-precedence]"),o=0;o{"use strict";function D3(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(D3)}catch(e){console.error(e)}}D3(),I3.exports=P3()});var BM=Jr(LM=>{"use strict";var wd=ne();function cV(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var dV=typeof Object.is=="function"?Object.is:cV,fV=wd.useState,pV=wd.useEffect,mV=wd.useLayoutEffect,vV=wd.useDebugValue;function gV(e,t){var r=t(),n=fV({inst:{value:r,getSnapshot:t}}),a=n[0].inst,o=n[1];return mV(function(){a.value=r,a.getSnapshot=t,FA(a)&&o({inst:a})},[e,r,t]),pV(function(){return FA(a)&&o({inst:a}),e(function(){FA(a)&&o({inst:a})})},[e]),vV(r),r}function FA(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!dV(e,r)}catch{return!0}}function yV(e,t){return t()}var hV=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?yV:gV;LM.useSyncExternalStore=wd.useSyncExternalStore!==void 0?wd.useSyncExternalStore:hV});var UM=Jr((eve,$M)=>{"use strict";$M.exports=BM()});var WM=Jr(FM=>{"use strict";var Dh=ne(),xV=UM();function bV(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var wV=typeof Object.is=="function"?Object.is:bV,SV=xV.useSyncExternalStore,AV=Dh.useRef,kV=Dh.useEffect,NV=Dh.useMemo,CV=Dh.useDebugValue;FM.useSyncExternalStoreWithSelector=function(e,t,r,n,a){var o=AV(null);if(o.current===null){var i={hasValue:!1,value:null};o.current=i}else i=o.current;o=NV(function(){function s(p){if(!u){if(u=!0,c=p,p=n(p),a!==void 0&&i.hasValue){var m=i.value;if(a(m,p))return d=m}return d=p}if(m=d,wV(c,p))return m;var y=n(p);return a!==void 0&&a(m,y)?(c=p,m):(c=p,d=y)}var u=!1,c,d,f=r===void 0?null:r;return[function(){return s(t())},f===null?void 0:function(){return s(f())}]},[t,r,n,a]);var l=SV(e,o[0],o[1]);return kV(function(){i.hasValue=!0,i.value=l},[l]),CV(l),l}});var VM=Jr((rve,HM)=>{"use strict";HM.exports=WM()});var MD=Jr(TD=>{"use strict";var wm=ne();function Tq(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Mq=typeof Object.is=="function"?Object.is:Tq,Pq=wm.useSyncExternalStore,Dq=wm.useRef,Iq=wm.useEffect,jq=wm.useMemo,zq=wm.useDebugValue;TD.useSyncExternalStoreWithSelector=function(e,t,r,n,a){var o=Dq(null);if(o.current===null){var i={hasValue:!1,value:null};o.current=i}else i=o.current;o=jq(function(){function s(p){if(!u){if(u=!0,c=p,p=n(p),a!==void 0&&i.hasValue){var m=i.value;if(a(m,p))return d=m}return d=p}if(m=d,Mq(c,p))return m;var y=n(p);return a!==void 0&&a(m,y)?(c=p,m):(c=p,d=y)}var u=!1,c,d,f=r===void 0?null:r;return[function(){return s(t())},f===null?void 0:function(){return s(f())}]},[t,r,n,a]);var l=Pq(e,o[0],o[1]);return Iq(function(){i.hasValue=!0,i.value=l},[l]),zq(l),l}});var DD=Jr((tye,PD)=>{"use strict";PD.exports=MD()});var zk=Jr((a6,H0)=>{(function(e){"use strict";var t=1e9,r={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},n=!0,a="[DecimalError] ",o=a+"Invalid argument: ",i=a+"Exponent out of range: ",l=Math.floor,s=Math.pow,u=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,c,d=1e7,f=7,p=9007199254740991,m=l(p/f),y={};y.absoluteValue=y.abs=function(){var N=new this.constructor(this);return N.s&&(N.s=1),N},y.comparedTo=y.cmp=function(N){var _,z,j,P,B=this;if(N=new B.constructor(N),B.s!==N.s)return B.s||-N.s;if(B.e!==N.e)return B.e>N.e^B.s<0?1:-1;for(j=B.d.length,P=N.d.length,_=0,z=jN.d[_]^B.s<0?1:-1;return j===P?0:j>P^B.s<0?1:-1},y.decimalPlaces=y.dp=function(){var N=this,_=N.d.length-1,z=(_-N.e)*f;if(_=N.d[_],_)for(;_%10==0;_/=10)z--;return z<0?0:z},y.dividedBy=y.div=function(N){return b(this,new this.constructor(N))},y.dividedToIntegerBy=y.idiv=function(N){var _=this,z=_.constructor;return M(b(_,new z(N),0,1),z.precision)},y.equals=y.eq=function(N){return!this.cmp(N)},y.exponent=function(){return S(this)},y.greaterThan=y.gt=function(N){return this.cmp(N)>0},y.greaterThanOrEqualTo=y.gte=function(N){return this.cmp(N)>=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(N){return this.cmp(N)<0},y.lessThanOrEqualTo=y.lte=function(N){return this.cmp(N)<1},y.logarithm=y.log=function(N){var _,z=this,j=z.constructor,P=j.precision,B=P+5;if(N===void 0)N=new j(10);else if(N=new j(N),N.s<1||N.eq(c))throw Error(a+"NaN");if(z.s<1)throw Error(a+(z.s?"NaN":"-Infinity"));return z.eq(c)?new j(0):(n=!1,_=b(k(z,B),k(N,B),B),n=!0,M(_,P))},y.minus=y.sub=function(N){var _=this;return N=new _.constructor(N),_.s==N.s?W(_,N):h(_,(N.s=-N.s,N))},y.modulo=y.mod=function(N){var _,z=this,j=z.constructor,P=j.precision;if(N=new j(N),!N.s)throw Error(a+"NaN");return z.s?(n=!1,_=b(z,N,0,1).times(N),n=!0,z.minus(_)):M(new j(z),P)},y.naturalExponential=y.exp=function(){return x(this)},y.naturalLogarithm=y.ln=function(){return k(this)},y.negated=y.neg=function(){var N=new this.constructor(this);return N.s=-N.s||0,N},y.plus=y.add=function(N){var _=this;return N=new _.constructor(N),_.s==N.s?h(_,N):W(_,(N.s=-N.s,N))},y.precision=y.sd=function(N){var _,z,j,P=this;if(N!==void 0&&N!==!!N&&N!==1&&N!==0)throw Error(o+N);if(_=S(P)+1,j=P.d.length-1,z=j*f+1,j=P.d[j],j){for(;j%10==0;j/=10)z--;for(j=P.d[0];j>=10;j/=10)z++}return N&&_>z?_:z},y.squareRoot=y.sqrt=function(){var N,_,z,j,P,B,R,F=this,G=F.constructor;if(F.s<1){if(!F.s)return new G(0);throw Error(a+"NaN")}for(N=S(F),n=!1,P=Math.sqrt(+F),P==0||P==1/0?(_=g(F.d),(_.length+N)%2==0&&(_+="0"),P=Math.sqrt(_),N=l((N+1)/2)-(N<0||N%2),P==1/0?_="5e"+N:(_=P.toExponential(),_=_.slice(0,_.indexOf("e")+1)+N),j=new G(_)):j=new G(P.toString()),z=G.precision,P=R=z+3;;)if(B=j,j=B.plus(b(F,B,R+2)).times(.5),g(B.d).slice(0,R)===(_=g(j.d)).slice(0,R)){if(_=_.slice(R-3,R+1),P==R&&_=="4999"){if(M(B,z+1,0),B.times(B).eq(F)){j=B;break}}else if(_!="9999")break;R+=4}return n=!0,M(j,z)},y.times=y.mul=function(N){var _,z,j,P,B,R,F,G,ee,fe=this,de=fe.constructor,De=fe.d,le=(N=new de(N)).d;if(!fe.s||!N.s)return new de(0);for(N.s*=fe.s,z=fe.e+N.e,G=De.length,ee=le.length,G=0;){for(_=0,P=G+j;P>j;)F=B[P]+le[j]*De[P-j-1]+_,B[P--]=F%d|0,_=F/d|0;B[P]=(B[P]+_)%d|0}for(;!B[--R];)B.pop();return _?++z:B.shift(),N.d=B,N.e=z,n?M(N,de.precision):N},y.toDecimalPlaces=y.todp=function(N,_){var z=this,j=z.constructor;return z=new j(z),N===void 0?z:(v(N,0,t),_===void 0?_=j.rounding:v(_,0,8),M(z,N+S(z)+1,_))},y.toExponential=function(N,_){var z,j=this,P=j.constructor;return N===void 0?z=L(j,!0):(v(N,0,t),_===void 0?_=P.rounding:v(_,0,8),j=M(new P(j),N+1,_),z=L(j,!0,N+1)),z},y.toFixed=function(N,_){var z,j,P=this,B=P.constructor;return N===void 0?L(P):(v(N,0,t),_===void 0?_=B.rounding:v(_,0,8),j=M(new B(P),N+S(P)+1,_),z=L(j.abs(),!1,N+S(j)+1),P.isneg()&&!P.isZero()?"-"+z:z)},y.toInteger=y.toint=function(){var N=this,_=N.constructor;return M(new _(N),S(N)+1,_.rounding)},y.toNumber=function(){return+this},y.toPower=y.pow=function(N){var _,z,j,P,B,R,F=this,G=F.constructor,ee=12,fe=+(N=new G(N));if(!N.s)return new G(c);if(F=new G(F),!F.s){if(N.s<1)throw Error(a+"Infinity");return F}if(F.eq(c))return F;if(j=G.precision,N.eq(c))return M(F,j);if(_=N.e,z=N.d.length-1,R=_>=z,B=F.s,R){if((z=fe<0?-fe:fe)<=p){for(P=new G(c),_=Math.ceil(j/f+4),n=!1;z%2&&(P=P.times(F),H(P.d,_)),z=l(z/2),z!==0;)F=F.times(F),H(F.d,_);return n=!0,N.s<0?new G(c).div(P):M(P,j)}}else if(B<0)throw Error(a+"NaN");return B=B<0&&N.d[Math.max(_,z)]&1?-1:1,F.s=1,n=!1,P=N.times(k(F,j+ee)),n=!0,P=x(P),P.s=B,P},y.toPrecision=function(N,_){var z,j,P=this,B=P.constructor;return N===void 0?(z=S(P),j=L(P,z<=B.toExpNeg||z>=B.toExpPos)):(v(N,1,t),_===void 0?_=B.rounding:v(_,0,8),P=M(new B(P),N,_),z=S(P),j=L(P,N<=z||z<=B.toExpNeg,N)),j},y.toSignificantDigits=y.tosd=function(N,_){var z=this,j=z.constructor;return N===void 0?(N=j.precision,_=j.rounding):(v(N,1,t),_===void 0?_=j.rounding:v(_,0,8)),M(new j(z),N,_)},y.toString=y.valueOf=y.val=y.toJSON=function(){var N=this,_=S(N),z=N.constructor;return L(N,_<=z.toExpNeg||_>=z.toExpPos)};function h(N,_){var z,j,P,B,R,F,G,ee,fe=N.constructor,de=fe.precision;if(!N.s||!_.s)return _.s||(_=new fe(N)),n?M(_,de):_;if(G=N.d,ee=_.d,R=N.e,P=_.e,G=G.slice(),B=R-P,B){for(B<0?(j=G,B=-B,F=ee.length):(j=ee,P=R,F=G.length),R=Math.ceil(de/f),F=R>F?R+1:F+1,B>F&&(B=F,j.length=1),j.reverse();B--;)j.push(0);j.reverse()}for(F=G.length,B=ee.length,F-B<0&&(B=F,j=ee,ee=G,G=j),z=0;B;)z=(G[--B]=G[B]+ee[B]+z)/d|0,G[B]%=d;for(z&&(G.unshift(z),++P),F=G.length;G[--F]==0;)G.pop();return _.d=G,_.e=P,n?M(_,de):_}function v(N,_,z){if(N!==~~N||N<_||N>z)throw Error(o+N)}function g(N){var _,z,j,P=N.length-1,B="",R=N[0];if(P>0){for(B+=R,_=1;_R?1:-1;else for(F=G=0;FP[F]?1:-1;break}return G}function z(j,P,B){for(var R=0;B--;)j[B]-=R,R=j[B]1;)j.shift()}return function(j,P,B,R){var F,G,ee,fe,de,De,le,Te,K,I,C,T,X,$,Ne,E,Z,ge,Le=j.constructor,nt=j.s==P.s?1:-1,Bt=j.d,ft=P.d;if(!j.s)return new Le(j);if(!P.s)throw Error(a+"Division by zero");for(G=j.e-P.e,Z=ft.length,Ne=Bt.length,le=new Le(nt),Te=le.d=[],ee=0;ft[ee]==(Bt[ee]||0);)++ee;if(ft[ee]>(Bt[ee]||0)&&--G,B==null?T=B=Le.precision:R?T=B+(S(j)-S(P))+1:T=B,T<0)return new Le(0);if(T=T/f+2|0,ee=0,Z==1)for(fe=0,ft=ft[0],T++;(ee1&&(ft=N(ft,fe),Bt=N(Bt,fe),Z=ft.length,Ne=Bt.length),$=Z,K=Bt.slice(0,Z),I=K.length;I=d/2&&++E;do fe=0,F=_(ft,K,Z,I),F<0?(C=K[0],Z!=I&&(C=C*d+(K[1]||0)),fe=C/E|0,fe>1?(fe>=d&&(fe=d-1),de=N(ft,fe),De=de.length,I=K.length,F=_(de,K,De,I),F==1&&(fe--,z(de,Z16)throw Error(i+S(N));if(!N.s)return new fe(c);for(_==null?(n=!1,F=de):F=_,R=new fe(.03125);N.abs().gte(.1);)N=N.times(R),ee+=5;for(j=Math.log(s(2,ee))/Math.LN10*2+5|0,F+=j,z=P=B=new fe(c),fe.precision=F;;){if(P=M(P.times(N),F),z=z.times(++G),R=B.plus(b(P,z,F)),g(R.d).slice(0,F)===g(B.d).slice(0,F)){for(;ee--;)B=M(B.times(B),F);return fe.precision=de,_==null?(n=!0,M(B,de)):B}B=R}}function S(N){for(var _=N.e*f,z=N.d[0];z>=10;z/=10)_++;return _}function w(N,_,z){if(_>N.LN10.sd())throw n=!0,z&&(N.precision=z),Error(a+"LN10 precision limit exceeded");return M(new N(N.LN10),_)}function O(N){for(var _="";N--;)_+="0";return _}function k(N,_){var z,j,P,B,R,F,G,ee,fe,de=1,De=10,le=N,Te=le.d,K=le.constructor,I=K.precision;if(le.s<1)throw Error(a+(le.s?"NaN":"-Infinity"));if(le.eq(c))return new K(0);if(_==null?(n=!1,ee=I):ee=_,le.eq(10))return _==null&&(n=!0),w(K,ee);if(ee+=De,K.precision=ee,z=g(Te),j=z.charAt(0),B=S(le),Math.abs(B)<15e14){for(;j<7&&j!=1||j==1&&z.charAt(1)>3;)le=le.times(N),z=g(le.d),j=z.charAt(0),de++;B=S(le),j>1?(le=new K("0."+z),B++):le=new K(j+"."+z.slice(1))}else return G=w(K,ee+2,I).times(B+""),le=k(new K(j+"."+z.slice(1)),ee-De).plus(G),K.precision=I,_==null?(n=!0,M(le,I)):le;for(F=R=le=b(le.minus(c),le.plus(c),ee),fe=M(le.times(le),ee),P=3;;){if(R=M(R.times(fe),ee),G=F.plus(b(R,new K(P),ee)),g(G.d).slice(0,ee)===g(F.d).slice(0,ee))return F=F.times(2),B!==0&&(F=F.plus(w(K,ee+2,I).times(B+""))),F=b(F,new K(de),ee),K.precision=I,_==null?(n=!0,M(F,I)):F;F=G,P+=2}}function A(N,_){var z,j,P;for((z=_.indexOf("."))>-1&&(_=_.replace(".","")),(j=_.search(/e/i))>0?(z<0&&(z=j),z+=+_.slice(j+1),_=_.substring(0,j)):z<0&&(z=_.length),j=0;_.charCodeAt(j)===48;)++j;for(P=_.length;_.charCodeAt(P-1)===48;)--P;if(_=_.slice(j,P),_){if(P-=j,z=z-j-1,N.e=l(z/f),N.d=[],j=(z+1)%f,z<0&&(j+=f),jm||N.e<-m))throw Error(i+z)}else N.s=0,N.e=0,N.d=[0];return N}function M(N,_,z){var j,P,B,R,F,G,ee,fe,de=N.d;for(R=1,B=de[0];B>=10;B/=10)R++;if(j=_-R,j<0)j+=f,P=_,ee=de[fe=0];else{if(fe=Math.ceil((j+1)/f),B=de.length,fe>=B)return N;for(ee=B=de[fe],R=1;B>=10;B/=10)R++;j%=f,P=j-f+R}if(z!==void 0&&(B=s(10,R-P-1),F=ee/B%10|0,G=_<0||de[fe+1]!==void 0||ee%B,G=z<4?(F||G)&&(z==0||z==(N.s<0?3:2)):F>5||F==5&&(z==4||G||z==6&&(j>0?P>0?ee/s(10,R-P):0:de[fe-1])%10&1||z==(N.s<0?8:7))),_<1||!de[0])return G?(B=S(N),de.length=1,_=_-B-1,de[0]=s(10,(f-_%f)%f),N.e=l(-_/f)||0):(de.length=1,de[0]=N.e=N.s=0),N;if(j==0?(de.length=fe,B=1,fe--):(de.length=fe+1,B=s(10,f-j),de[fe]=P>0?(ee/s(10,R-P)%s(10,P)|0)*B:0),G)for(;;)if(fe==0){(de[0]+=B)==d&&(de[0]=1,++N.e);break}else{if(de[fe]+=B,de[fe]!=d)break;de[fe--]=0,B=1}for(j=de.length;de[--j]===0;)de.pop();if(n&&(N.e>m||N.e<-m))throw Error(i+S(N));return N}function W(N,_){var z,j,P,B,R,F,G,ee,fe,de,De=N.constructor,le=De.precision;if(!N.s||!_.s)return _.s?_.s=-_.s:_=new De(N),n?M(_,le):_;if(G=N.d,de=_.d,j=_.e,ee=N.e,G=G.slice(),R=ee-j,R){for(fe=R<0,fe?(z=G,R=-R,F=de.length):(z=de,j=ee,F=G.length),P=Math.max(Math.ceil(le/f),F)+2,R>P&&(R=P,z.length=1),z.reverse(),P=R;P--;)z.push(0);z.reverse()}else{for(P=G.length,F=de.length,fe=P0;--P)G[F++]=0;for(P=de.length;P>R;){if(G[--P]0?B=B.charAt(0)+"."+B.slice(1)+O(j):R>1&&(B=B.charAt(0)+"."+B.slice(1)),B=B+(P<0?"e":"e+")+P):P<0?(B="0."+O(-P-1)+B,z&&(j=z-R)>0&&(B+=O(j))):P>=R?(B+=O(P+1-R),z&&(j=z-P-1)>0&&(B=B+"."+O(j))):((j=P+1)0&&(P+1===R&&(B+="."),B+=O(j))),N.s<0?"-"+B:B}function H(N,_){if(N.length>_)return N.length=_,!0}function D(N){var _,z,j;function P(B){var R=this;if(!(R instanceof P))return new P(B);if(R.constructor=P,B instanceof P){R.s=B.s,R.e=B.e,R.d=(B=B.d)?B.slice():B;return}if(typeof B=="number"){if(B*0!==0)throw Error(o+B);if(B>0)R.s=1;else if(B<0)B=-B,R.s=-1;else{R.s=0,R.e=0,R.d=[0];return}if(B===~~B&&B<1e7){R.e=0,R.d=[B];return}return A(R,B.toString())}else if(typeof B!="string")throw Error(o+B);if(B.charCodeAt(0)===45?(B=B.slice(1),R.s=-1):R.s=1,u.test(B))A(R,B);else throw Error(o+B)}if(P.prototype=y,P.ROUND_UP=0,P.ROUND_DOWN=1,P.ROUND_CEIL=2,P.ROUND_FLOOR=3,P.ROUND_HALF_UP=4,P.ROUND_HALF_DOWN=5,P.ROUND_HALF_EVEN=6,P.ROUND_HALF_CEIL=7,P.ROUND_HALF_FLOOR=8,P.clone=D,P.config=P.set=Y,N===void 0&&(N={}),N)for(j=["precision","rounding","toExpNeg","toExpPos","LN10"],_=0;_=P[_+1]&&j<=P[_+2])this[z]=j;else throw Error(o+z+": "+j);if((j=N[z="LN10"])!==void 0)if(j==Math.LN10)this[z]=new this(j);else throw Error(o+z+": "+j);return this}r=D(r),r.default=r.Decimal=r,c=new r(1),typeof define=="function"&&define.amd?define(function(){return r}):typeof H0<"u"&&H0.exports?H0.exports=r:(e||(e=typeof self<"u"&&self&&self.self==self?self:Function("return this")()),e.Decimal=r)})(a6)});var Rj=Jr((Hke,wC)=>{"use strict";var $R=Object.prototype.hasOwnProperty,zn="~";function fv(){}Object.create&&(fv.prototype=Object.create(null),new fv().__proto__||(zn=!1));function UR(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function Jj(e,t,r,n,a){if(typeof r!="function")throw new TypeError("The listener must be a function");var o=new UR(r,n||e,a),i=zn?zn+t:t;return e._events[i]?e._events[i].fn?e._events[i]=[e._events[i],o]:e._events[i].push(o):(e._events[i]=o,e._eventsCount++),e}function pb(e,t){--e._eventsCount===0?e._events=new fv:delete e._events[t]}function Sn(){this._events=new fv,this._eventsCount=0}Sn.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)$R.call(r,n)&&t.push(zn?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};Sn.prototype.listeners=function(t){var r=zn?zn+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var a=0,o=n.length,i=new Array(o);a{"use strict";var MC=Symbol.for("react.transitional.element"),PC=Symbol.for("react.portal"),Eb=Symbol.for("react.fragment"),_b=Symbol.for("react.strict_mode"),Ob=Symbol.for("react.profiler"),Tb=Symbol.for("react.consumer"),Mb=Symbol.for("react.context"),Pb=Symbol.for("react.forward_ref"),Db=Symbol.for("react.suspense"),Ib=Symbol.for("react.suspense_list"),jb=Symbol.for("react.memo"),zb=Symbol.for("react.lazy"),Nte=Symbol.for("react.view_transition"),Cte=Symbol.for("react.client.reference");function to(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case MC:switch(e=e.type,e){case Eb:case Ob:case _b:case Db:case Ib:case Nte:return e;default:switch(e=e&&e.$$typeof,e){case Mb:case Pb:case zb:case jb:return e;case Tb:return e;default:return t}}case PC:return t}}}Ht.ContextConsumer=Tb;Ht.ContextProvider=Mb;Ht.Element=MC;Ht.ForwardRef=Pb;Ht.Fragment=Eb;Ht.Lazy=zb;Ht.Memo=jb;Ht.Portal=PC;Ht.Profiler=Ob;Ht.StrictMode=_b;Ht.Suspense=Db;Ht.SuspenseList=Ib;Ht.isContextConsumer=function(e){return to(e)===Tb};Ht.isContextProvider=function(e){return to(e)===Mb};Ht.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===MC};Ht.isForwardRef=function(e){return to(e)===Pb};Ht.isFragment=function(e){return to(e)===Eb};Ht.isLazy=function(e){return to(e)===zb};Ht.isMemo=function(e){return to(e)===jb};Ht.isPortal=function(e){return to(e)===PC};Ht.isProfiler=function(e){return to(e)===Ob};Ht.isStrictMode=function(e){return to(e)===_b};Ht.isSuspense=function(e){return to(e)===Db};Ht.isSuspenseList=function(e){return to(e)===Ib};Ht.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===Eb||e===Ob||e===_b||e===Db||e===Ib||typeof e=="object"&&e!==null&&(e.$$typeof===zb||e.$$typeof===jb||e.$$typeof===Mb||e.$$typeof===Tb||e.$$typeof===Pb||e.$$typeof===Cte||e.getModuleId!==void 0)};Ht.typeOf=to});var dL=Jr((KCe,cL)=>{"use strict";cL.exports=uL()});var nU=te(ne()),aU=te(j3());var Ze=te(ne());var Be=te(ne());var At=te(ne()),Ys={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"}},Gs={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"}},nd={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 oH=({id:e="mascot"})=>At.default.createElement("g",{stroke:"none",fill:"none",fillRule:"evenodd",strokeWidth:"1"},At.default.createElement("g",{transform:"translate(25, 475) scale(-1, 1) rotate(-180) translate(-25, -475) translate(0, 450)"},At.default.createElement("g",{fillRule:"nonzero"},At.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"})),At.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"}),At.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"}),At.default.createElement("g",{transform:"translate(75.105, 196.182)"},At.default.createElement("ellipse",{fill:"#F5E6D3",cx:"87",cy:"55",rx:"35",ry:"29"}),At.default.createElement("ellipse",{fill:"#5D4037",cx:"87",cy:"57",rx:"20",ry:"20"}),At.default.createElement("ellipse",{fill:"#2D1F1F",cx:"87",cy:"57",rx:"12",ry:"12"}),At.default.createElement("ellipse",{fill:"#FFFFFF",cx:"80",cy:"51",rx:"5",ry:"5"}),At.default.createElement("ellipse",{fill:"#F5E6D3",cx:"259",cy:"55",rx:"35",ry:"29"}),At.default.createElement("ellipse",{fill:"#5D4037",cx:"259",cy:"57",rx:"20",ry:"20"}),At.default.createElement("ellipse",{fill:"#2D1F1F",cx:"259",cy:"57",rx:"12",ry:"12"}),At.default.createElement("ellipse",{fill:"#FFFFFF",cx:"252",cy:"51",rx:"5",ry:"5"})),At.default.createElement("g",{transform:"translate(75.105, 196.182)",fillRule:"nonzero"},At.default.createElement("g",{transform:"translate(267.395, 54.835) scale(-1, 1) translate(-267.395, -54.835)"},At.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"})),At.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"})),At.default.createElement("g",{transform:"translate(75.105, 196.182)",fillRule:"nonzero"},At.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"})),At.default.createElement("g",{transform:"translate(83.563, 252.212)",fill:"#FFFFFF",fillRule:"nonzero"},At.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"}),At.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 mr({size:e=200,instructions:t=[],tools:r=[],showDecorations:n=!1,className:a="",hat:o,hatAccessory:i,heldItem:l,theme:s,customColors:u}){return At.default.createElement("div",{className:`inline-flex flex-col items-center ${a}`},n&&t.length>0&&At.default.createElement("div",{className:"flex gap-1 mb-1"},t.map(c=>{let d=Ys[c];return d?At.default.createElement("span",{key:c,className:"text-sm",title:d.label},d.emoji):null})),At.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"},At.default.createElement("title",null,"ActiveAgent"),At.default.createElement(oH,null)),n&&r.length>0&&At.default.createElement("div",{className:"flex gap-1 mt-1"},r.map(c=>{let d=Gs[c];return d?At.default.createElement("span",{key:c,className:"text-sm",title:d.label},d.emoji):null})))}var Gn=te(ne());var go=te(ne()),z3=(0,go.createContext)();function L3({children:e}){let[t,r]=(0,go.useState)(()=>{let a=localStorage.getItem("dashboard-theme");return a?a==="dark":window.matchMedia("(prefers-color-scheme: dark)").matches});(0,go.useEffect)(()=>{localStorage.setItem("dashboard-theme",t?"dark":"light")},[t]),(0,go.useEffect)(()=>{let a=window.matchMedia("(prefers-color-scheme: dark)"),o=i=>{localStorage.getItem("dashboard-theme")||r(i.matches)};return a.addEventListener("change",o),()=>a.removeEventListener("change",o)},[]);let n=()=>r(!t);return go.default.createElement(z3.Provider,{value:{darkMode:t,toggleDarkMode:n}},e)}function kt(){let e=(0,go.useContext)(z3);if(!e)throw new Error("useTheme must be used within a ThemeProvider");return e}function ad({name:e,subtitle:t,badge:r,accentColor:n,stats:a=[],footer:o,onClick:i,actions:l}){let{darkMode:s}=kt(),[u,c]=Gn.default.useState(!1),d={cardBg:s?"rgba(255,255,255,0.05)":"#ffffff",border:s?"rgba(255,255,255,0.1)":"#e5e7eb",borderHover:s?"rgba(255,255,255,0.2)":"#d1d5db",tileBg:s?"rgba(255,255,255,0.05)":"#f9fafb",textPrimary:s?"#f9fafb":"#111827",textSecondary:s?"#9ca3af":"#6b7280",textMuted:s?"#6b7280":"#9ca3af"},f=p=>p==="good"?s?"#4ade80":"#16a34a":p==="warn"?s?"#facc15":"#ca8a04":p==="bad"?s?"#f87171":"#dc2626":p==="muted"?d.textMuted:d.textPrimary;return Gn.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:p=>{i&&(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),i(p))},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"}},Gn.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"8px"}},Gn.default.createElement("div",{style:{minWidth:0}},Gn.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&&Gn.default.createElement("div",{style:{fontSize:"13px",color:d.textSecondary,marginTop:"2px",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"}},t)),r&&Gn.default.createElement("div",{style:{flexShrink:0}},r)),a.length>0&&Gn.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:"6px"}},a.map(p=>Gn.default.createElement("div",{key:p.label,title:p.title,style:{background:d.tileBg,borderRadius:"8px",padding:"6px 8px",textAlign:"center"}},Gn.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,lineHeight:1.2,color:f(p.tone)}},p.value),Gn.default.createElement("div",{style:{fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.04em",color:d.textMuted,whiteSpace:"nowrap"}},p.label)))),o&&Gn.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"8px",fontSize:"12px",color:d.textMuted}},o),l&&Gn.default.createElement("div",{style:{opacity:u?1:0,transition:"opacity 0.15s ease"}},l))}function J2(e){return e==null?"muted":e>=.85?"good":e>=.7?"warn":"bad"}var iH=[{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 R2({agents:e,meta:t,onSelect:r,onNew:n,onBrowseTemplates:a,onDuplicate:o,onDelete:i,onRefresh:l,sort:s="recent",onSortChange:u,isLoading:c}){let[d,f]=(0,Be.useState)(""),[p,m]=(0,Be.useState)(""),[y,h]=(0,Be.useState)(""),v=e.filter(k=>{let A=!d||k.name.toLowerCase().includes(d.toLowerCase())||k.description?.toLowerCase().includes(d.toLowerCase()),M=!p||k.provider===p,W=!y||k.status===y;return A&&M&&W}),g=k=>{let A=new Date(k),W=new Date-A,L=Math.floor(W/(1e3*60*60*24));return L===0?"Today":L===1?"Yesterday":L<7?`${L} days ago`:A.toLocaleDateString()},b=k=>{switch(k){case"active":return"bg-green-100 text-green-700";case"draft":return"bg-yellow-100 text-yellow-700";case"archived":return"bg-gray-100 text-gray-500";default:return"bg-gray-100 text-gray-500"}},x=k=>k==null?"\u2014":k<1e3?`${Math.round(k)}ms`:`${(k/1e3).toFixed(1)}s`,S=k=>k==null?"\u2014":k>=1e6?`${(k/1e6).toFixed(1)}M`:k>=1e3?`${(k/1e3).toFixed(1)}k`:`${k}`,w=k=>k==null?"\u2014":k>0&&k<.01?"<$0.01":`$${k.toFixed(2)}`,O=k=>{if(!k)return"\u2014";let A=Math.floor((new Date-new Date(k))/(1e3*60*60*24));return A<=0?"Today":A<30?`${A}d ago`:new Date(k).toLocaleDateString()};return Be.default.createElement("div",{className:"space-y-6"},Be.default.createElement("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4"},Be.default.createElement("div",{className:"flex-1 flex items-center space-x-4"},Be.default.createElement("div",{className:"relative flex-1 max-w-md"},Be.default.createElement("input",{type:"text",placeholder:"Search agents...",value:d,onChange:k=>f(k.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"}),Be.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"},Be.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"}))),Be.default.createElement("select",{value:p,onChange:k=>m(k.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},Be.default.createElement("option",{value:""},"All Providers"),t.providers?.map(k=>Be.default.createElement("option",{key:k,value:k},k.charAt(0).toUpperCase()+k.slice(1)))),Be.default.createElement("select",{value:y,onChange:k=>h(k.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},Be.default.createElement("option",{value:""},"All Status"),Be.default.createElement("option",{value:"active"},"Active"),Be.default.createElement("option",{value:"draft"},"Draft"),Be.default.createElement("option",{value:"archived"},"Archived")),Be.default.createElement("select",{value:s,onChange:k=>u?.(k.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"},iH.map(k=>Be.default.createElement("option",{key:k.value,value:k.value},k.label)))),Be.default.createElement("div",{className:"flex items-center space-x-3"},Be.default.createElement("button",{onClick:l,disabled:c,className:"p-2 text-gray-500 hover:text-gray-700 hover:bg-gray-100 rounded-lg transition-colors"},Be.default.createElement("svg",{className:`h-5 w-5 ${c?"animate-spin":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Be.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"}))),Be.default.createElement("button",{onClick:a,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"},Be.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Be.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"})),Be.default.createElement("span",null,"Browse Templates")),Be.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"},Be.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Be.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})),Be.default.createElement("span",null,"New Agent")))),v.length>0?Be.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6"},v.map(k=>{let A=k.stats||{},M=A.run_sources||[],W=M.length?`Counted from ${M.map(L=>L==="platform"?"dashboard runs":"reported telemetry").join(" + ")}`:void 0;return Be.default.createElement(ad,{key:k.id,name:k.name,subtitle:k.description||"No description",badge:Be.default.createElement("span",{className:`px-2 py-0.5 text-xs font-medium rounded-full ${b(k.status)}`},k.status),onClick:()=>r(k),stats:[{label:`Runs ${A.window_days||30}d`,value:A.runs??0,title:W},{label:"Success",value:A.success_rate!=null?`${Math.round(A.success_rate)}%`:"\u2014",tone:J2(A.success_rate!=null?A.success_rate/100:null)},{label:"Avg time",value:x(A.avg_duration_ms)},{label:A.eval_samples_evaluated?`Eval ${A.eval_samples_passed}/${A.eval_samples_evaluated}`:"Eval",title:A.eval_samples_evaluated?`Latest evaluation: ${A.eval_samples_passed} of ${A.eval_samples_evaluated} samples passed`:void 0,value:A.eval_score!=null?`${Math.round(A.eval_score*100)}%`:"\u2014",tone:J2(A.eval_score)},{label:"Tokens",value:S(A.tokens)},{label:"Cost",value:w(A.cost),title:"Estimated from token counts at each model's published rates",tone:A.cost==null?"muted":void 0}],footer:Be.default.createElement(Be.default.Fragment,null,Be.default.createElement("span",{style:{display:"flex",alignItems:"center",gap:"6px",minWidth:0}},Be.default.createElement("span",{style:{padding:"2px 6px",borderRadius:"4px",background:"rgba(128,128,128,0.15)",whiteSpace:"nowrap",flexShrink:0}},k.provider),Be.default.createElement("span",{title:k.model,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},k.model)),Be.default.createElement("span",{style:{whiteSpace:"nowrap"},title:`Updated ${g(k.updatedAt||k.updated_at)}`},A.last_run_at?`Last run ${O(A.last_run_at)}`:`Updated ${g(k.updatedAt||k.updated_at)}`)),actions:Be.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",fontSize:"13px"}},Be.default.createElement("button",{onClick:L=>{L.stopPropagation(),o(k.id)},className:"text-gray-500 hover:text-red-600 transition-colors"},"Duplicate"),Be.default.createElement("button",{onClick:L=>{L.stopPropagation(),i(k.id)},className:"text-red-500 hover:text-red-700 transition-colors"},"Delete"))})})):Be.default.createElement("div",{className:"text-center py-16"},Be.default.createElement("div",{className:"inline-block mb-4"},Be.default.createElement(mr,{size:100})),Be.default.createElement("h3",{className:"text-lg font-medium text-gray-900 mb-2"},e.length===0?"No agents yet":"No matching agents"),Be.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&&Be.default.createElement("div",{className:"flex items-center justify-center space-x-4"},Be.default.createElement("button",{onClick:a,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"},Be.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Be.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"})),Be.default.createElement("span",null,"Browse Templates")),Be.default.createElement("span",{className:"text-gray-400"},"or"),Be.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"},Be.default.createElement("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Be.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})),Be.default.createElement("span",null,"Create From Scratch")))))}var ve=te(ne());var Ut={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 Fe={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 od={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"]};async function Ky(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 od[e]||[]}var qy=[{id:"basics",label:"Basics",icon:"1"},{id:"configure",label:"Configure",icon:"2"},{id:"review",label:"Review",icon:"3"}];function eA({meta:e,onSave:t,onCancel:r,isLoading:n,initialDraft:a=null}){let[o,i]=(0,ve.useState)(0),[l,s]=(0,ve.useState)(od),[u,c]=(0,ve.useState)({name:"",description:"",provider:"openai",model:od.openai[0],instructions:"",preset_type:"terminal",instruction_sets:["github"],tools:["terminal","code"],model_config:{temperature:.7},...a?{name:a.name,description:a.description||"",instructions:a.instructions,provider:a.provider,model:a.model,tools:a.tools||[],instruction_sets:[],mcp_servers:[]}:{}});(0,ve.useEffect)(()=>{let h=!1;return Ky(u.provider).then(v=>{if(h||v.length===0)return;let g=a?.provider===u.provider&&a.model?[...new Set([a.model,...v])]:v;s(b=>({...b,[u.provider]:g})),c(b=>g.includes(b.model)?b:{...b,model:g[0]})}),()=>{h=!0}},[u.provider]);let d=(h,v)=>{c(g=>({...g,[h]:v}))},f=(h,v)=>{c(g=>{let b=g[h]||[],x=b.includes(v)?b.filter(S=>S!==v):[...b,v];return{...g,[h]:x}})},p=h=>{if(d("preset_type",h),nd[h]){let v=nd[h];d("instruction_sets",[...v.instructions]),d("tools",[...v.tools])}},m=()=>{switch(o){case 0:return u.name.trim().length>=2;case 1:return!0;case 2:return!0;default:return!1}},y=()=>{t(u)};return ve.default.createElement("div",{className:"max-w-4xl mx-auto"},a&&ve.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."),ve.default.createElement("div",{className:"mb-8"},ve.default.createElement("div",{className:"flex items-center justify-between"},qy.map((h,v)=>ve.default.createElement("div",{key:h.id,className:"flex items-center"},ve.default.createElement("div",{className:`flex items-center justify-center w-10 h-10 rounded-full border-2 transition-colors ${vi(o-1),className:"px-6 py-2 border border-gray-300 rounded-lg text-gray-700 hover:bg-gray-50 transition-colors"},o===0?"Cancel":"Back"),ve.default.createElement("button",{onClick:o===qy.length-1?y:()=>i(o+1),disabled:!m()||n,className:`px-6 py-2 rounded-lg transition-colors ${m()&&!n?"bg-red-500 text-white hover:bg-red-600":"bg-gray-200 text-gray-400 cursor-not-allowed"}`},o===qy.length-1?"Create Agent":"Continue")))}function lH({formData:e,updateField:t,providerModels:r}){return ve.default.createElement("div",{className:"space-y-6"},ve.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Basic Information"),ve.default.createElement("p",{className:"text-gray-500"},"Give your agent a name and configure its AI provider."),ve.default.createElement("div",{className:"space-y-4"},ve.default.createElement("div",null,ve.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Agent Name *"),ve.default.createElement("input",{type:"text",value:e.name,onChange:n=>t("name",n.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"})),ve.default.createElement("div",null,ve.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Description"),ve.default.createElement("textarea",{value:e.description,onChange:n=>t("description",n.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"})),ve.default.createElement("div",{className:"grid grid-cols-2 gap-4"},ve.default.createElement("div",null,ve.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Provider"),ve.default.createElement("select",{value:e.provider,onChange:n=>{t("provider",n.target.value),t("model",r[n.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(n=>ve.default.createElement("option",{key:n,value:n},n.charAt(0).toUpperCase()+n.slice(1))))),ve.default.createElement("div",null,ve.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Model"),ve.default.createElement("select",{value:e.model,onChange:n=>t("model",n.target.value),className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},r[e.provider].map(n=>ve.default.createElement("option",{key:n,value:n},n))))),ve.default.createElement("div",null,ve.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-1"},"Temperature: ",e.model_config.temperature),ve.default.createElement("input",{type:"range",min:"0",max:"1",step:"0.1",value:e.model_config.temperature,onChange:n=>t("model_config",{...e.model_config,temperature:parseFloat(n.target.value)}),className:"w-full accent-red-500"}),ve.default.createElement("div",{className:"flex justify-between text-xs text-gray-400"},ve.default.createElement("span",null,"Precise"),ve.default.createElement("span",null,"Creative")))))}function sH({formData:e,meta:t,toggleArrayItem:r,updateField:n,selectPreset:a}){let o=Object.keys(nd),i=Object.keys(Ys),l=Object.keys(Gs);return ve.default.createElement("div",{className:"space-y-6"},ve.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Configure Agent"),ve.default.createElement("p",{className:"text-gray-500"},"Choose a preset or customize instructions and tools."),ve.default.createElement("div",{className:"flex justify-center py-6 bg-gradient-to-br from-gray-50 to-gray-100 rounded-xl"},ve.default.createElement("div",{className:"flex flex-col items-center"},ve.default.createElement("div",{className:"flex gap-2 mb-2"},e.instruction_sets.map(s=>{let u=Ys[s];return u?ve.default.createElement("span",{key:s,className:"text-lg",title:u.label},u.emoji):null})),ve.default.createElement(mr,{size:120}),ve.default.createElement("div",{className:"flex gap-2 mt-2"},e.tools.map(s=>{let u=Gs[s];return u?ve.default.createElement("span",{key:s,className:"text-lg",title:u.label},u.emoji):null})))),ve.default.createElement("div",null,ve.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},"Quick Presets"),ve.default.createElement("div",{className:"flex flex-wrap gap-2"},o.map(s=>ve.default.createElement("button",{key:s,onClick:()=>a(s),className:`px-4 py-2 rounded-lg border-2 text-sm transition-all ${e.preset_type===s?"border-red-500 bg-red-50 text-red-700":"border-gray-200 hover:border-gray-300 text-gray-600"}`},ve.default.createElement("span",{className:"capitalize"},s.replace(/([A-Z])/g," $1").trim()))))),ve.default.createElement("div",null,ve.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},ve.default.createElement("strong",null,"Instructions"),ve.default.createElement("span",{className:"text-gray-400 font-normal ml-2"},"System/developer messages")),ve.default.createElement("div",{className:"flex flex-wrap gap-2"},i.map(s=>{let u=Ys[s];return ve.default.createElement("button",{key:s,onClick:()=>r("instruction_sets",s),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-full text-sm transition-colors ${e.instruction_sets.includes(s)?"bg-red-500 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`},ve.default.createElement("span",null,u.emoji),ve.default.createElement("span",null,u.label))}))),ve.default.createElement("div",null,ve.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-3"},ve.default.createElement("strong",null,"Tools"),ve.default.createElement("span",{className:"text-gray-400 font-normal ml-2"},"MCPs and integrations")),ve.default.createElement("div",{className:"flex flex-wrap gap-2"},l.map(s=>{let u=Gs[s];return ve.default.createElement("button",{key:s,onClick:()=>r("tools",s),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-full text-sm transition-colors ${e.tools.includes(s)?"bg-red-500 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`},ve.default.createElement("span",null,u.emoji),ve.default.createElement("span",null,u.label))}))),ve.default.createElement("div",null,ve.default.createElement("label",{className:"block text-sm font-medium text-gray-700 mb-2"},"System Instructions"),ve.default.createElement("textarea",{value:e.instructions,onChange:s=>n("instructions",s.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 uH({formData:e}){return ve.default.createElement("div",{className:"space-y-6"},ve.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Review Your Agent"),ve.default.createElement("p",{className:"text-gray-500"},"Confirm the configuration before creating your agent."),ve.default.createElement("div",{className:"grid grid-cols-2 gap-8"},ve.default.createElement("div",{className:"flex flex-col items-center py-6 bg-gradient-to-br from-gray-50 to-gray-100 rounded-xl"},ve.default.createElement("div",{className:"flex gap-2 mb-2"},e.instruction_sets.map(t=>{let r=Ys[t];return r?ve.default.createElement("span",{key:t,className:"text-lg",title:r.label},r.emoji):null})),ve.default.createElement(mr,{size:100}),ve.default.createElement("div",{className:"flex gap-2 mt-2"},e.tools.map(t=>{let r=Gs[t];return r?ve.default.createElement("span",{key:t,className:"text-lg",title:r.label},r.emoji):null})),ve.default.createElement("h3",{className:"mt-4 text-lg font-semibold text-gray-900"},e.name),ve.default.createElement("p",{className:"text-sm text-gray-500"},e.description||"No description")),ve.default.createElement("div",{className:"space-y-4"},ve.default.createElement("div",null,ve.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Provider / Model"),ve.default.createElement("p",{className:"text-gray-900"},e.provider," / ",e.model)),ve.default.createElement("div",null,ve.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Temperature"),ve.default.createElement("p",{className:"text-gray-900"},e.model_config.temperature)),ve.default.createElement("div",null,ve.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Instructions"),ve.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},e.instruction_sets.length>0?e.instruction_sets.map(t=>{let r=Ys[t];return r?ve.default.createElement("span",{key:t,className:"px-2 py-0.5 bg-gray-100 rounded text-xs"},r.emoji," ",r.label):null}):ve.default.createElement("span",{className:"text-gray-400 text-sm"},"None selected"))),ve.default.createElement("div",null,ve.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"Tools"),ve.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},e.tools.length>0?e.tools.map(t=>{let r=Gs[t];return r?ve.default.createElement("span",{key:t,className:"px-2 py-0.5 bg-red-100 text-red-700 rounded text-xs"},r.emoji," ",r.label):null}):ve.default.createElement("span",{className:"text-gray-400 text-sm"},"None selected"))))),e.instructions&&ve.default.createElement("div",null,ve.default.createElement("span",{className:"text-sm font-medium text-gray-500"},"System Instructions"),ve.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)))}var ie=te(ne());var Fa=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"}),vn="#ef4444";var U=te(ne());var Yy=te(ne()),W3=te(ne());function B3(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t{var r=e.children,n=e.width,a=e.height,o=e.viewBox,i=e.className,l=e.style,s=e.title,u=e.desc,c=mH(e,pH),d=o||{width:n,height:a,x:0,y:0},f=Ue("recharts-surface",i);return Yy.createElement("svg",nA({},rr(c),{className:f,width:n,height:a,style:l,viewBox:"".concat(d.x," ").concat(d.y," ").concat(d.width," ").concat(d.height),ref:t}),Yy.createElement("title",null,s),Yy.createElement("desc",null,u),r)});var Gy=te(ne());var gH=["children","className"];function aA(){return aA=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=e.children,n=e.className,a=yH(e,gH),o=Ue("recharts-layer",n);return Gy.createElement("g",aA({className:o},rr(a),{ref:t}),r)});var Sa=te(ne()),w0=te(ne()),WD=te(rp());function Xy(e){return e==="__proto__"}var xH=/\.|(\[(?:[^[\]]*|(["'])(?:(?!\2)[^\\]|\\.)*?\2)\])/;function Zy(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e===""||e.startsWith(".")||e.endsWith(".")?!1:xH.test(e);default:return!1}}function id(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function oA(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(oA).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function ld(e){if(Array.isArray(e))return e.map(id);if(typeof e=="symbol")return[e];e=oA(e);let t=[],r=e.length;if(r===0)return t;let n=0,a="",o="",i=!1;for(e.charCodeAt(0)===46&&t.push("");n1&&arguments[1]!==void 0?arguments[1]:wH,r=10**t,n=Math.round(e*r)/r;return Object.is(n,-0)?0:n}function qr(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n{var l=r[i-1];return typeof l=="string"?a+l+o:l!==void 0?a+Wa(l)+o:a+o},"")}var Ft=e=>e===0?0:e>0?1:-1,nn=e=>typeof e=="number"&&e!=+e,Ni=e=>typeof e=="string"&&e.length>1&&e.indexOf("%")===e.length-1,be=e=>(typeof e=="number"||e instanceof Number)&&!nn(e),Mn=e=>be(e)||typeof e=="string",SH=0,Ci=e=>{var t=++SH;return"".concat(e||"").concat(t)},vr=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!be(t)&&typeof t!="string")return n;var o;if(Ni(t)){if(r==null)return n;var i=t.indexOf("%");o=r*parseFloat(t.slice(0,i))/100}else o=+t;return nn(o)&&(o=n),a&&r!=null&&o>r&&(o=r),o},iA=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,r={},n=0;nn&&(typeof t=="function"?t(n):rn(n,t))===r)}var ct=e=>e===null||typeof e>"u",Ei=e=>ct(e)?e:"".concat(e.charAt(0).toUpperCase()).concat(e.slice(1));function Yr(e){return e!=null}function Pn(){}function rm(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 H3(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function $o(e){for(var t=1;t{var t=e.viewBox,r=e.position,n=e.offset,a=n===void 0?0:n,o=e.parentViewBox,i=e.clamp,l=rm(t),s=l.x,u=l.y,c=l.height,d=l.upperWidth,f=l.lowerWidth,p=s,m=s+(d-f)/2,y=(p+m)/2,h=(d+f)/2,v=p+d/2,g=c>=0?1:-1,b=g*a,x=g>0?"end":"start",S=g>0?"start":"end",w=d>=0?1:-1,O=w*a,k=w>0?"end":"start",A=w>0?"start":"end",M=o;if(r==="top"){var W={x:p+d/2,y:u-b,horizontalAnchor:"middle",verticalAnchor:x};return i&&M&&(W.height=Math.max(u-M.y,0),W.width=d),W}if(r==="bottom"){var L={x:m+f/2,y:u+c+b,horizontalAnchor:"middle",verticalAnchor:S};return i&&M&&(L.height=Math.max(M.y+M.height-(u+c),0),L.width=f),L}if(r==="left"){var H={x:y-O,y:u+c/2,horizontalAnchor:k,verticalAnchor:"middle"};return i&&M&&(H.width=Math.max(H.x-M.x,0),H.height=c),H}if(r==="right"){var D={x:y+h+O,y:u+c/2,horizontalAnchor:A,verticalAnchor:"middle"};return i&&M&&(D.width=Math.max(M.x+M.width-D.x,0),D.height=c),D}var Y=i&&M?{width:h,height:c}:{};return r==="insideLeft"?$o({x:y+O,y:u+c/2,horizontalAnchor:A,verticalAnchor:"middle"},Y):r==="insideRight"?$o({x:y+h-O,y:u+c/2,horizontalAnchor:k,verticalAnchor:"middle"},Y):r==="insideTop"?$o({x:p+d/2,y:u+b,horizontalAnchor:"middle",verticalAnchor:S},Y):r==="insideBottom"?$o({x:m+f/2,y:u+c-b,horizontalAnchor:"middle",verticalAnchor:x},Y):r==="insideTopLeft"?$o({x:p+O,y:u+b,horizontalAnchor:A,verticalAnchor:S},Y):r==="insideTopRight"?$o({x:p+d-O,y:u+b,horizontalAnchor:k,verticalAnchor:S},Y):r==="insideBottomLeft"?$o({x:m+O,y:u+c-b,horizontalAnchor:A,verticalAnchor:x},Y):r==="insideBottomRight"?$o({x:m+f-O,y:u+c-b,horizontalAnchor:k,verticalAnchor:x},Y):r&&typeof r=="object"&&(be(r.x)||Ni(r.x))&&(be(r.y)||Ni(r.y))?$o({x:s+vr(r.x,h),y:u+vr(r.y,c),horizontalAnchor:"end",verticalAnchor:"end"},Y):$o({x:v,y:u+c/2,horizontalAnchor:"middle",verticalAnchor:"middle"},Y)},CH=["top","left","right","bottom"];function nm(e){return e==null?!1:typeof e=="object"?!0:CH.includes(e)}var Ry=te(ne()),lA=(0,Ry.createContext)(null),V3=()=>(0,Ry.useContext)(lA);var Dn=te(ne());var uM=te(ne());function Mt(e){return function(){return e}}var sA=Math.cos;var am=Math.sin,an=Math.sqrt;var Xs=Math.PI,_de=Xs/2,sd=2*Xs;var uA=Math.PI,cA=2*uA,Zs=1e-6,EH=cA-Zs;function K3(e){this._+=e[0];for(let t=1,r=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return K3;let r=10**t;return function(n){this._+=n[0];for(let a=1,o=n.length;aZs)if(!(Math.abs(d*s-u*c)>Zs)||!o)this._append`L${this._x1=t},${this._y1=r}`;else{let p=n-i,m=a-l,y=s*s+u*u,h=p*p+m*m,v=Math.sqrt(y),g=Math.sqrt(f),b=o*Math.tan((uA-Math.acos((y+f-h)/(2*v*g)))/2),x=b/g,S=b/v;Math.abs(x-1)>Zs&&this._append`L${t+x*c},${r+x*d}`,this._append`A${o},${o},0,0,${+(d*p>c*m)},${this._x1=t+S*s},${this._y1=r+S*u}`}}arc(t,r,n,a,o,i){if(t=+t,r=+r,n=+n,i=!!i,n<0)throw new Error(`negative radius: ${n}`);let l=n*Math.cos(a),s=n*Math.sin(a),u=t+l,c=r+s,d=1^i,f=i?a-o:o-a;this._x1===null?this._append`M${u},${c}`:(Math.abs(this._x1-u)>Zs||Math.abs(this._y1-c)>Zs)&&this._append`L${u},${c}`,n&&(f<0&&(f=f%cA+cA),f>EH?this._append`A${n},${n},0,1,${d},${t-l},${r-s}A${n},${n},0,1,${d},${this._x1=u},${this._y1=c}`:f>Zs&&this._append`A${n},${n},0,${+(f>=uA)},${d},${this._x1=t+n*Math.cos(o)},${this._y1=r+n*Math.sin(o)}`)}rect(t,r,n,a){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+a}h${-n}Z`}toString(){return this._}};function q3(){return new Qs}q3.prototype=Qs.prototype;function ud(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 Qs(t)}var zde=Array.prototype.slice;function cd(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Y3(e){this._context=e}Y3.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 zl(e){return new Y3(e)}function eh(e){return e[0]}function th(e){return e[1]}function om(e,t){var r=Mt(!0),n=null,a=zl,o=null,i=ud(l);e=typeof e=="function"?e:e===void 0?eh:Mt(e),t=typeof t=="function"?t:t===void 0?th:Mt(t);function l(s){var u,c=(s=cd(s)).length,d,f=!1,p;for(n==null&&(o=a(p=i())),u=0;u<=c;++u)!(u=p;--m)l.point(b[m],x[m]);l.lineEnd(),l.areaEnd()}v&&(b[f]=+e(h,f,d),x[f]=+t(h,f,d),l.point(n?+n(h,f,d):b[f],r?+r(h,f,d):x[f]))}if(g)return l=null,g+""||null}function c(){return om().defined(a).curve(i).context(o)}return u.x=function(d){return arguments.length?(e=typeof d=="function"?d:Mt(+d),n=null,u):e},u.x0=function(d){return arguments.length?(e=typeof d=="function"?d:Mt(+d),u):e},u.x1=function(d){return arguments.length?(n=d==null?null:typeof d=="function"?d:Mt(+d),u):n},u.y=function(d){return arguments.length?(t=typeof d=="function"?d:Mt(+d),r=null,u):t},u.y0=function(d){return arguments.length?(t=typeof d=="function"?d:Mt(+d),u):t},u.y1=function(d){return arguments.length?(r=d==null?null:typeof d=="function"?d:Mt(+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?(a=typeof d=="function"?d:Mt(!!d),u):a},u.curve=function(d){return arguments.length?(i=d,o!=null&&(l=i(o)),u):i},u.context=function(d){return arguments.length?(d==null?o=l=null:l=i(o=d),u):o},u}var rh=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 dA(e){return new rh(e,!0)}function fA(e){return new rh(e,!1)}var fd={draw(e,t){let r=an(t/Xs);e.moveTo(r,0),e.arc(0,0,r,0,sd)}};var pA={draw(e,t){let r=an(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 G3=an(1/3),OH=G3*2,mA={draw(e,t){let r=an(t/OH),n=r*G3;e.moveTo(0,-r),e.lineTo(n,0),e.lineTo(0,r),e.lineTo(-n,0),e.closePath()}};var vA={draw(e,t){let r=an(t),n=-r/2;e.rect(n,n,r,r)}};var TH=.8908130915292852,X3=am(Xs/10)/am(7*Xs/10),MH=am(sd/10)*X3,PH=-sA(sd/10)*X3,gA={draw(e,t){let r=an(t*TH),n=MH*r,a=PH*r;e.moveTo(0,-r),e.lineTo(n,a);for(let o=1;o<5;++o){let i=sd*o/5,l=sA(i),s=am(i);e.lineTo(s*r,-l*r),e.lineTo(l*n-s*a,s*n+l*a)}e.closePath()}};var yA=an(3),hA={draw(e,t){let r=-an(t/(yA*3));e.moveTo(0,r*2),e.lineTo(-yA*r,-r),e.lineTo(yA*r,-r),e.closePath()}};var Ha=-.5,Va=an(3)/2,xA=1/an(12),DH=(xA/2+1)*3,bA={draw(e,t){let r=an(t/DH),n=r/2,a=r*xA,o=n,i=r*xA+r,l=-o,s=i;e.moveTo(n,a),e.lineTo(o,i),e.lineTo(l,s),e.lineTo(Ha*n-Va*a,Va*n+Ha*a),e.lineTo(Ha*o-Va*i,Va*o+Ha*i),e.lineTo(Ha*l-Va*s,Va*l+Ha*s),e.lineTo(Ha*n+Va*a,Ha*a-Va*n),e.lineTo(Ha*o+Va*i,Ha*i-Va*o),e.lineTo(Ha*l+Va*s,Ha*s-Va*l),e.closePath()}};function nh(e,t){let r=null,n=ud(a);e=typeof e=="function"?e:Mt(e||fd),t=typeof t=="function"?t:Mt(t===void 0?64:+t);function a(){let o;if(r||(r=o=n()),e.apply(this,arguments).draw(r,+t.apply(this,arguments)),o)return r=null,o+""||null}return a.type=function(o){return arguments.length?(e=typeof o=="function"?o:Mt(o),a):e},a.size=function(o){return arguments.length?(t=typeof o=="function"?o:Mt(+o),a):t},a.context=function(o){return arguments.length?(r=o??null,a):r},a}function pd(){}function md(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 Z3(e){this._context=e}Z3.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:md(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:md(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function wA(e){return new Z3(e)}function Q3(e){this._context=e}Q3.prototype={areaStart:pd,areaEnd:pd,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:md(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function SA(e){return new Q3(e)}function J3(e){this._context=e}J3.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:md(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function AA(e){return new J3(e)}function R3(e){this._context=e}R3.prototype={areaStart:pd,areaEnd:pd,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 kA(e){return new R3(e)}function eM(e){return e<0?-1:1}function tM(e,t,r){var n=e._x1-e._x0,a=t-e._x1,o=(e._y1-e._y0)/(n||a<0&&-0),i=(r-e._y1)/(a||n<0&&-0),l=(o*a+i*n)/(n+a);return(eM(o)+eM(i))*Math.min(Math.abs(o),Math.abs(i),.5*Math.abs(l))||0}function rM(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function NA(e,t,r){var n=e._x0,a=e._y0,o=e._x1,i=e._y1,l=(o-n)/3;e._context.bezierCurveTo(n+l,a+l*t,o-l,i-l*r,o,i)}function ah(e){this._context=e}ah.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:NA(this,this._t0,rM(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,NA(this,rM(this,r=tM(this,e,t)),r);break;default:NA(this,this._t0,r=tM(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function nM(e){this._context=new aM(e)}(nM.prototype=Object.create(ah.prototype)).point=function(e,t){ah.prototype.point.call(this,t,e)};function aM(e){this._context=e}aM.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,a,o){this._context.bezierCurveTo(t,e,n,r,o,a)}};function CA(e){return new ah(e)}function EA(e){return new nM(e)}function iM(e){this._context=e}iM.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=oM(e),a=oM(t),o=0,i=1;i=0;--t)a[t]=(i[t]-a[t+1])/o[t];for(o[r-1]=(e[r]+a[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 OA(e){return new oh(e,.5)}function TA(e){return new oh(e,0)}function MA(e){return new oh(e,1)}function ya(e,t){if((i=e.length)>1)for(var r=1,n,a,o=e[t[0]],i,l=o.length;r=0;)r[t]=t;return r}function IH(e,t){return e[t]}function jH(e){let t=[];return t.key=e,t}function PA(){var e=Mt([]),t=vd,r=ya,n=IH;function a(o){var i=Array.from(e.apply(this,arguments),jH),l,s=i.length,u=-1,c;for(let d of o)for(l=0,++u;l0){for(var r,n,a=0,o=e[0].length,i;a0){for(var r=0,n=e[t[0]],a,o=n.length;r0)||!((o=(a=e[t[0]]).length)>0))){for(var r=0,n=1,a,o,i;n{var t="symbol".concat(Ei(e));return cM[t]||fd},KH=(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*HH;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}},qH=(e,t)=>{cM["symbol".concat(Ei(e))]=t},LA=e=>{var t=e.type,r=t===void 0?"circle":t,n=e.size,a=n===void 0?64:n,o=e.sizeType,i=o===void 0?"area":o,l=FH(e,LH),s=sM(sM({},l),{},{type:r,size:a,sizeType:i}),u="circle";typeof r=="string"&&(u=r);var c=()=>{var y=VH(u),h=nh().type(y).size(KH(a,i,u)),v=h();if(v!==null)return v},d=s.className,f=s.cx,p=s.cy,m=rr(s);return be(f)&&be(p)&&be(a)?uM.createElement("path",zA({},m,{className:Ue("recharts-symbols",d),transform:"translate(".concat(f,", ").concat(p,")"),d:c()})):null};LA.registerSymbol=qH;var dM=te(ne());var ih=e=>"radius"in e&&"startAngle"in e&&"endAngle"in e,gd=(e,t)=>{if(!e||typeof e=="function"||typeof e=="boolean")return null;var r=e;if((0,dM.isValidElement)(e)&&(r=e.props),typeof r!="object"&&typeof r!="function")return null;var n={};return Object.keys(r).forEach(a=>{em(a)&&typeof r[a]=="function"&&(n[a]=t||(o=>r[a](r,o)))}),n},YH=(e,t,r)=>n=>(e(t,r,n),null),_i=(e,t,r)=>{if(e===null||typeof e!="object"&&typeof e!="function")return null;var n=null;return Object.keys(e).forEach(a=>{var o=e[a];em(a)&&typeof o=="function"&&(n||(n={}),n[a]=YH(o,t,r))}),n};function fM(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function GH(e){for(var t=1;t(i[l]===void 0&&n[l]!==void 0&&(i[l]=n[l]),i),r);return o}function lh(){return lh=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var p,m,y=d.formatter||a,h=Ue({"recharts-legend-item":!0,["legend-item-".concat(f)]:!0,inactive:d.inactive});if(d.type==="none")return null;var v=typeof l=="object"?mM({},l):{};v.color=d.inactive?o:v.color||d.color,(p=v.whiteSpace)!==null&&p!==void 0||(v.whiteSpace="normal"),(m=v.overflowWrap)!==null&&m!==void 0||(v.overflowWrap="break-word");var g=y?y(d.value,d,f):d.value;return Dn.createElement("li",lh({className:h,style:u,key:"legend-item-".concat(f)},_i(e,d,f)),Dn.createElement(tm,{width:r,height:r,viewBox:s,style:c,"aria-label":d.value==null?"legend icon":"".concat(d.value," legend icon")},Dn.createElement(nV,{data:d,iconType:i,inactiveColor:o})),Dn.createElement("span",{className:"recharts-legend-item-text",style:v},g))})}var vM=e=>{var t=lt(e,tV),r=t.payload,n=t.layout,a=t.align;if(!r||!r.length)return null;var o={padding:0,margin:0,textAlign:n==="horizontal"?a:"left"};return Dn.createElement("ul",{className:"recharts-default-legend",style:o},Dn.createElement(aV,lh({},t,{payload:r})))};function gM(e,t){let r=new Map;for(let n=0;nObject.prototype.propertyIsEnumerable.call(e,t))}function Oi(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}var uh="[object RegExp]",yd="[object String]",hd="[object Number]",xd="[object Boolean]",ch="[object Arguments]",dh="[object Symbol]",fh="[object Date]",ph="[object Map]",mh="[object Set]",vh="[object Array]",bM="[object Function]",gh="[object ArrayBuffer]",bd="[object Object]",wM="[object Error]",yh="[object DataView]",hh="[object Uint8Array]",xh="[object Uint8ClampedArray]",bh="[object Uint16Array]",wh="[object Uint32Array]",SM="[object BigUint64Array]",Sh="[object Int8Array]",Ah="[object Int16Array]",kh="[object Int32Array]",AM="[object BigInt64Array]",Nh="[object Float32Array]",Ch="[object Float64Array]";var BA=typeof globalThis=="object"&&globalThis||typeof window=="object"&&window||typeof self=="object"&&self||typeof global=="object"&&global||(function(){return this})();function sm(e){return typeof BA.Buffer<"u"&&BA.Buffer.isBuffer(e)}function kM(e,t){return Ll(e,void 0,e,new Map,t)}function Ll(e,t,r,n=new Map,a=void 0){let o=a?.(e,t,r,n);if(o!==void 0)return o;if(im(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 l=0;l{}):$A(e,t,function n(a,o,i,l,s,u){let c=r(a,o,i,l,s,u);return c!==void 0?!!c:$A(a,o,n,u,!1)},new Map,!0)}function $A(e,t,r,n,a=!1){if(t===e)return!0;switch(typeof t){case"object":return iV(e,t,r,n);case"function":return Object.keys(t).length>0?$A(e,{...t},r,n,a):Bl(e,t);default:return Eh(e)?a?typeof t=="string"?t==="":!0:Bl(e,t):Bl(e,t)}}function iV(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return CM(e,t,r,n);if(t instanceof Map)return lV(e,t,r,n);if(t instanceof Set)return sV(e,t,r,n);let a=Object.keys(t);if(e==null||im(e))return a.length===0;if(a.length===0)return!0;if(n?.has(t))return n.get(t)===e;n?.set(t,e);try{for(let o=0;o{})}function EM(e){return e=NM(e),t=>_h(t,e)}function _M(e,t){return kM(e,(r,n,a,o)=>{let i=t?.(r,n,a,o);if(i!==void 0)return i;if(typeof e=="object"){if(Oi(e)==="[object Object]"&&typeof e.constructor!="function"){let l={};return o.set(e,l),qa(l,e,a,o),l}switch(Object.prototype.toString.call(e)){case hd:case yd:case xd:{let l=new e.constructor(e?.valueOf());return qa(l,e),l}case ch:{let l={};return qa(l,e),l.length=e.length,l[Symbol.iterator]=e[Symbol.iterator],l}default:return}}})}function OM(e){return _M(e)}var uV=/^(?:0|[1-9]\d*)$/;function Oh(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e=0}function Th(e){return e!=null&&typeof e!="function"&&IM(e.length)}function jM(e){return typeof e=="object"&&e!==null}function zM(e){return jM(e)&&Th(e)}function Mh(e,t=sh){return zM(e)?gM(Array.from(e),yM(DM(t),1)):[]}function Ph(e,t,r){return t===!0?Mh(e,r):typeof t=="function"?Mh(e,t):e}var qM=te(VM()),cm=te(ne());var KM=te(ne()),um=(0,KM.createContext)(null);var EV=e=>e,Ve=()=>{var e=(0,cm.useContext)(um);return e?e.store.dispatch:EV},Ih=()=>{},_V=()=>Ih,OV=(e,t)=>e===t;function we(e){var t=(0,cm.useContext)(um),r=(0,cm.useMemo)(()=>t?n=>{if(n!=null)return e(n)}:Ih,[t,e]);return(0,qM.useSyncExternalStoreWithSelector)(t?t.subscription.addNestedSub:_V,t?t.store.getState:Ih,t?t.store.getState:Ih,r,OV)}function TV(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function MV(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 YM=e=>Array.isArray(e)?e:[e];function PV(e){let t=Array.isArray(e[0])?e[0]:e;return MV(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function DV(e,t){let r=[],{length:n}=e;for(let a=0;atypeof WeakRef>"u"?IV:WeakRef,XM=jV(),zV=0,GM=1;function jh(){return{s:zV,v:void 0,o:null,p:null}}function LV(e){return e instanceof XM?e.deref():e}function ZM(e,t={}){let r=jh(),{resultEqualityCheck:n}=t,a,o=0;function i(){let l=r,{length:s}=arguments;for(let d=0,f=s;d{r=jh(),i.resetResultsCount()},i.resultsCount=()=>o,i.resetResultsCount=()=>{o=0},i}function BV(e,...t){let r=typeof e=="function"?{memoize:e,memoizeOptions:t}:e,n=(...a)=>{let o=0,i=0,l,s={},u=a.pop();typeof u=="object"&&(s=u,u=a.pop()),TV(u,`createSelector expects an output function after the inputs, but received: [${typeof u}]`);let c={...r,...s},{memoize:d,memoizeOptions:f=[],argsMemoize:p=ZM,argsMemoizeOptions:m=[]}=c,y=YM(f),h=YM(m),v=PV(a),g=d(function(){return o++,u.apply(null,arguments)},...y),b=!0,x=p(function(){i++;let w=DV(v,arguments);return l=g.apply(null,w),l},...h);return Object.assign(x,{resultFunc:u,memoizedResultFunc:g,dependencies:v,dependencyRecomputations:()=>i,resetDependencyRecomputations:()=>{i=0},lastResult:()=>l,recomputations:()=>o,resetRecomputations:()=>{o=0},memoize:d,argsMemoize:p})};return Object.assign(n,{withTypes:()=>n}),n}var J=BV(ZM);function QM(e,t=1){let r=[],n=Math.floor(t),a=(o,i)=>{for(let l=0;l{if(e!==t){let n=JM(e),a=JM(t);if(n===a&&n===0){if(et)return r==="desc"?-1:1}return r==="desc"?a-n:n-a}return 0};function zh(e){return typeof e=="symbol"||e instanceof Symbol}var $V=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,UV=/^\w*$/;function eP(e,t){return Array.isArray(e)?!1:typeof e=="number"||typeof e=="boolean"||e==null||zh(e)?!0:typeof e=="string"&&(UV.test(e)||!$V.test(e))||t!=null&&Object.hasOwn(t,e)}function tP(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(l=>String(l));let a=(l,s)=>{let u=l;for(let c=0;cs==null||l==null?s:typeof l=="object"&&"key"in l?Object.hasOwn(s,l.key)?s[l.key]:a(s,l.path):typeof l=="function"?l(s):Array.isArray(l)?a(s,l):typeof s=="object"?s[l]:s,i=t.map(l=>(Array.isArray(l)&&l.length===1&&(l=l[0]),l==null||typeof l=="function"||Array.isArray(l)||eP(l)?l:{key:l,path:ld(l)}));return e.map(l=>({original:l,criteria:i.map(s=>o(s,l))})).slice().sort((l,s)=>{for(let u=0;ul.original)}function Ti(e,...t){let r=t.length;return r>1&&dm(e,t[0],t[1])?t=[]:r>2&&dm(t[0],t[1],t[2])&&(t=[t[0]]),tP(e,QM(t),["asc"])}var WA=e=>e.legend.settings,rP=e=>e.legend.size,FV=e=>e.legend.payload,nP=J([FV,WA],(e,t)=>{var r=t.itemSorter,n=e.flat(1);return r?Ti(n,r):n});function aP(){return we(nP)}var Mi=te(ne());function WV(e,t){return qV(e)||KV(e,t)||VV(e,t)||HV()}function HV(){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 VV(e,t){if(e){if(typeof e=="string")return oP(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)?oP(e,t):void 0}}function oP(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rLh||Math.abs(e.left-t.left)>Lh||Math.abs(e.top-t.top)>Lh||Math.abs(e.width-t.width)>Lh}function lP(e){var t=e.getBoundingClientRect();return{height:t.height,left:t.left,top:t.top,width:t.width}}function Bh(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=(0,Mi.useState)({height:0,left:0,top:0,width:0}),r=WV(t,2),n=r[0],a=r[1],o=(0,Mi.useRef)(null),i=(0,Mi.useRef)(n);i.current=n;var l=(0,Mi.useCallback)(s=>{if(o.current!=null&&(o.current.disconnect(),o.current=null),s!=null){var u=lP(s);if(iP(u,i.current)&&a(u),typeof ResizeObserver<"u"){var c=new ResizeObserver(()=>{var d=lP(s);iP(d,i.current)&&a(d)});c.observe(s),o.current=c}}},[...e]);return(0,Mi.useEffect)(()=>()=>{var s;(s=o.current)===null||s===void 0||s.disconnect()},[]),[n,l]}var AD=te(ne());function gn(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 YV=typeof Symbol=="function"&&Symbol.observable||"@@observable",sP=YV,HA=()=>Math.random().toString(36).substring(7).split("").join("."),GV={INIT:`@@redux/INIT${HA()}`,REPLACE:`@@redux/REPLACE${HA()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${HA()}`},$h=GV;function Uh(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 VA(e,t,r){if(typeof e!="function")throw new Error(gn(2));if(typeof t=="function"&&typeof r=="function"||typeof r=="function"&&typeof arguments[3]=="function")throw new Error(gn(0));if(typeof t=="function"&&typeof r>"u"&&(r=t,t=void 0),typeof r<"u"){if(typeof r!="function")throw new Error(gn(1));return r(VA)(e,t)}let n=e,a=t,o=new Map,i=o,l=0,s=!1;function u(){i===o&&(i=new Map,o.forEach((h,v)=>{i.set(v,h)}))}function c(){if(s)throw new Error(gn(3));return a}function d(h){if(typeof h!="function")throw new Error(gn(4));if(s)throw new Error(gn(5));let v=!0;u();let g=l++;return i.set(g,h),function(){if(v){if(s)throw new Error(gn(6));v=!1,u(),i.delete(g),o=null}}}function f(h){if(!Uh(h))throw new Error(gn(7));if(typeof h.type>"u")throw new Error(gn(8));if(typeof h.type!="string")throw new Error(gn(17));if(s)throw new Error(gn(9));try{s=!0,a=n(a,h)}finally{s=!1}return(o=i).forEach(g=>{g()}),h}function p(h){if(typeof h!="function")throw new Error(gn(10));n=h,f({type:$h.REPLACE})}function m(){let h=d;return{subscribe(v){if(typeof v!="object"||v===null)throw new Error(gn(11));function g(){let x=v;x.next&&x.next(c())}return g(),{unsubscribe:h(g)}},[sP](){return this}}}return f({type:$h.INIT}),{dispatch:f,subscribe:d,getState:c,replaceReducer:p,[sP]:m}}function XV(e){Object.keys(e).forEach(t=>{let r=e[t];if(typeof r(void 0,{type:$h.INIT})>"u")throw new Error(gn(12));if(typeof r(void 0,{type:$h.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(gn(13))})}function Fh(e){let t=Object.keys(e),r={};for(let i=0;i"u"){let h=s&&s.type;throw new Error(gn(14))}c[f]=y,u=u||y!==m}return u=u||n.length!==Object.keys(l).length,u?c:l}}function fm(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function uP(...e){return t=>(r,n)=>{let a=t(r,n),o=()=>{throw new Error(gn(15))},i={getState:a.getState,dispatch:(s,...u)=>o(s,...u)},l=e.map(s=>s(i));return o=fm(...l)(a.dispatch),{...a,dispatch:o}}}function KA(e){return Uh(e)&&"type"in e&&typeof e.type=="string"}var hP=Symbol.for("immer-nothing"),cP=Symbol.for("immer-draftable"),bn=Symbol.for("immer-state");function yo(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var ha=Object,Ad=ha.getPrototypeOf,Kh="constructor",Qh="prototype",XA="configurable",qh="enumerable",Hh="writable",pm="value",Uo=e=>!!e&&!!e[bn];function xa(e){return e?xP(e)||Rh(e)||!!e[cP]||!!e[Kh]?.[cP]||e0(e)||t0(e):!1}var ZV=ha[Qh][Kh].toString(),dP=new WeakMap;function xP(e){if(!e||!nk(e))return!1;let t=Ad(e);if(t===null||t===ha[Qh])return!0;let r=ha.hasOwnProperty.call(t,Kh)&&t[Kh];if(r===Object)return!0;if(!Sd(r))return!1;let n=dP.get(r);return n===void 0&&(n=Function.toString.call(r),dP.set(r,n)),n===ZV}function Jh(e,t,r=!0){gm(e)===0?(r?Reflect.ownKeys(e):ha.keys(e)).forEach(a=>{t(a,e[a],e)}):e.forEach((n,a)=>t(a,n,e))}function gm(e){let t=e[bn];return t?t.type_:Rh(e)?1:e0(e)?2:t0(e)?3:0}var qA=(e,t,r=gm(e))=>r===2?e.has(t):ha[Qh].hasOwnProperty.call(e,t),ZA=(e,t,r=gm(e))=>r===2?e.get(t):e[t],Yh=(e,t,r,n=gm(e))=>{n===2?e.set(t,r):n===3?e.add(r):e[t]=r};function QV(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var Rh=Array.isArray,e0=e=>e instanceof Map,t0=e=>e instanceof Set,nk=e=>typeof e=="object",Sd=e=>typeof e=="function",YA=e=>typeof e=="boolean";function JV(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var Pi=e=>e.copy_||e.base_;var ak=e=>e.modified_?e.copy_:e.base_;function QA(e,t){if(e0(e))return new Map(e);if(t0(e))return new Set(e);if(Rh(e))return Array[Qh].slice.call(e);let r=xP(e);if(t===!0||t==="class_only"&&!r){let n=ha.getOwnPropertyDescriptors(e);delete n[bn];let a=Reflect.ownKeys(n);for(let o=0;o1&&ha.defineProperties(e,{set:Wh,add:Wh,clear:Wh,delete:Wh}),ha.freeze(e),t&&Jh(e,(r,n)=>{ok(n,!0)},!1)),e}function RV(){yo(2)}var Wh={[pm]:RV};function r0(e){return e===null||!nk(e)?!0:ha.isFrozen(e)}var Gh="MapSet",JA="Patches",fP="ArrayMethods",bP={};function Js(e){let t=bP[e];return t||yo(0,e),t}var pP=e=>!!bP[e];var mm,wP=()=>mm,eK=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:pP(Gh)?Js(Gh):void 0,arrayMethodsPlugin_:pP(fP)?Js(fP):void 0});function mP(e,t){t&&(e.patchPlugin_=Js(JA),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function RA(e){ek(e),e.drafts_.forEach(tK),e.drafts_=null}function ek(e){e===mm&&(mm=e.parent_)}var vP=e=>mm=eK(mm,e);function tK(e){let t=e[bn];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function gP(e,t){t.unfinalizedDrafts_=t.drafts_.length;let r=t.drafts_[0];if(e!==void 0&&e!==r){r[bn].modified_&&(RA(t),yo(4)),xa(e)&&(e=yP(t,e));let{patchPlugin_:a}=t;a&&a.generateReplacementPatches_(r[bn].base_,e,t)}else e=yP(t,r);return rK(t,e,!0),RA(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==hP?e:void 0}function yP(e,t){if(r0(t))return t;let r=t[bn];if(!r)return Xh(t,e.handledSet_,e);if(!n0(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);kP(r,e)}return r.copy_}function rK(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&ok(t,r)}function SP(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var n0=(e,t)=>e.scope_===t,nK=[];function AP(e,t,r,n){let a=Pi(e),o=e.type_;if(n!==void 0&&ZA(a,n,o)===t){Yh(a,n,r,o);return}if(!e.draftLocations_){let l=e.draftLocations_=new Map;Jh(a,(s,u)=>{if(Uo(u)){let c=l.get(u)||[];c.push(s),l.set(u,c)}})}let i=e.draftLocations_.get(t)??nK;for(let l of i)Yh(a,l,r,o)}function aK(e,t,r){e.callbacks_.push(function(a){let o=t;if(!o||!n0(o,a))return;a.mapSetPlugin_?.fixSetContents(o);let i=ak(o);AP(e,o.draft_??o,i,r),kP(o,a)})}function kP(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 a=n.getPath(e);a&&n.generatePatches_(e,a,t)}SP(e)}}function oK(e,t,r){let{scope_:n}=e;if(Uo(r)){let a=r[bn];n0(a,n)&&a.callbacks_.push(function(){Vh(e);let i=ak(a);AP(e,r,i,t)})}else xa(r)&&e.callbacks_.push(function(){let o=Pi(e);e.type_===3?o.has(r)&&Xh(r,n.handledSet_,n):ZA(o,t,e.type_)===r&&n.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&Xh(ZA(e.copy_,t,e.type_),n.handledSet_,n)})}function Xh(e,t,r){return!r.immer_.autoFreeze_&&r.unfinalizedDrafts_<1||Uo(e)||t.has(e)||!xa(e)||r0(e)||(t.add(e),Jh(e,(n,a)=>{if(Uo(a)){let o=a[bn];if(n0(o,r)){let i=ak(o);Yh(e,n,i,e.type_),SP(o)}}else xa(a)&&Xh(a,t,r)})),e}function iK(e,t){let r=Rh(e),n={type_:r?1:0,scope_:t?t.scope_:wP(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},a=n,o=Zh;r&&(a=[n],o=vm);let{revoke:i,proxy:l}=Proxy.revocable(a,o);return n.draft_=l,n.revoke_=i,[l,n]}var Zh={get(e,t){if(t===bn)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 a=Pi(e);if(!qA(a,t,e.type_))return sK(e,a,t);let o=a[t];if(e.finalized_||!xa(o)||n&&e.operationMethod&&r?.isMutatingArrayMethod(e.operationMethod)&&JV(t))return o;if(o===GA(e.base_,t)||lK(e,t,o)){Vh(e);let i=e.type_===1?+t:t,l=rk(e.scope_,o,e,i);return e.copy_[i]=l}return o},has(e,t){return t in Pi(e)},ownKeys(e){return Reflect.ownKeys(Pi(e))},set(e,t,r){let n=NP(Pi(e),t);if(n?.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){let a=GA(Pi(e),t),o=a?.[bn];if(o&&o.base_===r)return e.copy_[t]=r,e.assigned_.set(t,!1),!0;if(QV(r,a)&&(r!==void 0||qA(e.base_,t,e.type_)))return!0;Vh(e),tk(e)}return e.copy_[t]===r&&(r!==void 0||qA(e.copy_,t,e.type_))||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_.set(t,!0),oK(e,t,r)),!0},deleteProperty(e,t){return Vh(e),GA(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),tk(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let r=Pi(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{[Hh]:!0,[XA]:e.type_!==1||t!=="length",[qh]:n[qh],[pm]:r[t]}},defineProperty(){yo(11)},getPrototypeOf(e){return Ad(e.base_)},setPrototypeOf(){yo(12)}},vm={};for(let e in Zh){let t=Zh[e];vm[e]=function(){let r=arguments;return r[0]=r[0][0],t.apply(this,r)}}vm.deleteProperty=function(e,t){return vm.set.call(this,e,t,void 0)};vm.set=function(e,t,r){return Zh.set.call(this,e[0],t,r,e[0])};function GA(e,t){let r=e[bn];return(r?Pi(r):e)[t]}function lK(e,t,r){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!xa(r)||r[bn]?!1:e.baseRefs_.has(r)}function sK(e,t,r){let n=NP(t,r);return n?pm in n?n[pm]:n.get?.call(e.draft_):void 0}function NP(e,t){if(!(t in e))return;let r=Ad(e);for(;r;){let n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Ad(r)}}function tk(e){e.modified_||(e.modified_=!0,e.parent_&&tk(e.parent_))}function Vh(e){e.copy_||(e.assigned_=new Map,e.copy_=QA(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var uK=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(t,r,n)=>{if(Sd(t)&&!Sd(r)){let o=r;r=t;let i=this;return function(s=o,...u){return i.produce(s,c=>r.call(this,c,...u))}}Sd(r)||yo(6),n!==void 0&&!Sd(n)&&yo(7);let a;if(xa(t)){let o=vP(this),i=rk(o,t,void 0),l=!0;try{a=r(i),l=!1}finally{l?RA(o):ek(o)}return mP(o,n),gP(a,o)}else if(!t||!nk(t)){if(a=r(t),a===void 0&&(a=t),a===hP&&(a=void 0),this.autoFreeze_&&ok(a,!0),n){let o=[],i=[];Js(JA).generateReplacementPatches_(t,a,{patches_:o,inversePatches_:i}),n(o,i)}return a}else yo(1,t)},this.produceWithPatches=(t,r)=>{if(Sd(t))return(i,...l)=>this.produceWithPatches(i,s=>t(s,...l));let n,a;return[this.produce(t,r,(i,l)=>{n=i,a=l}),n,a]},YA(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),YA(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),YA(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){xa(e)||yo(8),Uo(e)&&(e=yn(e));let t=vP(this),r=rk(t,e,void 0);return r[bn].isManual_=!0,ek(t),r}finishDraft(e,t){let r=e&&e[bn];(!r||!r.isManual_)&&yo(9);let{scope_:n}=r;return mP(n,t),gP(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 a=t[r];if(a.path.length===0&&a.op==="replace"){e=a.value;break}}r>-1&&(t=t.slice(r+1));let n=Js(JA).applyPatches_;return Uo(e)?n(e,t):this.produce(e,a=>n(a,t))}};function rk(e,t,r,n){let[a,o]=e0(t)?Js(Gh).proxyMap_(t,r):t0(t)?Js(Gh).proxySet_(t,r):iK(t,r);return(r?.scope_??wP()).drafts_.push(a),o.callbacks_=r?.callbacks_??[],o.key_=n,r&&n!==void 0?aK(r,o,n):o.callbacks_.push(function(s){s.mapSetPlugin_?.fixSetContents(o);let{patchPlugin_:u}=s;o.modified_&&u&&u.generatePatches_(o,[],s)}),a}function yn(e){return Uo(e)||yo(10,e),CP(e)}function CP(e){if(!xa(e)||r0(e))return e;let t=e[bn],r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=QA(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=QA(e,!0);return Jh(r,(a,o)=>{Yh(r,a,CP(o))},n),t&&(t.finalized_=!1),r}var cK=new uK,ik=cK.produce;var tt=e=>e;function EP(e){return({dispatch:r,getState:n})=>a=>o=>typeof o=="function"?o(r,n,e):a(o)}var _P=EP(),OP=EP;var dK=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?fm:fm.apply(null,arguments)},Wve=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION__?window.__REDUX_DEVTOOLS_EXTENSION__:function(){return function(e){return e}},fK=e=>e&&typeof e.match=="function";function Fr(e,t){function r(...n){if(t){let a=t(...n);if(!a)throw new Error(ba(0));return{type:e,payload:a.payload,..."meta"in a&&{meta:a.meta},..."error"in a&&{error:a.error}}}return{type:e,payload:n[0]}}return r.toString=()=>`${e}`,r.type=e,r.match=n=>KA(n)&&n.type===e,r}var LP=class ym extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,ym.prototype)}static get[Symbol.species](){return ym}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new ym(...t[0].concat(this)):new ym(...t.concat(this))}};function TP(e){return xa(e)?ik(e,()=>{}):e}function a0(e,t,r){return e.has(t)?e.get(t):e.set(t,r(t)).get(t)}function pK(e){return typeof e=="boolean"}var mK=()=>function(t){let{thunk:r=!0,immutableCheck:n=!0,serializableCheck:a=!0,actionCreatorCheck:o=!0}=t??{},i=new LP;return r&&(pK(r)?i.push(_P):i.push(OP(r.extraArgument))),i},BP="RTK_autoBatch",Pt=()=>e=>({payload:e,meta:{[BP]:!0}}),MP=e=>t=>{setTimeout(t,e)},vK=(e,t)=>r=>{let n=!1,a=()=>{n||(n=!0,cancelAnimationFrame(o),clearTimeout(i),r())},o=e(a),i=setTimeout(a,t)},ck=(e={type:"raf"})=>t=>(...r)=>{let n=t(...r),a=!0,o=!1,i=!1,l=new Set,s=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?vK(window.requestAnimationFrame,100):MP(10):e.type==="callback"?e.queueNotification:MP(e.timeout),u=()=>{i=!1,o&&(o=!1,l.forEach(c=>c()))};return Object.assign({},n,{subscribe(c){let d=()=>a&&c(),f=n.subscribe(d);return l.add(c),()=>{f(),l.delete(c)}},dispatch(c){try{return a=!c?.meta?.[BP],o=!a,o&&(i||(i=!0,s(u))),n.dispatch(c)}finally{a=!0}}})},gK=e=>function(r){let{autoBatch:n=!0}=r??{},a=new LP(e);return n&&a.push(ck(typeof n=="object"?n:void 0)),a};function $P(e){let t=mK(),{reducer:r=void 0,middleware:n,devTools:a=!0,duplicateMiddlewareCheck:o=!0,preloadedState:i=void 0,enhancers:l=void 0}=e||{},s;if(typeof r=="function")s=r;else if(Uh(r))s=Fh(r);else throw new Error(ba(1));let u;typeof n=="function"?u=n(t):u=t();let c=fm;a&&(c=dK({trace:!1,...typeof a=="object"&&a}));let d=uP(...u),f=gK(d),p=typeof l=="function"?l(f):f(),m=c(...p);return VA(s,i,m)}function UP(e){let t={},r=[],n,a={addCase(o,i){let l=typeof o=="string"?o:o.type;if(!l)throw new Error(ba(28));if(l in t)throw new Error(ba(29));return t[l]=i,a},addAsyncThunk(o,i){return i.pending&&(t[o.pending.type]=i.pending),i.rejected&&(t[o.rejected.type]=i.rejected),i.fulfilled&&(t[o.fulfilled.type]=i.fulfilled),i.settled&&r.push({matcher:o.settled,reducer:i.settled}),a},addMatcher(o,i){return r.push({matcher:o,reducer:i}),a},addDefaultCase(o){return n=o,a}};return e(a),[t,r,n]}function yK(e){return typeof e=="function"}function hK(e,t){let[r,n,a]=UP(t),o;if(yK(e))o=()=>TP(e());else{let l=TP(e);o=()=>l}function i(l=o(),s){let u=[r[s.type],...n.filter(({matcher:c})=>c(s)).map(({reducer:c})=>c)];return u.filter(c=>!!c).length===0&&(u=[a]),u.reduce((c,d)=>{if(d)if(Uo(c)){let p=d(c,s);return p===void 0?c:p}else{if(xa(c))return ik(c,f=>d(f,s));{let f=d(c,s);if(f===void 0){if(c===null)return c;throw Error("A case reducer on a non-draftable value must not return undefined")}return f}}return c},l)}return i.getInitialState=o,i}var xK=(e,t)=>fK(e)?e.match(t):e(t);function bK(...e){return t=>e.some(r=>xK(r,t))}var wK="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",FP=(e=21)=>{let t="",r=e;for(;r--;)t+=wK[Math.random()*64|0];return t},SK=["name","message","stack","code"],lk=class{constructor(e,t){this.payload=e,this.meta=t}payload;meta;_type},PP=class{constructor(e,t){this.payload=e,this.meta=t}payload;meta;_type},AK=e=>{if(typeof e=="object"&&e!==null){let t={};for(let r of SK)typeof e[r]=="string"&&(t[r]=e[r]);return t}return{message:String(e)}},DP="External signal was aborted",kK=(()=>{function e(t,r,n){let a=Fr(t+"/fulfilled",(s,u,c,d)=>({payload:s,meta:{...d||{},arg:c,requestId:u,requestStatus:"fulfilled"}})),o=Fr(t+"/pending",(s,u,c)=>({payload:void 0,meta:{...c||{},arg:u,requestId:s,requestStatus:"pending"}})),i=Fr(t+"/rejected",(s,u,c,d,f)=>({payload:d,error:(n&&n.serializeError||AK)(s||"Rejected"),meta:{...f||{},arg:c,requestId:u,rejectedWithValue:!!d,requestStatus:"rejected",aborted:s?.name==="AbortError",condition:s?.name==="ConditionError"}}));function l(s,{signal:u}={}){return(c,d,f)=>{let p=n?.idGenerator?n.idGenerator(s):FP(),m=new AbortController,y,h;function v(b){h=b,m.abort()}u&&(u.aborted?v(DP):u.addEventListener("abort",()=>v(DP),{once:!0}));let g=(async function(){let b;try{let S=n?.condition?.(s,{getState:d,extra:f});if(CK(S)&&(S=await S),S===!1||m.signal.aborted)throw{name:"ConditionError",message:"Aborted due to condition callback returning false."};let w=new Promise((O,k)=>{y=()=>{k({name:"AbortError",message:h||"Aborted"})},m.signal.addEventListener("abort",y,{once:!0})});c(o(p,s,n?.getPendingMeta?.({requestId:p,arg:s},{getState:d,extra:f}))),b=await Promise.race([w,Promise.resolve(r(s,{dispatch:c,getState:d,extra:f,requestId:p,signal:m.signal,abort:v,rejectWithValue:((O,k)=>new lk(O,k)),fulfillWithValue:((O,k)=>new PP(O,k))})).then(O=>{if(O instanceof lk)throw O;return O instanceof PP?a(O.payload,p,s,O.meta):a(O,p,s)})])}catch(S){b=S instanceof lk?i(null,p,s,S.payload,S.meta):i(S,p,s)}finally{y&&m.signal.removeEventListener("abort",y)}return n&&!n.dispatchConditionRejection&&i.match(b)&&b.meta.condition||c(b),b})();return Object.assign(g,{abort:v,requestId:p,arg:s,unwrap(){return g.then(NK)}})}}return Object.assign(l,{pending:o,rejected:i,fulfilled:a,settled:bK(i,a),typePrefix:t})}return e.withTypes=()=>e,e})();function NK(e){if(e.meta&&e.meta.rejectedWithValue)throw e.payload;if(e.error)throw e.error;return e.payload}function CK(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}var WP=Symbol.for("rtk-slice-createasyncthunk"),Vve={[WP]:kK};function EK(e,t){return`${e}/${t}`}function _K({creators:e}={}){let t=e?.asyncThunk?.[WP];return function(n){let{name:a,reducerPath:o=a}=n;if(!a)throw new Error(ba(11));typeof process<"u";let i=(typeof n.reducers=="function"?n.reducers(TK()):n.reducers)||{},l=Object.keys(i),s={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},u={addCase(b,x){let S=typeof b=="string"?b:b.type;if(!S)throw new Error(ba(12));if(S in s.sliceCaseReducersByType)throw new Error(ba(13));return s.sliceCaseReducersByType[S]=x,u},addMatcher(b,x){return s.sliceMatchers.push({matcher:b,reducer:x}),u},exposeAction(b,x){return s.actionCreators[b]=x,u},exposeCaseReducer(b,x){return s.sliceCaseReducersByName[b]=x,u}};l.forEach(b=>{let x=i[b],S={reducerName:b,type:EK(a,b),createNotation:typeof n.reducers=="function"};PK(x)?IK(S,x,u,t):MK(S,x,u)});function c(){let[b={},x=[],S=void 0]=typeof n.extraReducers=="function"?UP(n.extraReducers):[n.extraReducers],w={...b,...s.sliceCaseReducersByType};return hK(n.initialState,O=>{for(let k in w)O.addCase(k,w[k]);for(let k of s.sliceMatchers)O.addMatcher(k.matcher,k.reducer);for(let k of x)O.addMatcher(k.matcher,k.reducer);S&&O.addDefaultCase(S)})}let d=b=>b,f=new Map,p=new WeakMap,m;function y(b,x){return m||(m=c()),m(b,x)}function h(){return m||(m=c()),m.getInitialState()}function v(b,x=!1){function S(O){let k=O[b];return typeof k>"u"&&x&&(k=a0(p,S,h)),k}function w(O=d){let k=a0(f,x,()=>new WeakMap);return a0(k,O,()=>{let A={};for(let[M,W]of Object.entries(n.selectors??{}))A[M]=OK(W,O,()=>a0(p,O,h),x);return A})}return{reducerPath:b,getSelectors:w,get selectors(){return w(S)},selectSlice:S}}let g={name:a,reducer:y,actions:s.actionCreators,caseReducers:s.sliceCaseReducersByName,getInitialState:h,...v(o),injectInto(b,{reducerPath:x,...S}={}){let w=x??o;return b.inject({reducerPath:w,reducer:y},S),{...g,...v(w,!0)}}};return g}}function OK(e,t,r,n){function a(o,...i){let l=t(o);return typeof l>"u"&&n&&(l=r()),e(l,...i)}return a.unwrapped=e,a}var Ct=_K();function TK(){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 MK({type:e,reducerName:t,createNotation:r},n,a){let o,i;if("reducer"in n){if(r&&!DK(n))throw new Error(ba(17));o=n.reducer,i=n.prepare}else o=n;a.addCase(e,o).exposeCaseReducer(t,o).exposeAction(t,i?Fr(e,i):Fr(e))}function PK(e){return e._reducerDefinitionType==="asyncThunk"}function DK(e){return e._reducerDefinitionType==="reducerWithPrepare"}function IK({type:e,reducerName:t},r,n,a){if(!a)throw new Error(ba(18));let{payloadCreator:o,fulfilled:i,pending:l,rejected:s,settled:u,options:c}=r,d=a(e,o,c);n.exposeAction(t,d),i&&n.addCase(d.fulfilled,i),l&&n.addCase(d.pending,l),s&&n.addCase(d.rejected,s),u&&n.addMatcher(d.settled,u),n.exposeCaseReducer(t,{fulfilled:i||o0,pending:l||o0,rejected:s||o0,settled:u||o0})}function o0(){}var jK="task",HP="listener",VP="completed",dk="cancelled",zK=`task-${dk}`,LK=`task-${VP}`,sk=`${HP}-${dk}`,BK=`${HP}-${VP}`,s0=class{constructor(e){this.code=e,this.message=`${jK} ${dk} (reason: ${e})`}code;name="TaskAbortError";message},fk=(e,t)=>{if(typeof e!="function")throw new TypeError(ba(32))},i0=()=>{},KP=(e,t=i0)=>(e.catch(t),e),qP=(e,t)=>(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)),Rs=e=>{if(e.aborted)throw new s0(e.reason)};function YP(e,t){let r=i0;return new Promise((n,a)=>{let o=()=>a(new s0(e.reason));if(e.aborted){o();return}r=qP(e,o),t.finally(()=>r()).then(n,a)}).finally(()=>{r=i0})}var $K=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(r){return{status:r instanceof s0?"cancelled":"rejected",error:r}}finally{t?.()}},l0=e=>t=>KP(YP(e,t).then(r=>(Rs(e),r))),GP=e=>{let t=l0(e);return r=>t(new Promise(n=>setTimeout(n,r)))},{assign:kd}=Object,IP={},u0="listenerMiddleware",UK=(e,t)=>{let r=n=>qP(e,()=>n.abort(e.reason));return(n,a)=>{fk(n,"taskExecutor");let o=new AbortController;r(o);let i=$K(async()=>{Rs(e),Rs(o.signal);let l=await n({pause:l0(o.signal),delay:GP(o.signal),signal:o.signal});return Rs(o.signal),l},()=>o.abort(LK));return a?.autoJoin&&t.push(i.catch(i0)),{result:l0(e)(i),cancel(){o.abort(zK)}}}},FK=(e,t)=>{let r=async(n,a)=>{Rs(t);let o=()=>{},l=[new Promise((s,u)=>{let c=e({predicate:n,effect:(d,f)=>{f.unsubscribe(),s([d,f.getState(),f.getOriginalState()])}});o=()=>{c(),u()}})];a!=null&&l.push(new Promise(s=>setTimeout(s,a,null)));try{let s=await YP(t,Promise.race(l));return Rs(t),s}finally{o()}};return((n,a)=>KP(r(n,a)))},XP=e=>{let{type:t,actionCreator:r,matcher:n,predicate:a,effect:o}=e;if(t)a=Fr(t).match;else if(r)t=r.type,a=r.match;else if(n)a=n;else if(!a)throw new Error(ba(21));return fk(o,"options.listener"),{predicate:a,type:t,effect:o}},ZP=kd(e=>{let{type:t,predicate:r,effect:n}=XP(e);return{id:FP(),effect:n,type:t,predicate:r,pending:new Set,unsubscribe:()=>{throw new Error(ba(22))}}},{withTypes:()=>ZP}),jP=(e,t)=>{let{type:r,effect:n,predicate:a}=XP(t);return Array.from(e.values()).find(o=>(typeof r=="string"?o.type===r:o.predicate===a)&&o.effect===n)},uk=e=>{e.pending.forEach(t=>{t.abort(sk)})},WK=(e,t)=>()=>{for(let r of t.keys())uk(r);e.clear()},zP=(e,t,r)=>{try{e(t,r)}catch(n){setTimeout(()=>{throw n},0)}},QP=kd(Fr(`${u0}/add`),{withTypes:()=>QP}),HK=Fr(`${u0}/removeAll`),JP=kd(Fr(`${u0}/remove`),{withTypes:()=>JP}),VK=(...e)=>{console.error(`${u0}/error`,...e)},Di=(e={})=>{let t=new Map,r=new Map,n=p=>{let m=r.get(p)??0;r.set(p,m+1)},a=p=>{let m=r.get(p)??1;m===1?r.delete(p):r.set(p,m-1)},{extra:o,onError:i=VK}=e;fk(i,"onError");let l=p=>(p.unsubscribe=()=>t.delete(p.id),t.set(p.id,p),m=>{p.unsubscribe(),m?.cancelActive&&uk(p)}),s=(p=>{let m=jP(t,p)??ZP(p);return l(m)});kd(s,{withTypes:()=>s});let u=p=>{let m=jP(t,p);return m&&(m.unsubscribe(),p.cancelActive&&uk(m)),!!m};kd(u,{withTypes:()=>u});let c=async(p,m,y,h)=>{let v=new AbortController,g=FK(s,v.signal),b=[];try{p.pending.add(v),n(p),await Promise.resolve(p.effect(m,kd({},y,{getOriginalState:h,condition:(x,S)=>g(x,S).then(Boolean),take:g,delay:GP(v.signal),pause:l0(v.signal),extra:o,signal:v.signal,fork:UK(v.signal,b),unsubscribe:p.unsubscribe,subscribe:()=>{t.set(p.id,p)},cancelActiveListeners:()=>{p.pending.forEach((x,S,w)=>{x!==v&&(x.abort(sk),w.delete(x))})},cancel:()=>{v.abort(sk),p.pending.delete(v)},throwIfCancelled:()=>{Rs(v.signal)}})))}catch(x){x instanceof s0||zP(i,x,{raisedBy:"effect"})}finally{await Promise.all(b),v.abort(BK),a(p),p.pending.delete(v)}},d=WK(t,r);return{middleware:p=>m=>y=>{if(!KA(y))return m(y);if(QP.match(y))return s(y.payload);if(HK.match(y)){d();return}if(JP.match(y))return u(y.payload);let h=p.getState(),v=()=>{if(h===IP)throw new Error(ba(23));return h},g;try{if(g=m(y),t.size>0){let b=p.getState(),x=Array.from(t.values());for(let S of x){let w=!1;try{w=S.predicate(y,b,h)}catch(O){w=!1,zP(i,O,{raisedBy:"predicate"})}w&&c(S,y,p,v)}}}finally{h=IP}return g},startListening:s,stopListening:u,clearListeners:d}};function ba(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 KK={layoutType:"horizontal",width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},RP=Ct({name:"chartLayout",initialState:KK,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,a,o;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=(a=t.payload.bottom)!==null&&a!==void 0?a:0,e.margin.left=(o=t.payload.left)!==null&&o!==void 0?o:0},setScale(e,t){e.scale=t.payload}}}),c0=RP.actions,pk=c0.setMargin,eD=c0.setLayout,tD=c0.setChartSize,rD=c0.setScale;var nD=RP.reducer;function d0(e,t,r){return Array.isArray(e)&&e&&t+r!==0?e.slice(t,r+1):e}function He(e){return Number.isFinite(e)}function Xn(e){return typeof e=="number"&&e>0&&Number.isFinite(e)}function aD(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Zn(e){for(var t=1;t{if(t&&r){var n=r.width,a=r.height,o=t.align,i=t.verticalAlign,l=t.layout,s=t.position,u=t.offset,c=u===void 0?0:u;if(s!=null){if(nm(s)){if(s==="top"&&be(e.top))return Zn(Zn({},e),{},{top:e.top+(a||0)+c});if(s==="bottom"&&be(e.bottom))return Zn(Zn({},e),{},{bottom:e.bottom+(a||0)+c});if(s==="left"&&be(e.left))return Zn(Zn({},e),{},{left:e.left+(n||0)+c});if(s==="right"&&be(e.right))return Zn(Zn({},e),{},{right:e.right+(n||0)+c})}return e}if((l==="vertical"||l==="horizontal"&&i==="middle")&&o!=="center"&&be(e[o]))return Zn(Zn({},e),{},{[o]:e[o]+(n||0)});if((l==="horizontal"||l==="vertical"&&o==="center")&&i!=="middle"&&be(e[i]))return Zn(Zn({},e),{},{[i]:e[i]+(a||0)})}return e},wn=(e,t)=>e==="horizontal"&&t==="xAxis"||e==="vertical"&&t==="yAxis"||e==="centric"&&t==="angleAxis"||e==="radial"&&t==="radiusAxis",mk=(e,t,r,n)=>{if(n)return e.map(l=>l.coordinate);var a,o,i=e.map(l=>(l.coordinate===t&&(a=!0),l.coordinate===r&&(o=!0),l.coordinate));return a||i.push(t),o||i.push(r),i},vk=(e,t,r)=>{if(!e)return null;var n=e.duplicateDomain,a=e.type,o=e.range,i=e.scale,l=e.realScaleType,s=e.isCategorical,u=e.categoricalDomain,c=e.tickCount,d=e.ticks,f=e.niceTicks,p=e.axisType;if(!i)return null;var m=l==="scaleBand"&&i.bandwidth?i.bandwidth()/2:2,y=(t||r)&&a==="category"&&i.bandwidth?i.bandwidth()/m:0;if(y=p==="angleAxis"&&o&&o.length>=2?Ft(o[0]-o[1])*2*y:y,t&&(d||f)){var h=(d||f||[]).map((v,g)=>{var b=n?n.indexOf(v):v,x=i.map(b);return He(x)?{coordinate:x+y,value:v,offset:y,index:g}:null}).filter(Yr);return h}return s&&u?u.map((v,g)=>{var b=i.map(v);return He(b)?{coordinate:b+y,value:v,index:g,offset:y}:null}).filter(Yr):i.ticks&&!r&&c!=null?i.ticks(c).map((v,g)=>{var b=i.map(v);return He(b)?{coordinate:b+y,value:v,index:g,offset:y}:null}).filter(Yr):i.domain().map((v,g)=>{var b=i.map(v);return He(b)?{coordinate:b+y,value:n?n[v]:v,index:g,offset:y}:null}).filter(Yr)},iD=(e,t)=>{if(!t||t.length!==2||!be(t[0])||!be(t[1]))return e;var r=Math.min(t[0],t[1]),n=Math.max(t[0],t[1]),a=[e[0],e[1]];return(!be(e[0])||e[0]n)&&(a[1]=n),a[0]>n&&(a[0]=n),a[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 a=0;a=0?(u[0]=o,o+=f,u[1]=o):(u[0]=i,i+=f,u[1]=i)}}}},ZK=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 a=0;a=0?(s[0]=o,o+=u,s[1]=o):(s[0]=0,s[1]=0)}}}},QK={sign:XK,expand:DA,none:ya,silhouette:IA,wiggle:jA,positive:ZK},lD=(e,t,r)=>{var n,a=(n=QK[r])!==null&&n!==void 0?n:ya,o=PA().keys(t).value((l,s)=>Number(Qe(l,s,0))).order(vd).offset(a),i=o(e);return i.forEach((l,s)=>{l.forEach((u,c)=>{var d=Qe(e[c],t[s],0);Array.isArray(d)&&d.length===2&&be(d[0])&&be(d[1])&&(u[0]=d[0],u[1]=d[1])})}),i};function f0(e){return e==null?void 0:String(e)}function Nd(e){var t=e.axis,r=e.ticks,n=e.bandSize,a=e.entry,o=e.index,i=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!ct(a[t.dataKey])){var l=Qy(r,"value",a[t.dataKey]);if(l)return l.coordinate+n/2}return r!=null&&r[o]?r[o].coordinate+n/2:null}var s=Qe(a,ct(i)?t.dataKey:i),u=t.scale.map(s);return be(u)?u:null}var gk=e=>{var t=e.axis,r=e.ticks,n=e.offset,a=e.bandSize,o=e.entry,i=e.index;if(t.type==="category")return r[i]?r[i].coordinate+n:null;var l=Qe(o,t.dataKey,t.scale.domain()[i]);if(ct(l))return null;var s=t.scale.map(l);return be(s)?s-a/2+n:null},sD=e=>{var t=e.numericAxis,r=t.scale.domain();if(t.type==="number"){var n=Math.min(r[0],r[1]),a=Math.max(r[0],r[1]);return n<=0&&a>=0?0:a<0?a:n}return r[0]},JK=e=>{var t=e.flat(2).filter(be);return[Math.min(...t),Math.max(...t)]},RK=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],uD=(e,t,r)=>{if(!(e==null||Object.keys(e).length===0))return RK(Object.keys(e).reduce((n,a)=>{var o=e[a];if(!o)return n;var i=o.stackedData,l=i.reduce((s,u)=>{var c=d0(u,t,r),d=JK(c);return!He(d[0])||!He(d[1])?s:[Math.min(s[0],d[0]),Math.max(s[1],d[1])]},[1/0,-1/0]);return[Math.min(l[0],n[0]),Math.max(l[1],n[1])]},[1/0,-1/0]))},yk=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,hk=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Ya=(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 a=Ti(t,y=>y.coordinate),o=[],i=0,l=1,s=a.length;lf&&(p=Math.min(m,p));return p===1/0?0:p}return r?void 0:0};function xk(e){var t=e.tooltipEntrySettings,r=e.dataKey,n=e.payload,a=e.value,o=e.name;return Zn(Zn({},t),{},{dataKey:r,payload:n,value:a,name:o})}function wa(e,t){if(e!=null)return String(e);if(typeof t=="string")return t}var cD=(e,t)=>{if(t==="horizontal")return e.relativeX;if(t==="vertical")return e.relativeY},dD=(e,t)=>t==="centric"?e.angle:e.radius;var on=e=>e.layout.width,ln=e=>e.layout.height,fD=e=>e.layout.scale,Cd=e=>e.layout.margin;var Ed=J(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),_d=J(e=>e.cartesianAxis.yAxis,e=>Object.values(e));var p0="data-recharts-item-index",m0="data-recharts-item-id",eu=60,hm=30;function pD(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function v0(e){for(var t=1;te.brush.height;function aq(e){var t=_d(e);return t.reduce((r,n)=>{if(n.orientation==="left"&&!n.mirror&&!n.hide){var a=typeof n.width=="number"?n.width:eu;return r+a}return r},0)}function oq(e){var t=_d(e);return t.reduce((r,n)=>{if(n.orientation==="right"&&!n.mirror&&!n.hide){var a=typeof n.width=="number"?n.width:eu;return r+a}return r},0)}function iq(e){var t=Ed(e);return t.reduce((r,n)=>{if(n.orientation==="top"&&!n.mirror&&!n.hide){var a=typeof n.height=="number"?n.height:hm;return r+a}return r},0)}function lq(e){var t=Ed(e);return t.reduce((r,n)=>{if(n.orientation==="bottom"&&!n.mirror&&!n.hide){var a=typeof n.height=="number"?n.height:hm;return r+a}return r},0)}var jt=J([on,ln,Cd,nq,aq,oq,iq,lq,WA,rP],(e,t,r,n,a,o,i,l,s,u)=>{var c={left:(r.left||0)+a,right:(r.right||0)+o},d={top:(r.top||0)+i,bottom:(r.bottom||0)+l},f=v0(v0({},d),c),p=f.bottom;f.bottom+=n,f=oD(f,s,u);var m=e-f.left-f.right,y=t-f.top-f.bottom;return v0(v0({brushBottom:p},f),{},{width:Math.max(m,0),height:Math.max(y,0)})}),g0=J(jt,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),Od=J(on,ln,(e,t)=>({x:0,y:0,width:e,height:t}));var sq=te(ne()),y0=te(ne()),uq=(0,y0.createContext)(null),Et=()=>(0,y0.useContext)(uq)!=null;var Td=e=>e.brush,tu=J([Td,jt,Cd],(e,t,r)=>({height:e.height,x:be(e.x)?e.x:t.left,y:be(e.y)?e.y:t.top+t.height+t.brushBottom-(r?.bottom||0),width:be(e.width)?e.width:t.width}));var ru=te(ne()),Wr=te(ne());function mD(e,t,{signal:r,edges:n}={}){let a,o=null,i=n!=null&&n.includes("leading"),l=n==null||n.includes("trailing"),s=()=>{o!==null&&(e.apply(a,o),a=void 0,o=null)},u=()=>{l&&s(),p()},c=null,d=()=>{c!=null&&clearTimeout(c),c=setTimeout(()=>{c=null,u()},t)},f=()=>{c!==null&&(clearTimeout(c),c=null)},p=()=>{f(),a=void 0,o=null},m=()=>{s()},y=function(...h){if(r?.aborted)return;a=this,o=h;let v=c==null;d(),i&&v&&s()};return y.schedule=d,y.cancel=p,y.flush=m,r?.addEventListener("abort",p,{once:!0}),y}function vD(e,t=0,r={}){typeof r!="object"&&(r={});let{leading:n=!1,trailing:a=!0,maxWait:o}=r,i=Array(2);n&&(i[0]="leading"),a&&(i[1]="trailing");let l,s=null,u=mD(function(...f){l=e.apply(this,f),s=null},t,{edges:i}),c=function(...f){return o!=null&&(s===null&&(s=Date.now()),Date.now()-s>=o)?(l=e.apply(this,f),s=Date.now(),u.cancel(),u.schedule(),l):(u.apply(this,f),l)},d=()=>(u.flush(),l);return c.cancel=u.cancel,c.flush=d,c}function bk(e,t=0,r={}){let{leading:n=!0,trailing:a=!0}=r;return vD(e,t,{leading:n,maxWait:t,trailing:a})}var cq=!0,Md=function(t,r){for(var n=arguments.length,a=new Array(n>2?n-2:0),o=2;oa[i++]))}};var ho={width:"100%",height:"100%",debounce:0,minWidth:0,initialDimension:{width:-1,height:-1}},wk=(e,t,r)=>{var n=r.width,a=n===void 0?ho.width:n,o=r.height,i=o===void 0?ho.height:o,l=r.aspect,s=r.maxHeight,u=Ni(a)?e:Number(a),c=Ni(i)?t:Number(i);return l&&l>0&&(u?c=u/l:c&&(u=c*l),s&&c!=null&&c>s&&(c=s)),{calculatedWidth:u,calculatedHeight:c}},dq={width:0,height:0,overflow:"visible"},fq={width:0,overflowX:"visible"},pq={height:0,overflowY:"visible"},mq={},gD=e=>{var t=e.width,r=e.height,n=Ni(t),a=Ni(r);return n&&a?dq:n?fq:a?pq:mq};function yD(e){var t=e.width,r=e.height,n=e.aspect,a=t,o=r;return a===void 0&&o===void 0?(a=ho.width,o=ho.height):a===void 0?a=n&&n>0?void 0:ho.width:o===void 0&&(o=n&&n>0?void 0:ho.height),{width:a,height:o}}var vq=["aspect","initialDimension","width","height","minWidth","minHeight","maxHeight","children","debounce","id","className","onResize","style"];function h0(){return h0=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 Cq(a)?ru.createElement(wD.Provider,{value:a},t):null}var xm=()=>(0,Wr.useContext)(wD),Eq=(0,Wr.forwardRef)((e,t)=>{var r=e.aspect,n=e.initialDimension,a=n===void 0?ho.initialDimension:n,o=e.width,i=e.height,l=e.minWidth,s=l===void 0?ho.minWidth:l,u=e.minHeight,c=e.maxHeight,d=e.children,f=e.debounce,p=f===void 0?ho.debounce:f,m=e.id,y=e.className,h=e.onResize,v=e.style,g=v===void 0?{}:v,b=kq(e,vq),x=(0,Wr.useRef)(null),S=(0,Wr.useRef)();S.current=h,(0,Wr.useImperativeHandle)(t,()=>x.current);var w=(0,Wr.useState)({containerWidth:a.width,containerHeight:a.height}),O=xq(w,2),k=O[0],A=O[1],M=(0,Wr.useCallback)((N,_)=>{A(z=>{var j=Math.round(N),P=Math.round(_);return z.containerWidth===j&&z.containerHeight===P?z:{containerWidth:j,containerHeight:P}})},[]);(0,Wr.useEffect)(()=>{if(x.current==null||typeof ResizeObserver>"u")return Pn;var N=B=>{var R,F=B[0];if(F!=null){var G=F.contentRect,ee=G.width,fe=G.height;M(ee,fe),(R=S.current)===null||R===void 0||R.call(S,ee,fe)}};p>0&&(N=bk(N,p,{trailing:!0,leading:!1}));var _=new ResizeObserver(N),z=x.current.getBoundingClientRect(),j=z.width,P=z.height;return M(j,P),_.observe(x.current),()=>{_.disconnect()}},[M,p]);var W=k.containerWidth,L=k.containerHeight;Md(!r||r>0,"The aspect(%s) must be greater than zero.",r);var H=wk(W,L,{width:o,height:i,aspect:r,maxHeight:c}),D=H.calculatedWidth,Y=H.calculatedHeight;return Md(W<0||L<0||D!=null&&D>0||Y!=null&&Y>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.`,M,F,i,o,s,u,r),eu.createElement("div",f0({id:m?"".concat(m):void 0,className:Ue("recharts-responsive-container",y),style:iD(iD({},g),{},{width:i,height:o,minWidth:s,minHeight:u,maxHeight:c}),ref:x},b),eu.createElement("div",{style:rD({width:i,height:o})},eu.createElement(sD,{width:M,height:F},d)))}),zl=(0,Br.forwardRef)((e,t)=>{var r=mm();if(Gn(r.width)&&Gn(r.height))return e.children;var n=nD({width:e.width,height:e.height,aspect:e.aspect}),a=n.width,i=n.height,o=pk(void 0,void 0,{width:a,height:i,aspect:e.aspect,maxHeight:e.maxHeight}),l=o.calculatedWidth,s=o.calculatedHeight;return he(l)&&he(s)?eu.createElement(sD,{width:l,height:s},e.children):eu.createElement(aq,f0({},e,{width:a,height:i,ref:t}))});var tu=()=>{var e,t=Ct(),r=xe(c0),n=xe(Rs),a=(e=xe(Cd))===null||e===void 0?void 0:e.padding;return!t||!n||!a?r:{width:n.width-a.left-a.right,height:n.height-a.top-a.bottom,x:a.left,y:a.top}},iq={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},p0=()=>{var e;return(e=xe(It))!==null&&e!==void 0?e:iq},_d=()=>xe(rn),Od=()=>xe(nn),cD=()=>xe(e=>e.layout.margin),Ke=e=>e.layout.layoutType,Zn=()=>xe(Ke),Td=()=>{var e=Zn();if(e==="horizontal"||e==="vertical")return e},m0=e=>{var t=e.layout.layoutType;if(t==="centric"||t==="radial")return t},dD=()=>xe(m0),fD=()=>{var e=Zn();return e!==void 0},ru=e=>{var t=He(),r=Ct(),n=e.width,a=e.height,i=mm(),o=n,l=a;return i&&(o=i.width>0?i.width:n,l=i.height>0?i.height:a),(0,uD.useEffect)(()=>{!r&&Gn(o)&&Gn(l)&&t(FP({width:o,height:l}))},[t,r,o,l]),null};var oq={settings:{layout:"horizontal",align:"center",verticalAlign:"bottom",itemSorter:"value",position:void 0,offset:0},size:{width:0,height:0},payload:[]},pD=Nt({name:"legend",initialState:oq,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(et(t.payload))},prepare:Mt()},replaceLegendPayload:{reducer(e,t){var r=t.payload,n=r.prev,a=r.next,i=mn(e).payload.indexOf(et(n));i>-1&&(e.payload[i]=et(a))},prepare:Mt()},removeLegendPayload:{reducer(e,t){var r=mn(e).payload.indexOf(et(t.payload));r>-1&&e.payload.splice(r,1)},prepare:Mt()}}}),vm=pD.actions,mk=vm.setLegendSize,mD=vm.setLegendSettings,vk=vm.addLegendPayload,gk=vm.replaceLegendPayload,yk=vm.removeLegendPayload;var vD=pD.reducer;var xr=re(ne(),1),Iq=re(xD(),1);var mq=Symbol.for("react.forward_ref");var vq=Symbol.for("react.memo");var gq=mq,yq=vq;function hq(e){e()}function xq(){let e=null,t=null;return{clear(){e=null,t=null},notify(){hq(()=>{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,a=t={callback:r,next:null,prev:t};return a.prev?a.prev.next=a:e=a,function(){!n||e===null||(n=!1,a.next?a.next.prev=a.prev:t=a.prev,a.prev?a.prev.next=a.next:e=a.next)}}}}var bD={notify(){},get:()=>[]};function bq(e,t){let r,n=bD,a=0,i=!1;function o(y){c();let h=n.subscribe(y),v=!1;return()=>{v||(v=!0,h(),d())}}function l(){n.notify()}function s(){m.onStateChange&&m.onStateChange()}function u(){return i}function c(){a++,r||(r=t?t.addNestedSub(s):e.subscribe(s),n=xq())}function d(){a--,r&&a===0&&(r(),r=void 0,n.clear(),n=bD)}function f(){i||(i=!0,c())}function p(){i&&(i=!1,d())}let m={addNestedSub:o,notifyNestedSubs:l,handleChangeWrapper:s,isSubscribed:u,trySubscribe:f,tryUnsubscribe:p,getListeners:()=>n};return m}var wq=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Sq=wq(),Aq=()=>typeof navigator<"u"&&navigator.product==="ReactNative",kq=Aq(),Nq=()=>Sq||kq?xr.useLayoutEffect:xr.useEffect,Cq=Nq();function wD(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function SD(e,t){if(wD(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 a=0;a{let s=bq(a);return{store:a,subscription:s,getServerState:n?()=>n:void 0}},[a,n]),o=xr.useMemo(()=>a.getState(),[a]);return Cq(()=>{let{subscription:s}=i;return s.onStateChange=s.notifyNestedSubs,s.trySubscribe(),o!==a.getState()&&s.notifyNestedSubs(),()=>{s.tryUnsubscribe(),s.onStateChange=void 0}},[i,o]),xr.createElement((r||Pq).Provider,{value:i},t)}var AD=Dq;var jq=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius","throttledEvents"]);function zq(e,t){return e==null&&t==null?!0:typeof e=="number"&&typeof t=="number"?e===t||e!==e&&t!==t:e===t}function Qn(e,t){var r=new Set([...Object.keys(e),...Object.keys(t)]);for(var n of r)if(jq.has(n)){if(e[n]==null&&t[n]==null)continue;if(!SD(e[n],t[n]))return!1}else if(!zq(e[n],t[n]))return!1;return!0}var kD=Z([rn,nn,Sd],(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 ND(e,t){var r;if(e==="start"&&t==="start")return"";var n={start:"0",middle:"-50%",end:"-100%"},a={start:"0",middle:"-50%",end:"-100%"},i=e==="inherit"?"0":n[e],o=(r=a[t])!==null&&r!==void 0?r:"0";return"translate(".concat(i,", ").concat(o,")")}var Lq=["contextPayload"];function hk(){return hk=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{l(mD({align:t,layout:r,verticalAlign:n,itemSorter:a,position:i,offset:o}))},[l,t,r,n,a,i,o]),null}function tY(e){var t=e.width,r=e.height,n=He();return(0,v0.useLayoutEffect)(()=>{n(mk({width:t,height:r}))},[n,t,r]),(0,v0.useLayoutEffect)(()=>()=>{n(mk({width:0,height:0}))},[n]),null}function rY(e,t,r,n){return e==="vertical"&&t!=null?{height:t}:e==="horizontal"?{width:r||n}:null}var nY={align:"center",iconSize:14,inactiveColor:"#ccc",itemSorter:"value",labelStyle:{},layout:"auto",verticalAlign:"bottom",offset:0};function aY(e){var t,r,n,a,i,o,l,s,u=it(e,nY),c=e.layout&&e.layout!=="auto"?e.layout:Zq(u.position),d=VM(),f=T3(),p=cD(),m=xe(T=>Qq(T,u.position)),y=u.width,h=u.height,v=u.wrapperStyle,g=u.portal,b=g==null&&(u.position==null||Jp(u.position)),x=Ph([d]),S=Bq(x,2),w=S[0],_=S[1],k=_d(),A=Od();if(k==null||A==null||u.position!=null&&m==null)return null;var P=k-(p?.left||0)-(p?.right||0),K=rY(c,h,y,P),z=u.position==null?null:qy({viewBox:m??{x:0,y:0,width:k,height:A},position:u.position,offset:(t=u.offset)!==null&&t!==void 0?t:0}),Q=Jq(u.position,(r=u.offset)!==null&&r!==void 0?r:0,w),M=c==="vertical"?((n=m?.width)!==null&&n!==void 0?n:0)/2:(a=m?.width)!==null&&a!==void 0?a:0,F=c==="horizontal"?((i=m?.height)!==null&&i!==void 0?i:0)/2:(o=m?.height)!==null&&o!==void 0?o:0,N=z?{width:"max-content",height:"max-content",maxWidth:M,maxHeight:F,overflowY:"auto",top:z.y+((l=Q.top)!==null&&l!==void 0?l:0),left:z.x+((s=Q.left)!==null&&s!==void 0?s:0),transform:ND(z.horizontalAnchor,z.verticalAnchor)}:Rq(v,u,p,k,A,w),O=g?v:Md(Md({position:"absolute",width:K?.width||y||"auto",height:K?.height||h||"auto"},N),v),I=g??f;if(I==null||d==null)return null;var D=ba.createElement("div",{className:"recharts-legend-wrapper",style:O,ref:_},ba.createElement(eY,{layout:c,align:u.align,verticalAlign:u.verticalAlign,itemSorter:u.itemSorter,position:u.position,offset:u.offset}),b&&ba.createElement(tY,w),ba.createElement(Xq,hk({},u,{layout:c},K,{margin:p,chartWidth:k,chartHeight:A,contextPayload:d})));return(0,_D.createPortal)(D,I)}var g0=ba.memo(aY,Qn);g0.displayName="Legend";var Ja=re(ne()),rz=re(ne()),nz=re(Qf());var gi=re(ne());function xk(){return xk=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?Pd.separator:t,n=e.contentStyle,a=e.itemStyle,i=e.labelStyle,o=i===void 0?Pd.labelStyle:i,l=e.payload,s=e.formatter,u=e.itemSorter,c=e.wrapperClassName,d=e.labelClassName,f=e.label,p=e.labelFormatter,m=e.accessibilityLayer,y=m===void 0?Pd.accessibilityLayer:m,h=()=>{if(l&&l.length){var k={padding:0,margin:0},A=mY(l,u),P=A.map((K,z)=>{if(!K||K.type==="none")return null;var Q=K.formatter||s||pY,M=K.value,F=K.name,N=M,O=F;if(Q){var I=Q(M,F,K,z,l);if(Array.isArray(I)){var D=sY(I,2);N=D[0],O=D[1]}else if(I!=null)N=I;else return null}var T=ym(ym({},Pd.itemStyle),{},{color:K.color||Pd.itemStyle.color},a);return gi.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(z),style:T},On(O)?gi.createElement("span",{className:"recharts-tooltip-item-name"},O):null,On(O)?gi.createElement("span",{className:"recharts-tooltip-item-separator"},r):null,gi.createElement("span",{className:"recharts-tooltip-item-value"},N),gi.createElement("span",{className:"recharts-tooltip-item-unit"},K.unit||""))});return gi.createElement("ul",{className:"recharts-tooltip-item-list",style:k},P)}return null},v=ym(ym({},Pd.contentStyle),n),g=ym({margin:0},o),b=!st(f),x=b?f:"",S=Ue("recharts-default-tooltip",c),w=Ue("recharts-tooltip-label",d);b&&p&&l!==void 0&&l!==null&&(x=p(f,l));var _=y?{role:"status","aria-live":"assertive"}:{};return gi.createElement("div",xk({className:S,style:v},_),gi.createElement("p",{className:w,style:g},gi.isValidElement(x)?x:"".concat(x)),h())};var Ll=re(ne());var hm="recharts-tooltip-wrapper",vY={visibility:"hidden"};function gY(e){var t=e.coordinate,r=e.translateX,n=e.translateY;return Ue(hm,{["".concat(hm,"-right")]:he(r)&&t&&he(t.x)&&r>=t.x,["".concat(hm,"-left")]:he(r)&&t&&he(t.x)&&r=t.y,["".concat(hm,"-top")]:he(n)&&t&&he(t.y)&&n0?a:0),d=r[n]+a;if(t[n])return o[n]?c:d;var f=s[n];if(f==null)return 0;if(o[n]){var p=c,m=f;return ph?Math.max(c,f):Math.max(d,f)}function yY(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 DD(e){var t=e.allowEscapeViewBox,r=e.coordinate,n=e.offsetTop,a=e.offsetLeft,i=e.position,o=e.reverseDirection,l=e.tooltipBox,s=e.useTranslate3d,u=e.viewBox,c,d,f;return l&&l.height>0&&l.width>0&&r?(d=PD({allowEscapeViewBox:t,coordinate:r,key:"x",offset:a,position:i,reverseDirection:o,tooltipDimension:l.width,viewBox:u,viewBoxDimension:u.width}),f=PD({allowEscapeViewBox:t,coordinate:r,key:"y",offset:n,position:i,reverseDirection:o,tooltipDimension:l.height,viewBox:u,viewBoxDimension:u.height}),c=yY({translateX:d,translateY:f,useTranslate3d:s})):c=vY,{cssProperties:c,cssClasses:gY({translateX:d,translateY:f,coordinate:r})}}var y0=re(ne());var hY=()=>!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout),qa={devToolsEnabled:!0,isSsr:hY()};function xY(e,t){return AY(e)||SY(e,t)||wY(e,t)||bY()}function bY(){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 wY(e,t){if(e){if(typeof e=="string")return ID(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)?ID(e,t):void 0}}function ID(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rqa.isSsr||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches),t=xY(e,2),r=t[0],n=t[1];return(0,y0.useEffect)(()=>{if(window.matchMedia){var a=window.matchMedia("(prefers-reduced-motion: reduce)"),i=()=>{n(a.matches)};return a.addEventListener("change",i),()=>{a.removeEventListener("change",i)}}},[]),r}function jD(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Dd(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=EY(s,2),c=u[0],d=u[1];Ll.useEffect(()=>{var v=g=>{if(g.key==="Escape"){var b,x,S,w;d({dismissed:!0,dismissedAtCoordinate:{x:(b=(x=e.coordinate)===null||x===void 0?void 0:x.x)!==null&&b!==void 0?b:0,y:(S=(w=e.coordinate)===null||w===void 0?void 0:w.y)!==null&&S!==void 0?S:0}})}};return document.addEventListener("keydown",v),()=>{document.removeEventListener("keydown",v)}},[(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=(a=e.coordinate)===null||a===void 0?void 0:a.x)!==null&&n!==void 0?n:0)!==c.dismissedAtCoordinate.x||((i=(o=e.coordinate)===null||o===void 0?void 0:o.y)!==null&&i!==void 0?i:0)!==c.dismissedAtCoordinate.y)&&d(Dd(Dd({},c),{},{dismissed:!1}));var f=DD({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}),p=f.cssClasses,m=f.cssProperties,y=e.hasPortalFromProps?{}:Dd(Dd({transition:PY({prefersReducedMotion:l,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},m),{},{pointerEvents:"none",position:"absolute",top:0,left:0}),h=Dd(Dd({},y),{},{visibility:!c.dismissed&&e.active&&e.hasPayload?"visible":"hidden"},e.wrapperStyle);return Ll.createElement("div",{xmlns:"http://www.w3.org/1999/xhtml",tabIndex:-1,className:p,style:h,ref:e.innerRef},e.children)}var LD=Ll.memo(DY);var x0=()=>{var e;return(e=xe(t=>t.rootProps.accessibilityLayer))!==null&&e!==void 0?e:!0};var ib=re(ne()),sf=re(ne());var HD=re(ne());function bk(){return bk=Object.assign?Object.assign.bind():function(e){for(var t=1;tWe(e.x)&&We(e.y),FD=e=>e.base!=null&&b0(e.base)&&b0(e),xm=e=>e.x,bm=e=>e.y,LY=(e,t)=>{if(typeof e=="function")return e;var r="curve".concat(ko(e));if((r==="curveMonotone"||r==="curveBump")&&t){var n=UD["".concat(r).concat(t==="vertical"?"Y":"X")];if(n)return n}return UD[r]||Dl},WD={connectNulls:!1,type:"linear"},BY=e=>{var t=e.type,r=t===void 0?WD.type:t,n=e.points,a=n===void 0?[]:n,i=e.baseLine,o=e.layout,l=e.connectNulls,s=l===void 0?WD.connectNulls:l,u=LY(r,o),c=s?a.filter(b0):a;if(Array.isArray(i)){var d,f=a.map((v,g)=>$D($D({},v),{},{base:i[g]}));o==="vertical"?d=ld().y(bm).x1(xm).x0(v=>v.base.x):d=ld().x(xm).y1(bm).y0(v=>v.base.y);var p=d.defined(FD).curve(u),m=s?f.filter(FD):f;return p(m)}var y;o==="vertical"&&he(i)?y=ld().y(bm).x1(xm).x0(i):he(i)?y=ld().x(xm).y1(bm).y0(i):y=em().x(xm).y(bm);var h=y.defined(b0).curve(u);return h(c)},Bi=e=>{var t=e.className,r=e.points,n=e.path,a=e.pathRef,i=Zn();if((!r||!r.length)&&!n)return null;var o={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||i,connectNulls:e.connectNulls},l=r&&r.length?BY(o):n;return HD.createElement("path",bk({},er(e),fd(e),{className:Ue("recharts-curve",t),d:l===null?void 0:l,ref:a}))};var KD=re(ne());var $Y=["x","y","top","left","width","height","className"];function wk(){return wk=Object.assign?Object.assign.bind():function(e){for(var t=1;t"M".concat(e,",").concat(a,"v").concat(n,"M").concat(i,",").concat(t,"h").concat(r),qD=e=>{var t=e.x,r=t===void 0?0:t,n=e.y,a=n===void 0?0:n,i=e.top,o=i===void 0?0:i,l=e.left,s=l===void 0?0:l,u=e.width,c=u===void 0?0:u,d=e.height,f=d===void 0?0:d,p=e.className,m=VY(e,$Y),y=UY({x:r,y:a,top:o,left:s,width:c,height:f},m);return!he(r)||!he(a)||!he(c)||!he(f)||!he(o)||!he(s)?null:KD.createElement("path",wk({},tr(y),{className:Ue("recharts-cross",p),d:qY(r,a,c,f,o,s)}))};function YD(e,t,r,n){var a=n/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-a:r.left+.5,y:e==="horizontal"?r.top+.5:t.y-a,width:e==="horizontal"?n:r.width-1,height:e==="horizontal"?r.height-1:n}}var C0=re(ne()),Ya=re(ne());var wm=re(ne());var w0=1e-4,ZD=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],QD=(e,t)=>e.map((r,n)=>r*t**n).reduce((r,n)=>r+n),GD=(e,t)=>r=>{var n=ZD(e,t);return QD(n,r)},YY=(e,t)=>r=>{var n=ZD(e,t),a=[...n.map((i,o)=>i*o).slice(1),0];return QD(a,r)},GY=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 a=n.map(i=>parseFloat(i));return[a[0],a[1],a[2],a[3]]},XY=function(){for(var t=arguments.length,r=new Array(t),n=0;n{var a=GD(e,r),i=GD(t,n),o=YY(e,r),l=u=>u>1?1:u<0?0:u,s=u=>{for(var c=u>1?1:u,d=c,f=0;f<8;++f){var p=a(d)-c,m=o(d);if(Math.abs(p-c)0&&arguments[0]!==void 0?arguments[0]:{},r=t.stiff,n=r===void 0?100:r,a=t.damping,i=a===void 0?8:a,o=t.dt,l=o===void 0?16.67:o,s=1,u=[0],c=0,d=0,f=1e4,p=0;p{var g,b,x;if(v<=0)return 0;if(v>=1)return s;var S=v*h,w=Math.floor(S),_=S-w;return((g=u[w])!==null&&g!==void 0?g:0)+(((b=u[w+1])!==null&&b!==void 0?b:0)-((x=u[w])!==null&&x!==void 0?x:0))*_}},JD=e=>{if(typeof e=="string")switch(e){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return XD(e);case"spring":return QY();default:if(e.split("(")[0]==="cubic-bezier")return XD(e)}return typeof e=="function"?e:null};var Id=re(ne());var RD=(e,t,r)=>{var n,a=i=>{var o=t.tick(i);if(t.getState()==="active"){if(r(t.getInterpolated()),t.getProgress()===1){t.complete(),n=void 0;return}n=e.setTimeout(a,o);return}n=e.setTimeout(a,o)};return n=e.setTimeout(a,0),()=>{var i;return(i=n)===null||i===void 0?void 0:i()}};var e8=(0,Id.createContext)(RD),Eye=e8.Provider;function t8(e){var t=(0,Id.useContext)(e8);return(0,Id.useMemo)(()=>e??t,[e,t])}function JY(e,t,r){return(t=RY(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function RY(e){var t=eG(e,"string");return typeof t=="symbol"?t:t+""}function eG(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 r8="init",n8="pending",a8="active",tG="completed";function Sk(e){return Math.max(0,e)}var Ak=class{getAnimationStartedTime(){return this.animationStartedTime}getBeginStartedTime(){return this.beginStartedTime}constructor(t){var r;JY(this,"state",r8),this.animationId=t.animationId,this.onAnimationEnd=t.onAnimationEnd,this.animationDuration=Sk(t.animationDuration),this.animationBegin=Sk(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()===r8)return this.state=n8,this.beginStartedTime=t,this.animationBegin;if(this.getState()===n8){if(this.beginStartedTime==null)throw new Error;var r=t-this.beginStartedTime;return r>=this.animationBegin?(this.state=a8,this.animationStartedTime=t,this.nextAnimationUpdate(0)):Sk(this.animationBegin-r)}if(this.getState()===a8){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=tG}getFrom(){return this.from}getTo(){return this.to}getAnimationId(){return this.animationId}getAnimationBegin(){return this.animationBegin}},S0=class extends Ak{nextAnimationUpdate(){return 0}getInterpolated(){return this.easing(kt(this.getFrom(),this.getTo(),this.getProgress()))}};var A0=class{setTimeout(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=performance.now(),a=null,i=o=>{o-n>=r?t(o):a=requestAnimationFrame(i)};return a=requestAnimationFrame(i),()=>{a!=null&&cancelAnimationFrame(a)}}};function rG(e,t){return oG(e)||iG(e,t)||aG(e,t)||nG()}function nG(){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 aG(e,t){if(e){if(typeof e=="string")return i8(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)?i8(e,t):void 0}}function i8(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{},onAnimationStart:()=>{}},o8=0,kk=1;function k0(e){var t=it(e,lG),r=t.animationId,n=t.isActive,a=t.canBegin,i=t.duration,o=t.easing,l=t.begin,s=t.onAnimationEnd,u=t.onAnimationStart,c=t.children,d=h0(),f=n==="auto"?!qa.isSsr&&!d:n,p=t8(t.animationController),m=(0,wm.useState)(f?o8:kk),y=rG(m,2),h=y[0],v=y[1];return(0,wm.useEffect)(()=>{f||v(kk)},[f]),(0,wm.useEffect)(()=>{var g=JD(o);if(!f||!a||g==null)return Tn;var b=new A0,x=new S0({animationId:r,easing:g,animationDuration:i,animationBegin:l,onAnimationStart:u,onAnimationEnd:s,from:o8,to:kk});return p(b,x,v)},[p,r,f,a,i,o,l,u,s]),c(Number(h))}var Nk=re(ne());function N0(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"animation-",r=(0,Nk.useRef)(Ao(t)),n=(0,Nk.useRef)(e);return n.current!==e&&(r.current=Ao(t),n.current=e),r.current}var sG=e=>e.replace(/([A-Z])/g,t=>"-".concat(t.toLowerCase())),l8=(e,t,r)=>e.map(n=>"".concat(sG(n)," ").concat(t,"ms ").concat(r)).join(",");var uG=["radius"],cG=["radius"],s8,u8,c8,d8,f8,p8,m8,v8,g8,y8;function h8(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function x8(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{var i=Ua(r),o=Ua(n),l=Math.min(Math.abs(i)/2,Math.abs(o)/2),s=o>=0?1:-1,u=i>=0?1:-1,c=o>=0&&i>=0||o<0&&i<0?1:0,d;if(l>0&&Array.isArray(a)){for(var f=[0,0,0,0],p=0,m=4;pl?l:h}d=Hr(s8||(s8=$i(["M",",",""])),e,t+s*f[0]),f[0]>0&&(d+=Hr(u8||(u8=$i(["A ",",",",0,0,",",",",",""])),f[0],f[0],c,e+u*f[0],t)),d+=Hr(c8||(c8=$i(["L ",",",""])),e+r-u*f[1],t),f[1]>0&&(d+=Hr(d8||(d8=$i(["A ",",",",0,0,",`, - `,",",""])),f[1],f[1],c,e+r,t+s*f[1])),d+=Hr(f8||(f8=$i(["L ",",",""])),e+r,t+n-s*f[2]),f[2]>0&&(d+=Hr(p8||(p8=$i(["A ",",",",0,0,",`, - `,",",""])),f[2],f[2],c,e+r-u*f[2],t+n)),d+=Hr(m8||(m8=$i(["L ",",",""])),e+u*f[3],t+n),f[3]>0&&(d+=Hr(v8||(v8=$i(["A ",",",",0,0,",`, - `,",",""])),f[3],f[3],c,e,t+n-s*f[3])),d+="Z"}else if(l>0&&a===+a&&a>0){var v=Math.min(l,a);d=Hr(g8||(g8=$i(["M ",",",` + height and width.`,D,Y,o,i,s,u,r),ru.createElement("div",h0({id:m?"".concat(m):void 0,className:Ue("recharts-responsive-container",y),style:xD(xD({},g),{},{width:o,height:i,minWidth:s,minHeight:u,maxHeight:c}),ref:x},b),ru.createElement("div",{style:gD({width:o,height:i})},ru.createElement(SD,{width:D,height:Y},d)))}),$l=(0,Wr.forwardRef)((e,t)=>{var r=xm();if(Xn(r.width)&&Xn(r.height))return e.children;var n=yD({width:e.width,height:e.height,aspect:e.aspect}),a=n.width,o=n.height,i=wk(void 0,void 0,{width:a,height:o,aspect:e.aspect,maxHeight:e.maxHeight}),l=i.calculatedWidth,s=i.calculatedHeight;return be(l)&&be(s)?ru.createElement(SD,{width:l,height:s},e.children):ru.createElement(Eq,h0({},e,{width:a,height:o,ref:t}))});var nu=()=>{var e,t=Et(),r=we(g0),n=we(tu),a=(e=we(Td))===null||e===void 0?void 0:e.padding;return!t||!n||!a?r:{width:n.width-a.left-a.right,height:n.height-a.top-a.bottom,x:a.left,y:a.top}},_q={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},x0=()=>{var e;return(e=we(jt))!==null&&e!==void 0?e:_q},Pd=()=>we(on),Dd=()=>we(ln),kD=()=>we(e=>e.layout.margin),qe=e=>e.layout.layoutType,Qn=()=>we(qe),Id=()=>{var e=Qn();if(e==="horizontal"||e==="vertical")return e},b0=e=>{var t=e.layout.layoutType;if(t==="centric"||t==="radial")return t},ND=()=>we(b0),CD=()=>{var e=Qn();return e!==void 0},au=e=>{var t=Ve(),r=Et(),n=e.width,a=e.height,o=xm(),i=n,l=a;return o&&(i=o.width>0?o.width:n,l=o.height>0?o.height:a),(0,AD.useEffect)(()=>{!r&&Xn(i)&&Xn(l)&&t(tD({width:i,height:l}))},[t,r,i,l]),null};var Oq={settings:{layout:"horizontal",align:"center",verticalAlign:"bottom",itemSorter:"value",position:void 0,offset:0},size:{width:0,height:0},payload:[]},ED=Ct({name:"legend",initialState:Oq,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(tt(t.payload))},prepare:Pt()},replaceLegendPayload:{reducer(e,t){var r=t.payload,n=r.prev,a=r.next,o=yn(e).payload.indexOf(tt(n));o>-1&&(e.payload[o]=tt(a))},prepare:Pt()},removeLegendPayload:{reducer(e,t){var r=yn(e).payload.indexOf(tt(t.payload));r>-1&&e.payload.splice(r,1)},prepare:Pt()}}}),bm=ED.actions,Sk=bm.setLegendSize,_D=bm.setLegendSettings,Ak=bm.addLegendPayload,kk=bm.replaceLegendPayload,Nk=bm.removeLegendPayload;var OD=ED.reducer;var Sr=te(ne(),1),nY=te(DD(),1);var Lq=Symbol.for("react.forward_ref");var Bq=Symbol.for("react.memo");var $q=Lq,Uq=Bq;function Fq(e){e()}function Wq(){let e=null,t=null;return{clear(){e=null,t=null},notify(){Fq(()=>{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,a=t={callback:r,next:null,prev:t};return a.prev?a.prev.next=a:e=a,function(){!n||e===null||(n=!1,a.next?a.next.prev=a.prev:t=a.prev,a.prev?a.prev.next=a.next:e=a.next)}}}}var ID={notify(){},get:()=>[]};function Hq(e,t){let r,n=ID,a=0,o=!1;function i(y){c();let h=n.subscribe(y),v=!1;return()=>{v||(v=!0,h(),d())}}function l(){n.notify()}function s(){m.onStateChange&&m.onStateChange()}function u(){return o}function c(){a++,r||(r=t?t.addNestedSub(s):e.subscribe(s),n=Wq())}function d(){a--,r&&a===0&&(r(),r=void 0,n.clear(),n=ID)}function f(){o||(o=!0,c())}function p(){o&&(o=!1,d())}let m={addNestedSub:i,notifyNestedSubs:l,handleChangeWrapper:s,isSubscribed:u,trySubscribe:f,tryUnsubscribe:p,getListeners:()=>n};return m}var Vq=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Kq=Vq(),qq=()=>typeof navigator<"u"&&navigator.product==="ReactNative",Yq=qq(),Gq=()=>Kq||Yq?Sr.useLayoutEffect:Sr.useEffect,Xq=Gq();function jD(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function zD(e,t){if(jD(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 a=0;a{let s=Hq(a);return{store:a,subscription:s,getServerState:n?()=>n:void 0}},[a,n]),i=Sr.useMemo(()=>a.getState(),[a]);return Xq(()=>{let{subscription:s}=o;return s.onStateChange=s.notifyNestedSubs,s.trySubscribe(),i!==a.getState()&&s.notifyNestedSubs(),()=>{s.tryUnsubscribe(),s.onStateChange=void 0}},[o,i]),Sr.createElement((r||tY).Provider,{value:o},t)}var LD=rY;var aY=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius","throttledEvents"]);function oY(e,t){return e==null&&t==null?!0:typeof e=="number"&&typeof t=="number"?e===t||e!==e&&t!==t:e===t}function Jn(e,t){var r=new Set([...Object.keys(e),...Object.keys(t)]);for(var n of r)if(aY.has(n)){if(e[n]==null&&t[n]==null)continue;if(!zD(e[n],t[n]))return!1}else if(!oY(e[n],t[n]))return!1;return!0}var BD=J([on,ln,Cd],(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 $D(e,t){var r;if(e==="start"&&t==="start")return"";var n={start:"0",middle:"-50%",end:"-100%"},a={start:"0",middle:"-50%",end:"-100%"},o=e==="inherit"?"0":n[e],i=(r=a[t])!==null&&r!==void 0?r:"0";return"translate(".concat(o,", ").concat(i,")")}var iY=["contextPayload"];function Ck(){return Ck=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{l(_D({align:t,layout:r,verticalAlign:n,itemSorter:a,position:o,offset:i}))},[l,t,r,n,a,o,i]),null}function kY(e){var t=e.width,r=e.height,n=Ve();return(0,w0.useLayoutEffect)(()=>{n(Sk({width:t,height:r}))},[n,t,r]),(0,w0.useLayoutEffect)(()=>()=>{n(Sk({width:0,height:0}))},[n]),null}function NY(e,t,r,n){return e==="vertical"&&t!=null?{height:t}:e==="horizontal"?{width:r||n}:null}var CY={align:"center",iconSize:14,inactiveColor:"#ccc",itemSorter:"value",labelStyle:{},layout:"auto",verticalAlign:"bottom",offset:0};function EY(e){var t,r,n,a,o,i,l,s,u=lt(e,CY),c=e.layout&&e.layout!=="auto"?e.layout:xY(u.position),d=aP(),f=V3(),p=kD(),m=we(P=>bY(P,u.position)),y=u.width,h=u.height,v=u.wrapperStyle,g=u.portal,b=g==null&&(u.position==null||nm(u.position)),x=Bh([d]),S=lY(x,2),w=S[0],O=S[1],k=Pd(),A=Dd();if(k==null||A==null||u.position!=null&&m==null)return null;var M=k-(p?.left||0)-(p?.right||0),W=NY(c,h,y,M),L=u.position==null?null:Jy({viewBox:m??{x:0,y:0,width:k,height:A},position:u.position,offset:(t=u.offset)!==null&&t!==void 0?t:0}),H=wY(u.position,(r=u.offset)!==null&&r!==void 0?r:0,w),D=c==="vertical"?((n=m?.width)!==null&&n!==void 0?n:0)/2:(a=m?.width)!==null&&a!==void 0?a:0,Y=c==="horizontal"?((o=m?.height)!==null&&o!==void 0?o:0)/2:(i=m?.height)!==null&&i!==void 0?i:0,N=L?{width:"max-content",height:"max-content",maxWidth:D,maxHeight:Y,overflowY:"auto",top:L.y+((l=H.top)!==null&&l!==void 0?l:0),left:L.x+((s=H.left)!==null&&s!==void 0?s:0),transform:$D(L.horizontalAnchor,L.verticalAnchor)}:SY(v,u,p,k,A,w),_=g?v:jd(jd({position:"absolute",width:W?.width||y||"auto",height:W?.height||h||"auto"},N),v),z=g??f;if(z==null||d==null)return null;var j=Sa.createElement("div",{className:"recharts-legend-wrapper",style:_,ref:O},Sa.createElement(AY,{layout:c,align:u.align,verticalAlign:u.verticalAlign,itemSorter:u.itemSorter,position:u.position,offset:u.offset}),b&&Sa.createElement(kY,w),Sa.createElement(hY,Ck({},u,{layout:c},W,{margin:p,chartWidth:k,chartHeight:A,contextPayload:d})));return(0,WD.createPortal)(j,z)}var S0=Sa.memo(EY,Jn);S0.displayName="Legend";var eo=te(ne()),gz=te(ne()),yz=te(rp());var xo=te(ne());function Ek(){return Ek=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?zd.separator:t,n=e.contentStyle,a=e.itemStyle,o=e.labelStyle,i=o===void 0?zd.labelStyle:o,l=e.payload,s=e.formatter,u=e.itemSorter,c=e.wrapperClassName,d=e.labelClassName,f=e.label,p=e.labelFormatter,m=e.accessibilityLayer,y=m===void 0?zd.accessibilityLayer:m,h=()=>{if(l&&l.length){var k={padding:0,margin:0},A=LY(l,u),M=A.map((W,L)=>{if(!W||W.type==="none")return null;var H=W.formatter||s||zY,D=W.value,Y=W.name,N=D,_=Y;if(H){var z=H(D,Y,W,L,l);if(Array.isArray(z)){var j=MY(z,2);N=j[0],_=j[1]}else if(z!=null)N=z;else return null}var P=Sm(Sm({},zd.itemStyle),{},{color:W.color||zd.itemStyle.color},a);return xo.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(L),style:P},Mn(_)?xo.createElement("span",{className:"recharts-tooltip-item-name"},_):null,Mn(_)?xo.createElement("span",{className:"recharts-tooltip-item-separator"},r):null,xo.createElement("span",{className:"recharts-tooltip-item-value"},N),xo.createElement("span",{className:"recharts-tooltip-item-unit"},W.unit||""))});return xo.createElement("ul",{className:"recharts-tooltip-item-list",style:k},M)}return null},v=Sm(Sm({},zd.contentStyle),n),g=Sm({margin:0},i),b=!ct(f),x=b?f:"",S=Ue("recharts-default-tooltip",c),w=Ue("recharts-tooltip-label",d);b&&p&&l!==void 0&&l!==null&&(x=p(f,l));var O=y?{role:"status","aria-live":"assertive"}:{};return xo.createElement("div",Ek({className:S,style:v},O),xo.createElement("p",{className:w,style:g},xo.isValidElement(x)?x:"".concat(x)),h())};var Ul=te(ne());var Am="recharts-tooltip-wrapper",BY={visibility:"hidden"};function $Y(e){var t=e.coordinate,r=e.translateX,n=e.translateY;return Ue(Am,{["".concat(Am,"-right")]:be(r)&&t&&be(t.x)&&r>=t.x,["".concat(Am,"-left")]:be(r)&&t&&be(t.x)&&r=t.y,["".concat(Am,"-top")]:be(n)&&t&&be(t.y)&&n0?a:0),d=r[n]+a;if(t[n])return i[n]?c:d;var f=s[n];if(f==null)return 0;if(i[n]){var p=c,m=f;return ph?Math.max(c,f):Math.max(d,f)}function UY(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 YD(e){var t=e.allowEscapeViewBox,r=e.coordinate,n=e.offsetTop,a=e.offsetLeft,o=e.position,i=e.reverseDirection,l=e.tooltipBox,s=e.useTranslate3d,u=e.viewBox,c,d,f;return l&&l.height>0&&l.width>0&&r?(d=qD({allowEscapeViewBox:t,coordinate:r,key:"x",offset:a,position:o,reverseDirection:i,tooltipDimension:l.width,viewBox:u,viewBoxDimension:u.width}),f=qD({allowEscapeViewBox:t,coordinate:r,key:"y",offset:n,position:o,reverseDirection:i,tooltipDimension:l.height,viewBox:u,viewBoxDimension:u.height}),c=UY({translateX:d,translateY:f,useTranslate3d:s})):c=BY,{cssProperties:c,cssClasses:$Y({translateX:d,translateY:f,coordinate:r})}}var A0=te(ne());var FY=()=>!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout),Ga={devToolsEnabled:!0,isSsr:FY()};function WY(e,t){return qY(e)||KY(e,t)||VY(e,t)||HY()}function HY(){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 VY(e,t){if(e){if(typeof e=="string")return GD(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)?GD(e,t):void 0}}function GD(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rGa.isSsr||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches),t=WY(e,2),r=t[0],n=t[1];return(0,A0.useEffect)(()=>{if(window.matchMedia){var a=window.matchMedia("(prefers-reduced-motion: reduce)"),o=()=>{n(a.matches)};return a.addEventListener("change",o),()=>{a.removeEventListener("change",o)}}},[]),r}function XD(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Ld(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=ZY(s,2),c=u[0],d=u[1];Ul.useEffect(()=>{var v=g=>{if(g.key==="Escape"){var b,x,S,w;d({dismissed:!0,dismissedAtCoordinate:{x:(b=(x=e.coordinate)===null||x===void 0?void 0:x.x)!==null&&b!==void 0?b:0,y:(S=(w=e.coordinate)===null||w===void 0?void 0:w.y)!==null&&S!==void 0?S:0}})}};return document.addEventListener("keydown",v),()=>{document.removeEventListener("keydown",v)}},[(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=(a=e.coordinate)===null||a===void 0?void 0:a.x)!==null&&n!==void 0?n:0)!==c.dismissedAtCoordinate.x||((o=(i=e.coordinate)===null||i===void 0?void 0:i.y)!==null&&o!==void 0?o:0)!==c.dismissedAtCoordinate.y)&&d(Ld(Ld({},c),{},{dismissed:!1}));var f=YD({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}),p=f.cssClasses,m=f.cssProperties,y=e.hasPortalFromProps?{}:Ld(Ld({transition:tG({prefersReducedMotion:l,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},m),{},{pointerEvents:"none",position:"absolute",top:0,left:0}),h=Ld(Ld({},y),{},{visibility:!c.dismissed&&e.active&&e.hasPayload?"visible":"hidden"},e.wrapperStyle);return Ul.createElement("div",{xmlns:"http://www.w3.org/1999/xhtml",tabIndex:-1,className:p,style:h,ref:e.innerRef},e.children)}var QD=Ul.memo(rG);var N0=()=>{var e;return(e=we(t=>t.rootProps.accessibilityLayer))!==null&&e!==void 0?e:!0};var db=te(ne()),ff=te(ne());var n8=te(ne());function _k(){return _k=Object.assign?Object.assign.bind():function(e){for(var t=1;tHe(e.x)&&He(e.y),t8=e=>e.base!=null&&C0(e.base)&&C0(e),km=e=>e.x,Nm=e=>e.y,iG=(e,t)=>{if(typeof e=="function")return e;var r="curve".concat(Ei(e));if((r==="curveMonotone"||r==="curveBump")&&t){var n=e8["".concat(r).concat(t==="vertical"?"Y":"X")];if(n)return n}return e8[r]||zl},r8={connectNulls:!1,type:"linear"},lG=e=>{var t=e.type,r=t===void 0?r8.type:t,n=e.points,a=n===void 0?[]:n,o=e.baseLine,i=e.layout,l=e.connectNulls,s=l===void 0?r8.connectNulls:l,u=iG(r,i),c=s?a.filter(C0):a;if(Array.isArray(o)){var d,f=a.map((v,g)=>RD(RD({},v),{},{base:o[g]}));i==="vertical"?d=dd().y(Nm).x1(km).x0(v=>v.base.x):d=dd().x(km).y1(Nm).y0(v=>v.base.y);var p=d.defined(t8).curve(u),m=s?f.filter(t8):f;return p(m)}var y;i==="vertical"&&be(o)?y=dd().y(Nm).x1(km).x0(o):be(o)?y=dd().x(km).y1(Nm).y0(o):y=om().x(km).y(Nm);var h=y.defined(C0).curve(u);return h(c)},Fo=e=>{var t=e.className,r=e.points,n=e.path,a=e.pathRef,o=Qn();if((!r||!r.length)&&!n)return null;var i={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||o,connectNulls:e.connectNulls},l=r&&r.length?lG(i):n;return n8.createElement("path",_k({},tr(e),gd(e),{className:Ue("recharts-curve",t),d:l===null?void 0:l,ref:a}))};var o8=te(ne());var sG=["x","y","top","left","width","height","className"];function Ok(){return Ok=Object.assign?Object.assign.bind():function(e){for(var t=1;t"M".concat(e,",").concat(a,"v").concat(n,"M").concat(o,",").concat(t,"h").concat(r),i8=e=>{var t=e.x,r=t===void 0?0:t,n=e.y,a=n===void 0?0:n,o=e.top,i=o===void 0?0:o,l=e.left,s=l===void 0?0:l,u=e.width,c=u===void 0?0:u,d=e.height,f=d===void 0?0:d,p=e.className,m=pG(e,sG),y=uG({x:r,y:a,top:i,left:s,width:c,height:f},m);return!be(r)||!be(a)||!be(c)||!be(f)||!be(i)||!be(s)?null:o8.createElement("path",Ok({},rr(y),{className:Ue("recharts-cross",p),d:vG(r,a,c,f,i,s)}))};function l8(e,t,r,n){var a=n/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-a:r.left+.5,y:e==="horizontal"?r.top+.5:t.y-a,width:e==="horizontal"?n:r.width-1,height:e==="horizontal"?r.height-1:n}}var P0=te(ne()),Xa=te(ne());var Cm=te(ne());var E0=1e-4,c8=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],d8=(e,t)=>e.map((r,n)=>r*t**n).reduce((r,n)=>r+n),s8=(e,t)=>r=>{var n=c8(e,t);return d8(n,r)},gG=(e,t)=>r=>{var n=c8(e,t),a=[...n.map((o,i)=>o*i).slice(1),0];return d8(a,r)},yG=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 a=n.map(o=>parseFloat(o));return[a[0],a[1],a[2],a[3]]},hG=function(){for(var t=arguments.length,r=new Array(t),n=0;n{var a=s8(e,r),o=s8(t,n),i=gG(e,r),l=u=>u>1?1:u<0?0:u,s=u=>{for(var c=u>1?1:u,d=c,f=0;f<8;++f){var p=a(d)-c,m=i(d);if(Math.abs(p-c)0&&arguments[0]!==void 0?arguments[0]:{},r=t.stiff,n=r===void 0?100:r,a=t.damping,o=a===void 0?8:a,i=t.dt,l=i===void 0?16.67:i,s=1,u=[0],c=0,d=0,f=1e4,p=0;p{var g,b,x;if(v<=0)return 0;if(v>=1)return s;var S=v*h,w=Math.floor(S),O=S-w;return((g=u[w])!==null&&g!==void 0?g:0)+(((b=u[w+1])!==null&&b!==void 0?b:0)-((x=u[w])!==null&&x!==void 0?x:0))*O}},f8=e=>{if(typeof e=="string")switch(e){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return u8(e);case"spring":return bG();default:if(e.split("(")[0]==="cubic-bezier")return u8(e)}return typeof e=="function"?e:null};var Bd=te(ne());var p8=(e,t,r)=>{var n,a=o=>{var i=t.tick(o);if(t.getState()==="active"){if(r(t.getInterpolated()),t.getProgress()===1){t.complete(),n=void 0;return}n=e.setTimeout(a,i);return}n=e.setTimeout(a,i)};return n=e.setTimeout(a,0),()=>{var o;return(o=n)===null||o===void 0?void 0:o()}};var m8=(0,Bd.createContext)(p8),nhe=m8.Provider;function v8(e){var t=(0,Bd.useContext)(m8);return(0,Bd.useMemo)(()=>e??t,[e,t])}function wG(e,t,r){return(t=SG(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function SG(e){var t=AG(e,"string");return typeof t=="symbol"?t:t+""}function AG(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 g8="init",y8="pending",h8="active",kG="completed";function Tk(e){return Math.max(0,e)}var Mk=class{getAnimationStartedTime(){return this.animationStartedTime}getBeginStartedTime(){return this.beginStartedTime}constructor(t){var r;wG(this,"state",g8),this.animationId=t.animationId,this.onAnimationEnd=t.onAnimationEnd,this.animationDuration=Tk(t.animationDuration),this.animationBegin=Tk(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()===g8)return this.state=y8,this.beginStartedTime=t,this.animationBegin;if(this.getState()===y8){if(this.beginStartedTime==null)throw new Error;var r=t-this.beginStartedTime;return r>=this.animationBegin?(this.state=h8,this.animationStartedTime=t,this.nextAnimationUpdate(0)):Tk(this.animationBegin-r)}if(this.getState()===h8){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=kG}getFrom(){return this.from}getTo(){return this.to}getAnimationId(){return this.animationId}getAnimationBegin(){return this.animationBegin}},_0=class extends Mk{nextAnimationUpdate(){return 0}getInterpolated(){return this.easing(Nt(this.getFrom(),this.getTo(),this.getProgress()))}};var O0=class{setTimeout(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=performance.now(),a=null,o=i=>{i-n>=r?t(i):a=requestAnimationFrame(o)};return a=requestAnimationFrame(o),()=>{a!=null&&cancelAnimationFrame(a)}}};function NG(e,t){return OG(e)||_G(e,t)||EG(e,t)||CG()}function CG(){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 EG(e,t){if(e){if(typeof e=="string")return x8(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)?x8(e,t):void 0}}function x8(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{},onAnimationStart:()=>{}},b8=0,Pk=1;function T0(e){var t=lt(e,TG),r=t.animationId,n=t.isActive,a=t.canBegin,o=t.duration,i=t.easing,l=t.begin,s=t.onAnimationEnd,u=t.onAnimationStart,c=t.children,d=k0(),f=n==="auto"?!Ga.isSsr&&!d:n,p=v8(t.animationController),m=(0,Cm.useState)(f?b8:Pk),y=NG(m,2),h=y[0],v=y[1];return(0,Cm.useEffect)(()=>{f||v(Pk)},[f]),(0,Cm.useEffect)(()=>{var g=f8(i);if(!f||!a||g==null)return Pn;var b=new O0,x=new _0({animationId:r,easing:g,animationDuration:o,animationBegin:l,onAnimationStart:u,onAnimationEnd:s,from:b8,to:Pk});return p(b,x,v)},[p,r,f,a,o,i,l,u,s]),c(Number(h))}var Dk=te(ne());function M0(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"animation-",r=(0,Dk.useRef)(Ci(t)),n=(0,Dk.useRef)(e);return n.current!==e&&(r.current=Ci(t),n.current=e),r.current}var MG=e=>e.replace(/([A-Z])/g,t=>"-".concat(t.toLowerCase())),w8=(e,t,r)=>e.map(n=>"".concat(MG(n)," ").concat(t,"ms ").concat(r)).join(",");var PG=["radius"],DG=["radius"],S8,A8,k8,N8,C8,E8,_8,O8,T8,M8;function P8(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function D8(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{var o=Wa(r),i=Wa(n),l=Math.min(Math.abs(o)/2,Math.abs(i)/2),s=i>=0?1:-1,u=o>=0?1:-1,c=i>=0&&o>=0||i<0&&o<0?1:0,d;if(l>0&&Array.isArray(a)){for(var f=[0,0,0,0],p=0,m=4;pl?l:h}d=qr(S8||(S8=Wo(["M",",",""])),e,t+s*f[0]),f[0]>0&&(d+=qr(A8||(A8=Wo(["A ",",",",0,0,",",",",",""])),f[0],f[0],c,e+u*f[0],t)),d+=qr(k8||(k8=Wo(["L ",",",""])),e+r-u*f[1],t),f[1]>0&&(d+=qr(N8||(N8=Wo(["A ",",",",0,0,",`, + `,",",""])),f[1],f[1],c,e+r,t+s*f[1])),d+=qr(C8||(C8=Wo(["L ",",",""])),e+r,t+n-s*f[2]),f[2]>0&&(d+=qr(E8||(E8=Wo(["A ",",",",0,0,",`, + `,",",""])),f[2],f[2],c,e+r-u*f[2],t+n)),d+=qr(_8||(_8=Wo(["L ",",",""])),e+u*f[3],t+n),f[3]>0&&(d+=qr(O8||(O8=Wo(["A ",",",",0,0,",`, + `,",",""])),f[3],f[3],c,e,t+n-s*f[3])),d+="Z"}else if(l>0&&a===+a&&a>0){var v=Math.min(l,a);d=qr(T8||(T8=Wo(["M ",",",` A `,",",",0,0,",",",",",` L `,",",` A `,",",",0,0,",",",",",` L `,",",` A `,",",",0,0,",",",",",` L `,",",` - A `,",",",0,0,",",",","," Z"])),e,t+s*v,v,v,c,e+u*v,t,e+r-u*v,t,v,v,c,e+r,t+s*v,e+r,t+n-s*v,v,v,c,e+r-u*v,t+n,e+u*v,t+n,v,v,c,e,t+n-s*v)}else d=Hr(y8||(y8=$i(["M ",","," h "," v "," h "," Z"])),e,t,r,n,-r);return d},A8={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},_0=e=>{var t=it(e,A8),r=(0,Ya.useRef)(null),n=(0,Ya.useState)(-1),a=vG(n,2),i=a[0],o=a[1];(0,Ya.useEffect)(()=>{if(r.current&&r.current.getTotalLength)try{var D=r.current.getTotalLength();D&&o(D)}catch{}},[]);var l=t.x,s=t.y,u=t.width,c=t.height,d=t.radius,f=t.className,p=t.animationEasing,m=t.animationDuration,y=t.animationBegin,h=t.isAnimationActive,v=t.isUpdateAnimationActive,g=(0,Ya.useRef)(u),b=(0,Ya.useRef)(c),x=(0,Ya.useRef)(l),S=(0,Ya.useRef)(s),w=(0,Ya.useMemo)(()=>({x:l,y:s,width:u,height:c,radius:d}),[l,s,u,c,d]),_=N0(w,"rectangle-");if(l!==+l||s!==+s||u!==+u||c!==+c||u===0||c===0)return null;var k=Ue("recharts-rectangle",f);if(!v){var A=tr(t),P=A.radius,K=b8(A,uG);return C0.createElement("path",E0({},K,{x:Ua(l),y:Ua(s),width:Ua(u),height:Ua(c),radius:typeof d=="number"?d:void 0,className:k,d:S8(l,s,u,c,d)}))}var z=g.current,Q=b.current,M=x.current,F=S.current,N="0px ".concat(i===-1?1:i,"px"),O="".concat(i,"px ").concat(i,"px"),I=l8(["strokeDasharray"],m,typeof p=="string"?p:A8.animationEasing);return C0.createElement(k0,{animationId:_,key:_,canBegin:i>0,duration:m,easing:p,isActive:v,begin:y},D=>{var T=kt(z,u,D),j=kt(Q,c,D),R=kt(M,l,D),U=kt(F,s,D);r.current&&(g.current=T,b.current=j,x.current=R,S.current=U);var q;h?D>0?q={transition:I,strokeDasharray:O}:q={strokeDasharray:N}:q={strokeDasharray:O};var ee=tr(t),fe=ee.radius,pe=b8(ee,cG);return C0.createElement("path",E0({},pe,{radius:typeof d=="number"?d:void 0,className:k,d:S8(R,U,T,j,d),ref:r,style:x8(x8({},q),t.style)}))})};function k8(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function N8(e){for(var t=1;te*180/Math.PI,Kt=(e,t,r,n)=>({x:e+Math.cos(-Sm*n)*r,y:t+Math.sin(-Sm*n)*r}),O0=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},kG=(e,t)=>{var r=e.x,n=e.y,a=t.x,i=t.y;return Math.sqrt((r-a)**2+(n-i)**2)},NG=(e,t)=>{var r=e.x,n=e.y,a=t.cx,i=t.cy,o=kG({x:r,y:n},{x:a,y:i});if(o<=0)return{radius:o,angle:0};var l=(r-a)/o,s=Math.acos(l);return n>i&&(s=2*Math.PI-s),{radius:o,angle:AG(s),angleInRadian:s}},CG=e=>{var t=e.startAngle,r=e.endAngle,n=Math.floor(t/360),a=Math.floor(r/360),i=Math.min(n,a);return{startAngle:t-i*360,endAngle:r-i*360}},EG=(e,t)=>{var r=t.startAngle,n=t.endAngle,a=Math.floor(r/360),i=Math.floor(n/360),o=Math.min(a,i);return e+o*360},C8=(e,t)=>{var r=e.relativeX,n=e.relativeY,a=NG({x:r,y:n},t),i=a.radius,o=a.angle,l=t.innerRadius,s=t.outerRadius;if(is||i===0)return null;var u=CG(t),c=u.startAngle,d=u.endAngle,f=o,p;if(c<=d){for(;f>d;)f-=360;for(;f=c&&f<=d}else{for(;f>c;)f-=360;for(;f=d&&f<=c}return p?N8(N8({},t),{},{radius:i,angle:EG(f,t)}):null};function T0(e){var t=e.cx,r=e.cy,n=e.radius,a=e.startAngle,i=e.endAngle,o=Kt(t,r,n,a),l=Kt(t,r,n,i);return{points:[o,l],cx:t,cy:r,radius:n,startAngle:a,endAngle:i}}var I8=re(ne());var E8,_8,O8,T8,M8,P8,D8;function Ck(){return Ck=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=Ut(t-e),n=Math.min(Math.abs(t-e),359.999);return r*n},M0=e=>{var t=e.cx,r=e.cy,n=e.radius,a=e.angle,i=e.sign,o=e.isExternal,l=e.cornerRadius,s=e.cornerIsExternal,u=l*(o?1:-1)+n,c=Math.asin(l/u)/Sm,d=s?a:a+i*c,f=Kt(t,r,u,d),p=Kt(t,r,n,d),m=s?a-i*c:a,y=Kt(t,r,u*Math.cos(c*Sm),m);return{center:f,circleTangency:p,lineTangency:y,theta:c}},j8=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,a=e.outerRadius,i=e.startAngle,o=e.endAngle,l=_G(i,o),s=i+l,u=Kt(t,r,a,i),c=Kt(t,r,a,s),d=Hr(E8||(E8=nu(["M ",",",` + A `,",",",0,0,",",",","," Z"])),e,t+s*v,v,v,c,e+u*v,t,e+r-u*v,t,v,v,c,e+r,t+s*v,e+r,t+n-s*v,v,v,c,e+r-u*v,t+n,e+u*v,t+n,v,v,c,e,t+n-s*v)}else d=qr(M8||(M8=Wo(["M ",","," h "," v "," h "," Z"])),e,t,r,n,-r);return d},L8={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},I0=e=>{var t=lt(e,L8),r=(0,Xa.useRef)(null),n=(0,Xa.useState)(-1),a=BG(n,2),o=a[0],i=a[1];(0,Xa.useEffect)(()=>{if(r.current&&r.current.getTotalLength)try{var j=r.current.getTotalLength();j&&i(j)}catch{}},[]);var l=t.x,s=t.y,u=t.width,c=t.height,d=t.radius,f=t.className,p=t.animationEasing,m=t.animationDuration,y=t.animationBegin,h=t.isAnimationActive,v=t.isUpdateAnimationActive,g=(0,Xa.useRef)(u),b=(0,Xa.useRef)(c),x=(0,Xa.useRef)(l),S=(0,Xa.useRef)(s),w=(0,Xa.useMemo)(()=>({x:l,y:s,width:u,height:c,radius:d}),[l,s,u,c,d]),O=M0(w,"rectangle-");if(l!==+l||s!==+s||u!==+u||c!==+c||u===0||c===0)return null;var k=Ue("recharts-rectangle",f);if(!v){var A=rr(t),M=A.radius,W=I8(A,PG);return P0.createElement("path",D0({},W,{x:Wa(l),y:Wa(s),width:Wa(u),height:Wa(c),radius:typeof d=="number"?d:void 0,className:k,d:z8(l,s,u,c,d)}))}var L=g.current,H=b.current,D=x.current,Y=S.current,N="0px ".concat(o===-1?1:o,"px"),_="".concat(o,"px ").concat(o,"px"),z=w8(["strokeDasharray"],m,typeof p=="string"?p:L8.animationEasing);return P0.createElement(T0,{animationId:O,key:O,canBegin:o>0,duration:m,easing:p,isActive:v,begin:y},j=>{var P=Nt(L,u,j),B=Nt(H,c,j),R=Nt(D,l,j),F=Nt(Y,s,j);r.current&&(g.current=P,b.current=B,x.current=R,S.current=F);var G;h?j>0?G={transition:z,strokeDasharray:_}:G={strokeDasharray:N}:G={strokeDasharray:_};var ee=rr(t),fe=ee.radius,de=I8(ee,DG);return P0.createElement("path",D0({},de,{radius:typeof d=="number"?d:void 0,className:k,d:z8(R,F,P,B,d),ref:r,style:D8(D8({},G),t.style)}))})};function B8(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function $8(e){for(var t=1;te*180/Math.PI,qt=(e,t,r,n)=>({x:e+Math.cos(-Em*n)*r,y:t+Math.sin(-Em*n)*r}),j0=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},YG=(e,t)=>{var r=e.x,n=e.y,a=t.x,o=t.y;return Math.sqrt((r-a)**2+(n-o)**2)},GG=(e,t)=>{var r=e.x,n=e.y,a=t.cx,o=t.cy,i=YG({x:r,y:n},{x:a,y:o});if(i<=0)return{radius:i,angle:0};var l=(r-a)/i,s=Math.acos(l);return n>o&&(s=2*Math.PI-s),{radius:i,angle:qG(s),angleInRadian:s}},XG=e=>{var t=e.startAngle,r=e.endAngle,n=Math.floor(t/360),a=Math.floor(r/360),o=Math.min(n,a);return{startAngle:t-o*360,endAngle:r-o*360}},ZG=(e,t)=>{var r=t.startAngle,n=t.endAngle,a=Math.floor(r/360),o=Math.floor(n/360),i=Math.min(a,o);return e+i*360},U8=(e,t)=>{var r=e.relativeX,n=e.relativeY,a=GG({x:r,y:n},t),o=a.radius,i=a.angle,l=t.innerRadius,s=t.outerRadius;if(os||o===0)return null;var u=XG(t),c=u.startAngle,d=u.endAngle,f=i,p;if(c<=d){for(;f>d;)f-=360;for(;f=c&&f<=d}else{for(;f>c;)f-=360;for(;f=d&&f<=c}return p?$8($8({},t),{},{radius:o,angle:ZG(f,t)}):null};function z0(e){var t=e.cx,r=e.cy,n=e.radius,a=e.startAngle,o=e.endAngle,i=qt(t,r,n,a),l=qt(t,r,n,o);return{points:[i,l],cx:t,cy:r,radius:n,startAngle:a,endAngle:o}}var G8=te(ne());var F8,W8,H8,V8,K8,q8,Y8;function Ik(){return Ik=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=Ft(t-e),n=Math.min(Math.abs(t-e),359.999);return r*n},L0=e=>{var t=e.cx,r=e.cy,n=e.radius,a=e.angle,o=e.sign,i=e.isExternal,l=e.cornerRadius,s=e.cornerIsExternal,u=l*(i?1:-1)+n,c=Math.asin(l/u)/Em,d=s?a:a+o*c,f=qt(t,r,u,d),p=qt(t,r,n,d),m=s?a-o*c:a,y=qt(t,r,u*Math.cos(c*Em),m);return{center:f,circleTangency:p,lineTangency:y,theta:c}},X8=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,a=e.outerRadius,o=e.startAngle,i=e.endAngle,l=QG(o,i),s=o+l,u=qt(t,r,a,o),c=qt(t,r,a,s),d=qr(F8||(F8=ou(["M ",",",` A `,",",`,0, `,",",`, `,",",` - `])),u.x,u.y,a,a,+(Math.abs(l)>180),+(i>s),c.x,c.y);if(n>0){var f=Kt(t,r,n,i),p=Kt(t,r,n,s);d+=Hr(_8||(_8=nu(["L ",",",` + `])),u.x,u.y,a,a,+(Math.abs(l)>180),+(o>s),c.x,c.y);if(n>0){var f=qt(t,r,n,o),p=qt(t,r,n,s);d+=qr(W8||(W8=ou(["L ",",",` A `,",",`,0, `,",",`, - `,","," Z"])),p.x,p.y,n,n,+(Math.abs(l)>180),+(i<=s),f.x,f.y)}else d+=Hr(O8||(O8=nu(["L ",","," Z"])),t,r);return d},OG=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,a=e.outerRadius,i=e.cornerRadius,o=e.forceCornerRadius,l=e.cornerIsExternal,s=e.startAngle,u=e.endAngle,c=Ut(u-s),d=M0({cx:t,cy:r,radius:a,angle:s,sign:c,cornerRadius:i,cornerIsExternal:l}),f=d.circleTangency,p=d.lineTangency,m=d.theta,y=M0({cx:t,cy:r,radius:a,angle:u,sign:-c,cornerRadius:i,cornerIsExternal:l}),h=y.circleTangency,v=y.lineTangency,g=y.theta,b=l?Math.abs(s-u):Math.abs(s-u)-m-g;if(b<0)return o?Hr(T8||(T8=nu(["M ",",",` + `,","," Z"])),p.x,p.y,n,n,+(Math.abs(l)>180),+(o<=s),f.x,f.y)}else d+=qr(H8||(H8=ou(["L ",","," Z"])),t,r);return d},JG=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,a=e.outerRadius,o=e.cornerRadius,i=e.forceCornerRadius,l=e.cornerIsExternal,s=e.startAngle,u=e.endAngle,c=Ft(u-s),d=L0({cx:t,cy:r,radius:a,angle:s,sign:c,cornerRadius:o,cornerIsExternal:l}),f=d.circleTangency,p=d.lineTangency,m=d.theta,y=L0({cx:t,cy:r,radius:a,angle:u,sign:-c,cornerRadius:o,cornerIsExternal:l}),h=y.circleTangency,v=y.lineTangency,g=y.theta,b=l?Math.abs(s-u):Math.abs(s-u)-m-g;if(b<0)return i?qr(V8||(V8=ou(["M ",",",` a`,",",",0,0,1,",`,0 a`,",",",0,0,1,",`,0 - `])),p.x,p.y,i,i,i*2,i,i,-i*2):j8({cx:t,cy:r,innerRadius:n,outerRadius:a,startAngle:s,endAngle:u});var x=Hr(M8||(M8=nu(["M ",",",` + `])),p.x,p.y,o,o,o*2,o,o,-o*2):X8({cx:t,cy:r,innerRadius:n,outerRadius:a,startAngle:s,endAngle:u});var x=qr(K8||(K8=ou(["M ",",",` A`,",",",0,0,",",",",",` A`,",",",0,",",",",",",",` A`,",",",0,0,",",",",",` - `])),p.x,p.y,i,i,+(c<0),f.x,f.y,a,a,+(b>180),+(c<0),h.x,h.y,i,i,+(c<0),v.x,v.y);if(n>0){var S=M0({cx:t,cy:r,radius:n,angle:s,sign:c,isExternal:!0,cornerRadius:i,cornerIsExternal:l}),w=S.circleTangency,_=S.lineTangency,k=S.theta,A=M0({cx:t,cy:r,radius:n,angle:u,sign:-c,isExternal:!0,cornerRadius:i,cornerIsExternal:l}),P=A.circleTangency,K=A.lineTangency,z=A.theta,Q=l?Math.abs(s-u):Math.abs(s-u)-k-z;if(Q<0&&i===0)return"".concat(x,"L").concat(t,",").concat(r,"Z");x+=Hr(P8||(P8=nu(["L",",",` + `])),p.x,p.y,o,o,+(c<0),f.x,f.y,a,a,+(b>180),+(c<0),h.x,h.y,o,o,+(c<0),v.x,v.y);if(n>0){var S=L0({cx:t,cy:r,radius:n,angle:s,sign:c,isExternal:!0,cornerRadius:o,cornerIsExternal:l}),w=S.circleTangency,O=S.lineTangency,k=S.theta,A=L0({cx:t,cy:r,radius:n,angle:u,sign:-c,isExternal:!0,cornerRadius:o,cornerIsExternal:l}),M=A.circleTangency,W=A.lineTangency,L=A.theta,H=l?Math.abs(s-u):Math.abs(s-u)-k-L;if(H<0&&o===0)return"".concat(x,"L").concat(t,",").concat(r,"Z");x+=qr(q8||(q8=ou(["L",",",` A`,",",",0,0,",",",",",` A`,",",",0,",",",",",",",` - A`,",",",0,0,",",",",","Z"])),K.x,K.y,i,i,+(c<0),P.x,P.y,n,n,+(Q>180),+(c>0),w.x,w.y,i,i,+(c<0),_.x,_.y)}else x+=Hr(D8||(D8=nu(["L",",","Z"])),t,r);return x},TG={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},P0=e=>{var t=it(e,TG),r=t.cx,n=t.cy,a=t.innerRadius,i=t.outerRadius,o=t.cornerRadius,l=t.forceCornerRadius,s=t.cornerIsExternal,u=t.startAngle,c=t.endAngle,d=t.className;if(i0&&Math.abs(u-c)<360?y=OG({cx:r,cy:n,innerRadius:a,outerRadius:i,cornerRadius:Math.min(m,p/2),forceCornerRadius:l,cornerIsExternal:s,startAngle:u,endAngle:c}):y=j8({cx:r,cy:n,innerRadius:a,outerRadius:i,startAngle:u,endAngle:c}),I8.createElement("path",Ck({},tr(t),{className:f,d:y}))};function z8(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(eh(t)){if(e==="centric"){var n=t.cx,a=t.cy,i=t.innerRadius,o=t.outerRadius,l=t.angle,s=Kt(n,a,i,l),u=Kt(n,a,o,l);return[{x:s.x,y:s.y},{x:u.x,y:u.y}]}return T0(t)}}function L8(e){return Th(e)?NaN:Number(e)}function D0(e){return e?(e=L8(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function I0(e,t,r){r&&typeof r!="number"&&om(e,t,r)&&(t=r=void 0),e=D0(e),t===void 0?(t=e,e=0):t=D0(t),r=r===void 0?ee.chartData,au=Z([Jn],e=>{var t=e.chartData!=null?e.chartData.length-1:0;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),iu=(e,t,r,n)=>n?au(e):Jn(e),j0=(e,t,r)=>r?au(e):Jn(e),B8=Z([iu],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]}),$8=Z([au],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]}),U8=Z([Jn],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]});function Ek(e,t){return IG(e)||DG(e,t)||PG(e,t)||MG()}function MG(){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 PG(e,t){if(e){if(typeof e=="string")return F8(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)?F8(e,t):void 0}}function F8(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=Am(e,2),r=t[0],n=t[1],a=r,i=n;return r>n&&(a=n,i=r),[a,i]},Pk=(e,t,r)=>{if(e.lte(0))return new bt.default(0);var n=Tk(e.toNumber()),a=new bt.default(10).pow(n),i=e.div(a),o=n!==1?.05:.1,l=new bt.default(Math.ceil(i.div(o).toNumber())).add(r).mul(o),s=l.mul(a);return t?new bt.default(s.toNumber()):new bt.default(Math.ceil(s.toNumber()))},Y8=(e,t,r)=>{var n;if(e.lte(0))return new bt.default(0);var a=[1,2,2.5,5],i=e.toNumber(),o=Math.floor(new bt.default(i).abs().log(10).toNumber()),l=new bt.default(10).pow(o),s=e.div(l).toNumber(),u=a.findIndex(p=>p>=s-1e-10);if(u===-1&&(l=l.mul(10),u=0),u+=r,u>=a.length){var c=Math.floor(u/a.length);u%=a.length,l=l.mul(new bt.default(10).pow(c))}var d=(n=a[u])!==null&&n!==void 0?n:1,f=new bt.default(d).mul(l);return t?f:new bt.default(Math.ceil(f.toNumber()))},$G=(e,t,r)=>{var n=new bt.default(1),a=new bt.default(e);if(!a.isint()&&r){var i=Math.abs(e);i<1?(n=new bt.default(10).pow(Tk(e)-1),a=new bt.default(Math.floor(a.div(n).toNumber())).mul(n)):i>1&&(a=new bt.default(Math.floor(e)))}else e===0?a=new bt.default(Math.floor((t-1)/2)):r||(a=new bt.default(Math.floor(e)));for(var o=Math.floor((t-1)/2),l=[],s=0;s4&&arguments[4]!==void 0?arguments[4]:0,o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:Pk;if(!Number.isFinite((r-t)/(n-1)))return{step:new bt.default(0),tickMin:new bt.default(0),tickMax:new bt.default(0)};var l=o(new bt.default(r).sub(t).div(n-1),a,i),s;t<=0&&r>=0?s=new bt.default(0):(s=new bt.default(t).add(r).div(2),s=s.sub(new bt.default(s).mod(l)));var u=Math.ceil(s.sub(t).div(l).toNumber()),c=Math.ceil(new bt.default(r).sub(s).div(l).toNumber()),d=u+c+1;return d>n?G8(t,r,n,a,i+1,o):(d0?c+(n-d):c,u=r>0?u:u+(n-d)),{step:l,tickMin:s.sub(new bt.default(u).mul(l)),tickMax:s.add(new bt.default(c).mul(l))})};var B0=function(t){var r=Am(t,2),n=r[0],a=r[1],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",s=Math.max(i,2),u=q8([n,a]),c=Am(u,2),d=c[0],f=c[1];if(d===-1/0||f===1/0){var p=f===1/0?[d,...Array(i-1).fill(1/0)]:[...Array(i-1).fill(-1/0),f];return n>a?p.reverse():p}if(d===f)return $G(d,i,o);var m=l==="snap125"?Y8:Pk,y=G8(d,f,s,o,0,m),h=y.step,v=y.tickMin,g=y.tickMax,b=Mk(v,g.add(new bt.default(.1).mul(h)),h);return n>a?b.reverse():b},$0=function(t,r){var n=Am(t,2),a=n[0],i=n[1],o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",s=q8([a,i]),u=Am(s,2),c=u[0],d=u[1];if(c===-1/0||d===1/0)return[a,i];if(c===d)return[c];var f=l==="snap125"?Y8:Pk,p=Math.max(r,2),m=f(new bt.default(d).sub(c).div(p-1),o,0),y=[...Mk(new bt.default(c),new bt.default(d),m),d];if(o===!1){y=y.map(v=>Math.round(v));var h=y.length-1;h>0&&y[h]===y[h-1]&&(y=y.slice(0,h))}return a>i?y.reverse():y};var Dk=e=>e.rootProps.maxBarSize,X8=e=>e.rootProps.barGap,U0=e=>e.rootProps.barCategoryGap,Z8=e=>e.rootProps.barSize,Bl=e=>e.rootProps.stackOffset,F0=e=>e.rootProps.reverseStackOrder,jd=e=>e.options.chartName,W0=e=>e.rootProps.syncId,Ik=e=>e.rootProps.syncMethod,H0=e=>e.options.eventEmitter,Q8=e=>e.rootProps.baseValue;var ut={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 $l={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:ut.axis};var yi={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:ut.axis};var ou=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function lu(e,t,r){if(r!=="auto")return r;if(e!=null)return hn(e,t)?"category":"number"}function J8(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function V0(e){for(var t=1;t{if(t!=null)return e.polarAxis.angleAxis[t]},K0=Z([HG,m0],(e,t)=>{var r;if(e!=null)return e;var n=(r=lu(t,"angleAxis",R8.type))!==null&&r!==void 0?r:"category";return V0(V0({},R8),{},{type:n})}),VG=(e,t)=>e.polarAxis.radiusAxis[t],q0=Z([VG,m0],(e,t)=>{var r;if(e!=null)return e;var n=(r=lu(t,"radiusAxis",e6.type))!==null&&r!==void 0?r:"category";return V0(V0({},e6),{},{type:n})}),Y0=e=>e.polarOptions,jk=Z([rn,nn,It],O0),t6=Z([Y0,jk],(e,t)=>{if(e!=null)return pr(e.innerRadius,t,0)}),r6=Z([Y0,jk],(e,t)=>{if(e!=null)return pr(e.outerRadius,t,t*.8)}),KG=e=>{if(e==null)return[0,0];var t=e.startAngle,r=e.endAngle;return[t,r]},zk=Z([Y0],KG),Jhe=Z([K0,zk],ou),Lk=Z([jk,t6,r6],(e,t,r)=>{if(!(e==null||t==null||r==null))return[t,r]}),Rhe=Z([q0,Lk],ou),G0=Z([Ke,Y0,t6,r6,rn,nn],(e,t,r,n,a,i)=>{if(!(e!=="centric"&&e!=="radial"||t==null||r==null||n==null)){var o=t.cx,l=t.cy,s=t.startAngle,u=t.endAngle;return{cx:pr(o,a,a/2),cy:pr(l,i,i/2),innerRadius:r,outerRadius:n,startAngle:s,endAngle:u,clockWise:!1}}});var rr=(e,t)=>t;var su=(e,t,r)=>r;function Ul(e){return e?.id}function X0(e,t,r){var n=t.chartData,a=n===void 0?[]:n,i=r.allowDuplicatedCategory,o=r.dataKey,l=new Map;return e.forEach(s=>{var u,c=(u=s.data)!==null&&u!==void 0?u:a;if(!(c==null||c.length===0)){var d=Ul(s);c.forEach((f,p)=>{var m=o==null||i?p:String(Xe(f,o,null)),y=Xe(f,s.dataKey,0),h;l.has(m)?h=l.get(m):h={},Object.assign(h,{[d]:y}),l.set(m,h)})}}),Array.from(l.values())}function uu(e){return"stackId"in e&&e.stackId!=null&&e.dataKey!=null}var cu=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function zd(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function n6(e,t){if(e.length===t.length){for(var r=0;r{var t=Ke(e);return t==="horizontal"?"xAxis":t==="vertical"?"yAxis":t==="centric"?"angleAxis":"radiusAxis"};var Fl=e=>e.tooltip.settings.axisId;function km(e){if(e!=null){var t=e.ticks,r=e.bandwidth,n=e.range(),a=[Math.min(...n),Math.max(...n)];return{domain:()=>e.domain(),range:(function(i){function o(){return i.apply(this,arguments)}return o.toString=function(){return i.toString()},o})(()=>a),rangeMin:()=>a[0],rangeMax:()=>a[1],isInRange(i){var o=a[0],l=a[1];return o<=l?i>=o&&i<=l:i>=l&&i<=o},bandwidth:r?()=>r.call(e):void 0,ticks:t?i=>t.call(e,i):void 0,map:(i,o)=>{var l=e(i);if(l!=null){if(e.bandwidth&&o!==null&&o!==void 0&&o.position){var s=e.bandwidth();switch(o.position){case"middle":l+=s/2;break;case"end":l+=s;break;default:break}}return l}}}}}var Z0=(e,t)=>{if(t!=null)switch(e){case"linear":{if(!wa(t)){for(var r,n,a=0;an)&&(n=i))}return r!==void 0&&n!==void 0?[r,n]:void 0}return t}default:return t}};var Km={};H$(Km,{scaleBand:()=>_m,scaleDiverging:()=>Mx,scaleDivergingLog:()=>gN,scaleDivergingPow:()=>Px,scaleDivergingSqrt:()=>NI,scaleDivergingSymlog:()=>yN,scaleIdentity:()=>vx,scaleImplicit:()=>nx,scaleLinear:()=>mx,scaleLog:()=>gx,scaleOrdinal:()=>$d,scalePoint:()=>c6,scalePow:()=>$m,scaleQuantile:()=>xx,scaleQuantize:()=>bx,scaleRadial:()=>hx,scaleSequential:()=>Ex,scaleSequentialLog:()=>mN,scaleSequentialPow:()=>_x,scaleSequentialQuantile:()=>Ox,scaleSequentialSqrt:()=>kI,scaleSequentialSymlog:()=>vN,scaleSqrt:()=>q6,scaleSymlog:()=>yx,scaleThreshold:()=>wx,scaleTime:()=>fN,scaleUtc:()=>pN,tickFormat:()=>Im});function Pn(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function Bk(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function du(e){let t,r,n;e.length!==2?(t=Pn,r=(l,s)=>Pn(e(l),s),n=(l,s)=>e(l)-s):(t=e===Pn||e===Bk?e:qG,r=e,n=e);function a(l,s,u=0,c=l.length){if(u>>1;r(l[d],s)<0?u=d+1:c=d}while(u>>1;r(l[d],s)<=0?u=d+1:c=d}while(uu&&n(l[d-1],s)>-n(l[d],s)?d-1:d}return{left:a,center:o,right:i}}function qG(){return 0}function Nm(e){return e===null?NaN:+e}function*a6(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 i6=du(Pn),o6=i6.right,YG=i6.left,GG=du(Nm).center,hi=o6;var Ld=class extends Map{constructor(t,r=QG){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(let[n,a]of t)this.set(n,a)}get(t){return super.get(l6(this,t))}has(t){return super.has(l6(this,t))}set(t,r){return super.set(XG(this,t),r)}delete(t){return super.delete(ZG(this,t))}};function l6({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):r}function XG({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function ZG({_intern:e,_key:t},r){let n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function QG(e){return e!==null&&typeof e=="object"?e.valueOf():e}function s6(e=Pn){if(e===Pn)return $k;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 $k(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}var JG=Math.sqrt(50),RG=Math.sqrt(10),eX=Math.sqrt(2);function Q0(e,t,r){let n=(t-e)/Math.max(0,r),a=Math.floor(Math.log10(n)),i=n/Math.pow(10,a),o=i>=JG?10:i>=RG?5:i>=eX?2:1,l,s,u;return a<0?(u=Math.pow(10,-a)/o,l=Math.round(e*u),s=Math.round(t*u),l/ut&&--s,u=-u):(u=Math.pow(10,a)*o,l=Math.round(e/u),s=Math.round(t/u),l*ut&&--s),s0))return[];if(e===t)return[e];let n=t=a))return[];let l=i-a+1,s=new Array(l);if(n)if(o<0)for(let u=0;u=n)&&(r=n);else{let n=-1;for(let a of e)(a=t(a,++n,e))!=null&&(r=a)&&(r=a)}return r}function R0(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 a of e)(a=t(a,++n,e))!=null&&(r>a||r===void 0&&a>=a)&&(r=a)}return r}function ex(e,t,r=0,n=1/0,a){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(a=a===void 0?$k:s6(a);n>r;){if(n-r>600){let s=n-r+1,u=t-r+1,c=Math.log(s),d=.5*Math.exp(2*c/3),f=.5*Math.sqrt(c*d*(s-d)/s)*(u-s/2<0?-1:1),p=Math.max(r,Math.floor(t-u*d/s+f)),m=Math.min(n,Math.floor(t+(s-u)*d/s+f));ex(e,t,p,m,a)}let i=e[t],o=r,l=n;for(Em(e,r,t),a(e[n],i)>0&&Em(e,r,n);o0;)--l}a(e[r],i)===0?Em(e,r,l):(++l,Em(e,l,n)),l<=t&&(r=l+1),t<=l&&(n=l-1)}return e}function Em(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}function tx(e,t,r){if(e=Float64Array.from(a6(e,r)),!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return R0(e);if(t>=1)return J0(e);var n,a=(n-1)*t,i=Math.floor(a),o=J0(ex(e,i).subarray(0,i+1)),l=R0(e.subarray(i+1));return o+(l-o)*(a-i)}}function Uk(e,t,r=Nm){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,a=(n-1)*t,i=Math.floor(a),o=+r(e[i],i,e),l=+r(e[i+1],i+1,e);return o+(l-o)*(a-i)}}function rx(e,t,r){e=+e,t=+t,r=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+r;for(var n=-1,a=Math.max(0,Math.ceil((t-e)/r))|0,i=new Array(a);++n>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?ix(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?ix(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=rX.exec(e))?new Rn(t[1],t[2],t[3],1):(t=nX.exec(e))?new Rn(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=aX.exec(e))?ix(t[1],t[2],t[3],t[4]):(t=iX.exec(e))?ix(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=oX.exec(e))?y6(t[1],t[2]/100,t[3]/100,1):(t=lX.exec(e))?y6(t[1],t[2]/100,t[3]/100,t[4]):d6.hasOwnProperty(e)?m6(d6[e]):e==="transparent"?new Rn(NaN,NaN,NaN,0):null}function m6(e){return new Rn(e>>16&255,e>>8&255,e&255,1)}function ix(e,t,r,n){return n<=0&&(e=t=r=NaN),new Rn(e,t,r,n)}function cX(e){return e instanceof Mm||(e=Wl(e)),e?(e=e.rgb(),new Rn(e.r,e.g,e.b,e.opacity)):new Rn}function Fd(e,t,r,n){return arguments.length===1?cX(e):new Rn(e,t,r,n??1)}function Rn(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}ax(Rn,Fd,Fk(Mm,{brighter(e){return e=e==null?lx:Math.pow(lx,e),new Rn(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Om:Math.pow(Om,e),new Rn(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Rn(mu(this.r),mu(this.g),mu(this.b),sx(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:v6,formatHex:v6,formatHex8:dX,formatRgb:g6,toString:g6}));function v6(){return`#${pu(this.r)}${pu(this.g)}${pu(this.b)}`}function dX(){return`#${pu(this.r)}${pu(this.g)}${pu(this.b)}${pu((isNaN(this.opacity)?1:this.opacity)*255)}`}function g6(){let e=sx(this.opacity);return`${e===1?"rgb(":"rgba("}${mu(this.r)}, ${mu(this.g)}, ${mu(this.b)}${e===1?")":`, ${e})`}`}function sx(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function mu(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function pu(e){return e=mu(e),(e<16?"0":"")+e.toString(16)}function y6(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new xi(e,t,r,n)}function x6(e){if(e instanceof xi)return new xi(e.h,e.s,e.l,e.opacity);if(e instanceof Mm||(e=Wl(e)),!e)return new xi;if(e instanceof xi)return e;e=e.rgb();var t=e.r/255,r=e.g/255,n=e.b/255,a=Math.min(t,r,n),i=Math.max(t,r,n),o=NaN,l=i-a,s=(i+a)/2;return l?(t===i?o=(r-n)/l+(r0&&s<1?0:o,new xi(o,l,s,e.opacity)}function b6(e,t,r,n){return arguments.length===1?x6(e):new xi(e,t,r,n??1)}function xi(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}ax(xi,b6,Fk(Mm,{brighter(e){return e=e==null?lx:Math.pow(lx,e),new xi(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Om:Math.pow(Om,e),new xi(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,a=2*r-n;return new Rn(Wk(e>=240?e-240:e+120,a,n),Wk(e,a,n),Wk(e<120?e+240:e-120,a,n),this.opacity)},clamp(){return new xi(h6(this.h),ox(this.s),ox(this.l),sx(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=sx(this.opacity);return`${e===1?"hsl(":"hsla("}${h6(this.h)}, ${ox(this.s)*100}%, ${ox(this.l)*100}%${e===1?")":`, ${e})`}`}}));function h6(e){return e=(e||0)%360,e<0?e+360:e}function ox(e){return Math.max(0,Math.min(1,e||0))}function Wk(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 Hk(e,t,r,n,a){var i=e*e,o=i*e;return((1-3*e+3*i-o)*t+(4-6*i+3*o)*r+(1+3*e+3*i-3*o)*n+o*a)/6}function w6(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),a=e[n],i=e[n+1],o=n>0?e[n-1]:2*a-i,l=n()=>e;function fX(e,t){return function(r){return e+r*t}}function pX(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 A6(e){return(e=+e)==1?ux:function(t,r){return r-t?pX(t,r,e):Pm(isNaN(t)?r:t)}}function ux(e,t){var r=t-e;return r?fX(e,r):Pm(isNaN(e)?t:e)}var Vk=(function e(t){var r=A6(t);function n(a,i){var o=r((a=Fd(a)).r,(i=Fd(i)).r),l=r(a.g,i.g),s=r(a.b,i.b),u=ux(a.opacity,i.opacity);return function(c){return a.r=o(c),a.g=l(c),a.b=s(c),a.opacity=u(c),a+""}}return n.gamma=e,n})(1);function k6(e){return function(t){var r=t.length,n=new Array(r),a=new Array(r),i=new Array(r),o,l;for(o=0;or&&(i=t.slice(r,i),l[o]?l[o]+=i:l[++o]=i),(n=n[0])===(a=a[0])?l[o]?l[o]+=a:l[++o]=a:(l[++o]=null,s.push({i:o,x:Hl(n,a)})),r=Kk.lastIndex;return rt&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function yX(e,t,r){var n=e[0],a=e[1],i=t[0],o=t[1];return a2?hX:yX,s=u=null,d}function d(f){return f==null||isNaN(f=+f)?i:(s||(s=l(e.map(n),t,r)))(n(o(f)))}return d.invert=function(f){return o(a((u||(u=l(t,e.map(n),Hl)))(f)))},d.domain=function(f){return arguments.length?(e=Array.from(f,Vl),c()):e.slice()},d.range=function(f){return arguments.length?(t=Array.from(f),c()):t.slice()},d.rangeRound=function(f){return t=Array.from(f),r=vu,c()},d.clamp=function(f){return arguments.length?(o=f?!0:Kr,c()):o!==Kr},d.interpolate=function(f){return arguments.length?(r=f,c()):r},d.unknown=function(f){return arguments.length?(i=f,d):i},function(f,p){return n=f,a=p,c()}}function yu(){return gu()(Kr,Kr)}function P6(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function hu(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 Wi(e){return e=hu(Math.abs(e)),e?e[1]:NaN}function D6(e,t){return function(r,n){for(var a=r.length,i=[],o=0,l=e[0],s=0;a>0&&l>0&&(s+l+1>n&&(l=Math.max(1,n-s)),i.push(r.substring(a-=l,a+l)),!((s+=l+1)>n));)l=e[o=(o+1)%e.length];return i.reverse().join(t)}}function I6(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var xX=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Hi(e){if(!(t=xX.exec(e)))throw new Error("invalid format: "+e);var t;return new dx({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]})}Hi.prototype=dx.prototype;function dx(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+""}dx.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 j6(e){e:for(var t=e.length,r=1,n=-1,a;r0&&(n=0);break}return n>0?e.slice(0,n)+e.slice(a+1):e}var Dm;function z6(e,t){var r=hu(e,t);if(!r)return Dm=void 0,e.toPrecision(t);var n=r[0],a=r[1],i=a-(Dm=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,o=n.length;return i===o?n:i>o?n+new Array(i-o+1).join("0"):i>0?n.slice(0,i)+"."+n.slice(i):"0."+new Array(1-i).join("0")+hu(e,Math.max(0,t+i-1))[0]}function Xk(e,t){var r=hu(e,t);if(!r)return e+"";var n=r[0],a=r[1];return a<0?"0."+new Array(-a).join("0")+n:n.length>a+1?n.slice(0,a+1)+"."+n.slice(a+1):n+new Array(a-n.length+2).join("0")}var Zk={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:P6,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)=>Xk(e*100,t),r:Xk,s:z6,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Qk(e){return e}var L6=Array.prototype.map,B6=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function $6(e){var t=e.grouping===void 0||e.thousands===void 0?Qk:D6(L6.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",n=e.currency===void 0?"":e.currency[1]+"",a=e.decimal===void 0?".":e.decimal+"",i=e.numerals===void 0?Qk:I6(L6.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",l=e.minus===void 0?"\u2212":e.minus+"",s=e.nan===void 0?"NaN":e.nan+"";function u(d,f){d=Hi(d);var p=d.fill,m=d.align,y=d.sign,h=d.symbol,v=d.zero,g=d.width,b=d.comma,x=d.precision,S=d.trim,w=d.type;w==="n"?(b=!0,w="g"):Zk[w]||(x===void 0&&(x=12),S=!0,w="g"),(v||p==="0"&&m==="=")&&(v=!0,p="0",m="=");var _=(f&&f.prefix!==void 0?f.prefix:"")+(h==="$"?r:h==="#"&&/[boxX]/.test(w)?"0"+w.toLowerCase():""),k=(h==="$"?n:/[%p]/.test(w)?o:"")+(f&&f.suffix!==void 0?f.suffix:""),A=Zk[w],P=/[defgprs%]/.test(w);x=x===void 0?6:/[gprs]/.test(w)?Math.max(1,Math.min(21,x)):Math.max(0,Math.min(20,x));function K(z){var Q=_,M=k,F,N,O;if(w==="c")M=A(z)+M,z="";else{z=+z;var I=z<0||1/z<0;if(z=isNaN(z)?s:A(Math.abs(z),x),S&&(z=j6(z)),I&&+z==0&&y!=="+"&&(I=!1),Q=(I?y==="("?y:l:y==="-"||y==="("?"":y)+Q,M=(w==="s"&&!isNaN(z)&&Dm!==void 0?B6[8+Dm/3]:"")+M+(I&&y==="("?")":""),P){for(F=-1,N=z.length;++FO||O>57){M=(O===46?a+z.slice(F+1):z.slice(F))+M,z=z.slice(0,F);break}}}b&&!v&&(z=t(z,1/0));var D=Q.length+z.length+M.length,T=D>1)+Q+z+M+T.slice(D);break;default:z=T+Q+z+M;break}return i(z)}return K.toString=function(){return d+""},K}function c(d,f){var p=Math.max(-8,Math.min(8,Math.floor(Wi(f)/3)))*3,m=Math.pow(10,-p),y=u((d=Hi(d),d.type="f",d),{suffix:B6[8+p/3]});return function(h){return y(m*h)}}return{format:u,formatPrefix:c}}var fx,Wd,px;Jk({thousands:",",grouping:[3],currency:["$",""]});function Jk(e){return fx=$6(e),Wd=fx.format,px=fx.formatPrefix,fx}function Rk(e){return Math.max(0,-Wi(Math.abs(e)))}function eN(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Wi(t)/3)))*3-Wi(Math.abs(e)))}function tN(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Wi(t)-Wi(e))+1}function Im(e,t,r,n){var a=Bd(e,t,r),i;switch(n=Hi(n??",f"),n.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(i=eN(a,o))&&(n.precision=i),px(n,o)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(i=tN(a,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=i-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(i=Rk(a))&&(n.precision=i-(n.type==="%")*2);break}}return Wd(n)}function Dn(e){var t=e.domain;return e.ticks=function(r){var n=t();return fu(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var a=t();return Im(a[0],a[a.length-1],r??10,n)},e.nice=function(r){r==null&&(r=10);var n=t(),a=0,i=n.length-1,o=n[a],l=n[i],s,u,c=10;for(l0;){if(u=Cm(o,l,r),u===s)return n[a]=o,n[i]=l,t(n);if(u>0)o=Math.floor(o/u)*u,l=Math.ceil(l/u)*u;else if(u<0)o=Math.ceil(o*u)/u,l=Math.floor(l*u)/u;else break;s=u}return e},e}function mx(){var e=yu();return e.copy=function(){return Fi(e,mx())},or.apply(e,arguments),Dn(e)}function vx(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,Vl),r):e.slice()},r.unknown=function(n){return arguments.length?(t=n,r):t},r.copy=function(){return vx(e).unknown(t)},e=arguments.length?Array.from(e,Vl):[0,1],Dn(r)}function jm(e,t){e=e.slice();var r=0,n=e.length-1,a=e[r],i=e[n],o;return iMath.pow(e,t)}function kX(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 W6(e){return(t,r)=>-e(-t,r)}function zm(e){let t=e(U6,F6),r=t.domain,n=10,a,i;function o(){return a=kX(n),i=AX(n),r()[0]<0?(a=W6(a),i=W6(i),e(bX,wX)):e(U6,F6),t}return t.base=function(l){return arguments.length?(n=+l,o()):n},t.domain=function(l){return arguments.length?(r(l),o()):r()},t.ticks=l=>{let s=r(),u=s[0],c=s[s.length-1],d=c0){for(;f<=p;++f)for(m=1;mc)break;v.push(y)}}else for(;f<=p;++f)for(m=n-1;m>=1;--m)if(y=f>0?m/i(-f):m*i(f),!(yc)break;v.push(y)}v.length*2{if(l==null&&(l=10),s==null&&(s=n===10?"s":","),typeof s!="function"&&(!(n%1)&&(s=Hi(s)).precision==null&&(s.trim=!0),s=Wd(s)),l===1/0)return s;let u=Math.max(1,n*l/t.ticks().length);return c=>{let d=c/i(Math.round(a(c)));return d*nr(jm(r(),{floor:l=>i(Math.floor(a(l))),ceil:l=>i(Math.ceil(a(l)))})),t}function gx(){let e=zm(gu()).domain([1,10]);return e.copy=()=>Fi(e,gx()).base(e.base()),or.apply(e,arguments),e}function H6(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function V6(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Lm(e){var t=1,r=e(H6(t),V6(t));return r.constant=function(n){return arguments.length?e(H6(t=+n),V6(t)):t},Dn(r)}function yx(){var e=Lm(gu());return e.copy=function(){return Fi(e,yx()).constant(e.constant())},or.apply(e,arguments)}function K6(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function NX(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function CX(e){return e<0?-e*e:e*e}function Bm(e){var t=e(Kr,Kr),r=1;function n(){return r===1?e(Kr,Kr):r===.5?e(NX,CX):e(K6(r),K6(1/r))}return t.exponent=function(a){return arguments.length?(r=+a,n()):r},Dn(t)}function $m(){var e=Bm(gu());return e.copy=function(){return Fi(e,$m()).exponent(e.exponent())},or.apply(e,arguments),e}function q6(){return $m.apply(null,arguments).exponent(.5)}function Y6(e){return Math.sign(e)*e*e}function EX(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function hx(){var e=yu(),t=[0,1],r=!1,n;function a(i){var o=EX(e(i));return isNaN(o)?n:r?Math.round(o):o}return a.invert=function(i){return e.invert(Y6(i))},a.domain=function(i){return arguments.length?(e.domain(i),a):e.domain()},a.range=function(i){return arguments.length?(e.range((t=Array.from(i,Vl)).map(Y6)),a):t.slice()},a.rangeRound=function(i){return a.range(i).round(!0)},a.round=function(i){return arguments.length?(r=!!i,a):r},a.clamp=function(i){return arguments.length?(e.clamp(i),a):e.clamp()},a.unknown=function(i){return arguments.length?(n=i,a):n},a.copy=function(){return hx(e.domain(),t).round(r).clamp(e.clamp()).unknown(n)},or.apply(a,arguments),Dn(a)}function xx(){var e=[],t=[],r=[],n;function a(){var o=0,l=Math.max(1,t.length);for(r=new Array(l-1);++o0?r[l-1]:e[0],l=r?[n[r-1],t]:[n[u-1],n[u]]},o.unknown=function(s){return arguments.length&&(i=s),o},o.thresholds=function(){return n.slice()},o.copy=function(){return bx().domain([e,t]).range(a).unknown(i)},or.apply(Dn(o),arguments)}function wx(){var e=[.5],t=[0,1],r,n=1;function a(i){return i!=null&&i<=i?t[hi(e,i,0,n)]:r}return a.domain=function(i){return arguments.length?(e=Array.from(i),n=Math.min(e.length,t.length-1),a):e.slice()},a.range=function(i){return arguments.length?(t=Array.from(i),n=Math.min(e.length,t.length-1),a):t.slice()},a.invertExtent=function(i){var o=t.indexOf(i);return[e[o-1],e[o]]},a.unknown=function(i){return arguments.length?(r=i,a):r},a.copy=function(){return wx().domain(e).range(t).unknown(r)},or.apply(a,arguments)}var rN=new Date,nN=new Date;function Ft(e,t,r,n){function a(i){return e(i=arguments.length===0?new Date:new Date(+i)),i}return a.floor=i=>(e(i=new Date(+i)),i),a.ceil=i=>(e(i=new Date(i-1)),t(i,1),e(i),i),a.round=i=>{let o=a(i),l=a.ceil(i);return i-o(t(i=new Date(+i),o==null?1:Math.floor(o)),i),a.range=(i,o,l)=>{let s=[];if(i=a.ceil(i),l=l==null?1:Math.floor(l),!(i0))return s;let u;do s.push(u=new Date(+i)),t(i,l),e(i);while(uFt(o=>{if(o>=o)for(;e(o),!i(o);)o.setTime(o-1)},(o,l)=>{if(o>=o)if(l<0)for(;++l<=0;)for(;t(o,-1),!i(o););else for(;--l>=0;)for(;t(o,1),!i(o););}),r&&(a.count=(i,o)=>(rN.setTime(+i),nN.setTime(+o),e(rN),e(nN),Math.floor(r(rN,nN))),a.every=i=>(i=Math.floor(i),!isFinite(i)||!(i>0)?null:i>1?a.filter(n?o=>n(o)%i===0:o=>a.count(0,o)%i===0):a)),a}var Um=Ft(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Um.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Ft(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):Um);var M1e=Um.range;var Xa=Ft(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*1e3)},(e,t)=>(t-e)/1e3,e=>e.getUTCSeconds()),G6=Xa.range;var Hd=Ft(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getMinutes()),_X=Hd.range,Vd=Ft(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getUTCMinutes()),OX=Vd.range;var Kd=Ft(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()),TX=Kd.range,qd=Ft(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getUTCHours()),MX=qd.range;var Mo=Ft(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),PX=Mo.range,wu=Ft(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>e.getUTCDate()-1),DX=wu.range,Sx=Ft(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>Math.floor(e/864e5)),IX=Sx.range;function Su(e){return Ft(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 Po=Su(0),Yd=Su(1),Z6=Su(2),Q6=Su(3),Kl=Su(4),J6=Su(5),R6=Su(6),eI=Po.range,jX=Yd.range,zX=Z6.range,LX=Q6.range,BX=Kl.range,$X=J6.range,UX=R6.range;function Au(e){return Ft(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 Do=Au(0),Gd=Au(1),tI=Au(2),rI=Au(3),ql=Au(4),nI=Au(5),aI=Au(6),iI=Do.range,FX=Gd.range,WX=tI.range,HX=rI.range,VX=ql.range,KX=nI.range,qX=aI.range;var Xd=Ft(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()),YX=Xd.range,Zd=Ft(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()),GX=Zd.range;var Aa=Ft(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());Aa.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Ft(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 XX=Aa.range,ka=Ft(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());ka.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Ft(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 ZX=ka.range;function lI(e,t,r,n,a,i){let o=[[Xa,1,1e3],[Xa,5,5*1e3],[Xa,15,15*1e3],[Xa,30,30*1e3],[i,1,6e4],[i,5,5*6e4],[i,15,15*6e4],[i,30,30*6e4],[a,1,36e5],[a,3,3*36e5],[a,6,6*36e5],[a,12,12*36e5],[n,1,864e5],[n,2,2*864e5],[r,1,6048e5],[t,1,2592e6],[t,3,3*2592e6],[e,1,31536e6]];function l(u,c,d){let f=ch).right(o,f);if(p===o.length)return e.every(Bd(u/31536e6,c/31536e6,d));if(p===0)return Um.every(Math.max(Bd(u,c,d),1));let[m,y]=o[f/o[p-1][2]53)return null;"w"in J||(J.w=1),"Z"in J?(L=uN(Wm(J.y,0,1)),X=L.getUTCDay(),L=X>4||X===0?Gd.ceil(L):Gd(L),L=wu.offset(L,(J.V-1)*7),J.y=L.getUTCFullYear(),J.m=L.getUTCMonth(),J.d=L.getUTCDate()+(J.w+6)%7):(L=sN(Wm(J.y,0,1)),X=L.getDay(),L=X>4||X===0?Yd.ceil(L):Yd(L),L=Mo.offset(L,(J.V-1)*7),J.y=L.getFullYear(),J.m=L.getMonth(),J.d=L.getDate()+(J.w+6)%7)}else("W"in J||"U"in J)&&("w"in J||(J.w="u"in J?J.u%7:"W"in J?1:0),X="Z"in J?uN(Wm(J.y,0,1)).getUTCDay():sN(Wm(J.y,0,1)).getDay(),J.m=0,J.d="W"in J?(J.w+6)%7+J.W*7-(X+5)%7:J.w+J.U*7-(X+6)%7);return"Z"in J?(J.H+=J.Z/100|0,J.M+=J.Z%100,uN(J)):sN(J)}}function k(oe,Te,V,J){for(var E=0,L=Te.length,X=V.length,B,Ae;E=X)return-1;if(B=Te.charCodeAt(E++),B===37){if(B=Te.charAt(E++),Ae=S[B in sI?Te.charAt(E++):B],!Ae||(J=Ae(oe,V,J))<0)return-1}else if(B!=V.charCodeAt(J++))return-1}return J}function A(oe,Te,V){var J=u.exec(Te.slice(V));return J?(oe.p=c.get(J[0].toLowerCase()),V+J[0].length):-1}function P(oe,Te,V){var J=p.exec(Te.slice(V));return J?(oe.w=m.get(J[0].toLowerCase()),V+J[0].length):-1}function K(oe,Te,V){var J=d.exec(Te.slice(V));return J?(oe.w=f.get(J[0].toLowerCase()),V+J[0].length):-1}function z(oe,Te,V){var J=v.exec(Te.slice(V));return J?(oe.m=g.get(J[0].toLowerCase()),V+J[0].length):-1}function Q(oe,Te,V){var J=y.exec(Te.slice(V));return J?(oe.m=h.get(J[0].toLowerCase()),V+J[0].length):-1}function M(oe,Te,V){return k(oe,t,Te,V)}function F(oe,Te,V){return k(oe,r,Te,V)}function N(oe,Te,V){return k(oe,n,Te,V)}function O(oe){return o[oe.getDay()]}function I(oe){return i[oe.getDay()]}function D(oe){return s[oe.getMonth()]}function T(oe){return l[oe.getMonth()]}function j(oe){return a[+(oe.getHours()>=12)]}function R(oe){return 1+~~(oe.getMonth()/3)}function U(oe){return o[oe.getUTCDay()]}function q(oe){return i[oe.getUTCDay()]}function ee(oe){return s[oe.getUTCMonth()]}function fe(oe){return l[oe.getUTCMonth()]}function pe(oe){return a[+(oe.getUTCHours()>=12)]}function Pe(oe){return 1+~~(oe.getUTCMonth()/3)}return{format:function(oe){var Te=w(oe+="",b);return Te.toString=function(){return oe},Te},parse:function(oe){var Te=_(oe+="",!1);return Te.toString=function(){return oe},Te},utcFormat:function(oe){var Te=w(oe+="",x);return Te.toString=function(){return oe},Te},utcParse:function(oe){var Te=_(oe+="",!0);return Te.toString=function(){return oe},Te}}}var sI={"-":"",_:" ",0:"0"},an=/^\s*\d+/,JX=/^%/,RX=/[\\^$*+?|[\]().{}]/g;function Et(e,t,r){var n=e<0?"-":"",a=(n?-e:e)+"",i=a.length;return n+(i[t.toLowerCase(),r]))}function tZ(e,t,r){var n=an.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function rZ(e,t,r){var n=an.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function nZ(e,t,r){var n=an.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function aZ(e,t,r){var n=an.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function iZ(e,t,r){var n=an.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function uI(e,t,r){var n=an.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function cI(e,t,r){var n=an.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function oZ(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 lZ(e,t,r){var n=an.exec(t.slice(r,r+1));return n?(e.q=n[0]*3-3,r+n[0].length):-1}function sZ(e,t,r){var n=an.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function dI(e,t,r){var n=an.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function uZ(e,t,r){var n=an.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function fI(e,t,r){var n=an.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function cZ(e,t,r){var n=an.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function dZ(e,t,r){var n=an.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function fZ(e,t,r){var n=an.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function pZ(e,t,r){var n=an.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function mZ(e,t,r){var n=JX.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function vZ(e,t,r){var n=an.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function gZ(e,t,r){var n=an.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function pI(e,t){return Et(e.getDate(),t,2)}function yZ(e,t){return Et(e.getHours(),t,2)}function hZ(e,t){return Et(e.getHours()%12||12,t,2)}function xZ(e,t){return Et(1+Mo.count(Aa(e),e),t,3)}function hI(e,t){return Et(e.getMilliseconds(),t,3)}function bZ(e,t){return hI(e,t)+"000"}function wZ(e,t){return Et(e.getMonth()+1,t,2)}function SZ(e,t){return Et(e.getMinutes(),t,2)}function AZ(e,t){return Et(e.getSeconds(),t,2)}function kZ(e){var t=e.getDay();return t===0?7:t}function NZ(e,t){return Et(Po.count(Aa(e)-1,e),t,2)}function xI(e){var t=e.getDay();return t>=4||t===0?Kl(e):Kl.ceil(e)}function CZ(e,t){return e=xI(e),Et(Kl.count(Aa(e),e)+(Aa(e).getDay()===4),t,2)}function EZ(e){return e.getDay()}function _Z(e,t){return Et(Yd.count(Aa(e)-1,e),t,2)}function OZ(e,t){return Et(e.getFullYear()%100,t,2)}function TZ(e,t){return e=xI(e),Et(e.getFullYear()%100,t,2)}function MZ(e,t){return Et(e.getFullYear()%1e4,t,4)}function PZ(e,t){var r=e.getDay();return e=r>=4||r===0?Kl(e):Kl.ceil(e),Et(e.getFullYear()%1e4,t,4)}function DZ(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Et(t/60|0,"0",2)+Et(t%60,"0",2)}function mI(e,t){return Et(e.getUTCDate(),t,2)}function IZ(e,t){return Et(e.getUTCHours(),t,2)}function jZ(e,t){return Et(e.getUTCHours()%12||12,t,2)}function zZ(e,t){return Et(1+wu.count(ka(e),e),t,3)}function bI(e,t){return Et(e.getUTCMilliseconds(),t,3)}function LZ(e,t){return bI(e,t)+"000"}function BZ(e,t){return Et(e.getUTCMonth()+1,t,2)}function $Z(e,t){return Et(e.getUTCMinutes(),t,2)}function UZ(e,t){return Et(e.getUTCSeconds(),t,2)}function FZ(e){var t=e.getUTCDay();return t===0?7:t}function WZ(e,t){return Et(Do.count(ka(e)-1,e),t,2)}function wI(e){var t=e.getUTCDay();return t>=4||t===0?ql(e):ql.ceil(e)}function HZ(e,t){return e=wI(e),Et(ql.count(ka(e),e)+(ka(e).getUTCDay()===4),t,2)}function VZ(e){return e.getUTCDay()}function KZ(e,t){return Et(Gd.count(ka(e)-1,e),t,2)}function qZ(e,t){return Et(e.getUTCFullYear()%100,t,2)}function YZ(e,t){return e=wI(e),Et(e.getUTCFullYear()%100,t,2)}function GZ(e,t){return Et(e.getUTCFullYear()%1e4,t,4)}function XZ(e,t){var r=e.getUTCDay();return e=r>=4||r===0?ql(e):ql.ceil(e),Et(e.getUTCFullYear()%1e4,t,4)}function ZZ(){return"+0000"}function vI(){return"%"}function gI(e){return+e}function yI(e){return Math.floor(+e/1e3)}var Qd,Ax,SI,kx,AI;dN({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 dN(e){return Qd=cN(e),Ax=Qd.format,SI=Qd.parse,kx=Qd.utcFormat,AI=Qd.utcParse,Qd}function QZ(e){return new Date(e)}function JZ(e){return e instanceof Date?+e:+new Date(+e)}function Nx(e,t,r,n,a,i,o,l,s,u){var c=yu(),d=c.invert,f=c.domain,p=u(".%L"),m=u(":%S"),y=u("%I:%M"),h=u("%I %p"),v=u("%a %d"),g=u("%b %d"),b=u("%B"),x=u("%Y");function S(w){return(s(w)t(a/(e.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(a,i)=>tx(e,i/n))},r.copy=function(){return Ox(t).domain(e)},Ga.apply(r,arguments)}function Tx(){var e=0,t=.5,r=1,n=1,a,i,o,l,s,u=Kr,c,d=!1,f;function p(y){return isNaN(y=+y)?f:(y=.5+((y=+c(y))-i)*(n*y{if(e!=null){var n=e.scale,a=e.type;if(n==="auto")return a==="category"&&r&&(r.indexOf("LineChart")>=0||r.indexOf("AreaChart")>=0||r.indexOf("ComposedChart")>=0&&!t)?"point":a==="category"?"band":"linear";if(typeof n=="string")return tQ(n)?n:"point"}};function rQ(e,t){for(var r=0,n=e.length,a=e[0]t)?r=i+1:n=i}return r}function Ix(e,t){if(e){var r=t??e.domain(),n=r.map(i=>{var o;return(o=e(i))!==null&&o!==void 0?o:0}),a=e.range();if(!(r.length===0||a.length<2))return i=>{var o,l,s=rQ(n,i);if(s<=0)return r[0];if(s>=r.length)return r[r.length-1];var u=(o=n[s-1])!==null&&o!==void 0?o:0,c=(l=n[s])!==null&&l!==void 0?l:0;return Math.abs(i-u)<=Math.abs(i-c)?r[s-1]:r[s]}}}function EI(e){if(e!=null)return"invert"in e&&typeof e.invert=="function"?e.invert.bind(e):Ix(e,void 0)}function _I(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function jx(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);re.cartesianAxis.xAxis[t],Ki=(e,t)=>{var r=xN(e,t);return r??_r},Or={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:hN,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:Js},bN=(e,t)=>e.cartesianAxis.yAxis[t],qi=(e,t)=>{var r=bN(e,t);return r??Or},cQ={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:""},wN=(e,t)=>{var r=e.cartesianAxis.zAxis[t];return r??cQ},lr=(e,t,r)=>{switch(t){case"xAxis":return Ki(e,r);case"yAxis":return qi(e,r);case"zAxis":return wN(e,r);case"angleAxis":return K0(e,r);case"radiusAxis":return q0(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},dQ=(e,t,r)=>{switch(t){case"xAxis":return Ki(e,r);case"yAxis":return qi(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},ku=(e,t,r)=>{switch(t){case"xAxis":return Ki(e,r);case"yAxis":return qi(e,r);case"angleAxis":return K0(e,r);case"radiusAxis":return q0(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},SN=e=>e.graphicalItems.cartesianItems.some(t=>t.type==="bar")||e.graphicalItems.polarItems.some(t=>t.type==="radialBar");function Gm(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 Yl=e=>e.graphicalItems.cartesianItems,fQ=Z([rr,su],Gm),Xm=(e,t,r)=>e.filter(r).filter(n=>t?.includeHidden===!0?!0:!n.hide),Rd=Z([Yl,lr,fQ],Xm,{memoizeOptions:{resultEqualityCheck:zd}}),PI=Z([Rd],e=>e.filter(t=>t.type==="area"||t.type==="bar").filter(uu)),AN=e=>e.filter(t=>!("stackId"in t)||t.stackId===void 0),pQ=Z([Rd],AN),Zm=e=>e.map(t=>t.data).filter(Boolean).flat(1),mQ=Z([Rd],e=>e.some(t=>!t.data)),DI=Z([Rd],Zm,{memoizeOptions:{resultEqualityCheck:zd}}),Qm=(e,t)=>{var r=t.chartData,n=r===void 0?[]:r,a=t.dataStartIndex,i=t.dataEndIndex;return e.length>0?e:n.slice(a,i+1)},kN=Z([DI,iu],Qm),NN=(e,t,r)=>t?.dataKey!=null?e.map(n=>({value:Xe(n,t.dataKey)})):r.length>0?r.map(n=>n.dataKey).flatMap(n=>e.map(a=>({value:Xe(a,n)}))):e.map(n=>({value:n})),CN=(e,t,r,n,a,i)=>{var o=n.chartData,l=o===void 0?[]:o,s=n.dataStartIndex,u=n.dataEndIndex,c=NN(e,t,r);if(a&&t?.dataKey!=null&&i.length>0){var d=l.slice(s,u+1),f=d.map(p=>({value:Xe(p,t.dataKey)})).filter(p=>p.value!=null);return[...f,...c]}return c},Jm=Z([kN,lr,Rd,iu,mQ,DI],CN);function Jd(e){if(On(e)||e instanceof Date){var t=Number(e);if(We(t))return t}}function TI(e){if(Array.isArray(e)){var t=[Jd(e[0]),Jd(e[1])];return wa(t)?t:void 0}var r=Jd(e);if(r!=null)return[r,r]}function bi(e){return e.map(Jd).filter(Vr)}function vQ(e,t){var r=Jd(e),n=Jd(t);return r==null&&n==null?0:r==null?-1:n==null?1:r-n}var gQ=Z([Jm],e=>e?.map(t=>t.value).sort(vQ));function II(e,t){switch(e){case"xAxis":return t.direction==="x";case"yAxis":return t.direction==="y";default:return!1}}function yQ(e,t,r){if(!r)return[];if(!r.length)return[];var n;if(typeof t=="number"&&!en(t))n=t;else if(Array.isArray(t)){var a=bi(t);a.length>0&&(n=Math.max(...a))}return n==null?[]:bi(r.flatMap(i=>{var o=Xe(e,i.dataKey),l,s;if(Array.isArray(o)){var u=MI(o,2);l=u[0],s=u[1]}else l=s=o;if(!(!We(l)||!We(s)))return[n-l,n+s]}))}var Tr=e=>{var t=Er(e),r=Fl(e);return ku(e,t,r)},jo=Z([Tr],e=>e?.dataKey),hQ=Z([PI,iu,Tr],X0),EN=(e,t,r,n)=>{var a={},i=t.reduce((o,l)=>{if(l.stackId==null)return o;var s=o[l.stackId];return s==null&&(s=[]),s.push(l),o[l.stackId]=s,o},a);return Object.fromEntries(Object.entries(i).map(o=>{var l=MI(o,2),s=l[0],u=l[1],c=n?[...u].reverse():u,d=c.map(Ul);return[s,{stackedData:YP(e,d,r),graphicalItems:c}]}))},ef=Z([hQ,PI,Bl,F0],EN),_N=(e,t,r,n)=>{var a=t.dataStartIndex,i=t.dataEndIndex;if(n==null&&r!=="zAxis")return XP(e,a,i)},xQ=Z([lr],e=>e.allowDataOverflow),zx=e=>{var t;if(e==null||!("domain"in e))return hN;if(e.domain!=null)return e.domain;if("ticks"in e&&e.ticks!=null){if(e.type==="number"){var r=bi(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:hN},Lx=Z([lr],zx),Bx=Z([Lx,xQ],z0),bQ=Z([ef,Jn,rr,Bx],_N,{memoizeOptions:{resultEqualityCheck:cu}}),tf=e=>e.errorBars,wQ=(e,t,r)=>e.flatMap(n=>t[n.id]).filter(Boolean).filter(n=>II(r,n)),Ym=function(){for(var t=arguments.length,r=new Array(t),n=0;n5&&arguments[5]!==void 0?arguments[5]:[],l,s;if(n.length>0&&n.forEach(u=>{var c,d=u.data!=null?[...u.data]:o,f=(c=a[u.id])===null||c===void 0?void 0:c.filter(p=>II(i,p));d.forEach(p=>{var m,y=Xe(p,(m=r.dataKey)!==null&&m!==void 0?m:u.dataKey),h=yQ(p,y,f);if(h.length>=2){var v=Math.min(...h),g=Math.max(...h);(l==null||vs)&&(s=g)}var b=TI(y);b!=null&&(l=l==null?b[0]:Math.min(l,b[0]),s=s==null?b[1]:Math.max(s,b[1]))})}),r?.dataKey!=null&&n.length===0&&t.forEach(u=>{var c=TI(Xe(u,r.dataKey));c!=null&&(l=l==null?c[0]:Math.min(l,c[0]),s=s==null?c[1]:Math.max(s,c[1]))}),We(l)&&We(s))return[l,s]},SQ=Z([kN,lr,pQ,tf,rr,B8],Rm,{memoizeOptions:{resultEqualityCheck:cu}});function AQ(e){var t=e.value;if(On(t)||t instanceof Date)return t}var kQ=(e,t,r)=>{var n=e.map(AQ).filter(a=>a!=null);return r&&(t.dataKey==null||t.allowDuplicatedCategory&&J2(n))?I0(0,e.length):t.allowDuplicatedCategory?n:Array.from(new Set(n))},ON=e=>e.referenceElements.dots,Nu=(e,t,r)=>e.filter(n=>n.ifOverflow==="extendDomain").filter(n=>t==="xAxis"?n.xAxisId===r:n.yAxisId===r),NQ=Z([ON,rr,su],Nu),TN=e=>e.referenceElements.areas,CQ=Z([TN,rr,su],Nu),MN=e=>e.referenceElements.lines,EQ=Z([MN,rr,su],Nu),PN=(e,t)=>{if(e!=null){var r=bi(e.map(n=>t==="xAxis"?n.x:n.y));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},_Q=Z(NQ,rr,PN),DN=(e,t)=>{if(e!=null){var r=bi(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)]}},OQ=Z([CQ,rr],DN);function TQ(e){var t;if(e.x!=null)return bi([e.x]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.x);return r==null||r.length===0?[]:bi(r)}function MQ(e){var t;if(e.y!=null)return bi([e.y]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.y);return r==null||r.length===0?[]:bi(r)}var IN=(e,t)=>{if(e!=null){var r=e.flatMap(n=>t==="xAxis"?TQ(n):MQ(n));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},PQ=Z([EQ,rr],IN),DQ=Z(_Q,PQ,OQ,(e,t,r)=>Ym(e,r,t)),ev=(e,t,r,n,a,i,o,l,s)=>{if(r!=null)return r;var u=o==="vertical"&&l==="xAxis"||o==="horizontal"&&l==="yAxis",c=u?Ym(n,i,a):Ym(i,a),d=H8(t,c,e.allowDataOverflow);return d??(e.allowDataOverflow&&c==null&&s!=null?s:d)},IQ=e=>{if(!(e==null||e.type!=="number"||!("ticks"in e)||e.ticks==null)){var t=bi(e.ticks);if(t.length!==0)return[Math.min(...t),Math.max(...t)]}},jQ=Z([lr],IQ,{memoizeOptions:{resultEqualityCheck:cu}}),zQ=Z([lr,Lx,Bx,bQ,SQ,DQ,Ke,rr,jQ],ev,{memoizeOptions:{resultEqualityCheck:cu}}),LQ=[0,1],tv=(e,t,r,n,a,i,o)=>{if(!((e==null||r==null||r.length===0)&&o===void 0)){var l=e.dataKey,s=e.type,u=hn(t,i);if(u&&l==null){var c;return I0(0,(c=r?.length)!==null&&c!==void 0?c:0)}return s==="category"?kQ(n,e,u):a==="expand"&&!u?LQ:o}},jN=Z([lr,Ke,kN,Jm,Bl,rr,zQ],tv),zo=Z([lr,SN,jd],Dx),rv=(e,t,r)=>{var n=t.niceTicks;if(n!=="none"){var a=zx(t),i=Array.isArray(a)&&(a[0]==="auto"||a[1]==="auto");if((n==="snap125"||n==="adaptive")&&t!=null&&t.tickCount&&wa(e)){if(i)return B0(e,t.tickCount,t.allowDecimals,n);if(t.type==="number")return $0(e,t.tickCount,t.allowDecimals,n)}if(n==="auto"&&r==="linear"&&t!=null&&t.tickCount){if(i&&wa(e))return B0(e,t.tickCount,t.allowDecimals,"adaptive");if(t.type==="number"&&wa(e))return $0(e,t.tickCount,t.allowDecimals,"adaptive")}}},zN=Z([jN,ku,zo],rv),nv=(e,t,r,n)=>{if(n!=="angleAxis"&&e?.type==="number"&&wa(t)&&Array.isArray(r)&&r.length>0){var a,i,o=t[0],l=(a=r[0])!==null&&a!==void 0?a:0,s=t[1],u=(i=r[r.length-1])!==null&&i!==void 0?i:0;return[Math.min(o,l),Math.max(s,u)]}return t},BQ=Z([lr,jN,zN,rr],nv),$Q=Z(Jm,lr,(e,t)=>{if(!(!t||t.type!=="number")){var r=1/0,n=Array.from(bi(e.map(d=>d.value))).sort((d,f)=>d-f),a=n[0],i=n[n.length-1];if(a==null||i==null)return 1/0;var o=i-a;if(o===0)return 1/0;for(var l=0;la,(e,t,r,n,a)=>{if(!We(e))return 0;var i=t==="vertical"?n.height:n.width;if(a==="gap")return e*i/2;if(a==="no-gap"){var o=pr(r,e*i),l=e*i/2;return l-o-(l-o)/i*o}return 0}),UQ=(e,t,r)=>{var n=Ki(e,t);return n==null||typeof n.padding!="string"?0:jI(e,"xAxis",t,r,n.padding)},FQ=(e,t,r)=>{var n=qi(e,t);return n==null||typeof n.padding!="string"?0:jI(e,"yAxis",t,r,n.padding)},WQ=Z(Ki,UQ,(e,t)=>{var r,n;if(e==null)return{left:0,right:0};var a=e.padding;return typeof a=="string"?{left:t,right:t}:{left:((r=a.left)!==null&&r!==void 0?r:0)+t,right:((n=a.right)!==null&&n!==void 0?n:0)+t}}),HQ=Z(qi,FQ,(e,t)=>{var r,n;if(e==null)return{top:0,bottom:0};var a=e.padding;return typeof a=="string"?{top:t,bottom:t}:{top:((r=a.top)!==null&&r!==void 0?r:0)+t,bottom:((n=a.bottom)!==null&&n!==void 0?n:0)+t}}),LN=Z([It,WQ,Rs,Cd,(e,t,r)=>r],(e,t,r,n,a)=>{var i=n.padding;return a?[i.left,r.width-i.right]:[e.left+t.left,e.left+e.width-t.right]}),BN=Z([It,Ke,HQ,Rs,Cd,(e,t,r)=>r],(e,t,r,n,a,i)=>{var o=a.padding;return i?[n.height-o.bottom,o.top]:t==="horizontal"?[e.top+e.height-r.bottom,e.top+r.top]:[e.top+r.top,e.top+e.height-r.bottom]}),rf=(e,t,r,n)=>{var a;switch(t){case"xAxis":return LN(e,r,n);case"yAxis":return BN(e,r,n);case"zAxis":return(a=wN(e,r))===null||a===void 0?void 0:a.range;case"angleAxis":return zk(e);case"radiusAxis":return Lk(e,r);default:return}},zI=Z([lr,rf],ou),VQ=Z([zo,BQ],Z0),$N=Z([lr,zo,VQ,zI],qm),UN=(e,t,r,n)=>{if(!(r==null||r.dataKey==null)){var a=r.type,i=r.scale,o=hn(e,n);if(o&&(a==="number"||i!=="auto"))return t.map(l=>l.value)}},FN=Z([Ke,Jm,ku,rr],UN),$x=Z([$N],km),e2e=Z([$N],EI),t2e=Z([$N,gQ],Ix),r2e=Z([Rd,tf,rr],wQ);function LI(e,t){return e.idt.id?1:0}var Ux=(e,t)=>t,Fx=(e,t,r)=>r,KQ=Z(Ad,Ux,Fx,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(LI)),qQ=Z(kd,Ux,Fx,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(LI)),BI=(e,t)=>{var r=typeof t.height=="number"?t.height:pm;return{width:e.width,height:r}},YQ=(e,t)=>{var r=typeof t.width=="number"?t.width:Js;return{width:r,height:e.height}},WN=Z(It,Ki,BI),GQ=(e,t,r)=>{switch(t){case"top":return e.top;case"bottom":return r-e.bottom;default:return 0}},XQ=(e,t,r)=>{switch(t){case"left":return e.left;case"right":return r-e.right;default:return 0}},ZQ=Z(nn,It,KQ,Ux,Fx,(e,t,r,n,a)=>{var i={},o;return r.forEach(l=>{var s=BI(t,l);o==null&&(o=GQ(t,n,e));var u=n==="top"&&!a||n==="bottom"&&a;i[l.id]=o-Number(u)*s.height,o+=(u?-1:1)*s.height}),i}),QQ=Z(rn,It,qQ,Ux,Fx,(e,t,r,n,a)=>{var i={},o;return r.forEach(l=>{var s=YQ(t,l);o==null&&(o=XQ(t,n,e));var u=n==="left"&&!a||n==="right"&&a;i[l.id]=o-Number(u)*s.width,o+=(u?-1:1)*s.width}),i}),JQ=(e,t)=>{var r=Ki(e,t);if(r!=null)return ZQ(e,r.orientation,r.mirror)},$I=Z([It,Ki,JQ,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var a=r?.[n];return a==null?{x:e.left,y:0}:{x:e.left,y:a}}}),RQ=(e,t)=>{var r=qi(e,t);if(r!=null)return QQ(e,r.orientation,r.mirror)},UI=Z([It,qi,RQ,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var a=r?.[n];return a==null?{x:0,y:e.top}:{x:a,y:e.top}}}),HN=Z(It,qi,(e,t)=>{var r=typeof t.width=="number"?t.width:Js;return{width:r,height:e.height}}),VN=(e,t,r)=>{switch(t){case"xAxis":return WN(e,r).width;case"yAxis":return HN(e,r).height;default:return}},KN=(e,t,r,n)=>{if(r!=null){var a=r.allowDuplicatedCategory,i=r.type,o=r.dataKey,l=hn(e,n),s=t.map(c=>c.value),u=s.filter(c=>c!=null);if(o&&l&&i==="category"&&a&&J2(u))return s}},qN=Z([Ke,Jm,lr,rr],KN),YN=Z([Ke,dQ,zo,$x,qN,FN,rf,zN,rr],(e,t,r,n,a,i,o,l,s)=>{if(t!=null){var u=hn(e,s);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:s,categoricalDomain:i,duplicateDomain:a,isCategorical:u,niceTicks:l,range:o,realScaleType:r,scale:n}}}),eJ=(e,t,r,n,a,i,o,l,s)=>{if(!(t==null||n==null)){var u=hn(e,s),c=t.type,d=t.ticks,f=t.tickCount,p=r==="scaleBand"&&typeof n.bandwidth=="function"?n.bandwidth()/2:2,m=c==="category"&&n.bandwidth?n.bandwidth()/p:0;m=s==="angleAxis"&&i!=null&&i.length>=2?Ut(i[0]-i[1])*2*m:m;var y=d||a;return y?y.map((h,v)=>{var g=o?o.indexOf(h):h,b=n.map(g);return We(b)?{index:v,coordinate:b+m,value:h,offset:m}:null}).filter(Vr):u&&l?l.map((h,v)=>{var g=n.map(h);return We(g)?{coordinate:g+m,value:h,index:v,offset:m}:null}).filter(Vr):n.ticks?n.ticks(f).map((h,v)=>{var g=n.map(h);return We(g)?{coordinate:g+m,value:h,index:v,offset:m}:null}).filter(Vr):n.domain().map((h,v)=>{var g=n.map(h);return We(g)?{coordinate:g+m,value:o?o[h]:h,index:v,offset:m}:null}).filter(Vr)}},Wx=Z([Ke,ku,zo,$x,zN,rf,qN,FN,rr],eJ),tJ=(e,t,r,n,a,i,o)=>{if(!(t==null||r==null||n==null||n[0]===n[1])){var l=hn(e,o),s=t.tickCount,u=0;return u=o==="angleAxis"&&n?.length>=2?Ut(n[0]-n[1])*2*u:u,l&&i?i.map((c,d)=>{var f=r.map(c);return We(f)?{coordinate:f+u,value:c,index:d,offset:u}:null}).filter(Vr):r.ticks?r.ticks(s).map((c,d)=>{var f=r.map(c);return We(f)?{coordinate:f+u,value:c,index:d,offset:u}:null}).filter(Vr):r.domain().map((c,d)=>{var f=r.map(c);return We(f)?{coordinate:f+u,value:a?a[c]:c,index:d,offset:u}:null}).filter(Vr)}},Na=Z([Ke,ku,$x,rf,qN,FN,rr],tJ),Ca=Z(lr,$x,(e,t)=>{if(!(e==null||t==null))return jx(jx({},e),{},{scale:t})}),rJ=Z([lr,zo,jN,zI],qm),nJ=Z([rJ],km),n2e=Z((e,t,r)=>wN(e,r),nJ,(e,t)=>{if(!(e==null||t==null))return jx(jx({},e),{},{scale:t})}),FI=Z([Ke,Ad,kd],(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}}),aJ=(e,t,r)=>{var n;return(n=e.renderedTicks[t])===null||n===void 0?void 0:n[r]},a2e=Z([aJ],e=>{if(!(!e||e.length===0))return t=>{var r,n=1/0,a=e[0];for(var i of e){var o=Math.abs(i.coordinate-t);oe.options.defaultTooltipEventType,XN=e=>e.options.validateTooltipEventTypes;function ZN(e,t,r){if(e==null)return t;var n=e?"axis":"item";return r==null?t:r.includes(n)?n:t}function Gl(e,t){var r=GN(e),n=XN(e);return ZN(t,r,n)}function WI(e){return xe(t=>Gl(t,e))}var Hx=(e,t)=>{var r,n=Number(t);if(!(en(n)||t==null))return n>=0?e==null||(r=e[n])===null||r===void 0?void 0:r.value:void 0};var HI=e=>e.tooltip.settings;var Lo={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},iJ={itemInteraction:{click:Lo,hover:Lo},axisInteraction:{click:Lo,hover:Lo},keyboardInteraction:Lo,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}},VI=Nt({name:"tooltip",initialState:iJ,reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(et(t.payload))},prepare:Mt()},replaceTooltipEntrySettings:{reducer(e,t){var r=t.payload,n=r.prev,a=r.next,i=mn(e).tooltipItemPayloads.indexOf(et(n));i>-1&&(e.tooltipItemPayloads[i]=et(a))},prepare:Mt()},removeTooltipEntrySettings:{reducer(e,t){var r=mn(e).tooltipItemPayloads.indexOf(et(t.payload));r>-1&&e.tooltipItemPayloads.splice(r,1)},prepare:Mt()},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}}}),Za=VI.actions,KI=Za.addTooltipEntrySettings,qI=Za.replaceTooltipEntrySettings,YI=Za.removeTooltipEntrySettings,GI=Za.setTooltipSettingsState,Vx=Za.setActiveMouseOverItemIndex,XI=Za.mouseLeaveItem,Kx=Za.mouseLeaveChart,ZI=Za.setActiveClickItemIndex,qx=Za.setMouseOverAxisIndex,QI=Za.setMouseClickAxisIndex,nf=Za.setSyncInteraction,av=Za.setKeyboardInteraction;var JI=VI.reducer;function RI(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Yx(e){for(var t=1;t{if(t==null)return Lo;var a=uJ(e,t,r);if(a==null)return Lo;if(a.active)return a;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var i=e.settings.active===!0;if(cJ(a)){if(i)return Yx(Yx({},a),{},{active:!0})}else if(n!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:n,graphicalItemId:void 0};return Yx(Yx({},Lo),{},{coordinate:a.coordinate})};function dJ(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 fJ(e,t){var r=dJ(e),n=t[0],a=t[1];if(r===void 0)return!1;var i=Math.min(n,a),o=Math.max(n,a);return r>=i&&r<=o}function pJ(e,t,r){if(r==null||t==null)return!0;var n=Xe(e,t);return n==null||!wa(r)?!0:fJ(n,r)}var Xl=(e,t,r,n)=>{var a=e?.index;if(a==null)return null;var i=Number(a);if(!We(i))return a;var o=0,l=1/0;t.length>0&&(l=t.length-1);var s=Math.max(o,Math.min(i,l)),u=t[s];return u==null||pJ(u,r,n)?String(s):null};var Xx=(e,t,r,n,a,i,o)=>{if(i!=null){var l=o[0],s=l?.getPosition(i);if(s!=null)return s;var u=a?.[Number(i)];if(u)return r==="horizontal"?{x:u.coordinate,y:(n.top+t)/2}:{x:(n.left+e)/2,y:u.coordinate}}};var Zx=(e,t,r,n)=>{if(t==="axis")return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var a;if(r==="hover"?a=e.itemInteraction.hover.graphicalItemId:a=e.itemInteraction.click.graphicalItemId,e.syncInteraction.active&&a==null)return e.tooltipItemPayloads;if(a==null&&(n!=null||e.keyboardInteraction.active)){var i=e.tooltipItemPayloads[0];return i!=null?[i]:[]}return e.tooltipItemPayloads.filter(o=>{var l;return((l=o.settings)===null||l===void 0?void 0:l.graphicalItemId)===a})};var Qx=e=>e.options.tooltipPayloadSearcher;var Bo=e=>e.tooltip;function ej(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function tj(e){for(var t=1;te(t)}function rj(e){if(typeof e=="string")return e}function bJ(e){if(!(e==null||typeof e!="object")){var t="name"in e?yJ(e.name):void 0,r="unit"in e?hJ(e.unit):void 0,n="dataKey"in e?xJ(e.dataKey):void 0,a="payload"in e?e.payload:void 0,i="color"in e?rj(e.color):void 0,o="fill"in e?rj(e.fill):void 0;return{name:t,unit:r,dataKey:n,payload:a,color:i,fill:o}}}function wJ(e,t){return e??t}var Jx=(e,t,r,n,a,i,o)=>{if(!(t==null||i==null)){var l=r.chartData,s=r.computedData,u=r.dataStartIndex,c=r.dataEndIndex,d=[];return e.reduce((f,p)=>{var m,y=p.dataDefinedOnItem,h=p.settings,v=wJ(y,l),g=Array.isArray(v)?i0(v,u,c):v,b=(m=h?.dataKey)!==null&&m!==void 0?m:n,x=h?.nameKey,S;if(n&&Array.isArray(g)&&!Array.isArray(g[0])&&o==="axis"?(S=Ky(g,n,a),S==null&&(S=i(g,t,s,x))):S=i(g,t,s,x),Array.isArray(S))S.forEach(_=>{var k,A,P=bJ(_),K=P?.name,z=P?.dataKey,Q=P?.payload,M=tj(tj({},h),{},{name:K,unit:P?.unit,color:(k=P?.color)!==null&&k!==void 0?k:h?.color,fill:(A=P?.fill)!==null&&A!==void 0?A:h?.fill});f.push(dk({tooltipEntrySettings:M,dataKey:z,payload:Q,value:Xe(Q,z),name:K==null?void 0:String(K)}))});else{var w;f.push(dk({tooltipEntrySettings:h,dataKey:b,payload:S,value:Xe(S,b),name:(w=Xe(S,x))!==null&&w!==void 0?w:h?.name}))}return f},d)}};var QN=Z([Tr,SN,jd],Dx),SJ=Z([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),AJ=Z([Er,Fl],Gm),Zl=Z([SJ,Tr,AJ],Xm,{memoizeOptions:{resultEqualityCheck:zd}}),kJ=Z([Zl],e=>e.filter(uu)),nj=Z([Zl],Zm,{memoizeOptions:{resultEqualityCheck:zd}}),NJ=Z([Zl],e=>e.some(t=>!t.data)),$o=Z([nj,Jn],Qm),CJ=Z([kJ,Jn,Tr],X0),JN=Z([$o,Tr,Zl,Jn,NJ,nj],CN),aj=Z([Tr],zx),EJ=Z([Tr],e=>e.allowDataOverflow),ij=Z([aj,EJ],z0),_J=Z([Zl],e=>e.filter(uu)),OJ=Z([CJ,_J,Bl,F0],EN),TJ=Z([OJ,Jn,Er,ij],_N),MJ=Z([Zl],AN),PJ=Z([$o,Tr,MJ,tf,Er,U8],Rm,{memoizeOptions:{resultEqualityCheck:cu}}),DJ=Z([ON,Er,Fl],Nu),IJ=Z([DJ,Er],PN),jJ=Z([TN,Er,Fl],Nu),zJ=Z([jJ,Er],DN),LJ=Z([MN,Er,Fl],Nu),BJ=Z([LJ,Er],IN),$J=Z([IJ,BJ,zJ],Ym),UJ=Z([Tr,aj,ij,TJ,PJ,$J,Ke,Er],ev),Ql=Z([Tr,Ke,$o,JN,Bl,Er,UJ],tv),FJ=Z([Ql,Tr,QN],rv),WJ=Z([Tr,Ql,FJ,Er],nv),oj=e=>{var t=Er(e),r=Fl(e),n=!1;return rf(e,t,r,n)},RN=Z([Tr,oj],ou),HJ=Z([Tr,QN,WJ,RN],qm),eC=Z([HJ],km),VJ=Z([Ke,JN,Tr,Er],KN),KJ=Z([Ke,JN,Tr,Er],UN),qJ=(e,t,r,n,a,i,o,l)=>{if(t){var s=t.type,u=hn(e,l);if(n){var c=r==="scaleBand"&&n.bandwidth?n.bandwidth()/2:2,d=s==="category"&&n.bandwidth?n.bandwidth()/c:0;return d=l==="angleAxis"&&a!=null&&a?.length>=2?Ut(a[0]-a[1])*2*d:d,u&&o?o.map((f,p)=>{var m=n.map(f);return We(m)?{coordinate:m+d,value:f,index:p,offset:d}:null}).filter(Vr):n.domain().map((f,p)=>{var m=n.map(f);return We(m)?{coordinate:m+d,value:i?i[f]:f,index:p,offset:d}:null}).filter(Vr)}}},ea=Z([Ke,Tr,QN,eC,oj,VJ,KJ,Er],qJ),tC=Z([GN,XN,HI],(e,t,r)=>ZN(r.shared,e,t)),lj=e=>e.tooltip.settings.trigger,rC=e=>e.tooltip.settings.defaultIndex,iv=Z([Bo,tC,lj,rC],Gx),Qa=Z([iv,$o,jo,Ql],Xl),Rx=Z([ea,Qa],Hx),af=Z([iv],e=>{if(e)return e.dataKey}),eb=Z([iv],e=>{if(e)return e.graphicalItemId}),sj=Z([Bo,tC,lj,rC],Zx),YJ=Z([rn,nn,Ke,It,ea,rC,sj],Xx),nC=Z([iv,YJ],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),aC=Z([iv],e=>{var t;return(t=e?.active)!==null&&t!==void 0?t:!1}),GJ=Z([sj,Qa,Jn,jo,Rx,Qx,tC],Jx),uj=Z([GJ],e=>{if(e!=null){var t=e.map(r=>r.payload).filter(r=>r!=null);return Array.from(new Set(t))}});function cj(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function dj(e){for(var t=1;txe(Tr),fj=()=>{var e=JJ(),t=xe(ea),r=xe(eC);return!e||!r?Ka(void 0,t):Ka(dj(dj({},e),{},{scale:r}),t)};function pj(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function of(e){for(var t=1;t{var a=t.find(i=>i&&i.index===r);if(a){if(e==="horizontal")return{x:a.coordinate,y:n.relativeY};if(e==="vertical")return{x:n.relativeX,y:a.coordinate}}return{x:0,y:0}},vj=(e,t,r,n)=>{var a=t.find(u=>u&&u.index===r);if(a){if(e==="centric"){var i=a.coordinate,o=n.radius;return of(of(of({},n),Kt(n.cx,n.cy,o,i)),{},{angle:i,radius:o})}var l=a.coordinate,s=n.angle;return of(of(of({},n),Kt(n.cx,n.cy,l,s)),{},{angle:s,radius:l})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function gj(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 iC=(e,t,r,n,a)=>{var i,o=(i=t?.length)!==null&&i!==void 0?i:0;if(o<=1||e==null)return 0;if(n==="angleAxis"&&a!=null&&Math.abs(Math.abs(a[1]-a[0])-360)<=1e-6)for(var l=a[1]-a[0],s=(F,N,O)=>[e,e+l,e-l].some(I=>(O?I>=F:I>F)&&I<=N),u=0;u0?(c=r[u-1])===null||c===void 0?void 0:c.coordinate:(d=r[o-1])===null||d===void 0?void 0:d.coordinate,h=(f=r[u])===null||f===void 0?void 0:f.coordinate,v=u>=o-1?(p=r[0])===null||p===void 0?void 0:p.coordinate:(m=r[u+1])===null||m===void 0?void 0:m.coordinate,g=void 0;if(!(y==null||h==null||v==null))if(Ut(h-y)!==Ut(v-h)){var b=[];if(Ut(v-h)===Ut(a[1]-a[0])){g=v;var x=h+a[1]-a[0];b[0]=Math.min(x,(x+y)/2),b[1]=Math.max(x,(x+y)/2)}else{g=y;var S=v+a[1]-a[0];b[0]=Math.min(h,(S+h)/2),b[1]=Math.max(h,(S+h)/2)}var w=[Math.min(h,(g+h)/2),Math.max(h,(g+h)/2)];if(s(w[0],w[1],!1)||s(b[0],b[1],!0)){var _;return(_=r[u])===null||_===void 0?void 0:_.index}}else{var k=Math.min(y,v),A=Math.max(y,v);if(s((k+h)/2,(A+h)/2,!1)){var P;return(P=r[u])===null||P===void 0?void 0:P.index}}}else if(t)for(var K=0;K(z.coordinate+M.coordinate)/2||K>0&&K(z.coordinate+M.coordinate)/2&&e<=(z.coordinate+Q.coordinate)/2)return z.index}}return-1};var tb=()=>xe(jd),oC=(e,t)=>t,yj=(e,t,r)=>r,lC=(e,t,r,n)=>n,hj=Z(ea,e=>Eo(e,t=>t.coordinate)),sC=Z([Bo,oC,yj,lC],Gx),uC=Z([sC,$o,jo,Ql],Xl),xj=(e,t,r)=>{if(t!=null){var n=Bo(e);return t==="axis"?r==="hover"?n.axisInteraction.hover.dataKey:n.axisInteraction.click.dataKey:r==="hover"?n.itemInteraction.hover.dataKey:n.itemInteraction.click.dataKey}},bj=Z([Bo,oC,yj,lC],Zx),ov=Z([rn,nn,Ke,It,ea,lC,bj],Xx),wj=Z([sC,ov],(e,t)=>{var r;return(r=e.coordinate)!==null&&r!==void 0?r:t}),cC=Z([ea,uC],Hx),Sj=Z([bj,uC,Jn,jo,cC,Qx,oC],Jx),Aj=Z([sC,uC],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),rR=(e,t,r,n,a,i,o)=>{if(!(!e||!r||!n||!a)&&gj(e,o)){var l=ZP(e,t),s=iC(l,i,a,r,n),u=mj(t,a,s,e);return{activeIndex:String(s),activeCoordinate:u}}},nR=(e,t,r,n,a,i,o)=>{if(!(!e||!n||!a||!i||!r)){var l=C8(e,r);if(l){var s=QP(l,t),u=iC(s,o,i,n,a),c=vj(t,i,u,l);return{activeIndex:String(u),activeCoordinate:c}}}},kj=(e,t,r,n,a,i,o,l)=>{if(!(!e||!t||!n||!a||!i))return t==="horizontal"||t==="vertical"?rR(e,t,n,a,i,o,l):nR(e,t,r,n,a,i,o)};var lf=re(ne()),Ij=re(Qf());var Nj=Z(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}}),Cj=Z(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(n=>parseInt(n,10)).concat(Object.values(ut)),r=Array.from(new Set(t));return r.sort((n,a)=>n-a)},{memoizeOptions:{resultEqualityCheck:n6}});function Ej(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function _j(e){for(var t=1;t_j(_j({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),lR)},uR=new Set(Object.values(ut));function cR(e){return uR.has(e)}var Oj=Nt({name:"zIndex",initialState:sR,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:Mt()},unregisterZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(e.zIndexMap[r].consumers-=1,e.zIndexMap[r].consumers<=0&&!cR(r)&&delete e.zIndexMap[r])},prepare:Mt()},registerZIndexPortalElement:{reducer:(e,t)=>{var r=t.payload,n=r.zIndex,a=r.element,i=r.isPanorama;e.zIndexMap[n]?i?e.zIndexMap[n].panoramaElement=et(a):e.zIndexMap[n].element=et(a):e.zIndexMap[n]={consumers:0,element:i?void 0:et(a),panoramaElement:i?et(a):void 0}},prepare:Mt()},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:Mt()}}}),rb=Oj.actions,Tj=rb.registerZIndexPortal,nb=rb.unregisterZIndexPortal,Mj=rb.registerZIndexPortalElement,Pj=rb.unregisterZIndexPortalElement;var Dj=Oj.reducer;function qt(e){var t=e.zIndex,r=e.children,n=fD(),a=n&&t!==void 0&&t!==0,i=Ct(),o=(0,lf.useRef)(void 0),l=(0,lf.useRef)(new Set),s=He(),u=xe(d=>Nj(d,t,i));if((0,lf.useLayoutEffect)(()=>{if(!a){var d=l.current;d.forEach(p=>{s(nb({zIndex:p}))}),d.clear(),o.current=void 0;return}if(l.current.has(t)||(s(Tj({zIndex:t})),l.current.add(t)),u){o.current=u;var f=l.current;f.forEach(p=>{p!==t&&(s(nb({zIndex:p})),f.delete(p))})}},[s,t,a,u]),(0,lf.useLayoutEffect)(()=>{var d=l.current;return()=>{d.forEach(f=>{s(nb({zIndex:f}))}),d.clear()}},[s]),!a)return r;var c=u??o.current;return c?(0,Ij.createPortal)(r,c):null}function dC(){return dC=Object.assign?Object.assign.bind():function(e){for(var t=1;t(0,ob.useContext)(fC);var sv=re(ne());var Uj=re($j(),1);var Fj=Uj.default;var uf=new Fj;var sb="recharts.syncEvent.tooltip",mC="recharts.syncEvent.brush";var Jl=(e,t)=>{if(t&&Array.isArray(e)){var r=Number.parseInt(t,10);if(!en(r))return e[r]}},hR={chartName:"",tooltipPayloadSearcher:()=>{},eventEmitter:void 0,defaultTooltipEventType:"axis"},Wj=Nt({name:"options",initialState:hR,reducers:{createEventEmitter:e=>{e.eventEmitter==null&&(e.eventEmitter=Symbol("rechartsEventEmitter"))}}}),Hj=Wj.reducer,Vj=Wj.actions.createEventEmitter;function Kj(e){return e.tooltip.syncInteraction}var xR={chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},qj=Nt({name:"chartData",initialState:xR,reducers:{setChartData(e,t){if(e.chartData=et(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,a=r.endIndex;n!=null&&(e.dataStartIndex=n),a!=null&&(e.dataEndIndex=a)}}}),vC=qj.actions,gC=vC.setChartData,Yj=vC.setDataStartEndIndexes,bR=vC.setComputedData;var Gj=qj.reducer;var wR=["x","y"];function Xj(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function cf(e){for(var t=1;ts.rootProps.className);(0,sv.useEffect)(()=>{if(e==null)return Tn;var s=(u,c,d)=>{if(t!==d&&e===u){if(c.payload.active===!1){r(nf({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(n==="index"){var f;if(o&&c!==null&&c!==void 0&&(f=c.payload)!==null&&f!==void 0&&f.coordinate&&c.payload.sourceViewBox){var p=c.payload.coordinate,m=p.x,y=p.y,h=NR(p,wR),v=c.payload.sourceViewBox,g=v.x,b=v.y,x=v.width,S=v.height,w=cf(cf({},h),{},{x:o.x+(x?(m-g)/x:0)*o.width,y:o.y+(S?(y-b)/S:0)*o.height});r(cf(cf({},c),{},{payload:cf(cf({},c.payload),{},{coordinate:w})}))}else r(c);return}if(a!=null){var _;if(typeof n=="function"){var k={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(a,k);_=a[A]}else n==="value"&&(_=a.find(O=>String(O.value)===c.payload.label));var P=c.payload.coordinate;if(P==null||o==null){r(nf({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(_==null){r(nf({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:void 0}));return}var K=P.x,z=P.y,Q=Math.min(K,o.x+o.width),M=Math.min(z,o.y+o.height),F={x:i==="horizontal"?_.coordinate:Q,y:i==="horizontal"?M:_.coordinate},N=nf({active:c.payload.active,coordinate:F,dataKey:c.payload.dataKey,index:String(_.index),label:c.payload.label,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:c.payload.graphicalItemId});r(N)}}};return uf.on(sb,s),()=>{uf.off(sb,s)}},[l,r,t,e,n,a,i,o])}function _R(){var e=xe(W0),t=xe(H0),r=He();(0,sv.useEffect)(()=>{if(e==null)return Tn;var n=(a,i,o)=>{t!==o&&e===a&&r(Yj(i))};return uf.on(mC,n),()=>{uf.off(mC,n)}},[r,t,e])}function Zj(){var e=He();(0,sv.useEffect)(()=>{e(Vj())},[e]),ER(),_R()}function Qj(e,t,r,n,a,i){var o=xe(m=>xj(m,e,t)),l=xe(eb),s=xe(H0),u=xe(W0),c=xe(Ik),d=xe(Kj),f=d?.sourceViewBox!=null,p=tu();(0,sv.useEffect)(()=>{if(!f&&u!=null&&s!=null){var m=nf({active:i,coordinate:r,dataKey:o,index:a,label:typeof n=="number"?String(n):n,sourceViewBox:p,graphicalItemId:l});uf.emit(sb,u,m,s)}},[f,r,o,l,a,n,s,u,c,i,p])}function Jj(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Rj(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{_(GI({shared:g,trigger:b,axisId:w,active:a,defaultIndex:k}))},[_,g,b,w,a,k]);var A=tu(),P=x0(),K=WI(g),z=(t=xe(V=>Aj(V,K,b,k)))!==null&&t!==void 0?t:{},Q=z.activeIndex,M=z.isActive,F=xe(V=>Sj(V,K,b,k)),N=xe(V=>cC(V,K,b,k)),O=xe(V=>wj(V,K,b,k)),I=F,D=Lj(),T=(r=a??M)!==null&&r!==void 0?r:!1,j=Ph([I,T]),R=PR(j,2),U=R[0],q=R[1],ee=K==="axis"?N:void 0;Qj(K,b,O,ee,Q,T);var fe=S??D;if(fe==null||A==null||K==null)return null;var pe=I??tz;T||(pe=tz),u&&pe.length&&(pe=Ch(pe.filter(V=>V.value!=null&&(V.hide!==!0||n.includeHidden)),f,LR));var Pe=pe.length>0,oe=Rj(Rj({},n),{},{payload:pe,label:ee,active:T,activeIndex:Q,coordinate:O,accessibilityLayer:P}),Te=Ja.createElement(LD,{allowEscapeViewBox:i,animationDuration:o,animationEasing:l,isAnimationActive:c,active:T,coordinate:O,hasPayload:Pe,offset:d,position:p,reverseDirection:m,useTranslate3d:y,viewBox:A,wrapperStyle:h,lastBoundingBox:U,innerRef:q,hasPortalFromProps:!!S},BR(s,oe));return Ja.createElement(Ja.Fragment,null,(0,nz.createPortal)(Te,fe),T&&Ja.createElement(zj,{cursor:v,tooltipEventType:K,coordinate:O,payload:pe,index:Q}))}var Uo=e=>null;Uo.displayName="Cell";var hC=re(ne()),fb=re(ne());function UR(e,t,r){return(t=FR(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function FR(e){var t=WR(e,"string");return typeof t=="symbol"?t:t+""}function WR(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 ub=class{constructor(t){UR(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 az(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function HR(e){for(var t=1;t{try{var r=document.getElementById(oz);r||(r=document.createElement("span"),r.setAttribute("id",oz),r.setAttribute("aria-hidden","true"),document.body.appendChild(r)),Object.assign(r.style,GR,t),r.textContent="".concat(e);var n=r.getBoundingClientRect();return{width:n.width,height:n.height}}catch{return{width:0,height:0}}},Cu=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||qa.isSsr)return{width:0,height:0};if(!sz.enableCache)return lz(t,r);var n=XR(t,r),a=iz.get(n);if(a)return a;var i=lz(t,r);return iz.set(n,i),i};var pz;function cb(e,t){return RR(e)||JR(e,t)||QR(e,t)||ZR()}function ZR(){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 QR(e,t){if(e){if(typeof e=="string")return uz(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)?uz(e,t):void 0}}function uz(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 a=[];st(t)||(r?a=t.toString().split(""):a=t.toString().split(bz));var i=a.map(l=>({word:l,width:Cu(l,n).width})),o=r?0:Cu("\xA0",n).width;return{wordsWithComputedWidth:i,spaceWidth:o}}catch{return null}};function pb(e){return e==="start"||e==="middle"||e==="end"||e==="inherit"}function Sz(e){return st(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var Az=(e,t,r,n)=>e.reduce((a,i)=>{var o=i.word,l=i.width,s=a[a.length-1];if(s&&l!=null&&(t==null||n||s.width+l+re.reduce((t,r)=>t.width>r.width?t:r),xee="\u2026",hz=(e,t,r,n,a,i,o,l)=>{var s=e.slice(0,t),u=wz({breakAll:r,style:n,children:s+xee});if(!u)return[!1,[]];var c=Az(u.wordsWithComputedWidth,i,o,l),d=c.length>a||kz(c).width>Number(i);return[d,c]},bee=(e,t,r,n,a)=>{var i=e.maxLines,o=e.children,l=e.style,s=e.breakAll,u=he(i),c=String(o),d=Az(t,n,r,a);if(!u||a)return d;var f=d.length>i||kz(d).width>Number(n);if(!f)return d;for(var p=0,m=c.length-1,y=0,h;p<=m&&y<=c.length-1;){var v=Math.floor((p+m)/2),g=v-1,b=hz(c,g,s,l,i,n,r,a),x=gz(b,2),S=x[0],w=x[1],_=hz(c,v,s,l,i,n,r,a),k=gz(_,1),A=k[0];if(!S&&!A&&(p=v+1),S&&A&&(m=v-1),!S&&A){h=w;break}y++}return h||d},xz=e=>{var t=st(e)?[]:e.toString().split(bz);return[{words:t,width:void 0}]},wee=e=>{var t=e.width,r=e.scaleToFit,n=e.children,a=e.style,i=e.breakAll,o=e.maxLines;if((t||r)&&!qa.isSsr){var l,s,u=wz({breakAll:i,children:n,style:a});if(u){var c=u.wordsWithComputedWidth,d=u.spaceWidth;l=c,s=d}else return xz(n);return bee({breakAll:i,children:n,maxLines:o,style:a},l,s,t,!!r)}return xz(n)},Nz="#808080",See={angle:0,breakAll:!1,capHeight:"0.71em",fill:Nz,lineHeight:"1em",scaleToFit:!1,textAnchor:"start",verticalAnchor:"end",x:0,y:0},Eu=(0,fb.forwardRef)((e,t)=>{var r=it(e,See),n=r.x,a=r.y,i=r.lineHeight,o=r.capHeight,l=r.fill,s=r.scaleToFit,u=r.textAnchor,c=r.verticalAnchor,d=vz(r,fee),f=(0,fb.useMemo)(()=>wee({breakAll:d.breakAll,children:d.children,maxLines:d.maxLines,scaleToFit:s,style:d.style,width:d.width}),[d.breakAll,d.children,d.maxLines,s,d.style,d.width]),p=d.dx,m=d.dy,y=d.angle,h=d.className,v=d.breakAll,g=vz(d,pee);if(!On(n)||!On(a)||f.length===0)return null;var b=Number(n)+(he(p)?p:0),x=Number(a)+(he(m)?m:0);if(!We(b)||!We(x))return null;var S;switch(c){case"start":S=db("calc(".concat(o,")"));break;case"middle":S=db("calc(".concat((f.length-1)/2," * -").concat(i," + (").concat(o," / 2))"));break;default:S=db("calc(".concat(f.length-1," * -").concat(i,")"));break}var w=[],_=f[0];if(s&&_!=null){var k=_.width,A=d.width;w.push("scale(".concat(he(A)&&he(k)?A/k:1,")"))}return y&&w.push("rotate(".concat(y,", ").concat(b,", ").concat(x,")")),w.length&&(g.transform=w.join(" ")),hC.createElement("text",yC({},tr(g),{ref:t,x:b,y:x,className:Ue("recharts-text",h),textAnchor:u,fill:l.includes("url")?Nz:l}),f.map((P,K)=>{var z=P.words.join(v?"":" ");return hC.createElement("tspan",{x:b,dy:K===0?S:i,key:"".concat(z,"-").concat(K)},z)}))});Eu.displayName="Text";var ta=re(ne()),qr=re(ne());var Aee=["labelRef"],kee=["content"];function Cz(e,t){if(e==null)return{};var r,n,a=Nee(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n{var t=e.x,r=e.y,n=e.upperWidth,a=e.lowerWidth,i=e.width,o=e.height,l=e.children,s=(0,qr.useMemo)(()=>({x:t,y:r,upperWidth:n,lowerWidth:a,width:i,height:o}),[t,r,n,a,i,o]);return ta.createElement(_z.Provider,{value:s},l)},Tz=()=>{var e=(0,qr.useContext)(_z),t=tu();return e||(t?Qp(t):void 0)},Mz=(0,qr.createContext)(null),Pz=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,a=e.outerRadius,i=e.startAngle,o=e.endAngle,l=e.clockWise,s=e.children,u=(0,qr.useMemo)(()=>({cx:t,cy:r,innerRadius:n,outerRadius:a,startAngle:i,endAngle:o,clockWise:l}),[t,r,n,a,i,o,l]);return ta.createElement(Mz.Provider,{value:u},s)},Oee=()=>{var e=(0,qr.useContext)(Mz),t=xe(G0);return e||t},Tee=e=>{var t=e.value,r=e.formatter,n=st(e.children)?t:e.children;return typeof r=="function"?r(n):n},Ou=e=>e!=null&&typeof e=="function",Mee=(e,t)=>{var r=Ut(t-e),n=Math.min(Math.abs(t-e),360);return r*n},Pee=(e,t,r,n,a)=>{var i=e.offset,o=e.className,l=a.cx,s=a.cy,u=a.innerRadius,c=a.outerRadius,d=a.startAngle,f=a.endAngle,p=a.clockWise,m=(u+c)/2,y=Mee(d,f),h=y>=0?1:-1,v,g;switch(t){case"insideStart":v=d+h*i,g=p;break;case"insideEnd":v=f-h*i,g=!p;break;case"end":v=f+h*i,g=p;break;default:throw new Error("Unsupported position ".concat(t))}g=y<=0?g:!g;var b=Kt(l,s,m,v),x=Kt(l,s,m,v+(g?1:-1)*359),S="M".concat(b.x,",").concat(b.y,` + A`,",",",0,0,",",",",","Z"])),W.x,W.y,o,o,+(c<0),M.x,M.y,n,n,+(H>180),+(c>0),w.x,w.y,o,o,+(c<0),O.x,O.y)}else x+=qr(Y8||(Y8=ou(["L",",","Z"])),t,r);return x},RG={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},B0=e=>{var t=lt(e,RG),r=t.cx,n=t.cy,a=t.innerRadius,o=t.outerRadius,i=t.cornerRadius,l=t.forceCornerRadius,s=t.cornerIsExternal,u=t.startAngle,c=t.endAngle,d=t.className;if(o0&&Math.abs(u-c)<360?y=JG({cx:r,cy:n,innerRadius:a,outerRadius:o,cornerRadius:Math.min(m,p/2),forceCornerRadius:l,cornerIsExternal:s,startAngle:u,endAngle:c}):y=X8({cx:r,cy:n,innerRadius:a,outerRadius:o,startAngle:u,endAngle:c}),G8.createElement("path",Ik({},rr(t),{className:f,d:y}))};function Z8(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(ih(t)){if(e==="centric"){var n=t.cx,a=t.cy,o=t.innerRadius,i=t.outerRadius,l=t.angle,s=qt(n,a,o,l),u=qt(n,a,i,l);return[{x:s.x,y:s.y},{x:u.x,y:u.y}]}return z0(t)}}function Q8(e){return zh(e)?NaN:Number(e)}function $0(e){return e?(e=Q8(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function U0(e,t,r){r&&typeof r!="number"&&dm(e,t,r)&&(t=r=void 0),e=$0(e),t===void 0?(t=e,e=0):t=$0(t),r=r===void 0?ee.chartData,iu=J([Rn],e=>{var t=e.chartData!=null?e.chartData.length-1:0;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),lu=(e,t,r,n)=>n?iu(e):Rn(e),F0=(e,t,r)=>r?iu(e):Rn(e),J8=J([lu],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]}),R8=J([iu],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]}),e6=J([Rn],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]});function jk(e,t){return nX(e)||rX(e,t)||tX(e,t)||eX()}function eX(){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 tX(e,t){if(e){if(typeof e=="string")return t6(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)?t6(e,t):void 0}}function t6(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=_m(e,2),r=t[0],n=t[1],a=r,o=n;return r>n&&(a=n,o=r),[a,o]},Uk=(e,t,r)=>{if(e.lte(0))return new wt.default(0);var n=Bk(e.toNumber()),a=new wt.default(10).pow(n),o=e.div(a),i=n!==1?.05:.1,l=new wt.default(Math.ceil(o.div(i).toNumber())).add(r).mul(i),s=l.mul(a);return t?new wt.default(s.toNumber()):new wt.default(Math.ceil(s.toNumber()))},l6=(e,t,r)=>{var n;if(e.lte(0))return new wt.default(0);var a=[1,2,2.5,5],o=e.toNumber(),i=Math.floor(new wt.default(o).abs().log(10).toNumber()),l=new wt.default(10).pow(i),s=e.div(l).toNumber(),u=a.findIndex(p=>p>=s-1e-10);if(u===-1&&(l=l.mul(10),u=0),u+=r,u>=a.length){var c=Math.floor(u/a.length);u%=a.length,l=l.mul(new wt.default(10).pow(c))}var d=(n=a[u])!==null&&n!==void 0?n:1,f=new wt.default(d).mul(l);return t?f:new wt.default(Math.ceil(f.toNumber()))},sX=(e,t,r)=>{var n=new wt.default(1),a=new wt.default(e);if(!a.isint()&&r){var o=Math.abs(e);o<1?(n=new wt.default(10).pow(Bk(e)-1),a=new wt.default(Math.floor(a.div(n).toNumber())).mul(n)):o>1&&(a=new wt.default(Math.floor(e)))}else e===0?a=new wt.default(Math.floor((t-1)/2)):r||(a=new wt.default(Math.floor(e)));for(var i=Math.floor((t-1)/2),l=[],s=0;s4&&arguments[4]!==void 0?arguments[4]:0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:Uk;if(!Number.isFinite((r-t)/(n-1)))return{step:new wt.default(0),tickMin:new wt.default(0),tickMax:new wt.default(0)};var l=i(new wt.default(r).sub(t).div(n-1),a,o),s;t<=0&&r>=0?s=new wt.default(0):(s=new wt.default(t).add(r).div(2),s=s.sub(new wt.default(s).mod(l)));var u=Math.ceil(s.sub(t).div(l).toNumber()),c=Math.ceil(new wt.default(r).sub(s).div(l).toNumber()),d=u+c+1;return d>n?s6(t,r,n,a,o+1,i):(d0?c+(n-d):c,u=r>0?u:u+(n-d)),{step:l,tickMin:s.sub(new wt.default(u).mul(l)),tickMax:s.add(new wt.default(c).mul(l))})};var V0=function(t){var r=_m(t,2),n=r[0],a=r[1],o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",s=Math.max(o,2),u=i6([n,a]),c=_m(u,2),d=c[0],f=c[1];if(d===-1/0||f===1/0){var p=f===1/0?[d,...Array(o-1).fill(1/0)]:[...Array(o-1).fill(-1/0),f];return n>a?p.reverse():p}if(d===f)return sX(d,o,i);var m=l==="snap125"?l6:Uk,y=s6(d,f,s,i,0,m),h=y.step,v=y.tickMin,g=y.tickMax,b=$k(v,g.add(new wt.default(.1).mul(h)),h);return n>a?b.reverse():b},K0=function(t,r){var n=_m(t,2),a=n[0],o=n[1],i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",s=i6([a,o]),u=_m(s,2),c=u[0],d=u[1];if(c===-1/0||d===1/0)return[a,o];if(c===d)return[c];var f=l==="snap125"?l6:Uk,p=Math.max(r,2),m=f(new wt.default(d).sub(c).div(p-1),i,0),y=[...$k(new wt.default(c),new wt.default(d),m),d];if(i===!1){y=y.map(v=>Math.round(v));var h=y.length-1;h>0&&y[h]===y[h-1]&&(y=y.slice(0,h))}return a>o?y.reverse():y};var Fk=e=>e.rootProps.maxBarSize,u6=e=>e.rootProps.barGap,q0=e=>e.rootProps.barCategoryGap,c6=e=>e.rootProps.barSize,Fl=e=>e.rootProps.stackOffset,Y0=e=>e.rootProps.reverseStackOrder,$d=e=>e.options.chartName,G0=e=>e.rootProps.syncId,Wk=e=>e.rootProps.syncMethod,X0=e=>e.options.eventEmitter,d6=e=>e.rootProps.baseValue;var dt={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 Wl={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:dt.axis};var bo={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:dt.axis};var su=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function uu(e,t,r){if(r!=="auto")return r;if(e!=null)return wn(e,t)?"category":"number"}function f6(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Z0(e){for(var t=1;t{if(t!=null)return e.polarAxis.angleAxis[t]},Q0=J([fX,b0],(e,t)=>{var r;if(e!=null)return e;var n=(r=uu(t,"angleAxis",p6.type))!==null&&r!==void 0?r:"category";return Z0(Z0({},p6),{},{type:n})}),pX=(e,t)=>e.polarAxis.radiusAxis[t],J0=J([pX,b0],(e,t)=>{var r;if(e!=null)return e;var n=(r=uu(t,"radiusAxis",m6.type))!==null&&r!==void 0?r:"category";return Z0(Z0({},m6),{},{type:n})}),R0=e=>e.polarOptions,Hk=J([on,ln,jt],j0),v6=J([R0,Hk],(e,t)=>{if(e!=null)return vr(e.innerRadius,t,0)}),g6=J([R0,Hk],(e,t)=>{if(e!=null)return vr(e.outerRadius,t,t*.8)}),mX=e=>{if(e==null)return[0,0];var t=e.startAngle,r=e.endAngle;return[t,r]},Vk=J([R0],mX),_0e=J([Q0,Vk],su),Kk=J([Hk,v6,g6],(e,t,r)=>{if(!(e==null||t==null||r==null))return[t,r]}),O0e=J([J0,Kk],su),ex=J([qe,R0,v6,g6,on,ln],(e,t,r,n,a,o)=>{if(!(e!=="centric"&&e!=="radial"||t==null||r==null||n==null)){var i=t.cx,l=t.cy,s=t.startAngle,u=t.endAngle;return{cx:vr(i,a,a/2),cy:vr(l,o,o/2),innerRadius:r,outerRadius:n,startAngle:s,endAngle:u,clockWise:!1}}});var nr=(e,t)=>t;var cu=(e,t,r)=>r;function Hl(e){return e?.id}function tx(e,t,r){var n=t.chartData,a=n===void 0?[]:n,o=r.allowDuplicatedCategory,i=r.dataKey,l=new Map;return e.forEach(s=>{var u,c=(u=s.data)!==null&&u!==void 0?u:a;if(!(c==null||c.length===0)){var d=Hl(s);c.forEach((f,p)=>{var m=i==null||o?p:String(Qe(f,i,null)),y=Qe(f,s.dataKey,0),h;l.has(m)?h=l.get(m):h={},Object.assign(h,{[d]:y}),l.set(m,h)})}}),Array.from(l.values())}function du(e){return"stackId"in e&&e.stackId!=null&&e.dataKey!=null}var fu=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function Ud(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function y6(e,t){if(e.length===t.length){for(var r=0;r{var t=qe(e);return t==="horizontal"?"xAxis":t==="vertical"?"yAxis":t==="centric"?"angleAxis":"radiusAxis"};var Vl=e=>e.tooltip.settings.axisId;function Om(e){if(e!=null){var t=e.ticks,r=e.bandwidth,n=e.range(),a=[Math.min(...n),Math.max(...n)];return{domain:()=>e.domain(),range:(function(o){function i(){return o.apply(this,arguments)}return i.toString=function(){return o.toString()},i})(()=>a),rangeMin:()=>a[0],rangeMax:()=>a[1],isInRange(o){var i=a[0],l=a[1];return i<=l?o>=i&&o<=l:o>=l&&o<=i},bandwidth:r?()=>r.call(e):void 0,ticks:t?o=>t.call(e,o):void 0,map:(o,i)=>{var l=e(o);if(l!=null){if(e.bandwidth&&i!==null&&i!==void 0&&i.position){var s=e.bandwidth();switch(i.position){case"middle":l+=s/2;break;case"end":l+=s;break;default:break}}return l}}}}}var rx=(e,t)=>{if(t!=null)switch(e){case"linear":{if(!Aa(t)){for(var r,n,a=0;an)&&(n=o))}return r!==void 0&&n!==void 0?[r,n]:void 0}return t}default:return t}};var Zm={};fU(Zm,{scaleBand:()=>Dm,scaleDiverging:()=>Lx,scaleDivergingLog:()=>kN,scaleDivergingPow:()=>Bx,scaleDivergingSqrt:()=>$I,scaleDivergingSymlog:()=>NN,scaleIdentity:()=>wx,scaleImplicit:()=>ux,scaleLinear:()=>bx,scaleLog:()=>Sx,scaleOrdinal:()=>Hd,scalePoint:()=>k6,scalePow:()=>Vm,scaleQuantile:()=>Nx,scaleQuantize:()=>Cx,scaleRadial:()=>kx,scaleSequential:()=>Dx,scaleSequentialLog:()=>SN,scaleSequentialPow:()=>Ix,scaleSequentialQuantile:()=>jx,scaleSequentialSqrt:()=>BI,scaleSequentialSymlog:()=>AN,scaleSqrt:()=>iI,scaleSymlog:()=>Ax,scaleThreshold:()=>Ex,scaleTime:()=>bN,scaleUtc:()=>wN,tickFormat:()=>$m});function In(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function qk(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function pu(e){let t,r,n;e.length!==2?(t=In,r=(l,s)=>In(e(l),s),n=(l,s)=>e(l)-s):(t=e===In||e===qk?e:vX,r=e,n=e);function a(l,s,u=0,c=l.length){if(u>>1;r(l[d],s)<0?u=d+1:c=d}while(u>>1;r(l[d],s)<=0?u=d+1:c=d}while(uu&&n(l[d-1],s)>-n(l[d],s)?d-1:d}return{left:a,center:i,right:o}}function vX(){return 0}function Tm(e){return e===null?NaN:+e}function*h6(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 x6=pu(In),b6=x6.right,gX=x6.left,yX=pu(Tm).center,wo=b6;var Fd=class extends Map{constructor(t,r=bX){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(let[n,a]of t)this.set(n,a)}get(t){return super.get(w6(this,t))}has(t){return super.has(w6(this,t))}set(t,r){return super.set(hX(this,t),r)}delete(t){return super.delete(xX(this,t))}};function w6({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):r}function hX({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function xX({_intern:e,_key:t},r){let n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function bX(e){return e!==null&&typeof e=="object"?e.valueOf():e}function S6(e=In){if(e===In)return Yk;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 Yk(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}var wX=Math.sqrt(50),SX=Math.sqrt(10),AX=Math.sqrt(2);function nx(e,t,r){let n=(t-e)/Math.max(0,r),a=Math.floor(Math.log10(n)),o=n/Math.pow(10,a),i=o>=wX?10:o>=SX?5:o>=AX?2:1,l,s,u;return a<0?(u=Math.pow(10,-a)/i,l=Math.round(e*u),s=Math.round(t*u),l/ut&&--s,u=-u):(u=Math.pow(10,a)*i,l=Math.round(e/u),s=Math.round(t/u),l*ut&&--s),s0))return[];if(e===t)return[e];let n=t=a))return[];let l=o-a+1,s=new Array(l);if(n)if(i<0)for(let u=0;u=n)&&(r=n);else{let n=-1;for(let a of e)(a=t(a,++n,e))!=null&&(r=a)&&(r=a)}return r}function ox(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 a of e)(a=t(a,++n,e))!=null&&(r>a||r===void 0&&a>=a)&&(r=a)}return r}function ix(e,t,r=0,n=1/0,a){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(a=a===void 0?Yk:S6(a);n>r;){if(n-r>600){let s=n-r+1,u=t-r+1,c=Math.log(s),d=.5*Math.exp(2*c/3),f=.5*Math.sqrt(c*d*(s-d)/s)*(u-s/2<0?-1:1),p=Math.max(r,Math.floor(t-u*d/s+f)),m=Math.min(n,Math.floor(t+(s-u)*d/s+f));ix(e,t,p,m,a)}let o=e[t],i=r,l=n;for(Pm(e,r,t),a(e[n],o)>0&&Pm(e,r,n);i0;)--l}a(e[r],o)===0?Pm(e,r,l):(++l,Pm(e,l,n)),l<=t&&(r=l+1),t<=l&&(n=l-1)}return e}function Pm(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}function lx(e,t,r){if(e=Float64Array.from(h6(e,r)),!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return ox(e);if(t>=1)return ax(e);var n,a=(n-1)*t,o=Math.floor(a),i=ax(ix(e,o).subarray(0,o+1)),l=ox(e.subarray(o+1));return i+(l-i)*(a-o)}}function Gk(e,t,r=Tm){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,a=(n-1)*t,o=Math.floor(a),i=+r(e[o],o,e),l=+r(e[o+1],o+1,e);return i+(l-i)*(a-o)}}function sx(e,t,r){e=+e,t=+t,r=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+r;for(var n=-1,a=Math.max(0,Math.ceil((t-e)/r))|0,o=new Array(a);++n>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?dx(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?dx(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=NX.exec(e))?new ea(t[1],t[2],t[3],1):(t=CX.exec(e))?new ea(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=EX.exec(e))?dx(t[1],t[2],t[3],t[4]):(t=_X.exec(e))?dx(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=OX.exec(e))?M6(t[1],t[2]/100,t[3]/100,1):(t=TX.exec(e))?M6(t[1],t[2]/100,t[3]/100,t[4]):N6.hasOwnProperty(e)?_6(N6[e]):e==="transparent"?new ea(NaN,NaN,NaN,0):null}function _6(e){return new ea(e>>16&255,e>>8&255,e&255,1)}function dx(e,t,r,n){return n<=0&&(e=t=r=NaN),new ea(e,t,r,n)}function DX(e){return e instanceof zm||(e=Kl(e)),e?(e=e.rgb(),new ea(e.r,e.g,e.b,e.opacity)):new ea}function Kd(e,t,r,n){return arguments.length===1?DX(e):new ea(e,t,r,n??1)}function ea(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}cx(ea,Kd,Xk(zm,{brighter(e){return e=e==null?px:Math.pow(px,e),new ea(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Im:Math.pow(Im,e),new ea(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ea(gu(this.r),gu(this.g),gu(this.b),mx(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:O6,formatHex:O6,formatHex8:IX,formatRgb:T6,toString:T6}));function O6(){return`#${vu(this.r)}${vu(this.g)}${vu(this.b)}`}function IX(){return`#${vu(this.r)}${vu(this.g)}${vu(this.b)}${vu((isNaN(this.opacity)?1:this.opacity)*255)}`}function T6(){let e=mx(this.opacity);return`${e===1?"rgb(":"rgba("}${gu(this.r)}, ${gu(this.g)}, ${gu(this.b)}${e===1?")":`, ${e})`}`}function mx(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function gu(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function vu(e){return e=gu(e),(e<16?"0":"")+e.toString(16)}function M6(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new So(e,t,r,n)}function D6(e){if(e instanceof So)return new So(e.h,e.s,e.l,e.opacity);if(e instanceof zm||(e=Kl(e)),!e)return new So;if(e instanceof So)return e;e=e.rgb();var t=e.r/255,r=e.g/255,n=e.b/255,a=Math.min(t,r,n),o=Math.max(t,r,n),i=NaN,l=o-a,s=(o+a)/2;return l?(t===o?i=(r-n)/l+(r0&&s<1?0:i,new So(i,l,s,e.opacity)}function I6(e,t,r,n){return arguments.length===1?D6(e):new So(e,t,r,n??1)}function So(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}cx(So,I6,Xk(zm,{brighter(e){return e=e==null?px:Math.pow(px,e),new So(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Im:Math.pow(Im,e),new So(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,a=2*r-n;return new ea(Zk(e>=240?e-240:e+120,a,n),Zk(e,a,n),Zk(e<120?e+240:e-120,a,n),this.opacity)},clamp(){return new So(P6(this.h),fx(this.s),fx(this.l),mx(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=mx(this.opacity);return`${e===1?"hsl(":"hsla("}${P6(this.h)}, ${fx(this.s)*100}%, ${fx(this.l)*100}%${e===1?")":`, ${e})`}`}}));function P6(e){return e=(e||0)%360,e<0?e+360:e}function fx(e){return Math.max(0,Math.min(1,e||0))}function Zk(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 Qk(e,t,r,n,a){var o=e*e,i=o*e;return((1-3*e+3*o-i)*t+(4-6*o+3*i)*r+(1+3*e+3*o-3*i)*n+i*a)/6}function j6(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),a=e[n],o=e[n+1],i=n>0?e[n-1]:2*a-o,l=n()=>e;function jX(e,t){return function(r){return e+r*t}}function zX(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 L6(e){return(e=+e)==1?vx:function(t,r){return r-t?zX(t,r,e):Lm(isNaN(t)?r:t)}}function vx(e,t){var r=t-e;return r?jX(e,r):Lm(isNaN(e)?t:e)}var Jk=(function e(t){var r=L6(t);function n(a,o){var i=r((a=Kd(a)).r,(o=Kd(o)).r),l=r(a.g,o.g),s=r(a.b,o.b),u=vx(a.opacity,o.opacity);return function(c){return a.r=i(c),a.g=l(c),a.b=s(c),a.opacity=u(c),a+""}}return n.gamma=e,n})(1);function B6(e){return function(t){var r=t.length,n=new Array(r),a=new Array(r),o=new Array(r),i,l;for(i=0;ir&&(o=t.slice(r,o),l[i]?l[i]+=o:l[++i]=o),(n=n[0])===(a=a[0])?l[i]?l[i]+=a:l[++i]=a:(l[++i]=null,s.push({i,x:ql(n,a)})),r=Rk.lastIndex;return rt&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function UX(e,t,r){var n=e[0],a=e[1],o=t[0],i=t[1];return a2?FX:UX,s=u=null,d}function d(f){return f==null||isNaN(f=+f)?o:(s||(s=l(e.map(n),t,r)))(n(i(f)))}return d.invert=function(f){return i(a((u||(u=l(t,e.map(n),ql)))(f)))},d.domain=function(f){return arguments.length?(e=Array.from(f,Yl),c()):e.slice()},d.range=function(f){return arguments.length?(t=Array.from(f),c()):t.slice()},d.rangeRound=function(f){return t=Array.from(f),r=yu,c()},d.clamp=function(f){return arguments.length?(i=f?!0:Gr,c()):i!==Gr},d.interpolate=function(f){return arguments.length?(r=f,c()):r},d.unknown=function(f){return arguments.length?(o=f,d):o},function(f,p){return n=f,a=p,c()}}function xu(){return hu()(Gr,Gr)}function q6(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function bu(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 Ko(e){return e=bu(Math.abs(e)),e?e[1]:NaN}function Y6(e,t){return function(r,n){for(var a=r.length,o=[],i=0,l=e[0],s=0;a>0&&l>0&&(s+l+1>n&&(l=Math.max(1,n-s)),o.push(r.substring(a-=l,a+l)),!((s+=l+1)>n));)l=e[i=(i+1)%e.length];return o.reverse().join(t)}}function G6(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var WX=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function qo(e){if(!(t=WX.exec(e)))throw new Error("invalid format: "+e);var t;return new yx({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]})}qo.prototype=yx.prototype;function yx(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+""}yx.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 X6(e){e:for(var t=e.length,r=1,n=-1,a;r0&&(n=0);break}return n>0?e.slice(0,n)+e.slice(a+1):e}var Bm;function Z6(e,t){var r=bu(e,t);if(!r)return Bm=void 0,e.toPrecision(t);var n=r[0],a=r[1],o=a-(Bm=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,i=n.length;return o===i?n:o>i?n+new Array(o-i+1).join("0"):o>0?n.slice(0,o)+"."+n.slice(o):"0."+new Array(1-o).join("0")+bu(e,Math.max(0,t+o-1))[0]}function nN(e,t){var r=bu(e,t);if(!r)return e+"";var n=r[0],a=r[1];return a<0?"0."+new Array(-a).join("0")+n:n.length>a+1?n.slice(0,a+1)+"."+n.slice(a+1):n+new Array(a-n.length+2).join("0")}var aN={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:q6,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)=>nN(e*100,t),r:nN,s:Z6,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function oN(e){return e}var Q6=Array.prototype.map,J6=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function R6(e){var t=e.grouping===void 0||e.thousands===void 0?oN:Y6(Q6.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",n=e.currency===void 0?"":e.currency[1]+"",a=e.decimal===void 0?".":e.decimal+"",o=e.numerals===void 0?oN:G6(Q6.call(e.numerals,String)),i=e.percent===void 0?"%":e.percent+"",l=e.minus===void 0?"\u2212":e.minus+"",s=e.nan===void 0?"NaN":e.nan+"";function u(d,f){d=qo(d);var p=d.fill,m=d.align,y=d.sign,h=d.symbol,v=d.zero,g=d.width,b=d.comma,x=d.precision,S=d.trim,w=d.type;w==="n"?(b=!0,w="g"):aN[w]||(x===void 0&&(x=12),S=!0,w="g"),(v||p==="0"&&m==="=")&&(v=!0,p="0",m="=");var O=(f&&f.prefix!==void 0?f.prefix:"")+(h==="$"?r:h==="#"&&/[boxX]/.test(w)?"0"+w.toLowerCase():""),k=(h==="$"?n:/[%p]/.test(w)?i:"")+(f&&f.suffix!==void 0?f.suffix:""),A=aN[w],M=/[defgprs%]/.test(w);x=x===void 0?6:/[gprs]/.test(w)?Math.max(1,Math.min(21,x)):Math.max(0,Math.min(20,x));function W(L){var H=O,D=k,Y,N,_;if(w==="c")D=A(L)+D,L="";else{L=+L;var z=L<0||1/L<0;if(L=isNaN(L)?s:A(Math.abs(L),x),S&&(L=X6(L)),z&&+L==0&&y!=="+"&&(z=!1),H=(z?y==="("?y:l:y==="-"||y==="("?"":y)+H,D=(w==="s"&&!isNaN(L)&&Bm!==void 0?J6[8+Bm/3]:"")+D+(z&&y==="("?")":""),M){for(Y=-1,N=L.length;++Y_||_>57){D=(_===46?a+L.slice(Y+1):L.slice(Y))+D,L=L.slice(0,Y);break}}}b&&!v&&(L=t(L,1/0));var j=H.length+L.length+D.length,P=j>1)+H+L+D+P.slice(j);break;default:L=P+H+L+D;break}return o(L)}return W.toString=function(){return d+""},W}function c(d,f){var p=Math.max(-8,Math.min(8,Math.floor(Ko(f)/3)))*3,m=Math.pow(10,-p),y=u((d=qo(d),d.type="f",d),{suffix:J6[8+p/3]});return function(h){return y(m*h)}}return{format:u,formatPrefix:c}}var hx,qd,xx;iN({thousands:",",grouping:[3],currency:["$",""]});function iN(e){return hx=R6(e),qd=hx.format,xx=hx.formatPrefix,hx}function lN(e){return Math.max(0,-Ko(Math.abs(e)))}function sN(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Ko(t)/3)))*3-Ko(Math.abs(e)))}function uN(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Ko(t)-Ko(e))+1}function $m(e,t,r,n){var a=Wd(e,t,r),o;switch(n=qo(n??",f"),n.type){case"s":{var i=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(o=sN(a,i))&&(n.precision=o),xx(n,i)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(o=uN(a,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=o-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(o=lN(a))&&(n.precision=o-(n.type==="%")*2);break}}return qd(n)}function jn(e){var t=e.domain;return e.ticks=function(r){var n=t();return mu(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var a=t();return $m(a[0],a[a.length-1],r??10,n)},e.nice=function(r){r==null&&(r=10);var n=t(),a=0,o=n.length-1,i=n[a],l=n[o],s,u,c=10;for(l0;){if(u=Mm(i,l,r),u===s)return n[a]=i,n[o]=l,t(n);if(u>0)i=Math.floor(i/u)*u,l=Math.ceil(l/u)*u;else if(u<0)i=Math.ceil(i*u)/u,l=Math.floor(l*u)/u;else break;s=u}return e},e}function bx(){var e=xu();return e.copy=function(){return Vo(e,bx())},lr.apply(e,arguments),jn(e)}function wx(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,Yl),r):e.slice()},r.unknown=function(n){return arguments.length?(t=n,r):t},r.copy=function(){return wx(e).unknown(t)},e=arguments.length?Array.from(e,Yl):[0,1],jn(r)}function Um(e,t){e=e.slice();var r=0,n=e.length-1,a=e[r],o=e[n],i;return oMath.pow(e,t)}function YX(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 rI(e){return(t,r)=>-e(-t,r)}function Fm(e){let t=e(eI,tI),r=t.domain,n=10,a,o;function i(){return a=YX(n),o=qX(n),r()[0]<0?(a=rI(a),o=rI(o),e(HX,VX)):e(eI,tI),t}return t.base=function(l){return arguments.length?(n=+l,i()):n},t.domain=function(l){return arguments.length?(r(l),i()):r()},t.ticks=l=>{let s=r(),u=s[0],c=s[s.length-1],d=c0){for(;f<=p;++f)for(m=1;mc)break;v.push(y)}}else for(;f<=p;++f)for(m=n-1;m>=1;--m)if(y=f>0?m/o(-f):m*o(f),!(yc)break;v.push(y)}v.length*2{if(l==null&&(l=10),s==null&&(s=n===10?"s":","),typeof s!="function"&&(!(n%1)&&(s=qo(s)).precision==null&&(s.trim=!0),s=qd(s)),l===1/0)return s;let u=Math.max(1,n*l/t.ticks().length);return c=>{let d=c/o(Math.round(a(c)));return d*nr(Um(r(),{floor:l=>o(Math.floor(a(l))),ceil:l=>o(Math.ceil(a(l)))})),t}function Sx(){let e=Fm(hu()).domain([1,10]);return e.copy=()=>Vo(e,Sx()).base(e.base()),lr.apply(e,arguments),e}function nI(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function aI(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Wm(e){var t=1,r=e(nI(t),aI(t));return r.constant=function(n){return arguments.length?e(nI(t=+n),aI(t)):t},jn(r)}function Ax(){var e=Wm(hu());return e.copy=function(){return Vo(e,Ax()).constant(e.constant())},lr.apply(e,arguments)}function oI(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function GX(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function XX(e){return e<0?-e*e:e*e}function Hm(e){var t=e(Gr,Gr),r=1;function n(){return r===1?e(Gr,Gr):r===.5?e(GX,XX):e(oI(r),oI(1/r))}return t.exponent=function(a){return arguments.length?(r=+a,n()):r},jn(t)}function Vm(){var e=Hm(hu());return e.copy=function(){return Vo(e,Vm()).exponent(e.exponent())},lr.apply(e,arguments),e}function iI(){return Vm.apply(null,arguments).exponent(.5)}function lI(e){return Math.sign(e)*e*e}function ZX(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function kx(){var e=xu(),t=[0,1],r=!1,n;function a(o){var i=ZX(e(o));return isNaN(i)?n:r?Math.round(i):i}return a.invert=function(o){return e.invert(lI(o))},a.domain=function(o){return arguments.length?(e.domain(o),a):e.domain()},a.range=function(o){return arguments.length?(e.range((t=Array.from(o,Yl)).map(lI)),a):t.slice()},a.rangeRound=function(o){return a.range(o).round(!0)},a.round=function(o){return arguments.length?(r=!!o,a):r},a.clamp=function(o){return arguments.length?(e.clamp(o),a):e.clamp()},a.unknown=function(o){return arguments.length?(n=o,a):n},a.copy=function(){return kx(e.domain(),t).round(r).clamp(e.clamp()).unknown(n)},lr.apply(a,arguments),jn(a)}function Nx(){var e=[],t=[],r=[],n;function a(){var i=0,l=Math.max(1,t.length);for(r=new Array(l-1);++i0?r[l-1]:e[0],l=r?[n[r-1],t]:[n[u-1],n[u]]},i.unknown=function(s){return arguments.length&&(o=s),i},i.thresholds=function(){return n.slice()},i.copy=function(){return Cx().domain([e,t]).range(a).unknown(o)},lr.apply(jn(i),arguments)}function Ex(){var e=[.5],t=[0,1],r,n=1;function a(o){return o!=null&&o<=o?t[wo(e,o,0,n)]:r}return a.domain=function(o){return arguments.length?(e=Array.from(o),n=Math.min(e.length,t.length-1),a):e.slice()},a.range=function(o){return arguments.length?(t=Array.from(o),n=Math.min(e.length,t.length-1),a):t.slice()},a.invertExtent=function(o){var i=t.indexOf(o);return[e[i-1],e[i]]},a.unknown=function(o){return arguments.length?(r=o,a):r},a.copy=function(){return Ex().domain(e).range(t).unknown(r)},lr.apply(a,arguments)}var cN=new Date,dN=new Date;function Wt(e,t,r,n){function a(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return a.floor=o=>(e(o=new Date(+o)),o),a.ceil=o=>(e(o=new Date(o-1)),t(o,1),e(o),o),a.round=o=>{let i=a(o),l=a.ceil(o);return o-i(t(o=new Date(+o),i==null?1:Math.floor(i)),o),a.range=(o,i,l)=>{let s=[];if(o=a.ceil(o),l=l==null?1:Math.floor(l),!(o0))return s;let u;do s.push(u=new Date(+o)),t(o,l),e(o);while(uWt(i=>{if(i>=i)for(;e(i),!o(i);)i.setTime(i-1)},(i,l)=>{if(i>=i)if(l<0)for(;++l<=0;)for(;t(i,-1),!o(i););else for(;--l>=0;)for(;t(i,1),!o(i););}),r&&(a.count=(o,i)=>(cN.setTime(+o),dN.setTime(+i),e(cN),e(dN),Math.floor(r(cN,dN))),a.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?a.filter(n?i=>n(i)%o===0:i=>a.count(0,i)%o===0):a)),a}var Km=Wt(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Km.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Wt(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):Km);var lwe=Km.range;var Qa=Wt(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*1e3)},(e,t)=>(t-e)/1e3,e=>e.getUTCSeconds()),sI=Qa.range;var Yd=Wt(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getMinutes()),QX=Yd.range,Gd=Wt(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getUTCMinutes()),JX=Gd.range;var Xd=Wt(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()),RX=Xd.range,Zd=Wt(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getUTCHours()),eZ=Zd.range;var Ii=Wt(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),tZ=Ii.range,Au=Wt(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>e.getUTCDate()-1),rZ=Au.range,_x=Wt(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>Math.floor(e/864e5)),nZ=_x.range;function ku(e){return Wt(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 ji=ku(0),Qd=ku(1),cI=ku(2),dI=ku(3),Gl=ku(4),fI=ku(5),pI=ku(6),mI=ji.range,aZ=Qd.range,oZ=cI.range,iZ=dI.range,lZ=Gl.range,sZ=fI.range,uZ=pI.range;function Nu(e){return Wt(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 zi=Nu(0),Jd=Nu(1),vI=Nu(2),gI=Nu(3),Xl=Nu(4),yI=Nu(5),hI=Nu(6),xI=zi.range,cZ=Jd.range,dZ=vI.range,fZ=gI.range,pZ=Xl.range,mZ=yI.range,vZ=hI.range;var Rd=Wt(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()),gZ=Rd.range,ef=Wt(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()),yZ=ef.range;var Na=Wt(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());Na.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Wt(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 hZ=Na.range,Ca=Wt(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());Ca.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Wt(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 xZ=Ca.range;function wI(e,t,r,n,a,o){let i=[[Qa,1,1e3],[Qa,5,5*1e3],[Qa,15,15*1e3],[Qa,30,30*1e3],[o,1,6e4],[o,5,5*6e4],[o,15,15*6e4],[o,30,30*6e4],[a,1,36e5],[a,3,3*36e5],[a,6,6*36e5],[a,12,12*36e5],[n,1,864e5],[n,2,2*864e5],[r,1,6048e5],[t,1,2592e6],[t,3,3*2592e6],[e,1,31536e6]];function l(u,c,d){let f=ch).right(i,f);if(p===i.length)return e.every(Wd(u/31536e6,c/31536e6,d));if(p===0)return Km.every(Math.max(Wd(u,c,d),1));let[m,y]=i[f/i[p-1][2]53)return null;"w"in I||(I.w=1),"Z"in I?(T=yN(Ym(I.y,0,1)),X=T.getUTCDay(),T=X>4||X===0?Jd.ceil(T):Jd(T),T=Au.offset(T,(I.V-1)*7),I.y=T.getUTCFullYear(),I.m=T.getUTCMonth(),I.d=T.getUTCDate()+(I.w+6)%7):(T=gN(Ym(I.y,0,1)),X=T.getDay(),T=X>4||X===0?Qd.ceil(T):Qd(T),T=Ii.offset(T,(I.V-1)*7),I.y=T.getFullYear(),I.m=T.getMonth(),I.d=T.getDate()+(I.w+6)%7)}else("W"in I||"U"in I)&&("w"in I||(I.w="u"in I?I.u%7:"W"in I?1:0),X="Z"in I?yN(Ym(I.y,0,1)).getUTCDay():gN(Ym(I.y,0,1)).getDay(),I.m=0,I.d="W"in I?(I.w+6)%7+I.W*7-(X+5)%7:I.w+I.U*7-(X+6)%7);return"Z"in I?(I.H+=I.Z/100|0,I.M+=I.Z%100,yN(I)):gN(I)}}function k(le,Te,K,I){for(var C=0,T=Te.length,X=K.length,$,Ne;C=X)return-1;if($=Te.charCodeAt(C++),$===37){if($=Te.charAt(C++),Ne=S[$ in SI?Te.charAt(C++):$],!Ne||(I=Ne(le,K,I))<0)return-1}else if($!=K.charCodeAt(I++))return-1}return I}function A(le,Te,K){var I=u.exec(Te.slice(K));return I?(le.p=c.get(I[0].toLowerCase()),K+I[0].length):-1}function M(le,Te,K){var I=p.exec(Te.slice(K));return I?(le.w=m.get(I[0].toLowerCase()),K+I[0].length):-1}function W(le,Te,K){var I=d.exec(Te.slice(K));return I?(le.w=f.get(I[0].toLowerCase()),K+I[0].length):-1}function L(le,Te,K){var I=v.exec(Te.slice(K));return I?(le.m=g.get(I[0].toLowerCase()),K+I[0].length):-1}function H(le,Te,K){var I=y.exec(Te.slice(K));return I?(le.m=h.get(I[0].toLowerCase()),K+I[0].length):-1}function D(le,Te,K){return k(le,t,Te,K)}function Y(le,Te,K){return k(le,r,Te,K)}function N(le,Te,K){return k(le,n,Te,K)}function _(le){return i[le.getDay()]}function z(le){return o[le.getDay()]}function j(le){return s[le.getMonth()]}function P(le){return l[le.getMonth()]}function B(le){return a[+(le.getHours()>=12)]}function R(le){return 1+~~(le.getMonth()/3)}function F(le){return i[le.getUTCDay()]}function G(le){return o[le.getUTCDay()]}function ee(le){return s[le.getUTCMonth()]}function fe(le){return l[le.getUTCMonth()]}function de(le){return a[+(le.getUTCHours()>=12)]}function De(le){return 1+~~(le.getUTCMonth()/3)}return{format:function(le){var Te=w(le+="",b);return Te.toString=function(){return le},Te},parse:function(le){var Te=O(le+="",!1);return Te.toString=function(){return le},Te},utcFormat:function(le){var Te=w(le+="",x);return Te.toString=function(){return le},Te},utcParse:function(le){var Te=O(le+="",!0);return Te.toString=function(){return le},Te}}}var SI={"-":"",_:" ",0:"0"},sn=/^\s*\d+/,wZ=/^%/,SZ=/[\\^$*+?|[\]().{}]/g;function _t(e,t,r){var n=e<0?"-":"",a=(n?-e:e)+"",o=a.length;return n+(o[t.toLowerCase(),r]))}function kZ(e,t,r){var n=sn.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function NZ(e,t,r){var n=sn.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function CZ(e,t,r){var n=sn.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function EZ(e,t,r){var n=sn.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function _Z(e,t,r){var n=sn.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function AI(e,t,r){var n=sn.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function kI(e,t,r){var n=sn.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function OZ(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 TZ(e,t,r){var n=sn.exec(t.slice(r,r+1));return n?(e.q=n[0]*3-3,r+n[0].length):-1}function MZ(e,t,r){var n=sn.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function NI(e,t,r){var n=sn.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function PZ(e,t,r){var n=sn.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function CI(e,t,r){var n=sn.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function DZ(e,t,r){var n=sn.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function IZ(e,t,r){var n=sn.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function jZ(e,t,r){var n=sn.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function zZ(e,t,r){var n=sn.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function LZ(e,t,r){var n=wZ.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function BZ(e,t,r){var n=sn.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function $Z(e,t,r){var n=sn.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function EI(e,t){return _t(e.getDate(),t,2)}function UZ(e,t){return _t(e.getHours(),t,2)}function FZ(e,t){return _t(e.getHours()%12||12,t,2)}function WZ(e,t){return _t(1+Ii.count(Na(e),e),t,3)}function PI(e,t){return _t(e.getMilliseconds(),t,3)}function HZ(e,t){return PI(e,t)+"000"}function VZ(e,t){return _t(e.getMonth()+1,t,2)}function KZ(e,t){return _t(e.getMinutes(),t,2)}function qZ(e,t){return _t(e.getSeconds(),t,2)}function YZ(e){var t=e.getDay();return t===0?7:t}function GZ(e,t){return _t(ji.count(Na(e)-1,e),t,2)}function DI(e){var t=e.getDay();return t>=4||t===0?Gl(e):Gl.ceil(e)}function XZ(e,t){return e=DI(e),_t(Gl.count(Na(e),e)+(Na(e).getDay()===4),t,2)}function ZZ(e){return e.getDay()}function QZ(e,t){return _t(Qd.count(Na(e)-1,e),t,2)}function JZ(e,t){return _t(e.getFullYear()%100,t,2)}function RZ(e,t){return e=DI(e),_t(e.getFullYear()%100,t,2)}function eQ(e,t){return _t(e.getFullYear()%1e4,t,4)}function tQ(e,t){var r=e.getDay();return e=r>=4||r===0?Gl(e):Gl.ceil(e),_t(e.getFullYear()%1e4,t,4)}function rQ(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+_t(t/60|0,"0",2)+_t(t%60,"0",2)}function _I(e,t){return _t(e.getUTCDate(),t,2)}function nQ(e,t){return _t(e.getUTCHours(),t,2)}function aQ(e,t){return _t(e.getUTCHours()%12||12,t,2)}function oQ(e,t){return _t(1+Au.count(Ca(e),e),t,3)}function II(e,t){return _t(e.getUTCMilliseconds(),t,3)}function iQ(e,t){return II(e,t)+"000"}function lQ(e,t){return _t(e.getUTCMonth()+1,t,2)}function sQ(e,t){return _t(e.getUTCMinutes(),t,2)}function uQ(e,t){return _t(e.getUTCSeconds(),t,2)}function cQ(e){var t=e.getUTCDay();return t===0?7:t}function dQ(e,t){return _t(zi.count(Ca(e)-1,e),t,2)}function jI(e){var t=e.getUTCDay();return t>=4||t===0?Xl(e):Xl.ceil(e)}function fQ(e,t){return e=jI(e),_t(Xl.count(Ca(e),e)+(Ca(e).getUTCDay()===4),t,2)}function pQ(e){return e.getUTCDay()}function mQ(e,t){return _t(Jd.count(Ca(e)-1,e),t,2)}function vQ(e,t){return _t(e.getUTCFullYear()%100,t,2)}function gQ(e,t){return e=jI(e),_t(e.getUTCFullYear()%100,t,2)}function yQ(e,t){return _t(e.getUTCFullYear()%1e4,t,4)}function hQ(e,t){var r=e.getUTCDay();return e=r>=4||r===0?Xl(e):Xl.ceil(e),_t(e.getUTCFullYear()%1e4,t,4)}function xQ(){return"+0000"}function OI(){return"%"}function TI(e){return+e}function MI(e){return Math.floor(+e/1e3)}var tf,Ox,zI,Tx,LI;xN({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 xN(e){return tf=hN(e),Ox=tf.format,zI=tf.parse,Tx=tf.utcFormat,LI=tf.utcParse,tf}function bQ(e){return new Date(e)}function wQ(e){return e instanceof Date?+e:+new Date(+e)}function Mx(e,t,r,n,a,o,i,l,s,u){var c=xu(),d=c.invert,f=c.domain,p=u(".%L"),m=u(":%S"),y=u("%I:%M"),h=u("%I %p"),v=u("%a %d"),g=u("%b %d"),b=u("%B"),x=u("%Y");function S(w){return(s(w)t(a/(e.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(a,o)=>lx(e,o/n))},r.copy=function(){return jx(t).domain(e)},Za.apply(r,arguments)}function zx(){var e=0,t=.5,r=1,n=1,a,o,i,l,s,u=Gr,c,d=!1,f;function p(y){return isNaN(y=+y)?f:(y=.5+((y=+c(y))-o)*(n*y{if(e!=null){var n=e.scale,a=e.type;if(n==="auto")return a==="category"&&r&&(r.indexOf("LineChart")>=0||r.indexOf("AreaChart")>=0||r.indexOf("ComposedChart")>=0&&!t)?"point":a==="category"?"band":"linear";if(typeof n=="string")return kQ(n)?n:"point"}};function NQ(e,t){for(var r=0,n=e.length,a=e[0]t)?r=o+1:n=o}return r}function Ux(e,t){if(e){var r=t??e.domain(),n=r.map(o=>{var i;return(i=e(o))!==null&&i!==void 0?i:0}),a=e.range();if(!(r.length===0||a.length<2))return o=>{var i,l,s=NQ(n,o);if(s<=0)return r[0];if(s>=r.length)return r[r.length-1];var u=(i=n[s-1])!==null&&i!==void 0?i:0,c=(l=n[s])!==null&&l!==void 0?l:0;return Math.abs(o-u)<=Math.abs(o-c)?r[s-1]:r[s]}}}function FI(e){if(e!=null)return"invert"in e&&typeof e.invert=="function"?e.invert.bind(e):Ux(e,void 0)}function WI(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Fx(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);re.cartesianAxis.xAxis[t],Go=(e,t)=>{var r=EN(e,t);return r??Mr},Pr={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:CN,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:eu},_N=(e,t)=>e.cartesianAxis.yAxis[t],Xo=(e,t)=>{var r=_N(e,t);return r??Pr},DQ={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:""},ON=(e,t)=>{var r=e.cartesianAxis.zAxis[t];return r??DQ},sr=(e,t,r)=>{switch(t){case"xAxis":return Go(e,r);case"yAxis":return Xo(e,r);case"zAxis":return ON(e,r);case"angleAxis":return Q0(e,r);case"radiusAxis":return J0(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},IQ=(e,t,r)=>{switch(t){case"xAxis":return Go(e,r);case"yAxis":return Xo(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},Cu=(e,t,r)=>{switch(t){case"xAxis":return Go(e,r);case"yAxis":return Xo(e,r);case"angleAxis":return Q0(e,r);case"radiusAxis":return J0(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},TN=e=>e.graphicalItems.cartesianItems.some(t=>t.type==="bar")||e.graphicalItems.polarItems.some(t=>t.type==="radialBar");function Rm(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 Zl=e=>e.graphicalItems.cartesianItems,jQ=J([nr,cu],Rm),ev=(e,t,r)=>e.filter(r).filter(n=>t?.includeHidden===!0?!0:!n.hide),nf=J([Zl,sr,jQ],ev,{memoizeOptions:{resultEqualityCheck:Ud}}),qI=J([nf],e=>e.filter(t=>t.type==="area"||t.type==="bar").filter(du)),MN=e=>e.filter(t=>!("stackId"in t)||t.stackId===void 0),zQ=J([nf],MN),tv=e=>e.map(t=>t.data).filter(Boolean).flat(1),LQ=J([nf],e=>e.some(t=>!t.data)),YI=J([nf],tv,{memoizeOptions:{resultEqualityCheck:Ud}}),rv=(e,t)=>{var r=t.chartData,n=r===void 0?[]:r,a=t.dataStartIndex,o=t.dataEndIndex;return e.length>0?e:n.slice(a,o+1)},PN=J([YI,lu],rv),DN=(e,t,r)=>t?.dataKey!=null?e.map(n=>({value:Qe(n,t.dataKey)})):r.length>0?r.map(n=>n.dataKey).flatMap(n=>e.map(a=>({value:Qe(a,n)}))):e.map(n=>({value:n})),IN=(e,t,r,n,a,o)=>{var i=n.chartData,l=i===void 0?[]:i,s=n.dataStartIndex,u=n.dataEndIndex,c=DN(e,t,r);if(a&&t?.dataKey!=null&&o.length>0){var d=l.slice(s,u+1),f=d.map(p=>({value:Qe(p,t.dataKey)})).filter(p=>p.value!=null);return[...f,...c]}return c},nv=J([PN,sr,nf,lu,LQ,YI],IN);function rf(e){if(Mn(e)||e instanceof Date){var t=Number(e);if(He(t))return t}}function VI(e){if(Array.isArray(e)){var t=[rf(e[0]),rf(e[1])];return Aa(t)?t:void 0}var r=rf(e);if(r!=null)return[r,r]}function Ao(e){return e.map(rf).filter(Yr)}function BQ(e,t){var r=rf(e),n=rf(t);return r==null&&n==null?0:r==null?-1:n==null?1:r-n}var $Q=J([nv],e=>e?.map(t=>t.value).sort(BQ));function GI(e,t){switch(e){case"xAxis":return t.direction==="x";case"yAxis":return t.direction==="y";default:return!1}}function UQ(e,t,r){if(!r)return[];if(!r.length)return[];var n;if(typeof t=="number"&&!nn(t))n=t;else if(Array.isArray(t)){var a=Ao(t);a.length>0&&(n=Math.max(...a))}return n==null?[]:Ao(r.flatMap(o=>{var i=Qe(e,o.dataKey),l,s;if(Array.isArray(i)){var u=KI(i,2);l=u[0],s=u[1]}else l=s=i;if(!(!He(l)||!He(s)))return[n-l,n+s]}))}var Dr=e=>{var t=Tr(e),r=Vl(e);return Cu(e,t,r)},Bi=J([Dr],e=>e?.dataKey),FQ=J([qI,lu,Dr],tx),jN=(e,t,r,n)=>{var a={},o=t.reduce((i,l)=>{if(l.stackId==null)return i;var s=i[l.stackId];return s==null&&(s=[]),s.push(l),i[l.stackId]=s,i},a);return Object.fromEntries(Object.entries(o).map(i=>{var l=KI(i,2),s=l[0],u=l[1],c=n?[...u].reverse():u,d=c.map(Hl);return[s,{stackedData:lD(e,d,r),graphicalItems:c}]}))},af=J([FQ,qI,Fl,Y0],jN),zN=(e,t,r,n)=>{var a=t.dataStartIndex,o=t.dataEndIndex;if(n==null&&r!=="zAxis")return uD(e,a,o)},WQ=J([sr],e=>e.allowDataOverflow),Wx=e=>{var t;if(e==null||!("domain"in e))return CN;if(e.domain!=null)return e.domain;if("ticks"in e&&e.ticks!=null){if(e.type==="number"){var r=Ao(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:CN},Hx=J([sr],Wx),Vx=J([Hx,WQ],W0),HQ=J([af,Rn,nr,Vx],zN,{memoizeOptions:{resultEqualityCheck:fu}}),of=e=>e.errorBars,VQ=(e,t,r)=>e.flatMap(n=>t[n.id]).filter(Boolean).filter(n=>GI(r,n)),Jm=function(){for(var t=arguments.length,r=new Array(t),n=0;n5&&arguments[5]!==void 0?arguments[5]:[],l,s;if(n.length>0&&n.forEach(u=>{var c,d=u.data!=null?[...u.data]:i,f=(c=a[u.id])===null||c===void 0?void 0:c.filter(p=>GI(o,p));d.forEach(p=>{var m,y=Qe(p,(m=r.dataKey)!==null&&m!==void 0?m:u.dataKey),h=UQ(p,y,f);if(h.length>=2){var v=Math.min(...h),g=Math.max(...h);(l==null||vs)&&(s=g)}var b=VI(y);b!=null&&(l=l==null?b[0]:Math.min(l,b[0]),s=s==null?b[1]:Math.max(s,b[1]))})}),r?.dataKey!=null&&n.length===0&&t.forEach(u=>{var c=VI(Qe(u,r.dataKey));c!=null&&(l=l==null?c[0]:Math.min(l,c[0]),s=s==null?c[1]:Math.max(s,c[1]))}),He(l)&&He(s))return[l,s]},KQ=J([PN,sr,zQ,of,nr,J8],av,{memoizeOptions:{resultEqualityCheck:fu}});function qQ(e){var t=e.value;if(Mn(t)||t instanceof Date)return t}var YQ=(e,t,r)=>{var n=e.map(qQ).filter(a=>a!=null);return r&&(t.dataKey==null||t.allowDuplicatedCategory&&iA(n))?U0(0,e.length):t.allowDuplicatedCategory?n:Array.from(new Set(n))},LN=e=>e.referenceElements.dots,Eu=(e,t,r)=>e.filter(n=>n.ifOverflow==="extendDomain").filter(n=>t==="xAxis"?n.xAxisId===r:n.yAxisId===r),GQ=J([LN,nr,cu],Eu),BN=e=>e.referenceElements.areas,XQ=J([BN,nr,cu],Eu),$N=e=>e.referenceElements.lines,ZQ=J([$N,nr,cu],Eu),UN=(e,t)=>{if(e!=null){var r=Ao(e.map(n=>t==="xAxis"?n.x:n.y));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},QQ=J(GQ,nr,UN),FN=(e,t)=>{if(e!=null){var r=Ao(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)]}},JQ=J([XQ,nr],FN);function RQ(e){var t;if(e.x!=null)return Ao([e.x]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.x);return r==null||r.length===0?[]:Ao(r)}function eJ(e){var t;if(e.y!=null)return Ao([e.y]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.y);return r==null||r.length===0?[]:Ao(r)}var WN=(e,t)=>{if(e!=null){var r=e.flatMap(n=>t==="xAxis"?RQ(n):eJ(n));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},tJ=J([ZQ,nr],WN),rJ=J(QQ,tJ,JQ,(e,t,r)=>Jm(e,r,t)),ov=(e,t,r,n,a,o,i,l,s)=>{if(r!=null)return r;var u=i==="vertical"&&l==="xAxis"||i==="horizontal"&&l==="yAxis",c=u?Jm(n,o,a):Jm(o,a),d=n6(t,c,e.allowDataOverflow);return d??(e.allowDataOverflow&&c==null&&s!=null?s:d)},nJ=e=>{if(!(e==null||e.type!=="number"||!("ticks"in e)||e.ticks==null)){var t=Ao(e.ticks);if(t.length!==0)return[Math.min(...t),Math.max(...t)]}},aJ=J([sr],nJ,{memoizeOptions:{resultEqualityCheck:fu}}),oJ=J([sr,Hx,Vx,HQ,KQ,rJ,qe,nr,aJ],ov,{memoizeOptions:{resultEqualityCheck:fu}}),iJ=[0,1],iv=(e,t,r,n,a,o,i)=>{if(!((e==null||r==null||r.length===0)&&i===void 0)){var l=e.dataKey,s=e.type,u=wn(t,o);if(u&&l==null){var c;return U0(0,(c=r?.length)!==null&&c!==void 0?c:0)}return s==="category"?YQ(n,e,u):a==="expand"&&!u?iJ:i}},HN=J([sr,qe,PN,nv,Fl,nr,oJ],iv),$i=J([sr,TN,$d],$x),lv=(e,t,r)=>{var n=t.niceTicks;if(n!=="none"){var a=Wx(t),o=Array.isArray(a)&&(a[0]==="auto"||a[1]==="auto");if((n==="snap125"||n==="adaptive")&&t!=null&&t.tickCount&&Aa(e)){if(o)return V0(e,t.tickCount,t.allowDecimals,n);if(t.type==="number")return K0(e,t.tickCount,t.allowDecimals,n)}if(n==="auto"&&r==="linear"&&t!=null&&t.tickCount){if(o&&Aa(e))return V0(e,t.tickCount,t.allowDecimals,"adaptive");if(t.type==="number"&&Aa(e))return K0(e,t.tickCount,t.allowDecimals,"adaptive")}}},VN=J([HN,Cu,$i],lv),sv=(e,t,r,n)=>{if(n!=="angleAxis"&&e?.type==="number"&&Aa(t)&&Array.isArray(r)&&r.length>0){var a,o,i=t[0],l=(a=r[0])!==null&&a!==void 0?a:0,s=t[1],u=(o=r[r.length-1])!==null&&o!==void 0?o:0;return[Math.min(i,l),Math.max(s,u)]}return t},lJ=J([sr,HN,VN,nr],sv),sJ=J(nv,sr,(e,t)=>{if(!(!t||t.type!=="number")){var r=1/0,n=Array.from(Ao(e.map(d=>d.value))).sort((d,f)=>d-f),a=n[0],o=n[n.length-1];if(a==null||o==null)return 1/0;var i=o-a;if(i===0)return 1/0;for(var l=0;la,(e,t,r,n,a)=>{if(!He(e))return 0;var o=t==="vertical"?n.height:n.width;if(a==="gap")return e*o/2;if(a==="no-gap"){var i=vr(r,e*o),l=e*o/2;return l-i-(l-i)/o*i}return 0}),uJ=(e,t,r)=>{var n=Go(e,t);return n==null||typeof n.padding!="string"?0:XI(e,"xAxis",t,r,n.padding)},cJ=(e,t,r)=>{var n=Xo(e,t);return n==null||typeof n.padding!="string"?0:XI(e,"yAxis",t,r,n.padding)},dJ=J(Go,uJ,(e,t)=>{var r,n;if(e==null)return{left:0,right:0};var a=e.padding;return typeof a=="string"?{left:t,right:t}:{left:((r=a.left)!==null&&r!==void 0?r:0)+t,right:((n=a.right)!==null&&n!==void 0?n:0)+t}}),fJ=J(Xo,cJ,(e,t)=>{var r,n;if(e==null)return{top:0,bottom:0};var a=e.padding;return typeof a=="string"?{top:t,bottom:t}:{top:((r=a.top)!==null&&r!==void 0?r:0)+t,bottom:((n=a.bottom)!==null&&n!==void 0?n:0)+t}}),KN=J([jt,dJ,tu,Td,(e,t,r)=>r],(e,t,r,n,a)=>{var o=n.padding;return a?[o.left,r.width-o.right]:[e.left+t.left,e.left+e.width-t.right]}),qN=J([jt,qe,fJ,tu,Td,(e,t,r)=>r],(e,t,r,n,a,o)=>{var i=a.padding;return o?[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]}),lf=(e,t,r,n)=>{var a;switch(t){case"xAxis":return KN(e,r,n);case"yAxis":return qN(e,r,n);case"zAxis":return(a=ON(e,r))===null||a===void 0?void 0:a.range;case"angleAxis":return Vk(e);case"radiusAxis":return Kk(e,r);default:return}},ZI=J([sr,lf],su),pJ=J([$i,lJ],rx),YN=J([sr,$i,pJ,ZI],Qm),GN=(e,t,r,n)=>{if(!(r==null||r.dataKey==null)){var a=r.type,o=r.scale,i=wn(e,n);if(i&&(a==="number"||o!=="auto"))return t.map(l=>l.value)}},XN=J([qe,nv,Cu,nr],GN),Kx=J([YN],Om),T2e=J([YN],FI),M2e=J([YN,$Q],Ux),P2e=J([nf,of,nr],VQ);function QI(e,t){return e.idt.id?1:0}var qx=(e,t)=>t,Yx=(e,t,r)=>r,mJ=J(Ed,qx,Yx,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(QI)),vJ=J(_d,qx,Yx,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(QI)),JI=(e,t)=>{var r=typeof t.height=="number"?t.height:hm;return{width:e.width,height:r}},gJ=(e,t)=>{var r=typeof t.width=="number"?t.width:eu;return{width:r,height:e.height}},ZN=J(jt,Go,JI),yJ=(e,t,r)=>{switch(t){case"top":return e.top;case"bottom":return r-e.bottom;default:return 0}},hJ=(e,t,r)=>{switch(t){case"left":return e.left;case"right":return r-e.right;default:return 0}},xJ=J(ln,jt,mJ,qx,Yx,(e,t,r,n,a)=>{var o={},i;return r.forEach(l=>{var s=JI(t,l);i==null&&(i=yJ(t,n,e));var u=n==="top"&&!a||n==="bottom"&&a;o[l.id]=i-Number(u)*s.height,i+=(u?-1:1)*s.height}),o}),bJ=J(on,jt,vJ,qx,Yx,(e,t,r,n,a)=>{var o={},i;return r.forEach(l=>{var s=gJ(t,l);i==null&&(i=hJ(t,n,e));var u=n==="left"&&!a||n==="right"&&a;o[l.id]=i-Number(u)*s.width,i+=(u?-1:1)*s.width}),o}),wJ=(e,t)=>{var r=Go(e,t);if(r!=null)return xJ(e,r.orientation,r.mirror)},RI=J([jt,Go,wJ,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var a=r?.[n];return a==null?{x:e.left,y:0}:{x:e.left,y:a}}}),SJ=(e,t)=>{var r=Xo(e,t);if(r!=null)return bJ(e,r.orientation,r.mirror)},ej=J([jt,Xo,SJ,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var a=r?.[n];return a==null?{x:0,y:e.top}:{x:a,y:e.top}}}),QN=J(jt,Xo,(e,t)=>{var r=typeof t.width=="number"?t.width:eu;return{width:r,height:e.height}}),JN=(e,t,r)=>{switch(t){case"xAxis":return ZN(e,r).width;case"yAxis":return QN(e,r).height;default:return}},RN=(e,t,r,n)=>{if(r!=null){var a=r.allowDuplicatedCategory,o=r.type,i=r.dataKey,l=wn(e,n),s=t.map(c=>c.value),u=s.filter(c=>c!=null);if(i&&l&&o==="category"&&a&&iA(u))return s}},eC=J([qe,nv,sr,nr],RN),tC=J([qe,IQ,$i,Kx,eC,XN,lf,VN,nr],(e,t,r,n,a,o,i,l,s)=>{if(t!=null){var u=wn(e,s);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:s,categoricalDomain:o,duplicateDomain:a,isCategorical:u,niceTicks:l,range:i,realScaleType:r,scale:n}}}),AJ=(e,t,r,n,a,o,i,l,s)=>{if(!(t==null||n==null)){var u=wn(e,s),c=t.type,d=t.ticks,f=t.tickCount,p=r==="scaleBand"&&typeof n.bandwidth=="function"?n.bandwidth()/2:2,m=c==="category"&&n.bandwidth?n.bandwidth()/p:0;m=s==="angleAxis"&&o!=null&&o.length>=2?Ft(o[0]-o[1])*2*m:m;var y=d||a;return y?y.map((h,v)=>{var g=i?i.indexOf(h):h,b=n.map(g);return He(b)?{index:v,coordinate:b+m,value:h,offset:m}:null}).filter(Yr):u&&l?l.map((h,v)=>{var g=n.map(h);return He(g)?{coordinate:g+m,value:h,index:v,offset:m}:null}).filter(Yr):n.ticks?n.ticks(f).map((h,v)=>{var g=n.map(h);return He(g)?{coordinate:g+m,value:h,index:v,offset:m}:null}).filter(Yr):n.domain().map((h,v)=>{var g=n.map(h);return He(g)?{coordinate:g+m,value:i?i[h]:h,index:v,offset:m}:null}).filter(Yr)}},Gx=J([qe,Cu,$i,Kx,VN,lf,eC,XN,nr],AJ),kJ=(e,t,r,n,a,o,i)=>{if(!(t==null||r==null||n==null||n[0]===n[1])){var l=wn(e,i),s=t.tickCount,u=0;return u=i==="angleAxis"&&n?.length>=2?Ft(n[0]-n[1])*2*u:u,l&&o?o.map((c,d)=>{var f=r.map(c);return He(f)?{coordinate:f+u,value:c,index:d,offset:u}:null}).filter(Yr):r.ticks?r.ticks(s).map((c,d)=>{var f=r.map(c);return He(f)?{coordinate:f+u,value:c,index:d,offset:u}:null}).filter(Yr):r.domain().map((c,d)=>{var f=r.map(c);return He(f)?{coordinate:f+u,value:a?a[c]:c,index:d,offset:u}:null}).filter(Yr)}},Ea=J([qe,Cu,Kx,lf,eC,XN,nr],kJ),_a=J(sr,Kx,(e,t)=>{if(!(e==null||t==null))return Fx(Fx({},e),{},{scale:t})}),NJ=J([sr,$i,HN,ZI],Qm),CJ=J([NJ],Om),D2e=J((e,t,r)=>ON(e,r),CJ,(e,t)=>{if(!(e==null||t==null))return Fx(Fx({},e),{},{scale:t})}),tj=J([qe,Ed,_d],(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}}),EJ=(e,t,r)=>{var n;return(n=e.renderedTicks[t])===null||n===void 0?void 0:n[r]},I2e=J([EJ],e=>{if(!(!e||e.length===0))return t=>{var r,n=1/0,a=e[0];for(var o of e){var i=Math.abs(o.coordinate-t);ie.options.defaultTooltipEventType,nC=e=>e.options.validateTooltipEventTypes;function aC(e,t,r){if(e==null)return t;var n=e?"axis":"item";return r==null?t:r.includes(n)?n:t}function Ql(e,t){var r=rC(e),n=nC(e);return aC(t,r,n)}function rj(e){return we(t=>Ql(t,e))}var Xx=(e,t)=>{var r,n=Number(t);if(!(nn(n)||t==null))return n>=0?e==null||(r=e[n])===null||r===void 0?void 0:r.value:void 0};var nj=e=>e.tooltip.settings;var Ui={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},_J={itemInteraction:{click:Ui,hover:Ui},axisInteraction:{click:Ui,hover:Ui},keyboardInteraction:Ui,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}},aj=Ct({name:"tooltip",initialState:_J,reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(tt(t.payload))},prepare:Pt()},replaceTooltipEntrySettings:{reducer(e,t){var r=t.payload,n=r.prev,a=r.next,o=yn(e).tooltipItemPayloads.indexOf(tt(n));o>-1&&(e.tooltipItemPayloads[o]=tt(a))},prepare:Pt()},removeTooltipEntrySettings:{reducer(e,t){var r=yn(e).tooltipItemPayloads.indexOf(tt(t.payload));r>-1&&e.tooltipItemPayloads.splice(r,1)},prepare:Pt()},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}}}),Ja=aj.actions,oj=Ja.addTooltipEntrySettings,ij=Ja.replaceTooltipEntrySettings,lj=Ja.removeTooltipEntrySettings,sj=Ja.setTooltipSettingsState,Zx=Ja.setActiveMouseOverItemIndex,uj=Ja.mouseLeaveItem,Qx=Ja.mouseLeaveChart,cj=Ja.setActiveClickItemIndex,Jx=Ja.setMouseOverAxisIndex,dj=Ja.setMouseClickAxisIndex,sf=Ja.setSyncInteraction,uv=Ja.setKeyboardInteraction;var fj=aj.reducer;function pj(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Rx(e){for(var t=1;t{if(t==null)return Ui;var a=PJ(e,t,r);if(a==null)return Ui;if(a.active)return a;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var o=e.settings.active===!0;if(DJ(a)){if(o)return Rx(Rx({},a),{},{active:!0})}else if(n!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:n,graphicalItemId:void 0};return Rx(Rx({},Ui),{},{coordinate:a.coordinate})};function IJ(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 jJ(e,t){var r=IJ(e),n=t[0],a=t[1];if(r===void 0)return!1;var o=Math.min(n,a),i=Math.max(n,a);return r>=o&&r<=i}function zJ(e,t,r){if(r==null||t==null)return!0;var n=Qe(e,t);return n==null||!Aa(r)?!0:jJ(n,r)}var Jl=(e,t,r,n)=>{var a=e?.index;if(a==null)return null;var o=Number(a);if(!He(o))return a;var i=0,l=1/0;t.length>0&&(l=t.length-1);var s=Math.max(i,Math.min(o,l)),u=t[s];return u==null||zJ(u,r,n)?String(s):null};var tb=(e,t,r,n,a,o,i)=>{if(o!=null){var l=i[0],s=l?.getPosition(o);if(s!=null)return s;var u=a?.[Number(o)];if(u)return r==="horizontal"?{x:u.coordinate,y:(n.top+t)/2}:{x:(n.left+e)/2,y:u.coordinate}}};var rb=(e,t,r,n)=>{if(t==="axis")return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var a;if(r==="hover"?a=e.itemInteraction.hover.graphicalItemId:a=e.itemInteraction.click.graphicalItemId,e.syncInteraction.active&&a==null)return e.tooltipItemPayloads;if(a==null&&(n!=null||e.keyboardInteraction.active)){var o=e.tooltipItemPayloads[0];return o!=null?[o]:[]}return e.tooltipItemPayloads.filter(i=>{var l;return((l=i.settings)===null||l===void 0?void 0:l.graphicalItemId)===a})};var nb=e=>e.options.tooltipPayloadSearcher;var Fi=e=>e.tooltip;function mj(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function vj(e){for(var t=1;te(t)}function gj(e){if(typeof e=="string")return e}function HJ(e){if(!(e==null||typeof e!="object")){var t="name"in e?UJ(e.name):void 0,r="unit"in e?FJ(e.unit):void 0,n="dataKey"in e?WJ(e.dataKey):void 0,a="payload"in e?e.payload:void 0,o="color"in e?gj(e.color):void 0,i="fill"in e?gj(e.fill):void 0;return{name:t,unit:r,dataKey:n,payload:a,color:o,fill:i}}}function VJ(e,t){return e??t}var ab=(e,t,r,n,a,o,i)=>{if(!(t==null||o==null)){var l=r.chartData,s=r.computedData,u=r.dataStartIndex,c=r.dataEndIndex,d=[];return e.reduce((f,p)=>{var m,y=p.dataDefinedOnItem,h=p.settings,v=VJ(y,l),g=Array.isArray(v)?d0(v,u,c):v,b=(m=h?.dataKey)!==null&&m!==void 0?m:n,x=h?.nameKey,S;if(n&&Array.isArray(g)&&!Array.isArray(g[0])&&i==="axis"?(S=Qy(g,n,a),S==null&&(S=o(g,t,s,x))):S=o(g,t,s,x),Array.isArray(S))S.forEach(O=>{var k,A,M=HJ(O),W=M?.name,L=M?.dataKey,H=M?.payload,D=vj(vj({},h),{},{name:W,unit:M?.unit,color:(k=M?.color)!==null&&k!==void 0?k:h?.color,fill:(A=M?.fill)!==null&&A!==void 0?A:h?.fill});f.push(xk({tooltipEntrySettings:D,dataKey:L,payload:H,value:Qe(H,L),name:W==null?void 0:String(W)}))});else{var w;f.push(xk({tooltipEntrySettings:h,dataKey:b,payload:S,value:Qe(S,b),name:(w=Qe(S,x))!==null&&w!==void 0?w:h?.name}))}return f},d)}};var oC=J([Dr,TN,$d],$x),KJ=J([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),qJ=J([Tr,Vl],Rm),Rl=J([KJ,Dr,qJ],ev,{memoizeOptions:{resultEqualityCheck:Ud}}),YJ=J([Rl],e=>e.filter(du)),yj=J([Rl],tv,{memoizeOptions:{resultEqualityCheck:Ud}}),GJ=J([Rl],e=>e.some(t=>!t.data)),Wi=J([yj,Rn],rv),XJ=J([YJ,Rn,Dr],tx),iC=J([Wi,Dr,Rl,Rn,GJ,yj],IN),hj=J([Dr],Wx),ZJ=J([Dr],e=>e.allowDataOverflow),xj=J([hj,ZJ],W0),QJ=J([Rl],e=>e.filter(du)),JJ=J([XJ,QJ,Fl,Y0],jN),RJ=J([JJ,Rn,Tr,xj],zN),eR=J([Rl],MN),tR=J([Wi,Dr,eR,of,Tr,e6],av,{memoizeOptions:{resultEqualityCheck:fu}}),rR=J([LN,Tr,Vl],Eu),nR=J([rR,Tr],UN),aR=J([BN,Tr,Vl],Eu),oR=J([aR,Tr],FN),iR=J([$N,Tr,Vl],Eu),lR=J([iR,Tr],WN),sR=J([nR,lR,oR],Jm),uR=J([Dr,hj,xj,RJ,tR,sR,qe,Tr],ov),es=J([Dr,qe,Wi,iC,Fl,Tr,uR],iv),cR=J([es,Dr,oC],lv),dR=J([Dr,es,cR,Tr],sv),bj=e=>{var t=Tr(e),r=Vl(e),n=!1;return lf(e,t,r,n)},lC=J([Dr,bj],su),fR=J([Dr,oC,dR,lC],Qm),sC=J([fR],Om),pR=J([qe,iC,Dr,Tr],RN),mR=J([qe,iC,Dr,Tr],GN),vR=(e,t,r,n,a,o,i,l)=>{if(t){var s=t.type,u=wn(e,l);if(n){var c=r==="scaleBand"&&n.bandwidth?n.bandwidth()/2:2,d=s==="category"&&n.bandwidth?n.bandwidth()/c:0;return d=l==="angleAxis"&&a!=null&&a?.length>=2?Ft(a[0]-a[1])*2*d:d,u&&i?i.map((f,p)=>{var m=n.map(f);return He(m)?{coordinate:m+d,value:f,index:p,offset:d}:null}).filter(Yr):n.domain().map((f,p)=>{var m=n.map(f);return He(m)?{coordinate:m+d,value:o?o[f]:f,index:p,offset:d}:null}).filter(Yr)}}},ta=J([qe,Dr,oC,sC,bj,pR,mR,Tr],vR),uC=J([rC,nC,nj],(e,t,r)=>aC(r.shared,e,t)),wj=e=>e.tooltip.settings.trigger,cC=e=>e.tooltip.settings.defaultIndex,cv=J([Fi,uC,wj,cC],eb),Ra=J([cv,Wi,Bi,es],Jl),ob=J([ta,Ra],Xx),uf=J([cv],e=>{if(e)return e.dataKey}),ib=J([cv],e=>{if(e)return e.graphicalItemId}),Sj=J([Fi,uC,wj,cC],rb),gR=J([on,ln,qe,jt,ta,cC,Sj],tb),dC=J([cv,gR],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),fC=J([cv],e=>{var t;return(t=e?.active)!==null&&t!==void 0?t:!1}),yR=J([Sj,Ra,Rn,Bi,ob,nb,uC],ab),Aj=J([yR],e=>{if(e!=null){var t=e.map(r=>r.payload).filter(r=>r!=null);return Array.from(new Set(t))}});function kj(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Nj(e){for(var t=1;twe(Dr),Cj=()=>{var e=wR(),t=we(ta),r=we(sC);return!e||!r?Ya(void 0,t):Ya(Nj(Nj({},e),{},{scale:r}),t)};function Ej(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function cf(e){for(var t=1;t{var a=t.find(o=>o&&o.index===r);if(a){if(e==="horizontal")return{x:a.coordinate,y:n.relativeY};if(e==="vertical")return{x:n.relativeX,y:a.coordinate}}return{x:0,y:0}},Oj=(e,t,r,n)=>{var a=t.find(u=>u&&u.index===r);if(a){if(e==="centric"){var o=a.coordinate,i=n.radius;return cf(cf(cf({},n),qt(n.cx,n.cy,i,o)),{},{angle:o,radius:i})}var l=a.coordinate,s=n.angle;return cf(cf(cf({},n),qt(n.cx,n.cy,l,s)),{},{angle:s,radius:l})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function Tj(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 pC=(e,t,r,n,a)=>{var o,i=(o=t?.length)!==null&&o!==void 0?o:0;if(i<=1||e==null)return 0;if(n==="angleAxis"&&a!=null&&Math.abs(Math.abs(a[1]-a[0])-360)<=1e-6)for(var l=a[1]-a[0],s=(Y,N,_)=>[e,e+l,e-l].some(z=>(_?z>=Y:z>Y)&&z<=N),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,h=(f=r[u])===null||f===void 0?void 0:f.coordinate,v=u>=i-1?(p=r[0])===null||p===void 0?void 0:p.coordinate:(m=r[u+1])===null||m===void 0?void 0:m.coordinate,g=void 0;if(!(y==null||h==null||v==null))if(Ft(h-y)!==Ft(v-h)){var b=[];if(Ft(v-h)===Ft(a[1]-a[0])){g=v;var x=h+a[1]-a[0];b[0]=Math.min(x,(x+y)/2),b[1]=Math.max(x,(x+y)/2)}else{g=y;var S=v+a[1]-a[0];b[0]=Math.min(h,(S+h)/2),b[1]=Math.max(h,(S+h)/2)}var w=[Math.min(h,(g+h)/2),Math.max(h,(g+h)/2)];if(s(w[0],w[1],!1)||s(b[0],b[1],!0)){var O;return(O=r[u])===null||O===void 0?void 0:O.index}}else{var k=Math.min(y,v),A=Math.max(y,v);if(s((k+h)/2,(A+h)/2,!1)){var M;return(M=r[u])===null||M===void 0?void 0:M.index}}}else if(t)for(var W=0;W(L.coordinate+D.coordinate)/2||W>0&&W(L.coordinate+D.coordinate)/2&&e<=(L.coordinate+H.coordinate)/2)return L.index}}return-1};var lb=()=>we($d),mC=(e,t)=>t,Mj=(e,t,r)=>r,vC=(e,t,r,n)=>n,Pj=J(ta,e=>Ti(e,t=>t.coordinate)),gC=J([Fi,mC,Mj,vC],eb),yC=J([gC,Wi,Bi,es],Jl),Dj=(e,t,r)=>{if(t!=null){var n=Fi(e);return t==="axis"?r==="hover"?n.axisInteraction.hover.dataKey:n.axisInteraction.click.dataKey:r==="hover"?n.itemInteraction.hover.dataKey:n.itemInteraction.click.dataKey}},Ij=J([Fi,mC,Mj,vC],rb),dv=J([on,ln,qe,jt,ta,vC,Ij],tb),jj=J([gC,dv],(e,t)=>{var r;return(r=e.coordinate)!==null&&r!==void 0?r:t}),hC=J([ta,yC],Xx),zj=J([Ij,yC,Rn,Bi,hC,nb,mC],ab),Lj=J([gC,yC],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),NR=(e,t,r,n,a,o,i)=>{if(!(!e||!r||!n||!a)&&Tj(e,i)){var l=cD(e,t),s=pC(l,o,a,r,n),u=_j(t,a,s,e);return{activeIndex:String(s),activeCoordinate:u}}},CR=(e,t,r,n,a,o,i)=>{if(!(!e||!n||!a||!o||!r)){var l=U8(e,r);if(l){var s=dD(l,t),u=pC(s,i,o,n,a),c=Oj(t,o,u,l);return{activeIndex:String(u),activeCoordinate:c}}}},Bj=(e,t,r,n,a,o,i,l)=>{if(!(!e||!t||!n||!a||!o))return t==="horizontal"||t==="vertical"?NR(e,t,n,a,o,i,l):CR(e,t,r,n,a,o,i)};var df=te(ne()),Gj=te(rp());var $j=J(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}}),Uj=J(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(n=>parseInt(n,10)).concat(Object.values(dt)),r=Array.from(new Set(t));return r.sort((n,a)=>n-a)},{memoizeOptions:{resultEqualityCheck:y6}});function Fj(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Wj(e){for(var t=1;tWj(Wj({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),TR)},PR=new Set(Object.values(dt));function DR(e){return PR.has(e)}var Hj=Ct({name:"zIndex",initialState:MR,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:Pt()},unregisterZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(e.zIndexMap[r].consumers-=1,e.zIndexMap[r].consumers<=0&&!DR(r)&&delete e.zIndexMap[r])},prepare:Pt()},registerZIndexPortalElement:{reducer:(e,t)=>{var r=t.payload,n=r.zIndex,a=r.element,o=r.isPanorama;e.zIndexMap[n]?o?e.zIndexMap[n].panoramaElement=tt(a):e.zIndexMap[n].element=tt(a):e.zIndexMap[n]={consumers:0,element:o?void 0:tt(a),panoramaElement:o?tt(a):void 0}},prepare:Pt()},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:Pt()}}}),sb=Hj.actions,Vj=sb.registerZIndexPortal,ub=sb.unregisterZIndexPortal,Kj=sb.registerZIndexPortalElement,qj=sb.unregisterZIndexPortalElement;var Yj=Hj.reducer;function Yt(e){var t=e.zIndex,r=e.children,n=CD(),a=n&&t!==void 0&&t!==0,o=Et(),i=(0,df.useRef)(void 0),l=(0,df.useRef)(new Set),s=Ve(),u=we(d=>$j(d,t,o));if((0,df.useLayoutEffect)(()=>{if(!a){var d=l.current;d.forEach(p=>{s(ub({zIndex:p}))}),d.clear(),i.current=void 0;return}if(l.current.has(t)||(s(Vj({zIndex:t})),l.current.add(t)),u){i.current=u;var f=l.current;f.forEach(p=>{p!==t&&(s(ub({zIndex:p})),f.delete(p))})}},[s,t,a,u]),(0,df.useLayoutEffect)(()=>{var d=l.current;return()=>{d.forEach(f=>{s(ub({zIndex:f}))}),d.clear()}},[s]),!a)return r;var c=u??i.current;return c?(0,Gj.createPortal)(r,c):null}function xC(){return xC=Object.assign?Object.assign.bind():function(e){for(var t=1;t(0,fb.useContext)(bC);var pv=te(ne());var ez=te(Rj(),1);var tz=ez.default;var pf=new tz;var mb="recharts.syncEvent.tooltip",SC="recharts.syncEvent.brush";var ts=(e,t)=>{if(t&&Array.isArray(e)){var r=Number.parseInt(t,10);if(!nn(r))return e[r]}},FR={chartName:"",tooltipPayloadSearcher:()=>{},eventEmitter:void 0,defaultTooltipEventType:"axis"},rz=Ct({name:"options",initialState:FR,reducers:{createEventEmitter:e=>{e.eventEmitter==null&&(e.eventEmitter=Symbol("rechartsEventEmitter"))}}}),nz=rz.reducer,az=rz.actions.createEventEmitter;function oz(e){return e.tooltip.syncInteraction}var WR={chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},iz=Ct({name:"chartData",initialState:WR,reducers:{setChartData(e,t){if(e.chartData=tt(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,a=r.endIndex;n!=null&&(e.dataStartIndex=n),a!=null&&(e.dataEndIndex=a)}}}),AC=iz.actions,kC=AC.setChartData,lz=AC.setDataStartEndIndexes,HR=AC.setComputedData;var sz=iz.reducer;var VR=["x","y"];function uz(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function mf(e){for(var t=1;ts.rootProps.className);(0,pv.useEffect)(()=>{if(e==null)return Pn;var s=(u,c,d)=>{if(t!==d&&e===u){if(c.payload.active===!1){r(sf({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(n==="index"){var f;if(i&&c!==null&&c!==void 0&&(f=c.payload)!==null&&f!==void 0&&f.coordinate&&c.payload.sourceViewBox){var p=c.payload.coordinate,m=p.x,y=p.y,h=GR(p,VR),v=c.payload.sourceViewBox,g=v.x,b=v.y,x=v.width,S=v.height,w=mf(mf({},h),{},{x:i.x+(x?(m-g)/x:0)*i.width,y:i.y+(S?(y-b)/S:0)*i.height});r(mf(mf({},c),{},{payload:mf(mf({},c.payload),{},{coordinate:w})}))}else r(c);return}if(a!=null){var O;if(typeof n=="function"){var k={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(a,k);O=a[A]}else n==="value"&&(O=a.find(_=>String(_.value)===c.payload.label));var M=c.payload.coordinate;if(M==null||i==null){r(sf({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(O==null){r(sf({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:void 0}));return}var W=M.x,L=M.y,H=Math.min(W,i.x+i.width),D=Math.min(L,i.y+i.height),Y={x:o==="horizontal"?O.coordinate:H,y:o==="horizontal"?D:O.coordinate},N=sf({active:c.payload.active,coordinate:Y,dataKey:c.payload.dataKey,index:String(O.index),label:c.payload.label,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:c.payload.graphicalItemId});r(N)}}};return pf.on(mb,s),()=>{pf.off(mb,s)}},[l,r,t,e,n,a,o,i])}function QR(){var e=we(G0),t=we(X0),r=Ve();(0,pv.useEffect)(()=>{if(e==null)return Pn;var n=(a,o,i)=>{t!==i&&e===a&&r(lz(o))};return pf.on(SC,n),()=>{pf.off(SC,n)}},[r,t,e])}function cz(){var e=Ve();(0,pv.useEffect)(()=>{e(az())},[e]),ZR(),QR()}function dz(e,t,r,n,a,o){var i=we(m=>Dj(m,e,t)),l=we(ib),s=we(X0),u=we(G0),c=we(Wk),d=we(oz),f=d?.sourceViewBox!=null,p=nu();(0,pv.useEffect)(()=>{if(!f&&u!=null&&s!=null){var m=sf({active:o,coordinate:r,dataKey:i,index:a,label:typeof n=="number"?String(n):n,sourceViewBox:p,graphicalItemId:l});pf.emit(mb,u,m,s)}},[f,r,i,l,a,n,s,u,c,o,p])}function fz(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function pz(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{O(sj({shared:g,trigger:b,axisId:w,active:a,defaultIndex:k}))},[O,g,b,w,a,k]);var A=nu(),M=N0(),W=rj(g),L=(t=we(K=>Lj(K,W,b,k)))!==null&&t!==void 0?t:{},H=L.activeIndex,D=L.isActive,Y=we(K=>zj(K,W,b,k)),N=we(K=>hC(K,W,b,k)),_=we(K=>jj(K,W,b,k)),z=Y,j=Qj(),P=(r=a??D)!==null&&r!==void 0?r:!1,B=Bh([z,P]),R=tee(B,2),F=R[0],G=R[1],ee=W==="axis"?N:void 0;dz(W,b,_,ee,H,P);var fe=S??j;if(fe==null||A==null||W==null)return null;var de=z??vz;P||(de=vz),u&&de.length&&(de=Ph(de.filter(K=>K.value!=null&&(K.hide!==!0||n.includeHidden)),f,iee));var De=de.length>0,le=pz(pz({},n),{},{payload:de,label:ee,active:P,activeIndex:H,coordinate:_,accessibilityLayer:M}),Te=eo.createElement(QD,{allowEscapeViewBox:o,animationDuration:i,animationEasing:l,isAnimationActive:c,active:P,coordinate:_,hasPayload:De,offset:d,position:p,reverseDirection:m,useTranslate3d:y,viewBox:A,wrapperStyle:h,lastBoundingBox:F,innerRef:G,hasPortalFromProps:!!S},lee(s,le));return eo.createElement(eo.Fragment,null,(0,yz.createPortal)(Te,fe),P&&eo.createElement(Zj,{cursor:v,tooltipEventType:W,coordinate:_,payload:de,index:H}))}var Hi=e=>null;Hi.displayName="Cell";var CC=te(ne()),hb=te(ne());function uee(e,t,r){return(t=cee(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function cee(e){var t=dee(e,"string");return typeof t=="symbol"?t:t+""}function dee(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 vb=class{constructor(t){uee(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 hz(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function fee(e){for(var t=1;t{try{var r=document.getElementById(bz);r||(r=document.createElement("span"),r.setAttribute("id",bz),r.setAttribute("aria-hidden","true"),document.body.appendChild(r)),Object.assign(r.style,yee,t),r.textContent="".concat(e);var n=r.getBoundingClientRect();return{width:n.width,height:n.height}}catch{return{width:0,height:0}}},_u=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Ga.isSsr)return{width:0,height:0};if(!Sz.enableCache)return wz(t,r);var n=hee(t,r),a=xz.get(n);if(a)return a;var o=wz(t,r);return xz.set(n,o),o};var Ez;function gb(e,t){return See(e)||wee(e,t)||bee(e,t)||xee()}function xee(){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 bee(e,t){if(e){if(typeof e=="string")return Az(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)?Az(e,t):void 0}}function Az(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 a=[];ct(t)||(r?a=t.toString().split(""):a=t.toString().split(Iz));var o=a.map(l=>({word:l,width:_u(l,n).width})),i=r?0:_u("\xA0",n).width;return{wordsWithComputedWidth:o,spaceWidth:i}}catch{return null}};function xb(e){return e==="start"||e==="middle"||e==="end"||e==="inherit"}function zz(e){return ct(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var Lz=(e,t,r,n)=>e.reduce((a,o)=>{var i=o.word,l=o.width,s=a[a.length-1];if(s&&l!=null&&(t==null||n||s.width+l+re.reduce((t,r)=>t.width>r.width?t:r),Wee="\u2026",Pz=(e,t,r,n,a,o,i,l)=>{var s=e.slice(0,t),u=jz({breakAll:r,style:n,children:s+Wee});if(!u)return[!1,[]];var c=Lz(u.wordsWithComputedWidth,o,i,l),d=c.length>a||Bz(c).width>Number(o);return[d,c]},Hee=(e,t,r,n,a)=>{var o=e.maxLines,i=e.children,l=e.style,s=e.breakAll,u=be(o),c=String(i),d=Lz(t,n,r,a);if(!u||a)return d;var f=d.length>o||Bz(d).width>Number(n);if(!f)return d;for(var p=0,m=c.length-1,y=0,h;p<=m&&y<=c.length-1;){var v=Math.floor((p+m)/2),g=v-1,b=Pz(c,g,s,l,o,n,r,a),x=Tz(b,2),S=x[0],w=x[1],O=Pz(c,v,s,l,o,n,r,a),k=Tz(O,1),A=k[0];if(!S&&!A&&(p=v+1),S&&A&&(m=v-1),!S&&A){h=w;break}y++}return h||d},Dz=e=>{var t=ct(e)?[]:e.toString().split(Iz);return[{words:t,width:void 0}]},Vee=e=>{var t=e.width,r=e.scaleToFit,n=e.children,a=e.style,o=e.breakAll,i=e.maxLines;if((t||r)&&!Ga.isSsr){var l,s,u=jz({breakAll:o,children:n,style:a});if(u){var c=u.wordsWithComputedWidth,d=u.spaceWidth;l=c,s=d}else return Dz(n);return Hee({breakAll:o,children:n,maxLines:i,style:a},l,s,t,!!r)}return Dz(n)},$z="#808080",Kee={angle:0,breakAll:!1,capHeight:"0.71em",fill:$z,lineHeight:"1em",scaleToFit:!1,textAnchor:"start",verticalAnchor:"end",x:0,y:0},Ou=(0,hb.forwardRef)((e,t)=>{var r=lt(e,Kee),n=r.x,a=r.y,o=r.lineHeight,i=r.capHeight,l=r.fill,s=r.scaleToFit,u=r.textAnchor,c=r.verticalAnchor,d=Oz(r,jee),f=(0,hb.useMemo)(()=>Vee({breakAll:d.breakAll,children:d.children,maxLines:d.maxLines,scaleToFit:s,style:d.style,width:d.width}),[d.breakAll,d.children,d.maxLines,s,d.style,d.width]),p=d.dx,m=d.dy,y=d.angle,h=d.className,v=d.breakAll,g=Oz(d,zee);if(!Mn(n)||!Mn(a)||f.length===0)return null;var b=Number(n)+(be(p)?p:0),x=Number(a)+(be(m)?m:0);if(!He(b)||!He(x))return null;var S;switch(c){case"start":S=yb("calc(".concat(i,")"));break;case"middle":S=yb("calc(".concat((f.length-1)/2," * -").concat(o," + (").concat(i," / 2))"));break;default:S=yb("calc(".concat(f.length-1," * -").concat(o,")"));break}var w=[],O=f[0];if(s&&O!=null){var k=O.width,A=d.width;w.push("scale(".concat(be(A)&&be(k)?A/k:1,")"))}return y&&w.push("rotate(".concat(y,", ").concat(b,", ").concat(x,")")),w.length&&(g.transform=w.join(" ")),CC.createElement("text",NC({},rr(g),{ref:t,x:b,y:x,className:Ue("recharts-text",h),textAnchor:u,fill:l.includes("url")?$z:l}),f.map((M,W)=>{var L=M.words.join(v?"":" ");return CC.createElement("tspan",{x:b,dy:W===0?S:o,key:"".concat(L,"-").concat(W)},L)}))});Ou.displayName="Text";var ra=te(ne()),Xr=te(ne());var qee=["labelRef"],Yee=["content"];function Uz(e,t){if(e==null)return{};var r,n,a=Gee(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n{var t=e.x,r=e.y,n=e.upperWidth,a=e.lowerWidth,o=e.width,i=e.height,l=e.children,s=(0,Xr.useMemo)(()=>({x:t,y:r,upperWidth:n,lowerWidth:a,width:o,height:i}),[t,r,n,a,o,i]);return ra.createElement(Wz.Provider,{value:s},l)},Vz=()=>{var e=(0,Xr.useContext)(Wz),t=nu();return e||(t?rm(t):void 0)},Kz=(0,Xr.createContext)(null),qz=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,a=e.outerRadius,o=e.startAngle,i=e.endAngle,l=e.clockWise,s=e.children,u=(0,Xr.useMemo)(()=>({cx:t,cy:r,innerRadius:n,outerRadius:a,startAngle:o,endAngle:i,clockWise:l}),[t,r,n,a,o,i,l]);return ra.createElement(Kz.Provider,{value:u},s)},Jee=()=>{var e=(0,Xr.useContext)(Kz),t=we(ex);return e||t},Ree=e=>{var t=e.value,r=e.formatter,n=ct(e.children)?t:e.children;return typeof r=="function"?r(n):n},Mu=e=>e!=null&&typeof e=="function",ete=(e,t)=>{var r=Ft(t-e),n=Math.min(Math.abs(t-e),360);return r*n},tte=(e,t,r,n,a)=>{var o=e.offset,i=e.className,l=a.cx,s=a.cy,u=a.innerRadius,c=a.outerRadius,d=a.startAngle,f=a.endAngle,p=a.clockWise,m=(u+c)/2,y=ete(d,f),h=y>=0?1:-1,v,g;switch(t){case"insideStart":v=d+h*o,g=p;break;case"insideEnd":v=f-h*o,g=!p;break;case"end":v=f+h*o,g=p;break;default:throw new Error("Unsupported position ".concat(t))}g=y<=0?g:!g;var b=qt(l,s,m,v),x=qt(l,s,m,v+(g?1:-1)*359),S="M".concat(b.x,",").concat(b.y,` A`).concat(m,",").concat(m,",0,1,").concat(g?0:1,`, - `).concat(x.x,",").concat(x.y),w=st(e.id)?Ao("recharts-radial-line-"):e.id;return ta.createElement("text",Wo({},n,{dominantBaseline:"central",className:Ue("recharts-radial-bar-label",o)}),ta.createElement("defs",null,ta.createElement("path",{id:w,d:S})),ta.createElement("textPath",{xlinkHref:"#".concat(w)},r))},Dee=(e,t,r)=>{var n=e.cx,a=e.cy,i=e.innerRadius,o=e.outerRadius,l=e.startAngle,s=e.endAngle,u=(l+s)/2;if(r==="outside"){var c=Kt(n,a,o+t,u),d=c.x,f=c.y;return{x:d,y:f,textAnchor:d>=n?"start":"end",verticalAnchor:"middle"}}if(r==="center")return{x:n,y:a,textAnchor:"middle",verticalAnchor:"middle"};if(r==="centerTop")return{x:n,y:a,textAnchor:"middle",verticalAnchor:"start"};if(r==="centerBottom")return{x:n,y:a,textAnchor:"middle",verticalAnchor:"end"};var p=(i+o)/2,m=Kt(n,a,p,u),y=m.x,h=m.y;return{x:y,y:h,textAnchor:"middle",verticalAnchor:"middle"}},ff=e=>e!=null&&"cx"in e&&he(e.cx),Iee={angle:0,offset:5,zIndex:ut.label,position:"middle",textBreakAll:!1};function jee(e){if(!ff(e))return e;var t=e.cx,r=e.cy,n=e.outerRadius,a=n*2;return{x:t-n,y:r-n,width:a,upperWidth:a,lowerWidth:a,height:a}}function Fo(e){var t,r,n=it(e,Iee),a=n.viewBox,i=n.parentViewBox,o=n.position,l=n.value,s=n.children,u=n.content,c=n.className,d=c===void 0?"":c,f=n.textBreakAll,p=n.labelRef,m=Oee(),y=Tz(),h=o==="center"?y:m??y,v,g,b;a==null?v=h:ff(a)?v=a:v=Qp(a);var x=jee(v);if(!v||st(l)&&st(s)&&!(0,qr.isValidElement)(u)&&typeof u!="function")return null;var S=ff(v)&&(o==="insideStart"||o==="insideEnd"||o==="end");if(ff(v))S||(b=Dee(v,n.offset,n.position));else if(x){var w=qy({viewBox:x,position:o,offset:n.offset,parentViewBox:ff(i)?void 0:i,clamp:!0});b=_u(_u({x:w.x,y:w.y,textAnchor:w.horizontalAnchor,verticalAnchor:w.verticalAnchor},w.width!==void 0?{width:w.width}:{}),w.height!==void 0?{height:w.height}:{})}var _=_u(_u(_u(_u({},((t=b)===null||t===void 0?void 0:t.x)!==void 0?{x:b.x}:{}),((r=b)===null||r===void 0?void 0:r.y)!==void 0?{y:b.y}:{}),n),{},{viewBox:v});if((0,qr.isValidElement)(u)){var k=_.labelRef,A=Cz(_,Aee);return(0,qr.cloneElement)(u,A)}if(typeof u=="function"){var P=_.content,K=Cz(_,kee);if(g=(0,qr.createElement)(u,K),(0,qr.isValidElement)(g))return g}else g=Tee(n);var z=tr(n);return S&&ff(v)?Pee(n,o,g,z,v):b==null?null:ta.createElement(qt,{zIndex:n.zIndex},ta.createElement(Eu,Wo({ref:p,className:Ue("recharts-label",d)},z,b,{textAnchor:pb(z.textAnchor)?z.textAnchor:b.textAnchor,breakAll:f}),g))}Fo.displayName="Label";var zee=(e,t,r)=>{if(!e)return null;var n={viewBox:t,labelRef:r};return e===!0?ta.createElement(Fo,Wo({key:"label-implicit"},n)):On(e)?ta.createElement(Fo,Wo({key:"label-implicit",value:e},n)):(0,qr.isValidElement)(e)?e.type===Fo?(0,qr.cloneElement)(e,_u({key:"label-implicit"},n)):ta.createElement(Fo,Wo({key:"label-implicit",content:e},n)):Ou(e)?ta.createElement(Fo,Wo({key:"label-implicit",content:e},n)):e&&typeof e=="object"?ta.createElement(Fo,Wo({},e,{key:"label-implicit"},n)):null};function Dz(e){var t=e.label,r=e.labelRef,n=Tz();return zee(t,n,r)||null}var Ho=re(ne()),pf=re(ne());var Lee=["valueAccessor"],Bee=["dataKey","clockWise","id","textBreakAll","zIndex"];function vb(){return vb=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(Sz(t))return t},jz=(0,pf.createContext)(void 0),mf=jz.Provider,zz=(0,pf.createContext)(void 0),Lz=zz.Provider;function Fee(){return(0,pf.useContext)(jz)}function Wee(){return(0,pf.useContext)(zz)}function mb(e){var t=e.valueAccessor,r=t===void 0?Uee:t,n=Iz(e,Lee),a=n.dataKey,i=n.clockWise,o=n.id,l=n.textBreakAll,s=n.zIndex,u=Iz(n,Bee),c=Fee(),d=Wee(),f=c||d;return!f||!f.length?null:Ho.createElement(qt,{zIndex:s??ut.label},Ho.createElement(xt,{className:"recharts-label-list"},f.map((p,m)=>{var y,h=st(a)?r(p,m):Xe(p.payload,a),v=st(o)?{}:{id:"".concat(o,"-").concat(m)};return Ho.createElement(Fo,vb({key:"label-".concat(m)},tr(p),u,v,{fill:(y=n.fill)!==null&&y!==void 0?y:p.fill,parentViewBox:p.parentViewBox,value:h,textBreakAll:l,viewBox:p.viewBox,index:m,zIndex:0}))})))}mb.displayName="LabelList";function ts(e){var t=e.label;return t?t===!0?Ho.createElement(mb,{key:"labelList-implicit"}):Ho.isValidElement(t)||Ou(t)?Ho.createElement(mb,{key:"labelList-implicit",content:t}):typeof t=="object"?Ho.createElement(mb,vb({key:"labelList-implicit"},t,{type:String(t.type)})):null:null}var Bz=re(ne());function xC(){return xC=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=e.cx,r=e.cy,n=e.r,a=e.className,i=Ue("recharts-dot",a);return he(t)&&he(r)&&he(n)?Bz.createElement("circle",xC({},er(e),fd(e),{className:i,cx:t,cy:r,r:n})):null};var bC=e=>e.graphicalItems.polarItems,Hee=Z([rr,su],Gm),yb=Z([bC,lr,Hee],Xm),Vee=Z([yb],Zm),hb=Z([Vee,au],Qm),Kee=Z([hb,lr,yb],NN),ZNe=Z([hb,lr,yb],(e,t,r)=>r.length>0?e.flatMap(n=>r.flatMap(a=>{var i,o=Xe(n,(i=t.dataKey)!==null&&i!==void 0?i:a.dataKey);return{value:o,errorDomain:[]}})).filter(Boolean):t?.dataKey!=null?e.map(n=>({value:Xe(n,t.dataKey),errorDomain:[]})):e.map(n=>({value:n,errorDomain:[]}))),$z=()=>{},qee=Z([hb,lr,yb,tf,rr,$8],Rm),Yee=Z([lr,Lx,Bx,$z,qee,$z,Ke,rr],ev),Uz=Z([lr,Ke,hb,Kee,Bl,rr,Yee],tv),Gee=Z([Uz,ku,zo],rv),Xee=Z([lr,Uz,Gee,rr],nv),QNe=Z([zo,Xee],Z0);var Zee={radiusAxis:{},angleAxis:{}},Fz=Nt({name:"polarAxis",initialState:Zee,reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=et(t.payload)},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=et(t.payload)},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),xb=Fz.actions,tCe=xb.addRadiusAxis,rCe=xb.removeRadiusAxis,nCe=xb.addAngleAxis,aCe=xb.removeAngleAxis;var Wz=Fz.reducer;function bb(e){return e&&typeof e=="object"&&"className"in e&&typeof e.className=="string"?e.className:""}var Qe=re(ne()),wf=re(ne());function Hz(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Vz(e){for(var t=1;tt,wC=Z([bC,ete],(e,t)=>e.filter(r=>r.type==="pie").find(r=>r.id===t)),tte=[],SC=(e,t,r)=>r?.length===0?tte:r,Kz=Z([au,wC,SC],(e,t,r)=>{var n=e.chartData;if(t!=null){var a;if(t?.data!=null&&t.data.length>0?a=t.data:a=n,(!a||!a.length)&&r!=null&&(a=r.map(i=>Vz(Vz({},t.presentationProps),i.props))),a!=null)return a}}),qz=Z([Kz,wC,SC],(e,t,r)=>{if(!(e==null||t==null))return e.map((n,a)=>{var i,o=Xe(n,t.nameKey,t.name),l;return r!=null&&(i=r[a])!==null&&i!==void 0&&(i=i.props)!==null&&i!==void 0&&i.fill?l=r[a].props.fill:typeof n=="object"&&n!=null&&"fill"in n?l=n.fill:l=t.fill,{value:xa(o,t.dataKey),dataKey:t.dataKey,color:l,payload:n,type:t.legendType}})}),Yz=Z([Kz,wC,SC,It],(e,t,r,n)=>{if(!(t==null||e==null))return Gz({offset:n,pieSettings:t,displayedData:e,cells:r})});var eL=re(ne()),tL=re(Qz());var Jz=e=>typeof e=="string"?e:e?e.displayName||e.name||"Component":"",Rz=null,NC=null,rL=e=>{if(e===Rz&&Array.isArray(NC))return NC;var t=[];return eL.Children.forEach(e,r=>{st(r)||((0,tL.isFragment)(r)?t=t.concat(rL(r.props.children)):t.push(r))}),NC=t,Rz=e,t};function uv(e,t){var r=[],n=[];return Array.isArray(t)?n=t.map(a=>Jz(a)):n=[Jz(t)],rL(e).forEach(a=>{var i=Rr(a,"type.displayName")||Rr(a,"type.name");i&&n.indexOf(i)!==-1&&r.push(a)}),r}var vf=e=>e&&typeof e=="object"&&"clipDot"in e?!!e.clipDot:!0;var gf=re(ne()),cv=re(ne());function nL(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function aL(e){for(var t=1;t{var n=He();return(a,i)=>o=>{e?.(a,i,o),n(Vx({activeIndex:String(i),activeDataKey:t,activeCoordinate:a.tooltipPosition,activeGraphicalItemId:r}))}},fv=e=>{var t=He();return(r,n)=>a=>{e?.(r,n,a),t(XI())}},pv=(e,t,r)=>{var n=He();return(a,i)=>o=>{e?.(a,i,o),n(ZI({activeIndex:String(i),activeDataKey:t,activeCoordinate:a.tooltipPosition,activeGraphicalItemId:r}))}};var mv=re(ne());function ns(e){var t=e.tooltipEntrySettings,r=He(),n=Ct(),a=(0,mv.useRef)(null);return(0,mv.useLayoutEffect)(()=>{n||(a.current===null?r(KI(t)):a.current!==t&&r(qI({prev:a.current,next:t})),a.current=t)},[t,r,n]),(0,mv.useLayoutEffect)(()=>()=>{a.current&&(r(YI(a.current)),a.current=null)},[r]),null}var as=re(ne());function yf(e){var t=e.legendPayload,r=He(),n=Ct(),a=(0,as.useRef)(null);return(0,as.useLayoutEffect)(()=>{n||(a.current===null?r(vk(t)):a.current!==t&&r(gk({prev:a.current,next:t})),a.current=t)},[r,n,t]),(0,as.useLayoutEffect)(()=>()=>{a.current&&(r(yk(a.current)),a.current=null)},[r]),null}function oL(e){var t=e.legendPayload,r=He(),n=xe(Ke),a=(0,as.useRef)(null);return(0,as.useLayoutEffect)(()=>{n!=="centric"&&n!=="radial"||(a.current===null?r(vk(t)):a.current!==t&&r(gk({prev:a.current,next:t})),a.current=t)},[r,n,t]),(0,as.useLayoutEffect)(()=>()=>{a.current&&(r(yk(a.current)),a.current=null)},[r]),null}var uL=re(ne()),yv=re(ne());function dte(e,t){return vte(e)||mte(e,t)||pte(e,t)||fte()}function fte(){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 pte(e,t){if(e){if(typeof e=="string")return lL(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)?lL(e,t):void 0}}function lL(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 a of r)n.push({status:"removed",prev:a});for(var i=0;ie[Math.floor(i*r)]);return CC(n,t)}function yte(e,t){var r=t.map((n,a)=>e[a]);return CC(r,t)}function hte(e,t){for(var r=new Map,n=0;n{var p=r(d,f);if(p!=null){var m=n.get(p);if(m!==void 0)return a.add(p),m}}),o=[];for(var l of n){var s=dte(l,2),u=s[0],c=s[1];a.has(u)||o.push(c)}return CC(i,t,o)}function gv(e,t,r){return t==null?null:e==null?t.map(n=>({status:"added",next:n})):r===Tu?gte(e,t):r===vv?yte(e,t):xte(e,t,r)}var hf=re(ne());function Mb(e,t){var r=(0,hf.useRef)(e),n=(0,hf.useRef)(t.current),a=(0,hf.useRef)(!0);r.current!==e&&(r.current=e,n.current=t.current,a.current=!1);var i=(0,hf.useCallback)(function(o,l){var s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(l===0){a.current=!0;return}l===1&&(n.current=o),l>0&&a.current&&s&&(t.current=o)},[t]);return{startValue:n.current,syncStepValue:i}}function bte(e,t){return kte(e)||Ate(e,t)||Ste(e,t)||wte()}function wte(){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 Ste(e,t){if(e){if(typeof e=="string")return sL(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)?sL(e,t):void 0}}function sL(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{typeof e=="function"&&e(),i(!0)},[e]),l=(0,yv.useCallback)(()=>{typeof t=="function"&&t(),i(!1)},[t]);return{isAnimating:a,handleAnimationStart:o,handleAnimationEnd:l}}function os(e){var t,r=e.animationInput,n=e.animationIdPrefix,a=e.items,i=e.previousItemsRef,o=e.isAnimationActive,l=e.animationBegin,s=e.animationDuration,u=e.animationEasing,c=e.onAnimationStart,d=e.onAnimationEnd,f=e.animationInterpolateFn,p=e.animationMatchBy,m=e.shouldUpdatePreviousRef,y=e.children,h=e.layout,v=N0(r,n),g=Mb(v,i),b=(t=g.startValue)!==null&&t!==void 0?t:null,x=gv(b,a,p??Tu);return uL.createElement(k0,{animationId:v,begin:l,duration:s,isActive:o,easing:u,onAnimationEnd:d,onAnimationStart:c,key:v},S=>{var w=b==null,_=a==null?a:f(x,S,h),k=m?m(S):S>0;return g.syncStepValue(_,S,k),_==null?null:y(_,S,w)})}var fL=re(ne()),_C=re(ne());var Pb=re(ne());var EC;function Nte(e,t){return Ote(e)||_te(e,t)||Ete(e,t)||Cte()}function Cte(){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 Ete(e,t){if(e){if(typeof e=="string")return cL(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)?cL(e,t):void 0}}function cL(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var e=Pb.useState(()=>Ao("uid-")),t=Nte(e,1),r=t[0];return r},Db=(EC=Pb.useId)!==null&&EC!==void 0?EC:Tte;function dL(e,t){var r=Db();return t||(e?"".concat(e,"-").concat(r):r)}var Mte=(0,_C.createContext)(void 0),ls=e=>{var t=e.id,r=e.type,n=e.children,a=dL("recharts-".concat(r),t);return fL.createElement(Mte.Provider,{value:a},n(a))};var wi=re(ne());var Pte={cartesianItems:[],polarItems:[]},pL=Nt({name:"graphicalItems",initialState:Pte,reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(et(t.payload))},prepare:Mt()},replaceCartesianGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,a=r.next,i=mn(e).cartesianItems.indexOf(et(n));i>-1&&(e.cartesianItems[i]=et(a))},prepare:Mt()},removeCartesianGraphicalItem:{reducer(e,t){var r=mn(e).cartesianItems.indexOf(et(t.payload));r>-1&&e.cartesianItems.splice(r,1)},prepare:Mt()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(et(t.payload))},prepare:Mt()},removePolarGraphicalItem:{reducer(e,t){var r=mn(e).polarItems.indexOf(et(t.payload));r>-1&&e.polarItems.splice(r,1)},prepare:Mt()},replacePolarGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,a=r.next,i=mn(e).polarItems.indexOf(et(n));i>-1&&(e.polarItems[i]=et(a))},prepare:Mt()}}}),xf=pL.actions,mL=xf.addCartesianGraphicalItem,vL=xf.replaceCartesianGraphicalItem,gL=xf.removeCartesianGraphicalItem,yL=xf.addPolarGraphicalItem,hL=xf.removePolarGraphicalItem,xL=xf.replacePolarGraphicalItem;var bL=pL.reducer;var Dte=e=>{var t=He(),r=(0,wi.useRef)(null);return(0,wi.useLayoutEffect)(()=>{r.current===null?t(mL(e)):r.current!==e&&t(vL({prev:r.current,next:e})),r.current=e},[t,e]),(0,wi.useLayoutEffect)(()=>()=>{r.current&&(t(gL(r.current)),r.current=null)},[t]),null},bf=(0,wi.memo)(Dte),Ite=e=>{var t=He(),r=(0,wi.useRef)(null);return(0,wi.useLayoutEffect)(()=>{r.current===null?t(yL(e)):r.current!==e&&t(xL({prev:r.current,next:e})),r.current=e},[t,e]),(0,wi.useLayoutEffect)(()=>()=>{r.current&&(t(hL(r.current)),r.current=null)},[t]),null},wL=(0,wi.memo)(Ite);var jte=["key"],zte=["onMouseEnter","onClick","onMouseLeave"],Lte=["id"],Bte=["id"];function Mu(){return Mu=Object.assign?Object.assign.bind():function(e){for(var t=1;tuv(e.children,Uo),[e.children]),r=xe(n=>qz(n,e.id,t));return r==null?null:Qe.createElement(oL,{legendPayload:r})}function Vte(e){if(!(e==null||typeof e=="boolean"||typeof e=="function")){if(Qe.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 Kte=Qe.memo(e=>{var t=e.dataKey,r=e.nameKey,n=e.sectors,a=e.stroke,i=e.strokeWidth,o=e.fill,l=e.name,s=e.hide,u=e.tooltipType,c=e.formatter,d=e.id,f=e.activeShape,p=Vte(f),m=n.map(h=>{var v=h.tooltipPayload;return p==null||v==null?v:v.map(g=>sr(sr({},g),{},{color:p,fill:p}))}),y={dataDefinedOnItem:m,getPosition:h=>{var v;return(v=n[Number(h)])===null||v===void 0?void 0:v.tooltipPosition},settings:{stroke:a,strokeWidth:i,fill:o,dataKey:t,nameKey:r,name:xa(l,t),hide:s,type:u,color:o,unit:"",formatter:c,graphicalItemId:d}};return Qe.createElement(ns,{tooltipEntrySettings:y})}),qte=(e,t)=>e>t?"start":etypeof t=="function"?pr(t(e),r,r*.8):pr(t,r,r*.8),Gte=(e,t,r)=>{var n=t.top,a=t.left,i=t.width,o=t.height,l=O0(i,o),s=a+pr(e.cx,i,i/2),u=n+pr(e.cy,o,o/2),c=pr(e.innerRadius,l,0),d=Yte(r,e.outerRadius,l),f=e.maxRadius||Math.sqrt(i*i+o*o)/2;return{cx:s,cy:u,innerRadius:c,outerRadius:d,maxRadius:f}},Xte=(e,t)=>{var r=Ut(t-e),n=Math.min(Math.abs(t-e),360);return r*n},Zte=(e,t)=>{if(Qe.isValidElement(e))return Qe.cloneElement(e,t);if(typeof e=="function")return e(t);var r=Ue("recharts-pie-label-line",typeof e!="boolean"?e.className:""),n=t.key,a=Ib(t,jte);return Qe.createElement(Bi,Mu({},a,{type:"linear",className:r}))},Qte=(e,t,r)=>{if(Qe.isValidElement(e))return Qe.cloneElement(e,t);var n=r;if(typeof e=="function"&&(n=e(t),Qe.isValidElement(n)))return n;var a=Ue("recharts-pie-label-text",bb(e));return Qe.createElement(Eu,Mu({},t,{alignmentBaseline:"middle",className:a}),n)};function Jte(e){var t=e.sectors,r=e.props,n=e.showLabels,a=r.label,i=r.labelLine,o=r.dataKey;if(!n||!a||!t)return null;var l=er(r),s=ma(a),u=ma(i),c=typeof a=="object"&&"offsetRadius"in a&&typeof a.offsetRadius=="number"&&a.offsetRadius||20,d=t.map((f,p)=>{var m=(f.startAngle+f.endAngle)/2,y=Kt(f.cx,f.cy,f.outerRadius+c,m),h=sr(sr(sr(sr({},l),f),{},{stroke:"none"},s),{},{index:p,textAnchor:qte(y.x,f.cx)},y),v=sr(sr(sr(sr({},l),f),{},{fill:"none",stroke:f.fill},u),{},{index:p,points:[Kt(f.cx,f.cy,f.outerRadius,m),y],key:"line"});return Qe.createElement(qt,{zIndex:ut.label,key:"label-".concat(f.startAngle,"-").concat(f.endAngle,"-").concat(f.midAngle,"-").concat(p)},Qe.createElement(xt,null,i&&Zte(i,v),Qte(a,h,Xe(f,o))))});return Qe.createElement(xt,{className:"recharts-pie-labels"},d)}function Rte(e){var t=e.sectors,r=e.props,n=e.showLabels,a=r.label;return typeof a=="object"&&a!=null&&"position"in a?Qe.createElement(ts,{label:a}):Qe.createElement(Jte,{sectors:t,props:r,showLabels:n})}function ere(e){var t=e.sectors,r=e.activeShape,n=e.inactiveShape,a=e.allOtherPieProps,i=e.shape,o=e.id,l=e.animationElapsedTime,s=e.isAnimating,u=e.isEntrance,c=xe(Qa),d=xe(af),f=xe(eb),p=a.onMouseEnter,m=a.onClick,y=a.onMouseLeave,h=Ib(a,zte),v=dv(p,a.dataKey,o),g=fv(y),b=pv(m,a.dataKey,o);return t==null||t.length===0?null:Qe.createElement(Qe.Fragment,null,t.map((x,S)=>{if(x?.startAngle===0&&x?.endAngle===0&&t.length!==1)return null;var w=f==null||f===o,_=String(S)===c&&(d==null||a.dataKey===d)&&w,k=c?n:null,A=r&&_?r:k,P=sr(sr({},x),{},{stroke:x.stroke,tabIndex:-1,index:S,isActive:_,animationElapsedTime:l,isAnimating:s,isEntrance:u,[l0]:S,[s0]:o});return Qe.createElement(xt,Mu({key:"sector-".concat(x?.startAngle,"-").concat(x?.endAngle,"-").concat(x.midAngle,"-").concat(S),tabIndex:-1,className:"recharts-pie-sector"},No(h,x,S),{onMouseEnter:v(x,S),onMouseLeave:g(x,S),onClick:b(x,S)}),Qe.createElement(rs,{option:A??i,DefaultShape:AL,shapeProps:P}))}))}function Gz(e){var t,r=e.pieSettings,n=e.displayedData,a=e.cells,i=e.offset,o=r.cornerRadius,l=r.startAngle,s=r.endAngle,u=r.dataKey,c=r.nameKey,d=r.tooltipType,f=Math.abs(r.minAngle),p=Xte(l,s),m=Math.abs(p),y=n.length<=1?0:(t=r.paddingAngle)!==null&&t!==void 0?t:0,h=n.filter(k=>Xe(k,u,0)!==0).length,v=(m>=360?h:h-1)*y,g=n.reduce((k,A)=>{var P=Xe(A,u,0);return k+(he(P)?P:0)},0),b=f>0&&g>0&&n.some(k=>{var A=Xe(k,u,0),P=(he(A)?A:0)/g;return A!==0&&P*m0){var _;w=n.map((k,A)=>{var P=Xe(k,u,0),K=Xe(k,c,A),z=Gte(r,i,k),Q=(he(P)?P:0)/g,M,F=sr(sr({},k),a&&a[A]&&a[A].props),N=F!=null&&"fill"in F&&typeof F.fill=="string"?F.fill:r.fill;A?M=_.endAngle+Ut(p)*y*(P!==0?1:0):M=l;var O=M+Ut(p)*((P!==0?x:0)+Q*S),I=(M+O)/2,D=(z.innerRadius+z.outerRadius)/2,T=[{name:K,value:P,payload:F,dataKey:u,type:d,color:N,fill:N,graphicalItemId:r.id}],j=Kt(z.cx,z.cy,D,I);return _=sr(sr(sr(sr({},r.presentationProps),{},{percent:Q,cornerRadius:typeof o=="string"?parseFloat(o):o,name:K,tooltipPayload:T,midAngle:I,middleRadius:D,tooltipPosition:j},F),z),{},{value:P,dataKey:u,startAngle:M,endAngle:O,payload:F,paddingAngle:P!==0?Ut(p)*y:0}),_})}return w}function tre(e){var t=e.showLabels,r=e.sectors,n=e.children,a=(0,wf.useMemo)(()=>!t||!r?[]:r.map(i=>({value:i.value,payload:i.payload,clockWise:!1,parentViewBox:void 0,viewBox:{cx:i.cx,cy:i.cy,innerRadius:i.innerRadius,outerRadius:i.outerRadius,startAngle:i.startAngle,endAngle:i.endAngle,clockWise:!1},fill:i.fill})),[r,t]);return Qe.createElement(Lz,{value:t?a:void 0},n)}var rre=(e,t)=>{if(e==null)return[];var r=[],n=e.find(i=>i.status!=="removed"),a=n?n.next.startAngle:0;return e.forEach((i,o)=>{if(i.status!=="removed"){var l=o>0?Rr(i.next,"paddingAngle",0):0;if(i.status==="matched"){var s=kt(i.prev.endAngle-i.prev.startAngle,i.next.endAngle-i.next.startAngle,t),u=sr(sr({},i.next),{},{startAngle:a+l,endAngle:a+s+l});r.push(u),a=u.endAngle}else{var c=kt(0,i.next.endAngle-i.next.startAngle,t),d=sr(sr({},i.next),{},{startAngle:a+l,endAngle:a+c+l});r.push(d),a=d.endAngle}}}),r};function nre(e){var t,r,n,a,i=e.props,o=e.previousSectorsRef,l=e.id,s=i.sectors,u=i.activeShape,c=i.inactiveShape,d=i.animationInterpolateFn,f=is(i.onAnimationStart,i.onAnimationEnd),p=f.isAnimating,m=f.handleAnimationStart,y=f.handleAnimationEnd,h=dD();if(h==null)return null;var v=s[0];return Qe.createElement(tre,{showLabels:!p,sectors:s},Qe.createElement(os,{animationInput:i,animationIdPrefix:"recharts-pie-",items:s,previousItemsRef:o,isAnimationActive:i.isAnimationActive,animationBegin:i.animationBegin,animationDuration:i.animationDuration,animationEasing:i.animationEasing,onAnimationStart:m,onAnimationEnd:y,animationInterpolateFn:d,animationMatchBy:i.animationMatchBy,layout:h},(g,b,x)=>Qe.createElement(xt,null,Qe.createElement(ere,{sectors:g,activeShape:u,inactiveShape:c,allOtherPieProps:i,shape:i.shape,id:l,animationElapsedTime:b,isAnimating:p||b<1,isEntrance:x}))),Qe.createElement(Rte,{showLabels:!p,sectors:s,props:i}),Qe.createElement(Pz,{cx:(t=v?.cx)!==null&&t!==void 0?t:0,cy:(r=v?.cy)!==null&&r!==void 0?r:0,innerRadius:(n=v?.innerRadius)!==null&&n!==void 0?n:0,outerRadius:(a=v?.outerRadius)!==null&&a!==void 0?a:0,startAngle:i.startAngle,endAngle:i.endAngle,clockWise:!1},i.children))}var are={animationBegin:400,animationDuration:1500,animationEasing:"ease",animationInterpolateFn:rre,animationMatchBy:vv,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:AL,startAngle:0,stroke:"#fff",zIndex:ut.area};function ire(e){var t=e.id,r=Ib(e,Lte),n=e.hide,a=e.className,i=e.rootTabIndex,o=(0,wf.useMemo)(()=>uv(e.children,Uo),[e.children]),l=xe(c=>Yz(c,t,o)),s=(0,wf.useRef)(null),u=Ue("recharts-pie",a);return n||l==null?(s.current=null,Qe.createElement(xt,{tabIndex:i,className:u})):Qe.createElement(qt,{zIndex:e.zIndex},Qe.createElement(Kte,{dataKey:e.dataKey,nameKey:e.nameKey,sectors:l,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}),Qe.createElement(xt,{tabIndex:i,className:u},Qe.createElement(nre,{props:sr(sr({},r),{},{sectors:l}),previousSectorsRef:s,id:t})))}function ore(e){var t=it(e,are),r=t.id,n=Ib(t,Bte),a=er(n);return Qe.createElement(ls,{id:r,type:"pie"},i=>Qe.createElement(Qe.Fragment,null,Qe.createElement(wL,{type:"pie",id:i,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:a,maxRadius:t.maxRadius}),Qe.createElement(Hte,Mu({},n,{id:i})),Qe.createElement(ire,Mu({},n,{id:i}))))}var jb=ore;jb.displayName="Pie";var hv=re(ne()),Lb=re(ne());var lre=["points"];function kL(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function OC(e){for(var t=1;t{var v,g,b=OC(OC(OC({r:3},o),f),{},{index:h,cx:(v=y.x)!==null&&v!==void 0?v:void 0,cy:(g=y.y)!==null&&g!==void 0?g:void 0,dataKey:i,value:y.value,payload:y.payload,points:t});return hv.createElement(pre,{key:"dot-".concat(h),option:r,dotProps:b,className:a})}),m={};return l&&s!=null&&(m.clipPath="url(#clipPath-".concat(d?"":"dots-").concat(s,")")),hv.createElement(qt,{zIndex:c},hv.createElement(xt,zb({className:n},m),p))}var xv=re(ne()),Ub=re(ne());function NL(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function $b(e){for(var t=1;t({top:e.top,bottom:e.bottom,left:e.left,right:e.right}));var LL=Z([zL,rn,nn],(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 ss=()=>xe(LL),BL=()=>xe(uj);function $L(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function MC(e){for(var t=1;t{var t=e.point,r=e.childIndex,n=e.mainColor,a=e.activeDot,i=e.dataKey,o=e.clipPath;if(a===!1||t.x==null||t.y==null)return null;var l={index:r,dataKey:i,cx:t.x,cy:t.y,r:4,fill:n??"none",strokeWidth:2,stroke:"#fff",payload:t.payload,value:t.value},s=MC(MC(MC({},l),ma(a)),fd(a)),u;return(0,Ub.isValidElement)(a)?u=(0,Ub.cloneElement)(a,s):typeof a=="function"?u=a(s):u=xv.createElement(gb,s),xv.createElement(xt,{className:"recharts-active-dot",clipPath:o},u)};function bv(e){var t=e.points,r=e.mainColor,n=e.activeDot,a=e.itemDataKey,i=e.clipPath,o=e.zIndex,l=o===void 0?ut.activeDot:o,s=xe(Qa),u=BL();if(t==null||u==null)return null;var c=t.find(d=>u.includes(d.payload));return st(c)?null:xv.createElement(qt,{zIndex:l},xv.createElement(Sre,{point:c,childIndex:Number(s),mainColor:r,dataKey:a,activeDot:n,clipPath:i}))}function Are(e,t){return Ere(e)||Cre(e,t)||Nre(e,t)||kre()}function kre(){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 Nre(e,t){if(e){if(typeof e=="string")return UL(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)?UL(e,t):void 0}}function UL(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var n=r??e;if(!st(n))return pr(n,t,0)},WL=(e,t,r)=>{var n={},a=e.filter(uu),i=e.filter(u=>u.stackId==null),o=a.reduce((u,c)=>{var d=u[c.stackId];return d==null&&(d=[]),d.push(c),u[c.stackId]=d,u},n),l=Object.entries(o).map(u=>{var c,d=Are(u,2),f=d[0],p=d[1],m=p.map(h=>h.dataKey),y=FL(t,r,(c=p[0])===null||c===void 0?void 0:c.barSize);return{stackId:f,dataKeys:m,barSize:y}}),s=i.map(u=>{var c=[u.dataKey].filter(f=>f!=null),d=FL(t,r,u.barSize);return{stackId:void 0,dataKeys:c,barSize:d}});return[...l,...s]};function HL(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Fb(e){for(var t=1;tg+(b.barSize||0),0);f+=(o-1)*l,f>=r&&(f-=(o-1)*l,l=0),f>=r&&d>0&&(c=!0,d*=.9,f=o*d);var p=Math.round((r-f)/2),m={offset:p-l,size:0};s=n.reduce((g,b)=>{var x,S={stackId:b.stackId,dataKeys:b.dataKeys,position:{offset:m.offset+m.size+l,size:c?d:(x=b.barSize)!==null&&x!==void 0?x:0}},w=[...g,S];return m=S.position,w},u)}else{var y=pr(t,r,0,!0);r-2*y-(o-1)*l<=0&&(l=0);var h=(r-2*y-(o-1)*l)/o;h>1&&(h=Math.round(h));var v=We(a)?Math.min(h,a):h;s=n.reduce((g,b,x)=>[...g,{stackId:b.stackId,dataKeys:b.dataKeys,position:{offset:y+o*(h-v)/2+(v+l)*x,size:v}}],u)}return s}}var VL=(e,t,r,n,a,i,o)=>{var l=st(o)?t:o,s=Mre(r,n,a!==i?a:i,e,l);return a!==i&&s!=null&&(s=s.map(u=>Fb(Fb({},u),{},{position:Fb(Fb({},u.position),{},{offset:u.position.offset-a/2})}))),s};var KL=(e,t)=>{var r=Ul(t);if(!(!e||r==null||t==null)){var n=t.stackId;if(n!=null){var a=e[n];if(a){var i=a.stackedData;if(i)return i.find(o=>o.key===r)}}}};var qL=(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 YL(e,t){return e&&typeof e=="object"&&"zIndex"in e&&typeof e.zIndex=="number"&&We(e.zIndex)?e.zIndex:t}var GL=re(ne());var Wb=e=>{var t=e.chartData,r=He(),n=Ct();return(0,GL.useEffect)(()=>n?()=>{}:(r(gC(t)),()=>{r(gC(void 0))}),[t,r,n]),null};var XL={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},ZL=Nt({name:"brush",initialState:XL,reducers:{setBrushSettings(e,t){return t.payload==null?XL:t.payload}}}),O_e=ZL.actions.setBrushSettings;var QL=ZL.reducer;function Pre(e){return(e%180+180)%180}var JL=function(t){var r=t.width,n=t.height,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=Pre(a),o=i*Math.PI/180,l=Math.atan(n/r),s=o>l&&o{e.dots.push(t.payload)},removeDot:(e,t)=>{var r=mn(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=mn(e).areas.findIndex(n=>n===t.payload);r!==-1&&e.areas.splice(r,1)},addLine:(e,t)=>{e.lines.push(et(t.payload))},removeLine:(e,t)=>{var r=mn(e).lines.findIndex(n=>n===t.payload);r!==-1&&e.lines.splice(r,1)}}}),Sf=RL.actions,I_e=Sf.addDot,j_e=Sf.removeDot,z_e=Sf.addArea,L_e=Sf.removeArea,B_e=Sf.addLine,$_e=Sf.removeLine;var eB=RL.reducer;var wv=re(ne()),Sv=re(ne());function Ire(e,t){return Bre(e)||Lre(e,t)||zre(e,t)||jre()}function jre(){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 zre(e,t){if(e){if(typeof e=="string")return tB(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)?tB(e,t):void 0}}function tB(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.children,r=(0,Sv.useState)("".concat(Ao("recharts"),"-clip")),n=Ire(r,1),a=n[0],i=ss();if(i==null)return null;var o=i.x,l=i.y,s=i.width,u=i.height;return wv.createElement($re.Provider,{value:a},wv.createElement("defs",null,wv.createElement("clipPath",{id:a},wv.createElement("rect",{x:o,y:l,height:u,width:s}))),t)};var nr=re(ne()),wn=re(ne());function nB(){}function PC(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 aB(e,t,r){return Av(e,t,void 0,void 0,void 0,void 0,r)}function Av(e,t,r,n,a,i,o){let l=o(e,t,r,n,a,i);if(l!==void 0)return l;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 kv(e,t,i,o)}return kv(e,t,i,o)}function kv(e,t,r,n){if(Object.is(e,t))return!0;let a=Co(e),i=Co(t);if(a==="[object Arguments]"&&(a=gd),i==="[object Arguments]"&&(i=gd),a!==i)return!1;switch(a){case pd:return e.toString()===t.toString();case md:return jl(e.valueOf(),t.valueOf());case vd:case oh:case ih:return Object.is(e.valueOf(),t.valueOf());case nh:return e.source===t.source&&e.flags===t.flags;case oM:return e===t}r=r??new Map;let o=r.get(e),l=r.get(t);if(o!=null&&l!=null)return o===t;r.set(e,t),r.set(t,e);try{switch(a){case lh:if(e.size!==t.size)return!1;for(let[s,u]of e.entries())if(!t.has(s)||!Av(u,t.get(s),s,e,t,r,n))return!1;return!0;case sh:{if(e.size!==t.size)return!1;let s=Array.from(e.values()),u=Array.from(t.values());for(let c=0;cAv(d,p,void 0,e,t,r,n));if(f===-1)return!1;u.splice(f,1)}return!0}case uh:case fh:case ph:case mh:case vh:case sM:case gh:case yh:case hh:case uM:case xh:case bh:if(nm(e)!==nm(t)||e.length!==t.length)return!1;for(let s=0;se*a)return!1;var i=r();return e*(t-e*i/2-n)>=0&&e*(t+e*i/2-a)<=0}function lB(e,t){return Hb(e,t+1)}function sB(e,t,r,n,a){for(var i=(n||[]).slice(),o=t.start,l=t.end,s=0,u=1,c=o,d=function(){var m=n?.[s];if(m===void 0)return{v:Hb(n,u)};var y=s,h,v=()=>(h===void 0&&(h=r(m,y)),h),g=m.coordinate,b=s===0||Pu(e,g,v,c,l);b||(s=0,c=o,u+=1),b&&(c=g+e*(v()/2+a),s+=u)},f;u<=i.length;)if(f=d(),f)return f.v;return[]}function uB(e,t,r,n,a){var i=(n||[]).slice(),o=i.length;if(o===0)return[];for(var l=t.start,s=t.end,u=1;u<=o;u++){for(var c=(o-1)%u,d=l,f=!0,p=function(){var x=n[y];if(x==null)return 0;var S=y,w,_=()=>(w===void 0&&(w=r(x,S)),w),k=x.coordinate,A=y===c||Pu(e,k,_,d,s);if(!A)return f=!1,1;A&&(d=k+e*(_()/2+a))},m,y=c;y(y===void 0&&(y=r(p,f)),y);if(f===o-1){var v=e*(m.coordinate+e*h()/2-s);i[f]=m=bn(bn({},m),{},{tickCoord:v>0?m.coordinate-v*e:m.coordinate})}else i[f]=m=bn(bn({},m),{},{tickCoord:m.coordinate});if(m.tickCoord!=null){var g=Pu(e,m.tickCoord,h,l,s);g&&(s=m.tickCoord-e*(h()/2+a),i[f]=bn(bn({},m),{},{isShow:!0}))}},c=o-1;c>=0;c--)u(c);return i}function Vre(e,t,r,n,a,i){var o=(n||[]).slice(),l=o.length,s=t.start,u=t.end;if(i){var c=n[l-1];if(c!=null){var d=r(c,l-1),f=e*(c.coordinate+e*d/2-u);if(o[l-1]=c=bn(bn({},c),{},{tickCoord:f>0?c.coordinate-f*e:c.coordinate}),c.tickCoord!=null){var p=Pu(e,c.tickCoord,()=>d,s,u);p&&(u=c.tickCoord-e*(d/2+a),o[l-1]=bn(bn({},c),{},{isShow:!0}))}}}for(var m=i?l-1:l,y=function(g){var b=o[g];if(b==null)return 1;var x=b,S,w=()=>(S===void 0&&(S=r(b,g)),S);if(g===0){var _=e*(x.coordinate-e*w()/2-s);o[g]=x=bn(bn({},x),{},{tickCoord:_<0?x.coordinate-_*e:x.coordinate})}else o[g]=x=bn(bn({},x),{},{tickCoord:x.coordinate});if(x.tickCoord!=null){var k=Pu(e,x.tickCoord,w,s,u);k&&(s=x.tickCoord+e*(w()/2+a),o[g]=bn(bn({},x),{},{isShow:!0}))}},h=0;h{var _=typeof u=="function"?u(S.value,w):S.value;return m==="width"?iB(Cu(_,{fontSize:t,letterSpacing:r}),y,d):Cu(_,{fontSize:t,letterSpacing:r})[m]},v=a[0],g=a[1],b=a.length>=2&&v!=null&&g!=null?Ut(g.coordinate-v.coordinate):1,x=oB(i,b,m);return s==="equidistantPreserveStart"?sB(b,x,h,a,o):s==="equidistantPreserveEnd"?uB(b,x,h,a,o):(s==="preserveStart"||s==="preserveStartEnd"?p=Vre(b,x,h,a,o,s==="preserveStartEnd"):p=Hre(b,x,h,a,o),p.filter(S=>S.isShow))}var dB=e=>{var t=e.ticks,r=e.label,n=e.labelGapWithTick,a=n===void 0?5:n,i=e.tickSize,o=i===void 0?0:i,l=e.tickMargin,s=l===void 0?0:l,u=0;if(t){Array.from(t).forEach(p=>{if(p){var m=p.getBoundingClientRect();m.width>u&&(u=m.width)}});var c=r?r.getBoundingClientRect().width:0,d=o+s,f=u+d+c+(r?a:0);return Math.round(f)}return 0};var fB=e=>{var t=e.ticks,r=e.label,n=e.labelGapWithTick,a=n===void 0?5:n,i=e.tickSize,o=i===void 0?0:i,l=e.tickMargin,s=l===void 0?0:l,u=0;if(t){Array.from(t).forEach(p=>{if(p){var m=p.getBoundingClientRect();m.height>u&&(u=m.height)}});var c=r?r.getBoundingClientRect().height:0,d=o+s,f=u+d+c+(r?a:0);return Math.round(f)}return 0};var Kre={xAxis:{},yAxis:{}},pB=Nt({name:"renderedTicks",initialState:Kre,reducers:{setRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,a=r.axisId,i=r.ticks;e[n][a]=et(i)},removeRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,a=r.axisId;delete e[n][a]}}}),mB=pB.actions,vB=mB.setRenderedTicks,gB=mB.removeRenderedTicks;var yB=pB.reducer;var qre=["axisLine","width","height","className","hide","ticks","axisType","axisId"];function hB(e,t){return Zre(e)||Xre(e,t)||Gre(e,t)||Yre()}function Yre(){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 Gre(e,t){if(e){if(typeof e=="string")return xB(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)?xB(e,t):void 0}}function xB(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{if(!(n==null||r==null)){var o=t.map(s=>({value:s.value,coordinate:s.coordinate,offset:s.offset,index:s.index})),l=i.current;l!=null&&l.axisId===n&&l.axisType===r&&DC(l.ticks,o)||(i.current={ticks:o,axisId:n,axisType:r},a(vB({ticks:o,axisId:n,axisType:r})))}},[a,t,n,r]),(0,wn.useEffect)(()=>n==null||r==null?Tn:()=>{a(gB({axisId:n,axisType:r}))},[a,n,r]),null}var sne=(0,wn.forwardRef)((e,t)=>{var r=e.ticks,n=r===void 0?[]:r,a=e.tick,i=e.tickLine,o=e.stroke,l=e.tickFormatter,s=e.unit,u=e.padding,c=e.tickTextProps,d=e.orientation,f=e.mirror,p=e.x,m=e.y,y=e.width,h=e.height,v=e.tickSize,g=e.tickMargin,b=e.fontSize,x=e.letterSpacing,S=e.getTicksConfig,w=e.events,_=e.axisType,k=e.axisId,A=Nv(br(br({},S),{},{ticks:n}),b,x),P=er(S),K=ma(a),z=pb(P.textAnchor)?P.textAnchor:ane(d,f),Q=ine(d,f),M={};typeof i=="object"&&(M=i);var F=br(br({},P),{},{fill:"none"},M),N=A.map(D=>br({entry:D},nne(D,p,m,y,h,d,v,f,g))),O=N.map(D=>{var T=D.entry,j=D.line;return nr.createElement(xt,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(T.value,"-").concat(T.coordinate,"-").concat(T.tickCoord)},i&&nr.createElement("line",Du({},F,j,{className:Ue("recharts-cartesian-axis-tick-line",Rr(i,"className"))})))}),I=N.map((D,T)=>{var j,R,U=D.entry,q=D.tick,ee=br(br(br(br({verticalAnchor:Q},P),{},{textAnchor:z,stroke:"none",fill:o},q),{},{index:T,payload:U,visibleTicksCount:A.length,tickFormatter:l,padding:u},c),{},{angle:(j=(R=c?.angle)!==null&&R!==void 0?R:P.angle)!==null&&j!==void 0?j:0}),fe=br(br({},ee),K);return nr.createElement(xt,Du({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(U.value,"-").concat(U.coordinate,"-").concat(U.tickCoord)},No(w,U,T)),a&&nr.createElement(one,{option:a,tickProps:fe,value:"".concat(typeof l=="function"?l(U.value,T):U.value).concat(s||"")}))});return nr.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(_,"-ticks")},nr.createElement(lne,{ticks:A,axisId:k,axisType:_}),I.length>0&&nr.createElement(qt,{zIndex:ut.label},nr.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(_,"-tick-labels"),ref:t},I)),O.length>0&&nr.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(_,"-tick-lines")},O))}),une=(0,wn.forwardRef)((e,t)=>{var r=e.axisLine,n=e.width,a=e.height,i=e.className,o=e.hide,l=e.ticks,s=e.axisType,u=e.axisId,c=Qre(e,qre),d=(0,wn.useState)(""),f=hB(d,2),p=f[0],m=f[1],y=(0,wn.useState)(""),h=hB(y,2),v=h[0],g=h[1],b=(0,wn.useRef)(null);(0,wn.useImperativeHandle)(t,()=>({getCalculatedWidth:()=>{var S;return dB({ticks:b.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 fB({ticks:b.current,label:(S=e.labelRef)===null||S===void 0?void 0:S.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}}));var x=(0,wn.useCallback)(S=>{if(S){var w=S.getElementsByClassName("recharts-cartesian-axis-tick-value");b.current=w;var _=w[0];if(_){var k=window.getComputedStyle(_),A=k.fontSize,P=k.letterSpacing;(A!==p||P!==v)&&(m(A),g(P))}}},[p,v]);return o||n!=null&&n<=0||a!=null&&a<=0?null:nr.createElement(qt,{zIndex:e.zIndex},nr.createElement(xt,{className:Ue("recharts-cartesian-axis",i)},nr.createElement(rne,{x:e.x,y:e.y,width:n,height:a,orientation:e.orientation,mirror:e.mirror,axisLine:r,otherSvgProps:er(e)}),nr.createElement(sne,{ref:x,axisType:s,events:c,fontSize:p,getTicksConfig:e,height:e.height,letterSpacing:v,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:l,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:u}),nr.createElement(Oz,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},nr.createElement(Dz,{label:e.label,labelRef:e.labelRef}),e.children)))}),Cv=nr.forwardRef((e,t)=>{var r=it(e,ei);return nr.createElement(une,Du({},r,{ref:t}))});Cv.displayName="CartesianAxis";var wr=re(ne());var Vb=re(ne());var wB={grid:{stroke:"#ccc",fill:"none"}};var SB=(0,Vb.createContext)(wB),H5e=SB.Provider,AB=()=>(0,Vb.useContext)(SB);var cne=["x1","y1","x2","y2","key"],dne=["offset"],fne=["xAxisId","yAxisId"],pne=["xAxisId","yAxisId"];function kB(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Sn(e){for(var t=1;t{var t=e.fill;if(!t||t==="none")return null;var r=e.fillOpacity,n=e.x,a=e.y,i=e.width,o=e.height,l=e.ry;return wr.createElement("rect",{x:n,y:a,ry:l,width:i,height:o,stroke:"none",fill:t,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function NB(e){var t=e.option,r=e.lineItemProps,n;if(wr.isValidElement(t))n=wr.cloneElement(t,r);else if(typeof t=="function")n=t(r);else{var a,i=r.x1,o=r.y1,l=r.x2,s=r.y2,u=r.key,c=Kb(r,cne),d=(a=er(c))!==null&&a!==void 0?a:{},f=d.offset,p=Kb(d,dne),m=Array.isArray(p.strokeDasharray)?p.strokeDasharray.join(","):p.strokeDasharray;n=wr.createElement("line",Iu({},p,{strokeDasharray:m,x1:i,y1:o,x2:l,y2:s,fill:"none",key:u}))}return n}function xne(e){var t=e.x,r=e.width,n=e.horizontal,a=n===void 0?!0:n,i=e.horizontalPoints;if(!a||!i||!i.length)return null;var o=e.xAxisId,l=e.yAxisId,s=Kb(e,fne),u=i.map((c,d)=>{var f=Sn(Sn({},s),{},{x1:t,y1:c,x2:t+r,y2:c,key:"line-".concat(d),index:d});return wr.createElement(NB,{key:"line-".concat(d),option:a,lineItemProps:f})});return wr.createElement("g",{className:"recharts-cartesian-grid-horizontal"},u)}function bne(e){var t=e.y,r=e.height,n=e.vertical,a=n===void 0?!0:n,i=e.verticalPoints;if(!a||!i||!i.length)return null;var o=e.xAxisId,l=e.yAxisId,s=Kb(e,pne),u=i.map((c,d)=>{var f=Sn(Sn({},s),{},{x1:c,y1:t,x2:c,y2:t+r,key:"line-".concat(d),index:d});return wr.createElement(NB,{option:a,lineItemProps:f,key:"line-".concat(d)})});return wr.createElement("g",{className:"recharts-cartesian-grid-vertical"},u)}function wne(e){var t=e.horizontalFill,r=e.fillOpacity,n=e.x,a=e.y,i=e.width,o=e.height,l=e.horizontalPoints,s=e.horizontal,u=s===void 0?!0:s;if(!u||!t||!t.length||l==null)return null;var c=l.map(f=>Math.round(f+a-a)).sort((f,p)=>f-p);a!==c[0]&&c.unshift(0);var d=c.map((f,p)=>{var m=c[p+1],y=m==null,h=y?a+o-f:m-f;if(h<=0)return null;var v=p%t.length;return wr.createElement("rect",{key:"react-".concat(p),y:f,x:n,height:h,width:i,stroke:"none",fill:t[v],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return wr.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},d)}function Sne(e){var t=e.vertical,r=t===void 0?!0:t,n=e.verticalFill,a=e.fillOpacity,i=e.x,o=e.y,l=e.width,s=e.height,u=e.verticalPoints;if(!r||!n||!n.length)return null;var c=u.map(f=>Math.round(f+i-i)).sort((f,p)=>f-p);i!==c[0]&&c.unshift(0);var d=c.map((f,p)=>{var m=c[p+1],y=m==null,h=y?i+l-f:m-f;if(h<=0)return null;var v=p%n.length;return wr.createElement("rect",{key:"react-".concat(p),x:f,y:o,width:h,height:s,stroke:"none",fill:n[v],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return wr.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},d)}var Ane=(e,t)=>{var r=e.xAxis,n=e.width,a=e.height,i=e.offset;return ok(Nv(Sn(Sn(Sn({},ei),r),{},{ticks:lk(r,!0),viewBox:{x:0,y:0,width:n,height:a}})),i.left,i.left+i.width,t)},kne=(e,t)=>{var r=e.yAxis,n=e.width,a=e.height,i=e.offset;return ok(Nv(Sn(Sn(Sn({},ei),r),{},{ticks:lk(r,!0),viewBox:{x:0,y:0,width:n,height:a}})),i.top,i.top+i.height,t)},Nne={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:ut.grid};function Vo(e){var t,r,n,a,i,o,l=_d(),s=Od(),u=p0(),c=Sn(Sn({},it(e,Nne)),{},{x:he(e.x)?e.x:u.left,y:he(e.y)?e.y:u.top,width:he(e.width)?e.width:u.width,height:he(e.height)?e.height:u.height}),d=c.xAxisId,f=c.yAxisId,p=c.x,m=c.y,y=c.width,h=c.height,v=c.syncWithTicks,g=c.horizontalValues,b=c.verticalValues,x=Ct(),S=xe(O=>YN(O,"xAxis",d,x)),w=xe(O=>YN(O,"yAxis",f,x)),_=AB(),k={stroke:(t=c.stroke)!==null&&t!==void 0?t:_.grid.stroke,strokeWidth:(r=c.strokeWidth)!==null&&r!==void 0?r:_.grid.strokeWidth,strokeOpacity:(n=c.strokeOpacity)!==null&&n!==void 0?n:_.grid.strokeOpacity,strokeDasharray:(a=c.strokeDasharray)!==null&&a!==void 0?a:_.grid.strokeDasharray};if(!Gn(y)||!Gn(h)||!he(p)||!he(m))return null;var A=c.verticalCoordinatesGenerator||Ane,P=c.horizontalCoordinatesGenerator||kne,K=c.horizontalPoints,z=c.verticalPoints;if((!K||!K.length)&&typeof P=="function"){var Q=g&&g.length,M=P({yAxis:w?Sn(Sn({},w),{},{ticks:Q?g:w.ticks}):void 0,width:l??y,height:s??h,offset:u},Q?!0:v);Ed(Array.isArray(M),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof M,"]")),Array.isArray(M)&&(K=M)}if((!z||!z.length)&&typeof A=="function"){var F=b&&b.length,N=A({xAxis:S?Sn(Sn({},S),{},{ticks:F?b:S.ticks}):void 0,width:l??y,height:s??h,offset:u},F?!0:v);Ed(Array.isArray(N),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof N,"]")),Array.isArray(N)&&(z=N)}return wr.createElement(qt,{zIndex:c.zIndex},wr.createElement("g",{className:"recharts-cartesian-grid"},wr.createElement(hne,{fill:(i=c.fill)!==null&&i!==void 0?i:_.grid.fill,fillOpacity:(o=c.fillOpacity)!==null&&o!==void 0?o:_.grid.fillOpacity,x:c.x,y:c.y,width:c.width,height:c.height,ry:c.ry}),wr.createElement(wne,Iu({},c,{horizontalPoints:K})),wr.createElement(Sne,Iu({},c,{verticalPoints:z})),wr.createElement(xne,Iu({},c,k,{offset:u,horizontalPoints:K,xAxis:S,yAxis:w})),wr.createElement(bne,Iu({},c,k,{offset:u,verticalPoints:z,xAxis:S,yAxis:w}))))}Vo.displayName="CartesianGrid";var wt=re(ne()),Ko=re(ne());var CB=re(ne());var Cne=["animationElapsedTime","isAnimating","isEntrance","visibleLength","strokeDasharray","connectNulls"];function IC(){return IC=Object.assign?Object.assign.bind():function(e){for(var t=1;tp+m,0);if(!a)return EB(t,e);for(var i=Math.floor(e/a),o=e%a,l=[],s=0,u=0;so){l=[...n.slice(0,s),o-u];break}}var f=l.length%2===0?[0,t]:[t];return[...Mne(n,i),...l,...f].map(p=>"".concat(p,"px")).join(", ")}function Dne(e,t,r){if(e){var n="".concat(e).split(/[,\s]+/gim).map(a=>parseFloat(a));return Pne(r,t,n)}return EB(t,r)}function _B(e){var t=e.animationElapsedTime,r=e.isAnimating,n=e.isEntrance,a=e.visibleLength,i=e.strokeDasharray,o=e.connectNulls,l=Ene(e,Cne),s=o??!1,u;if(a!=null){var c,d=l.pathRef,f=One((c=d?.current)!==null&&c!==void 0?c:null);u=Dne(i,f,a)}else i!=null&&(u=String(i));return CB.createElement(Bi,IC({},l,{connectNulls:s,strokeDasharray:u}))}var ju=re(ne());function OB(e){var t=(0,ju.useRef)(0),r=(0,ju.useRef)(0),n=(0,ju.useRef)(!1),a=(0,ju.useRef)(e);return a.current!==e&&(t.current=r.current,a.current=e),(0,ju.useCallback)((i,o)=>{if(n.current)return null;var l=Math.min(Ua(t.current+i*o),o);return i>0&&o>0&&(r.current=Math.max(r.current,l),l>=o)?(n.current=!0,null):l},[])}var PB=re(ne()),Ev=re(ne());var Ine={},TB=Nt({name:"errorBars",initialState:Ine,reducers:{addErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,a=r.errorBar;e[n]||(e[n]=[]),e[n].push(a)},replaceErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,a=r.prev,i=r.next;e[n]&&(e[n]=e[n].map(o=>o.dataKey===a.dataKey&&o.direction===a.direction?i:o))},removeErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,a=r.errorBar;e[n]&&(e[n]=e[n].filter(i=>i.dataKey!==a.dataKey||i.direction!==a.direction))}}}),jC=TB.actions,fOe=jC.addErrorBar,pOe=jC.replaceErrorBar,mOe=jC.removeErrorBar;var MB=TB.reducer;var jne=["children"];function zne(e,t){if(e==null)return{};var r,n,a=Lne(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n({x:0,y:0,value:0}),errorBarOffset:0},$ne=(0,Ev.createContext)(Bne);function qb(e){var t=e.children,r=zne(e,jne);return PB.createElement($ne.Provider,{value:r},t)}var zC=re(ne());function zu(e,t){var r,n,a=xe(u=>Ki(u,e)),i=xe(u=>qi(u,t)),o=(r=a?.allowDataOverflow)!==null&&r!==void 0?r:_r.allowDataOverflow,l=(n=i?.allowDataOverflow)!==null&&n!==void 0?n:Or.allowDataOverflow,s=o||l;return{needClip:s,needClipX:o,needClipY:l}}function Af(e){var t=e.xAxisId,r=e.yAxisId,n=e.clipPathId,a=ss(),i=zu(t,r),o=i.needClipX,l=i.needClipY,s=i.needClip,u=xe(b=>LN(b,t,!1)),c=xe(b=>BN(b,r,!1));if(!s||!a)return null;var d=a.x,f=a.y,p=a.width,m=a.height,y=o&&u?Math.min(u[0],u[1]):d-p/2,h=l&&c?Math.min(c[0],c[1]):f-m/2,v=o&&u?Math.abs(u[1]-u[0]):p*2,g=l&&c?Math.abs(c[1]-c[0]):m*2;return zC.createElement("clipPath",{id:"clipPath-".concat(n)},zC.createElement("rect",{x:y,y:h,width:v,height:g}))}var DB=(e,t,r,n)=>Ca(e,"xAxis",t,n),IB=(e,t,r,n)=>Na(e,"xAxis",t,n),jB=(e,t,r,n)=>Ca(e,"yAxis",r,n),zB=(e,t,r,n)=>Na(e,"yAxis",r,n),Une=Z([Ke,DB,jB,IB,zB],(e,t,r,n,a)=>hn(e,"xAxis")?Ka(t,n,!1):Ka(r,a,!1)),Fne=(e,t,r,n,a)=>a;function Wne(e){return e.type==="line"}var Hne=Z([Yl,Fne],(e,t)=>e.filter(Wne).find(r=>r.id===t)),LB=Z([Ke,DB,jB,IB,zB,Hne,Une,iu],(e,t,r,n,a,i,o,l)=>{var s=l.chartData,u=l.dataStartIndex,c=l.dataEndIndex;if(!(i==null||t==null||r==null||n==null||a==null||n.length===0||a.length===0||o==null||e!=="horizontal"&&e!=="vertical")){var d=i.dataKey,f=i.data,p;if(f!=null&&f.length>0?p=f:p=s?.slice(u,c+1),p!=null)return BB({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:a,dataKey:d,bandSize:o,displayedData:p})}});function Yb(e){var t=ma(e),r=3,n=2;if(t!=null){var a=t.r,i=t.strokeWidth,o=Number(a),l=Number(i);return(Number.isNaN(o)||o<0)&&(o=r),(Number.isNaN(l)||l<0)&&(l=n),{r:o,strokeWidth:l}}return{r,strokeWidth:n}}var Vne=["id"],Kne=["type","layout","connectNulls","needClip","shape","strokeDasharray"],qne=["activeDot","animateNewValues","animationBegin","animationDuration","animationEasing","connectNulls","dot","hide","isAnimationActive","label","legendType","xAxisId","yAxisId","id"];function Gb(){return Gb=Object.assign?Object.assign.bind():function(e){for(var t=1;t0?t/r:0}var Rne=(e,t)=>{if(e==null)return[];if(t===1)return e.flatMap(l=>l.status==="removed"?[]:[l.next]);var r=Jne(e),n=[];for(var a of e)if(a.status==="matched")n.push(Yi(Yi({},a.next),{},{x:kt(a.prev.x,a.next.x,t),y:kt(a.prev.y,a.next.y,t)}));else if(a.status==="added")if(a.next.x!=null){var i=a.next.x-r;n.push(Yi(Yi({},a.next),{},{x:kt(i,a.next.x,t),y:a.next.y}))}else n.push(a.next);else if(a.status==="removed"&&a.prev.x!=null){var o=a.prev.x+r;n.push(Yi(Yi({},a.prev),{},{x:kt(a.prev.x,o,t),y:a.prev.y}))}return n},$C={activeDot:!0,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",animationInterpolateFn:Rne,animationMatchBy:Tu,connectNulls:!1,dot:!0,fill:"#fff",hide:!1,isAnimationActive:"auto",label:!1,legendType:"line",shape:_B,stroke:"#3182bd",strokeWidth:1,xAxisId:0,yAxisId:0,zIndex:ut.line,type:"linear"},eae=e=>{var t=e.dataKey,r=e.name,n=e.stroke,a=e.legendType,i=e.hide;return[{inactive:i,dataKey:t,type:a,color:n,value:xa(r,t),payload:e}]},tae=wt.memo(e=>{var t=e.dataKey,r=e.data,n=e.stroke,a=e.strokeWidth,i=e.fill,o=e.name,l=e.hide,s=e.unit,u=e.formatter,c=e.tooltipType,d=e.id,f={dataDefinedOnItem:r,getPosition:Tn,settings:{stroke:n,strokeWidth:a,fill:i,dataKey:t,nameKey:void 0,name:xa(o,t),hide:l,type:c,color:n,unit:s,formatter:u,graphicalItemId:d}};return wt.createElement(ns,{tooltipEntrySettings:f})});function rae(e){var t=e.clipPathId,r=e.points,n=e.props,a=n.dot,i=n.dataKey,o=n.needClip,l=n.id,s=BC(n,Vne),u=er(s);return wt.createElement(Bb,{points:r,dot:a,className:"recharts-line-dots",dotClassName:"recharts-line-dot",dataKey:i,baseProps:u,needClip:o,clipPathId:t})}function nae(e){var t=e.showLabels,r=e.children,n=e.points,a=(0,Ko.useMemo)(()=>n?.map(i=>{var o,l,s={x:(o=i.x)!==null&&o!==void 0?o:0,y:(l=i.y)!==null&&l!==void 0?l:0,width:0,lowerWidth:0,upperWidth:0,height:0};return Yi(Yi({},s),{},{value:i.value,payload:i.payload,viewBox:s,parentViewBox:void 0,fill:void 0})}),[n]);return wt.createElement(mf,{value:t?a:void 0},r)}function aae(e){var t=e.clipPathId,r=e.pathRef,n=e.points,a=e.props,i=e.animationElapsedTime,o=e.isAnimating,l=e.isEntrance,s=e.visibleLength,u=a.type,c=a.layout,d=a.connectNulls,f=a.needClip,p=a.shape,m=a.strokeDasharray,y=BC(a,Kne),h=Yi(Yi({},tr(y)),{},{fill:"none",className:"recharts-line-curve",clipPath:f?"url(#clipPath-".concat(t,")"):void 0,points:n,type:u,layout:c,connectNulls:d,strokeDasharray:m??a.strokeDasharray,pathRef:r,animationElapsedTime:i,isAnimating:o,isEntrance:a.animateNewValues?l:!1,visibleLength:s});return wt.createElement(wt.Fragment,null,n?.length>1&&wt.createElement(rs,{option:p,DefaultShape:$C.shape,shapeProps:h}),wt.createElement(rae,{points:n,clipPathId:t,props:a}))}function iae(e){var t=e.clipPathId,r=e.props,n=e.pathRef,a=e.previousPointsRef,i=r.points,o=r.isAnimationActive,l=r.animationBegin,s=r.animationDuration,u=r.animationEasing,c=r.animationMatchBy,d=r.animationInterpolateFn,f=r.layout,p=Qne(n.current),m=is(r.onAnimationStart,r.onAnimationEnd),y=m.isAnimating,h=m.handleAnimationStart,v=m.handleAnimationEnd,g=!y,b=OB(i),x=(0,Ko.useCallback)(S=>S>0&&p>0,[p]);return wt.createElement(nae,{points:i,showLabels:g},r.children,wt.createElement(os,{animationInput:i,animationIdPrefix:"recharts-line-",items:i,previousItemsRef:a,isAnimationActive:o,animationBegin:l,animationDuration:s,animationEasing:u,onAnimationStart:h,onAnimationEnd:v,animationInterpolateFn:d,animationMatchBy:c,shouldUpdatePreviousRef:x,layout:f},(S,w,_)=>{var k=y||w<1,A=k?b(w,p):null;return wt.createElement(aae,{props:r,points:S,clipPathId:t,pathRef:n,animationElapsedTime:w,isAnimating:k,isEntrance:_,visibleLength:A})}),wt.createElement(ts,{label:r.label}))}function oae(e){var t=e.clipPathId,r=e.props,n=(0,Ko.useRef)(null),a=(0,Ko.useRef)(null);return wt.createElement(iae,{props:r,clipPathId:t,previousPointsRef:n,pathRef:a})}var lae=(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:Xe(e.payload,t)}},LC=class extends Ko.Component{render(){var t=this.props,r=t.hide,n=t.dot,a=t.points,i=t.className,o=t.xAxisId,l=t.yAxisId,s=t.top,u=t.left,c=t.width,d=t.height,f=t.id,p=t.needClip,m=t.zIndex;if(r)return null;var y=Ue("recharts-line",i),h=f,v=Yb(n),g=v.r,b=v.strokeWidth,x=vf(n),S=g*2+b,w=p?"url(#clipPath-".concat(x?"":"dots-").concat(h,")"):void 0;return wt.createElement(qt,{zIndex:m},wt.createElement(xt,{className:y},p&&wt.createElement("defs",null,wt.createElement(Af,{clipPathId:h,xAxisId:o,yAxisId:l}),!x&&wt.createElement("clipPath",{id:"clipPath-dots-".concat(h)},wt.createElement("rect",{x:u-S/2,y:s-S/2,width:c+S,height:d+S}))),wt.createElement(qb,{xAxisId:o,yAxisId:l,data:a,dataPointFormatter:lae,errorBarOffset:0},wt.createElement(oae,{props:this.props,clipPathId:h}))),wt.createElement(bv,{activeDot:this.props.activeDot,points:a,mainColor:this.props.stroke,itemDataKey:this.props.dataKey,clipPath:w}))}};function sae(e){var t=it(e,$C),r=t.activeDot,n=t.animateNewValues,a=t.animationBegin,i=t.animationDuration,o=t.animationEasing,l=t.connectNulls,s=t.dot,u=t.hide,c=t.isAnimationActive,d=t.label,f=t.legendType,p=t.xAxisId,m=t.yAxisId,y=t.id,h=BC(t,qne),v=zu(p,m),g=v.needClip,b=ss(),x=Zn(),S=Ct(),w=xe(K=>LB(K,p,m,S,y));if(x!=="horizontal"&&x!=="vertical"||w==null||b==null)return null;var _=b.height,k=b.width,A=b.x,P=b.y;return wt.createElement(LC,Gb({},h,{id:y,connectNulls:l,dot:s,activeDot:r,animateNewValues:n,animationBegin:a,animationDuration:i,animationEasing:o,isAnimationActive:c,hide:u,label:d,legendType:f,xAxisId:p,yAxisId:m,points:w,layout:x,height:_,width:k,left:A,top:P,needClip:g}))}function BB(e){var t=e.layout,r=e.xAxis,n=e.yAxis,a=e.xAxisTicks,i=e.yAxisTicks,o=e.dataKey,l=e.bandSize,s=e.displayedData;return s.map((u,c)=>{var d=Xe(u,o);if(t==="horizontal"){var f=wd({axis:r,ticks:a,bandSize:l,entry:u,index:c}),p=st(d)?null:n.scale.map(d);return{x:f,y:p??null,value:d,payload:u}}var m=st(d)?null:r.scale.map(d),y=wd({axis:n,ticks:i,bandSize:l,entry:u,index:c});return m==null||y==null?null:{x:m,y,value:d,payload:u}}).filter(Boolean)}function uae(e){var t=it(e,$C),r=Ct();return wt.createElement(ls,{id:t.id,type:"line"},n=>wt.createElement(wt.Fragment,null,wt.createElement(yf,{legendPayload:eae(t)}),wt.createElement(tae,{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}),wt.createElement(bf,{type:"line",id:n,data:t.data,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,hide:t.hide,isPanorama:r}),wt.createElement(sae,Gb({},t,{id:n}))))}var Xb=wt.memo(uae,Qn);Xb.displayName="Line";var gt=re(ne()),Lu=re(ne());function ti(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(a=>a.id===t))===null||n===void 0?void 0:n.xAxisId)!==null&&r!==void 0?r:TC}function ri(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(a=>a.id===t))===null||n===void 0?void 0:n.yAxisId)!==null&&r!==void 0?r:TC}var UB=(e,t,r)=>Ca(e,"xAxis",ti(e,t),r),FB=(e,t,r)=>Na(e,"xAxis",ti(e,t),r),WB=(e,t,r)=>Ca(e,"yAxis",ri(e,t),r),HB=(e,t,r)=>Na(e,"yAxis",ri(e,t),r),cae=Z([Ke,UB,WB,FB,HB],(e,t,r,n,a)=>hn(e,"xAxis")?Ka(t,n,!1):Ka(r,a,!1)),dae=(e,t)=>t,UC=Z([Yl,dae],(e,t)=>e.filter(r=>r.type==="area").find(r=>r.id===t)),VB=e=>{var t=Ke(e),r=hn(t,"xAxis");return r?"yAxis":"xAxis"},fae=(e,t)=>{var r=VB(e);return r==="yAxis"?ri(e,t):ti(e,t)},KB=(e,t,r)=>ef(e,VB(e),fae(e,t),r),pae=Z([UC,KB],(e,t)=>{var r;if(!(e==null||t==null)){var n=e.stackId,a=Ul(e);if(!(n==null||a==null)){var i=(r=t[n])===null||r===void 0?void 0:r.stackedData,o=i?.find(l=>l.key===a);if(o!=null)return o.map(l=>[l[0],l[1]])}}}),mae=Z([UC,KB],(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(Vr)}}),qB=Z([Ke,UB,WB,FB,HB,pae,j0,cae,UC,Q8,mae],(e,t,r,n,a,i,o,l,s,u,c)=>{var d=o.chartData,f=o.dataStartIndex,p=o.dataEndIndex;if(!(s==null||e!=="horizontal"&&e!=="vertical"||t==null||r==null||n==null||a==null||n.length===0||a.length===0||l==null)){var m=s.data,y;if(m&&m.length>0?y=m:y=d?.slice(f,p+1),y!=null)return YB({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:a,dataStartIndex:f,areaSettings:s,stackedData:i,displayedData:y,chartBaseValue:u,bandSize:l,stackDataKeys:c})}});var An=re(ne());var vae=["animationElapsedTime","isAnimating","isEntrance","layout","isRange","stroke","connectNulls"],gae=["id","baseLine"];function _v(){return _v=Object.assign?Object.assign.bind():function(e){for(var t=1;td.y||0));return he(a)?c=Math.max(a,c):a&&Array.isArray(a)&&a.length&&(c=Math.max(...a.map(d=>d.y||0),c)),he(c)?An.createElement("rect",{x:ld.x||0));return he(a)?c=Math.max(a,c):a&&Array.isArray(a)&&a.length&&(c=Math.max(...a.map(d=>d.x||0),c)),he(c)?An.createElement("rect",{x:0,y:le==null?[]:t===1?e.flatMap(r=>r.status==="removed"?[]:[r.next]):e.flatMap(r=>r.status==="matched"?[kf(kf({},r.next),{},{x:kt(r.prev.x,r.next.x,t),y:kt(r.prev.y,r.next.y,t)})]:r.status==="added"?[r.next]:[]),JB={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",animationMatchBy:Tu,animationInterpolateFn:Eae,connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,shape:XB,xAxisId:0,yAxisId:0,zIndex:ut.area};function Qb(e,t){return e&&e!=="none"?e:t}var _ae=e=>{var t=e.dataKey,r=e.name,n=e.stroke,a=e.fill,i=e.legendType,o=e.hide;return[{inactive:o,dataKey:t,type:i,color:Qb(n,a),value:xa(r,t),payload:e}]},Oae=gt.memo(e=>{var t=e.dataKey,r=e.data,n=e.stroke,a=e.strokeWidth,i=e.fill,o=e.name,l=e.hide,s=e.unit,u=e.formatter,c=e.tooltipType,d=e.id,f={dataDefinedOnItem:r,getPosition:Tn,settings:{stroke:n,strokeWidth:a,fill:i,dataKey:t,nameKey:void 0,name:xa(o,t),hide:l,type:c,color:Qb(n,i),unit:s,formatter:u,graphicalItemId:d}};return gt.createElement(ns,{tooltipEntrySettings:f})});function Tae(e){var t=e.clipPathId,r=e.points,n=e.props,a=n.needClip,i=n.dot,o=n.dataKey,l=er(n);return gt.createElement(Bb,{points:r,dot:i,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:o,baseProps:l,needClip:a,clipPathId:t})}function Mae(e){var t=e.showLabels,r=e.children,n=e.points,a=n.map(i=>{var o,l,s={x:(o=i.x)!==null&&o!==void 0?o:0,y:(l=i.y)!==null&&l!==void 0?l:0,width:0,lowerWidth:0,upperWidth:0,height:0};return kf(kf({},s),{},{value:i.value,payload:i.payload,parentViewBox:void 0,viewBox:s,fill:void 0})});return gt.createElement(mf,{value:t?a:void 0},r)}function Pae(e){var t=e.points,r=e.baseLine,n=e.needClip,a=e.clipPathId,i=e.props,o=e.animationElapsedTime,l=e.isAnimating,s=e.isEntrance,u=i.layout,c=i.type,d=i.stroke,f=i.connectNulls,p=i.isRange,m=i.shape,y=i.id,h=QB(i,wae),v=tr(h),g=kf(kf({},v),{},{id:y,points:t,connectNulls:f,type:c,baseLine:r,layout:u,stroke:d,isRange:p,animationElapsedTime:o,isAnimating:l,isEntrance:s});return gt.createElement(gt.Fragment,null,t?.length>1&>.createElement(xt,{clipPath:n?"url(#clipPath-".concat(a,")"):void 0},gt.createElement(rs,{option:m,DefaultShape:JB.shape,shapeProps:g})),gt.createElement(Tae,{points:t,props:h,clipPathId:a}))}function Dae(e,t,r){if(he(e)){var n=he(t)?t:void 0;return kt(n,e,r)}if(st(e)||en(e)){var a=he(t)?t:void 0;return kt(a,0,r)}return e}function Iae(e){var t=e.needClip,r=e.clipPathId,n=e.props,a=e.previousPointsRef,i=e.previousBaselineRef,o=n.points,l=n.baseLine,s=n.isAnimationActive,u=n.animationBegin,c=n.animationDuration,d=n.animationEasing,f=n.animationMatchBy,p=n.animationInterpolateFn,m=(0,Lu.useMemo)(()=>({points:o,baseLine:l}),[o,l]),y=Mb(m,i),h=Td(),v=is(n.onAnimationStart,n.onAnimationEnd),g=v.isAnimating,b=v.handleAnimationStart,x=v.handleAnimationEnd,S=y.startValue;if(h==null)return null;var w;return Array.isArray(l)&&Array.isArray(S)?w=gv(S,l,f):Array.isArray(l)?w=gv(null,l,f):w=null,gt.createElement(os,{animationInput:m,animationIdPrefix:"recharts-area-",items:o,previousItemsRef:a,isAnimationActive:s,animationBegin:u,animationDuration:c,animationEasing:d,onAnimationStart:b,onAnimationEnd:x,animationInterpolateFn:p,animationMatchBy:f,layout:h},(_,k,A)=>{var P;return k===1?P=l:Array.isArray(l)?P=p(w,k,h):P=A?l:Dae(l,S,k),y.syncStepValue(P,k),gt.createElement(Mae,{showLabels:!g,points:o},n.children,gt.createElement(Pae,{points:_,baseLine:P,needClip:t,clipPathId:r,props:n,animationElapsedTime:k,isAnimating:g||k<1,isEntrance:A}),gt.createElement(ts,{label:n.label}))})}function jae(e){var t=e.needClip,r=e.clipPathId,n=e.props,a=(0,Lu.useRef)(null),i=(0,Lu.useRef)();return gt.createElement(Iae,{needClip:t,clipPathId:r,props:n,previousPointsRef:a,previousBaselineRef:i})}var FC=class extends Lu.PureComponent{render(){var t=this.props,r=t.hide,n=t.dot,a=t.points,i=t.className,o=t.top,l=t.left,s=t.needClip,u=t.xAxisId,c=t.yAxisId,d=t.width,f=t.height,p=t.id,m=t.baseLine,y=t.zIndex;if(r)return null;var h=Ue("recharts-area",i),v=p,g=Yb(n),b=g.r,x=g.strokeWidth,S=vf(n),w=b*2+x,_=s?"url(#clipPath-".concat(S?"":"dots-").concat(v,")"):void 0;return gt.createElement(qt,{zIndex:y},gt.createElement(xt,{className:h},s&>.createElement("defs",null,gt.createElement(Af,{clipPathId:v,xAxisId:u,yAxisId:c}),!S&>.createElement("clipPath",{id:"clipPath-dots-".concat(v)},gt.createElement("rect",{x:l-w/2,y:o-w/2,width:d+w,height:f+w}))),gt.createElement(jae,{needClip:s,clipPathId:v,props:this.props})),gt.createElement(bv,{points:a,mainColor:Qb(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:_}),this.props.isRange&&Array.isArray(m)&>.createElement(bv,{points:m,mainColor:Qb(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:_}))}};function zae(e){var t,r=e.activeDot,n=e.animationBegin,a=e.animationDuration,i=e.animationEasing,o=e.connectNulls,l=e.dot,s=e.fill,u=e.fillOpacity,c=e.hide,d=e.isAnimationActive,f=e.legendType,p=e.stroke,m=e.xAxisId,y=e.yAxisId,h=QB(e,Sae),v=Zn(),g=tb(),b=zu(m,y),x=b.needClip,S=Ct(),w=(t=xe(F=>qB(F,e.id,S)))!==null&&t!==void 0?t:{},_=w.points,k=w.isRange,A=w.baseLine,P=ss();if(v!=="horizontal"&&v!=="vertical"||P==null||g!=="AreaChart"&&g!=="ComposedChart")return null;var K=P.height,z=P.width,Q=P.x,M=P.y;return!_||!_.length?null:gt.createElement(FC,Zb({},h,{activeDot:r,animationBegin:n,animationDuration:a,animationEasing:i,baseLine:A,connectNulls:o,dot:l,fill:s,fillOpacity:u,height:K,hide:c,layout:v,isAnimationActive:d,isRange:k,legendType:f,needClip:x,points:_,stroke:p,width:z,left:Q,top:M,xAxisId:m,yAxisId:y}))}var Lae=(e,t,r,n,a)=>{var i=r??t;if(he(i))return i;var o=e==="horizontal"?a:n,l=o.scale.domain();if(o.type==="number"){var s=Math.max(l[0],l[1]),u=Math.min(l[0],l[1]);return i==="dataMin"?u:i==="dataMax"||s<0?s:Math.max(Math.min(l[0],l[1]),0)}return i==="dataMin"?l[0]:i==="dataMax"?l[1]:l[0]};function YB(e){var t=e.areaSettings,r=t.connectNulls,n=t.baseValue,a=t.dataKey,i=e.stackedData,o=e.layout,l=e.chartBaseValue,s=e.xAxis,u=e.yAxis,c=e.displayedData,d=e.dataStartIndex,f=e.xAxisTicks,p=e.yAxisTicks,m=e.bandSize,y=e.stackDataKeys,h=i&&i.length,v=Lae(o,l,n,s,u),g=o==="horizontal",b=!1,x=c.map((w,_)=>{var k,A,P,K;if(h)K=i[d+_];else{var z=Xe(w,a);Array.isArray(z)?(K=z,b=!0):K=[v,z]}var Q=(k=(A=K)===null||A===void 0?void 0:A[1])!==null&&k!==void 0?k:null,M=Xe(w,a),F=h&&M==null&&y!=null&&y.length>0&&y.every(I=>Xe(w,I)==null),N=Q==null||h&&!r&&M==null||F;if(g){var O;return{x:wd({axis:s,ticks:f,bandSize:m,entry:w,index:_}),y:N?null:(O=u.scale.map(Q))!==null&&O!==void 0?O:null,value:K,payload:w}}return{x:N?null:(P=s.scale.map(Q))!==null&&P!==void 0?P:null,y:wd({axis:u,ticks:p,bandSize:m,entry:w,index:_}),value:K,payload:w}}),S;return h||b?S=x.map(w=>{var _,k=Array.isArray(w.value)?w.value[0]:null;if(g){var A;return{x:w.x,y:k!=null&&w.y!=null&&(A=u.scale.map(k))!==null&&A!==void 0?A:null,payload:w.payload}}return{x:k!=null&&(_=s.scale.map(k))!==null&&_!==void 0?_:null,y:w.y,payload:w.payload}}):S=g?u.scale.map(v):s.scale.map(v),{points:x,baseLine:S??0,isRange:b}}function Bae(e){var t=it(e,JB),r=Ct();return gt.createElement(ls,{id:t.id,type:"area"},n=>gt.createElement(gt.Fragment,null,gt.createElement(yf,{legendPayload:_ae(t)}),gt.createElement(Oae,{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}),gt.createElement(bf,{type:"area",id:n,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:o0(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:r,connectNulls:t.connectNulls}),gt.createElement(zae,Zb({},t,{id:n}))))}var qo=gt.memo(Bae,Qn);qo.displayName="Area";var nt=re(ne()),Ai=re(ne());var e9=re(ne());var $ae=!0,WC="Invariant failed";function RB(e,t){if(!e){if($ae)throw new Error(WC);var r=typeof t=="function"?t():t,n=r?"".concat(WC,": ").concat(r):WC;throw new Error(n)}}var Uae=["option"];function Fae(e,t){if(e==null)return{};var r,n,a=Wae(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n1&&arguments[1]!==void 0?arguments[1]:0;return(n,a)=>{if(he(t))return t;var i=he(n)||st(n);return i?t(n,a):(i||RB(!1,"minPointSize callback function received a value with type of ".concat(typeof n,". Currently only numbers or null/undefined are supported.")),r)}};var Hae=(e,t,r)=>r,Vae=(e,t)=>t,Ov=Z([Yl,Vae],(e,t)=>e.filter(r=>r.type==="bar").find(r=>r.id===t)),Kae=Z([Ov],e=>e?.maxBarSize),qae=(e,t,r,n)=>n,Yae=Z([Ke,Yl,ti,ri,Hae],(e,t,r,n,a)=>t.filter(i=>e==="horizontal"?i.xAxisId===r:i.yAxisId===n).filter(i=>i.isPanorama===a).filter(i=>i.hide===!1).filter(i=>i.type==="bar")),Gae=(e,t,r)=>{var n=Ke(e),a=ti(e,t),i=ri(e,t);if(!(a==null||i==null))return n==="horizontal"?ef(e,"yAxis",i,r):ef(e,"xAxis",a,r)},Xae=(e,t)=>{var r=Ke(e),n=ti(e,t),a=ri(e,t);if(!(n==null||a==null))return r==="horizontal"?VN(e,"xAxis",n):VN(e,"yAxis",a)},Zae=Z([Yae,Z8,Xae],WL),Qae=(e,t,r)=>{var n,a,i=Ov(e,t);if(i==null)return 0;var o=ti(e,t),l=ri(e,t);if(o==null||l==null)return 0;var s=Ke(e),u=Dk(e),c=i.maxBarSize,d=st(c)?u:c,f,p;return s==="horizontal"?(f=Ca(e,"xAxis",o,r),p=Na(e,"xAxis",o,r)):(f=Ca(e,"yAxis",l,r),p=Na(e,"yAxis",l,r)),(n=(a=Ka(f,p,!0))!==null&&a!==void 0?a:d)!==null&&n!==void 0?n:0},r9=(e,t,r)=>{var n=Ke(e),a=ti(e,t),i=ri(e,t);if(!(a==null||i==null)){var o,l;return n==="horizontal"?(o=Ca(e,"xAxis",a,r),l=Na(e,"xAxis",a,r)):(o=Ca(e,"yAxis",i,r),l=Na(e,"yAxis",i,r)),Ka(o,l)}},Jae=Z([Zae,Dk,X8,U0,Qae,r9,Kae],VL),Rae=(e,t,r)=>{var n=ti(e,t);if(n!=null)return Ca(e,"xAxis",n,r)},eie=(e,t,r)=>{var n=ri(e,t);if(n!=null)return Ca(e,"yAxis",n,r)},tie=(e,t,r)=>{var n=ti(e,t);if(n!=null)return Na(e,"xAxis",n,r)},rie=(e,t,r)=>{var n=ri(e,t);if(n!=null)return Na(e,"yAxis",n,r)},nie=Z([Jae,Ov],qL),aie=Z([Gae,Ov],KL),n9=Z([It,Nd,Rae,eie,tie,rie,nie,Ke,j0,r9,aie,Ov,qae],(e,t,r,n,a,i,o,l,s,u,c,d,f)=>{var p=s.chartData,m=s.dataStartIndex,y=s.dataEndIndex;if(!(d==null||o==null||t==null||l!=="horizontal"&&l!=="vertical"||r==null||n==null||a==null||i==null||u==null)){var h=d.data,v;if(h!=null&&h.length>0?v=h:v=p?.slice(m,y+1),v!=null)return a9({layout:l,barSettings:d,pos:o,parentViewBox:t,bandSize:u,xAxis:r,yAxis:n,xAxisTicks:a,yAxisTicks:i,stackedData:c,displayedData:v,offset:e,cells:f,dataStartIndex:m})}});var VC=re(ne()),Nf=re(ne());var iie=["index"];function HC(){return HC=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=(0,Nf.useContext)(i9);if(t!=null)return t.stackId;if(e!=null)return o0(e)};var sie=(e,t)=>"recharts-bar-stack-clip-path-".concat(e,"-").concat(t),uie=e=>{var t=(0,Nf.useContext)(i9);if(t!=null){var r=t.stackId;return"url(#".concat(sie(r,e),")")}},KC=e=>{var t=e.index,r=oie(e,iie),n=uie(t);return VC.createElement(xt,HC({className:"recharts-bar-stack-layer",clipPath:n},r))};var cie=["onMouseEnter","onMouseLeave","onClick"],die=["value","background","tooltipPosition"],fie=["id"],pie=["onMouseEnter","onClick","onMouseLeave"];function l9(e,t){return yie(e)||gie(e,t)||vie(e,t)||mie()}function mie(){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 vie(e,t){if(e){if(typeof e=="string")return s9(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)?s9(e,t):void 0}}function s9(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,a=e.legendType,i=e.hide;return[{inactive:i,dataKey:t,type:a,color:n,value:xa(r,t),payload:e}]},Aie=nt.memo(e=>{var t=e.dataKey,r=e.stroke,n=e.strokeWidth,a=e.fill,i=e.name,o=e.hide,l=e.unit,s=e.formatter,u=e.tooltipType,c=e.id,d={dataDefinedOnItem:void 0,getPosition:Tn,settings:{stroke:r,strokeWidth:n,fill:a,dataKey:t,nameKey:void 0,name:xa(i,t),hide:o,type:u,color:a,unit:l,formatter:s,graphicalItemId:c}};return nt.createElement(ns,{tooltipEntrySettings:d})});function kie(e){var t=xe(Qa),r=e.data,n=e.dataKey,a=e.background,i=e.allOtherBarProps,o=i.onMouseEnter,l=i.onMouseLeave,s=i.onClick,u=e1(i,cie),c=dv(o,n,i.id),d=fv(l),f=pv(s,n,i.id);if(!a||r==null)return null;var p=ma(a);return nt.createElement(qt,{zIndex:YL(a,ut.barBackground)},r.map((m,y)=>{var h=m.value,v=m.background,g=m.tooltipPosition,b=e1(m,die);if(!v)return null;var x=c(m,m.originalDataIndex),S=d(m,m.originalDataIndex),w=f(m,m.originalDataIndex),_=Yr(Yr(Yr(Yr(Yr({option:a,isActive:String(m.originalDataIndex)===t},b),{},{fill:"#eee"},v),p),No(u,m,y)),{},{onMouseEnter:x,onMouseLeave:S,onClick:w,dataKey:n,index:y,className:"recharts-bar-background-rectangle"});return nt.createElement(Rb,us({key:"background-bar-".concat(y)},_))}))}function Nie(e){var t=e.showLabels,r=e.children,n=e.rects,a=n?.map(i=>{var o={x:i.x,y:i.y,width:i.width,lowerWidth:i.width,upperWidth:i.width,height:i.height};return Yr(Yr({},o),{},{value:i.value,payload:i.payload,parentViewBox:i.parentViewBox,viewBox:o,fill:i.fill})});return nt.createElement(mf,{value:t?a:void 0},r)}function Cie(e){var t=e.shape,r=e.activeBar,n=e.baseProps,a=e.entry,i=e.index,o=e.dataKey,l=xe(Qa),s=xe(af),u=r&&String(a.originalDataIndex)===l&&(s==null||o===s),c=l!=null&&(String(a.originalDataIndex)!==l||s!=null&&o!==s),d=(0,Ai.useState)(!1),f=l9(d,2),p=f[0],m=f[1],y=(0,Ai.useState)(!1),h=l9(y,2),v=h[0],g=h[1];(0,Ai.useEffect)(()=>{var k;return u?(m(!0),k=requestAnimationFrame(()=>{g(!0)})):(g(!1),c&&m(!1)),()=>{cancelAnimationFrame(k)}},[u,c]);var b=(0,Ai.useCallback)(()=>{u||m(!1)},[u]),x=u&&v,S=u||p,w;u?r===!0?w=t:w=r:w=t;var _=nt.createElement(Rb,us({},n,{name:String(n.name)},a,{isActive:x,option:w,index:i,dataKey:o,animationElapsedTime:e.animationElapsedTime,isAnimating:e.isAnimating,isEntrance:e.isEntrance,onTransitionEnd:b}));return S?nt.createElement(qt,{zIndex:ut.activeBar},nt.createElement(KC,{index:a.originalDataIndex},_)):_}function Eie(e){var t=e.shape,r=e.baseProps,n=e.entry,a=e.index,i=e.dataKey;return nt.createElement(Rb,us({},r,{name:String(r.name)},n,{isActive:!1,option:t,index:a,dataKey:i,animationElapsedTime:e.animationElapsedTime,isAnimating:e.isAnimating,isEntrance:e.isEntrance}))}function _ie(e){var t,r=e.data,n=e.props,a=e.animationElapsedTime,i=e.isAnimating,o=e.isEntrance,l=(t=er(n))!==null&&t!==void 0?t:{},s=l.id,u=e1(l,fie),c=n.shape,d=n.dataKey,f=n.activeBar,p=n.onMouseEnter,m=n.onClick,y=n.onMouseLeave,h=e1(n,pie),v=dv(p,d,s),g=fv(y),b=pv(m,d,s);return r?nt.createElement(nt.Fragment,null,r.map((x,S)=>nt.createElement(KC,us({index:x.originalDataIndex,key:"rectangle-".concat(x?.x,"-").concat(x?.y,"-").concat(x?.value,"-").concat(S),className:"recharts-bar-rectangle"},No(h,x,S),{onMouseEnter:v(x,x.originalDataIndex),onMouseLeave:g(x,x.originalDataIndex),onClick:b(x,x.originalDataIndex)}),f?nt.createElement(Cie,{shape:c,activeBar:f,baseProps:u,entry:x,index:S,dataKey:d,animationElapsedTime:a,isAnimating:i,isEntrance:o}):nt.createElement(Eie,{shape:c,baseProps:u,entry:x,index:S,dataKey:d,animationElapsedTime:a,isAnimating:i,isEntrance:o})))):null}var Oie=(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"?[Yr(Yr({},n.prev),{},{height:kt(n.prev.height,0,t),y:kt(n.prev.y,n.prev.y+n.prev.height,t)})]:[Yr(Yr({},n.prev),{},{width:kt(n.prev.width,0,t)})];if(n.status==="matched")return[Yr(Yr({},n.next),{},{x:kt(n.prev.x,n.next.x,t),y:kt(n.prev.y,n.next.y,t),width:kt(n.prev.width,n.next.width,t),height:kt(n.prev.height,n.next.height,t)})];var a=n.next;return r==="horizontal"?[Yr(Yr({},a),{},{height:kt(0,a.height,t),y:kt(a.stackedBarStart,a.y,t)})]:[Yr(Yr({},a),{},{width:kt(0,a.width,t),x:kt(a.stackedBarStart,a.x,t)})]});function Tie(e){var t=e.props,r=e.previousRectanglesRef,n=t.data,a=t.isAnimationActive,i=t.animationBegin,o=t.animationDuration,l=t.animationEasing,s=t.animationInterpolateFn,u=t.layout,c=is(t.onAnimationStart,t.onAnimationEnd),d=c.isAnimating,f=c.handleAnimationStart,p=c.handleAnimationEnd;return nt.createElement(Nie,{showLabels:!d,rects:n},nt.createElement(os,{animationInput:n,animationIdPrefix:"recharts-bar-",items:n,previousItemsRef:r,isAnimationActive:a,animationBegin:i,animationDuration:o,animationEasing:l,onAnimationStart:f,onAnimationEnd:p,animationInterpolateFn:s,animationMatchBy:t.animationMatchBy,layout:u},(m,y,h)=>nt.createElement(xt,null,nt.createElement(_ie,{props:t,data:m,animationElapsedTime:y,isAnimating:d||y<1,isEntrance:h}))),nt.createElement(ts,{label:t.label}),t.children)}function Mie(e){var t=(0,Ai.useRef)(null);return nt.createElement(Tie,{previousRectanglesRef:t,props:e})}var c9=0,Pie=(e,t)=>{var r=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:r,errorVal:Xe(e,t)}},qC=class extends Ai.PureComponent{render(){var t=this.props,r=t.hide,n=t.data,a=t.dataKey,i=t.className,o=t.xAxisId,l=t.yAxisId,s=t.needClip,u=t.background,c=t.id;if(r||n==null)return null;var d=Ue("recharts-bar",i),f=c;return nt.createElement(xt,{className:d,id:c},s&&nt.createElement("defs",null,nt.createElement(Af,{clipPathId:f,xAxisId:o,yAxisId:l})),nt.createElement(xt,{className:"recharts-bar-rectangles",clipPath:s?"url(#clipPath-".concat(f,")"):void 0},nt.createElement(kie,{data:n,dataKey:a,background:u,allOtherBarProps:this.props}),nt.createElement(Mie,this.props)))}},Die={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:"ease",animationInterpolateFn:Oie,animationMatchBy:vv,background:!1,hide:!1,isAnimationActive:"auto",label:!1,legendType:"rect",minPointSize:c9,shape:Jb,xAxisId:0,yAxisId:0,zIndex:ut.bar};function Iie(e){var t=e.xAxisId,r=e.yAxisId,n=e.hide,a=e.legendType,i=e.minPointSize,o=e.activeBar,l=e.animationBegin,s=e.animationDuration,u=e.animationEasing,c=e.isAnimationActive,d=zu(t,r),f=d.needClip,p=Zn(),m=Ct(),y=uv(e.children,Uo),h=xe(b=>n9(b,e.id,m,y));if(p!=="vertical"&&p!=="horizontal")return null;var v,g=h?.[0];return g==null||g.height==null||g.width==null?v=0:v=p==="vertical"?g.height/2:g.width/2,nt.createElement(qb,{xAxisId:t,yAxisId:r,data:h,dataPointFormatter:Pie,errorBarOffset:v},nt.createElement(qC,us({},e,{layout:p,needClip:f,data:h,xAxisId:t,yAxisId:r,hide:n,legendType:a,minPointSize:i,activeBar:o,animationBegin:l,animationDuration:s,animationEasing:u,isAnimationActive:c})))}function a9(e){var t=e.layout,r=e.barSettings,n=r.dataKey,a=r.minPointSize,i=r.hasCustomShape,o=e.pos,l=e.bandSize,s=e.xAxis,u=e.yAxis,c=e.xAxisTicks,d=e.yAxisTicks,f=e.stackedData,p=e.displayedData,m=e.offset,y=e.cells,h=e.parentViewBox,v=e.dataStartIndex,g=t==="horizontal"?u:s,b=f?g.scale.domain():null,x=GP({numericAxis:g}),S=g.scale.map(x);return p.map((w,_)=>{var k,A,P,K,z,Q;if(f){var M=f[_+v];if(M==null)return null;k=qP(M,b)}else k=Xe(w,n),Array.isArray(k)||(k=[x,k]);var F=t9(a,c9)(k[1],_);if(t==="horizontal"){var N,O=u.scale.map(k[0]),I=u.scale.map(k[1]);if(O==null||I==null)return null;A=sk({axis:s,ticks:c,bandSize:l,offset:o.offset,entry:w,index:_}),P=(N=I??O)!==null&&N!==void 0?N:void 0,K=o.size;var D=O-I;if(z=en(D)?0:D,Q={x:A,y:m.top,width:K,height:m.height},Math.abs(F)>0&&Math.abs(z)0&&Math.abs(K)nt.createElement(nt.Fragment,null,nt.createElement(yf,{legendPayload:Sie(t)}),nt.createElement(Aie,{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:a}),nt.createElement(bf,{type:"bar",id:a,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!==Jb}),nt.createElement(qt,{zIndex:t.zIndex},nt.createElement(Iie,us({},t,{id:a})))))}var t1=nt.memo(jie,Qn);t1.displayName="Bar";var Yo=re(ne()),ni=re(ne());var zie=["domain","range"],Lie=["domain","range"];function d9(e,t){if(e==null)return{};var r,n,a=Bie(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n{if(o!=null)return m9(m9({},i),{},{type:o})},[i,o]);return(0,ni.useLayoutEffect)(()=>{l!=null&&(r.current===null?t(EL(l)):r.current!==l&&t(_L({prev:r.current,next:l})),r.current=l)},[l,t]),(0,ni.useLayoutEffect)(()=>()=>{r.current&&(t(OL(r.current)),r.current=null)},[t]),null}var Yie=e=>{var t=e.xAxisId,r=e.className,n=e.height,a=e.label,i=(0,ni.useRef)(null),o=(0,ni.useRef)(null),l=xe(Nd),s=Ct(),u=He(),c="xAxis",d=xe(w=>Wx(w,c,t,s)),f=xe(w=>WN(w,t)),p=xe(w=>$I(w,t)),m=xe(w=>xN(w,t));if((0,ni.useLayoutEffect)(()=>{if(!(n!=="auto"||!f||Ou(a)||(0,ni.isValidElement)(a)||m==null)){var w=i.current;if(w){var _=w.getCalculatedHeight();Math.round(f.height)!==Math.round(_)&&u(IL({id:t,height:_}))}}},[d,f,u,a,t,n,m]),f==null||p==null||m==null)return null;var y=e.dangerouslySetInnerHTML,h=e.ticks,v=e.scale,g=GC(e,Uie),b=m.id,x=m.scale,S=GC(m,Fie);return Yo.createElement(Cv,YC({},g,S,{ref:i,labelRef:o,x:p.x,y:p.y,width:f.width,height:f.height,className:Ue("recharts-".concat(c," ").concat(c),r),viewBox:l,ticks:d,axisType:c,axisId:t}))},Gie={allowDataOverflow:_r.allowDataOverflow,allowDecimals:_r.allowDecimals,allowDuplicatedCategory:_r.allowDuplicatedCategory,angle:_r.angle,axisLine:ei.axisLine,height:_r.height,hide:!1,includeHidden:_r.includeHidden,interval:_r.interval,label:!1,minTickGap:_r.minTickGap,mirror:_r.mirror,orientation:_r.orientation,padding:_r.padding,reversed:_r.reversed,scale:_r.scale,tick:_r.tick,tickCount:_r.tickCount,tickLine:ei.tickLine,tickSize:ei.tickSize,type:_r.type,niceTicks:_r.niceTicks,xAxisId:0},Xie=e=>{var t=it(e,Gie);return Yo.createElement(Yo.Fragment,null,Yo.createElement(qie,{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}),Yo.createElement(Yie,t))},Go=Yo.memo(Xie,r1);Go.displayName="XAxis";var Xo=re(ne()),ai=re(ne());var Zie=["type"],Qie=["dangerouslySetInnerHTML","ticks","scale"],Jie=["id","scale"];function XC(){return XC=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(o!=null)return g9(g9({},i),{},{type:o})},[o,i]);return(0,ai.useLayoutEffect)(()=>{l!=null&&(r.current===null?t(TL(l)):r.current!==l&&t(ML({prev:r.current,next:l})),r.current=l)},[l,t]),(0,ai.useLayoutEffect)(()=>()=>{r.current&&(t(PL(r.current)),r.current=null)},[t]),null}function aoe(e){var t=e.yAxisId,r=e.className,n=e.width,a=e.label,i=(0,ai.useRef)(null),o=(0,ai.useRef)(null),l=xe(Nd),s=Ct(),u=He(),c="yAxis",d=xe(w=>HN(w,t)),f=xe(w=>UI(w,t)),p=xe(w=>Wx(w,c,t,s)),m=xe(w=>bN(w,t));if((0,ai.useLayoutEffect)(()=>{if(!(n!=="auto"||!d||Ou(a)||(0,ai.isValidElement)(a)||m==null)){var w=i.current;if(w){var _=w.getCalculatedWidth();Math.round(d.width)!==Math.round(_)&&u(DL({id:t,width:_}))}}},[p,d,u,a,t,n,m]),d==null||f==null||m==null)return null;var y=e.dangerouslySetInnerHTML,h=e.ticks,v=e.scale,g=ZC(e,Qie),b=m.id,x=m.scale,S=ZC(m,Jie);return Xo.createElement(Cv,XC({},g,S,{ref:i,labelRef:o,x:f.x,y:f.y,tickTextProps:n==="auto"?{width:void 0}:{width:n},width:d.width,height:d.height,className:Ue("recharts-".concat(c," ").concat(c),r),viewBox:l,ticks:p,axisType:c,axisId:t}))}var ioe={allowDataOverflow:Or.allowDataOverflow,allowDecimals:Or.allowDecimals,allowDuplicatedCategory:Or.allowDuplicatedCategory,angle:Or.angle,axisLine:ei.axisLine,hide:!1,includeHidden:Or.includeHidden,interval:Or.interval,label:!1,minTickGap:Or.minTickGap,mirror:Or.mirror,orientation:Or.orientation,padding:Or.padding,reversed:Or.reversed,scale:Or.scale,tick:Or.tick,tickCount:Or.tickCount,tickLine:ei.tickLine,tickSize:ei.tickSize,type:Or.type,niceTicks:Or.niceTicks,width:Or.width,yAxisId:0},ooe=e=>{var t=it(e,ioe);return Xo.createElement(Xo.Fragment,null,Xo.createElement(noe,{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}),Xo.createElement(aoe,t))},Zo=Xo.memo(ooe,r1);Zo.displayName="YAxis";var H9=re(ne()),V9=re(ne());var Hu=re(ne()),W9=re(ne());var M9=re(ne()),P9=re(ne());var loe=(e,t)=>t,Tv=Z([loe,Ke,G0,Er,RN,ea,hj,It],kj);function soe(e){return"getBBox"in e.currentTarget&&typeof e.currentTarget.getBBox=="function"}function Mv(e){var t=e.currentTarget.getBoundingClientRect(),r,n;if(soe(e)){var a=e.currentTarget.getBBox();r=a.width>0?t.width/a.width:1,n=a.height>0?t.height/a.height:1}else{var i=e.currentTarget;r=i.offsetWidth>0?t.width/i.offsetWidth:1,n=i.offsetHeight>0?t.height/i.offsetHeight:1}var o=(l,s)=>({relativeX:Math.round((l-t.left)/r),relativeY:Math.round((s-t.top)/n)});return"touches"in e?Array.from(e.touches).map(l=>o(l.clientX,l.clientY)):o(e.clientX,e.clientY)}var JC=Lr("mouseClick"),RC=To();RC.startListening({actionCreator:JC,effect:(e,t)=>{var r=e.payload,n=Tv(t.getState(),Mv(r));n?.activeIndex!=null&&t.dispatch(QI({activeIndex:n.activeIndex,activeDataKey:void 0,activeCoordinate:n.activeCoordinate}))}});var n1=Lr("mouseMove"),eE=To(),Cf=null,Bu=null,QC=null;eE.startListening({actionCreator:n1,effect:(e,t)=>{var r=e.payload,n=t.getState(),a=n.eventSettings,i=a.throttleDelay,o=a.throttledEvents,l=o==="all"||o?.includes("mousemove");Cf!==null&&(cancelAnimationFrame(Cf),Cf=null),Bu!==null&&(typeof i!="number"||!l)&&(clearTimeout(Bu),Bu=null),QC=Mv(r);var s=()=>{var u=t.getState(),c=Gl(u,u.tooltip.settings.shared);if(!QC){Cf=null,Bu=null;return}if(c==="axis"){var d=Tv(u,QC);d?.activeIndex!=null?t.dispatch(qx({activeIndex:d.activeIndex,activeDataKey:void 0,activeCoordinate:d.activeCoordinate})):t.dispatch(Kx())}Cf=null,Bu=null};if(!l){s();return}i==="raf"?Cf=requestAnimationFrame(s):typeof i=="number"&&Bu===null&&(Bu=setTimeout(s,i))}});function y9(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 h9={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},x9=Nt({name:"rootProps",initialState:h9,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:h9.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}}}),b9=x9.reducer,w9=x9.actions.updateOptions;var uoe=null,coe={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)},S9=Nt({name:"polarOptions",initialState:uoe,reducers:coe}),A9=S9.actions.updatePolarOptions;var k9=S9.reducer;var tE=Lr("keyDown"),rE=Lr("focus"),nE=Lr("blur"),Pv=To(),Ef=null,$u=null,a1=null;Pv.startListening({actionCreator:tE,effect:(e,t)=>{a1=e.payload,Ef!==null&&(cancelAnimationFrame(Ef),Ef=null);var r=t.getState(),n=r.eventSettings,a=n.throttleDelay,i=n.throttledEvents,o=i==="all"||i.includes("keydown");$u!==null&&(typeof a!="number"||!o)&&(clearTimeout($u),$u=null);var l=()=>{try{var s=t.getState(),u=s.rootProps.accessibilityLayer!==!1;if(!u)return;var c=s.tooltip.keyboardInteraction,d=a1;if(d!=="ArrowRight"&&d!=="ArrowLeft"&&d!=="Enter")return;var f=Xl(c,$o(s),jo(s),Ql(s)),p=f==null?-1:Number(f),m=!Number.isFinite(p)||p<0,y=ea(s),h=$o(s),v=Gl(s,s.tooltip.settings.shared);if(d==="Enter"){if(m)return;var g=ov(s,v,"hover",String(c.index));t.dispatch(av({active:!c.active,activeIndex:c.index,activeCoordinate:g}));return}var b=FI(s),x=b==="left-to-right"?1:-1,S=d==="ArrowRight"?1:-1,w;if(m){var _=jo(s),k=Ql(s),A=S*x,P=F=>({active:!1,index:String(F),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(w=-1,A>0){for(var K=0;K=0;z--)if(Xl(P(z),h,_,k)!=null){w=z;break}if(w<0)return}else{w=p+S*x;var Q=y?.length||h.length;if(Q===0||w>=Q||w<0)return}var M=ov(s,v,"hover",String(w));t.dispatch(av({active:!0,activeIndex:w.toString(),activeCoordinate:M}))}finally{Ef=null,$u=null}};if(!o){l();return}a==="raf"?Ef=requestAnimationFrame(l):typeof a=="number"&&$u===null&&(l(),a1=null,$u=setTimeout(()=>{a1?l():($u=null,Ef=null)},a))}});Pv.startListening({actionCreator:rE,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var a=r.tooltip.keyboardInteraction;if(!a.active&&a.index==null){var i="0",o=Gl(r,r.tooltip.settings.shared),l=ov(r,o,"hover",String(i));t.dispatch(av({active:!0,activeIndex:i,activeCoordinate:l}))}}}});Pv.startListening({actionCreator:nE,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var a=r.tooltip.keyboardInteraction;a.active&&t.dispatch(av({active:!1,activeIndex:a.index,activeCoordinate:a.coordinate}))}}});function i1(e){e.persist();var t=e.currentTarget;return new Proxy(e,{get:(r,n)=>{if(n==="currentTarget")return t;var a=Reflect.get(r,n);return typeof a=="function"?a.bind(r):a}})}var Ea=Lr("externalEvent"),iE=To(),o1=new Map,Dv=new Map,aE=new Map;iE.startListening({actionCreator:Ea,effect:(e,t)=>{var r=e.payload,n=r.handler,a=r.reactEvent;if(n!=null){var i=a.type,o=i1(a);aE.set(i,{handler:n,reactEvent:o});var l=o1.get(i);l!==void 0&&(cancelAnimationFrame(l),o1.delete(i));var s=t.getState(),u=s.eventSettings,c=u.throttleDelay,d=u.throttledEvents,f=d,p=f==="all"||f?.includes(i),m=Dv.get(i);m!==void 0&&(typeof c!="number"||!p)&&(clearTimeout(m),Dv.delete(i));var y=()=>{var g=aE.get(i);try{if(!g)return;var b=g.handler,x=g.reactEvent,S=t.getState(),w={activeCoordinate:nC(S),activeDataKey:af(S),activeIndex:Qa(S),activeLabel:Rx(S),activeTooltipIndex:Qa(S),isTooltipActive:aC(S)};b&&b(w,x)}finally{o1.delete(i),Dv.delete(i),aE.delete(i)}};if(!p){y();return}if(c==="raf"){var h=requestAnimationFrame(y);o1.set(i,h)}else if(typeof c=="number"){if(!Dv.has(i)){y();var v=setTimeout(y,c);Dv.set(i,v)}}else y()}}});var doe=Z([Bo],e=>e.tooltipItemPayloads),N9=Z([doe,(e,t)=>t,(e,t,r)=>r],(e,t,r)=>{if(t!=null){var n=e.find(i=>i.settings.graphicalItemId===r);if(n!=null){var a=n.getPosition;if(a!=null)return a(t)}}});var oE=Lr("touchMove"),lE=To(),Uu=null,cs=null,C9=null,Iv=null;lE.startListening({actionCreator:oE,effect:(e,t)=>{var r=e.payload;if(!(r.touches==null||r.touches.length===0)){Iv=i1(r);var n=t.getState(),a=n.eventSettings,i=a.throttleDelay,o=a.throttledEvents,l=o==="all"||o.includes("touchmove");Uu!==null&&(cancelAnimationFrame(Uu),Uu=null),cs!==null&&(typeof i!="number"||!l)&&(clearTimeout(cs),cs=null),C9=Array.from(r.touches).map(u=>Mv({clientX:u.clientX,clientY:u.clientY,currentTarget:r.currentTarget}));var s=()=>{if(Iv!=null){var u=t.getState(),c=Gl(u,u.tooltip.settings.shared);if(c==="axis"){var d,f=(d=C9)===null||d===void 0?void 0:d[0];if(f==null){Uu=null,cs=null;return}var p=Tv(u,f);p?.activeIndex!=null&&t.dispatch(qx({activeIndex:p.activeIndex,activeDataKey:void 0,activeCoordinate:p.activeCoordinate}))}else if(c==="item"){var m,y=Iv.touches[0];if(document.elementFromPoint==null||y==null)return;var h=document.elementFromPoint(y.clientX,y.clientY);if(!h||!h.getAttribute)return;var v=h.getAttribute(l0),g=(m=h.getAttribute(s0))!==null&&m!==void 0?m:void 0,b=Zl(u).find(w=>w.id===g);if(v==null||b==null||g==null)return;var x=b.dataKey,S=N9(u,v,g);t.dispatch(Vx({activeDataKey:x,activeIndex:v,activeCoordinate:S,activeGraphicalItemId:g}))}Uu=null,cs=null}};if(!l){s();return}i==="raf"?Uu=requestAnimationFrame(s):typeof i=="number"&&cs===null&&(s(),Iv=null,cs=setTimeout(()=>{Iv?s():(cs=null,Uu=null)},i))}}});var jv={throttleDelay:"raf",throttledEvents:["mousemove","touchmove","pointermove","scroll","wheel"]},E9=Nt({name:"eventSettings",initialState:jv,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=et(t.payload.throttledEvents))}}}),_9=E9.actions.setEventSettings;var O9=E9.reducer;var foe=jh({brush:QL,cartesianAxis:jL,chartData:Gj,errorBars:MB,eventSettings:O9,graphicalItems:bL,layout:HP,legend:vD,options:Hj,polarAxis:Wz,polarOptions:k9,referenceElements:eB,renderedTicks:yB,rootProps:b9,tooltip:JI,zIndex:Dj}),T9=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return NP({reducer:foe,preloadedState:t,middleware:n=>{var a;return n({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((a="es6")!==null&&a!==void 0?a:"")}).concat([RC.middleware,eE.middleware,Pv.middleware,iE.middleware,lE.middleware])},enhancers:n=>{var a=n;return typeof n=="function"&&(a=n()),a.concat(rk({type:"raf"}))},devTools:qa.devToolsEnabled&&{serialize:{replacer:y9},name:"recharts-".concat(r)}})};function l1(e){var t=e.preloadedState,r=e.children,n=e.reduxStoreName,a=Ct(),i=(0,P9.useRef)(null);if(a)return r;i.current==null&&(i.current=T9(t,n));var o=am;return M9.createElement(AD,{context:o,store:i.current},r)}var s1=re(ne());function poe(e){var t=e.layout,r=e.margin,n=He(),a=Ct();return(0,s1.useEffect)(()=>{a||(n(UP(t)),n(ik(r)))},[n,a,t,r]),null}var u1=(0,s1.memo)(poe,Qn);var D9=re(ne());function c1(e){var t=He();return(0,D9.useEffect)(()=>{t(w9(e))},[t,e]),null}var d1=re(ne());var moe=e=>{var t=He();return(0,d1.useEffect)(()=>{t(_9(e))},[t,e]),null},f1=(0,d1.memo)(moe,Qn);var Qo=re(ne()),U9=re(ne());var Wu=re(ne()),uE=re(ne());var Fu=re(ne()),p1=re(ne());function I9(e){var t=e.zIndex,r=e.isPanorama,n=(0,p1.useRef)(null),a=He();return(0,p1.useLayoutEffect)(()=>(n.current&&a(Mj({zIndex:t,element:n.current,isPanorama:r})),()=>{a(Pj({zIndex:t,isPanorama:r}))}),[a,t,r]),Fu.createElement("g",{tabIndex:-1,ref:n,className:"recharts-zIndex-layer_".concat(t)})}function sE(e){var t=e.children,r=e.isPanorama,n=xe(Cj);if(!n||n.length===0)return t;var a=n.filter(o=>o<0),i=n.filter(o=>o>0);return Fu.createElement(Fu.Fragment,null,a.map(o=>Fu.createElement(I9,{key:o,zIndex:o,isPanorama:r})),t,i.map(o=>Fu.createElement(I9,{key:o,zIndex:o,isPanorama:r})))}var voe=["children"];function goe(e,t){if(e==null)return{};var r,n,a=yoe(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n{var r=_d(),n=Od(),a=x0();if(!Gn(r)||!Gn(n))return null;var i=e.children,o=e.otherAttributes,l=e.title,s=e.desc,u,c;return o!=null&&(typeof o.tabIndex=="number"?u=o.tabIndex:u=a?0:void 0,typeof o.role=="string"?c=o.role:c=a?"application":void 0),Wu.createElement(Zp,m1({},o,{title:l,desc:s,role:c,tabIndex:u,width:r,height:n,style:hoe,ref:t}),i)}),boe=e=>{var t=e.children,r=xe(Rs);if(!r)return null;var n=r.width,a=r.height,i=r.y,o=r.x;return Wu.createElement(Zp,{width:n,height:a,x:o,y:i},t)},cE=(0,uE.forwardRef)((e,t)=>{var r=e.children,n=goe(e,voe),a=Ct();return a?Wu.createElement(boe,null,Wu.createElement(sE,{isPanorama:!0},r)):Wu.createElement(xoe,m1({ref:t},n),Wu.createElement(sE,{isPanorama:!1},r))});var ur=re(ne()),mt=re(ne());var v1=re(ne());function woe(e,t){return Noe(e)||koe(e,t)||Aoe(e,t)||Soe()}function Soe(){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 Aoe(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{if(n!=null){var o=n.getBoundingClientRect(),l=o.width/n.offsetWidth;We(l)&&l!==i&&e(WP(l))}},[n,e,i]),a}function L9(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Coe(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r(Zj(),null);function y1(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var joe=(0,mt.forwardRef)((e,t)=>{var r,n,a=(0,mt.useRef)(null),i=(0,mt.useState)({containerWidth:y1((r=e.style)===null||r===void 0?void 0:r.width),containerHeight:y1((n=e.style)===null||n===void 0?void 0:n.height)}),o=g1(i,2),l=o[0],s=o[1],u=(0,mt.useCallback)((d,f)=>{s(p=>{var m=Math.round(d),y=Math.round(f);return p.containerWidth===m&&p.containerHeight===y?p:{containerWidth:m,containerHeight:y}})},[]),c=(0,mt.useCallback)(d=>{if(typeof t=="function"&&t(d),a.current!=null&&(a.current.disconnect(),a.current=null),d!=null&&typeof ResizeObserver<"u"){var f=d.getBoundingClientRect(),p=f.width,m=f.height;u(p,m);var y=v=>{var g=v[0];if(g!=null){var b=g.contentRect,x=b.width,S=b.height;u(x,S)}},h=new ResizeObserver(y);h.observe(d),a.current=h}},[t,u]);return(0,mt.useEffect)(()=>()=>{var d=a.current;d?.disconnect()},[u]),ur.createElement(ur.Fragment,null,ur.createElement(ru,{width:l.containerWidth,height:l.containerHeight}),ur.createElement("div",ds({ref:c},e)))}),zoe=(0,mt.forwardRef)((e,t)=>{var r=e.width,n=e.height,a=(0,mt.useState)({containerWidth:y1(r),containerHeight:y1(n)}),i=g1(a,2),o=i[0],l=i[1],s=(0,mt.useCallback)((c,d)=>{l(f=>{var p=Math.round(c),m=Math.round(d);return f.containerWidth===p&&f.containerHeight===m?f:{containerWidth:p,containerHeight:m}})},[]),u=(0,mt.useCallback)(c=>{if(typeof t=="function"&&t(c),c!=null){var d=c.getBoundingClientRect(),f=d.width,p=d.height;s(f,p)}},[t,s]);return ur.createElement(ur.Fragment,null,ur.createElement(ru,{width:o.containerWidth,height:o.containerHeight}),ur.createElement("div",ds({ref:u},e)))}),Loe=(0,mt.forwardRef)((e,t)=>{var r=e.width,n=e.height;return ur.createElement(ur.Fragment,null,ur.createElement(ru,{width:r,height:n}),ur.createElement("div",ds({ref:t},e)))}),Boe=(0,mt.forwardRef)((e,t)=>{var r=e.width,n=e.height;return typeof r=="string"||typeof n=="string"?ur.createElement(zoe,ds({},e,{ref:t})):typeof r=="number"&&typeof n=="number"?ur.createElement(Loe,ds({},e,{width:r,height:n,ref:t})):ur.createElement(ur.Fragment,null,ur.createElement(ru,{width:r,height:n}),ur.createElement("div",ds({ref:t},e)))});function $oe(e){return e?joe:Boe}var $9=(0,mt.forwardRef)((e,t)=>{var r=e.children,n=e.className,a=e.height,i=e.onClick,o=e.onContextMenu,l=e.onDoubleClick,s=e.onMouseDown,u=e.onMouseEnter,c=e.onMouseLeave,d=e.onMouseMove,f=e.onMouseUp,p=e.onTouchEnd,m=e.onTouchMove,y=e.onTouchStart,h=e.style,v=e.width,g=e.responsive,b=e.dispatchTouchEvents,x=b===void 0?!0:b,S=(0,mt.useRef)(null),w=He(),_=(0,mt.useState)(null),k=g1(_,2),A=k[0],P=k[1],K=(0,mt.useState)(null),z=g1(K,2),Q=z[0],M=z[1],F=z9(),N=mm(),O=N?.width>0?N.width:v,I=N?.height>0?N.height:a,D=(0,mt.useCallback)(X=>{F(X),typeof t=="function"&&t(X),P(X),M(X),X!=null&&(S.current=X)},[F,t,P,M]),T=(0,mt.useCallback)(X=>{w(JC(X)),w(Ea({handler:i,reactEvent:X}))},[w,i]),j=(0,mt.useCallback)(X=>{w(n1(X)),w(Ea({handler:u,reactEvent:X}))},[w,u]),R=(0,mt.useCallback)(X=>{w(Kx()),w(Ea({handler:c,reactEvent:X}))},[w,c]),U=(0,mt.useCallback)(X=>{w(n1(X)),w(Ea({handler:d,reactEvent:X}))},[w,d]),q=(0,mt.useCallback)(()=>{w(rE())},[w]),ee=(0,mt.useCallback)(()=>{w(nE())},[w]),fe=(0,mt.useCallback)(X=>{w(tE(X.key))},[w]),pe=(0,mt.useCallback)(X=>{w(Ea({handler:o,reactEvent:X}))},[w,o]),Pe=(0,mt.useCallback)(X=>{w(Ea({handler:l,reactEvent:X}))},[w,l]),oe=(0,mt.useCallback)(X=>{w(Ea({handler:s,reactEvent:X}))},[w,s]),Te=(0,mt.useCallback)(X=>{w(Ea({handler:f,reactEvent:X}))},[w,f]),V=(0,mt.useCallback)(X=>{w(Ea({handler:y,reactEvent:X}))},[w,y]),J=(0,mt.useCallback)(X=>{x&&w(oE(X)),w(Ea({handler:m,reactEvent:X}))},[w,x,m]),E=(0,mt.useCallback)(X=>{w(Ea({handler:p,reactEvent:X}))},[w,p]),L=$oe(g);return ur.createElement(fC.Provider,{value:A},ur.createElement(R2.Provider,{value:Q},ur.createElement(L,{width:O??h?.width,height:I??h?.height,className:Ue("recharts-wrapper",n),style:Coe({position:"relative",cursor:"default",width:O,height:I},h),onClick:T,onContextMenu:pe,onDoubleClick:Pe,onFocus:q,onBlur:ee,onKeyDown:fe,onMouseDown:oe,onMouseEnter:j,onMouseLeave:R,onMouseMove:U,onMouseUp:Te,onTouchEnd:E,onTouchMove:J,onTouchStart:V,ref:D},ur.createElement(Ioe,null),r)))});var Uoe=["width","height","responsive","children","className","style","compact","title","desc"];function Foe(e,t){if(e==null)return{};var r,n,a=Woe(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n{var r=e.width,n=e.height,a=e.responsive,i=e.children,o=e.className,l=e.style,s=e.compact,u=e.title,c=e.desc,d=Foe(e,Uoe),f=er(d);return s?Qo.createElement(Qo.Fragment,null,Qo.createElement(ru,{width:r,height:n}),Qo.createElement(cE,{otherAttributes:f,title:u,desc:c},i)):Qo.createElement($9,{className:o,style:l,width:r,height:n,responsive:a??!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},Qo.createElement(cE,{otherAttributes:f,title:u,desc:c,ref:t},Qo.createElement(rB,null,i)))});function dE(){return dE=Object.assign?Object.assign.bind():function(e){for(var t=1;tH9.createElement(_f,{chartName:"LineChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:Xoe,tooltipPayloadSearcher:Jl,categoricalChartProps:e,ref:t}));var K9=re(ne()),q9=re(ne());var Zoe=["axis","item"],pE=(0,q9.forwardRef)((e,t)=>K9.createElement(_f,{chartName:"BarChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:Zoe,tooltipPayloadSearcher:Jl,categoricalChartProps:e,ref:t}));var e7=re(ne()),t7=re(ne());var Z9=re(ne()),fs=re(ne());var Y9=re(ne());function G9(e){var t=He();return(0,Y9.useEffect)(()=>{t(A9(e))},[t,e]),null}var Qoe=["layout"];function mE(){return mE=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=it(e,ule);return e7.createElement(Q9,{chartName:"PieChart",defaultTooltipEventType:"item",validateTooltipEventTypes:sle,tooltipPayloadSearcher:Jl,categoricalChartProps:r,ref:t})});var r7=re(ne()),n7=re(ne());var cle=["axis"],ps=(0,n7.forwardRef)((e,t)=>r7.createElement(_f,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:cle,tooltipPayloadSearcher:Jl,categoricalChartProps:e,ref:t}));var ii=re(ne()),Of=[{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}],a7="30m",i7="activeagents.timeWindow",o7=(0,ii.createContext)(null),yE=e=>Of.find(t=>t.id===e);function l7({children:e}){let[t,r]=(0,ii.useState)(()=>{try{let i=localStorage.getItem(i7);if(i&&yE(i))return i}catch{}return a7}),n=(0,ii.useCallback)(i=>{if(yE(i)){r(i);try{localStorage.setItem(i7,i)}catch{}}},[]),a=(0,ii.useMemo)(()=>{let i=Of.findIndex(l=>l.id===t),o=Of[i]||yE(a7);return{timeWindow:o,windowIndex:i,windows:Of,setWindow:n,zoomTo:l=>{let s=Of[Math.min(Math.max(l,0),Of.length-1)];s&&n(s.id)},days:Math.max(1,Math.ceil(o.minutes/1440))}},[t,n]);return ii.default.createElement(o7.Provider,{value:a},e)}function Gi(){let e=(0,ii.useContext)(o7);if(!e)throw new Error("useTimeWindow must be used within a TimeWindowProvider");return e}var Tf=re(ne());function Xi({compact:e=!1}){let{windows:t,windowIndex:r,timeWindow:n,setWindow:a,zoomTo:i}=Gi(),{darkMode:o}=At(),l=$a(o),s={color:l.textSecondary};return Tf.default.createElement("div",{className:"flex items-center rounded-lg p-1",style:{background:l.mutedBg}},Tf.default.createElement("button",{onClick:()=>i(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:s},"\u2212"),Tf.default.createElement("select",{value:n.id,onChange:u=>a(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:l.cardBg,color:l.textPrimary,border:`1px solid ${l.cardBorder}`}},t.map(u=>Tf.default.createElement("option",{key:u.id,value:u.id},u.label))),Tf.default.createElement("button",{onClick:()=>i(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:s},"+"))}var Pr=re(ne());var Ht=re(ne()),dle={messages:"#2563eb",tool_results:"#5b84ec",instructions:"#85a3f0",tool_schemas:"#a6bcf4",mcp_schemas:"#c3d2f8",memory:"#dce4fb",output:"#7c3aed"},zv=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},Zi=e=>{if(e==null)return 0;let t=typeof e=="string"?e:JSON.stringify(e);return Math.round(t.length/4)},Mf=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 ms({used:e,limit:t=2e5,segments:r=[],cached:n=0,thinking:a=0,compact:i=!1,defaultOpen:o=!1,label:l="Context window",estimated:s=!1,darkMode:u=!1}){let[c,d]=(0,Ht.useState)(o),f=r.filter(_=>_.tokens>0),p=e??f.reduce((_,k)=>_+k.tokens,0),m=t>0?p/t:0,y=m>=.9?"#dc2626":m>=.75?"#eab308":null,h=u?"rgba(255,255,255,0.4)":"#9ca3af",v=u?"rgba(255,255,255,0.6)":"#6b7280",g=u?"rgba(255,255,255,0.75)":"#4b5563",b=u?"rgba(255,255,255,0.1)":"#f3f4f6",x=`${Mf(p)} / ${Mf(t)} (${Math.round(m*100)}%)`,S=_=>_.key==="messages"&&y?y:_.color||dle[_.key]||"#2563eb",w=_=>Ht.default.createElement("div",{style:{display:"flex",height:_,borderRadius:"999px",overflow:"hidden",background:b,flex:1}},f.map(k=>Ht.default.createElement("div",{key:k.key,title:`${k.label} \xB7 ${Mf(k.tokens)}`,style:{width:`${Math.min(k.tokens/t*100,100)}%`,background:S(k)}})));return i?Ht.default.createElement("span",{title:`${l}: ${x}`,style:{display:"inline-flex",alignItems:"center",gap:"6px",width:"132px",verticalAlign:"middle"}},w("6px"),Ht.default.createElement("span",{style:{fontSize:"11px",fontFamily:"'SF Mono', 'Fira Code', monospace",color:y||h,whiteSpace:"nowrap"}},Math.round(m*100),"%")):Ht.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"}},Ht.default.createElement("div",{onClick:_=>{_.stopPropagation(),d(!c)},style:{display:"flex",alignItems:"center",justifyContent:"space-between",cursor:"pointer"}},Ht.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:v}},l,s&&Ht.default.createElement("span",{style:{color:h,fontWeight:400}}," \xB7 estimated")),Ht.default.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:"8px"}},Ht.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",fontWeight:600,color:y||g}},x),Ht.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",color:h,display:"inline-block",transform:c?"rotate(90deg)":"none",transition:"transform 0.15s ease"}},">"))),Ht.default.createElement("div",{style:{display:"flex",marginTop:"8px"}},w("9px")),m>=.9&&Ht.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&&Ht.default.createElement("div",{style:{marginTop:"10px",display:"grid",gap:"5px"}},[...f,{key:"__free",label:"Free space",tokens:Math.max(t-p,0)}].map(_=>Ht.default.createElement("div",{key:_.key,style:{display:"flex",alignItems:"center",gap:"8px"}},Ht.default.createElement("span",{style:{width:"9px",height:"9px",borderRadius:"2px",flexShrink:0,background:_.key==="__free"?b:S(_),border:_.key==="__free"?`1px solid ${u?"rgba(255,255,255,0.25)":"#d1d5db"}`:"none"}}),Ht.default.createElement("span",{style:{fontSize:"13px",color:g,flex:1}},_.label),Ht.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",color:v,width:"56px",textAlign:"right"}},Mf(_.tokens)),Ht.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",color:h,width:"46px",textAlign:"right"}},t>0?`${(_.tokens/t*100).toFixed(1)}%`:"\u2014"))),(n>0||a>0)&&Ht.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:h}},n>0&&Ht.default.createElement("span",null,Ht.default.createElement("span",{style:{color:"#2563eb"}},"[=]")," cached prefix ",Mf(n)),a>0&&Ht.default.createElement("span",null,Ht.default.createElement("span",{style:{color:"#7c3aed"}},"[~]")," thinking ",Mf(a)))))}var Fe=re(ne());var be=re(ne());var Sr=re(ne());var se=re(ne());var s7=["ui","json-ui","genui"],Vu="render_ui",ki=e=>e!=null&&typeof e=="object"&&!Array.isArray(e),hE=e=>{if(typeof e=="string")try{return JSON.parse(e)}catch{return}};function Ku(e){let t=typeof e=="string"?hE(e):e;if(Array.isArray(t))return t.every(ki)?t:null;if(ki(t)){if(Array.isArray(t.blocks))return t.blocks.every(ki)?t.blocks:null;if(Array.isArray(t.ui))return t.ui.every(ki)?t.ui:null}return null}function xE(e,t){let r=String(e||"").trim().toLowerCase();if(s7.includes(r))return Ku(t);if(r==="json"){let n=hE(t);return ki(n)&&Array.isArray(n.ui)?Ku(n):null}return null}function bE(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 a=hE(t);if(a==null||typeof a!="object")return null;if(Array.isArray(a))return a.length>0&&a.every(l=>ki(l)&&typeof l.type=="string")?{blocks:a}:{object:a};let i=Ku(a);return i?{blocks:i}:{object:a}}var fle=e=>ki(e)?e.function?.name||e.name:void 0,ple=e=>ki(e)?e.function?.arguments??e.arguments??e.input:void 0;function Pf(e,{callId:t}={}){if(!ki(e))return null;if(e.tool_name===Vu&&e.tool_arguments!=null){let a=Ku(e.tool_arguments);if(a)return a}let r=e.tool_calls,n=[];if(Array.isArray(r)){let a=r.some(i=>ki(i)&&i.id!=null);r.forEach(i=>{if(fle(i)!==Vu||t!=null&&a&&i.id!==t)return;let o=Ku(ple(i));o&&n.push(...o)})}else if(ki(r)&&e.tool_name===Vu){let a=Ku(r);a&&n.push(...a)}return n.length>0?n:null}function x1(e){return typeof e=="string"&&/^(https?:\/\/|data:image\/)/i.test(e.trim())}function b1(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 u7(e){try{return new URL(String(e).trim()).host}catch{return""}}var v7=["#2a78d6","#eb6834","#1baf7a","#eda100","#e87ba4","#008300","#4a3aa7","#e34948"],mle=["#3987e5","#d95926","#199e70","#c98500","#d55181","#008300","#9085e9","#e66767"],Lv=v7.length,c7=220,Df=e=>e!=null&&typeof e=="object"&&!Array.isArray(e),at=e=>e==null?"":typeof e=="object"?JSON.stringify(e):String(e),g7=e=>{if(typeof e!="number"||!Number.isFinite(e))return at(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()},kE=(e,t)=>typeof t=="string"&&Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0,d7={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"]}},vle={positive:{light:"#15803d",dark:"#4ade80"},negative:{light:"#b91c1c",dark:"#f87171"}},wE=e=>({width:"100%",padding:"6px 10px",borderRadius:"8px",border:`1px solid ${e.inputBorder}`,background:e.inputBg,color:e.textPrimary,fontFamily:"inherit",fontSize:"13px"}),NE=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"}),If=e=>({fontSize:"13px",fontWeight:600,color:e.textPrimary,margin:0});function Jo({block:e,reason:t,colors:r,darkMode:n}){return se.default.createElement("div",{className:"text-xs",style:{color:r.textMuted}},se.default.createElement("div",{className:"mb-1"},"Unsupported block",e&&e.type?` \u201C${at(e.type)}\u201D`:"",t?` \u2014 ${t}`:""),se.default.createElement("pre",{style:{...NE(n),maxHeight:"160px",overflowY:"auto"}},JSON.stringify(e,null,2)))}function gle({block:e,colors:t,darkMode:r,onAction:n}){let a=x1(e.image_url)&&b1(e.image_url)?e.image_url.trim():null;return se.default.createElement("div",{className:"overflow-hidden",style:{border:`1px solid ${t.cardBorder}`,borderRadius:"10px",background:t.innerBg}},a&&se.default.createElement("img",{src:a,alt:at(e.title),style:{width:"100%",maxHeight:"220px",objectFit:"cover",display:"block"}}),se.default.createElement("div",{className:"p-3 space-y-1.5"},e.title!=null&&se.default.createElement("div",{style:If(t)},at(e.title)),e.body!=null&&se.default.createElement("div",{className:"text-sm",style:{color:t.textCell}},se.default.createElement(Ni,{text:at(e.body),darkMode:r,onUiAction:n})),e.footer!=null&&se.default.createElement("div",{className:"text-xs pt-1",style:{color:t.textMuted,borderTop:`1px solid ${t.cardBorder}`}},at(e.footer))))}function y7({block:e,colors:t,darkMode:r}){let n=e.delta!=null?at(e.delta):null,a=e.tone||(n&&n.trim().startsWith("-")?"negative":n?"positive":"neutral"),i=kE(vle,a),o=i?i[r?"dark":"light"]:t.textMuted,l=typeof e.value=="number"?g7(e.value):at(e.value);return se.default.createElement("div",{style:{background:t.innerBg,border:`1px solid ${t.cardBorder}`,borderRadius:"10px",padding:"10px 12px"}},se.default.createElement("div",{className:"text-xs",style:{color:t.textMuted}},at(e.label)),se.default.createElement("div",{className:"text-lg font-semibold leading-tight mt-0.5",style:{color:t.textPrimary}},l),n&&se.default.createElement("div",{className:"text-xs mt-0.5 font-medium",style:{color:o}},n))}function yle({block:e,colors:t,darkMode:r}){let n=Array.isArray(e.items)?e.items.filter(Df):[];return n.length===0?se.default.createElement(Jo,{block:e,reason:"stats needs an items array",colors:t,darkMode:r}):se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(140px, 1fr))",gap:"8px"}},n.map((a,i)=>se.default.createElement(y7,{key:i,block:a,colors:t,darkMode:r})))}var AE=(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"}),hle=e=>({padding:"6px 10px",borderBottom:`1px solid ${e.borderStrong}`,color:e.textSecondary,fontSize:"11px",fontWeight:600,textAlign:"left",fontFamily:$e.mono,textTransform:"uppercase",letterSpacing:"0.04em",whiteSpace:"nowrap"});function h7({columns:e,rows:t,colors:r,renderCell:n}){return se.default.createElement("div",{style:{overflowX:"auto"}},se.default.createElement("table",{className:"text-sm",style:{width:"100%",borderCollapse:"collapse"}},se.default.createElement("thead",null,se.default.createElement("tr",null,e.map((a,i)=>se.default.createElement("th",{key:i,style:hle(r)},at(a))))),se.default.createElement("tbody",null,t.map((a,i)=>se.default.createElement("tr",{key:i},e.map((o,l)=>{let s=a[l];return se.default.createElement("td",{key:l,style:AE(r,typeof s=="number")},n?n(s):typeof s=="number"?s.toLocaleString():at(s))}))))))}function xle({block:e,colors:t,darkMode:r}){let n=Array.isArray(e.columns)?e.columns:null,a=Array.isArray(e.rows)?e.rows:null;if(!n||!a)return se.default.createElement(Jo,{block:e,reason:"table needs columns and rows arrays",colors:t,darkMode:r});let i=a.map(o=>Array.isArray(o)?o:Df(o)?n.map(l=>o[l]):[o]);return se.default.createElement("div",null,e.title!=null&&se.default.createElement("div",{className:"mb-1.5",style:If(t)},at(e.title)),se.default.createElement(h7,{columns:n,rows:i,colors:t}))}var ble=e=>{let t=e[0];return Object.keys(t).find(r=>typeof t[r]=="string")||Object.keys(t)[0]},wle=(e,t)=>Object.keys(e[0]).filter(r=>r!==t&&typeof e[0][r]=="number");function Sle({block:e,colors:t,darkMode:r}){let n=String(e.chart||e.kind||"bar").toLowerCase(),a=Array.isArray(e.data)?e.data.filter(Df):[];if(a.length===0)return se.default.createElement(Jo,{block:e,reason:"chart needs a data array of objects",colors:t,darkMode:r});let i=typeof e.x=="string"?e.x:ble(a),o=Array.isArray(e.series)?e.series.filter(h=>typeof h=="string"):[],l=(o.length>0?o:wle(a,i)).slice(0,Lv);if(!i||l.length===0)return se.default.createElement(Jo,{block:e,reason:"chart needs an x key and at least one series",colors:t,darkMode:r});let s=r?mle:v7,u=t.cardBg,c={fontSize:10,fill:t.textMuted},d=se.default.createElement(Rl,{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:h=>typeof h=="number"?h.toLocaleString():at(h)}),f=l.length>1||n==="pie"?se.default.createElement(g0,{wrapperStyle:{fontSize:"11px",color:t.textSecondary},iconSize:10}):null,p=se.default.createElement(se.default.Fragment,null,se.default.createElement(Vo,{stroke:t.cardBorder,vertical:!1}),se.default.createElement(Go,{dataKey:i,stroke:t.borderStrong,tick:c,tickLine:!1}),se.default.createElement(Zo,{stroke:t.borderStrong,tick:c,tickLine:!1,axisLine:!1,tickFormatter:g7,width:44})),m={top:8,right:12,bottom:0,left:0},y;if(n==="line")y=se.default.createElement(fE,{data:a,margin:m},p,d,f,l.map((h,v)=>se.default.createElement(Xb,{key:h,type:"monotone",dataKey:h,stroke:s[v],strokeWidth:2,dot:{r:4,strokeWidth:2,stroke:u,fill:s[v]},activeDot:{r:5,strokeWidth:2,stroke:u},isAnimationActive:!1})));else if(n==="area")y=se.default.createElement(ps,{data:a,margin:m},p,d,f,l.map((h,v)=>se.default.createElement(qo,{key:h,type:"monotone",dataKey:h,stroke:s[v],strokeWidth:2,fill:s[v],fillOpacity:.12,dot:{r:3,strokeWidth:2,stroke:u,fill:s[v]},isAnimationActive:!1})));else if(n==="pie"){let h=l[0],v=[...a].sort((x,S)=>(Number(S[h])||0)-(Number(x[h])||0)),g=v.slice(0,Lv),b=v.slice(Lv);b.length>0&&(g[Lv-1]={[i]:"Other",[h]:b.reduce((x,S)=>x+(Number(S[h])||0),Number(g[Lv-1][h])||0)}),y=se.default.createElement(gE,{margin:m},d,f,se.default.createElement(jb,{data:g,dataKey:h,nameKey:i,innerRadius:44,outerRadius:80,paddingAngle:2,stroke:u,strokeWidth:2,isAnimationActive:!1},g.map((x,S)=>se.default.createElement(Uo,{key:S,fill:s[S]}))))}else y=se.default.createElement(pE,{data:a,margin:m,barCategoryGap:"25%",barGap:2},p,d,f,l.map((h,v)=>se.default.createElement(t1,{key:h,dataKey:h,fill:s[v],radius:[4,4,0,0],maxBarSize:24,isAnimationActive:!1})));return se.default.createElement("div",null,e.title!=null&&se.default.createElement("div",{className:"mb-1",style:If(t)},at(e.title)),se.default.createElement("div",{style:{width:"100%",height:c7,minWidth:0}},se.default.createElement(zl,{width:"100%",height:c7},y)))}function Ale({block:e,colors:t,darkMode:r,onAction:n}){let a=Array.isArray(e.items)?e.items:null;if(!a)return se.default.createElement(Jo,{block:e,reason:"list needs an items array",colors:t,darkMode:r});let i=e.ordered?"ol":"ul";return se.default.createElement("div",null,e.title!=null&&se.default.createElement("div",{className:"mb-1",style:If(t)},at(e.title)),se.default.createElement(i,{className:`${e.ordered?"list-decimal":"list-disc"} pl-5 text-sm space-y-0.5`,style:{color:t.textCell}},a.map((o,l)=>se.default.createElement("li",{key:l},typeof o=="string"?se.default.createElement(Ni,{text:o,darkMode:r,onUiAction:n}):at(o)))))}function kle({block:e,colors:t}){let r=Number(e.value),n=Number.isFinite(r)?Math.max(0,Math.min(100,r)):0;return se.default.createElement("div",null,se.default.createElement("div",{className:"flex items-center justify-between text-xs mb-1"},se.default.createElement("span",{style:{color:t.textCell}},at(e.label)),se.default.createElement("span",{className:"font-mono",style:{color:t.textMuted}},Math.round(n),"%")),se.default.createElement("div",{style:{height:"8px",borderRadius:"999px",background:t.trackBg,overflow:"hidden"}},se.default.createElement("div",{style:{width:`${n}%`,height:"100%",background:Wr,borderRadius:"999px",transition:"width 0.3s ease"}})))}var Nle=["text","textarea","number","select","checkbox"],SE=e=>at(e.name||e.label),f7=e=>at(e.label||e.name),p7=e=>Nle.includes(e.type)?e.type:"text";function Cle({block:e,colors:t,darkMode:r,onAction:n}){let a=(Array.isArray(e.fields)?e.fields:[]).filter(f=>Df(f)&&(f.name||f.label)),[i,o]=(0,se.useState)(()=>Object.fromEntries(a.map(f=>[SE(f),p7(f)==="checkbox"?!1:""]))),[l,s]=(0,se.useState)(!1);if(a.length===0)return se.default.createElement(Jo,{block:e,reason:"form needs fields",colors:t,darkMode:r});let u=e.submit!=null?at(e.submit):"Submit",c=(f,p)=>o(m=>({...m,[f]:p}));return se.default.createElement("form",{onSubmit:f=>{f.preventDefault();let p=a.map(m=>{let y=i[SE(m)];return`${f7(m)}: ${typeof y=="boolean"?y?"yes":"no":at(y)}`}).join("; ");s(!0),n&&n({kind:"form",text:`${e.submit!=null?at(e.submit):"Submitted"}: ${p}`,values:{...i}})},className:"space-y-2.5",style:{border:`1px solid ${t.cardBorder}`,borderRadius:"10px",background:t.innerBg,padding:"12px"}},e.title!=null&&se.default.createElement("div",{style:If(t)},at(e.title)),a.map(f=>{let p=SE(f),m=p7(f),y=f7(f),h=`genui-field-${p.replace(/\W+/g,"-")}`;return m==="checkbox"?se.default.createElement("label",{key:p,className:"flex items-center gap-2 text-sm",style:{color:t.textCell}},se.default.createElement("input",{type:"checkbox",checked:!!i[p],onChange:v=>c(p,v.target.checked),style:{accentColor:Wr}}),y):se.default.createElement("div",{key:p},se.default.createElement("label",{htmlFor:h,className:"block text-xs mb-1",style:{color:t.textSecondary}},y,f.required?" *":""),m==="textarea"?se.default.createElement("textarea",{id:h,name:p,value:i[p],onChange:v=>c(p,v.target.value),placeholder:f.placeholder!=null?at(f.placeholder):void 0,required:!!f.required,rows:3,className:"aa-field",style:{...wE(t),resize:"vertical"}}):m==="select"?se.default.createElement("select",{id:h,name:p,value:i[p],onChange:v=>c(p,v.target.value),required:!!f.required,className:"aa-field",style:wE(t)},se.default.createElement("option",{value:""},f.placeholder!=null?at(f.placeholder):"Select\u2026"),(Array.isArray(f.options)?f.options:[]).map((v,g)=>se.default.createElement("option",{key:g,value:at(v)},at(v)))):se.default.createElement("input",{id:h,name:p,type:m==="number"?"number":"text",value:i[p],onChange:v=>c(p,m==="number"&&v.target.value!==""?Number(v.target.value):v.target.value),placeholder:f.placeholder!=null?at(f.placeholder):void 0,required:!!f.required,className:"aa-field",style:wE(t)}))}),se.default.createElement("div",{className:"flex items-center gap-3 pt-1"},se.default.createElement("button",{type:"submit","data-testid":"genui-form-submit",style:{padding:"6px 14px",borderRadius:"8px",fontSize:"13px",fontWeight:500,background:Wr,color:"#ffffff",border:"1px solid transparent",cursor:"pointer"}},u),l&&se.default.createElement("span",{className:"text-xs",style:{color:t.textMuted}},"Sent to the agent")))}function Ele({block:e,colors:t,darkMode:r,onAction:n}){let a=Array.isArray(e.options)?e.options:null,[i,o]=(0,se.useState)(null);return!a||a.length===0?se.default.createElement(Jo,{block:e,reason:"choices needs options",colors:t,darkMode:r}):se.default.createElement("div",null,e.prompt!=null&&se.default.createElement("div",{className:"text-sm mb-1.5",style:{color:t.textCell}},at(e.prompt)),se.default.createElement("div",{className:"flex flex-wrap gap-2"},a.map((l,s)=>{let u=at(l),c=i===s;return se.default.createElement("button",{key:s,type:"button","data-testid":"genui-choice",onClick:()=>{o(s),n&&n({kind:"choice",text:u})},style:{padding:"5px 12px",borderRadius:"999px",fontSize:"13px",cursor:"pointer",border:`1px solid ${c?Wr:t.inputBorder}`,background:c?Wr:"transparent",color:c?"#ffffff":t.textCell}},u)})))}function _le({url:e,alt:t,colors:r,darkMode:n}){let[a,i]=(0,se.useState)(!1);if(a)return se.default.createElement("img",{src:e,alt:t,style:{maxWidth:"100%",borderRadius:"8px",display:"block"}});let o=u7(e);return se.default.createElement("button",{type:"button",onClick:()=>i(!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 ",o||"another site")}function Ole({block:e,colors:t,darkMode:r}){if(!x1(e.url))return se.default.createElement(Jo,{block:e,reason:"image URL must be http(s) or data:",colors:t,darkMode:r});let n=e.url.trim(),a=e.alt!=null?at(e.alt):"";return se.default.createElement("figure",{style:{margin:0}},b1(n)?se.default.createElement("img",{src:n,alt:a,style:{maxWidth:"100%",borderRadius:"8px",display:"block"}}):se.default.createElement(_le,{url:n,alt:a,colors:t,darkMode:r}),e.caption!=null&&se.default.createElement("figcaption",{className:"text-xs mt-1",style:{color:t.textMuted}},at(e.caption)))}function Tle({block:e,colors:t,darkMode:r,onAction:n}){let[a,i]=(kE(d7,e.tone)||d7.info)[r?"dark":"light"];return se.default.createElement("div",{style:{background:a,borderLeft:`3px solid ${i}`,borderRadius:"8px",padding:"10px 12px"}},e.title!=null&&se.default.createElement("div",{className:"text-sm font-semibold mb-0.5",style:{color:i}},at(e.title)),se.default.createElement("div",{className:"text-sm",style:{color:t.textCell}},se.default.createElement(Ni,{text:at(e.body),darkMode:r,onUiAction:n})))}function Mle({block:e,colors:t,darkMode:r}){return se.default.createElement("div",null,e.language!=null&&se.default.createElement("div",{className:"text-xs font-mono mb-1",style:{color:t.textMuted}},at(e.language)),se.default.createElement("pre",{style:NE(r)},at(e.code)))}function m7({block:e,colors:t,darkMode:r,onAction:n}){let a=e.text??e.body??e.content??e.markdown;return se.default.createElement("div",{className:"text-sm",style:{color:t.textCell}},se.default.createElement(Ni,{text:at(a),darkMode:r,onUiAction:n}))}var Ple=3;function w1({value:e,colors:t,darkMode:r,depth:n}){if(e==null||typeof e!="object")return typeof e=="boolean"?se.default.createElement("span",{className:"font-mono"},String(e)):typeof e=="number"?se.default.createElement("span",{style:{fontVariantNumeric:"tabular-nums"}},e.toLocaleString()):se.default.createElement("span",null,at(e));if(n>=Ple)return se.default.createElement("pre",{style:{...NE(r),maxHeight:"160px",overflowY:"auto"}},JSON.stringify(e,null,2));if(Array.isArray(e)){if(e.length===0)return se.default.createElement("span",{style:{color:t.textMuted}},"\u2014");if(e.every(Df)){let i=[...new Set(e.flatMap(o=>Object.keys(o)))];return se.default.createElement(h7,{columns:i,rows:e.map(o=>i.map(l=>o[l])),colors:t,renderCell:o=>se.default.createElement(w1,{value:o,colors:t,darkMode:r,depth:n+1})})}return e.every(i=>i==null||typeof i!="object")?se.default.createElement("span",null,e.map(at).join(", ")):se.default.createElement("ul",{className:"list-disc pl-5 space-y-0.5"},e.map((i,o)=>se.default.createElement("li",{key:o},se.default.createElement(w1,{value:i,colors:t,darkMode:r,depth:n+1}))))}let a=Object.entries(e);return a.length===0?se.default.createElement("span",{style:{color:t.textMuted}},"{}"):se.default.createElement("table",{className:"text-sm",style:{borderCollapse:"collapse",width:n===0?"100%":"auto"}},se.default.createElement("tbody",null,a.map(([i,o])=>se.default.createElement("tr",{key:i},se.default.createElement("th",{scope:"row",className:"font-mono text-xs",style:{...AE(t,!1),color:t.textSecondary,fontWeight:500,whiteSpace:"nowrap",width:"1%"}},i),se.default.createElement("td",{style:AE(t,!1)},se.default.createElement(w1,{value:o,colors:t,darkMode:r,depth:n+1}))))))}function Dle({block:e,colors:t,darkMode:r}){let n="value"in e?e.value:e.data;return se.default.createElement("div",{style:{border:`1px solid ${t.cardBorder}`,borderRadius:"10px",overflow:"hidden"}},e.title!=null&&se.default.createElement("div",{className:"px-3 pt-2",style:If(t)},at(e.title)),se.default.createElement("div",{className:"px-1 pb-1",style:{overflowX:"auto"}},se.default.createElement(w1,{value:n,colors:t,darkMode:r,depth:0})))}var Ile={card:gle,stat:y7,stats:yle,table:xle,chart:Sle,list:Ale,progress:kle,form:Cle,choices:Ele,image:Ole,callout:Tle,code:Mle,object:Dle,text:m7,markdown:m7};function vs({blocks:e,onAction:t,darkMode:r=!1}){let n=Array.isArray(e)?e.filter(Df):[];if(n.length===0)return null;let a=$a(r);return se.default.createElement("div",{className:"space-y-3",onClick:i=>i.stopPropagation()},n.map((i,o)=>{let l=typeof i.type=="string"?i.type.toLowerCase():"unknown",s=kE(Ile,l);return se.default.createElement("div",{key:o,"data-testid":"genui-block","data-block-type":l},s?se.default.createElement(s,{block:i,colors:a,darkMode:r,onAction:t}):se.default.createElement(Jo,{block:i,colors:a,darkMode:r}))}))}var jle=/(\*\*[^*]+\*\*|\*[^*\n]+\*|`[^`]+`|\[[^\]]+\]\((?:https?:\/\/|\/)[^)\s]+\))/g,Bv=(e,t)=>e.split(jle).filter(Boolean).map((r,n)=>{let a=`${t}-${n}`;if(r.startsWith("**")&&r.endsWith("**"))return Sr.default.createElement("strong",{key:a},r.slice(2,-2));if(r.startsWith("*")&&r.endsWith("*")&&r.length>2)return Sr.default.createElement("em",{key:a},r.slice(1,-1));if(r.startsWith("`")&&r.endsWith("`"))return Sr.default.createElement("code",{key:a,className:"px-1 py-0.5 rounded text-[0.9em]",style:{background:"rgba(127,127,127,0.15)"}},r.slice(1,-1));let i=r.match(/^\[([^\]]+)\]\(((?:https?:\/\/|\/)[^)\s]+)\)$/);return i?Sr.default.createElement("a",{key:a,href:i[2],target:"_blank",rel:"noopener noreferrer",className:"underline text-blue-500"},i[1]):r}),x7=e=>/^\s*\|.*\|\s*$/.test(e),zle=e=>/^\s*\|(\s*:?-+:?\s*\|)+\s*$/.test(e),b7=e=>e.trim().replace(/^\|/,"").replace(/\|$/,"").split(/(?t.replace(/\\\|/g,"|").trim());function Ni({text:e,onUiAction:t,darkMode:r}){if(!e)return null;let n=[],a=String(e).split(` -`),i=0,o=0;for(;iSr.default.createElement("th",{key:p,className:"text-left font-semibold px-2 py-1",style:{borderBottom:"1px solid rgba(127,127,127,0.35)"}},Bv(f,`th${d}-${p}`))))),Sr.default.createElement("tbody",null,c.map((f,p)=>Sr.default.createElement("tr",{key:p},u.map((m,y)=>Sr.default.createElement("td",{key:y,className:"px-2 py-1 align-top",style:{borderBottom:"1px solid rgba(127,127,127,0.15)"}},Bv(f[y]??"",`td${d}-${p}-${y}`)))))))));continue}if(/^\s*([-*]|\d+\.)\s+/.test(l)){let u=[];for(;iSr.default.createElement("li",{key:d},Bv(c,`li${o}-${d}`)))));continue}if(l.trim()===""){n.push(Sr.default.createElement("div",{key:o++,className:"h-2"})),i+=1;continue}n.push(Sr.default.createElement("div",{key:o++},Bv(l,`p${o}`))),i+=1}return Sr.default.createElement("div",{className:"break-words"},n)}var ra=re(ne()),Lle=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"},Ble=e=>Array.isArray(e.parameters)?e.parameters:e.parameters&&typeof e.parameters=="object"?Object.keys(e.parameters.properties||e.parameters):[];function CE({tool:e,darkMode:t}){let r=Ble(e);return ra.default.createElement("div",{style:{display:"grid",gap:"4px"}},e.description&&ra.default.createElement("div",{className:"text-sm",style:{color:t?"rgba(255,255,255,0.75)":"#4b5563"}},e.description),ra.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"}},ra.default.createElement("span",null,"params: ",r.length>0?r.join(", "):"none"),ra.default.createElement("span",null,"source: ",Lle(e))))}function EE({tools:e,darkMode:t}){let[r,n]=(0,ra.useState)(null),a=(e||[]).filter(l=>l&&l.name);if(a.length===0)return null;let i=a.find(l=>l.name===r),o=l=>({background:t?"rgba(34,197,94,0.12)":"#f0fdf4",color:t?"#86efac":"#15803d",border:`1px solid ${l?t?"#4ade80":"#22c55e":"transparent"}`,borderRadius:"6px",padding:"2px 8px",fontSize:"11px",cursor:"pointer"});return ra.default.createElement("div",{style:{marginTop:"8px"}},ra.default.createElement("div",{className:"flex items-center gap-1.5 flex-wrap font-mono"},ra.default.createElement("span",{className:"text-xs uppercase",style:{letterSpacing:"0.05em",color:t?"rgba(255,255,255,0.45)":"#9ca3af"}},"tools"),a.map(l=>ra.default.createElement("button",{key:l.name,onClick:s=>{s.stopPropagation(),n(r===l.name?null:l.name)},title:r===l.name?"Hide definition":"Show definition",style:o(r===l.name)},"\u2699 ",l.name))),i&&ra.default.createElement("div",{onClick:l=>l.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"}`}},ra.default.createElement(CE,{tool:i,darkMode:t})))}var $le=["application/json","application/xml","application/x-yaml","application/csv"],Ule=/\.(csv|md|txt|json|ya?ml)$/i;function w7(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/")||$le.includes(t)||Ule.test(r)?"text":"file"}function S7(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 A7(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 k7=e=>e==null?null:e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(2)}s`,$v=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}},Fle=["text","output","body","content"],N7=e=>{if(e==null)return null;if(typeof e=="object")return e;try{return JSON.parse(e)}catch{return null}},Wle=e=>{let t=N7(e.tool_result)??N7(e.content);if(!t||typeof t!="object"||Array.isArray(t))return null;let r=Fle.find(i=>typeof t[i]=="string"&&t[i].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 "),a=Object.fromEntries(Object.entries(t).filter(([i])=>i!==r));return{field:r,meta:n,body:t[r],rest:a}},Hle=e=>!!(e.tool_name||e.tool_call_id||e.tool_arguments||e.tool_result||(e.tool_calls||[]).length>0||e.duration_ms!=null||$v(e.content)),_7=280,Vle=["tool","system","developer"],Uv=(e,t=_7)=>e.replace(/\s+/g," ").trim().slice(0,t),_E=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)}},O7=e=>{let t=e.tool_calls;return t?Array.isArray(t)?t.map(r=>({name:r.function?.name||r.name||e.tool_name,args:_E(r.function?.arguments??r.arguments??r.input)})):[{name:e.tool_name,args:_E(t)}]:[]},T7=e=>!!(e&&String(e).trim()&&String(e).trim()!=="\u2014"),Kle=e=>{let t=(e||[]).filter(Boolean),r=new Map,n=new Set;return t.forEach((a,i)=>{if(a.role!=="assistant"||T7(a.content))return;let o=O7(a);if(o.length===0)return;let l=new Set;Array.isArray(a.tool_calls)?a.tool_calls.forEach(u=>u.id&&l.add(u.id)):a.tool_call_id&&l.add(a.tool_call_id);let s=[];for(let u=i+1;u0&&c.tool_call_id&&!l.has(c.tool_call_id))break;s.push(u)}s.length!==0&&(s.forEach((u,c)=>{let d=t[u],f=o.find(p=>p.name&&p.name===d.tool_name)||o[Math.min(c,o.length-1)];f&&f.args&&!d.tool_arguments&&r.set(u,{tool_arguments:f.args,created_at:a.created_at||d.created_at})}),n.add(i))}),t.map((a,i)=>r.has(i)?{...a,...r.get(i)}:a).filter((a,i)=>!n.has(i))},C7=e=>Vle.includes(e.role)&&typeof e.content=="string"&&Uv(e.content).length>=_7,qle=({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),a=Math.max(e.span_duration_ms/r*100,2),i=e.role==="tool"?"#22c55e":e.role==="assistant"?"#ef4444":"#60a5fa";return be.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"}},be.default.createElement("span",{style:{position:"absolute",top:0,bottom:0,left:`${n}%`,width:`${Math.min(a,100-n)}%`,borderRadius:"999px",background:i}}))},S1=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}),mr=(e,t)=>{switch(e){case"user":return t?{background:"rgba(59,130,246,0.15)",color:"#93c5fd",label:"User"}:{background:"#eff6ff",color:"#1d4ed8",label:"User"};case"assistant":return t?{background:"rgba(239,68,68,0.12)",color:"#fca5a5",label:"Assistant"}:{background:"#fef2f2",color:"#b91c1c",label:"Assistant"};case"tool":return t?{background:"rgba(245,158,11,0.12)",color:"#fcd34d",label:"Tool"}:{background:"#fffbeb",color:"#b45309",label:"Tool"};case"system":return t?{background:"rgba(139,92,246,0.15)",color:"#c4b5fd",label:"System"}:{background:"#f5f3ff",color:"#6d28d9",label:"System"};case"developer":return t?{background:"rgba(20,184,166,0.15)",color:"#5eead4",label:"Dev"}:{background:"#f0fdfa",color:"#0f766e",label:"Dev"};default:return t?{background:"rgba(255,255,255,0.08)",color:"rgba(255,255,255,0.7)",label:e}:{background:"#f3f4f6",color:"#374151",label:e}}},E7={image:"IMG",document:"PDF",text:"TXT",file:"FILE"};function A1({attachments:e,darkMode:t,testId:r,onRemove:n,removeTestId:a}){let i=(e||[]).filter(Boolean);if(i.length===0)return null;let o=$a(t);return be.default.createElement("div",{className:"flex flex-wrap gap-2 mt-1.5"},i.map((l,s)=>{let u=String(l.content_type||""),c=(l.kind==="image"||u.startsWith("image/"))&&A7(l.url),d=S7(l.byte_size);return be.default.createElement("span",{key:l.id??`${l.filename}-${s}`,"data-testid":r,title:[l.filename,u,d].filter(Boolean).join(" \xB7 "),className:"inline-flex items-center gap-2 rounded-lg px-2 py-1 text-xs",style:{background:o.mutedBg,border:`1px solid ${o.cardBorder}`,color:o.textCell,maxWidth:"260px"}},c?be.default.createElement("img",{src:l.url,alt:l.filename||"",style:{width:"36px",height:"36px",objectFit:"cover",borderRadius:"4px",flexShrink:0}}):be.default.createElement("span",{className:"font-mono",style:{color:o.textMuted,flexShrink:0}},E7[l.kind]||E7.file),be.default.createElement("span",{className:"min-w-0"},be.default.createElement("span",{className:"block truncate"},l.filename||"attachment"),d&&be.default.createElement("span",{className:"block font-mono",style:{color:o.textMuted}},d)),n&&be.default.createElement("button",{type:"button","data-testid":a,onClick:f=>{f.stopPropagation(),n(l,s)},title:"Remove","aria-label":`Remove ${l.filename||"attachment"}`,className:"font-mono",style:{color:o.textMuted,background:"none",border:"none",cursor:"pointer",padding:"0 2px"}},"\u2715"))}))}var M7=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},Yle=(e,t)=>{let r=Pf(e);if(r)return r;let n=t.find(a=>a&&a.role==="assistant"&&(e.tool_call_id?M7(a).has(e.tool_call_id):Pf(a)));return n?Pf(n,{callId:e.tool_call_id}):null},Gle=(e,t)=>{let r=M7(e);return t.some(n=>n&&n.role==="tool"&&n.tool_name===Vu&&(!n.tool_call_id||r.size===0||r.has(n.tool_call_id)))};function oi({messages:e,darkMode:t,tools:r,onUiAction:n,onEditMessage:a,onDeleteMessage:i,testIdPrefix:o}){let[l,s]=(0,be.useState)({}),[u,c]=(0,be.useState)(null),[d,f]=(0,be.useState)(""),[p,m]=(0,be.useState)(!1),[y,h]=(0,be.useState)(null),v=A=>s(P=>({...P,[A]:!P[A]})),g={textPrimary:t?"#ffffff":"#111827",textSecondary:t?"rgba(255,255,255,0.6)":"#6b7280",textMuted:t?"rgba(255,255,255,0.4)":"#9ca3af"},b=A=>o?`${o}-${A}`:void 0,x=A=>A.stopPropagation(),S=A=>{c(A.id),f(A.content||""),h(null)},w=()=>{c(null),h(null)},_=async A=>{if(!p){m(!0),h(null);try{await a(A,d),c(null)}catch(P){h(P.message||"Could not save the message")}finally{m(!1)}}},k=Kle(e);return be.default.createElement("div",{className:"space-y-3"},k.map(A=>{let P=mr(A.role,t),K=!!l[A.id],z=u===A.id,Q=!!((a||i)&&["user","assistant"].includes(A.role)),M=A.role==="tool"&&A.tool_name===Vu?Yle(A,k):null,F=A.role==="assistant"&&!z?bE(A.content):null,N=A.role==="assistant"&&!Gle(A,k)?Pf(A):null,O=C7(A)&&!K,I=Hle(A)||C7(A),D=$v(A.tool_arguments),T=$v(A.tool_result)||$v(A.content),j=A.tool_calls&&(!Array.isArray(A.tool_calls)||A.tool_calls.length>0)?$v(A.tool_calls):null,R=A.role==="tool"?Wle(A):null,U=A.tool_name?(r||[]).find(V=>V&&V.name===A.tool_name):null,q=A.role==="tool"?_E(A.tool_arguments):null,ee=A.role==="tool"&&!!q,fe=mr("assistant",t),pe=mr("tool",t),Pe=A.role==="tool"&&!A.tool_arguments&&k.some(V=>V&&V.role==="assistant"&&(A.tool_call_id&&V.tool_call_id===A.tool_call_id||Array.isArray(V.tool_calls)&&V.tool_calls.some(J=>J.id&&J.id===A.tool_call_id))),oe=A.role==="assistant"&&!T7(A.content)?O7(A):[],Te=S1(t);return be.default.createElement("div",{key:A.id,className:"group","data-testid":o,"data-message-id":o?A.id:void 0,"data-role":o?A.role:void 0},be.default.createElement("div",{className:`flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 ${I?"cursor-pointer":""}`,onClick:I?()=>v(A.id):void 0,style:K?{background:t?"rgba(255,255,255,0.04)":"rgba(0,0,0,0.03)"}:{}},be.default.createElement("span",{className:"flex flex-col gap-1 flex-shrink-0 mt-0.5",style:{minWidth:"72px"}},(ee?[fe,pe]:[P]).map(V=>be.default.createElement("span",{key:V.label,className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:V.background,color:V.color,textAlign:"center"}},V.label))),be.default.createElement("div",{className:"min-w-0 flex-1"},be.default.createElement("div",{className:"text-sm break-words",style:{color:g.textPrimary}},z?be.default.createElement("div",{className:"space-y-2",onClick:x},be.default.createElement("textarea",{"data-testid":b("editor"),value:d,onChange:V=>f(V.target.value),onKeyDown:V=>{V.key==="Escape"&&w(),V.key==="Enter"&&(V.metaKey||V.ctrlKey)&&_(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:g.textPrimary,fontFamily:"inherit",fontSize:"13px",resize:"vertical"}}),be.default.createElement("div",{className:"flex items-center gap-2 text-xs"},be.default.createElement("button",{type:"button","data-testid":b("save"),onClick:()=>_(A),disabled:p,style:{padding:"4px 10px",borderRadius:"6px",background:"#ef4444",color:"#ffffff",border:"none",cursor:p?"wait":"pointer",fontWeight:500}},p?"Saving\u2026":"Save"),be.default.createElement("button",{type:"button","data-testid":b("cancel"),onClick:w,disabled:p,style:{padding:"4px 10px",borderRadius:"6px",background:"transparent",color:g.textSecondary,border:`1px solid ${t?"rgba(255,255,255,0.2)":"#d1d5db"}`,cursor:"pointer"}},"Cancel"),y&&be.default.createElement("span",{style:{color:"#dc2626"}},y))):M?be.default.createElement("div",null,be.default.createElement("div",{className:"font-mono text-xs mb-1",style:{color:pe.color}},"\u2699 ",A.tool_name," \xB7 ",M.length," block",M.length===1?"":"s"),be.default.createElement(vs,{blocks:M,onAction:n,darkMode:t})):A.role==="tool"?be.default.createElement("span",{style:{display:"grid",gap:"2px"}},q&&!Pe&&be.default.createElement("span",{className:"font-mono text-xs break-words"},A.tool_name&&be.default.createElement("span",{style:{color:pe.color}},"\u2699 ",A.tool_name," "),be.default.createElement("span",{style:{color:ee?fe.color:g.textMuted}},"in:")," ",Uv(q,180),q.length>180?"\u2026":""),R?be.default.createElement("span",null,A.tool_name&&!(q&&!Pe)&&be.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:pe.color}},"\u2699 ",A.tool_name),(q||Pe)&&be.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:ee?pe.color:g.textMuted}},"out:"),R.meta&&be.default.createElement("span",{className:"font-mono text-xs mr-2",style:{color:g.textMuted}},R.meta),"\u201C",R.body.replace(/\s+/g," ").trim().slice(0,180),R.body.length>180?"\u2026":"","\u201D"):A.content?be.default.createElement("span",null,A.tool_name&&!(q&&!Pe)&&be.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:pe.color}},"\u2699 ",A.tool_name),(q||Pe)&&be.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:ee?pe.color:g.textMuted}},"out:"),"\u201C",Uv(A.content,180),A.content.replace(/\s+/g," ").trim().length>180?"\u2026":"","\u201D"):be.default.createElement("span",{className:"whitespace-pre-wrap"},A.tool_name?`\u2192 ${A.tool_name}(...)`:"\u2014")):O?be.default.createElement("span",{style:{color:g.textSecondary}},Uv(A.content),"\u2026"):oe.length>0?be.default.createElement("span",{style:{display:"grid",gap:"2px"}},oe.map((V,J)=>be.default.createElement("span",{key:J,className:"font-mono text-xs break-words"},V.name&&be.default.createElement("span",{style:{color:g.textMuted}},V.name," "),be.default.createElement("span",{style:{color:g.textMuted}},"in:")," ",V.args?be.default.createElement(be.default.Fragment,null,Uv(V.args,180),V.args.length>180?"\u2026":""):"\u2014"))):F&&F.blocks?be.default.createElement(vs,{blocks:F.blocks,onAction:n,darkMode:t}):F&&F.object?be.default.createElement(vs,{blocks:[{type:"object",value:F.object}],darkMode:t}):be.default.createElement(Ni,{text:A.content||"\u2014",darkMode:t,onUiAction:n}),N&&!z&&be.default.createElement("div",{className:"mt-2"},be.default.createElement(vs,{blocks:N,onAction:n,darkMode:t})),A.role==="user"&&be.default.createElement(A1,{attachments:A.attachments,darkMode:t,testId:b("attachment")})),be.default.createElement("div",{className:"text-xs mt-0.5 font-mono flex items-center gap-2 flex-wrap",style:{color:g.textMuted}},Q&&!z&&be.default.createElement("span",{className:"flex items-center gap-2 opacity-0 group-hover:opacity-100 focus-within:opacity-100 transition-opacity",onClick:x},a&&be.default.createElement("button",{type:"button","data-testid":b("edit"),onClick:()=>S(A),className:"hover:underline",style:{color:g.textSecondary,background:"none",border:"none",padding:0,cursor:"pointer",font:"inherit"}},"Edit"),i&&be.default.createElement("button",{type:"button","data-testid":b("delete"),onClick:()=>i(A),className:"hover:underline",style:{color:"#dc2626",background:"none",border:"none",padding:0,cursor:"pointer",font:"inherit"}},"Delete")),A.created_at&&be.default.createElement("span",null,new Date(A.created_at).toLocaleTimeString()),A.tool_name&&A.role!=="tool"&&be.default.createElement("span",{className:"px-1.5 py-0.5 rounded",style:{background:P.background,color:P.color}},"\u2699 ",A.tool_name),A.duration_ms!=null&&be.default.createElement("span",null,k7(A.duration_ms)),(A.tool_calls||[]).length>0&&be.default.createElement("span",null,A.tool_calls.length," tool call",A.tool_calls.length>1?"s":""),A.content_checksum&&be.default.createElement("span",{title:"Content fingerprint"},"\u{1F512} ",A.content_checksum.slice(0,8)))),be.default.createElement(qle,{message:A,darkMode:t}),I&&be.default.createElement("svg",{className:`w-3.5 h-3.5 mt-1 flex-shrink-0 transition-transform ${K?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",style:{color:g.textMuted}},be.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))),K&&be.default.createElement("div",{className:"ml-3 mt-1 mb-2 pl-4 space-y-2 border-l-2",style:{borderColor:P.color+"55"}},be.default.createElement("div",{className:"flex flex-wrap gap-x-5 gap-y-1 text-xs font-mono",style:{color:g.textSecondary}},A.created_at&&be.default.createElement("span",null,new Date(A.created_at).toLocaleString()),A.tool_call_id&&be.default.createElement("span",null,"call: ",A.tool_call_id),A.duration_ms!=null&&be.default.createElement("span",null,"took ",k7(A.duration_ms)),A.content_checksum&&be.default.createElement("span",null,"\u{1F512} ",A.content_checksum)),D&&be.default.createElement("div",null,be.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:ee?fe.color:g.textMuted}},"Arguments",ee?" \xB7 from the agent":""),be.default.createElement("pre",{style:Te},D)),R?be.default.createElement("div",null,be.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:ee?pe.color:g.textMuted}},"Result",ee?" \xB7 from the tool":""),Object.keys(R.rest).length>0&&be.default.createElement("pre",{style:Te},JSON.stringify(R.rest,null,2)),be.default.createElement("div",{className:"text-xs uppercase tracking-wide mt-2 mb-1",style:{color:g.textMuted}},R.field," \xB7 ",R.body.length.toLocaleString()," chars"),be.default.createElement("pre",{style:{...Te,whiteSpace:"pre-wrap",maxHeight:"320px",overflowY:"auto"}},R.body.slice(0,8e3),R.body.length>8e3?` -\u2026`:"")):T?be.default.createElement("div",null,be.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:g.textMuted}},A.role==="tool"?"Result":"Content (parsed)"),be.default.createElement("pre",{style:Te},T)):A.role==="tool"&&A.content?be.default.createElement("div",null,be.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:ee?pe.color:g.textMuted}},"Result",ee?" \xB7 from the tool":""," \xB7 ",A.content.length.toLocaleString()," chars"),be.default.createElement("pre",{style:{...Te,whiteSpace:"pre-wrap",maxHeight:"320px",overflowY:"auto"}},A.content.slice(0,8e3),A.content.length>8e3?` -\u2026`:"")):null,j&&be.default.createElement("div",null,be.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:g.textMuted}},"Requested tool calls"),be.default.createElement("pre",{style:Te},j)),U&&be.default.createElement("div",null,be.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:g.textMuted}},"Tool definition"),be.default.createElement(CE,{tool:U,darkMode:t}))))}))}var ot=re(ne());var Ar=re(ne());var Mr=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"}),P7=(e,t=200)=>{let r=String(e??"").replace(/\s+/g," ").trim();return r.length>t?`${r.slice(0,t)}\u2026`:r};function qu({open:e,darkMode:t,size:r=14,style:n}){return Ar.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:Mr(t).textMuted,...n},"aria-hidden":"true"},Ar.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))}function k1({darkMode:e,id:t,children:r,style:n,className:a=""}){let i=Mr(e);return Ar.default.createElement("div",{id:t,className:`rounded-xl border overflow-hidden transition-colors ${a}`,style:{backgroundColor:i.cardBg,borderColor:i.cardBorder,...n}},r)}var D7=(e,{wrap:t=!0,maxHeight:r=320}={})=>({background:Mr(e).preBg,borderRadius:"6px",padding:"6px 8px",margin:"2px 0 4px 0",overflowX:"auto",overflowY:"auto",maxHeight:`${r}px`,whiteSpace:t?"pre-wrap":"pre"}),Xle=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 jf({lines:e,darkMode:t,onClick:r,indent:n=0,size:a="12px",style:i,max:o=200}){let[l,s]=zf(),u=Mr(t),c=(e||[]).filter(d=>d&&d.text);return c.length===0?null:Ar.default.createElement("div",{onClick:r,className:"min-w-0",style:{display:"grid",gap:"2px",paddingLeft:n?`${n}px`:0,fontFamily:$e.mono,fontSize:a,color:u.textSecondary,cursor:r?"pointer":"default",...i}},c.map((d,f)=>{let p=`${d.label}-${f}`,m=l(p),y=d.max||o,h=String(d.text).replace(/\s+/g," ").trim(),v=Xle(d.text),g=v.json||h.length>60||h!==String(d.text).trim();return Ar.default.createElement("div",{key:p},Ar.default.createElement("div",{onClick:g?b=>{b.stopPropagation(),s(p)}:void 0,title:g?m?"Collapse":"Expand":void 0,style:{cursor:g?"pointer":"default",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0}},Ar.default.createElement("span",{style:{color:d.color||u.textMuted}},g?m?"\u25BE":"\u25B8":"\xA0"," ",d.label,":")," ",!m&&P7(h,y)),m&&Ar.default.createElement("pre",{onClick:b=>b.stopPropagation(),style:D7(t,{wrap:!v.json})},v.text))}))}function Fv({options:e,value:t,onChange:r,darkMode:n,label:a,style:i}){let o=Mr(n);return Ar.default.createElement("div",{className:"flex items-center gap-1 flex-shrink-0",style:i},a&&Ar.default.createElement("span",{className:"text-xs mr-1",style:{color:o.textMuted}},a),e.map(l=>Ar.default.createElement("button",{key:l.id,type:"button",onClick:s=>{s.stopPropagation(),r(l.id)},title:l.hint,className:"px-2 py-0.5 text-xs rounded transition-colors",style:t===l.id?{background:o.controlActiveBg,color:o.textPrimary,boxShadow:n?"none":"0 1px 2px rgba(0,0,0,0.08)"}:{color:o.textSecondary}},l.label)))}function I7({label:e,body:t,open:r,onToggle:n,darkMode:a,prose:i=!1,max:o=140}){let l=Mr(a);return Ar.default.createElement("div",null,Ar.default.createElement("div",{onClick:s=>{s.stopPropagation(),n()},title:r?"Collapse":"Expand",style:{cursor:"pointer",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},Ar.default.createElement("span",{style:{color:l.textMuted}},r?"\u25BE":"\u25B8"," ",e,":")," ",!r&&Ar.default.createElement("span",{style:{color:l.textMuted}},P7(t,o))),r&&Ar.default.createElement("pre",{onClick:s=>s.stopPropagation(),style:D7(a,{wrap:i})},t))}function zf(e={}){let[t,r]=(0,Ar.useState)(e),n=(0,Ar.useCallback)(i=>{r(o=>({...o,[i]:!o[i]}))},[]);return[(0,Ar.useCallback)(i=>!!t[i],[t]),n,r]}var OE={root:"#9ca3af",prompt:"#60a5fa",generate:"#a855f7",llm:"#ef4444",thinking:"#fbbf24",tool:"#22c55e",response:"#2dd4bf",embedding:"#818cf8"},z7=[{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"}],kr=e=>e==null?"\u2014":e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(2)}s`,TE=e=>{switch(e){case"root":return $t.spans.root;case"prompt":return $t.spans.prompt;case"generate":return $t.spans.generate;case"llm":return $t.spans.llm;case"thinking":return $t.spans.thinking;case"tool":return $t.spans.tool;case"response":return $t.spans.response;default:return"-"}},Zle=(e,t)=>{let r=Math.max(e||0,1),n=Math.max(t||1,1);if(n<=1)return 100;let a=Math.log(r)/Math.log(n);return Math.min(100,Math.max(4,a*100))},Qle=(e,t)=>{let r=[...e||[]];switch(t){case"duration":return r.sort((n,a)=>(a.duration||0)-(n.duration||0));case"name":return r.sort((n,a)=>(n.name||"").localeCompare(a.name||""));default:return r.sort((n,a)=>(n.start||0)-(a.start||0))}},Jle=e=>{let t=e.tokens||{};return(t.input||0)+(t.output||0)+(t.thinking||0)},Rle=(e,t)=>{if(!t.duration_ms)return kr(e.duration);let r=(e.duration||0)/t.duration_ms*100;return`${kr(e.duration)} \xB7 ${r<1?r.toFixed(2):r.toFixed(1)}%`},ese=e=>{if(typeof e!="string")return null;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return null}},j7=e=>e.endsWith(".instructions")?0:e.endsWith(".tools")?1:e.endsWith(".messages")?3:2,ME=e=>{let t=e.spans||[],r=i=>{for(let o of t){let l=(o.attributes||{})[i];if(l)return l}return null},n=r("llm.prompt");if(!n){let i=r("prompt.input.messages");if(i)try{n=[...JSON.parse(i)].reverse().find(s=>s&&s.role==="user"&&s.content)?.content}catch{}}let a=r("llm.completion")||r("llm.output.message");return{input:n,output:a}},tse=e=>{let t=e.attributes||{},r=null,n="input",a="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 s=t["tool.input.args"]||t["tool.arguments"];r=typeof s=="string"?s:JSON.stringify(s),n="in",a="assistant"}let i=null,o="output",l="assistant";return t["llm.output.message"]||t["llm.completion"]?i=t["llm.output.message"]||t["llm.completion"]:(t["tool.output.result"]||t["tool.result"])&&(i=t["tool.output.result"]||t["tool.result"],o="out",l="tool"),i!=null&&typeof i!="string"&&(i=JSON.stringify(i)),{input:r,output:i,inputLabel:n,inputTone:a,outputLabel:o,outputTone:l}},rse=(e,t)=>{let r=tse(e),n=ME(t);return r.input&&r.input===n.input&&(r.input=null),r.output&&r.output===n.output&&(r.output=null),r},nse=e=>{let t={...e.attributes||{}},r=f=>{let p=t[f];return delete t[f],p},n=[],a=f=>n.push({id:`${e.span_id}-m${n.length}`,...f}),i=r("prompt.input.instructions")||r("llm.instructions");i&&a({role:"system",content:String(i)});let o=r("prompt.input.messages");if(o)try{JSON.parse(o).forEach(f=>{f&&a({role:f.role||"user",content:typeof f.content=="string"?f.content:JSON.stringify(f.content),tool_call_id:f.tool_call_id,tool_calls:f.tool_calls})})}catch{t["prompt.input.messages"]=o}let l=r("llm.prompt");l&&a({role:"user",content:String(l)});let s=r("tool.input.args")||r("tool.arguments"),u=r("tool.output.result")||r("tool.result");if(s||u){let f=r("tool.name");a({role:"tool",tool_name:f||(e.name||"").replace(/^tool\./,""),tool_arguments:s,content:u?String(u):null})}let c=r("llm.completion"),d=r("llm.output.message");return(c||d)&&a({role:"assistant",content:String(c||d)}),{messages:n,rest:t}},PE=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 ase({span:e,darkMode:t,tools:r=[]}){let[n,a]=zf(),i=Mr(t),{messages:o,rest:l}=nse(e),s=null,u=l["prompt.input.tools"];if(u)try{let p=typeof u=="string"?JSON.parse(u):u;Array.isArray(p)&&p.length>0&&(s=p,delete l["prompt.input.tools"])}catch{}let c=Object.entries(l).sort((p,m)=>j7(p[0])-j7(m[0])),d=o.length===1&&o[0].role==="tool"?o[0]:null,f=d?.tool_arguments==null?null:typeof d.tool_arguments=="string"?d.tool_arguments:JSON.stringify(d.tool_arguments);return ot.default.createElement("div",{onClick:p=>p.stopPropagation(),style:{margin:"4px 0 8px 0",padding:"10px 12px",borderRadius:"8px",background:i.panelBg,border:`1px solid ${i.cardBorder}`,fontFamily:$e.mono,fontSize:"12px",color:i.textBody,cursor:"default"}},ot.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 20px"}},ot.default.createElement("span",null,"duration: ",kr(e.duration)),ot.default.createElement("span",null,"status: ",e.status||"OK"),Jle(e)>0&&ot.default.createElement("span",null,"tokens in:",e.tokens.input||0," out:",e.tokens.output||0,e.tokens.thinking>0?` thinking:${e.tokens.thinking}`:""),ot.default.createElement("span",{style:{color:i.textMuted}},"span: ",e.span_id)),d&&ot.default.createElement("div",{style:{marginTop:"8px",display:"grid",gap:"4px"}},ot.default.createElement("div",{style:{fontSize:"12px",wordBreak:"break-all"}},ot.default.createElement("span",{style:{color:mr("tool",t).color}},"\u2699 ",d.tool_name),f&&ot.default.createElement(ot.default.Fragment,null," ",ot.default.createElement("span",{style:{color:mr("assistant",t).color}},"in:")," ",ot.default.createElement("span",{style:{color:i.textBody}},f))),d.content&&ot.default.createElement("div",{style:{fontSize:"12px"}},ot.default.createElement("span",{style:{color:mr("tool",t).color}},"out:")," ",ot.default.createElement("span",{style:{color:i.textBody,whiteSpace:"pre-wrap",display:"inline-block",maxHeight:"240px",overflowY:"auto",verticalAlign:"top",maxWidth:"100%"}},d.content))),o.length>0&&!d&&ot.default.createElement("div",{style:{marginTop:"10px",fontFamily:"ui-sans-serif, system-ui, sans-serif"}},ot.default.createElement(oi,{messages:o,darkMode:t,tools:s||r})),s&&ot.default.createElement(EE,{tools:s,darkMode:t}),c.length>0&&ot.default.createElement("div",{style:{marginTop:"6px",display:"grid",gap:"2px"}},c.map(([p,m])=>{let y=p.match(/args|result|input|output/)?ese(m):null,h=!y&&(p.endsWith(".instructions")||p.match(/input|output|result/))&&typeof m=="string"?m:null,v=y||h;if(!v)return ot.default.createElement("div",{key:p,style:{wordBreak:"break-all"}},ot.default.createElement("span",{style:{color:i.textMuted}},p,":")," ",typeof m=="string"?m:JSON.stringify(m));let g=`${e.span_id}:${p}`;return ot.default.createElement(I7,{key:p,label:p,body:v,prose:!y,darkMode:t,open:n(g),onToggle:()=>a(g)})})))}function ise({span:e,trace:t,darkMode:r,sort:n,longest:a,expanded:i,onToggle:o,tools:l}){let s=Mr(r),u=Object.keys(e.attributes||{}).length>0,c=i?null:rse(e,t);return ot.default.createElement(ot.default.Fragment,null,ot.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:i?s.hoverBg:void 0},onClick:u?()=>o():void 0,title:u?`${e.name} \u2014 click for span details`:e.name},ot.default.createElement("div",{className:"flex items-baseline gap-2 min-w-0"},ot.default.createElement("span",{className:"flex-shrink-0",style:{color:e.type==="thinking"?void 0:s.textMuted}},TE(e.type)),ot.default.createElement("span",{className:"text-sm font-medium truncate",style:{color:e.error?s.bad:s.textPrimary}},e.name),ot.default.createElement("span",{className:"text-xs ml-auto flex-shrink-0",style:{fontFamily:$e.mono,color:s.textMuted}},Rle(e,t)),u&&ot.default.createElement(qu,{open:i,darkMode:r,size:13,style:{marginLeft:"2px"}})),ot.default.createElement("div",{className:"h-3 relative rounded mt-0.5",style:{background:s.trackBg}},ot.default.createElement("div",{className:"absolute h-3 rounded",style:{background:e.error?"#f87171":OE[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}%`:`${Zle(e.duration,a)}%`}})),c&&ot.default.createElement(jf,{darkMode:r,size:"11px",style:{marginTop:"2px"},lines:[{label:c.inputLabel,text:c.input,color:mr(c.inputTone,r).color,max:160},{label:c.outputLabel,text:c.output,color:mr(c.outputTone,r).color,max:160}]})),i&&ot.default.createElement(ase,{span:e,darkMode:r,tools:l}))}function DE({trace:e,darkMode:t,sort:r="time",tools:n,keyPrefix:a=""}){let[i,o]=zf(),l=Mr(t),s=Qle(e?.spans,r),u=n||PE(e);if(s.length===0)return ot.default.createElement("div",{className:"text-sm py-2",style:{color:l.textMuted}},"No spans recorded for this trace.");let c=Math.max(...s.map(d=>d.duration||0),1);return ot.default.createElement("div",{className:"space-y-2"},s.map((d,f)=>{let p=`${a}${d.span_id||f}`;return ot.default.createElement(ise,{key:p,span:d,trace:e,darkMode:t,sort:r,longest:c,tools:u,expanded:i(p),onToggle:()=>o(p)})}))}var ose=[{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"}],IE=e=>{let t=e?.spans||[],r=null;for(let u of t){let c=u.tokens||{},d=(c.input||0)+(c.output||0);d>0&&(!r||d>r.total)&&(r={input:c.input||0,output:c.output||0,thinking:c.thinking||0,cached:c.cached||0,total:d})}if(!r)return null;let n=u=>{for(let c of t){let d=(c.attributes||{})[u];if(d)return d}return null},a=Zi(n("prompt.input.instructions")||n("llm.instructions")),i=Zi(n("prompt.input.tools")||n("llm.tools")),o=Zi(n("prompt.input.mcp_tools")),l=0;for(let u of t){let c=u.attributes||{},d=c["tool.output.result"]||c["tool.result"],f=c["tool.input.args"]||c["tool.arguments"];d&&(l+=Zi(d)),f&&(l+=Zi(f))}l=Math.min(l,r.input);let s=Math.max(r.input-a-i-o-l,0);return{used:r.total,limit:zv(e.model),cached:r.cached,thinking:r.thinking,segments:[{key:"messages",label:"Messages",tokens:s},{key:"tool_results",label:"Tool results",tokens:l},{key:"instructions",label:"Instructions",tokens:a},{key:"tool_schemas",label:"Tool schemas",tokens:i},{key:"mcp_schemas",label:"MCP tool schemas",tokens:o},{key:"output",label:"Generated output",tokens:r.output}]}},lse=e=>{let t=0,r=[];(e?.spans||[]).forEach(i=>{(i.nested||0)!==0&&(i.type==="tool"?r.push(i):(i.type==="llm"||i.type==="generate")&&(t=Math.max(t,i.duration||0)))});let n=r.reduce((i,o)=>i+(o.duration||0),0);t=Math.max(t-n,0);let a=e?.duration_ms||t+n||1;return{generation:t,tools:r,toolTotal:n,total:a,overhead:Math.max(a-t-n,0)}};function sse({trace:e,darkMode:t}){let r=Mr(t),{generation:n,tools:a,toolTotal:i,total:o,overhead:l}=lse(e);if(n===0&&i===0||n/o>=.99&&i/o<.01)return null;let s=c=>`${(c/o*100).toFixed(c/o<.01?2:1)}%`,u=(c,d)=>Fe.default.createElement("div",{style:{width:`${Math.max(c/o*100,.4)}%`,background:d,height:"100%"}});return Fe.default.createElement("div",{style:{marginTop:"14px",paddingTop:"12px",borderTop:`1px solid ${r.cardBorder}`}},Fe.default.createElement("div",{style:{fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.05em",color:r.textSecondary,marginBottom:"6px"}},"Time breakdown \u2014 generation vs tools"),Fe.default.createElement("div",{style:{display:"flex",height:"10px",borderRadius:"5px",overflow:"hidden",background:r.trackBg}},u(n,"#ef4444"),u(i,"#10b981"),l>0&&u(l,t?"rgba(255,255,255,0.2)":"#d1d5db")),Fe.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 18px",marginTop:"8px",fontSize:"12px",fontFamily:$e.mono,color:r.textBody}},Fe.default.createElement("span",null,Fe.default.createElement("span",{style:{color:"#ef4444"}},"\u25A0")," generation ",kr(n)," (",s(n),")"),Fe.default.createElement("span",null,Fe.default.createElement("span",{style:{color:"#10b981"}},"\u25A0")," tools ",kr(i)," (",s(i),")"),l>0&&Fe.default.createElement("span",null,Fe.default.createElement("span",{style:{color:r.textSecondary}},"\u25A0")," overhead ",kr(l)," (",s(l),")")),a.length>0&&Fe.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 18px",marginTop:"4px",fontSize:"12px",fontFamily:$e.mono,color:r.textSecondary}},a.map((c,d)=>Fe.default.createElement("span",{key:d},c.name," ",kr(c.duration)," (",s(c.duration||0),")"))))}function use({trace:e,darkMode:t}){let[r,n]=(0,Fe.useState)(null),[a,i]=(0,Fe.useState)(!1),o=Mr(t);if((0,Fe.useEffect)(()=>{if(e?.id==null)return;let s=!0;return n(null),i(!1),fetch(`/api/interactions/trace-${e.id}`).then(u=>u.ok?u.json():Promise.reject(new Error("request failed"))).then(u=>s&&n(u.interaction)).catch(()=>s&&i(!0)),()=>{s=!1}},[e?.id]),a)return Fe.default.createElement("div",{className:"text-sm py-4",style:{color:o.bad}},"Couldn't load the conversation for this trace.");if(!r)return Fe.default.createElement("div",{className:"text-sm py-4",style:{color:o.textMuted}},"Loading conversation\u2026");let l=r.instructions?[{id:`trace-${e.id}-system`,role:"system",content:r.instructions,created_at:r.created_at},...r.messages||[]]:r.messages||[];return l.length===0?Fe.default.createElement("div",{className:"text-sm py-4",style:{color:o.textMuted}},"This trace predates content capture \u2014 no conversation to show."):Fe.default.createElement(oi,{messages:l,darkMode:t,tools:PE(e)})}function Wv({trace:e,darkMode:t,compact:r=!1,showConversation:n=!0}){let[a,i]=(0,Fe.useState)("spans"),[o,l]=(0,Fe.useState)("time"),s=Mr(t),u=(e?.spans||[]).length,c=IE(e),d=e?.tokens||{},f=(0,Fe.useCallback)(p=>i(n?p:"spans"),[n]);return e?Fe.default.createElement("div",null,Fe.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2 mb-2"},Fe.default.createElement("div",{className:"flex items-center gap-1"},n&&Fe.default.createElement(Fv,{options:ose,value:a,onChange:f,darkMode:t}),Fe.default.createElement("span",{className:"text-xs ml-2",style:{color:s.textSecondary}},u," ",u===1?"span":"spans")),a==="spans"&&u>0&&Fe.default.createElement(Fv,{options:z7,value:o,onChange:l,darkMode:t,label:"Sort"})),a==="conversation"?Fe.default.createElement("div",{className:"rounded-lg border p-4",style:{background:s.cardBg,borderColor:s.cardBorder}},Fe.default.createElement(use,{trace:e,darkMode:t})):Fe.default.createElement(Fe.default.Fragment,null,o==="time"?Fe.default.createElement("div",{className:"flex justify-between text-xs mb-2",style:{color:s.textMuted}},Fe.default.createElement("span",null,"0ms"),Fe.default.createElement("span",null,Math.round((e.duration_ms||0)*.33),"ms"),Fe.default.createElement("span",null,Math.round((e.duration_ms||0)*.66),"ms"),Fe.default.createElement("span",null,kr(e.duration_ms))):Fe.default.createElement("div",{className:"text-xs mb-2",style:{color:s.textMuted}},"Bar length compares duration on a log scale"),Fe.default.createElement(DE,{trace:e,darkMode:t,sort:o,keyPrefix:`${e.id||e.trace_id}:`})),c&&Fe.default.createElement("div",{className:"mt-3"},Fe.default.createElement(ms,{...c,label:"Context pressure",estimated:!0,darkMode:t})),Fe.default.createElement(sse,{trace:e,darkMode:t}),!r&&Fe.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:s.cardBorder,color:s.textSecondary}},Fe.default.createElement("span",null,"Tokens:"),d.thinking>0&&Fe.default.createElement("span",{className:"text-amber-500",style:{fontFamily:$e.mono}},"T:",d.thinking.toLocaleString()),Fe.default.createElement("span",{className:"text-blue-500",style:{fontFamily:$e.mono}},"in:",(d.input||0).toLocaleString()),Fe.default.createElement("span",{className:"text-green-500",style:{fontFamily:$e.mono}},"out:",(d.output||0).toLocaleString()),e.provider&&Fe.default.createElement("span",{style:{fontFamily:$e.mono}},e.provider,e.model?` \xB7 ${e.model}`:"")),e.error&&Fe.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"}},Fe.default.createElement("span",{className:"text-sm",style:{color:t?"#fca5a5":"#b91c1c"}},e.error))):null}var cse=e=>{if(!e)return"0";let t=(e.input||0)+(e.output||0)+(e.thinking||0);return t>=1e3?`${(t/1e3).toFixed(1)}K`:`${t}`},dse=e=>e==null?null:`$${e.toFixed(4)}`;function N1({trace:e,darkMode:t,expanded:r,onToggle:n}){let a=Mr(t),i=ME(e),o=IE(e),l=e.status!=="ERROR";return Pr.default.createElement(k1,{darkMode:t,id:`trace-row-${e.id}`},Pr.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:a.hoverBg}:void 0},Pr.default.createElement("div",{className:"flex items-center gap-3 min-w-0"},Pr.default.createElement("span",{className:"px-2 py-1 text-xs rounded flex-shrink-0",style:{fontFamily:$e.mono,background:a.controlBg,color:a.textSecondary}},"TRACE"),Pr.default.createElement("span",{className:"text-sm flex-shrink-0",style:{fontFamily:$e.mono,color:a.textMuted}},e.short_id),Pr.default.createElement("span",{className:"text-sm font-medium truncate",style:{color:a.textPrimary}},e.display_name)),Pr.default.createElement("div",{className:"flex items-center gap-4 flex-shrink-0 text-sm",style:{color:a.textSecondary}},e.model&&Pr.default.createElement("span",{className:"text-xs px-2 py-0.5 rounded",style:{fontFamily:$e.mono,background:t?"rgba(99,102,241,0.2)":"#eef2ff",color:t?"#a5b4fc":"#4338ca"},title:"Model that generated this trace"},e.model),o&&Pr.default.createElement(ms,{compact:!0,...o,label:"Context",darkMode:t}),Pr.default.createElement("span",null,Pr.default.createElement("i",{className:"fa-solid fa-clock mr-1"}),kr(e.duration_ms)),Pr.default.createElement("span",null,cse(e.tokens)," tokens"),e.estimated_cost!=null&&Pr.default.createElement("span",null,Pr.default.createElement("i",{className:"fa-solid fa-coins mr-1"}),dse(e.estimated_cost)),Pr.default.createElement("span",{style:{color:l?a.good:a.bad}},Pr.default.createElement("i",{className:`fa-solid ${l?"fa-check":"fa-xmark"} mr-1`}),l?"OK":"ERROR"),Pr.default.createElement(qu,{open:r,darkMode:t}))),!r&&Pr.default.createElement(jf,{darkMode:t,onClick:n,style:{padding:"0 16px 12px"},lines:[{label:"input",text:i.input,color:mr("user",t).color},{label:"output",text:i.output,color:mr("assistant",t).color}]}),r&&Pr.default.createElement("div",{className:"border-t p-4",style:{borderColor:a.cardBorder,background:a.innerBg}},Pr.default.createElement(Wv,{trace:e,darkMode:t})))}function Je(e=""){return`${(window.ACTIVE_AGENT_DASHBOARD?.mountPath||"").replace(/\/$/,"")}${e}`||"/"}function C1(e=""){window.history.pushState({},"",Je(e))}function gs(e=window.location.pathname){let t=(window.ACTIVE_AGENT_DASHBOARD?.mountPath||"").replace(/\/$/,"");return t&&(e===t||e.startsWith(`${t}/`))?e.slice(t.length)||"/":e}var L7=["#6366f1","#10b981","#f59e0b","#ec4899","#3b82f6","#8b5cf6","#14b8a6","#f97316"],fse=3e4,pse=e=>{let t={};return e.forEach((r,n)=>{t[r]=L7[n%L7.length]}),t},mse=e=>{let t={};return e.forEach(r=>{(r.spans||[]).forEach(n=>{if((n.nested||0)===0)return;let a=n.name||n.type||"unknown";t[a]||(t[a]={name:a,type:n.type,count:0,total:0,max:0,errors:0});let i=t[a];i.count+=1,i.total+=n.duration||0,i.max=Math.max(i.max,n.duration||0),n.error&&(i.errors+=1)})}),Object.values(t).map(r=>({...r,avg:r.total/r.count})).sort((r,n)=>n.total-r.total)},vse=(e,t,r,n=60)=>{let a=Date.now(),i=[],o=n*1e3,l=Math.max(1,Math.round(r*60/n));for(let s=l-1;s>=0;s--){let u=a-(s+1)*o,c=a-s*o,d=e.filter(p=>p.timestamp_ms>=u&&p.timestamp_ms{f[p]=d.filter(m=>m.agent===p).length}),i.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(p=>p.status==="ERROR").length,avgLatency:d.length>0?Math.round(d.reduce((p,m)=>p+(m.duration_ms||0),0)/d.length):0,traces:d,...f})}return i};function Yu({agentClass:e=null,embedded:t=!1}){let{darkMode:r}=At(),[n,a]=(0,$.useState)([]),[i,o]=(0,$.useState)([]),[l,s]=(0,$.useState)({}),[u,c]=(0,$.useState)(!0),[d,f]=(0,$.useState)(null),[p,m]=(0,$.useState)(null),y=(0,$.useRef)(new URLSearchParams(window.location.search).get("trace")),[h,v]=(0,$.useState)(null),[g,b]=(0,$.useState)({status:"all",agent:"all",action:"all"}),[x,S]=(0,$.useState)("time"),[w,_]=(0,$.useState)(null),[k,A]=(0,$.useState)("timeline"),[P,K]=(0,$.useState)("popular"),{timeWindow:z}=Gi(),Q=(0,$.useCallback)(async()=>{try{let E=e?`&agent=${encodeURIComponent(e)}`:"",L=await fetch(`/api/traces?minutes=${z.minutes}${E}`);if(!L.ok)throw new Error(`Request failed (${L.status})`);let X=await L.json();a(X.traces||[]),o(e?[e]:X.agents||[]),s(X.agent_ids||{}),f(null)}catch(E){f(E.message)}finally{c(!1)}},[z.minutes,e]);(0,$.useEffect)(()=>{Q();let E=setInterval(Q,fse);return()=>clearInterval(E)},[Q]);let M=(0,$.useMemo)(()=>pse(i),[i]);(0,$.useEffect)(()=>{_(null)},[z.id]);let F=(0,$.useMemo)(()=>vse(n,i,z.minutes,z.bucketSeconds),[n,i,z]),N=Math.max(0,Math.ceil(F.length/6)-1),O=(0,$.useMemo)(()=>{let E=n;if(w!==null){let L=F[w];L&&(E=L.traces||[])}if(g.status!=="all"&&(E=E.filter(L=>g.status==="success"?L.status!=="ERROR":L.status==="ERROR")),g.agent!=="all"&&(E=E.filter(L=>L.agent===g.agent)),g.action!=="all")if(g.action.includes("#")){let[L,X]=g.action.split("#");E=E.filter(B=>B.agent===L&&B.action===X)}else E=E.filter(L=>L.action===g.action);return x==="latency"&&(E=[...E].sort((L,X)=>(X.duration_ms||0)-(L.duration_ms||0))),h&&!E.some(L=>L.id===h.id)&&(E=[h,...E]),E},[n,w,F,g,x,h]);(0,$.useEffect)(()=>{let E=y.current;if(!E)return;let L=B=>{y.current=null,m(B.id),setTimeout(()=>{document.getElementById(`trace-row-${B.id}`)?.scrollIntoView({behavior:"smooth",block:"start"})},150)},X=n.find(B=>B.id===E||B.trace_id===E||B.short_id&&String(E).startsWith(B.short_id));if(X){L(X);return}n.length!==0&&fetch(`/api/traces/${encodeURIComponent(E)}`).then(B=>B.ok?B.json():Promise.reject(new Error("not found"))).then(({trace:B})=>{v(B),L(B)}).catch(()=>{y.current=null})},[n]);let I=(0,$.useMemo)(()=>{let E=w!==null?F[w]?.traces||[]:n,L={};E.forEach(B=>{B.agent&&(L[B.agent]||(L[B.agent]={agent:B.agent,count:0,totalDuration:0,cost:0,errors:0,actions:{},tokens:{thinking:0,input:0,output:0}}),L[B.agent].count++,L[B.agent].totalDuration+=B.duration_ms||0,L[B.agent].cost+=B.estimated_cost||0,B.status==="ERROR"&&L[B.agent].errors++,B.tokens&&(L[B.agent].tokens.thinking+=B.tokens.thinking||0,L[B.agent].tokens.input+=B.tokens.input||0,L[B.agent].tokens.output+=B.tokens.output||0),B.action&&(L[B.agent].actions[B.action]=(L[B.agent].actions[B.action]||0)+1))});let X={popular:B=>B.count,longest:B=>B.totalDuration/(B.count||1),cost:B=>B.cost,tokens:B=>(B.tokens.input||0)+(B.tokens.output||0)+(B.tokens.thinking||0),errors:B=>B.errors}[P]||(B=>B.count);return Object.values(L).sort((B,Ae)=>X(Ae)-X(B)||Ae.count-B.count)},[n,F,w,P]),D=(0,$.useMemo)(()=>{let E=w!==null?F[w]?.traces||[]:n,L={};return E.forEach(X=>{if(!X.agent)return;let B=`${X.agent}#${X.action||"unknown"}`;L[B]||(L[B]={key:B,agent:X.agent,action:X.action||"unknown",count:0,totalDuration:0,errors:0,minDuration:1/0,maxDuration:0,tokens:{thinking:0,input:0,output:0}}),L[B].count++,L[B].totalDuration+=X.duration_ms||0,L[B].minDuration=Math.min(L[B].minDuration,X.duration_ms||0),L[B].maxDuration=Math.max(L[B].maxDuration,X.duration_ms||0),X.status==="ERROR"&&L[B].errors++,X.tokens&&(L[B].tokens.thinking+=X.tokens.thinking||0,L[B].tokens.input+=X.tokens.input||0,L[B].tokens.output+=X.tokens.output||0)}),Object.values(L).forEach(X=>{X.minDuration===1/0&&(X.minDuration=0)}),Object.values(L).sort((X,B)=>B.count-X.count)},[n,F,w]),T=(0,$.useMemo)(()=>{let E=w!==null?F[w]?.traces||[]:n,L={};return E.forEach(X=>{(X.spans||[]).forEach(B=>{if(B.type!=="tool")return;let Ae=B.attributes?.["tool.name"]||B.name?.replace(/^tool\./,"")||"unknown";L[Ae]||(L[Ae]={name:Ae,count:0,totalDuration:0,maxDuration:0,errors:0,agents:new Set}),L[Ae].count++,L[Ae].totalDuration+=B.duration||0,L[Ae].maxDuration=Math.max(L[Ae].maxDuration,B.duration||0),B.error&&L[Ae].errors++,X.agent&&L[Ae].agents.add(`${X.agent}#${X.action||"unknown"}`)})}),Object.values(L).map(X=>({...X,agents:[...X.agents],avgDuration:X.count?X.totalDuration/X.count:0})).sort((X,B)=>B.totalDuration-X.totalDuration)},[n,F,w]),j=(0,$.useMemo)(()=>g.agent==="all"?D.map(E=>E.key):D.filter(E=>E.agent===g.agent).map(E=>E.key),[g.agent,D]),R=(0,$.useMemo)(()=>mse(O),[O]),U=E=>{if(E&&E.activeTooltipIndex!==void 0){let L=E.activeTooltipIndex;_(w===L?null:L),m(null)}},q=E=>(E?.input||0)+(E?.output||0)+(E?.thinking||0),ee=E=>{let L=E.count?E.errors/E.count:0;return[{label:`Calls ${z.label||""}`.trim(),value:E.count.toLocaleString()},{label:"Errors",value:`${(L*100).toFixed(1)}%`,tone:E.errors>0?"bad":"good"},{label:"Avg time",value:`${Math.round(E.totalDuration/(E.count||1))}ms`},{label:"Tokens",value:q(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",pe=$.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:"8px",marginBottom:"12px"}},$.default.createElement("span",{style:{fontSize:"12px",color:r?"rgba(255,255,255,0.5)":"#6b7280"}},"Rank by"),$.default.createElement("select",{value:P,onChange:E=>K(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"}},$.default.createElement("option",{value:"popular"},"Most calls"),$.default.createElement("option",{value:"longest"},"Longest average"),$.default.createElement("option",{value:"cost"},"Highest cost"),$.default.createElement("option",{value:"tokens"},"Most tokens"),$.default.createElement("option",{value:"errors"},"Most errors"))),Pe=E=>b(L=>({...L,agent:L.agent===E?"all":E})),oe=E=>{let L=l[E];if(!L)return Pe(E);let X=Je(`/agents/${L}`);window.history.pushState(window.history.state,"",X),window.dispatchEvent(new CustomEvent("dashboard:navigate",{detail:{path:X}}))},Te=E=>{let L=R[0]?.total||1,X=E?"rgba(0,0,0,0.3)":"white",B=E?"1px solid rgba(255,255,255,0.1)":"1px solid #e5e7eb",Ae=E?"white":"#111827",C=E?"rgba(255,255,255,0.5)":"#6b7280",Y={llm:"#ef4444",tool:"#10b981",generate:"#8b5cf6",prompt:"#3b82f6"};return $.default.createElement("div",{style:{padding:E?"0 24px 24px 24px":0}},$.default.createElement("div",{style:{background:X,border:B,borderRadius:"12px",padding:"16px"}},$.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,color:Ae,marginBottom:"4px"}},"Slowest operations"),$.default.createElement("div",{style:{fontSize:"12px",color:C,marginBottom:"14px"}},"Span durations aggregated across ",O.length," trace",O.length===1?"":"s"," \u2014 ranked by total time"),R.length===0?$.default.createElement("div",{style:{fontSize:"13px",color:C,padding:"12px 0"}},"No spans in the current selection"):$.default.createElement("div",{style:{display:"grid",gap:"10px"}},R.map(ve=>$.default.createElement("div",{key:ve.name,style:{display:"flex",alignItems:"center",gap:"12px"}},$.default.createElement("div",{style:{width:"220px",flexShrink:0,display:"flex",alignItems:"center",gap:"8px"}},$.default.createElement("span",{style:{color:C}},TE(ve.type)),$.default.createElement("span",{style:{fontSize:"13px",color:ve.errors>0?"#ef4444":Ae,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},ve.name)),$.default.createElement("div",{style:{flex:1,height:"18px",background:E?"rgba(255,255,255,0.06)":"#f3f4f6",borderRadius:"4px",position:"relative"}},$.default.createElement("div",{style:{position:"absolute",top:"3px",left:0,height:"12px",borderRadius:"3px",width:`${Math.max(ve.total/L*100,.5)}%`,background:Y[ve.type]||"#6366f1"}})),$.default.createElement("div",{style:{width:"260px",flexShrink:0,fontSize:"12px",color:C,fontFamily:$e.mono,textAlign:"right"}},ve.count,"\xD7 \xB7 avg ",kr(ve.avg)," \xB7 max ",kr(ve.max)," \xB7 \u03A3 ",kr(ve.total)))))))};if(u)return $.default.createElement("div",{className:"flex items-center justify-center h-64"},$.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let V={requests:F.reduce((E,L)=>E+L.requests,0),errors:F.reduce((E,L)=>E+L.errors,0),avgLatency:(()=>{let E=F.filter(L=>L.requests>0);return E.length===0?0:Math.round(E.reduce((L,X)=>L+X.avgLatency,0)/E.length)})(),throughput:(F.reduce((E,L)=>E+L.requests,0)/z.minutes).toFixed(1)},J=n.length===0;return r?$.default.createElement("div",{className:"preview-content",style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)"}},$.default.createElement("div",{style:{padding:"24px 24px 0 24px",borderBottom:"1px solid rgba(255,255,255,0.1)",marginBottom:"16px",paddingBottom:"16px"}},$.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"}},$.default.createElement("div",null,!t&&$.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:"white",margin:0}},"Traces"),$.default.createElement("p",{style:{fontSize:"14px",color:"rgba(255,255,255,0.6)",marginTop:"4px"}},w!==null?`Viewing ${F[w]?.time} \u2022 ${O.length} requests`:`Last ${z.label} \u2022 Click timeline to drill down`)),$.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"12px"}},$.default.createElement("div",{style:{display:"flex",background:"rgba(255,255,255,0.1)",borderRadius:"8px",padding:"2px"}},["timeline","agents","actions","tools","spans"].map(E=>$.default.createElement("button",{key:E,onClick:()=>A(E),style:{padding:"6px 12px",background:k===E?"#ef4444":"transparent",color:"white",borderRadius:"6px",border:"none",fontSize:"13px",cursor:"pointer",textTransform:"capitalize"}},E))),!e&&$.default.createElement("select",{value:g.agent,onChange:E=>b({...g,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"}},$.default.createElement("option",{value:"all"},"All Agents"),i.map(E=>$.default.createElement("option",{key:E,value:E},E))),$.default.createElement("select",{value:g.action,onChange:E=>b({...g,action:E.target.value}),style:{padding:"8px 12px",background:g.action!=="all"?"rgba(239, 68, 68, 0.3)":"rgba(255,255,255,0.1)",border:g.action!=="all"?"1px solid #ef4444":"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px",maxWidth:"220px",textOverflow:"ellipsis"}},$.default.createElement("option",{value:"all"},"All Actions"),j.map(E=>$.default.createElement("option",{key:E,value:E},E))),$.default.createElement("select",{value:g.status,onChange:E=>b({...g,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"}},$.default.createElement("option",{value:"all"},"All Status"),$.default.createElement("option",{value:"success"},"Success"),$.default.createElement("option",{value:"error"},"Error")),$.default.createElement("select",{value:x,onChange:E=>S(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"}},$.default.createElement("option",{value:"time"},"Newest first"),$.default.createElement("option",{value:"latency"},"Slowest first")),w!==null&&$.default.createElement("button",{onClick:()=>_(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")))),d&&$.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: ",d),$.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},$.default.createElement("div",{style:{background:"rgba(0,0,0,0.3)",borderRadius:"12px",padding:"16px",border:"1px solid rgba(255,255,255,0.1)"}},$.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"12px"}},$.default.createElement("div",{style:{fontSize:"14px",fontWeight:"600",color:"white"}},"Agent Requests / Minute"),$.default.createElement("div",{style:{display:"flex",gap:"16px",flexWrap:"wrap"}},Object.entries(M).map(([E,L])=>$.default.createElement("div",{key:E,style:{display:"flex",alignItems:"center",gap:"6px"}},$.default.createElement("div",{style:{width:"10px",height:"10px",borderRadius:"2px",background:L}}),$.default.createElement("span",{style:{fontSize:"11px",color:"rgba(255,255,255,0.7)"}},E.replace("Agent","")))))),$.default.createElement("div",{style:{height:"150px"}},$.default.createElement(zl,{width:"100%",height:"100%"},$.default.createElement(ps,{data:F,onClick:U,style:{cursor:"pointer"}},$.default.createElement("defs",null,Object.entries(M).map(([E,L])=>$.default.createElement("linearGradient",{key:E,id:`gradient-${E}`,x1:"0",y1:"0",x2:"0",y2:"1"},$.default.createElement("stop",{offset:"5%",stopColor:L,stopOpacity:.8}),$.default.createElement("stop",{offset:"95%",stopColor:L,stopOpacity:.1})))),$.default.createElement(Vo,{strokeDasharray:"3 3",stroke:"rgba(255,255,255,0.1)"}),$.default.createElement(Go,{dataKey:"time",stroke:"rgba(255,255,255,0.5)",tick:{fontSize:10,fill:"rgba(255,255,255,0.5)"},tickLine:!1,interval:N}),$.default.createElement(Zo,{stroke:"rgba(255,255,255,0.5)",tick:{fontSize:10,fill:"rgba(255,255,255,0.5)"},tickLine:!1,axisLine:!1,allowDecimals:!1}),$.default.createElement(Rl,{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,L)=>[E,L.replace("Agent","")]}),Object.keys(M).map(E=>$.default.createElement(qo,{key:E,type:"monotone",dataKey:E,stackId:"1",stroke:M[E],fill:`url(#gradient-${E})`}))))),$.default.createElement("div",{style:{display:"flex",gap:"24px",marginTop:"12px",paddingTop:"12px",borderTop:"1px solid rgba(255,255,255,0.1)"}},$.default.createElement("div",null,$.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"white"}},V.requests),$.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Total Requests")),$.default.createElement("div",null,$.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#ef4444"}},V.errors),$.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Errors")),$.default.createElement("div",null,$.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#10b981"}},V.avgLatency,"ms"),$.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Avg Latency")),$.default.createElement("div",null,$.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#f59e0b"}},V.throughput,"/min"),$.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Throughput"))))),k==="agents"&&$.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},pe,$.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(280px, 1fr))",gap:"16px"}},I.map(E=>$.default.createElement(ed,{key:E.agent,name:E.agent,accentColor:M[E.agent],subtitle:E.agents?.length?E.agents.join(", "):void 0,badge:$.default.createElement("span",{style:{fontSize:"12px",padding:"2px 8px",background:M[E.agent]+"30",color:M[E.agent],borderRadius:"4px",whiteSpace:"nowrap"}},E.count," calls"),onClick:()=>oe(E.agent),stats:ee(E),footer:$.default.createElement($.default.Fragment,null,$.default.createElement("span",null,l[E.agent]?"Open agent \u2192":"Not linked to an agent record"),$.default.createElement("button",{onClick:L=>{L.stopPropagation(),Pe(E.agent)},style:{background:"none",border:"none",padding:0,cursor:"pointer",color:g.agent===E.agent?"#ef4444":"inherit",font:"inherit"}},g.agent===E.agent?"Clear filter":"Filter traces"))})))),k==="actions"&&$.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},$.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:"12px"}},D.map(E=>{let L=g.action===E.key;return $.default.createElement("div",{key:E.key,onClick:()=>{b({...g,action:L?"all":E.key}),A("timeline")},style:{background:L?"rgba(239, 68, 68, 0.15)":"rgba(0,0,0,0.3)",borderRadius:"10px",padding:"14px",border:L?"1px solid #ef4444":`1px solid ${M[E.agent]}30`,cursor:"pointer",transition:"all 0.15s"}},$.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"10px"}},$.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},$.default.createElement("div",{style:{width:"6px",height:"6px",borderRadius:"50%",background:M[E.agent]}}),$.default.createElement("span",{style:{fontSize:"14px",fontWeight:"600",color:"white"}},E.agent),$.default.createElement("span",{style:{fontSize:"13px",color:"rgba(255,255,255,0.7)"}},"#",E.action)),$.default.createElement("span",{style:{fontSize:"12px",padding:"2px 8px",background:M[E.agent]+"30",color:M[E.agent],borderRadius:"4px"}},E.count," calls")),$.default.createElement("div",{style:{display:"flex",gap:"16px",flexWrap:"wrap"}},$.default.createElement("div",null,$.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Avg"),$.default.createElement("div",{style:{fontSize:"13px",color:"white",fontWeight:"500"}},Math.round(E.totalDuration/E.count),"ms")),$.default.createElement("div",null,$.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Min/Max"),$.default.createElement("div",{style:{fontSize:"13px",color:"rgba(255,255,255,0.8)"}},Math.round(E.minDuration),"ms / ",Math.round(E.maxDuration),"ms")),$.default.createElement("div",null,$.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Errors"),$.default.createElement("div",{style:{fontSize:"13px",color:E.errors>0?"#ef4444":"#10b981"}},E.errors," (",(E.errors/E.count*100).toFixed(0),"%)")),$.default.createElement("div",null,$.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Tokens"),$.default.createElement("div",{style:{fontSize:"13px",color:"rgba(255,255,255,0.8)"}},q(E.tokens).toLocaleString()))))}))),k==="spans"&&Te(!0),k==="timeline"&&!J&&$.default.createElement("div",{className:"space-y-4"},O.length===0?$.default.createElement("div",{style:{textAlign:"center",padding:"32px",color:"rgba(255,255,255,0.5)",fontSize:"14px"}},"No traces match filters"):O.map(E=>$.default.createElement(N1,{key:E.id,trace:E,darkMode:!0,expanded:p===E.id,onToggle:()=>m(p===E.id?null:E.id)}))),J&&k==="timeline"&&$.default.createElement("div",{style:{textAlign:"center",padding:"48px 0"}},$.default.createElement("div",{style:{color:"rgba(255,255,255,0.5)",fontSize:"18px"}},"No traces yet"),$.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"))):$.default.createElement("div",{className:"space-y-6"},$.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2"},$.default.createElement("div",null,$.default.createElement("h1",{className:"text-2xl font-bold text-gray-900"},"Traces"),$.default.createElement("p",{className:"text-sm text-gray-500"},w!==null?`Viewing ${F[w]?.time} \u2022 ${O.length} requests`:`Last ${z.label} \u2022 Click timeline to drill down`)),$.default.createElement("div",{className:"flex items-center space-x-3 flex-wrap gap-y-2 min-w-0"},$.default.createElement(Xi,null),$.default.createElement("div",{className:"flex bg-gray-100 rounded-lg p-1"},["timeline","agents","actions","tools","spans"].map(E=>$.default.createElement("button",{key:E,onClick:()=>A(E),className:`px-3 py-1 text-sm rounded-md transition-colors capitalize ${k===E?"bg-white shadow text-gray-900":"text-gray-600"}`},E))),$.default.createElement("select",{value:g.agent,onChange:E=>b({...g,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"}},$.default.createElement("option",{value:"all"},"All Agents"),i.map(E=>$.default.createElement("option",{key:E,value:E},E))),$.default.createElement("select",{value:g.action,onChange:E=>b({...g,action:E.target.value}),className:`px-3 py-2 border rounded-lg text-sm focus:ring-2 focus:ring-red-500 ${g.action!=="all"?"border-red-500 bg-red-50":"border-gray-300"}`,style:{maxWidth:"220px",textOverflow:"ellipsis"}},$.default.createElement("option",{value:"all"},"All Actions"),j.map(E=>$.default.createElement("option",{key:E,value:E},E))),$.default.createElement("select",{value:g.status,onChange:E=>b({...g,status:E.target.value}),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500"},$.default.createElement("option",{value:"all"},"All Status"),$.default.createElement("option",{value:"success"},"Success"),$.default.createElement("option",{value:"error"},"Error")),$.default.createElement("select",{value:x,onChange:E=>S(E.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500"},$.default.createElement("option",{value:"time"},"Newest first"),$.default.createElement("option",{value:"latency"},"Slowest first")),w!==null&&$.default.createElement("button",{onClick:()=>_(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"))),d&&$.default.createElement("div",{className:"p-3 bg-red-50 border border-red-200 rounded-lg text-sm text-red-700"},"Failed to load traces: ",d),$.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},$.default.createElement("div",{className:"flex justify-between items-center mb-3"},$.default.createElement("h3",{className:"text-sm font-semibold text-gray-700"},"Agent Requests / Minute"),$.default.createElement("div",{className:"flex gap-4 flex-wrap"},Object.entries(M).map(([E,L])=>$.default.createElement("div",{key:E,className:"flex items-center gap-1.5"},$.default.createElement("div",{className:"w-2.5 h-2.5 rounded-sm",style:{background:L}}),$.default.createElement("span",{className:"text-xs text-gray-500"},E.replace("Agent","")))))),$.default.createElement("div",{className:"h-36"},$.default.createElement(zl,{width:"100%",height:"100%"},$.default.createElement(ps,{data:F,onClick:U,style:{cursor:"pointer"}},$.default.createElement("defs",null,Object.entries(M).map(([E,L])=>$.default.createElement("linearGradient",{key:E,id:`gradient-light-${E}`,x1:"0",y1:"0",x2:"0",y2:"1"},$.default.createElement("stop",{offset:"5%",stopColor:L,stopOpacity:.6}),$.default.createElement("stop",{offset:"95%",stopColor:L,stopOpacity:.05})))),$.default.createElement(Vo,{strokeDasharray:"3 3",stroke:"#e5e7eb"}),$.default.createElement(Go,{dataKey:"time",stroke:"#9ca3af",tick:{fontSize:10,fill:"#6b7280"},tickLine:!1,interval:N}),$.default.createElement(Zo,{stroke:"#9ca3af",tick:{fontSize:10,fill:"#6b7280"},tickLine:!1,axisLine:!1,allowDecimals:!1}),$.default.createElement(Rl,{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,L)=>[E,L.replace("Agent","")]}),Object.keys(M).map(E=>$.default.createElement(qo,{key:E,type:"monotone",dataKey:E,stackId:"1",stroke:M[E],fill:`url(#gradient-light-${E})`}))))),$.default.createElement("div",{className:"flex gap-6 mt-3 pt-3 border-t border-gray-100"},$.default.createElement("div",null,$.default.createElement("div",{className:"text-lg font-bold text-gray-900"},V.requests),$.default.createElement("div",{className:"text-xs text-gray-500"},"Total Requests")),$.default.createElement("div",null,$.default.createElement("div",{className:"text-lg font-bold text-red-500"},V.errors),$.default.createElement("div",{className:"text-xs text-gray-500"},"Errors")),$.default.createElement("div",null,$.default.createElement("div",{className:"text-lg font-bold text-green-600"},V.avgLatency,"ms"),$.default.createElement("div",{className:"text-xs text-gray-500"},"Avg Latency")),$.default.createElement("div",null,$.default.createElement("div",{className:"text-lg font-bold text-amber-500"},V.throughput,"/min"),$.default.createElement("div",{className:"text-xs text-gray-500"},"Throughput")))),k==="agents"&&$.default.createElement("div",null,pe,$.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"},I.map(E=>$.default.createElement(ed,{key:E.agent,name:E.agent,accentColor:M[E.agent],subtitle:E.agents?.length?E.agents.join(", "):void 0,badge:$.default.createElement("span",{className:"text-sm px-2 py-0.5 rounded",style:{background:M[E.agent]+"20",color:M[E.agent]}},E.count," calls"),onClick:()=>oe(E.agent),stats:ee(E),footer:$.default.createElement($.default.Fragment,null,$.default.createElement("span",null,l[E.agent]?"Open agent \u2192":"Not linked to an agent record"),$.default.createElement("button",{onClick:L=>{L.stopPropagation(),Pe(E.agent)},className:g.agent===E.agent?"text-red-600":"hover:text-gray-700"},g.agent===E.agent?"Clear filter":"Filter traces"))})))),k==="actions"&&$.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3"},D.map(E=>{let L=g.action===E.key;return $.default.createElement("div",{key:E.key,onClick:()=>{b({...g,action:L?"all":E.key}),A("timeline")},className:`rounded-xl p-4 cursor-pointer transition-all ${L?"bg-red-50 border-2 border-red-500":"bg-white border border-gray-200 hover:border-gray-300"}`,style:{borderLeftColor:M[E.agent],borderLeftWidth:L?"2px":"4px"}},$.default.createElement("div",{className:"flex items-center justify-between mb-3"},$.default.createElement("div",{className:"flex items-center gap-2"},$.default.createElement("div",{className:"w-2 h-2 rounded-full",style:{background:M[E.agent]}}),$.default.createElement("span",{className:"font-semibold text-gray-900"},E.agent),$.default.createElement("span",{className:"text-gray-500"},"#",E.action)),$.default.createElement("span",{className:"text-xs px-2 py-0.5 rounded",style:{background:M[E.agent]+"20",color:M[E.agent]}},E.count," calls")),$.default.createElement("div",{className:"flex flex-wrap gap-4 text-sm"},$.default.createElement("div",null,$.default.createElement("div",{className:"text-xs text-gray-500"},"Avg"),$.default.createElement("div",{className:"font-medium"},Math.round(E.totalDuration/E.count),"ms")),$.default.createElement("div",null,$.default.createElement("div",{className:"text-xs text-gray-500"},"Min/Max"),$.default.createElement("div",{className:"text-gray-600"},Math.round(E.minDuration),"ms / ",Math.round(E.maxDuration),"ms")),$.default.createElement("div",null,$.default.createElement("div",{className:"text-xs text-gray-500"},"Errors"),$.default.createElement("div",{className:E.errors>0?"text-red-600":"text-green-600"},E.errors," (",(E.errors/E.count*100).toFixed(0),"%)")),$.default.createElement("div",null,$.default.createElement("div",{className:"text-xs text-gray-500"},"Tokens"),$.default.createElement("div",{className:"text-gray-600"},q(E.tokens).toLocaleString()))))})),k==="tools"&&(T.length===0?$.default.createElement("div",{className:"text-center py-8 text-gray-500 text-sm"},"No tool calls in this window"):$.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},$.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"},$.default.createElement("div",{className:"flex-1"},"Tool"),$.default.createElement("div",{className:"w-20 text-right"},"Calls"),$.default.createElement("div",{className:"w-24 text-right"},"Total time"),$.default.createElement("div",{className:"w-20 text-right"},"Avg"),$.default.createElement("div",{className:"w-20 text-right"},"Slowest")),T.map(E=>{let L=T[0].totalDuration?E.totalDuration/T[0].totalDuration*100:0;return $.default.createElement("div",{key:E.name,className:"px-4 py-2 border-b border-gray-50 last:border-0"},$.default.createElement("div",{className:"flex items-center gap-4 text-sm"},$.default.createElement("div",{className:"flex-1 min-w-0"},$.default.createElement("div",{className:"font-medium text-gray-900 truncate",title:E.name},E.name),E.agents.length>0&&$.default.createElement("div",{className:"text-xs text-gray-400 truncate",title:E.agents.join(", ")},E.agents.join(", "))),$.default.createElement("div",{className:"w-20 text-right text-gray-700",style:{fontFamily:$e.mono}},E.count.toLocaleString(),E.errors>0&&$.default.createElement("span",{className:"text-red-600 ml-1",title:`${E.errors} failed`},"(",E.errors,")")),$.default.createElement("div",{className:"w-24 text-right text-gray-900 font-medium",style:{fontFamily:$e.mono}},kr(E.totalDuration)),$.default.createElement("div",{className:"w-20 text-right text-gray-500",style:{fontFamily:$e.mono}},kr(E.avgDuration)),$.default.createElement("div",{className:"w-20 text-right text-gray-500",style:{fontFamily:$e.mono}},kr(E.maxDuration))),$.default.createElement("div",{className:"h-1 bg-gray-100 rounded mt-1.5"},$.default.createElement("div",{className:"h-1 bg-green-500 rounded",style:{width:`${Math.max(L,1)}%`}})))}))),k==="spans"&&Te(!1),k==="timeline"&&!J&&$.default.createElement("div",{className:"space-y-4"},O.length===0?$.default.createElement("div",{className:"text-center py-8 text-gray-500"},"No traces match filters"):O.map(E=>$.default.createElement(N1,{key:E.id,trace:E,darkMode:!1,expanded:p===E.id,onToggle:()=>m(p===E.id?null:E.id)}))),J&&k==="timeline"&&$.default.createElement("div",{className:"text-center py-12"},$.default.createElement("div",{className:"text-gray-400 text-lg"},"No traces yet"),$.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 ue=re(ne());var E1=re(ne());function jE({trace:e,darkMode:t,height:r=8}){let n=Mr(t);if(!e)return E1.default.createElement("div",{className:"rounded",style:{height:`${r}px`,background:n.trackBg}});let a=e.spans||[],i=e.duration_ms||1,o=[...a].sort((l,s)=>(l.nested||0)-(s.nested||0));return E1.default.createElement("div",{style:{position:"relative",height:`${r}px`,borderRadius:"999px",background:n.trackBg,overflow:"hidden",flex:1}},o.map((l,s)=>E1.default.createElement("div",{key:l.span_id||s,title:`${l.name} \xB7 ${kr(l.duration)}`,style:{position:"absolute",top:0,bottom:0,left:`${Math.min(l.start/i*100,99)}%`,width:`${Math.max(l.duration/i*100,.8)}%`,background:l.error?"#ef4444":OE[l.type]||"#9ca3af"}})))}var gse=e=>{let t=null;if((e?.generations||[]).forEach(i=>{let o=i.tokens||{},l=(o.input||0)+(o.output||0);l>0&&(!t||l>t.total)&&(t={input:o.input||0,output:o.output||0,cached:o.cached||0,thinking:o.thinking||0,model:i.model,total:l})}),!t)return null;let r=Zi(e?.instructions),n=0;(e?.messages||[]).forEach(i=>{i.role==="tool"&&(n+=Zi(i.content)+Zi(i.tool_arguments))}),n=Math.min(n,t.input);let a=Math.max(t.input-r-n,0);return{used:t.total,limit:zv(t.model),cached:t.cached,thinking:t.thinking,segments:[{key:"messages",label:"Messages",tokens:a},{key:"tool_results",label:"Tool results",tokens:n},{key:"instructions",label:"Instructions",tokens:r},{key:"output",label:"Generated output",tokens:t.output}]}},B7=["#6366f1","#10b981","#f59e0b","#ec4899","#3b82f6","#8b5cf6","#14b8a6","#f97316"],yse=[{id:"recent",label:"Recent"},{id:"tokens",label:"Tokens"},{id:"messages",label:"Messages"}],hse=[{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"}],xse=3e4,Ro=e=>e==null?"0":e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString(),bse=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 wse({generation:e,darkMode:t,maxMs:r,expanded:n,onToggle:a}){let i=Mr(t),[o,l]=(0,ue.useState)(null),[s,u]=(0,ue.useState)(!1),c=e.trace_id,d=(e.duration_seconds||0)*1e3;(0,ue.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&&l(y)).catch(()=>m&&u(!0)),()=>{m=!1}},[c]);let f=!!o,p=(o?.spans||[]).length;return ue.default.createElement("div",{className:`rounded-lg px-2 py-1.5 -mx-2 transition-colors ${f?t?"hover:bg-white/5":"hover:bg-gray-100":""}`,style:n?{background:i.hoverBg}:void 0},ue.default.createElement("div",{className:f?"cursor-pointer":void 0,onClick:f?a:void 0,title:f?`${p} spans \u2014 click for the trace`:void 0},ue.default.createElement("div",{className:"flex flex-wrap items-center gap-3 text-xs font-mono",style:{color:i.textSecondary}},ue.default.createElement("span",{title:e.cache_hit?`${Ro(e.tokens.cached)} cached prompt tokens`:"No prompt cache hit",style:{color:e.cache_hit?i.good:i.textMuted}},e.cache_hit?"\u26A1 cache hit":"\u25CF generated"),e.thinking&&ue.default.createElement("span",{className:"text-amber-500",title:`${Ro(e.tokens.thinking)} thinking tokens`},"\u{1F9E0} ",Ro(e.tokens.thinking)),ue.default.createElement("span",null,e.model||"unknown-model"),e.provider&&ue.default.createElement("span",null,e.provider),ue.default.createElement("span",{className:"text-blue-500"},"in:",Ro(e.tokens.input)),ue.default.createElement("span",{className:"text-green-500"},"out:",Ro(e.tokens.output)),e.finish_reason&&ue.default.createElement("span",null,e.finish_reason),e.duration_seconds!=null&&ue.default.createElement("span",null,kr(d)),c&&ue.default.createElement("a",{href:Je(`/traces?trace=${c}`),title:`${c} \u2014 open in Traces`,style:{color:i.link},className:"hover:underline",onClick:m=>m.stopPropagation()},"trace:",c.slice(0,8)," \u2192"),s&&ue.default.createElement("span",{style:{color:i.textMuted}},"trace unavailable")),ue.default.createElement("div",{className:"flex items-center gap-2 mt-1"},c&&!s?ue.default.createElement(jE,{trace:o,darkMode:t}):d>0?ue.default.createElement("div",{className:"rounded flex-1",style:{height:"8px",background:i.trackBg}},ue.default.createElement("div",{className:"rounded",style:{height:"8px",width:`${Math.max(d/r*100,2)}%`,background:"#ef4444"}})):null,f&&ue.default.createElement(ue.default.Fragment,null,ue.default.createElement("span",{className:"font-mono flex-shrink-0",style:{fontSize:"10px",color:i.textMuted}},p," ",p===1?"span":"spans"),ue.default.createElement(qu,{open:n,darkMode:t,size:12})))),n&&o&&ue.default.createElement("div",{className:"mt-2 rounded-lg border p-3",style:{background:i.cardBg,borderColor:i.cardBorder}},ue.default.createElement(Wv,{trace:o,darkMode:t,compact:!0})))}function el({agentId:e=null,embedded:t=!1}){let{darkMode:r}=At(),[n,a]=(0,ue.useState)([]),[i,o]=(0,ue.useState)(!0),[l,s]=(0,ue.useState)(null),[u,c]=(0,ue.useState)(null),[d,f]=(0,ue.useState)({}),{timeWindow:p}=Gi(),m=(0,ue.useCallback)(async()=>{try{let Q=await fetch(`/api/interactions?minutes=${p.minutes}${e?`&agent_id=${e}`:""}`);if(!Q.ok)throw new Error(`Request failed (${Q.status})`);let M=await Q.json();a(M.interactions||[]),s(null)}catch(Q){s(Q.message)}finally{o(!1)}},[p.minutes,e]);(0,ue.useEffect)(()=>{m();let Q=setInterval(m,xse);return()=>clearInterval(Q)},[m]);let[y,h]=(0,ue.useState)("recent"),v=(0,ue.useMemo)(()=>{let Q=[...new Set(n.map(M=>M.display_name).filter(Boolean))].sort();return Object.fromEntries(Q.map((M,F)=>[M,B7[F%B7.length]]))},[n]),g=(0,ue.useMemo)(()=>{let Q=n.reduce((F,N)=>F+(N.tokens?.total||0),0),M=new Set(n.map(F=>F.display_name).filter(Boolean));return{interactions:n.length,tokens:Q,agents:M.size,avgTokens:n.length?Math.round(Q/n.length):0}},[n]),b=(0,ue.useMemo)(()=>{if(n.length===0)return[];let Q=Date.now(),M=p.bucketSeconds*1e3,F=Math.max(1,Math.round(p.minutes*60/p.bucketSeconds)),N=Object.keys(v);return Array.from({length:F},(O,I)=>{let D=Q-(F-1-I)*M,T=D-M,j=n.filter(R=>{let U=new Date(R.last_activity_at).getTime();return U>=T&&U1440?new Date(D).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit"}):new Date(D).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),...Object.fromEntries(N.map(R=>[R,j.filter(U=>U.display_name===R).length]))}})},[n,v,p]),x=Math.max(0,Math.ceil(b.length/6)-1),S=(0,ue.useCallback)(Q=>{let M=[...Q];switch(y){case"tokens":return M.sort((F,N)=>(N.tokens?.total||0)-(F.tokens?.total||0));case"messages":return M.sort((F,N)=>(N.message_count||0)-(F.message_count||0));default:return M.sort((F,N)=>String(N.last_activity_at).localeCompare(String(F.last_activity_at)))}},[y]),w=(0,ue.useMemo)(()=>{let Q=new Map;n.forEach(F=>{let N=F.agent_name||F.agent?.name||"Unattributed",O=F.action_name,I=`${N}#${O||""}`;Q.has(I)||Q.set(I,{key:I,title:O?`${N} ${O.charAt(0).toUpperCase()}${O.slice(1)} Agent Interactions`:`${N} Interactions`,sessions:[],tokens:0,lastActivity:F.last_activity_at});let D=Q.get(I);D.sessions.push(F),D.tokens+=F.tokens?.total||0,F.last_activity_at>D.lastActivity&&(D.lastActivity=F.last_activity_at)});let M=[...Q.values()].map(F=>({...F,sessions:S(F.sessions)}));return y==="tokens"?M.sort((F,N)=>N.tokens-F.tokens):y==="messages"?M.sort((F,N)=>N.sessions.length-F.sessions.length):M.sort((F,N)=>String(N.lastActivity).localeCompare(String(F.lastActivity)))},[n,y,S]),_=async Q=>{if(u===Q){c(null);return}if(c(Q),!d[Q])try{let M=await fetch(`/api/interactions/${Q}`);if(M.ok){let F=await M.json();f(N=>({...N,[Q]:F.interaction}))}}catch{}},[k,A]=(0,ue.useState)({}),[P,K]=zf(),z=Mr(r);return i?ue.default.createElement("div",{className:"flex items-center justify-center h-64"},ue.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"})):ue.default.createElement("div",{className:"space-y-6"},ue.default.createElement("div",{className:"flex items-start justify-between"},!t&&ue.default.createElement("div",null,ue.default.createElement("h1",{className:"text-2xl font-bold",style:{color:z.textPrimary}},"Interactions"),ue.default.createElement("p",{className:"text-sm mt-1",style:{color:z.textSecondary}},"Persisted conversation streams per agent \u2014 messages, generations and provenance")),ue.default.createElement("div",{className:"flex items-center gap-3"},ue.default.createElement("div",{className:"flex items-center rounded-lg p-1",style:{background:r?"rgba(255,255,255,0.06)":"#f3f4f6"}},ue.default.createElement("span",{className:"text-xs px-1",style:{color:z.textMuted}},"Sort"),yse.map(Q=>ue.default.createElement("button",{key:Q.id,onClick:()=>h(Q.id),className:"px-2 py-1 text-xs rounded transition-colors",style:y===Q.id?{background:r?"#2a2a2a":"#ffffff",color:z.textPrimary,boxShadow:r?"none":"0 1px 2px rgba(0,0,0,0.08)"}:{color:z.textSecondary}},Q.label))),ue.default.createElement(Xi,null))),l&&ue.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: ",l),n.length>0&&ue.default.createElement("div",{className:"rounded-xl border p-4",style:{backgroundColor:z.cardBg,borderColor:z.cardBorder}},ue.default.createElement("div",{className:"flex items-center justify-between mb-3"},ue.default.createElement("h3",{className:"text-sm font-semibold",style:{color:z.textPrimary}},"Interactions over time"),ue.default.createElement("div",{className:"flex items-center gap-3 flex-wrap justify-end"},Object.entries(v).map(([Q,M])=>ue.default.createElement("span",{key:Q,className:"flex items-center gap-1.5 text-xs",style:{color:z.textSecondary}},ue.default.createElement("span",{className:"inline-block w-2 h-2 rounded-full",style:{background:M}}),Q)))),ue.default.createElement("div",{className:"h-32"},ue.default.createElement(zl,{width:"100%",height:"100%"},ue.default.createElement(ps,{data:b},ue.default.createElement("defs",null,Object.entries(v).map(([Q,M])=>ue.default.createElement("linearGradient",{key:Q,id:`ix-gradient-${Q.replace(/\W/g,"-")}`,x1:"0",y1:"0",x2:"0",y2:"1"},ue.default.createElement("stop",{offset:"5%",stopColor:M,stopOpacity:.6}),ue.default.createElement("stop",{offset:"95%",stopColor:M,stopOpacity:.05})))),ue.default.createElement(Vo,{strokeDasharray:"3 3",stroke:r?"#2a2a2a":"#e5e7eb"}),ue.default.createElement(Go,{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:x}),ue.default.createElement(Zo,{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}),ue.default.createElement(Rl,{contentStyle:{background:r?"#1f1f1f":"white",border:`1px solid ${z.cardBorder}`,borderRadius:"8px"},labelStyle:{color:z.textPrimary,fontWeight:"600",marginBottom:"4px"}}),Object.entries(v).map(([Q,M])=>ue.default.createElement(qo,{key:Q,type:"monotone",dataKey:Q,stackId:"1",stroke:M,strokeWidth:2,fill:`url(#ix-gradient-${Q.replace(/\W/g,"-")})`}))))),ue.default.createElement("div",{className:"flex items-center gap-8 pt-3 mt-3 border-t",style:{borderColor:z.cardBorder}},[{label:"Interactions",value:g.interactions.toLocaleString()},{label:"Agents",value:g.agents.toLocaleString()},{label:"Total tokens",value:Ro(g.tokens)},{label:"Avg / interaction",value:Ro(g.avgTokens)}].map(Q=>ue.default.createElement("div",{key:Q.label},ue.default.createElement("div",{className:"text-lg font-bold",style:{color:z.textPrimary}},Q.value),ue.default.createElement("div",{className:"text-xs",style:{color:z.textSecondary}},Q.label))))),n.length===0?ue.default.createElement("div",{className:"text-center py-12"},ue.default.createElement("div",{className:"text-lg",style:{color:z.textMuted}},"No interactions in the last ",p.label),ue.default.createElement("p",{className:"text-sm mt-2",style:{color:z.textSecondary}},"Widen the time window, or run an agent to start recording its conversation stream")):ue.default.createElement("div",{className:"space-y-8"},w.map(Q=>ue.default.createElement("div",{key:Q.key,className:"space-y-4"},ue.default.createElement("div",{className:"flex items-baseline justify-between"},ue.default.createElement("h2",{className:"text-sm font-semibold",style:{color:z.textPrimary}},Q.title),ue.default.createElement("span",{className:"text-xs",style:{color:z.textMuted}},Q.sessions.length," ",Q.sessions.length===1?"interaction":"interactions",Q.tokens>0&&` \xB7 ${Ro(Q.tokens)} tokens`)),Q.sessions.map(M=>{let F=d[M.id],N=u===M.id,O=k[M.id]||"conversation";return ue.default.createElement(k1,{key:M.id,darkMode:r,className:"shadow-sm"},ue.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:()=>_(M.id),style:N?{background:z.hoverBg}:void 0},ue.default.createElement("div",{className:"flex items-center gap-3 min-w-0"},M.source==="telemetry"?ue.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"):ue.default.createElement("span",{className:"px-2 py-1 text-xs font-medium bg-blue-100 text-blue-700 rounded flex-shrink-0"},"SESSION"),ue.default.createElement("span",{className:"font-mono text-sm truncate",style:{color:z.textPrimary}},M.display_name),M.agent&&ue.default.createElement("span",{className:"text-sm truncate",style:{color:z.textSecondary}},M.agent.name),M.service_name&&ue.default.createElement("span",{className:"text-sm truncate font-mono",style:{color:z.textMuted}},M.service_name)),ue.default.createElement("div",{className:"flex items-center gap-4 flex-shrink-0 text-sm",style:{color:z.textSecondary}},ue.default.createElement("span",null,M.message_count>0?`${M.message_count} messages`:`${M.tool_count||0} tool ${M.tool_count===1?"call":"calls"}`),ue.default.createElement("span",null,Ro(M.tokens?.total)," tokens"),(M.tokens?.total||0)>0&&ue.default.createElement(ms,{compact:!0,darkMode:r,label:"Context",used:(M.tokens?.input||0)+(M.tokens?.output||0)||M.tokens?.total,limit:zv(M.model),segments:[{key:"messages",label:"Context",tokens:(M.tokens?.input||0)+(M.tokens?.output||0)||M.tokens?.total}]}),ue.default.createElement("span",{style:{color:z.textMuted}},bse(M.last_activity_at)),ue.default.createElement(qu,{open:N,darkMode:r}))),!N&&ue.default.createElement(jf,{darkMode:r,onClick:()=>_(M.id),style:{padding:"0 16px 12px"},lines:[{label:"input",text:M.preview?.input,color:mr("user",r).color},{label:"output",text:M.preview?.output,color:mr("assistant",r).color}]}),N&&ue.default.createElement("div",{className:"border-t p-4 space-y-3",style:{borderColor:z.cardBorder,background:z.innerBg}},F?ue.default.createElement(ue.default.Fragment,null,ue.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2"},ue.default.createElement(Fv,{options:hse,value:O,onChange:I=>A(D=>({...D,[M.id]:I})),darkMode:r}),ue.default.createElement("span",{className:"text-xs",style:{color:z.textSecondary}},F.messages.length," ",F.messages.length===1?"message":"messages",F.generations.length>0&&` \xB7 ${F.generations.length} ${F.generations.length===1?"generation":"generations"}`)),O==="conversation"&&ue.default.createElement(ue.default.Fragment,null,F.messages.length===0&&ue.default.createElement("div",{className:"text-sm",style:{color:z.textMuted}},"No conversation content captured for this run. Enable content capture in the reporting app to record prompts, tool arguments, and responses."),ue.default.createElement(oi,{darkMode:r,messages:F.instructions?[{id:`ctx-${M.id}-system`,role:"system",content:F.instructions,created_at:M.created_at},...F.messages]:F.messages}),(()=>{let I=gse(F);return I?ue.default.createElement("div",{className:"pt-3 mt-2 border-t",style:{borderColor:z.cardBorder}},ue.default.createElement(ms,{...I,label:"Context pressure",estimated:!0,darkMode:r})):null})()),O==="spans"&&(F.generations.length===0?ue.default.createElement("div",{className:"text-sm",style:{color:z.textMuted}},"No generations recorded for this interaction \u2014 nothing to trace."):ue.default.createElement("div",{className:"space-y-2"},F.generations.map(I=>ue.default.createElement(wse,{key:I.id,generation:I,darkMode:r,maxMs:Math.max(...F.generations.map(D=>(D.duration_seconds||0)*1e3),1),expanded:P(`${M.id}:${I.id}`),onToggle:()=>K(`${M.id}:${I.id}`)}))))):ue.default.createElement("div",{className:"flex justify-center py-6"},ue.default.createElement("div",{className:"animate-spin rounded-full h-6 w-6 border-b-2 border-red-500"}))))})))))}var te=re(ne());function U7(e,t){let r=o=>{let l=Object.values(t[o]||{})[0];if(!l)return null;let s=l.scenario||l;return{key:o,prompt:s.prompt,group:s.group??null,notes:s.notes??null,expectations:s.expectations||{},position:s.position}},n=new Set(e.map(o=>o.key)),a=e.map(o=>{let l=r(o.key);if(!l)return o;let s=["prompt","group","notes","expectations"].some(u=>JSON.stringify(o[u]??null)!==JSON.stringify(l[u]??null));return{...o,...l,catalogChanged:s}}),i=Object.keys(t).filter(o=>!n.has(o)).map(o=>({...r(o),id:null,enabled:!1,orphan:!0}));return[...a,...i]}var $7=e=>/^[1-9]\d*$/.test(e||"")?e:null;function _1(e){let t=new URLSearchParams(e),r=$7(t.get("evaluation"));return r?{evaluationId:r,runId:$7(t.get("run"))}:null}async function F7(e,t,r){if(!t||e.some(i=>String(i.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 a=await n.json();if(!a.evaluation)throw new Error("Requested evaluation is unavailable");return[a.evaluation,...e]}var Me=re(ne());var Yt=re(ne());var Ce="var(--font-mono)",Gu=e=>e>=1?"success":e>=.7?"warning":"error",tl={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)"}},zE={object:"=",sample:"~",pass:$t.success,fault:$t.error,info:$t.info,on:"[x]",off:"[ ]",link:$t.arrow,chevron:$t.chevronRight};function O1({kind:e="pass",open:t=!1,color:r,size:n=12,weight:a=700,style:i,title:o}){return e==="chevron"?Yt.default.createElement("span",{className:"aa-chevron","data-open":t?"true":"false",title:o,style:{fontFamily:Ce,fontSize:n,color:r||"var(--color-text-muted)",flexShrink:0,...i}},zE.chevron):Yt.default.createElement("span",{title:o,style:{fontFamily:Ce,fontSize:n,fontWeight:a,color:r||(e==="fault"?"var(--color-error)":e==="info"?"var(--color-info)":e==="pass"?"var(--color-success)":"var(--color-text-muted)"),flexShrink:0,...i}},zE[e]||e)}function jn({tone:e="muted",size:t=11,children:r,title:n,style:a,testId:i}){let o=tl[e]||tl.muted;return Yt.default.createElement("span",{"data-testid":i,title:n,style:{display:"inline-flex",alignItems:"center",padding:"2px 7px",borderRadius:4,fontFamily:Ce,fontSize:t,fontWeight:600,whiteSpace:"nowrap",background:o.soft,color:o.text,...a}},r)}function yt({children:e,size:t=11,color:r="var(--color-text-secondary)",spacing:n="0.06em",style:a,as:i="span"}){return Yt.default.createElement(i,{style:{fontFamily:Ce,fontSize:t,fontWeight:600,letterSpacing:n,textTransform:"uppercase",color:r,...a}},e)}function LE({selected:e=!1,onClick:t,children:r,square:n=!1,mono:a=!1,title:i,style:o,testId:l}){return Yt.default.createElement("button",{type:"button","data-testid":l,onClick:t,title:i,style:{padding:"4px 10px",borderRadius:n?6:999,cursor:t?"pointer":"default",fontFamily:a?Ce:"inherit",fontSize:a?11:12,fontWeight:a?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)":a?"var(--color-text-muted)":"var(--color-text-cell)",...o}},r)}function W7({options:e,value:t,onChange:r,style:n}){return Yt.default.createElement("div",{style:{display:"flex",gap:4,...n},role:"group"},e.map(a=>{let i=a.value===t;return Yt.default.createElement("button",{key:a.value,type:"button",onClick:()=>r(a.value),"aria-pressed":i,style:{padding:"6px 12px",borderRadius:8,cursor:"pointer",fontSize:13,fontWeight:500,background:"var(--color-card)",border:`1px solid ${i?"var(--color-accent-ui)":"var(--color-border)"}`,color:i?"var(--color-accent-ui)":"var(--color-text-cell)"}},a.label)}))}function on({variant:e="secondary",size:t="md",children:r,onClick:n,disabled:a=!1,title:i,type:o="button",style:l,testId:s}){let c={padding:t==="sm"?"6px 12px":"8px 14px",borderRadius:8,cursor:a?"not-allowed":"pointer",fontSize:13,fontWeight:500,opacity:a?.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 Yt.default.createElement("button",{type:o,"data-testid":s,onClick:n,disabled:a,title:i,style:{...c,...d[e]||d.secondary,...l}},r)}function kn({children:e,padding:t=20,style:r,className:n,testId:a,...i}){return Yt.default.createElement("div",{"data-testid":a,className:n,style:{background:"var(--color-card)",border:"1px solid var(--color-border)",borderRadius:12,padding:t,...r},...i},e)}function Hv({label:e,value:t,sub:r,valueColor:n,valueSize:a=32,testId:i}){return Yt.default.createElement(kn,{testId:i},Yt.default.createElement(yt,{size:11,spacing:"0.05em"},e),Yt.default.createElement("div",{style:{marginTop:8,fontFamily:Ce,fontSize:a,fontWeight:700,lineHeight:1.1,color:n||"var(--color-text-primary)"}},t),r!=null&&Yt.default.createElement("div",{style:{marginTop:8,fontSize:13,color:"var(--color-text-secondary)"}},r))}function BE({title:e,meta:t,children:r,style:n,testId:a,bodyStyle:i}){return Yt.default.createElement("div",{"data-testid":a,style:{border:"1px solid var(--color-border-light)",borderRadius:10,overflow:"hidden",minWidth:0,...n}},(e||t)&&Yt.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"8px 12px",background:"var(--color-muted)"}},e&&Yt.default.createElement(yt,null,e),t&&Yt.default.createElement("span",{style:{marginLeft:"auto",fontFamily:Ce,fontSize:11,color:"var(--color-text-muted)"}},t)),Yt.default.createElement("div",{style:i},r))}function H7({passed:e,total:t,label:r,labelWidth:n=128,width:a,height:i=6,color:o,valueWidth:l=38,style:s}){let u=t?e/t:0,c=o||tl[Gu(u)].strong;return Yt.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,...s}},r!=null&&Yt.default.createElement("span",{style:{fontFamily:Ce,fontSize:10,color:"var(--color-text-muted)",width:n,flexShrink:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:r},r),Yt.default.createElement("span",{style:{flex:a?void 0:1,width:a,height:i,borderRadius:999,background:"var(--color-muted)",overflow:"hidden",flexShrink:0}},Yt.default.createElement("span",{style:{display:"block",width:`${Math.round(u*100)}%`,height:"100%",borderRadius:999,background:c}})),Yt.default.createElement("span",{style:{fontFamily:Ce,fontSize:11,fontWeight:600,width:l,textAlign:"right",color:c}},e,"/",t))}function T1({children:e,onClick:t,href:r="#",color:n="var(--color-info)",size:a=11,style:i,title:o}){return Yt.default.createElement("a",{href:r,title:o,onClick:l=>{t&&(l.preventDefault(),t(l))},style:{fontFamily:Ce,fontSize:a,color:n,textDecoration:"none",...i}},e," ",zE.link)}function rl({children:e,style:t}){return Yt.default.createElement("div",{style:{padding:"20px 12px",fontFamily:Ce,fontSize:11,color:"var(--color-text-muted)",textAlign:"center",...t}},e)}var vr=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)}`},$E=e=>e==null?"\u2014":vr(e),Gr=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`},Vv=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)}`},li=(e,t=4)=>e==null?"\u2014":`$${Number(e).toFixed(t)}`,V7=(e,t=0)=>`${(Number(e||0)*100).toFixed(t)}%`,Xu=e=>e==null?"\u2014":Number(e).toFixed(2),Lf=(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}`},Bf=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`},M1=(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 le=re(ne());var ys=e=>[...new Set(e)],Gt=(e,t)=>`${e} ${t}${e===1?"":"s"}`,Kv=e=>String(e||"").replace(/_/g," "),hs=e=>e?.status==="passed",Zu=e=>!!e&&e.status!=="pending",xs=e=>!!e&&["pending","running"].includes(e.status),D1=e=>e?.selection||e?.scores?._selection||{},Sse=e=>(D1(e).models||[]).map(t=>typeof t=="string"?t:t?.label).filter(Boolean);function P1(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 a=Sse(e);if(a.length)return a;let i=ys(t.map(l=>Yv(e,l)));if(i.length)return i;let o=r?.compare_models||[];return o.length?o:e?["agent's model"]:[]}function Yv(e,t){let n=(D1(e).models||[]).filter(o=>o&&typeof o=="object").find(o=>o.model===t.model&&(o.provider||"")===(t.provider||""));if(n?.label)return n.label;let a=e?.scores?._models||{};if(a[t.model])return t.model;let i=[t.provider,t.model].filter(Boolean).join("/");return a[i]?i:t.model}function FE(e,t){let r=e?.scores?._models?.[t],n=(D1(e).models||[]).find(a=>a&&typeof a=="object"&&a.label===t);return M1(t,r?.provider||n?.provider||"")}function WE(e,t=[]){let r=D1(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 a=r.scenario_ids.map(String);return t.filter(i=>a.includes(String(i.id))).map(i=>i.key)}let n=t.filter(a=>a.enabled!==!1);return r.group?n.filter(a=>a.group===r.group).map(a=>a.key):xs(e)?n.map(a=>a.key):[]}function qv(e,t=[],r=[]){let n=WE(e,r);if(n.length)return n.length;let a=Object.values(e?.scores?._models||{});return a.length?Math.max(...a.map(i=>i.scenarios||0)):e?.samples_evaluated&&t.length?Math.round(e.samples_evaluated/t.length):0}function K7(e,t,r=[],n=0){let a=e?.scores?._models?.[t];if(a&&a.scenarios!=null)return{passed:a.passed||0,total:a.scenarios||0};let i=r.filter(o=>Yv(e,o)===t);return{passed:i.filter(hs).length,total:n||i.length}}function HE(e,t=[],r=[],n=[]){if(e?.status==="complete"&&e.samples_evaluated!=null)return{passed:e.samples_passed||0,total:e.samples_evaluated||0};let a=qv(e,r,n)*Math.max(r.length,1);return{passed:t.filter(hs).length,total:a}}function q7(e,t=[]){let r=[],n={};return(Array.isArray(e)?e:[]).forEach(a=>{let i=typeof a=="string"?a:String(a?.name||"");i&&(n[i]||(n[i]={name:i,count:0,errored:!1},r.push(i)),n[i].count+=1,a&&typeof a=="object"&&a.error&&(n[i].errored=!0))}),r.map(a=>{let i=n[a],o=t.includes(a);return{...i,hit:o,label:`${a}${i.errored?" \u2717":""}${i.count>1?` \xD7${i.count}`:""}`,color:i.errored?"var(--color-error)":o?"var(--color-success-text)":"var(--color-text-muted)",weight:i.errored||o?600:400}})}var Ase=(e,t)=>{let r=String(e||"").trim();return r.length>t?`${r.slice(0,t-1)}\u2026`:r},UE=e=>e?.diagnosis?.judge?.instruction_change;function Y7(e,t=[]){let r=e?.scores?._recommendations||[];if(Array.isArray(e?.fix_items)){let i=r.length>0||t.some(UE);if(e.fix_items.length>0||!i)return e.fix_items}let n=r.map(i=>kse(i,t)),a=new Set;return t.forEach(i=>{let o=UE(i);if(!o||a.has(o))return;a.add(o);let l=t.filter(s=>UE(s)===o);n.push({kind:"instruction",fault:"instruction change",count:l.length,scenario_keys:ys(l.map(s=>s.scenario_key)),models:ys(l.map(s=>Yv(e,s))),recommendation:i.diagnosis.judge.recommendation||i.recommendation||"",quote:o,tools_label:null,tools:[],server:null,note:null,action:{label:"Add to instructions",hint:"Agent -> Instructions",path:null}})}),n}function kse(e,t){let r=e.fault,n=t.filter(u=>u.fault===r),a=(e.suggested_tools||[]).map(u=>typeof u=="string"?u:u?.name).filter(Boolean),i=null,o=[],l=null,s=null;if(r==="expected_tool_not_called"){i="missing tools";let u=ys(n.flatMap(d=>d.diagnosis?.evidence?.unavailable||[]));u.length||(u=ys(n.flatMap(d=>{let f=d.diagnosis?.evidence||{};return(f.expected||[]).filter(p=>!(f.called||[]).includes(p))}))),o=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"){i="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:Ase(d.detail,60)||null,server:null})})),o=Object.values(u),s={label:"Open failing tools",hint:"Tools ->",path:"/tools"}}else i=a.length?"suggested tools":null,o=ys(a).map(u=>({name:u,note:null,server:null}));return!s&&i==="suggested tools"&&o.length&&(s={label:"Open suggested tools",hint:"Tools ->",path:"/tools"}),{kind:"fault",fault:r,count:e.count||n.length,scenario_keys:e.scenario_keys||ys(n.map(u=>u.scenario_key)),models:e.models||[],recommendation:e.recommendation||"",quote:null,tools_label:i,tools:o,server:null,note:l,action:s}}var ln=(e,t="var(--color-text-muted)",r={})=>({fontFamily:Ce,fontSize:e,color:t,...r});function G7({calls:e,empty:t,style:r}){return le.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"2px 8px",fontFamily:Ce,fontSize:11,...r}},e.map(n=>le.default.createElement("span",{key:n.name,style:{color:n.color,fontWeight:n.weight}},n.label)),e.length===0&&le.default.createElement("span",{style:{color:"var(--color-text-muted)"}},t))}var Nse=20,I1=(e=[],t=null)=>Number.isFinite(t)?Math.max(t,e.length):e.length,Cse=(e=[],t=null)=>{let r=I1(e,t),n=e.length=Nse;return`${Gt(r,"run")}${n?` \xB7 latest ${e.length}`:""}`};function X7({runs:e,runCount:t=null,selectedId:r,onSelect:n,agentName:a,selectedResults:i=[],scenarios:o=[]}){let l=I1(e,t),s=c=>l-c,u=e.map((c,d)=>{let f=P1(c,c.id===r?i:[]),p=c.id===r?i:[],m=qv(c,f,o),y=HE(c,p,f,o),h=c.selection||c.scores?._selection||{},v="first run",g="var(--color-text-muted)";if(c.status==="failed")v="failed",g="var(--color-error)";else if(xs(c))v=c.status==="pending"?"queued":"running";else{let b=e.findIndex((S,w)=>w>d&&S.status==="complete"),x=b>=0?e[b]:null;if(x){let S=P1(x);if(qv(x,S,o)===m&&S.length===f.length){let _=y.passed-(x.samples_passed||0);v=`${_>0?"+":""}${_} passed vs #${s(b)}`,g=_>0?"var(--color-success)":_<0?"var(--color-error)":"var(--color-text-muted)"}else v="partial run"}}return{run:c,label:`#${s(d)}`,when:Bf(c.completed_at||c.created_at),delta:v,deltaColor:g,note:`${a} \xB7 ${Gt(m,"scenario")} \xD7 ${Gt(f.length,"model")}${h.group?` \xB7 ${h.group}`:""}`,bars:f.map(b=>({label:b,...K7(c,b,p,m)})),selected:c.id===r}});return le.default.createElement(BE,{title:"Runs",meta:Cse(e,t),testId:"suite-runs-panel"},u.length===0&&le.default.createElement(rl,null,"[ ] no runs yet"),u.map(c=>le.default.createElement("div",{key:c.run.id,onClick:()=>n(c.run.id),className:c.selected?void 0:"hover:bg-[var(--color-hover)]","data-selected":c.selected?"true":"false",style:{padding:"10px 12px 10px 10px",borderTop:"1px solid var(--color-border-light)",cursor:"pointer",background:c.selected?"var(--color-muted)":void 0,borderLeft:`2px solid ${c.selected?"var(--color-accent-ui)":"transparent"}`}},le.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8}},le.default.createElement("span",{style:{fontFamily:Ce,fontSize:12,fontWeight:600,color:"var(--color-text-primary)"}},c.label),le.default.createElement("span",{style:{fontSize:11,color:"var(--color-text-muted)"}},c.when),le.default.createElement("span",{style:{marginLeft:"auto",fontFamily:Ce,fontSize:11,fontWeight:600,color:c.deltaColor}},c.delta)),le.default.createElement("div",{style:{...ln(11),marginTop:2,textWrap:"pretty"}},c.note),c.bars.length>0&&le.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:4,marginTop:8}},c.bars.map(d=>le.default.createElement(H7,{key:d.label,label:M1(d.label).short,passed:d.passed,total:d.total}))))))}function Z7({run:e,columns:t,results:r=[],scenarioCount:n=0,judgedBy:a,verdict:i}){let o=e?.scores?._models||{};return le.default.createElement(BE,{title:"Models",meta:a?`judged by ${a}`:null,testId:"suite-models-panel"},t.length===0&&le.default.createElement(rl,null,"[ ] no models scored yet"),t.map(l=>{let{short:s,provider:u}=FE(e,l),c=o[l],{passed:d,total:f}=K7(e,l,r,n),p=f?d/f:0,m=tl[Gu(p)].strong,y=Object.entries(c?.faults||{}),h=i?.winner===l;return le.default.createElement("div",{key:l,style:{padding:"10px 12px",borderTop:"1px solid var(--color-border-light)",display:"flex",flexDirection:"column",gap:6}},le.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"}},le.default.createElement("span",{style:{fontFamily:Ce,fontSize:12,fontWeight:600,color:"var(--color-text-primary)"},title:l},s),u&&le.default.createElement("span",{style:ln(11)},u),h&&le.default.createElement(jn,{tone:"info",size:10,style:{padding:"1px 6px"},testId:"judges-pick"},"judge's pick"),le.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:10}},le.default.createElement("span",{style:{width:120,height:6,borderRadius:999,background:"var(--color-muted)",overflow:"hidden"}},le.default.createElement("span",{style:{display:"block",width:`${Math.round(p*100)}%`,height:"100%",borderRadius:999,background:m}})),le.default.createElement("span",{style:{fontFamily:Ce,fontSize:12,fontWeight:600,color:m}},`${d}/${f}`))),le.default.createElement("div",{style:{display:"flex",gap:14,flexWrap:"wrap",fontFamily:Ce,fontSize:11,color:"var(--color-text-secondary)"}},le.default.createElement("span",null,"score ",le.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},c?.avg_score!=null?Number(c.avg_score).toFixed(3):"\u2014")),le.default.createElement("span",null,"latency ",le.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},Gr(c?.avg_duration_ms))),le.default.createElement("span",{style:{whiteSpace:"nowrap"}},le.default.createElement("span",{style:{color:"var(--color-token-in)"}},"in")," ",$E(c?.input_tokens)," \xB7 ",le.default.createElement("span",{style:{color:"var(--color-token-out)"}},"out")," ",$E(c?.output_tokens)),le.default.createElement("span",null,"cost ",le.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},li(c?.cost)))),le.default.createElement("div",{style:{display:"flex",gap:6,flexWrap:"wrap"}},y.map(([v,g])=>le.default.createElement(jn,{key:v,tone:"error"},`${Kv(v)} \xD7${g}`)),c&&y.length===0&&le.default.createElement("span",{style:{fontFamily:Ce,fontSize:11,color:"var(--color-success-text)"}},"[+] no faults"),!c&&xs(e)&&le.default.createElement("span",{style:ln(11)},"scoring\u2026")))}),i?.rationale&&le.default.createElement("div",{style:{padding:"10px 12px",borderTop:"1px solid var(--color-border-light)",fontSize:12,lineHeight:"18px",color:"var(--color-text-cell)",textWrap:"pretty"}},le.default.createElement(yt,{size:10,color:"var(--color-text-muted)",style:{marginRight:8}},"Verdict"),i.rationale))}function Q7({items:e,columns:t=[],agentName:r,onNavigate:n,onOpenScenario:a}){let i=o=>{let l=Gt((o.scenario_keys||[]).length,"scenario");if(o.kind==="instruction")return`${(o.scenario_keys||[]).join(", ")} \xB7 judge suggestion`;let s=ys(o.models||[]);if(t.length<=1||s.length===0)return l;let c=s.length>=t.length?t.length===2?"both models":"all models":s.map(d=>M1(d).short).join(", ");return`${l} \xB7 ${c}`};return le.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:12}},e.map((o,l)=>{let s=o.kind==="instruction",u=s?"info":"error",c=[],d=new Set;(o.tools||[]).forEach(y=>{let h=typeof y=="string"?y:y?.name;!h||d.has(h)||(d.add(h),c.push({name:h,note:typeof y=="object"&&(y.note||y.server?.name)||null}))});let f=o.server,p=f?.status==="enabled",m=r||"the agent";return le.default.createElement("div",{key:`${o.fault}-${l}`,"data-testid":"scenario-recommendation",style:{border:"1px solid var(--color-border)",borderRadius:10,padding:"12px 14px",display:"flex",flexDirection:"column",gap:10,minWidth:0}},le.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},le.default.createElement(O1,{kind:s?"info":"fault"}),le.default.createElement(jn,{tone:u},`${Kv(o.fault)}${o.count>1?` \xD7${o.count}`:""}`),a&&(o.scenario_keys||[]).length>0?le.default.createElement("button",{type:"button",onClick:()=>a(o.scenario_keys),title:`Show ${(o.scenario_keys||[]).join(", ")} \u2014 the question, the answer and the tools it called`,style:{...ln(11),background:"none",border:0,padding:0,cursor:"pointer",color:"var(--color-text-link, var(--color-text-primary))",textDecoration:"underline",textUnderlineOffset:2}},i(o)):le.default.createElement("span",{style:ln(11)},i(o))),o.recommendation&&le.default.createElement("p",{style:{margin:0,fontSize:13,lineHeight:"19px",color:"var(--color-text-cell)",textWrap:"pretty"}},o.recommendation),o.quote&&le.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",o.quote,"\u201D"),c.length>0&&le.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:6}},le.default.createElement(yt,{size:10,color:"var(--color-text-muted)"},o.tools_label||"tools"),le.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:6}},c.map(y=>le.default.createElement("span",{key:y.name,style:{display:"inline-flex",alignItems:"center",gap:6,padding:"3px 8px",borderRadius:6,border:"1px solid var(--color-border)",fontFamily:Ce,fontSize:11,maxWidth:"100%"}},le.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},y.name),y.note&&le.default.createElement("span",{style:{color:"var(--color-text-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:y.note},y.note))))),f&&le.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",fontSize:12,color:"var(--color-text-cell)"}},le.default.createElement("span",null,"served by"),le.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},f.name||f.key),le.default.createElement(jn,{tone:p?"success":"warning",size:10,style:{padding:"1px 6px"}},p?`enabled for ${m}`:`${f.status||"unknown"} \xB7 not enabled for ${m}`)),o.note&&le.default.createElement("div",{style:{fontSize:12,lineHeight:"18px",color:"var(--color-text-secondary)",textWrap:"pretty"}},o.note),o.action&&le.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:"auto",paddingTop:2,flexWrap:"wrap"}},o.action.path&&le.default.createElement(on,{size:"sm",onClick:()=>n?.(o.action.path)},o.action.label),o.action.hint&&le.default.createElement("span",{style:{...ln(11),whiteSpace:"nowrap"}},o.action.hint)))}))}var Ese=e=>`minmax(240px, 1.6fr) 150px ${e.map(()=>"minmax(170px, 1fr)").join(" ")}`;function _se({result:e,expects:t,pending:r}){if(!e)return le.default.createElement("span",{style:{...ln(12),fontWeight:600}},r?"\u2026":"\u2014");if(!Zu(e))return le.default.createElement("span",{style:{...ln(12),fontWeight:600}},"\u2026");let n=hs(e),a=n?"var(--color-success)":"var(--color-error)",i=q7(e.tool_calls,t);return le.default.createElement("div",{style:{minWidth:0,display:"flex",flexDirection:"column",gap:3}},le.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:6,flexWrap:"wrap",fontFamily:Ce,fontSize:12}},le.default.createElement("span",{style:{fontWeight:700,color:a}},n?"[+]":"[!]"),le.default.createElement("span",{style:{fontWeight:600,color:a}},Xu(e.score)),e.fault&&le.default.createElement("span",{style:{fontSize:11,color:"var(--color-error-text)"}},Kv(e.fault))),le.default.createElement(G7,{calls:i,empty:"no tools called"}))}function J7({rows:e,columns:t,run:r,resultsByKey:n,runKeys:a,running:i,openKey:o,onToggleRow:l,emptyLabel:s,renderDetail:u}){let c=Ese(t),d=e.some(p=>p.group),f=[];return e.forEach(p=>{let m=p.group||"",y=f.find(h=>h.name===m);y||(y={name:m,rows:[]},f.push(y)),y.rows.push(p)}),le.default.createElement("div",{style:{border:"1px solid var(--color-border-light)",borderRadius:10,overflowX:"auto"}},le.default.createElement("div",{style:{minWidth:Math.max(760,400+180*t.length)}},le.default.createElement("div",{style:{display:"grid",gridTemplateColumns:c,gap:12,padding:"8px 12px",background:"var(--color-muted)",alignItems:"end"}},le.default.createElement(yt,{size:10,color:"var(--color-text-muted)"},"Scenario"),le.default.createElement(yt,{size:10,color:"var(--color-text-muted)"},"Expects"),t.map(p=>{let{short:m,provider:y}=FE(r,p);return le.default.createElement("span",{key:p,style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},title:p},le.default.createElement("span",{style:{fontFamily:Ce,fontSize:11,fontWeight:600,color:"var(--color-text-primary)"}},m),le.default.createElement("span",{style:ln(10)},y||"\xA0"))})),f.map(p=>{let m=p.rows.filter(h=>a.has(h.key)||n[h.key]),y=t.map(h=>{let g=m.filter(S=>Zu(n[S.key]?.[h])).filter(S=>hs(n[S.key][h])).length,b=m.length,x=b&&g===b?"var(--color-success-text)":g===0?"var(--color-error-text)":"var(--color-text-cell)";return{label:h,text:b?`${g}/${b} passed`:"\u2014",color:x}});return le.default.createElement("div",{key:p.name||"__ungrouped"},(p.name||d)&&le.default.createElement("div",{style:{display:"grid",gridTemplateColumns:c,gap:12,padding:"7px 12px",borderTop:"1px solid var(--color-border-light)",background:"var(--color-background)",alignItems:"center"}},le.default.createElement("span",{style:{fontSize:12,fontWeight:600,color:"var(--color-text-primary)"}},p.name||"ungrouped"),le.default.createElement("span",{style:ln(11)},Gt(p.rows.length,"scenario")),y.map(h=>le.default.createElement("span",{key:h.label,style:{fontFamily:Ce,fontSize:11,fontWeight:600,color:h.color}},h.text))),p.rows.map(h=>{let v=o===h.key,g=h.expectations?.tools||[],b=a.has(h.key)||!!n[h.key],x=h.enabled===!1;return le.default.createElement("div",{key:h.key},le.default.createElement("div",{"data-testid":"scenario-row","data-scenario-key":h.key,onClick:()=>l(h.key),className:v?void 0:"hover:bg-[var(--color-hover)]",style:{display:"grid",gridTemplateColumns:c,gap:12,padding:"10px 12px",borderTop:"1px solid var(--color-border-light)",cursor:"pointer",background:v?"var(--color-muted)":void 0,opacity:x?.5:1}},le.default.createElement("div",{style:{minWidth:0}},le.default.createElement("div",{style:{...ln(11),marginBottom:2}},`${h.key}${x?" \xB7 disabled":""}`),le.default.createElement("div",{style:{fontSize:13,lineHeight:"18px",color:"var(--color-text-primary)",textWrap:"pretty"}},h.prompt)),le.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:4,alignContent:"flex-start",minWidth:0}},g.map(S=>le.default.createElement("span",{key:S,style:{fontFamily:Ce,fontSize:11,padding:"2px 6px",border:"1px solid var(--color-border)",borderRadius:4,color:"var(--color-text-cell)",whiteSpace:"nowrap"}},S)),g.length===0&&(h.expectations?.contains||[]).map(S=>le.default.createElement("span",{key:`contains-${S}`,style:{fontFamily:Ce,fontSize:11,padding:"2px 6px",border:"1px solid var(--color-border)",borderRadius:4,color:"var(--color-text-cell)",whiteSpace:"nowrap"},title:"the answer must contain this"},`contains: ${S}`))),t.map(S=>le.default.createElement(_se,{key:S,result:n[h.key]?.[S],expects:g,pending:i&&b}))),v&&u(h))}))}),e.length===0&&le.default.createElement(rl,{style:{borderTop:"1px solid var(--color-border-light)"}},s||"[+] nothing failed in this group")))}function Ose(e){let t=[];return e.duration_ms!=null&&t.push(Gr(e.duration_ms)),(e.input_tokens!=null||e.output_tokens!=null)&&t.push(`${vr((e.input_tokens||0)+(e.output_tokens||0))} tokens`),e.cost!=null&&t.push(li(e.cost)),t.join(" \xB7 ")}function Tse({label:e,run:t,result:r,expects:n,running:a}){let{short:i}=FE(t,e),o=le.default.createElement("span",{style:{fontFamily:Ce,fontSize:12,fontWeight:600,color:"var(--color-text-primary)"},title:e},i),l=(v,g)=>le.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}},le.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 12px",borderBottom:"1px solid var(--color-border-light)",flexWrap:"wrap"}},o,g),le.default.createElement("div",{style:{padding:"10px 12px",display:"flex",flexDirection:"column",gap:10}},v));if(!r||!Zu(r))return l(le.default.createElement("span",{style:ln(11)},a?"waiting for this replay\u2026":"not part of this run"),le.default.createElement(jn,{tone:"muted"},a?"pending":"no result"));let u=hs(r)?"success":"error",c=q7(r.tool_calls,n),d=r.diagnosis||{},f=d.judge||{},p=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||{}),h=Ose(r);return l(le.default.createElement(le.default.Fragment,null,le.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,flexWrap:"wrap",fontFamily:Ce,fontSize:11}},le.default.createElement(yt,{size:10,color:"var(--color-text-muted)"},"tools"),le.default.createElement(G7,{calls:c,empty:"none called",style:{display:"contents"}})),p&&le.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"}},le.default.createElement("span",{style:{fontFamily:Ce,fontWeight:700}},`[!] ${Kv(p)}`),m?` \u2014 ${m}`:"",f.suggested_tool?.name&&le.default.createElement("div",{style:{marginTop:4,fontFamily:Ce,fontSize:11}},`suggested tool: ${f.suggested_tool.name}${f.suggested_tool.description?` \u2014 ${f.suggested_tool.description}`:""}`),f.instruction_change&&le.default.createElement("div",{style:{marginTop:4,fontStyle:"italic"}},`instruction change: \u201C${f.instruction_change}\u201D`)),r.output?le.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):le.default.createElement("div",{style:ln(11)},"answer not retained for this run"),y.length>0&&le.default.createElement("div",{style:{...ln(11),display:"flex",flexWrap:"wrap",gap:"2px 10px"},title:"score per criterion"},y.map(([v,g])=>le.default.createElement("span",{key:v},Kv(v)," ",le.default.createElement("span",{style:{color:"var(--color-text-secondary)"}},g==null?"skipped":Xu(g)))))),le.default.createElement(le.default.Fragment,null,le.default.createElement(jn,{tone:u},r.score==null?r.status:`${r.status} \xB7 ${Xu(r.score)}`),h&&le.default.createElement("span",{style:{marginLeft:"auto",...ln(11)}},h)))}function R7({scenario:e,run:t,columns:r,resultsByKey:n,running:a,inRun:i=!0,onRerun:o,onToggleEnabled:l,canMutate:s=!0}){let u=e.expectations?.tools||[],c=n[e.key]||{},d=r.some(p=>c[p]),f=i||d;return le.default.createElement("div",{style:{borderTop:"1px solid var(--color-border-light)",background:"var(--color-background)",padding:"12px 12px 14px"},"data-testid":"scenario-drilldown"},le.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:10,flexWrap:"wrap"}},le.default.createElement("span",{style:ln(11)},e.key),le.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-cell)"}},"expects"),le.default.createElement("span",{style:{fontFamily:Ce,fontSize:11,fontWeight:600,color:"var(--color-text-primary)"}},u.join(" or ")||"\u2014"),s&&le.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:14}},le.default.createElement("button",{type:"button",onClick:p=>{p.stopPropagation(),l?.(e)},title:e.enabled===!1?"Enable this scenario":"Disable this scenario",style:{background:"transparent",border:"none",padding:0,cursor:"pointer",fontFamily:Ce,fontSize:11,color:e.enabled===!1?"var(--color-text-muted)":"var(--color-text-cell)"}},e.enabled===!1?"[ ] enabled":"[x] enabled"),le.default.createElement(T1,{onClick:()=>o?.(e),title:"Run only this scenario under the selected models"},"re-run scenario"))),e.notes&&le.default.createElement("div",{style:{fontSize:12,fontStyle:"italic",color:"var(--color-text-secondary)",marginBottom:10}},e.notes),e.catalogChanged&&le.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 catalog."),t?f?le.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(300px, 1fr))",gap:12}},r.map(p=>le.default.createElement(Tse,{key:p,label:p,run:t,result:c[p],expects:u,running:a}))):le.default.createElement("div",{style:ln(11)},"Not part of this run \u2014 use \u201Cre-run scenario\u201D to replay it."):le.default.createElement("div",{style:ln(11)},"No runs yet \u2014 use \u201Cre-run scenario\u201D to replay this one on its own."))}var VE=()=>document.querySelector('meta[name="csrf-token"]')?.content;function Mse(e){let t=[],r=null;return e.forEach(n=>{(n.group||"")!==(r||"")&&(r=n.group,r&&t.push(`# ${r}`));let a=[],i=n.expectations||{};i.tools?.length&&a.push(`tools: ${i.tools.join(", ")}`),i.contains?.length&&a.push(`contains: ${i.contains.join(", ")}`),i.not_contains?.length&&a.push(`not_contains: ${i.not_contains.join(", ")}`),n.notes&&a.push(`notes: ${n.notes}`),a.push(`key: ${n.key}`),t.push(`${n.prompt} | ${a.join(" | ")}`)}),t.join(` -`)}function e$(e){if(!e)return;let t=gs(e);C1(t),window.dispatchEvent(new CustomEvent("dashboard:navigate",{detail:{path:Je(t)}}))}var Pse=e=>{let{results:t,fix_items:r,...n}=e;return n},Dse=e=>{if(!e)return null;let t=[li(e.cost),`${vr((e.input_tokens||0)+(e.output_tokens||0))} tokens`];return e.model_time_ms!=null&&t.push(`model time ${Gr(e.model_time_ms)}`),e.runtime_ms!=null&&t.push(`finished in ${Gr(e.runtime_ms)}`),t.join(" \xB7 ")},t$={padding:"6px 10px",borderRadius:8,fontSize:12,fontFamily:Ce,background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"};function KE({evaluation:e,onChanged:t,onDelete:r,deleting:n=!1}){let a=e.id,i=e.agent?.name||"Agent",[o,l]=(0,Me.useState)(!1),[s,u]=(0,Me.useState)(null),[c,d]=(0,Me.useState)([]),[f,p]=(0,Me.useState)(e.scenario_groups||[]),[m,y]=(0,Me.useState)(e.latest_run?[e.latest_run]:[]),[h,v]=(0,Me.useState)(null),[g,b]=(0,Me.useState)(e.latest_run?.id??null),[x,S]=(0,Me.useState)({}),[w,_]=(0,Me.useState)((e.compare_models||[]).join(", ")),[k,A]=(0,Me.useState)(null),[P,K]=(0,Me.useState)(!1),[z,Q]=(0,Me.useState)(!1),[M,F]=(0,Me.useState)(""),[N,O]=(0,Me.useState)(null),[I,D]=(0,Me.useState)(null),[T,j]=(0,Me.useState)(!1),[R,U]=(0,Me.useState)(null),[q,ee]=(0,Me.useState)(0),fe=(0,Me.useCallback)(async()=>{let ye=await fetch(`/api/evaluations/${a}/scenarios`);if(!ye.ok)return;let lt=await ye.json();d(lt.scenarios||[]),p(lt.groups||[])},[a]),pe=(0,Me.useCallback)(async()=>{try{let ye=await fetch(`/api/evaluations/${a}`);if(!ye.ok)return u(`Could not load this suite (HTTP ${ye.status})`),null;let Xt=(await ye.json()).evaluation||{};return d(Xt.scenarios||[]),p(Xt.scenario_groups||[]),y(Xt.runs||[]),v(Number.isFinite(Xt.run_count)?Xt.run_count:null),u(null),Xt}catch(ye){return u(`Could not load this suite: ${ye.message}`),null}finally{l(!0)}},[a]),Pe=(0,Me.useCallback)(async ye=>{if(!ye)return null;let lt=await fetch(`/api/evaluations/${a}/runs/${ye}`);if(!lt.ok)return null;let dr=(await lt.json()).run;return dr?(S(vn=>({...vn,[dr.id]:dr})),y(vn=>vn.map(As=>As.id===dr.id?{...As,...Pse(dr)}:As)),dr):null},[a]);(0,Me.useEffect)(()=>{let ye=!1;return(async()=>{let lt=await pe();if(ye)return;let Xt=lt?.runs?.[0]?.id??null;b(dr=>dr&<?.runs?.some(vn=>vn.id===dr)?dr:Xt),Xt&&Pe(Xt)})(),()=>{ye=!0}},[pe,Pe]);let oe=e.latest_run?.id??null;(0,Me.useEffect)(()=>{!oe||m.some(ye=>ye.id===oe)||pe()},[oe,m,pe]);let Te=x[g]||m.find(ye=>ye.id===g)||null,V=m[0]||null,J=xs(Te)?Te.id:xs(V)?V.id:null;(0,Me.useEffect)(()=>{if(!J)return;let ye=!1,lt=setTimeout(async()=>{let Xt=null;try{Xt=await Pe(J)}catch{Xt=null}if(!ye){if(Xt&&!xs(Xt)){await pe(),t?.();return}ee(dr=>dr+1)}},3e3);return()=>{ye=!0,clearTimeout(lt)}},[J,q,Pe,pe,t]);let E=w.split(",").map(ye=>ye.trim()).filter(Boolean),L=async ye=>{K(!0),A(null);try{let lt=await fetch(`/api/evaluations/${a}/run`,{method:"POST",headers:{"Content-Type":"application/json","X-CSRF-Token":VE()},body:JSON.stringify({...ye,models:E})}),Xt=await lt.json().catch(()=>({}));if(!lt.ok)throw new Error((Xt.errors||[Xt.error]).filter(Boolean).join(", ")||"Run failed to start");let dr=Xt.run;y(vn=>[dr,...vn.filter(As=>As.id!==dr.id)]),v(vn=>vn==null?null:vn+1),S(vn=>({...vn,[dr.id]:{...dr,results:[]}})),b(dr.id),U(null),t?.()}catch(lt){A(lt.message)}finally{K(!1)}},X=ye=>{b(ye),U(null),x[ye]||Pe(ye)},B=async ye=>{ye.id&&(await fetch(`/api/evaluations/${a}/scenarios/${ye.id}`,{method:"PATCH",headers:{"Content-Type":"application/json","X-CSRF-Token":VE()},body:JSON.stringify({scenario:{enabled:ye.enabled===!1}})}),await fe())},Ae=async()=>{O(null);let ye=await fetch(`/api/evaluations/${a}/scenarios`,{method:"PUT",headers:{"Content-Type":"application/json","X-CSRF-Token":VE()},body:JSON.stringify({scenarios_text:M})}),lt=await ye.json().catch(()=>({}));if(!ye.ok){O((lt.errors||[lt.error]).filter(Boolean).join(", ")||"Could not save scenarios");return}d(lt.scenarios||[]),p(lt.groups||[]),Q(!1),t?.()},C=Te,Y=(0,Me.useMemo)(()=>(C?.results||[]).filter(ye=>ye&&ye.scenario_key),[C]),ve=(0,Me.useMemo)(()=>P1(C,Y,e),[C,Y,e]),ze=(0,Me.useMemo)(()=>Y.reduce((ye,lt)=>((ye[lt.scenario_key]||={})[Yv(C,lt)]=lt,ye),{}),[Y,C]),tt=(0,Me.useMemo)(()=>new Set(WE(C,c)),[C,c]),Lt=xs(C),ct=qv(C,ve,c),Nn=HE(C,Y,ve,c),Ln=(0,Me.useCallback)(ye=>tt.has(ye.key)||!!ze[ye.key],[tt,ze]),na=(0,Me.useMemo)(()=>U7(c,ze),[c,ze]),_i=ye=>ve.some(lt=>{let Xt=ze[ye.key]?.[lt];return Zu(Xt)&&!hs(Xt)}),Ru=na.filter(ye=>!I||(ye.group||"")===I).filter(ye=>!T||_i(ye)),cr=m.findIndex(ye=>ye.id===C?.id),Bn=I1(m,h),Ri=cr>=0?Bn-cr:null,ec=new Set(na.filter(Ln).map(ye=>ye.group).filter(Boolean)).size,X1=Y.filter(Zu).length,Vf=ct*Math.max(ve.length,1),Z1=new Set(Y.filter(ye=>Zu(ye)&&!hs(ye)).map(ye=>ye.scenario_key)).size,tc=C?.scores?._verdict||null,eo=Object.prototype.hasOwnProperty.call(C?.scores||{},"_judge_label")?C.scores._judge_label||"rules":tc?.judge&&tc.judge!=="pass rate"?tc.judge:e.judge_model||"rules",rc=(0,Me.useMemo)(()=>C?Y7(C,Y):[],[C,Y]),Q1=(0,Me.useCallback)(ye=>{let lt=Array.isArray(ye)?ye[0]:ye;lt&&(D(null),j(!1),U(lt),requestAnimationFrame(()=>{document.querySelector(`[data-scenario-key="${CSS.escape(lt)}"]`)?.scrollIntoView({behavior:"smooth",block:"center"})}))},[]),og=Object.keys(C?.scores||{}).filter(ye=>!ye.startsWith("_")),J1=(og.length?og:(e.criteria||[]).map(ye=>ye.key)).map(ye=>String(ye).replace(/_/g," ")).join(" \xB7 ")||"\u2014",nc=o?c.length:e.scenario_count??0,Kf=o?c.filter(ye=>ye.enabled!==!1&&(!I||(ye.group||"")===I)).length:nc,lg=`Run ${Gt(Kf,"scenario")}${E.length?` \xD7 ${Gt(E.length,"model")}`:""}`,R1=C?[cr>0?`Viewing run #${Ri} (latest is #${Bn})`:`Run #${Ri??"?"} \xB7 ${Bf(C.completed_at||C.created_at)}`,i,`${Gt(ct,"scenario")}${ec?` in ${Gt(ec,"group")}`:""} \xD7 ${Gt(ve.length,"model")}`,C.status==="failed"?"failed":`${Nn.passed}/${Nn.total} passed`].join(" \xB7 "):`${i} \xB7 ${Gt(nc,"scenario")}${f.length?` in ${Gt(f.length,"group")}`:""} \xB7 ${s?"not loaded":o?"no runs yet":"loading\u2026"}`,qf=C&&C.status==="complete"?`/evaluations/${a}/runs/${C.id}/report`:null,ew=[...new Set([...f,...na.map(ye=>ye.group).filter(Boolean)])],tw=[{label:`All ${na.length||nc}`,value:null}].concat(ew.map(ye=>({label:o?`${ye} ${na.filter(lt=>lt.group===ye).length}`:ye,value:ye}))),ac=na.length===0,rw=T?"[+] nothing failed in this group":"[ ] no scenarios";return Me.default.createElement("div",{style:{padding:16,display:"flex",flexDirection:"column",gap:16},"data-testid":"scenario-suite-panel"},Me.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"}},Me.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-secondary)"}},R1),Lt&&Me.default.createElement("span",{style:{fontFamily:Ce,fontSize:11,color:"var(--color-text-muted)"},"data-testid":"suite-run-progress"},`running \xB7 ${X1} of ${Vf} results in`),Me.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},Me.default.createElement(on,{size:"sm",onClick:()=>{F(Mse(c)),O(null),Q(!z)}},z?"Cancel":"Edit scenarios"),Me.default.createElement("input",{type:"text",value:w,onChange:ye=>_(ye.target.value),placeholder:"models, e.g. gpt-5-mini, ollama/qwen3:8b",style:{...t$,width:250},title:"Comma-separated. Prefix with a provider (ollama/qwen3:8b) when the name alone is ambiguous; blank runs the agent's own model."}),Me.default.createElement(on,{variant:"primary",size:"sm",disabled:P||!o||Kf===0,onClick:()=>L(I?{group:I}:{}),testId:"suite-run-button"},P?"Starting\u2026":lg))),(s||k||C?.status==="failed")&&Me.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)",background:"var(--color-error-soft)",borderRadius:8,padding:"8px 12px"}},s||k||`Run failed: ${C.error_message||"unknown error"}`),z&&Me.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8}},Me.default.createElement("textarea",{value:M,onChange:ye=>F(ye.target.value),rows:Math.min(Math.max(c.length+4,6),24),style:{...t$,width:"100%",boxSizing:"border-box",lineHeight:"18px"}}),Me.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12,fontSize:12,color:"var(--color-text-muted)",flexWrap:"wrap"}},Me.default.createElement("span",{style:{flex:1,minWidth:240}},"One message per line. ",Me.default.createElement("code",{style:{fontFamily:Ce}},"# Heading")," starts a group; ",Me.default.createElement("code",{style:{fontFamily:Ce}},"| tools: a, b"),", ",Me.default.createElement("code",{style:{fontFamily:Ce}},"| contains: x"),", ",Me.default.createElement("code",{style:{fontFamily:Ce}},"| not_contains: y")," set expectations. Keep a scenario's ",Me.default.createElement("code",{style:{fontFamily:Ce}},"key")," to keep its history."),Me.default.createElement(on,{variant:"primary",size:"sm",onClick:Ae},"Save scenarios")),N&&Me.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},N)),Me.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"minmax(280px, 2fr) minmax(0, 3fr)",gap:16,alignItems:"start"}},Me.default.createElement(X7,{runs:m,runCount:h,selectedId:C?.id??null,onSelect:X,agentName:i,selectedResults:Y,scenarios:c}),Me.default.createElement(Z7,{run:C,columns:C?ve:[],results:Y,scenarioCount:ct,judgedBy:eo,verdict:tc})),C&&C.status!=="failed"&&Me.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},Me.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:10}},Me.default.createElement(yt,null,"What to fix"),Me.default.createElement("span",{style:{fontFamily:Ce,fontSize:11,color:"var(--color-text-muted)"}},`${Gt(rc.length,"item")} \xB7 ${Gt(Math.max(Nn.total-Nn.passed,0),"fault")} across ${Gt(Z1,"scenario")}`)),rc.length>0?Me.default.createElement(Q7,{items:rc,columns:ve,agentName:i,onNavigate:e$,onOpenScenario:Q1}):Me.default.createElement(rl,{style:{border:"1px solid var(--color-border-light)",borderRadius:10,padding:"14px 12px"}},Lt?"[ ] scoring\u2026":"[+] nothing to fix")),Me.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},Me.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Me.default.createElement(yt,{style:{marginRight:4}},"Scenarios"),tw.map(ye=>Me.default.createElement(LE,{key:ye.label,selected:I===ye.value,onClick:()=>D(ye.value)},ye.label)),Me.default.createElement(LE,{square:!0,mono:!0,selected:T,onClick:()=>j(!T),style:{marginLeft:"auto",background:"transparent"},title:"Hide scenarios that passed on every model"},T?"[x] failed only":"[ ] failed only")),ac&&s?Me.default.createElement(rl,{style:{border:"1px solid var(--color-border-light)",borderRadius:10}},"[!] suite not loaded"):ac&&!o?Me.default.createElement(rl,{style:{border:"1px solid var(--color-border-light)",borderRadius:10}},"loading\u2026"):ac?Me.default.createElement(rl,{style:{border:"1px solid var(--color-border-light)",borderRadius:10}},"No scenarios yet \u2014 paste some with \u201CEdit scenarios\u201D."):Me.default.createElement(J7,{rows:Ru,columns:C?ve:[],run:C,resultsByKey:ze,runKeys:tt,running:Lt,openKey:R,onToggleRow:ye=>U(R===ye?null:ye),emptyLabel:rw,renderDetail:ye=>Me.default.createElement(R7,{scenario:ye,run:C,columns:C?ve:[],resultsByKey:ze,running:Lt,inRun:Ln(ye),canMutate:!ye.orphan,onRerun:lt=>L({keys:[lt.key]}),onToggleEnabled:B})})),Me.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:16,flexWrap:"wrap",paddingTop:12,borderTop:"1px solid var(--color-border-light)",fontFamily:Ce,fontSize:11,color:"var(--color-text-muted)"}},Me.default.createElement("span",{style:{whiteSpace:"nowrap"}},`judge ${eo}`),Me.default.createElement("span",{style:{minWidth:0,textWrap:"pretty"}},`criteria ${J1}`),C?.usage&&Me.default.createElement("span",{style:{whiteSpace:"nowrap"},title:"Estimated cost, tokens and model time of this run"},Dse(C.usage)),qf&&Me.default.createElement(T1,{href:Je(qf),onClick:()=>e$(qf),title:"The run rendered as a report page"},"run report"),r&&Me.default.createElement("button",{type:"button",onClick:r,disabled:n,title:"Delete this suite and its runs",style:{marginLeft:"auto",background:"transparent",border:"none",padding:0,cursor:n?"not-allowed":"pointer",fontFamily:Ce,fontSize:11,color:"var(--color-error)",opacity:n?.5:1}},n?"Deleting\u2026":"Delete suite")))}var qE=[{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}}],YE=[{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}}],GE=()=>document.querySelector('meta[name="csrf-token"]')?.content,Ise=e=>{if(!e)return null;let t=(e.input_tokens||0)+(e.output_tokens||0),r=e.runtime_ms==null?null:Gr(e.runtime_ms);return`${li(e.cost)} \xB7 ${vr(t)} tok${r?` \xB7 ${r}`:""}`},a$=e=>e>=.85?"success":e>=.7?"warning":"error",r$=()=>{let e=gs().match(/^\/evaluations\/(\d+)\/runs\/(\d+)\/report/);if(e)return{evaluationId:e[1],runId:e[2]};let t=_1(window.location.search);return t?.runId?t:null},nl={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)"},Qi=(e=11,t="var(--color-text-muted)")=>({fontFamily:Ce,fontSize:e,color:t});function n$({label:e,score:t,indent:r=!1,mono:n=!1}){let a=t.skipped?null:a$(t.score);return te.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:16,paddingLeft:r?16:0}},te.default.createElement("div",{style:{width:160,flexShrink:0,fontSize:n?11:13,fontFamily:n?Ce:"inherit",color:"var(--color-text-secondary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:e},n?e:e.replace(/_/g," "),t.source==="telemetry"&&te.default.createElement("span",{"data-testid":"score-source-telemetry",style:{...Qi(10),marginLeft:6,textTransform:"uppercase",letterSpacing:"0.05em"},title:`Aggregate over ${t.traces} traces in the last ${t.window_hours}h`},"telemetry")),t.skipped?te.default.createElement("div",{style:{flex:1,fontSize:12,fontStyle:"italic",color:"var(--color-text-muted)"},title:t.reason},"skipped \u2014 ",t.reason):te.default.createElement(te.default.Fragment,null,te.default.createElement("div",{style:{flex:1,height:6,borderRadius:999,background:"var(--color-muted)",overflow:"hidden"}},te.default.createElement("div",{style:{height:"100%",width:`${Math.round(t.score*100)}%`,borderRadius:999,background:tl[a].strong}})),te.default.createElement("div",{style:{width:48,textAlign:"right",fontFamily:Ce,fontSize:12,fontWeight:600,color:tl[a].strong},title:`min ${t.min} \xB7 max ${t.max} \xB7 ${t.passed}/${t.total} passed`},Xu(t.score))))}function Gv({embedded:e=!1,agentId:t=null}){let{darkMode:r}=At(),[n,a]=(0,te.useState)(()=>e?null:r$()),i=(0,te.useRef)(null),[o,l]=(0,te.useState)(0),[s,u]=(0,te.useState)(null);(0,te.useEffect)(()=>{let C=i.current?.contentDocument?.body;if(!C)return;let Y=()=>u(C.scrollHeight);if(Y(),typeof ResizeObserver>"u")return window.addEventListener("resize",Y),()=>window.removeEventListener("resize",Y);let ve=new ResizeObserver(Y);return ve.observe(C),()=>ve.disconnect()},[o,n]),(0,te.useEffect)(()=>u(null),[n]),(0,te.useEffect)(()=>{if(e)return;let C=()=>a(r$());return window.addEventListener("popstate",C),window.addEventListener("dashboard:navigate",C),()=>{window.removeEventListener("popstate",C),window.removeEventListener("dashboard:navigate",C)}},[e]);let[c,d]=(0,te.useState)([]),[f,p]=(0,te.useState)([]),[m,y]=(0,te.useState)(!0),[h,v]=(0,te.useState)(null),[g,b]=(0,te.useState)(null),[x,S]=(0,te.useState)(()=>e?null:_1(window.location.search)?.evaluationId);(0,te.useEffect)(()=>{if(e)return;let C=()=>{let Y=_1(window.location.search)?.evaluationId;S(Y),Y&&b(new Set([Number(Y)]))};return window.addEventListener("popstate",C),window.addEventListener("dashboard:navigate",C),()=>{window.removeEventListener("popstate",C),window.removeEventListener("dashboard:navigate",C)}},[e]);let[w,_]=(0,te.useState)(!1),[k,A]=(0,te.useState)(null),[P,K]=(0,te.useState)(null),[z,Q]=(0,te.useState)({agent_id:t?String(t):"",name:"",sample_size:20,criteria:qE.map(C=>C.key),containsPattern:"",llmJudgePrompt:"",judgeKind:"manual",judgeModel:"",compareModels:"",scenariosText:""}),[M,F]=(0,te.useState)(null),[N,O]=(0,te.useState)(!1),I=(0,te.useCallback)(async()=>{try{let C=await fetch(`/api/evaluations${t?`?agent_id=${encodeURIComponent(t)}`:""}`);if(!C.ok)throw new Error(`Request failed (${C.status})`);let ve=(await C.json()).evaluations||[],ze=null;try{ve=await F7(ve,x,fetch)}catch(tt){ze=tt.message}d(ve),b(tt=>{if(tt)return tt;let Lt=x?ve.find(ct=>String(ct.id)===x):ve.find(ct=>ct.scenario_suite)||ve[0];return new Set(Lt?[Lt.id]:[])}),v(ze)}catch(C){v(C.message)}finally{y(!1)}},[t,x]);(0,te.useEffect)(()=>{I(),fetch("/api/agents").then(C=>C.ok?C.json():{agents:[]}).then(C=>p(C.agents||[])).catch(()=>p([]))},[I]);let D=C=>!!g?.has(C),T=C=>b(Y=>{let ve=new Set(Y||[]);return ve.has(C)?ve.delete(C):ve.add(C),ve}),j=()=>{let C=[...qE,...YE].filter(Y=>z.criteria.includes(Y.key)).map(({key:Y,type:ve,config:ze})=>({key:Y,type:ve,config:ze}));return z.containsPattern.trim()&&C.push({key:"contains",type:"contains",config:{pattern:z.containsPattern.trim()}}),z.llmJudgePrompt.trim()&&C.push({key:"quality",type:"llm_judge",config:{prompt:z.llmJudgePrompt.trim()}}),C},R=async C=>{C.preventDefault(),O(!0),F(null);try{let Y=await fetch("/api/evaluations",{method:"POST",headers:{"Content-Type":"application/json","X-CSRF-Token":GE()},body:JSON.stringify({evaluation:{agent_id:z.agent_id,name:z.name,sample_size:z.sample_size,judge_kind:z.judgeKind==="judge_defined"?"judge_defined":z.llmJudgePrompt.trim()?"llm":"rules",judge_model:z.judgeModel.trim()||void 0,compare_models:z.compareModels.split(",").map(ze=>ze.trim()).filter(Boolean),criteria:z.judgeKind==="judge_defined"?[]:j(),scenarios_text:z.scenariosText.trim()||void 0}})}),ve=await Y.json().catch(()=>({}));if(!Y.ok)throw new Error((ve.errors||[ve.error]).filter(Boolean).join(", ")||`Failed to create evaluation (HTTP ${Y.status})`);_(!1),Q({...z,name:"",scenariosText:""}),await I(),ve.evaluation?.id!=null&&b(ze=>new Set([...ze||[],ve.evaluation.id]))}catch(Y){F(Y.message)}finally{O(!1)}},U=async C=>{A(C),v(null);try{let Y=await fetch(`/api/evaluations/${C}/run`,{method:"POST",headers:{"X-CSRF-Token":GE()}});Y.ok||v(`Run failed (HTTP ${Y.status})`),await I()}finally{A(null)}},q=async C=>{if(window.confirm(`Delete "${C.name}"? Its runs are deleted with it.`)){K(C.id),v(null);try{let Y=await fetch(`/api/evaluations/${C.id}`,{method:"DELETE",headers:{"X-CSRF-Token":GE()}});Y.ok||Y.status===404?(d(ve=>ve.filter(ze=>ze.id!==C.id)),b(ve=>{let ze=new Set(ve||[]);return ze.delete(C.id),ze})):v(`Delete failed (HTTP ${Y.status})`)}finally{K(null)}}};if(m)return te.default.createElement("div",{className:"flex items-center justify-center h-64"},te.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2",style:{borderBottomColor:"var(--color-accent-ui)"}}));let ee=t?c.filter(C=>String(C.agent?.id)===String(t)):c,fe=ee.filter(C=>C.scenario_suite),pe=ee.filter(C=>!C.scenario_suite),Pe=fe.map(C=>C.latest_run).filter(C=>C&&C.status==="complete"),oe=Pe.reduce((C,Y)=>C+(Y.samples_evaluated||0),0),Te=Pe.reduce((C,Y)=>C+(Y.samples_passed||0),0),V=Pe.reduce((C,Y)=>C+(Y.scores?._recommendations?.length||0),0),J=oe?Te/oe:null,E=[...new Set(fe.map(C=>C.agent?.name).filter(Boolean))],L=fe.reduce((C,Y)=>Math.max(C,Y.latest_run?.models?.length||(Y.compare_models||[]).length||0),0),X=[];E.length===1?X.push(`@${E[0]} \xB7 ${L>1?`${L} models compared`:"1 model"}`):E.length>1&&X.push(Gt(E.length,"agent")),pe.length&&X.push(Gt(pe.length,"sampling evaluation"));let B=X.join(" \xB7 ")||"no suites yet",Ae=C=>C&&typeof C=="object"&&!("score"in C)&&!("skipped"in C);if(n){let C=Je(`/api/evaluations/${n.evaluationId}/runs/${n.runId}/report`),Y=`${C}?theme=${r?"dark":"light"}`;return te.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},te.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},te.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12}},te.default.createElement(on,{size:"sm",onClick:()=>{C1("/evaluations"),a(null)}},te.default.createElement("span",{style:{fontFamily:Ce}},"<-")," Evaluations"),te.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Run report"),te.default.createElement("span",{style:Qi(11)},`evaluation ${n.evaluationId} \xB7 run ${n.runId}`)),te.default.createElement("a",{href:C,target:"_blank",rel:"noopener noreferrer",title:"The report is one self-contained page \u2014 save it to export",style:{padding:"6px 12px",borderRadius:8,fontSize:13,fontWeight:500,color:"var(--color-text-cell)",border:"1px solid var(--color-border-strong)",textDecoration:"none"}},"Open standalone ",te.default.createElement("span",{style:{fontFamily:Ce}},"->"))),te.default.createElement("iframe",{ref:i,src:Y,title:"Evaluation run report",onLoad:()=>l(ve=>ve+1),scrolling:"no",style:{width:"100%",borderRadius:12,border:"1px solid var(--color-border)",background:"var(--color-background)",display:"block",height:s?`${s}px`:"calc(100vh - 180px)"}}))}return te.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:20}},te.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:16,flexWrap:"wrap"}},!e&&te.default.createElement("div",{style:{flex:1,minWidth:260}},te.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Evaluations"),te.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")),te.default.createElement("div",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:12}},te.default.createElement(on,{variant:"primary",onClick:()=>_(!w),testId:"new-evaluation-button"},w?"Cancel":"New Evaluation"))),h&&te.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: ",h),w&&te.default.createElement(kn,{testId:"new-evaluation-form"},te.default.createElement("form",{onSubmit:R,style:{display:"flex",flexDirection:"column",gap:16}},te.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},te.default.createElement("div",null,te.default.createElement(yt,{as:"label",style:{display:"block",marginBottom:6}},"Agent"),te.default.createElement("select",{required:!0,disabled:!!t,value:z.agent_id,onChange:C=>Q({...z,agent_id:C.target.value}),style:{...nl,width:"100%",opacity:t?.7:1}},!t&&te.default.createElement("option",{value:""},"Select agent\u2026"),f.map(C=>te.default.createElement("option",{key:C.id,value:C.id},C.name)))),te.default.createElement("div",null,te.default.createElement(yt,{as:"label",style:{display:"block",marginBottom:6}},"Name"),te.default.createElement("input",{required:!0,type:"text",value:z.name,onChange:C=>Q({...z,name:C.target.value}),placeholder:"Response Quality",style:{...nl,width:"100%"}})),te.default.createElement("div",null,te.default.createElement(yt,{as:"label",style:{display:"block",marginBottom:6}},"Sample size"),te.default.createElement("input",{type:"number",min:"1",max:"100",value:z.sample_size,onChange:C=>Q({...z,sample_size:C.target.value}),style:{...nl,width:"100%",fontFamily:Ce}}))),te.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},te.default.createElement("div",null,te.default.createElement(yt,{as:"label",style:{display:"block",marginBottom:6}},"KPI definition"),te.default.createElement("select",{value:z.judgeKind,onChange:C=>Q({...z,judgeKind:C.target.value}),style:{...nl,width:"100%"}},te.default.createElement("option",{value:"manual"},"Manual criteria"),te.default.createElement("option",{value:"judge_defined"},"Judge defines KPIs from agent goals"))),te.default.createElement("div",null,te.default.createElement(yt,{as:"label",style:{display:"block",marginBottom:6}},"Judge model (optional)"),te.default.createElement("input",{type:"text",value:z.judgeModel,onChange:C=>Q({...z,judgeModel:C.target.value}),placeholder:"e.g. claude-opus-5",style:{...nl,width:"100%",fontFamily:Ce,fontSize:12}})),te.default.createElement("div",null,te.default.createElement(yt,{as:"label",style:{display:"block",marginBottom:6}},"Compare models (optional, comma-separated)"),te.default.createElement("input",{type:"text",value:z.compareModels,onChange:C=>Q({...z,compareModels:C.target.value}),placeholder:"e.g. claude-haiku-4-5, qwen3:8b",style:{...nl,width:"100%",fontFamily:Ce,fontSize:12}}))),te.default.createElement("div",null,te.default.createElement(yt,{as:"label",style:{display:"block",marginBottom:6}},"Scenarios (optional) \u2014 paste user messages to replay, one per line"),te.default.createElement("textarea",{value:z.scenariosText,onChange:C=>Q({...z,scenariosText:C.target.value}),rows:z.scenariosText?8:3,placeholder:`# Find records + `).concat(x.x,",").concat(x.y),w=ct(e.id)?Ci("recharts-radial-line-"):e.id;return ra.createElement("text",Ki({},n,{dominantBaseline:"central",className:Ue("recharts-radial-bar-label",i)}),ra.createElement("defs",null,ra.createElement("path",{id:w,d:S})),ra.createElement("textPath",{xlinkHref:"#".concat(w)},r))},rte=(e,t,r)=>{var n=e.cx,a=e.cy,o=e.innerRadius,i=e.outerRadius,l=e.startAngle,s=e.endAngle,u=(l+s)/2;if(r==="outside"){var c=qt(n,a,i+t,u),d=c.x,f=c.y;return{x:d,y:f,textAnchor:d>=n?"start":"end",verticalAnchor:"middle"}}if(r==="center")return{x:n,y:a,textAnchor:"middle",verticalAnchor:"middle"};if(r==="centerTop")return{x:n,y:a,textAnchor:"middle",verticalAnchor:"start"};if(r==="centerBottom")return{x:n,y:a,textAnchor:"middle",verticalAnchor:"end"};var p=(o+i)/2,m=qt(n,a,p,u),y=m.x,h=m.y;return{x:y,y:h,textAnchor:"middle",verticalAnchor:"middle"}},gf=e=>e!=null&&"cx"in e&&be(e.cx),nte={angle:0,offset:5,zIndex:dt.label,position:"middle",textBreakAll:!1};function ate(e){if(!gf(e))return e;var t=e.cx,r=e.cy,n=e.outerRadius,a=n*2;return{x:t-n,y:r-n,width:a,upperWidth:a,lowerWidth:a,height:a}}function Vi(e){var t,r,n=lt(e,nte),a=n.viewBox,o=n.parentViewBox,i=n.position,l=n.value,s=n.children,u=n.content,c=n.className,d=c===void 0?"":c,f=n.textBreakAll,p=n.labelRef,m=Jee(),y=Vz(),h=i==="center"?y:m??y,v,g,b;a==null?v=h:gf(a)?v=a:v=rm(a);var x=ate(v);if(!v||ct(l)&&ct(s)&&!(0,Xr.isValidElement)(u)&&typeof u!="function")return null;var S=gf(v)&&(i==="insideStart"||i==="insideEnd"||i==="end");if(gf(v))S||(b=rte(v,n.offset,n.position));else if(x){var w=Jy({viewBox:x,position:i,offset:n.offset,parentViewBox:gf(o)?void 0:o,clamp:!0});b=Tu(Tu({x:w.x,y:w.y,textAnchor:w.horizontalAnchor,verticalAnchor:w.verticalAnchor},w.width!==void 0?{width:w.width}:{}),w.height!==void 0?{height:w.height}:{})}var O=Tu(Tu(Tu(Tu({},((t=b)===null||t===void 0?void 0:t.x)!==void 0?{x:b.x}:{}),((r=b)===null||r===void 0?void 0:r.y)!==void 0?{y:b.y}:{}),n),{},{viewBox:v});if((0,Xr.isValidElement)(u)){var k=O.labelRef,A=Uz(O,qee);return(0,Xr.cloneElement)(u,A)}if(typeof u=="function"){var M=O.content,W=Uz(O,Yee);if(g=(0,Xr.createElement)(u,W),(0,Xr.isValidElement)(g))return g}else g=Ree(n);var L=rr(n);return S&&gf(v)?tte(n,i,g,L,v):b==null?null:ra.createElement(Yt,{zIndex:n.zIndex},ra.createElement(Ou,Ki({ref:p,className:Ue("recharts-label",d)},L,b,{textAnchor:xb(L.textAnchor)?L.textAnchor:b.textAnchor,breakAll:f}),g))}Vi.displayName="Label";var ote=(e,t,r)=>{if(!e)return null;var n={viewBox:t,labelRef:r};return e===!0?ra.createElement(Vi,Ki({key:"label-implicit"},n)):Mn(e)?ra.createElement(Vi,Ki({key:"label-implicit",value:e},n)):(0,Xr.isValidElement)(e)?e.type===Vi?(0,Xr.cloneElement)(e,Tu({key:"label-implicit"},n)):ra.createElement(Vi,Ki({key:"label-implicit",content:e},n)):Mu(e)?ra.createElement(Vi,Ki({key:"label-implicit",content:e},n)):e&&typeof e=="object"?ra.createElement(Vi,Ki({},e,{key:"label-implicit"},n)):null};function Yz(e){var t=e.label,r=e.labelRef,n=Vz();return ote(t,n,r)||null}var qi=te(ne()),yf=te(ne());var ite=["valueAccessor"],lte=["dataKey","clockWise","id","textBreakAll","zIndex"];function wb(){return wb=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(zz(t))return t},Xz=(0,yf.createContext)(void 0),hf=Xz.Provider,Zz=(0,yf.createContext)(void 0),Qz=Zz.Provider;function cte(){return(0,yf.useContext)(Xz)}function dte(){return(0,yf.useContext)(Zz)}function bb(e){var t=e.valueAccessor,r=t===void 0?ute:t,n=Gz(e,ite),a=n.dataKey,o=n.clockWise,i=n.id,l=n.textBreakAll,s=n.zIndex,u=Gz(n,lte),c=cte(),d=dte(),f=c||d;return!f||!f.length?null:qi.createElement(Yt,{zIndex:s??dt.label},qi.createElement(bt,{className:"recharts-label-list"},f.map((p,m)=>{var y,h=ct(a)?r(p,m):Qe(p.payload,a),v=ct(i)?{}:{id:"".concat(i,"-").concat(m)};return qi.createElement(Vi,wb({key:"label-".concat(m)},rr(p),u,v,{fill:(y=n.fill)!==null&&y!==void 0?y:p.fill,parentViewBox:p.parentViewBox,value:h,textBreakAll:l,viewBox:p.viewBox,index:m,zIndex:0}))})))}bb.displayName="LabelList";function as(e){var t=e.label;return t?t===!0?qi.createElement(bb,{key:"labelList-implicit"}):qi.isValidElement(t)||Mu(t)?qi.createElement(bb,{key:"labelList-implicit",content:t}):typeof t=="object"?qi.createElement(bb,wb({key:"labelList-implicit"},t,{type:String(t.type)})):null:null}var Jz=te(ne());function EC(){return EC=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=e.cx,r=e.cy,n=e.r,a=e.className,o=Ue("recharts-dot",a);return be(t)&&be(r)&&be(n)?Jz.createElement("circle",EC({},tr(e),gd(e),{className:o,cx:t,cy:r,r:n})):null};var _C=e=>e.graphicalItems.polarItems,fte=J([nr,cu],Rm),Ab=J([_C,sr,fte],ev),pte=J([Ab],tv),kb=J([pte,iu],rv),mte=J([kb,sr,Ab],DN),CCe=J([kb,sr,Ab],(e,t,r)=>r.length>0?e.flatMap(n=>r.flatMap(a=>{var o,i=Qe(n,(o=t.dataKey)!==null&&o!==void 0?o:a.dataKey);return{value:i,errorDomain:[]}})).filter(Boolean):t?.dataKey!=null?e.map(n=>({value:Qe(n,t.dataKey),errorDomain:[]})):e.map(n=>({value:n,errorDomain:[]}))),Rz=()=>{},vte=J([kb,sr,Ab,of,nr,R8],av),gte=J([sr,Hx,Vx,Rz,vte,Rz,qe,nr],ov),eL=J([sr,qe,kb,mte,Fl,nr,gte],iv),yte=J([eL,Cu,$i],lv),hte=J([sr,eL,yte,nr],sv),ECe=J([$i,hte],rx);var xte={radiusAxis:{},angleAxis:{}},tL=Ct({name:"polarAxis",initialState:xte,reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=tt(t.payload)},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=tt(t.payload)},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),Nb=tL.actions,MCe=Nb.addRadiusAxis,PCe=Nb.removeRadiusAxis,DCe=Nb.addAngleAxis,ICe=Nb.removeAngleAxis;var rL=tL.reducer;function Cb(e){return e&&typeof e=="object"&&"className"in e&&typeof e.className=="string"?e.className:""}var Re=te(ne()),Nf=te(ne());function nL(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function aL(e){for(var t=1;tt,OC=J([_C,Ate],(e,t)=>e.filter(r=>r.type==="pie").find(r=>r.id===t)),kte=[],TC=(e,t,r)=>r?.length===0?kte:r,oL=J([iu,OC,TC],(e,t,r)=>{var n=e.chartData;if(t!=null){var a;if(t?.data!=null&&t.data.length>0?a=t.data:a=n,(!a||!a.length)&&r!=null&&(a=r.map(o=>aL(aL({},t.presentationProps),o.props))),a!=null)return a}}),iL=J([oL,OC,TC],(e,t,r)=>{if(!(e==null||t==null))return e.map((n,a)=>{var o,i=Qe(n,t.nameKey,t.name),l;return r!=null&&(o=r[a])!==null&&o!==void 0&&(o=o.props)!==null&&o!==void 0&&o.fill?l=r[a].props.fill:typeof n=="object"&&n!=null&&"fill"in n?l=n.fill:l=t.fill,{value:wa(i,t.dataKey),dataKey:t.dataKey,color:l,payload:n,type:t.legendType}})}),lL=J([oL,OC,TC,jt],(e,t,r,n)=>{if(!(t==null||e==null))return sL({offset:n,pieSettings:t,displayedData:e,cells:r})});var mL=te(ne()),vL=te(dL());var fL=e=>typeof e=="string"?e:e?e.displayName||e.name||"Component":"",pL=null,DC=null,gL=e=>{if(e===pL&&Array.isArray(DC))return DC;var t=[];return mL.Children.forEach(e,r=>{ct(r)||((0,vL.isFragment)(r)?t=t.concat(gL(r.props.children)):t.push(r))}),DC=t,pL=e,t};function mv(e,t){var r=[],n=[];return Array.isArray(t)?n=t.map(a=>fL(a)):n=[fL(t)],gL(e).forEach(a=>{var o=rn(a,"type.displayName")||rn(a,"type.name");o&&n.indexOf(o)!==-1&&r.push(a)}),r}var xf=e=>e&&typeof e=="object"&&"clipDot"in e?!!e.clipDot:!0;var bf=te(ne()),vv=te(ne());function yL(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function hL(e){for(var t=1;t{var n=Ve();return(a,o)=>i=>{e?.(a,o,i),n(Zx({activeIndex:String(o),activeDataKey:t,activeCoordinate:a.tooltipPosition,activeGraphicalItemId:r}))}},yv=e=>{var t=Ve();return(r,n)=>a=>{e?.(r,n,a),t(uj())}},hv=(e,t,r)=>{var n=Ve();return(a,o)=>i=>{e?.(a,o,i),n(cj({activeIndex:String(o),activeDataKey:t,activeCoordinate:a.tooltipPosition,activeGraphicalItemId:r}))}};var xv=te(ne());function is(e){var t=e.tooltipEntrySettings,r=Ve(),n=Et(),a=(0,xv.useRef)(null);return(0,xv.useLayoutEffect)(()=>{n||(a.current===null?r(oj(t)):a.current!==t&&r(ij({prev:a.current,next:t})),a.current=t)},[t,r,n]),(0,xv.useLayoutEffect)(()=>()=>{a.current&&(r(lj(a.current)),a.current=null)},[r]),null}var ls=te(ne());function wf(e){var t=e.legendPayload,r=Ve(),n=Et(),a=(0,ls.useRef)(null);return(0,ls.useLayoutEffect)(()=>{n||(a.current===null?r(Ak(t)):a.current!==t&&r(kk({prev:a.current,next:t})),a.current=t)},[r,n,t]),(0,ls.useLayoutEffect)(()=>()=>{a.current&&(r(Nk(a.current)),a.current=null)},[r]),null}function bL(e){var t=e.legendPayload,r=Ve(),n=we(qe),a=(0,ls.useRef)(null);return(0,ls.useLayoutEffect)(()=>{n!=="centric"&&n!=="radial"||(a.current===null?r(Ak(t)):a.current!==t&&r(kk({prev:a.current,next:t})),a.current=t)},[r,n,t]),(0,ls.useLayoutEffect)(()=>()=>{a.current&&(r(Nk(a.current)),a.current=null)},[r]),null}var AL=te(ne()),Sv=te(ne());function Ite(e,t){return Bte(e)||Lte(e,t)||zte(e,t)||jte()}function jte(){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 zte(e,t){if(e){if(typeof e=="string")return wL(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)?wL(e,t):void 0}}function wL(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 a of r)n.push({status:"removed",prev:a});for(var o=0;oe[Math.floor(o*r)]);return IC(n,t)}function Ute(e,t){var r=t.map((n,a)=>e[a]);return IC(r,t)}function Fte(e,t){for(var r=new Map,n=0;n{var p=r(d,f);if(p!=null){var m=n.get(p);if(m!==void 0)return a.add(p),m}}),i=[];for(var l of n){var s=Ite(l,2),u=s[0],c=s[1];a.has(u)||i.push(c)}return IC(o,t,i)}function wv(e,t,r){return t==null?null:e==null?t.map(n=>({status:"added",next:n})):r===Pu?$te(e,t):r===bv?Ute(e,t):Wte(e,t,r)}var Sf=te(ne());function Lb(e,t){var r=(0,Sf.useRef)(e),n=(0,Sf.useRef)(t.current),a=(0,Sf.useRef)(!0);r.current!==e&&(r.current=e,n.current=t.current,a.current=!1);var o=(0,Sf.useCallback)(function(i,l){var s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(l===0){a.current=!0;return}l===1&&(n.current=i),l>0&&a.current&&s&&(t.current=i)},[t]);return{startValue:n.current,syncStepValue:o}}function Hte(e,t){return Yte(e)||qte(e,t)||Kte(e,t)||Vte()}function Vte(){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 Kte(e,t){if(e){if(typeof e=="string")return SL(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)?SL(e,t):void 0}}function SL(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{typeof e=="function"&&e(),o(!0)},[e]),l=(0,Sv.useCallback)(()=>{typeof t=="function"&&t(),o(!1)},[t]);return{isAnimating:a,handleAnimationStart:i,handleAnimationEnd:l}}function us(e){var t,r=e.animationInput,n=e.animationIdPrefix,a=e.items,o=e.previousItemsRef,i=e.isAnimationActive,l=e.animationBegin,s=e.animationDuration,u=e.animationEasing,c=e.onAnimationStart,d=e.onAnimationEnd,f=e.animationInterpolateFn,p=e.animationMatchBy,m=e.shouldUpdatePreviousRef,y=e.children,h=e.layout,v=M0(r,n),g=Lb(v,o),b=(t=g.startValue)!==null&&t!==void 0?t:null,x=wv(b,a,p??Pu);return AL.createElement(T0,{animationId:v,begin:l,duration:s,isActive:i,easing:u,onAnimationEnd:d,onAnimationStart:c,key:v},S=>{var w=b==null,O=a==null?a:f(x,S,h),k=m?m(S):S>0;return g.syncStepValue(O,S,k),O==null?null:y(O,S,w)})}var CL=te(ne()),zC=te(ne());var Bb=te(ne());var jC;function Gte(e,t){return Jte(e)||Qte(e,t)||Zte(e,t)||Xte()}function Xte(){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 Zte(e,t){if(e){if(typeof e=="string")return kL(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)?kL(e,t):void 0}}function kL(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var e=Bb.useState(()=>Ci("uid-")),t=Gte(e,1),r=t[0];return r},$b=(jC=Bb.useId)!==null&&jC!==void 0?jC:Rte;function NL(e,t){var r=$b();return t||(e?"".concat(e,"-").concat(r):r)}var ere=(0,zC.createContext)(void 0),cs=e=>{var t=e.id,r=e.type,n=e.children,a=NL("recharts-".concat(r),t);return CL.createElement(ere.Provider,{value:a},n(a))};var ko=te(ne());var tre={cartesianItems:[],polarItems:[]},EL=Ct({name:"graphicalItems",initialState:tre,reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(tt(t.payload))},prepare:Pt()},replaceCartesianGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,a=r.next,o=yn(e).cartesianItems.indexOf(tt(n));o>-1&&(e.cartesianItems[o]=tt(a))},prepare:Pt()},removeCartesianGraphicalItem:{reducer(e,t){var r=yn(e).cartesianItems.indexOf(tt(t.payload));r>-1&&e.cartesianItems.splice(r,1)},prepare:Pt()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(tt(t.payload))},prepare:Pt()},removePolarGraphicalItem:{reducer(e,t){var r=yn(e).polarItems.indexOf(tt(t.payload));r>-1&&e.polarItems.splice(r,1)},prepare:Pt()},replacePolarGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,a=r.next,o=yn(e).polarItems.indexOf(tt(n));o>-1&&(e.polarItems[o]=tt(a))},prepare:Pt()}}}),Af=EL.actions,_L=Af.addCartesianGraphicalItem,OL=Af.replaceCartesianGraphicalItem,TL=Af.removeCartesianGraphicalItem,ML=Af.addPolarGraphicalItem,PL=Af.removePolarGraphicalItem,DL=Af.replacePolarGraphicalItem;var IL=EL.reducer;var rre=e=>{var t=Ve(),r=(0,ko.useRef)(null);return(0,ko.useLayoutEffect)(()=>{r.current===null?t(_L(e)):r.current!==e&&t(OL({prev:r.current,next:e})),r.current=e},[t,e]),(0,ko.useLayoutEffect)(()=>()=>{r.current&&(t(TL(r.current)),r.current=null)},[t]),null},kf=(0,ko.memo)(rre),nre=e=>{var t=Ve(),r=(0,ko.useRef)(null);return(0,ko.useLayoutEffect)(()=>{r.current===null?t(ML(e)):r.current!==e&&t(DL({prev:r.current,next:e})),r.current=e},[t,e]),(0,ko.useLayoutEffect)(()=>()=>{r.current&&(t(PL(r.current)),r.current=null)},[t]),null},jL=(0,ko.memo)(nre);var are=["key"],ore=["onMouseEnter","onClick","onMouseLeave"],ire=["id"],lre=["id"];function Du(){return Du=Object.assign?Object.assign.bind():function(e){for(var t=1;tmv(e.children,Hi),[e.children]),r=we(n=>iL(n,e.id,t));return r==null?null:Re.createElement(bL,{legendPayload:r})}function pre(e){if(!(e==null||typeof e=="boolean"||typeof e=="function")){if(Re.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 mre=Re.memo(e=>{var t=e.dataKey,r=e.nameKey,n=e.sectors,a=e.stroke,o=e.strokeWidth,i=e.fill,l=e.name,s=e.hide,u=e.tooltipType,c=e.formatter,d=e.id,f=e.activeShape,p=pre(f),m=n.map(h=>{var v=h.tooltipPayload;return p==null||v==null?v:v.map(g=>ur(ur({},g),{},{color:p,fill:p}))}),y={dataDefinedOnItem:m,getPosition:h=>{var v;return(v=n[Number(h)])===null||v===void 0?void 0:v.tooltipPosition},settings:{stroke:a,strokeWidth:o,fill:i,dataKey:t,nameKey:r,name:wa(l,t),hide:s,type:u,color:i,unit:"",formatter:c,graphicalItemId:d}};return Re.createElement(is,{tooltipEntrySettings:y})}),vre=(e,t)=>e>t?"start":etypeof t=="function"?vr(t(e),r,r*.8):vr(t,r,r*.8),yre=(e,t,r)=>{var n=t.top,a=t.left,o=t.width,i=t.height,l=j0(o,i),s=a+vr(e.cx,o,o/2),u=n+vr(e.cy,i,i/2),c=vr(e.innerRadius,l,0),d=gre(r,e.outerRadius,l),f=e.maxRadius||Math.sqrt(o*o+i*i)/2;return{cx:s,cy:u,innerRadius:c,outerRadius:d,maxRadius:f}},hre=(e,t)=>{var r=Ft(t-e),n=Math.min(Math.abs(t-e),360);return r*n},xre=(e,t)=>{if(Re.isValidElement(e))return Re.cloneElement(e,t);if(typeof e=="function")return e(t);var r=Ue("recharts-pie-label-line",typeof e!="boolean"?e.className:""),n=t.key,a=Ub(t,are);return Re.createElement(Fo,Du({},a,{type:"linear",className:r}))},bre=(e,t,r)=>{if(Re.isValidElement(e))return Re.cloneElement(e,t);var n=r;if(typeof e=="function"&&(n=e(t),Re.isValidElement(n)))return n;var a=Ue("recharts-pie-label-text",Cb(e));return Re.createElement(Ou,Du({},t,{alignmentBaseline:"middle",className:a}),n)};function wre(e){var t=e.sectors,r=e.props,n=e.showLabels,a=r.label,o=r.labelLine,i=r.dataKey;if(!n||!a||!t)return null;var l=tr(r),s=ga(a),u=ga(o),c=typeof a=="object"&&"offsetRadius"in a&&typeof a.offsetRadius=="number"&&a.offsetRadius||20,d=t.map((f,p)=>{var m=(f.startAngle+f.endAngle)/2,y=qt(f.cx,f.cy,f.outerRadius+c,m),h=ur(ur(ur(ur({},l),f),{},{stroke:"none"},s),{},{index:p,textAnchor:vre(y.x,f.cx)},y),v=ur(ur(ur(ur({},l),f),{},{fill:"none",stroke:f.fill},u),{},{index:p,points:[qt(f.cx,f.cy,f.outerRadius,m),y],key:"line"});return Re.createElement(Yt,{zIndex:dt.label,key:"label-".concat(f.startAngle,"-").concat(f.endAngle,"-").concat(f.midAngle,"-").concat(p)},Re.createElement(bt,null,o&&xre(o,v),bre(a,h,Qe(f,i))))});return Re.createElement(bt,{className:"recharts-pie-labels"},d)}function Sre(e){var t=e.sectors,r=e.props,n=e.showLabels,a=r.label;return typeof a=="object"&&a!=null&&"position"in a?Re.createElement(as,{label:a}):Re.createElement(wre,{sectors:t,props:r,showLabels:n})}function Are(e){var t=e.sectors,r=e.activeShape,n=e.inactiveShape,a=e.allOtherPieProps,o=e.shape,i=e.id,l=e.animationElapsedTime,s=e.isAnimating,u=e.isEntrance,c=we(Ra),d=we(uf),f=we(ib),p=a.onMouseEnter,m=a.onClick,y=a.onMouseLeave,h=Ub(a,ore),v=gv(p,a.dataKey,i),g=yv(y),b=hv(m,a.dataKey,i);return t==null||t.length===0?null:Re.createElement(Re.Fragment,null,t.map((x,S)=>{if(x?.startAngle===0&&x?.endAngle===0&&t.length!==1)return null;var w=f==null||f===i,O=String(S)===c&&(d==null||a.dataKey===d)&&w,k=c?n:null,A=r&&O?r:k,M=ur(ur({},x),{},{stroke:x.stroke,tabIndex:-1,index:S,isActive:O,animationElapsedTime:l,isAnimating:s,isEntrance:u,[p0]:S,[m0]:i});return Re.createElement(bt,Du({key:"sector-".concat(x?.startAngle,"-").concat(x?.endAngle,"-").concat(x.midAngle,"-").concat(S),tabIndex:-1,className:"recharts-pie-sector"},_i(h,x,S),{onMouseEnter:v(x,S),onMouseLeave:g(x,S),onClick:b(x,S)}),Re.createElement(os,{option:A??o,DefaultShape:LL,shapeProps:M}))}))}function sL(e){var t,r=e.pieSettings,n=e.displayedData,a=e.cells,o=e.offset,i=r.cornerRadius,l=r.startAngle,s=r.endAngle,u=r.dataKey,c=r.nameKey,d=r.tooltipType,f=Math.abs(r.minAngle),p=hre(l,s),m=Math.abs(p),y=n.length<=1?0:(t=r.paddingAngle)!==null&&t!==void 0?t:0,h=n.filter(k=>Qe(k,u,0)!==0).length,v=(m>=360?h:h-1)*y,g=n.reduce((k,A)=>{var M=Qe(A,u,0);return k+(be(M)?M:0)},0),b=f>0&&g>0&&n.some(k=>{var A=Qe(k,u,0),M=(be(A)?A:0)/g;return A!==0&&M*m0){var O;w=n.map((k,A)=>{var M=Qe(k,u,0),W=Qe(k,c,A),L=yre(r,o,k),H=(be(M)?M:0)/g,D,Y=ur(ur({},k),a&&a[A]&&a[A].props),N=Y!=null&&"fill"in Y&&typeof Y.fill=="string"?Y.fill:r.fill;A?D=O.endAngle+Ft(p)*y*(M!==0?1:0):D=l;var _=D+Ft(p)*((M!==0?x:0)+H*S),z=(D+_)/2,j=(L.innerRadius+L.outerRadius)/2,P=[{name:W,value:M,payload:Y,dataKey:u,type:d,color:N,fill:N,graphicalItemId:r.id}],B=qt(L.cx,L.cy,j,z);return O=ur(ur(ur(ur({},r.presentationProps),{},{percent:H,cornerRadius:typeof i=="string"?parseFloat(i):i,name:W,tooltipPayload:P,midAngle:z,middleRadius:j,tooltipPosition:B},Y),L),{},{value:M,dataKey:u,startAngle:D,endAngle:_,payload:Y,paddingAngle:M!==0?Ft(p)*y:0}),O})}return w}function kre(e){var t=e.showLabels,r=e.sectors,n=e.children,a=(0,Nf.useMemo)(()=>!t||!r?[]:r.map(o=>({value:o.value,payload:o.payload,clockWise:!1,parentViewBox:void 0,viewBox:{cx:o.cx,cy:o.cy,innerRadius:o.innerRadius,outerRadius:o.outerRadius,startAngle:o.startAngle,endAngle:o.endAngle,clockWise:!1},fill:o.fill})),[r,t]);return Re.createElement(Qz,{value:t?a:void 0},n)}var Nre=(e,t)=>{if(e==null)return[];var r=[],n=e.find(o=>o.status!=="removed"),a=n?n.next.startAngle:0;return e.forEach((o,i)=>{if(o.status!=="removed"){var l=i>0?rn(o.next,"paddingAngle",0):0;if(o.status==="matched"){var s=Nt(o.prev.endAngle-o.prev.startAngle,o.next.endAngle-o.next.startAngle,t),u=ur(ur({},o.next),{},{startAngle:a+l,endAngle:a+s+l});r.push(u),a=u.endAngle}else{var c=Nt(0,o.next.endAngle-o.next.startAngle,t),d=ur(ur({},o.next),{},{startAngle:a+l,endAngle:a+c+l});r.push(d),a=d.endAngle}}}),r};function Cre(e){var t,r,n,a,o=e.props,i=e.previousSectorsRef,l=e.id,s=o.sectors,u=o.activeShape,c=o.inactiveShape,d=o.animationInterpolateFn,f=ss(o.onAnimationStart,o.onAnimationEnd),p=f.isAnimating,m=f.handleAnimationStart,y=f.handleAnimationEnd,h=ND();if(h==null)return null;var v=s[0];return Re.createElement(kre,{showLabels:!p,sectors:s},Re.createElement(us,{animationInput:o,animationIdPrefix:"recharts-pie-",items:s,previousItemsRef:i,isAnimationActive:o.isAnimationActive,animationBegin:o.animationBegin,animationDuration:o.animationDuration,animationEasing:o.animationEasing,onAnimationStart:m,onAnimationEnd:y,animationInterpolateFn:d,animationMatchBy:o.animationMatchBy,layout:h},(g,b,x)=>Re.createElement(bt,null,Re.createElement(Are,{sectors:g,activeShape:u,inactiveShape:c,allOtherPieProps:o,shape:o.shape,id:l,animationElapsedTime:b,isAnimating:p||b<1,isEntrance:x}))),Re.createElement(Sre,{showLabels:!p,sectors:s,props:o}),Re.createElement(qz,{cx:(t=v?.cx)!==null&&t!==void 0?t:0,cy:(r=v?.cy)!==null&&r!==void 0?r:0,innerRadius:(n=v?.innerRadius)!==null&&n!==void 0?n:0,outerRadius:(a=v?.outerRadius)!==null&&a!==void 0?a:0,startAngle:o.startAngle,endAngle:o.endAngle,clockWise:!1},o.children))}var Ere={animationBegin:400,animationDuration:1500,animationEasing:"ease",animationInterpolateFn:Nre,animationMatchBy:bv,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:LL,startAngle:0,stroke:"#fff",zIndex:dt.area};function _re(e){var t=e.id,r=Ub(e,ire),n=e.hide,a=e.className,o=e.rootTabIndex,i=(0,Nf.useMemo)(()=>mv(e.children,Hi),[e.children]),l=we(c=>lL(c,t,i)),s=(0,Nf.useRef)(null),u=Ue("recharts-pie",a);return n||l==null?(s.current=null,Re.createElement(bt,{tabIndex:o,className:u})):Re.createElement(Yt,{zIndex:e.zIndex},Re.createElement(mre,{dataKey:e.dataKey,nameKey:e.nameKey,sectors:l,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}),Re.createElement(bt,{tabIndex:o,className:u},Re.createElement(Cre,{props:ur(ur({},r),{},{sectors:l}),previousSectorsRef:s,id:t})))}function Ore(e){var t=lt(e,Ere),r=t.id,n=Ub(t,lre),a=tr(n);return Re.createElement(cs,{id:r,type:"pie"},o=>Re.createElement(Re.Fragment,null,Re.createElement(jL,{type:"pie",id:o,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:a,maxRadius:t.maxRadius}),Re.createElement(fre,Du({},n,{id:o})),Re.createElement(_re,Du({},n,{id:o}))))}var Fb=Ore;Fb.displayName="Pie";var Av=te(ne()),Hb=te(ne());var Tre=["points"];function BL(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function LC(e){for(var t=1;t{var v,g,b=LC(LC(LC({r:3},i),f),{},{index:h,cx:(v=y.x)!==null&&v!==void 0?v:void 0,cy:(g=y.y)!==null&&g!==void 0?g:void 0,dataKey:o,value:y.value,payload:y.payload,points:t});return Av.createElement(zre,{key:"dot-".concat(h),option:r,dotProps:b,className:a})}),m={};return l&&s!=null&&(m.clipPath="url(#clipPath-".concat(d?"":"dots-").concat(s,")")),Av.createElement(Yt,{zIndex:c},Av.createElement(bt,Wb({className:n},m),p))}var kv=te(ne()),qb=te(ne());function $L(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Kb(e){for(var t=1;t({top:e.top,bottom:e.bottom,left:e.left,right:e.right}));var QL=J([ZL,on,ln],(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 ds=()=>we(QL),JL=()=>we(Aj);function RL(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function $C(e){for(var t=1;t{var t=e.point,r=e.childIndex,n=e.mainColor,a=e.activeDot,o=e.dataKey,i=e.clipPath;if(a===!1||t.x==null||t.y==null)return null;var l={index:r,dataKey:o,cx:t.x,cy:t.y,r:4,fill:n??"none",strokeWidth:2,stroke:"#fff",payload:t.payload,value:t.value},s=$C($C($C({},l),ga(a)),gd(a)),u;return(0,qb.isValidElement)(a)?u=(0,qb.cloneElement)(a,s):typeof a=="function"?u=a(s):u=kv.createElement(Sb,s),kv.createElement(bt,{className:"recharts-active-dot",clipPath:i},u)};function Nv(e){var t=e.points,r=e.mainColor,n=e.activeDot,a=e.itemDataKey,o=e.clipPath,i=e.zIndex,l=i===void 0?dt.activeDot:i,s=we(Ra),u=JL();if(t==null||u==null)return null;var c=t.find(d=>u.includes(d.payload));return ct(c)?null:kv.createElement(Yt,{zIndex:l},kv.createElement(Kre,{point:c,childIndex:Number(s),mainColor:r,dataKey:a,activeDot:n,clipPath:o}))}function qre(e,t){return Zre(e)||Xre(e,t)||Gre(e,t)||Yre()}function Yre(){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 Gre(e,t){if(e){if(typeof e=="string")return eB(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)?eB(e,t):void 0}}function eB(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var n=r??e;if(!ct(n))return vr(n,t,0)},rB=(e,t,r)=>{var n={},a=e.filter(du),o=e.filter(u=>u.stackId==null),i=a.reduce((u,c)=>{var d=u[c.stackId];return d==null&&(d=[]),d.push(c),u[c.stackId]=d,u},n),l=Object.entries(i).map(u=>{var c,d=qre(u,2),f=d[0],p=d[1],m=p.map(h=>h.dataKey),y=tB(t,r,(c=p[0])===null||c===void 0?void 0:c.barSize);return{stackId:f,dataKeys:m,barSize:y}}),s=o.map(u=>{var c=[u.dataKey].filter(f=>f!=null),d=tB(t,r,u.barSize);return{stackId:void 0,dataKeys:c,barSize:d}});return[...l,...s]};function nB(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Yb(e){for(var t=1;tg+(b.barSize||0),0);f+=(i-1)*l,f>=r&&(f-=(i-1)*l,l=0),f>=r&&d>0&&(c=!0,d*=.9,f=i*d);var p=Math.round((r-f)/2),m={offset:p-l,size:0};s=n.reduce((g,b)=>{var x,S={stackId:b.stackId,dataKeys:b.dataKeys,position:{offset:m.offset+m.size+l,size:c?d:(x=b.barSize)!==null&&x!==void 0?x:0}},w=[...g,S];return m=S.position,w},u)}else{var y=vr(t,r,0,!0);r-2*y-(i-1)*l<=0&&(l=0);var h=(r-2*y-(i-1)*l)/i;h>1&&(h=Math.round(h));var v=He(a)?Math.min(h,a):h;s=n.reduce((g,b,x)=>[...g,{stackId:b.stackId,dataKeys:b.dataKeys,position:{offset:y+i*(h-v)/2+(v+l)*x,size:v}}],u)}return s}}var aB=(e,t,r,n,a,o,i)=>{var l=ct(i)?t:i,s=ene(r,n,a!==o?a:o,e,l);return a!==o&&s!=null&&(s=s.map(u=>Yb(Yb({},u),{},{position:Yb(Yb({},u.position),{},{offset:u.position.offset-a/2})}))),s};var oB=(e,t)=>{var r=Hl(t);if(!(!e||r==null||t==null)){var n=t.stackId;if(n!=null){var a=e[n];if(a){var o=a.stackedData;if(o)return o.find(i=>i.key===r)}}}};var iB=(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 lB(e,t){return e&&typeof e=="object"&&"zIndex"in e&&typeof e.zIndex=="number"&&He(e.zIndex)?e.zIndex:t}var sB=te(ne());var Gb=e=>{var t=e.chartData,r=Ve(),n=Et();return(0,sB.useEffect)(()=>n?()=>{}:(r(kC(t)),()=>{r(kC(void 0))}),[t,r,n]),null};var uB={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},cB=Ct({name:"brush",initialState:uB,reducers:{setBrushSettings(e,t){return t.payload==null?uB:t.payload}}}),o5e=cB.actions.setBrushSettings;var dB=cB.reducer;function tne(e){return(e%180+180)%180}var fB=function(t){var r=t.width,n=t.height,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,o=tne(a),i=o*Math.PI/180,l=Math.atan(n/r),s=i>l&&i{e.dots.push(t.payload)},removeDot:(e,t)=>{var r=yn(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=yn(e).areas.findIndex(n=>n===t.payload);r!==-1&&e.areas.splice(r,1)},addLine:(e,t)=>{e.lines.push(tt(t.payload))},removeLine:(e,t)=>{var r=yn(e).lines.findIndex(n=>n===t.payload);r!==-1&&e.lines.splice(r,1)}}}),Cf=pB.actions,c5e=Cf.addDot,d5e=Cf.removeDot,f5e=Cf.addArea,p5e=Cf.removeArea,m5e=Cf.addLine,v5e=Cf.removeLine;var mB=pB.reducer;var Cv=te(ne()),Ev=te(ne());function nne(e,t){return lne(e)||ine(e,t)||one(e,t)||ane()}function ane(){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 one(e,t){if(e){if(typeof e=="string")return vB(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)?vB(e,t):void 0}}function vB(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.children,r=(0,Ev.useState)("".concat(Ci("recharts"),"-clip")),n=nne(r,1),a=n[0],o=ds();if(o==null)return null;var i=o.x,l=o.y,s=o.width,u=o.height;return Cv.createElement(sne.Provider,{value:a},Cv.createElement("defs",null,Cv.createElement("clipPath",{id:a},Cv.createElement("rect",{x:i,y:l,height:u,width:s}))),t)};var ar=te(ne()),kn=te(ne());function yB(){}function UC(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 hB(e,t,r){return _v(e,t,void 0,void 0,void 0,void 0,r)}function _v(e,t,r,n,a,o,i){let l=i(e,t,r,n,a,o);if(l!==void 0)return l;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 Ov(e,t,o,i)}return Ov(e,t,o,i)}function Ov(e,t,r,n){if(Object.is(e,t))return!0;let a=Oi(e),o=Oi(t);if(a==="[object Arguments]"&&(a=bd),o==="[object Arguments]"&&(o=bd),a!==o)return!1;switch(a){case yd:return e.toString()===t.toString();case hd:return Bl(e.valueOf(),t.valueOf());case xd:case fh:case dh:return Object.is(e.valueOf(),t.valueOf());case uh:return e.source===t.source&&e.flags===t.flags;case bM:return e===t}r=r??new Map;let i=r.get(e),l=r.get(t);if(i!=null&&l!=null)return i===t;r.set(e,t),r.set(t,e);try{switch(a){case ph:if(e.size!==t.size)return!1;for(let[s,u]of e.entries())if(!t.has(s)||!_v(u,t.get(s),s,e,t,r,n))return!1;return!0;case mh:{if(e.size!==t.size)return!1;let s=Array.from(e.values()),u=Array.from(t.values());for(let c=0;c_v(d,p,void 0,e,t,r,n));if(f===-1)return!1;u.splice(f,1)}return!0}case vh:case hh:case xh:case bh:case wh:case SM:case Sh:case Ah:case kh:case AM:case Nh:case Ch:if(sm(e)!==sm(t)||e.length!==t.length)return!1;for(let s=0;se*a)return!1;var o=r();return e*(t-e*o/2-n)>=0&&e*(t+e*o/2-a)<=0}function wB(e,t){return Xb(e,t+1)}function SB(e,t,r,n,a){for(var o=(n||[]).slice(),i=t.start,l=t.end,s=0,u=1,c=i,d=function(){var m=n?.[s];if(m===void 0)return{v:Xb(n,u)};var y=s,h,v=()=>(h===void 0&&(h=r(m,y)),h),g=m.coordinate,b=s===0||Iu(e,g,v,c,l);b||(s=0,c=i,u+=1),b&&(c=g+e*(v()/2+a),s+=u)},f;u<=o.length;)if(f=d(),f)return f.v;return[]}function AB(e,t,r,n,a){var o=(n||[]).slice(),i=o.length;if(i===0)return[];for(var l=t.start,s=t.end,u=1;u<=i;u++){for(var c=(i-1)%u,d=l,f=!0,p=function(){var x=n[y];if(x==null)return 0;var S=y,w,O=()=>(w===void 0&&(w=r(x,S)),w),k=x.coordinate,A=y===c||Iu(e,k,O,d,s);if(!A)return f=!1,1;A&&(d=k+e*(O()/2+a))},m,y=c;y(y===void 0&&(y=r(p,f)),y);if(f===i-1){var v=e*(m.coordinate+e*h()/2-s);o[f]=m=An(An({},m),{},{tickCoord:v>0?m.coordinate-v*e:m.coordinate})}else o[f]=m=An(An({},m),{},{tickCoord:m.coordinate});if(m.tickCoord!=null){var g=Iu(e,m.tickCoord,h,l,s);g&&(s=m.tickCoord-e*(h()/2+a),o[f]=An(An({},m),{},{isShow:!0}))}},c=i-1;c>=0;c--)u(c);return o}function pne(e,t,r,n,a,o){var i=(n||[]).slice(),l=i.length,s=t.start,u=t.end;if(o){var c=n[l-1];if(c!=null){var d=r(c,l-1),f=e*(c.coordinate+e*d/2-u);if(i[l-1]=c=An(An({},c),{},{tickCoord:f>0?c.coordinate-f*e:c.coordinate}),c.tickCoord!=null){var p=Iu(e,c.tickCoord,()=>d,s,u);p&&(u=c.tickCoord-e*(d/2+a),i[l-1]=An(An({},c),{},{isShow:!0}))}}}for(var m=o?l-1:l,y=function(g){var b=i[g];if(b==null)return 1;var x=b,S,w=()=>(S===void 0&&(S=r(b,g)),S);if(g===0){var O=e*(x.coordinate-e*w()/2-s);i[g]=x=An(An({},x),{},{tickCoord:O<0?x.coordinate-O*e:x.coordinate})}else i[g]=x=An(An({},x),{},{tickCoord:x.coordinate});if(x.tickCoord!=null){var k=Iu(e,x.tickCoord,w,s,u);k&&(s=x.tickCoord+e*(w()/2+a),i[g]=An(An({},x),{},{isShow:!0}))}},h=0;h{var O=typeof u=="function"?u(S.value,w):S.value;return m==="width"?xB(_u(O,{fontSize:t,letterSpacing:r}),y,d):_u(O,{fontSize:t,letterSpacing:r})[m]},v=a[0],g=a[1],b=a.length>=2&&v!=null&&g!=null?Ft(g.coordinate-v.coordinate):1,x=bB(o,b,m);return s==="equidistantPreserveStart"?SB(b,x,h,a,i):s==="equidistantPreserveEnd"?AB(b,x,h,a,i):(s==="preserveStart"||s==="preserveStartEnd"?p=pne(b,x,h,a,i,s==="preserveStartEnd"):p=fne(b,x,h,a,i),p.filter(S=>S.isShow))}var NB=e=>{var t=e.ticks,r=e.label,n=e.labelGapWithTick,a=n===void 0?5:n,o=e.tickSize,i=o===void 0?0:o,l=e.tickMargin,s=l===void 0?0:l,u=0;if(t){Array.from(t).forEach(p=>{if(p){var m=p.getBoundingClientRect();m.width>u&&(u=m.width)}});var c=r?r.getBoundingClientRect().width:0,d=i+s,f=u+d+c+(r?a:0);return Math.round(f)}return 0};var CB=e=>{var t=e.ticks,r=e.label,n=e.labelGapWithTick,a=n===void 0?5:n,o=e.tickSize,i=o===void 0?0:o,l=e.tickMargin,s=l===void 0?0:l,u=0;if(t){Array.from(t).forEach(p=>{if(p){var m=p.getBoundingClientRect();m.height>u&&(u=m.height)}});var c=r?r.getBoundingClientRect().height:0,d=i+s,f=u+d+c+(r?a:0);return Math.round(f)}return 0};var mne={xAxis:{},yAxis:{}},EB=Ct({name:"renderedTicks",initialState:mne,reducers:{setRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,a=r.axisId,o=r.ticks;e[n][a]=tt(o)},removeRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,a=r.axisId;delete e[n][a]}}}),_B=EB.actions,OB=_B.setRenderedTicks,TB=_B.removeRenderedTicks;var MB=EB.reducer;var vne=["axisLine","width","height","className","hide","ticks","axisType","axisId"];function PB(e,t){return xne(e)||hne(e,t)||yne(e,t)||gne()}function gne(){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 yne(e,t){if(e){if(typeof e=="string")return DB(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)?DB(e,t):void 0}}function DB(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(s=>({value:s.value,coordinate:s.coordinate,offset:s.offset,index:s.index})),l=o.current;l!=null&&l.axisId===n&&l.axisType===r&&FC(l.ticks,i)||(o.current={ticks:i,axisId:n,axisType:r},a(OB({ticks:i,axisId:n,axisType:r})))}},[a,t,n,r]),(0,kn.useEffect)(()=>n==null||r==null?Pn:()=>{a(TB({axisId:n,axisType:r}))},[a,n,r]),null}var Mne=(0,kn.forwardRef)((e,t)=>{var r=e.ticks,n=r===void 0?[]:r,a=e.tick,o=e.tickLine,i=e.stroke,l=e.tickFormatter,s=e.unit,u=e.padding,c=e.tickTextProps,d=e.orientation,f=e.mirror,p=e.x,m=e.y,y=e.width,h=e.height,v=e.tickSize,g=e.tickMargin,b=e.fontSize,x=e.letterSpacing,S=e.getTicksConfig,w=e.events,O=e.axisType,k=e.axisId,A=Tv(Ar(Ar({},S),{},{ticks:n}),b,x),M=tr(S),W=ga(a),L=xb(M.textAnchor)?M.textAnchor:Ene(d,f),H=_ne(d,f),D={};typeof o=="object"&&(D=o);var Y=Ar(Ar({},M),{},{fill:"none"},D),N=A.map(j=>Ar({entry:j},Cne(j,p,m,y,h,d,v,f,g))),_=N.map(j=>{var P=j.entry,B=j.line;return ar.createElement(bt,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(P.value,"-").concat(P.coordinate,"-").concat(P.tickCoord)},o&&ar.createElement("line",ju({},Y,B,{className:Ue("recharts-cartesian-axis-tick-line",rn(o,"className"))})))}),z=N.map((j,P)=>{var B,R,F=j.entry,G=j.tick,ee=Ar(Ar(Ar(Ar({verticalAnchor:H},M),{},{textAnchor:L,stroke:"none",fill:i},G),{},{index:P,payload:F,visibleTicksCount:A.length,tickFormatter:l,padding:u},c),{},{angle:(B=(R=c?.angle)!==null&&R!==void 0?R:M.angle)!==null&&B!==void 0?B:0}),fe=Ar(Ar({},ee),W);return ar.createElement(bt,ju({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(F.value,"-").concat(F.coordinate,"-").concat(F.tickCoord)},_i(w,F,P)),a&&ar.createElement(One,{option:a,tickProps:fe,value:"".concat(typeof l=="function"?l(F.value,P):F.value).concat(s||"")}))});return ar.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(O,"-ticks")},ar.createElement(Tne,{ticks:A,axisId:k,axisType:O}),z.length>0&&ar.createElement(Yt,{zIndex:dt.label},ar.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(O,"-tick-labels"),ref:t},z)),_.length>0&&ar.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(O,"-tick-lines")},_))}),Pne=(0,kn.forwardRef)((e,t)=>{var r=e.axisLine,n=e.width,a=e.height,o=e.className,i=e.hide,l=e.ticks,s=e.axisType,u=e.axisId,c=bne(e,vne),d=(0,kn.useState)(""),f=PB(d,2),p=f[0],m=f[1],y=(0,kn.useState)(""),h=PB(y,2),v=h[0],g=h[1],b=(0,kn.useRef)(null);(0,kn.useImperativeHandle)(t,()=>({getCalculatedWidth:()=>{var S;return NB({ticks:b.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 CB({ticks:b.current,label:(S=e.labelRef)===null||S===void 0?void 0:S.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}}));var x=(0,kn.useCallback)(S=>{if(S){var w=S.getElementsByClassName("recharts-cartesian-axis-tick-value");b.current=w;var O=w[0];if(O){var k=window.getComputedStyle(O),A=k.fontSize,M=k.letterSpacing;(A!==p||M!==v)&&(m(A),g(M))}}},[p,v]);return i||n!=null&&n<=0||a!=null&&a<=0?null:ar.createElement(Yt,{zIndex:e.zIndex},ar.createElement(bt,{className:Ue("recharts-cartesian-axis",o)},ar.createElement(Nne,{x:e.x,y:e.y,width:n,height:a,orientation:e.orientation,mirror:e.mirror,axisLine:r,otherSvgProps:tr(e)}),ar.createElement(Mne,{ref:x,axisType:s,events:c,fontSize:p,getTicksConfig:e,height:e.height,letterSpacing:v,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:l,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:u}),ar.createElement(Hz,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},ar.createElement(Yz,{label:e.label,labelRef:e.labelRef}),e.children)))}),Mv=ar.forwardRef((e,t)=>{var r=lt(e,ro);return ar.createElement(Pne,ju({},r,{ref:t}))});Mv.displayName="CartesianAxis";var kr=te(ne());var Zb=te(ne());var jB={grid:{stroke:"#ccc",fill:"none"}};var zB=(0,Zb.createContext)(jB),xOe=zB.Provider,LB=()=>(0,Zb.useContext)(zB);var Dne=["x1","y1","x2","y2","key"],Ine=["offset"],jne=["xAxisId","yAxisId"],zne=["xAxisId","yAxisId"];function BB(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Nn(e){for(var t=1;t{var t=e.fill;if(!t||t==="none")return null;var r=e.fillOpacity,n=e.x,a=e.y,o=e.width,i=e.height,l=e.ry;return kr.createElement("rect",{x:n,y:a,ry:l,width:o,height:i,stroke:"none",fill:t,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function $B(e){var t=e.option,r=e.lineItemProps,n;if(kr.isValidElement(t))n=kr.cloneElement(t,r);else if(typeof t=="function")n=t(r);else{var a,o=r.x1,i=r.y1,l=r.x2,s=r.y2,u=r.key,c=Qb(r,Dne),d=(a=tr(c))!==null&&a!==void 0?a:{},f=d.offset,p=Qb(d,Ine),m=Array.isArray(p.strokeDasharray)?p.strokeDasharray.join(","):p.strokeDasharray;n=kr.createElement("line",zu({},p,{strokeDasharray:m,x1:o,y1:i,x2:l,y2:s,fill:"none",key:u}))}return n}function Wne(e){var t=e.x,r=e.width,n=e.horizontal,a=n===void 0?!0:n,o=e.horizontalPoints;if(!a||!o||!o.length)return null;var i=e.xAxisId,l=e.yAxisId,s=Qb(e,jne),u=o.map((c,d)=>{var f=Nn(Nn({},s),{},{x1:t,y1:c,x2:t+r,y2:c,key:"line-".concat(d),index:d});return kr.createElement($B,{key:"line-".concat(d),option:a,lineItemProps:f})});return kr.createElement("g",{className:"recharts-cartesian-grid-horizontal"},u)}function Hne(e){var t=e.y,r=e.height,n=e.vertical,a=n===void 0?!0:n,o=e.verticalPoints;if(!a||!o||!o.length)return null;var i=e.xAxisId,l=e.yAxisId,s=Qb(e,zne),u=o.map((c,d)=>{var f=Nn(Nn({},s),{},{x1:c,y1:t,x2:c,y2:t+r,key:"line-".concat(d),index:d});return kr.createElement($B,{option:a,lineItemProps:f,key:"line-".concat(d)})});return kr.createElement("g",{className:"recharts-cartesian-grid-vertical"},u)}function Vne(e){var t=e.horizontalFill,r=e.fillOpacity,n=e.x,a=e.y,o=e.width,i=e.height,l=e.horizontalPoints,s=e.horizontal,u=s===void 0?!0:s;if(!u||!t||!t.length||l==null)return null;var c=l.map(f=>Math.round(f+a-a)).sort((f,p)=>f-p);a!==c[0]&&c.unshift(0);var d=c.map((f,p)=>{var m=c[p+1],y=m==null,h=y?a+i-f:m-f;if(h<=0)return null;var v=p%t.length;return kr.createElement("rect",{key:"react-".concat(p),y:f,x:n,height:h,width:o,stroke:"none",fill:t[v],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return kr.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},d)}function Kne(e){var t=e.vertical,r=t===void 0?!0:t,n=e.verticalFill,a=e.fillOpacity,o=e.x,i=e.y,l=e.width,s=e.height,u=e.verticalPoints;if(!r||!n||!n.length)return null;var c=u.map(f=>Math.round(f+o-o)).sort((f,p)=>f-p);o!==c[0]&&c.unshift(0);var d=c.map((f,p)=>{var m=c[p+1],y=m==null,h=y?o+l-f:m-f;if(h<=0)return null;var v=p%n.length;return kr.createElement("rect",{key:"react-".concat(p),x:f,y:i,width:h,height:s,stroke:"none",fill:n[v],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return kr.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},d)}var qne=(e,t)=>{var r=e.xAxis,n=e.width,a=e.height,o=e.offset;return mk(Tv(Nn(Nn(Nn({},ro),r),{},{ticks:vk(r,!0),viewBox:{x:0,y:0,width:n,height:a}})),o.left,o.left+o.width,t)},Yne=(e,t)=>{var r=e.yAxis,n=e.width,a=e.height,o=e.offset;return mk(Tv(Nn(Nn(Nn({},ro),r),{},{ticks:vk(r,!0),viewBox:{x:0,y:0,width:n,height:a}})),o.top,o.top+o.height,t)},Gne={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:dt.grid};function Yi(e){var t,r,n,a,o,i,l=Pd(),s=Dd(),u=x0(),c=Nn(Nn({},lt(e,Gne)),{},{x:be(e.x)?e.x:u.left,y:be(e.y)?e.y:u.top,width:be(e.width)?e.width:u.width,height:be(e.height)?e.height:u.height}),d=c.xAxisId,f=c.yAxisId,p=c.x,m=c.y,y=c.width,h=c.height,v=c.syncWithTicks,g=c.horizontalValues,b=c.verticalValues,x=Et(),S=we(_=>tC(_,"xAxis",d,x)),w=we(_=>tC(_,"yAxis",f,x)),O=LB(),k={stroke:(t=c.stroke)!==null&&t!==void 0?t:O.grid.stroke,strokeWidth:(r=c.strokeWidth)!==null&&r!==void 0?r:O.grid.strokeWidth,strokeOpacity:(n=c.strokeOpacity)!==null&&n!==void 0?n:O.grid.strokeOpacity,strokeDasharray:(a=c.strokeDasharray)!==null&&a!==void 0?a:O.grid.strokeDasharray};if(!Xn(y)||!Xn(h)||!be(p)||!be(m))return null;var A=c.verticalCoordinatesGenerator||qne,M=c.horizontalCoordinatesGenerator||Yne,W=c.horizontalPoints,L=c.verticalPoints;if((!W||!W.length)&&typeof M=="function"){var H=g&&g.length,D=M({yAxis:w?Nn(Nn({},w),{},{ticks:H?g:w.ticks}):void 0,width:l??y,height:s??h,offset:u},H?!0:v);Md(Array.isArray(D),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof D,"]")),Array.isArray(D)&&(W=D)}if((!L||!L.length)&&typeof A=="function"){var Y=b&&b.length,N=A({xAxis:S?Nn(Nn({},S),{},{ticks:Y?b:S.ticks}):void 0,width:l??y,height:s??h,offset:u},Y?!0:v);Md(Array.isArray(N),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof N,"]")),Array.isArray(N)&&(L=N)}return kr.createElement(Yt,{zIndex:c.zIndex},kr.createElement("g",{className:"recharts-cartesian-grid"},kr.createElement(Fne,{fill:(o=c.fill)!==null&&o!==void 0?o:O.grid.fill,fillOpacity:(i=c.fillOpacity)!==null&&i!==void 0?i:O.grid.fillOpacity,x:c.x,y:c.y,width:c.width,height:c.height,ry:c.ry}),kr.createElement(Vne,zu({},c,{horizontalPoints:W})),kr.createElement(Kne,zu({},c,{verticalPoints:L})),kr.createElement(Wne,zu({},c,k,{offset:u,horizontalPoints:W,xAxis:S,yAxis:w})),kr.createElement(Hne,zu({},c,k,{offset:u,verticalPoints:L,xAxis:S,yAxis:w}))))}Yi.displayName="CartesianGrid";var St=te(ne()),Gi=te(ne());var UB=te(ne());var Xne=["animationElapsedTime","isAnimating","isEntrance","visibleLength","strokeDasharray","connectNulls"];function WC(){return WC=Object.assign?Object.assign.bind():function(e){for(var t=1;tp+m,0);if(!a)return FB(t,e);for(var o=Math.floor(e/a),i=e%a,l=[],s=0,u=0;si){l=[...n.slice(0,s),i-u];break}}var f=l.length%2===0?[0,t]:[t];return[...eae(n,o),...l,...f].map(p=>"".concat(p,"px")).join(", ")}function rae(e,t,r){if(e){var n="".concat(e).split(/[,\s]+/gim).map(a=>parseFloat(a));return tae(r,t,n)}return FB(t,r)}function WB(e){var t=e.animationElapsedTime,r=e.isAnimating,n=e.isEntrance,a=e.visibleLength,o=e.strokeDasharray,i=e.connectNulls,l=Zne(e,Xne),s=i??!1,u;if(a!=null){var c,d=l.pathRef,f=Jne((c=d?.current)!==null&&c!==void 0?c:null);u=rae(o,f,a)}else o!=null&&(u=String(o));return UB.createElement(Fo,WC({},l,{connectNulls:s,strokeDasharray:u}))}var Lu=te(ne());function HB(e){var t=(0,Lu.useRef)(0),r=(0,Lu.useRef)(0),n=(0,Lu.useRef)(!1),a=(0,Lu.useRef)(e);return a.current!==e&&(t.current=r.current,a.current=e),(0,Lu.useCallback)((o,i)=>{if(n.current)return null;var l=Math.min(Wa(t.current+o*i),i);return o>0&&i>0&&(r.current=Math.max(r.current,l),l>=i)?(n.current=!0,null):l},[])}var qB=te(ne()),Pv=te(ne());var nae={},VB=Ct({name:"errorBars",initialState:nae,reducers:{addErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,a=r.errorBar;e[n]||(e[n]=[]),e[n].push(a)},replaceErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,a=r.prev,o=r.next;e[n]&&(e[n]=e[n].map(i=>i.dataKey===a.dataKey&&i.direction===a.direction?o:i))},removeErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,a=r.errorBar;e[n]&&(e[n]=e[n].filter(o=>o.dataKey!==a.dataKey||o.direction!==a.direction))}}}),HC=VB.actions,WOe=HC.addErrorBar,HOe=HC.replaceErrorBar,VOe=HC.removeErrorBar;var KB=VB.reducer;var aae=["children"];function oae(e,t){if(e==null)return{};var r,n,a=iae(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n({x:0,y:0,value:0}),errorBarOffset:0},sae=(0,Pv.createContext)(lae);function Jb(e){var t=e.children,r=oae(e,aae);return qB.createElement(sae.Provider,{value:r},t)}var VC=te(ne());function Bu(e,t){var r,n,a=we(u=>Go(u,e)),o=we(u=>Xo(u,t)),i=(r=a?.allowDataOverflow)!==null&&r!==void 0?r:Mr.allowDataOverflow,l=(n=o?.allowDataOverflow)!==null&&n!==void 0?n:Pr.allowDataOverflow,s=i||l;return{needClip:s,needClipX:i,needClipY:l}}function Ef(e){var t=e.xAxisId,r=e.yAxisId,n=e.clipPathId,a=ds(),o=Bu(t,r),i=o.needClipX,l=o.needClipY,s=o.needClip,u=we(b=>KN(b,t,!1)),c=we(b=>qN(b,r,!1));if(!s||!a)return null;var d=a.x,f=a.y,p=a.width,m=a.height,y=i&&u?Math.min(u[0],u[1]):d-p/2,h=l&&c?Math.min(c[0],c[1]):f-m/2,v=i&&u?Math.abs(u[1]-u[0]):p*2,g=l&&c?Math.abs(c[1]-c[0]):m*2;return VC.createElement("clipPath",{id:"clipPath-".concat(n)},VC.createElement("rect",{x:y,y:h,width:v,height:g}))}var YB=(e,t,r,n)=>_a(e,"xAxis",t,n),GB=(e,t,r,n)=>Ea(e,"xAxis",t,n),XB=(e,t,r,n)=>_a(e,"yAxis",r,n),ZB=(e,t,r,n)=>Ea(e,"yAxis",r,n),uae=J([qe,YB,XB,GB,ZB],(e,t,r,n,a)=>wn(e,"xAxis")?Ya(t,n,!1):Ya(r,a,!1)),cae=(e,t,r,n,a)=>a;function dae(e){return e.type==="line"}var fae=J([Zl,cae],(e,t)=>e.filter(dae).find(r=>r.id===t)),QB=J([qe,YB,XB,GB,ZB,fae,uae,lu],(e,t,r,n,a,o,i,l)=>{var s=l.chartData,u=l.dataStartIndex,c=l.dataEndIndex;if(!(o==null||t==null||r==null||n==null||a==null||n.length===0||a.length===0||i==null||e!=="horizontal"&&e!=="vertical")){var d=o.dataKey,f=o.data,p;if(f!=null&&f.length>0?p=f:p=s?.slice(u,c+1),p!=null)return JB({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:a,dataKey:d,bandSize:i,displayedData:p})}});function Rb(e){var t=ga(e),r=3,n=2;if(t!=null){var a=t.r,o=t.strokeWidth,i=Number(a),l=Number(o);return(Number.isNaN(i)||i<0)&&(i=r),(Number.isNaN(l)||l<0)&&(l=n),{r:i,strokeWidth:l}}return{r,strokeWidth:n}}var pae=["id"],mae=["type","layout","connectNulls","needClip","shape","strokeDasharray"],vae=["activeDot","animateNewValues","animationBegin","animationDuration","animationEasing","connectNulls","dot","hide","isAnimationActive","label","legendType","xAxisId","yAxisId","id"];function e1(){return e1=Object.assign?Object.assign.bind():function(e){for(var t=1;t0?t/r:0}var Sae=(e,t)=>{if(e==null)return[];if(t===1)return e.flatMap(l=>l.status==="removed"?[]:[l.next]);var r=wae(e),n=[];for(var a of e)if(a.status==="matched")n.push(Zo(Zo({},a.next),{},{x:Nt(a.prev.x,a.next.x,t),y:Nt(a.prev.y,a.next.y,t)}));else if(a.status==="added")if(a.next.x!=null){var o=a.next.x-r;n.push(Zo(Zo({},a.next),{},{x:Nt(o,a.next.x,t),y:a.next.y}))}else n.push(a.next);else if(a.status==="removed"&&a.prev.x!=null){var i=a.prev.x+r;n.push(Zo(Zo({},a.prev),{},{x:Nt(a.prev.x,i,t),y:a.prev.y}))}return n},YC={activeDot:!0,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",animationInterpolateFn:Sae,animationMatchBy:Pu,connectNulls:!1,dot:!0,fill:"#fff",hide:!1,isAnimationActive:"auto",label:!1,legendType:"line",shape:WB,stroke:"#3182bd",strokeWidth:1,xAxisId:0,yAxisId:0,zIndex:dt.line,type:"linear"},Aae=e=>{var t=e.dataKey,r=e.name,n=e.stroke,a=e.legendType,o=e.hide;return[{inactive:o,dataKey:t,type:a,color:n,value:wa(r,t),payload:e}]},kae=St.memo(e=>{var t=e.dataKey,r=e.data,n=e.stroke,a=e.strokeWidth,o=e.fill,i=e.name,l=e.hide,s=e.unit,u=e.formatter,c=e.tooltipType,d=e.id,f={dataDefinedOnItem:r,getPosition:Pn,settings:{stroke:n,strokeWidth:a,fill:o,dataKey:t,nameKey:void 0,name:wa(i,t),hide:l,type:c,color:n,unit:s,formatter:u,graphicalItemId:d}};return St.createElement(is,{tooltipEntrySettings:f})});function Nae(e){var t=e.clipPathId,r=e.points,n=e.props,a=n.dot,o=n.dataKey,i=n.needClip,l=n.id,s=qC(n,pae),u=tr(s);return St.createElement(Vb,{points:r,dot:a,className:"recharts-line-dots",dotClassName:"recharts-line-dot",dataKey:o,baseProps:u,needClip:i,clipPathId:t})}function Cae(e){var t=e.showLabels,r=e.children,n=e.points,a=(0,Gi.useMemo)(()=>n?.map(o=>{var i,l,s={x:(i=o.x)!==null&&i!==void 0?i:0,y:(l=o.y)!==null&&l!==void 0?l:0,width:0,lowerWidth:0,upperWidth:0,height:0};return Zo(Zo({},s),{},{value:o.value,payload:o.payload,viewBox:s,parentViewBox:void 0,fill:void 0})}),[n]);return St.createElement(hf,{value:t?a:void 0},r)}function Eae(e){var t=e.clipPathId,r=e.pathRef,n=e.points,a=e.props,o=e.animationElapsedTime,i=e.isAnimating,l=e.isEntrance,s=e.visibleLength,u=a.type,c=a.layout,d=a.connectNulls,f=a.needClip,p=a.shape,m=a.strokeDasharray,y=qC(a,mae),h=Zo(Zo({},rr(y)),{},{fill:"none",className:"recharts-line-curve",clipPath:f?"url(#clipPath-".concat(t,")"):void 0,points:n,type:u,layout:c,connectNulls:d,strokeDasharray:m??a.strokeDasharray,pathRef:r,animationElapsedTime:o,isAnimating:i,isEntrance:a.animateNewValues?l:!1,visibleLength:s});return St.createElement(St.Fragment,null,n?.length>1&&St.createElement(os,{option:p,DefaultShape:YC.shape,shapeProps:h}),St.createElement(Nae,{points:n,clipPathId:t,props:a}))}function _ae(e){var t=e.clipPathId,r=e.props,n=e.pathRef,a=e.previousPointsRef,o=r.points,i=r.isAnimationActive,l=r.animationBegin,s=r.animationDuration,u=r.animationEasing,c=r.animationMatchBy,d=r.animationInterpolateFn,f=r.layout,p=bae(n.current),m=ss(r.onAnimationStart,r.onAnimationEnd),y=m.isAnimating,h=m.handleAnimationStart,v=m.handleAnimationEnd,g=!y,b=HB(o),x=(0,Gi.useCallback)(S=>S>0&&p>0,[p]);return St.createElement(Cae,{points:o,showLabels:g},r.children,St.createElement(us,{animationInput:o,animationIdPrefix:"recharts-line-",items:o,previousItemsRef:a,isAnimationActive:i,animationBegin:l,animationDuration:s,animationEasing:u,onAnimationStart:h,onAnimationEnd:v,animationInterpolateFn:d,animationMatchBy:c,shouldUpdatePreviousRef:x,layout:f},(S,w,O)=>{var k=y||w<1,A=k?b(w,p):null;return St.createElement(Eae,{props:r,points:S,clipPathId:t,pathRef:n,animationElapsedTime:w,isAnimating:k,isEntrance:O,visibleLength:A})}),St.createElement(as,{label:r.label}))}function Oae(e){var t=e.clipPathId,r=e.props,n=(0,Gi.useRef)(null),a=(0,Gi.useRef)(null);return St.createElement(_ae,{props:r,clipPathId:t,previousPointsRef:n,pathRef:a})}var Tae=(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:Qe(e.payload,t)}},KC=class extends Gi.Component{render(){var t=this.props,r=t.hide,n=t.dot,a=t.points,o=t.className,i=t.xAxisId,l=t.yAxisId,s=t.top,u=t.left,c=t.width,d=t.height,f=t.id,p=t.needClip,m=t.zIndex;if(r)return null;var y=Ue("recharts-line",o),h=f,v=Rb(n),g=v.r,b=v.strokeWidth,x=xf(n),S=g*2+b,w=p?"url(#clipPath-".concat(x?"":"dots-").concat(h,")"):void 0;return St.createElement(Yt,{zIndex:m},St.createElement(bt,{className:y},p&&St.createElement("defs",null,St.createElement(Ef,{clipPathId:h,xAxisId:i,yAxisId:l}),!x&&St.createElement("clipPath",{id:"clipPath-dots-".concat(h)},St.createElement("rect",{x:u-S/2,y:s-S/2,width:c+S,height:d+S}))),St.createElement(Jb,{xAxisId:i,yAxisId:l,data:a,dataPointFormatter:Tae,errorBarOffset:0},St.createElement(Oae,{props:this.props,clipPathId:h}))),St.createElement(Nv,{activeDot:this.props.activeDot,points:a,mainColor:this.props.stroke,itemDataKey:this.props.dataKey,clipPath:w}))}};function Mae(e){var t=lt(e,YC),r=t.activeDot,n=t.animateNewValues,a=t.animationBegin,o=t.animationDuration,i=t.animationEasing,l=t.connectNulls,s=t.dot,u=t.hide,c=t.isAnimationActive,d=t.label,f=t.legendType,p=t.xAxisId,m=t.yAxisId,y=t.id,h=qC(t,vae),v=Bu(p,m),g=v.needClip,b=ds(),x=Qn(),S=Et(),w=we(W=>QB(W,p,m,S,y));if(x!=="horizontal"&&x!=="vertical"||w==null||b==null)return null;var O=b.height,k=b.width,A=b.x,M=b.y;return St.createElement(KC,e1({},h,{id:y,connectNulls:l,dot:s,activeDot:r,animateNewValues:n,animationBegin:a,animationDuration:o,animationEasing:i,isAnimationActive:c,hide:u,label:d,legendType:f,xAxisId:p,yAxisId:m,points:w,layout:x,height:O,width:k,left:A,top:M,needClip:g}))}function JB(e){var t=e.layout,r=e.xAxis,n=e.yAxis,a=e.xAxisTicks,o=e.yAxisTicks,i=e.dataKey,l=e.bandSize,s=e.displayedData;return s.map((u,c)=>{var d=Qe(u,i);if(t==="horizontal"){var f=Nd({axis:r,ticks:a,bandSize:l,entry:u,index:c}),p=ct(d)?null:n.scale.map(d);return{x:f,y:p??null,value:d,payload:u}}var m=ct(d)?null:r.scale.map(d),y=Nd({axis:n,ticks:o,bandSize:l,entry:u,index:c});return m==null||y==null?null:{x:m,y,value:d,payload:u}}).filter(Boolean)}function Pae(e){var t=lt(e,YC),r=Et();return St.createElement(cs,{id:t.id,type:"line"},n=>St.createElement(St.Fragment,null,St.createElement(wf,{legendPayload:Aae(t)}),St.createElement(kae,{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}),St.createElement(kf,{type:"line",id:n,data:t.data,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,hide:t.hide,isPanorama:r}),St.createElement(Mae,e1({},t,{id:n}))))}var t1=St.memo(Pae,Jn);t1.displayName="Line";var ht=te(ne()),$u=te(ne());function no(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(a=>a.id===t))===null||n===void 0?void 0:n.xAxisId)!==null&&r!==void 0?r:BC}function ao(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(a=>a.id===t))===null||n===void 0?void 0:n.yAxisId)!==null&&r!==void 0?r:BC}var e9=(e,t,r)=>_a(e,"xAxis",no(e,t),r),t9=(e,t,r)=>Ea(e,"xAxis",no(e,t),r),r9=(e,t,r)=>_a(e,"yAxis",ao(e,t),r),n9=(e,t,r)=>Ea(e,"yAxis",ao(e,t),r),Dae=J([qe,e9,r9,t9,n9],(e,t,r,n,a)=>wn(e,"xAxis")?Ya(t,n,!1):Ya(r,a,!1)),Iae=(e,t)=>t,GC=J([Zl,Iae],(e,t)=>e.filter(r=>r.type==="area").find(r=>r.id===t)),a9=e=>{var t=qe(e),r=wn(t,"xAxis");return r?"yAxis":"xAxis"},jae=(e,t)=>{var r=a9(e);return r==="yAxis"?ao(e,t):no(e,t)},o9=(e,t,r)=>af(e,a9(e),jae(e,t),r),zae=J([GC,o9],(e,t)=>{var r;if(!(e==null||t==null)){var n=e.stackId,a=Hl(e);if(!(n==null||a==null)){var o=(r=t[n])===null||r===void 0?void 0:r.stackedData,i=o?.find(l=>l.key===a);if(i!=null)return i.map(l=>[l[0],l[1]])}}}),Lae=J([GC,o9],(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(Yr)}}),i9=J([qe,e9,r9,t9,n9,zae,F0,Dae,GC,d6,Lae],(e,t,r,n,a,o,i,l,s,u,c)=>{var d=i.chartData,f=i.dataStartIndex,p=i.dataEndIndex;if(!(s==null||e!=="horizontal"&&e!=="vertical"||t==null||r==null||n==null||a==null||n.length===0||a.length===0||l==null)){var m=s.data,y;if(m&&m.length>0?y=m:y=d?.slice(f,p+1),y!=null)return l9({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:a,dataStartIndex:f,areaSettings:s,stackedData:o,displayedData:y,chartBaseValue:u,bandSize:l,stackDataKeys:c})}});var Cn=te(ne());var Bae=["animationElapsedTime","isAnimating","isEntrance","layout","isRange","stroke","connectNulls"],$ae=["id","baseLine"];function Dv(){return Dv=Object.assign?Object.assign.bind():function(e){for(var t=1;td.y||0));return be(a)?c=Math.max(a,c):a&&Array.isArray(a)&&a.length&&(c=Math.max(...a.map(d=>d.y||0),c)),be(c)?Cn.createElement("rect",{x:ld.x||0));return be(a)?c=Math.max(a,c):a&&Array.isArray(a)&&a.length&&(c=Math.max(...a.map(d=>d.x||0),c)),be(c)?Cn.createElement("rect",{x:0,y:le==null?[]:t===1?e.flatMap(r=>r.status==="removed"?[]:[r.next]):e.flatMap(r=>r.status==="matched"?[_f(_f({},r.next),{},{x:Nt(r.prev.x,r.next.x,t),y:Nt(r.prev.y,r.next.y,t)})]:r.status==="added"?[r.next]:[]),f9={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",animationMatchBy:Pu,animationInterpolateFn:Zae,connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,shape:u9,xAxisId:0,yAxisId:0,zIndex:dt.area};function n1(e,t){return e&&e!=="none"?e:t}var Qae=e=>{var t=e.dataKey,r=e.name,n=e.stroke,a=e.fill,o=e.legendType,i=e.hide;return[{inactive:i,dataKey:t,type:o,color:n1(n,a),value:wa(r,t),payload:e}]},Jae=ht.memo(e=>{var t=e.dataKey,r=e.data,n=e.stroke,a=e.strokeWidth,o=e.fill,i=e.name,l=e.hide,s=e.unit,u=e.formatter,c=e.tooltipType,d=e.id,f={dataDefinedOnItem:r,getPosition:Pn,settings:{stroke:n,strokeWidth:a,fill:o,dataKey:t,nameKey:void 0,name:wa(i,t),hide:l,type:c,color:n1(n,o),unit:s,formatter:u,graphicalItemId:d}};return ht.createElement(is,{tooltipEntrySettings:f})});function Rae(e){var t=e.clipPathId,r=e.points,n=e.props,a=n.needClip,o=n.dot,i=n.dataKey,l=tr(n);return ht.createElement(Vb,{points:r,dot:o,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:i,baseProps:l,needClip:a,clipPathId:t})}function eoe(e){var t=e.showLabels,r=e.children,n=e.points,a=n.map(o=>{var i,l,s={x:(i=o.x)!==null&&i!==void 0?i:0,y:(l=o.y)!==null&&l!==void 0?l:0,width:0,lowerWidth:0,upperWidth:0,height:0};return _f(_f({},s),{},{value:o.value,payload:o.payload,parentViewBox:void 0,viewBox:s,fill:void 0})});return ht.createElement(hf,{value:t?a:void 0},r)}function toe(e){var t=e.points,r=e.baseLine,n=e.needClip,a=e.clipPathId,o=e.props,i=e.animationElapsedTime,l=e.isAnimating,s=e.isEntrance,u=o.layout,c=o.type,d=o.stroke,f=o.connectNulls,p=o.isRange,m=o.shape,y=o.id,h=d9(o,Vae),v=rr(h),g=_f(_f({},v),{},{id:y,points:t,connectNulls:f,type:c,baseLine:r,layout:u,stroke:d,isRange:p,animationElapsedTime:i,isAnimating:l,isEntrance:s});return ht.createElement(ht.Fragment,null,t?.length>1&&ht.createElement(bt,{clipPath:n?"url(#clipPath-".concat(a,")"):void 0},ht.createElement(os,{option:m,DefaultShape:f9.shape,shapeProps:g})),ht.createElement(Rae,{points:t,props:h,clipPathId:a}))}function roe(e,t,r){if(be(e)){var n=be(t)?t:void 0;return Nt(n,e,r)}if(ct(e)||nn(e)){var a=be(t)?t:void 0;return Nt(a,0,r)}return e}function noe(e){var t=e.needClip,r=e.clipPathId,n=e.props,a=e.previousPointsRef,o=e.previousBaselineRef,i=n.points,l=n.baseLine,s=n.isAnimationActive,u=n.animationBegin,c=n.animationDuration,d=n.animationEasing,f=n.animationMatchBy,p=n.animationInterpolateFn,m=(0,$u.useMemo)(()=>({points:i,baseLine:l}),[i,l]),y=Lb(m,o),h=Id(),v=ss(n.onAnimationStart,n.onAnimationEnd),g=v.isAnimating,b=v.handleAnimationStart,x=v.handleAnimationEnd,S=y.startValue;if(h==null)return null;var w;return Array.isArray(l)&&Array.isArray(S)?w=wv(S,l,f):Array.isArray(l)?w=wv(null,l,f):w=null,ht.createElement(us,{animationInput:m,animationIdPrefix:"recharts-area-",items:i,previousItemsRef:a,isAnimationActive:s,animationBegin:u,animationDuration:c,animationEasing:d,onAnimationStart:b,onAnimationEnd:x,animationInterpolateFn:p,animationMatchBy:f,layout:h},(O,k,A)=>{var M;return k===1?M=l:Array.isArray(l)?M=p(w,k,h):M=A?l:roe(l,S,k),y.syncStepValue(M,k),ht.createElement(eoe,{showLabels:!g,points:i},n.children,ht.createElement(toe,{points:O,baseLine:M,needClip:t,clipPathId:r,props:n,animationElapsedTime:k,isAnimating:g||k<1,isEntrance:A}),ht.createElement(as,{label:n.label}))})}function aoe(e){var t=e.needClip,r=e.clipPathId,n=e.props,a=(0,$u.useRef)(null),o=(0,$u.useRef)();return ht.createElement(noe,{needClip:t,clipPathId:r,props:n,previousPointsRef:a,previousBaselineRef:o})}var XC=class extends $u.PureComponent{render(){var t=this.props,r=t.hide,n=t.dot,a=t.points,o=t.className,i=t.top,l=t.left,s=t.needClip,u=t.xAxisId,c=t.yAxisId,d=t.width,f=t.height,p=t.id,m=t.baseLine,y=t.zIndex;if(r)return null;var h=Ue("recharts-area",o),v=p,g=Rb(n),b=g.r,x=g.strokeWidth,S=xf(n),w=b*2+x,O=s?"url(#clipPath-".concat(S?"":"dots-").concat(v,")"):void 0;return ht.createElement(Yt,{zIndex:y},ht.createElement(bt,{className:h},s&&ht.createElement("defs",null,ht.createElement(Ef,{clipPathId:v,xAxisId:u,yAxisId:c}),!S&&ht.createElement("clipPath",{id:"clipPath-dots-".concat(v)},ht.createElement("rect",{x:l-w/2,y:i-w/2,width:d+w,height:f+w}))),ht.createElement(aoe,{needClip:s,clipPathId:v,props:this.props})),ht.createElement(Nv,{points:a,mainColor:n1(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:O}),this.props.isRange&&Array.isArray(m)&&ht.createElement(Nv,{points:m,mainColor:n1(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:O}))}};function ooe(e){var t,r=e.activeDot,n=e.animationBegin,a=e.animationDuration,o=e.animationEasing,i=e.connectNulls,l=e.dot,s=e.fill,u=e.fillOpacity,c=e.hide,d=e.isAnimationActive,f=e.legendType,p=e.stroke,m=e.xAxisId,y=e.yAxisId,h=d9(e,Kae),v=Qn(),g=lb(),b=Bu(m,y),x=b.needClip,S=Et(),w=(t=we(Y=>i9(Y,e.id,S)))!==null&&t!==void 0?t:{},O=w.points,k=w.isRange,A=w.baseLine,M=ds();if(v!=="horizontal"&&v!=="vertical"||M==null||g!=="AreaChart"&&g!=="ComposedChart")return null;var W=M.height,L=M.width,H=M.x,D=M.y;return!O||!O.length?null:ht.createElement(XC,r1({},h,{activeDot:r,animationBegin:n,animationDuration:a,animationEasing:o,baseLine:A,connectNulls:i,dot:l,fill:s,fillOpacity:u,height:W,hide:c,layout:v,isAnimationActive:d,isRange:k,legendType:f,needClip:x,points:O,stroke:p,width:L,left:H,top:D,xAxisId:m,yAxisId:y}))}var ioe=(e,t,r,n,a)=>{var o=r??t;if(be(o))return o;var i=e==="horizontal"?a:n,l=i.scale.domain();if(i.type==="number"){var s=Math.max(l[0],l[1]),u=Math.min(l[0],l[1]);return o==="dataMin"?u:o==="dataMax"||s<0?s:Math.max(Math.min(l[0],l[1]),0)}return o==="dataMin"?l[0]:o==="dataMax"?l[1]:l[0]};function l9(e){var t=e.areaSettings,r=t.connectNulls,n=t.baseValue,a=t.dataKey,o=e.stackedData,i=e.layout,l=e.chartBaseValue,s=e.xAxis,u=e.yAxis,c=e.displayedData,d=e.dataStartIndex,f=e.xAxisTicks,p=e.yAxisTicks,m=e.bandSize,y=e.stackDataKeys,h=o&&o.length,v=ioe(i,l,n,s,u),g=i==="horizontal",b=!1,x=c.map((w,O)=>{var k,A,M,W;if(h)W=o[d+O];else{var L=Qe(w,a);Array.isArray(L)?(W=L,b=!0):W=[v,L]}var H=(k=(A=W)===null||A===void 0?void 0:A[1])!==null&&k!==void 0?k:null,D=Qe(w,a),Y=h&&D==null&&y!=null&&y.length>0&&y.every(z=>Qe(w,z)==null),N=H==null||h&&!r&&D==null||Y;if(g){var _;return{x:Nd({axis:s,ticks:f,bandSize:m,entry:w,index:O}),y:N?null:(_=u.scale.map(H))!==null&&_!==void 0?_:null,value:W,payload:w}}return{x:N?null:(M=s.scale.map(H))!==null&&M!==void 0?M:null,y:Nd({axis:u,ticks:p,bandSize:m,entry:w,index:O}),value:W,payload:w}}),S;return h||b?S=x.map(w=>{var O,k=Array.isArray(w.value)?w.value[0]:null;if(g){var A;return{x:w.x,y:k!=null&&w.y!=null&&(A=u.scale.map(k))!==null&&A!==void 0?A:null,payload:w.payload}}return{x:k!=null&&(O=s.scale.map(k))!==null&&O!==void 0?O:null,y:w.y,payload:w.payload}}):S=g?u.scale.map(v):s.scale.map(v),{points:x,baseLine:S??0,isRange:b}}function loe(e){var t=lt(e,f9),r=Et();return ht.createElement(cs,{id:t.id,type:"area"},n=>ht.createElement(ht.Fragment,null,ht.createElement(wf,{legendPayload:Qae(t)}),ht.createElement(Jae,{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}),ht.createElement(kf,{type:"area",id:n,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:f0(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:r,connectNulls:t.connectNulls}),ht.createElement(ooe,r1({},t,{id:n}))))}var Xi=ht.memo(loe,Jn);Xi.displayName="Area";var ot=te(ne()),Co=te(ne());var m9=te(ne());var soe=!0,ZC="Invariant failed";function p9(e,t){if(!e){if(soe)throw new Error(ZC);var r=typeof t=="function"?t():t,n=r?"".concat(ZC,": ").concat(r):ZC;throw new Error(n)}}var uoe=["option"];function coe(e,t){if(e==null)return{};var r,n,a=doe(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n1&&arguments[1]!==void 0?arguments[1]:0;return(n,a)=>{if(be(t))return t;var o=be(n)||ct(n);return o?t(n,a):(o||p9(!1,"minPointSize callback function received a value with type of ".concat(typeof n,". Currently only numbers or null/undefined are supported.")),r)}};var foe=(e,t,r)=>r,poe=(e,t)=>t,Iv=J([Zl,poe],(e,t)=>e.filter(r=>r.type==="bar").find(r=>r.id===t)),moe=J([Iv],e=>e?.maxBarSize),voe=(e,t,r,n)=>n,goe=J([qe,Zl,no,ao,foe],(e,t,r,n,a)=>t.filter(o=>e==="horizontal"?o.xAxisId===r:o.yAxisId===n).filter(o=>o.isPanorama===a).filter(o=>o.hide===!1).filter(o=>o.type==="bar")),yoe=(e,t,r)=>{var n=qe(e),a=no(e,t),o=ao(e,t);if(!(a==null||o==null))return n==="horizontal"?af(e,"yAxis",o,r):af(e,"xAxis",a,r)},hoe=(e,t)=>{var r=qe(e),n=no(e,t),a=ao(e,t);if(!(n==null||a==null))return r==="horizontal"?JN(e,"xAxis",n):JN(e,"yAxis",a)},xoe=J([goe,c6,hoe],rB),boe=(e,t,r)=>{var n,a,o=Iv(e,t);if(o==null)return 0;var i=no(e,t),l=ao(e,t);if(i==null||l==null)return 0;var s=qe(e),u=Fk(e),c=o.maxBarSize,d=ct(c)?u:c,f,p;return s==="horizontal"?(f=_a(e,"xAxis",i,r),p=Ea(e,"xAxis",i,r)):(f=_a(e,"yAxis",l,r),p=Ea(e,"yAxis",l,r)),(n=(a=Ya(f,p,!0))!==null&&a!==void 0?a:d)!==null&&n!==void 0?n:0},g9=(e,t,r)=>{var n=qe(e),a=no(e,t),o=ao(e,t);if(!(a==null||o==null)){var i,l;return n==="horizontal"?(i=_a(e,"xAxis",a,r),l=Ea(e,"xAxis",a,r)):(i=_a(e,"yAxis",o,r),l=Ea(e,"yAxis",o,r)),Ya(i,l)}},woe=J([xoe,Fk,u6,q0,boe,g9,moe],aB),Soe=(e,t,r)=>{var n=no(e,t);if(n!=null)return _a(e,"xAxis",n,r)},Aoe=(e,t,r)=>{var n=ao(e,t);if(n!=null)return _a(e,"yAxis",n,r)},koe=(e,t,r)=>{var n=no(e,t);if(n!=null)return Ea(e,"xAxis",n,r)},Noe=(e,t,r)=>{var n=ao(e,t);if(n!=null)return Ea(e,"yAxis",n,r)},Coe=J([woe,Iv],iB),Eoe=J([yoe,Iv],oB),y9=J([jt,Od,Soe,Aoe,koe,Noe,Coe,qe,F0,g9,Eoe,Iv,voe],(e,t,r,n,a,o,i,l,s,u,c,d,f)=>{var p=s.chartData,m=s.dataStartIndex,y=s.dataEndIndex;if(!(d==null||i==null||t==null||l!=="horizontal"&&l!=="vertical"||r==null||n==null||a==null||o==null||u==null)){var h=d.data,v;if(h!=null&&h.length>0?v=h:v=p?.slice(m,y+1),v!=null)return h9({layout:l,barSettings:d,pos:i,parentViewBox:t,bandSize:u,xAxis:r,yAxis:n,xAxisTicks:a,yAxisTicks:o,stackedData:c,displayedData:v,offset:e,cells:f,dataStartIndex:m})}});var JC=te(ne()),Of=te(ne());var _oe=["index"];function QC(){return QC=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=(0,Of.useContext)(x9);if(t!=null)return t.stackId;if(e!=null)return f0(e)};var Moe=(e,t)=>"recharts-bar-stack-clip-path-".concat(e,"-").concat(t),Poe=e=>{var t=(0,Of.useContext)(x9);if(t!=null){var r=t.stackId;return"url(#".concat(Moe(r,e),")")}},RC=e=>{var t=e.index,r=Ooe(e,_oe),n=Poe(t);return JC.createElement(bt,QC({className:"recharts-bar-stack-layer",clipPath:n},r))};var Doe=["onMouseEnter","onMouseLeave","onClick"],Ioe=["value","background","tooltipPosition"],joe=["id"],zoe=["onMouseEnter","onClick","onMouseLeave"];function w9(e,t){return Uoe(e)||$oe(e,t)||Boe(e,t)||Loe()}function Loe(){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 Boe(e,t){if(e){if(typeof e=="string")return S9(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)?S9(e,t):void 0}}function S9(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,a=e.legendType,o=e.hide;return[{inactive:o,dataKey:t,type:a,color:n,value:wa(r,t),payload:e}]},qoe=ot.memo(e=>{var t=e.dataKey,r=e.stroke,n=e.strokeWidth,a=e.fill,o=e.name,i=e.hide,l=e.unit,s=e.formatter,u=e.tooltipType,c=e.id,d={dataDefinedOnItem:void 0,getPosition:Pn,settings:{stroke:r,strokeWidth:n,fill:a,dataKey:t,nameKey:void 0,name:wa(o,t),hide:i,type:u,color:a,unit:l,formatter:s,graphicalItemId:c}};return ot.createElement(is,{tooltipEntrySettings:d})});function Yoe(e){var t=we(Ra),r=e.data,n=e.dataKey,a=e.background,o=e.allOtherBarProps,i=o.onMouseEnter,l=o.onMouseLeave,s=o.onClick,u=i1(o,Doe),c=gv(i,n,o.id),d=yv(l),f=hv(s,n,o.id);if(!a||r==null)return null;var p=ga(a);return ot.createElement(Yt,{zIndex:lB(a,dt.barBackground)},r.map((m,y)=>{var h=m.value,v=m.background,g=m.tooltipPosition,b=i1(m,Ioe);if(!v)return null;var x=c(m,m.originalDataIndex),S=d(m,m.originalDataIndex),w=f(m,m.originalDataIndex),O=Zr(Zr(Zr(Zr(Zr({option:a,isActive:String(m.originalDataIndex)===t},b),{},{fill:"#eee"},v),p),_i(u,m,y)),{},{onMouseEnter:x,onMouseLeave:S,onClick:w,dataKey:n,index:y,className:"recharts-bar-background-rectangle"});return ot.createElement(o1,fs({key:"background-bar-".concat(y)},O))}))}function Goe(e){var t=e.showLabels,r=e.children,n=e.rects,a=n?.map(o=>{var i={x:o.x,y:o.y,width:o.width,lowerWidth:o.width,upperWidth:o.width,height:o.height};return Zr(Zr({},i),{},{value:o.value,payload:o.payload,parentViewBox:o.parentViewBox,viewBox:i,fill:o.fill})});return ot.createElement(hf,{value:t?a:void 0},r)}function Xoe(e){var t=e.shape,r=e.activeBar,n=e.baseProps,a=e.entry,o=e.index,i=e.dataKey,l=we(Ra),s=we(uf),u=r&&String(a.originalDataIndex)===l&&(s==null||i===s),c=l!=null&&(String(a.originalDataIndex)!==l||s!=null&&i!==s),d=(0,Co.useState)(!1),f=w9(d,2),p=f[0],m=f[1],y=(0,Co.useState)(!1),h=w9(y,2),v=h[0],g=h[1];(0,Co.useEffect)(()=>{var k;return u?(m(!0),k=requestAnimationFrame(()=>{g(!0)})):(g(!1),c&&m(!1)),()=>{cancelAnimationFrame(k)}},[u,c]);var b=(0,Co.useCallback)(()=>{u||m(!1)},[u]),x=u&&v,S=u||p,w;u?r===!0?w=t:w=r:w=t;var O=ot.createElement(o1,fs({},n,{name:String(n.name)},a,{isActive:x,option:w,index:o,dataKey:i,animationElapsedTime:e.animationElapsedTime,isAnimating:e.isAnimating,isEntrance:e.isEntrance,onTransitionEnd:b}));return S?ot.createElement(Yt,{zIndex:dt.activeBar},ot.createElement(RC,{index:a.originalDataIndex},O)):O}function Zoe(e){var t=e.shape,r=e.baseProps,n=e.entry,a=e.index,o=e.dataKey;return ot.createElement(o1,fs({},r,{name:String(r.name)},n,{isActive:!1,option:t,index:a,dataKey:o,animationElapsedTime:e.animationElapsedTime,isAnimating:e.isAnimating,isEntrance:e.isEntrance}))}function Qoe(e){var t,r=e.data,n=e.props,a=e.animationElapsedTime,o=e.isAnimating,i=e.isEntrance,l=(t=tr(n))!==null&&t!==void 0?t:{},s=l.id,u=i1(l,joe),c=n.shape,d=n.dataKey,f=n.activeBar,p=n.onMouseEnter,m=n.onClick,y=n.onMouseLeave,h=i1(n,zoe),v=gv(p,d,s),g=yv(y),b=hv(m,d,s);return r?ot.createElement(ot.Fragment,null,r.map((x,S)=>ot.createElement(RC,fs({index:x.originalDataIndex,key:"rectangle-".concat(x?.x,"-").concat(x?.y,"-").concat(x?.value,"-").concat(S),className:"recharts-bar-rectangle"},_i(h,x,S),{onMouseEnter:v(x,x.originalDataIndex),onMouseLeave:g(x,x.originalDataIndex),onClick:b(x,x.originalDataIndex)}),f?ot.createElement(Xoe,{shape:c,activeBar:f,baseProps:u,entry:x,index:S,dataKey:d,animationElapsedTime:a,isAnimating:o,isEntrance:i}):ot.createElement(Zoe,{shape:c,baseProps:u,entry:x,index:S,dataKey:d,animationElapsedTime:a,isAnimating:o,isEntrance:i})))):null}var Joe=(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"?[Zr(Zr({},n.prev),{},{height:Nt(n.prev.height,0,t),y:Nt(n.prev.y,n.prev.y+n.prev.height,t)})]:[Zr(Zr({},n.prev),{},{width:Nt(n.prev.width,0,t)})];if(n.status==="matched")return[Zr(Zr({},n.next),{},{x:Nt(n.prev.x,n.next.x,t),y:Nt(n.prev.y,n.next.y,t),width:Nt(n.prev.width,n.next.width,t),height:Nt(n.prev.height,n.next.height,t)})];var a=n.next;return r==="horizontal"?[Zr(Zr({},a),{},{height:Nt(0,a.height,t),y:Nt(a.stackedBarStart,a.y,t)})]:[Zr(Zr({},a),{},{width:Nt(0,a.width,t),x:Nt(a.stackedBarStart,a.x,t)})]});function Roe(e){var t=e.props,r=e.previousRectanglesRef,n=t.data,a=t.isAnimationActive,o=t.animationBegin,i=t.animationDuration,l=t.animationEasing,s=t.animationInterpolateFn,u=t.layout,c=ss(t.onAnimationStart,t.onAnimationEnd),d=c.isAnimating,f=c.handleAnimationStart,p=c.handleAnimationEnd;return ot.createElement(Goe,{showLabels:!d,rects:n},ot.createElement(us,{animationInput:n,animationIdPrefix:"recharts-bar-",items:n,previousItemsRef:r,isAnimationActive:a,animationBegin:o,animationDuration:i,animationEasing:l,onAnimationStart:f,onAnimationEnd:p,animationInterpolateFn:s,animationMatchBy:t.animationMatchBy,layout:u},(m,y,h)=>ot.createElement(bt,null,ot.createElement(Qoe,{props:t,data:m,animationElapsedTime:y,isAnimating:d||y<1,isEntrance:h}))),ot.createElement(as,{label:t.label}),t.children)}function eie(e){var t=(0,Co.useRef)(null);return ot.createElement(Roe,{previousRectanglesRef:t,props:e})}var k9=0,tie=(e,t)=>{var r=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:r,errorVal:Qe(e,t)}},eE=class extends Co.PureComponent{render(){var t=this.props,r=t.hide,n=t.data,a=t.dataKey,o=t.className,i=t.xAxisId,l=t.yAxisId,s=t.needClip,u=t.background,c=t.id;if(r||n==null)return null;var d=Ue("recharts-bar",o),f=c;return ot.createElement(bt,{className:d,id:c},s&&ot.createElement("defs",null,ot.createElement(Ef,{clipPathId:f,xAxisId:i,yAxisId:l})),ot.createElement(bt,{className:"recharts-bar-rectangles",clipPath:s?"url(#clipPath-".concat(f,")"):void 0},ot.createElement(Yoe,{data:n,dataKey:a,background:u,allOtherBarProps:this.props}),ot.createElement(eie,this.props)))}},rie={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:"ease",animationInterpolateFn:Joe,animationMatchBy:bv,background:!1,hide:!1,isAnimationActive:"auto",label:!1,legendType:"rect",minPointSize:k9,shape:a1,xAxisId:0,yAxisId:0,zIndex:dt.bar};function nie(e){var t=e.xAxisId,r=e.yAxisId,n=e.hide,a=e.legendType,o=e.minPointSize,i=e.activeBar,l=e.animationBegin,s=e.animationDuration,u=e.animationEasing,c=e.isAnimationActive,d=Bu(t,r),f=d.needClip,p=Qn(),m=Et(),y=mv(e.children,Hi),h=we(b=>y9(b,e.id,m,y));if(p!=="vertical"&&p!=="horizontal")return null;var v,g=h?.[0];return g==null||g.height==null||g.width==null?v=0:v=p==="vertical"?g.height/2:g.width/2,ot.createElement(Jb,{xAxisId:t,yAxisId:r,data:h,dataPointFormatter:tie,errorBarOffset:v},ot.createElement(eE,fs({},e,{layout:p,needClip:f,data:h,xAxisId:t,yAxisId:r,hide:n,legendType:a,minPointSize:o,activeBar:i,animationBegin:l,animationDuration:s,animationEasing:u,isAnimationActive:c})))}function h9(e){var t=e.layout,r=e.barSettings,n=r.dataKey,a=r.minPointSize,o=r.hasCustomShape,i=e.pos,l=e.bandSize,s=e.xAxis,u=e.yAxis,c=e.xAxisTicks,d=e.yAxisTicks,f=e.stackedData,p=e.displayedData,m=e.offset,y=e.cells,h=e.parentViewBox,v=e.dataStartIndex,g=t==="horizontal"?u:s,b=f?g.scale.domain():null,x=sD({numericAxis:g}),S=g.scale.map(x);return p.map((w,O)=>{var k,A,M,W,L,H;if(f){var D=f[O+v];if(D==null)return null;k=iD(D,b)}else k=Qe(w,n),Array.isArray(k)||(k=[x,k]);var Y=v9(a,k9)(k[1],O);if(t==="horizontal"){var N,_=u.scale.map(k[0]),z=u.scale.map(k[1]);if(_==null||z==null)return null;A=gk({axis:s,ticks:c,bandSize:l,offset:i.offset,entry:w,index:O}),M=(N=z??_)!==null&&N!==void 0?N:void 0,W=i.size;var j=_-z;if(L=nn(j)?0:j,H={x:A,y:m.top,width:W,height:m.height},Math.abs(Y)>0&&Math.abs(L)0&&Math.abs(W)ot.createElement(ot.Fragment,null,ot.createElement(wf,{legendPayload:Koe(t)}),ot.createElement(qoe,{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:a}),ot.createElement(kf,{type:"bar",id:a,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!==a1}),ot.createElement(Yt,{zIndex:t.zIndex},ot.createElement(nie,fs({},t,{id:a})))))}var l1=ot.memo(aie,Jn);l1.displayName="Bar";var Zi=te(ne()),oo=te(ne());var oie=["domain","range"],iie=["domain","range"];function N9(e,t){if(e==null)return{};var r,n,a=lie(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n{if(i!=null)return _9(_9({},o),{},{type:i})},[o,i]);return(0,oo.useLayoutEffect)(()=>{l!=null&&(r.current===null?t(FL(l)):r.current!==l&&t(WL({prev:r.current,next:l})),r.current=l)},[l,t]),(0,oo.useLayoutEffect)(()=>()=>{r.current&&(t(HL(r.current)),r.current=null)},[t]),null}var gie=e=>{var t=e.xAxisId,r=e.className,n=e.height,a=e.label,o=(0,oo.useRef)(null),i=(0,oo.useRef)(null),l=we(Od),s=Et(),u=Ve(),c="xAxis",d=we(w=>Gx(w,c,t,s)),f=we(w=>ZN(w,t)),p=we(w=>RI(w,t)),m=we(w=>EN(w,t));if((0,oo.useLayoutEffect)(()=>{if(!(n!=="auto"||!f||Mu(a)||(0,oo.isValidElement)(a)||m==null)){var w=o.current;if(w){var O=w.getCalculatedHeight();Math.round(f.height)!==Math.round(O)&&u(GL({id:t,height:O}))}}},[d,f,u,a,t,n,m]),f==null||p==null||m==null)return null;var y=e.dangerouslySetInnerHTML,h=e.ticks,v=e.scale,g=rE(e,uie),b=m.id,x=m.scale,S=rE(m,cie);return Zi.createElement(Mv,tE({},g,S,{ref:o,labelRef:i,x:p.x,y:p.y,width:f.width,height:f.height,className:Ue("recharts-".concat(c," ").concat(c),r),viewBox:l,ticks:d,axisType:c,axisId:t}))},yie={allowDataOverflow:Mr.allowDataOverflow,allowDecimals:Mr.allowDecimals,allowDuplicatedCategory:Mr.allowDuplicatedCategory,angle:Mr.angle,axisLine:ro.axisLine,height:Mr.height,hide:!1,includeHidden:Mr.includeHidden,interval:Mr.interval,label:!1,minTickGap:Mr.minTickGap,mirror:Mr.mirror,orientation:Mr.orientation,padding:Mr.padding,reversed:Mr.reversed,scale:Mr.scale,tick:Mr.tick,tickCount:Mr.tickCount,tickLine:ro.tickLine,tickSize:ro.tickSize,type:Mr.type,niceTicks:Mr.niceTicks,xAxisId:0},hie=e=>{var t=lt(e,yie);return Zi.createElement(Zi.Fragment,null,Zi.createElement(vie,{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}),Zi.createElement(gie,t))},Qi=Zi.memo(hie,s1);Qi.displayName="XAxis";var Ji=te(ne()),io=te(ne());var xie=["type"],bie=["dangerouslySetInnerHTML","ticks","scale"],wie=["id","scale"];function nE(){return nE=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(i!=null)return T9(T9({},o),{},{type:i})},[i,o]);return(0,io.useLayoutEffect)(()=>{l!=null&&(r.current===null?t(VL(l)):r.current!==l&&t(KL({prev:r.current,next:l})),r.current=l)},[l,t]),(0,io.useLayoutEffect)(()=>()=>{r.current&&(t(qL(r.current)),r.current=null)},[t]),null}function Eie(e){var t=e.yAxisId,r=e.className,n=e.width,a=e.label,o=(0,io.useRef)(null),i=(0,io.useRef)(null),l=we(Od),s=Et(),u=Ve(),c="yAxis",d=we(w=>QN(w,t)),f=we(w=>ej(w,t)),p=we(w=>Gx(w,c,t,s)),m=we(w=>_N(w,t));if((0,io.useLayoutEffect)(()=>{if(!(n!=="auto"||!d||Mu(a)||(0,io.isValidElement)(a)||m==null)){var w=o.current;if(w){var O=w.getCalculatedWidth();Math.round(d.width)!==Math.round(O)&&u(YL({id:t,width:O}))}}},[p,d,u,a,t,n,m]),d==null||f==null||m==null)return null;var y=e.dangerouslySetInnerHTML,h=e.ticks,v=e.scale,g=aE(e,bie),b=m.id,x=m.scale,S=aE(m,wie);return Ji.createElement(Mv,nE({},g,S,{ref:o,labelRef:i,x:f.x,y:f.y,tickTextProps:n==="auto"?{width:void 0}:{width:n},width:d.width,height:d.height,className:Ue("recharts-".concat(c," ").concat(c),r),viewBox:l,ticks:p,axisType:c,axisId:t}))}var _ie={allowDataOverflow:Pr.allowDataOverflow,allowDecimals:Pr.allowDecimals,allowDuplicatedCategory:Pr.allowDuplicatedCategory,angle:Pr.angle,axisLine:ro.axisLine,hide:!1,includeHidden:Pr.includeHidden,interval:Pr.interval,label:!1,minTickGap:Pr.minTickGap,mirror:Pr.mirror,orientation:Pr.orientation,padding:Pr.padding,reversed:Pr.reversed,scale:Pr.scale,tick:Pr.tick,tickCount:Pr.tickCount,tickLine:ro.tickLine,tickSize:ro.tickSize,type:Pr.type,niceTicks:Pr.niceTicks,width:Pr.width,yAxisId:0},Oie=e=>{var t=lt(e,_ie);return Ji.createElement(Ji.Fragment,null,Ji.createElement(Cie,{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}),Ji.createElement(Eie,t))},Ri=Ji.memo(Oie,s1);Ri.displayName="YAxis";var n7=te(ne()),a7=te(ne());var Ku=te(ne()),r7=te(ne());var K9=te(ne()),q9=te(ne());var Tie=(e,t)=>t,jv=J([Tie,qe,ex,Tr,lC,ta,Pj,jt],Bj);function Mie(e){return"getBBox"in e.currentTarget&&typeof e.currentTarget.getBBox=="function"}function zv(e){var t=e.currentTarget.getBoundingClientRect(),r,n;if(Mie(e)){var a=e.currentTarget.getBBox();r=a.width>0?t.width/a.width:1,n=a.height>0?t.height/a.height:1}else{var o=e.currentTarget;r=o.offsetWidth>0?t.width/o.offsetWidth:1,n=o.offsetHeight>0?t.height/o.offsetHeight:1}var i=(l,s)=>({relativeX:Math.round((l-t.left)/r),relativeY:Math.round((s-t.top)/n)});return"touches"in e?Array.from(e.touches).map(l=>i(l.clientX,l.clientY)):i(e.clientX,e.clientY)}var iE=Fr("mouseClick"),lE=Di();lE.startListening({actionCreator:iE,effect:(e,t)=>{var r=e.payload,n=jv(t.getState(),zv(r));n?.activeIndex!=null&&t.dispatch(dj({activeIndex:n.activeIndex,activeDataKey:void 0,activeCoordinate:n.activeCoordinate}))}});var u1=Fr("mouseMove"),sE=Di(),Tf=null,Uu=null,oE=null;sE.startListening({actionCreator:u1,effect:(e,t)=>{var r=e.payload,n=t.getState(),a=n.eventSettings,o=a.throttleDelay,i=a.throttledEvents,l=i==="all"||i?.includes("mousemove");Tf!==null&&(cancelAnimationFrame(Tf),Tf=null),Uu!==null&&(typeof o!="number"||!l)&&(clearTimeout(Uu),Uu=null),oE=zv(r);var s=()=>{var u=t.getState(),c=Ql(u,u.tooltip.settings.shared);if(!oE){Tf=null,Uu=null;return}if(c==="axis"){var d=jv(u,oE);d?.activeIndex!=null?t.dispatch(Jx({activeIndex:d.activeIndex,activeDataKey:void 0,activeCoordinate:d.activeCoordinate})):t.dispatch(Qx())}Tf=null,Uu=null};if(!l){s();return}o==="raf"?Tf=requestAnimationFrame(s):typeof o=="number"&&Uu===null&&(Uu=setTimeout(s,o))}});function M9(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 P9={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},D9=Ct({name:"rootProps",initialState:P9,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:P9.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}}}),I9=D9.reducer,j9=D9.actions.updateOptions;var Pie=null,Die={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)},z9=Ct({name:"polarOptions",initialState:Pie,reducers:Die}),L9=z9.actions.updatePolarOptions;var B9=z9.reducer;var uE=Fr("keyDown"),cE=Fr("focus"),dE=Fr("blur"),Lv=Di(),Mf=null,Fu=null,c1=null;Lv.startListening({actionCreator:uE,effect:(e,t)=>{c1=e.payload,Mf!==null&&(cancelAnimationFrame(Mf),Mf=null);var r=t.getState(),n=r.eventSettings,a=n.throttleDelay,o=n.throttledEvents,i=o==="all"||o.includes("keydown");Fu!==null&&(typeof a!="number"||!i)&&(clearTimeout(Fu),Fu=null);var l=()=>{try{var s=t.getState(),u=s.rootProps.accessibilityLayer!==!1;if(!u)return;var c=s.tooltip.keyboardInteraction,d=c1;if(d!=="ArrowRight"&&d!=="ArrowLeft"&&d!=="Enter")return;var f=Jl(c,Wi(s),Bi(s),es(s)),p=f==null?-1:Number(f),m=!Number.isFinite(p)||p<0,y=ta(s),h=Wi(s),v=Ql(s,s.tooltip.settings.shared);if(d==="Enter"){if(m)return;var g=dv(s,v,"hover",String(c.index));t.dispatch(uv({active:!c.active,activeIndex:c.index,activeCoordinate:g}));return}var b=tj(s),x=b==="left-to-right"?1:-1,S=d==="ArrowRight"?1:-1,w;if(m){var O=Bi(s),k=es(s),A=S*x,M=Y=>({active:!1,index:String(Y),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(w=-1,A>0){for(var W=0;W=0;L--)if(Jl(M(L),h,O,k)!=null){w=L;break}if(w<0)return}else{w=p+S*x;var H=y?.length||h.length;if(H===0||w>=H||w<0)return}var D=dv(s,v,"hover",String(w));t.dispatch(uv({active:!0,activeIndex:w.toString(),activeCoordinate:D}))}finally{Mf=null,Fu=null}};if(!i){l();return}a==="raf"?Mf=requestAnimationFrame(l):typeof a=="number"&&Fu===null&&(l(),c1=null,Fu=setTimeout(()=>{c1?l():(Fu=null,Mf=null)},a))}});Lv.startListening({actionCreator:cE,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var a=r.tooltip.keyboardInteraction;if(!a.active&&a.index==null){var o="0",i=Ql(r,r.tooltip.settings.shared),l=dv(r,i,"hover",String(o));t.dispatch(uv({active:!0,activeIndex:o,activeCoordinate:l}))}}}});Lv.startListening({actionCreator:dE,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var a=r.tooltip.keyboardInteraction;a.active&&t.dispatch(uv({active:!1,activeIndex:a.index,activeCoordinate:a.coordinate}))}}});function d1(e){e.persist();var t=e.currentTarget;return new Proxy(e,{get:(r,n)=>{if(n==="currentTarget")return t;var a=Reflect.get(r,n);return typeof a=="function"?a.bind(r):a}})}var Oa=Fr("externalEvent"),pE=Di(),f1=new Map,Bv=new Map,fE=new Map;pE.startListening({actionCreator:Oa,effect:(e,t)=>{var r=e.payload,n=r.handler,a=r.reactEvent;if(n!=null){var o=a.type,i=d1(a);fE.set(o,{handler:n,reactEvent:i});var l=f1.get(o);l!==void 0&&(cancelAnimationFrame(l),f1.delete(o));var s=t.getState(),u=s.eventSettings,c=u.throttleDelay,d=u.throttledEvents,f=d,p=f==="all"||f?.includes(o),m=Bv.get(o);m!==void 0&&(typeof c!="number"||!p)&&(clearTimeout(m),Bv.delete(o));var y=()=>{var g=fE.get(o);try{if(!g)return;var b=g.handler,x=g.reactEvent,S=t.getState(),w={activeCoordinate:dC(S),activeDataKey:uf(S),activeIndex:Ra(S),activeLabel:ob(S),activeTooltipIndex:Ra(S),isTooltipActive:fC(S)};b&&b(w,x)}finally{f1.delete(o),Bv.delete(o),fE.delete(o)}};if(!p){y();return}if(c==="raf"){var h=requestAnimationFrame(y);f1.set(o,h)}else if(typeof c=="number"){if(!Bv.has(o)){y();var v=setTimeout(y,c);Bv.set(o,v)}}else y()}}});var Iie=J([Fi],e=>e.tooltipItemPayloads),$9=J([Iie,(e,t)=>t,(e,t,r)=>r],(e,t,r)=>{if(t!=null){var n=e.find(o=>o.settings.graphicalItemId===r);if(n!=null){var a=n.getPosition;if(a!=null)return a(t)}}});var mE=Fr("touchMove"),vE=Di(),Wu=null,ps=null,U9=null,$v=null;vE.startListening({actionCreator:mE,effect:(e,t)=>{var r=e.payload;if(!(r.touches==null||r.touches.length===0)){$v=d1(r);var n=t.getState(),a=n.eventSettings,o=a.throttleDelay,i=a.throttledEvents,l=i==="all"||i.includes("touchmove");Wu!==null&&(cancelAnimationFrame(Wu),Wu=null),ps!==null&&(typeof o!="number"||!l)&&(clearTimeout(ps),ps=null),U9=Array.from(r.touches).map(u=>zv({clientX:u.clientX,clientY:u.clientY,currentTarget:r.currentTarget}));var s=()=>{if($v!=null){var u=t.getState(),c=Ql(u,u.tooltip.settings.shared);if(c==="axis"){var d,f=(d=U9)===null||d===void 0?void 0:d[0];if(f==null){Wu=null,ps=null;return}var p=jv(u,f);p?.activeIndex!=null&&t.dispatch(Jx({activeIndex:p.activeIndex,activeDataKey:void 0,activeCoordinate:p.activeCoordinate}))}else if(c==="item"){var m,y=$v.touches[0];if(document.elementFromPoint==null||y==null)return;var h=document.elementFromPoint(y.clientX,y.clientY);if(!h||!h.getAttribute)return;var v=h.getAttribute(p0),g=(m=h.getAttribute(m0))!==null&&m!==void 0?m:void 0,b=Rl(u).find(w=>w.id===g);if(v==null||b==null||g==null)return;var x=b.dataKey,S=$9(u,v,g);t.dispatch(Zx({activeDataKey:x,activeIndex:v,activeCoordinate:S,activeGraphicalItemId:g}))}Wu=null,ps=null}};if(!l){s();return}o==="raf"?Wu=requestAnimationFrame(s):typeof o=="number"&&ps===null&&(s(),$v=null,ps=setTimeout(()=>{$v?s():(ps=null,Wu=null)},o))}}});var Uv={throttleDelay:"raf",throttledEvents:["mousemove","touchmove","pointermove","scroll","wheel"]},F9=Ct({name:"eventSettings",initialState:Uv,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=tt(t.payload.throttledEvents))}}}),W9=F9.actions.setEventSettings;var H9=F9.reducer;var jie=Fh({brush:dB,cartesianAxis:XL,chartData:sz,errorBars:KB,eventSettings:H9,graphicalItems:IL,layout:nD,legend:OD,options:nz,polarAxis:rL,polarOptions:B9,referenceElements:mB,renderedTicks:MB,rootProps:I9,tooltip:fj,zIndex:Yj}),V9=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return $P({reducer:jie,preloadedState:t,middleware:n=>{var a;return n({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((a="es6")!==null&&a!==void 0?a:"")}).concat([lE.middleware,sE.middleware,Lv.middleware,pE.middleware,vE.middleware])},enhancers:n=>{var a=n;return typeof n=="function"&&(a=n()),a.concat(ck({type:"raf"}))},devTools:Ga.devToolsEnabled&&{serialize:{replacer:M9},name:"recharts-".concat(r)}})};function p1(e){var t=e.preloadedState,r=e.children,n=e.reduxStoreName,a=Et(),o=(0,q9.useRef)(null);if(a)return r;o.current==null&&(o.current=V9(t,n));var i=um;return K9.createElement(LD,{context:i,store:o.current},r)}var m1=te(ne());function zie(e){var t=e.layout,r=e.margin,n=Ve(),a=Et();return(0,m1.useEffect)(()=>{a||(n(eD(t)),n(pk(r)))},[n,a,t,r]),null}var v1=(0,m1.memo)(zie,Jn);var Y9=te(ne());function g1(e){var t=Ve();return(0,Y9.useEffect)(()=>{t(j9(e))},[t,e]),null}var y1=te(ne());var Lie=e=>{var t=Ve();return(0,y1.useEffect)(()=>{t(W9(e))},[t,e]),null},h1=(0,y1.memo)(Lie,Jn);var el=te(ne()),e7=te(ne());var Vu=te(ne()),yE=te(ne());var Hu=te(ne()),x1=te(ne());function G9(e){var t=e.zIndex,r=e.isPanorama,n=(0,x1.useRef)(null),a=Ve();return(0,x1.useLayoutEffect)(()=>(n.current&&a(Kj({zIndex:t,element:n.current,isPanorama:r})),()=>{a(qj({zIndex:t,isPanorama:r}))}),[a,t,r]),Hu.createElement("g",{tabIndex:-1,ref:n,className:"recharts-zIndex-layer_".concat(t)})}function gE(e){var t=e.children,r=e.isPanorama,n=we(Uj);if(!n||n.length===0)return t;var a=n.filter(i=>i<0),o=n.filter(i=>i>0);return Hu.createElement(Hu.Fragment,null,a.map(i=>Hu.createElement(G9,{key:i,zIndex:i,isPanorama:r})),t,o.map(i=>Hu.createElement(G9,{key:i,zIndex:i,isPanorama:r})))}var Bie=["children"];function $ie(e,t){if(e==null)return{};var r,n,a=Uie(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n{var r=Pd(),n=Dd(),a=N0();if(!Xn(r)||!Xn(n))return null;var o=e.children,i=e.otherAttributes,l=e.title,s=e.desc,u,c;return i!=null&&(typeof i.tabIndex=="number"?u=i.tabIndex:u=a?0:void 0,typeof i.role=="string"?c=i.role:c=a?"application":void 0),Vu.createElement(tm,b1({},i,{title:l,desc:s,role:c,tabIndex:u,width:r,height:n,style:Fie,ref:t}),o)}),Hie=e=>{var t=e.children,r=we(tu);if(!r)return null;var n=r.width,a=r.height,o=r.y,i=r.x;return Vu.createElement(tm,{width:n,height:a,x:i,y:o},t)},hE=(0,yE.forwardRef)((e,t)=>{var r=e.children,n=$ie(e,Bie),a=Et();return a?Vu.createElement(Hie,null,Vu.createElement(gE,{isPanorama:!0},r)):Vu.createElement(Wie,b1({ref:t},n),Vu.createElement(gE,{isPanorama:!1},r))});var cr=te(ne()),gt=te(ne());var w1=te(ne());function Vie(e,t){return Gie(e)||Yie(e,t)||qie(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 qie(e,t){if(e){if(typeof e=="string")return X9(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)?X9(e,t):void 0}}function X9(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(),l=i.width/n.offsetWidth;He(l)&&l!==o&&e(rD(l))}},[n,e,o]),a}function Q9(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Xie(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r(cz(),null);function A1(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var ale=(0,gt.forwardRef)((e,t)=>{var r,n,a=(0,gt.useRef)(null),o=(0,gt.useState)({containerWidth:A1((r=e.style)===null||r===void 0?void 0:r.width),containerHeight:A1((n=e.style)===null||n===void 0?void 0:n.height)}),i=S1(o,2),l=i[0],s=i[1],u=(0,gt.useCallback)((d,f)=>{s(p=>{var m=Math.round(d),y=Math.round(f);return p.containerWidth===m&&p.containerHeight===y?p:{containerWidth:m,containerHeight:y}})},[]),c=(0,gt.useCallback)(d=>{if(typeof t=="function"&&t(d),a.current!=null&&(a.current.disconnect(),a.current=null),d!=null&&typeof ResizeObserver<"u"){var f=d.getBoundingClientRect(),p=f.width,m=f.height;u(p,m);var y=v=>{var g=v[0];if(g!=null){var b=g.contentRect,x=b.width,S=b.height;u(x,S)}},h=new ResizeObserver(y);h.observe(d),a.current=h}},[t,u]);return(0,gt.useEffect)(()=>()=>{var d=a.current;d?.disconnect()},[u]),cr.createElement(cr.Fragment,null,cr.createElement(au,{width:l.containerWidth,height:l.containerHeight}),cr.createElement("div",ms({ref:c},e)))}),ole=(0,gt.forwardRef)((e,t)=>{var r=e.width,n=e.height,a=(0,gt.useState)({containerWidth:A1(r),containerHeight:A1(n)}),o=S1(a,2),i=o[0],l=o[1],s=(0,gt.useCallback)((c,d)=>{l(f=>{var p=Math.round(c),m=Math.round(d);return f.containerWidth===p&&f.containerHeight===m?f:{containerWidth:p,containerHeight:m}})},[]),u=(0,gt.useCallback)(c=>{if(typeof t=="function"&&t(c),c!=null){var d=c.getBoundingClientRect(),f=d.width,p=d.height;s(f,p)}},[t,s]);return cr.createElement(cr.Fragment,null,cr.createElement(au,{width:i.containerWidth,height:i.containerHeight}),cr.createElement("div",ms({ref:u},e)))}),ile=(0,gt.forwardRef)((e,t)=>{var r=e.width,n=e.height;return cr.createElement(cr.Fragment,null,cr.createElement(au,{width:r,height:n}),cr.createElement("div",ms({ref:t},e)))}),lle=(0,gt.forwardRef)((e,t)=>{var r=e.width,n=e.height;return typeof r=="string"||typeof n=="string"?cr.createElement(ole,ms({},e,{ref:t})):typeof r=="number"&&typeof n=="number"?cr.createElement(ile,ms({},e,{width:r,height:n,ref:t})):cr.createElement(cr.Fragment,null,cr.createElement(au,{width:r,height:n}),cr.createElement("div",ms({ref:t},e)))});function sle(e){return e?ale:lle}var R9=(0,gt.forwardRef)((e,t)=>{var r=e.children,n=e.className,a=e.height,o=e.onClick,i=e.onContextMenu,l=e.onDoubleClick,s=e.onMouseDown,u=e.onMouseEnter,c=e.onMouseLeave,d=e.onMouseMove,f=e.onMouseUp,p=e.onTouchEnd,m=e.onTouchMove,y=e.onTouchStart,h=e.style,v=e.width,g=e.responsive,b=e.dispatchTouchEvents,x=b===void 0?!0:b,S=(0,gt.useRef)(null),w=Ve(),O=(0,gt.useState)(null),k=S1(O,2),A=k[0],M=k[1],W=(0,gt.useState)(null),L=S1(W,2),H=L[0],D=L[1],Y=Z9(),N=xm(),_=N?.width>0?N.width:v,z=N?.height>0?N.height:a,j=(0,gt.useCallback)(X=>{Y(X),typeof t=="function"&&t(X),M(X),D(X),X!=null&&(S.current=X)},[Y,t,M,D]),P=(0,gt.useCallback)(X=>{w(iE(X)),w(Oa({handler:o,reactEvent:X}))},[w,o]),B=(0,gt.useCallback)(X=>{w(u1(X)),w(Oa({handler:u,reactEvent:X}))},[w,u]),R=(0,gt.useCallback)(X=>{w(Qx()),w(Oa({handler:c,reactEvent:X}))},[w,c]),F=(0,gt.useCallback)(X=>{w(u1(X)),w(Oa({handler:d,reactEvent:X}))},[w,d]),G=(0,gt.useCallback)(()=>{w(cE())},[w]),ee=(0,gt.useCallback)(()=>{w(dE())},[w]),fe=(0,gt.useCallback)(X=>{w(uE(X.key))},[w]),de=(0,gt.useCallback)(X=>{w(Oa({handler:i,reactEvent:X}))},[w,i]),De=(0,gt.useCallback)(X=>{w(Oa({handler:l,reactEvent:X}))},[w,l]),le=(0,gt.useCallback)(X=>{w(Oa({handler:s,reactEvent:X}))},[w,s]),Te=(0,gt.useCallback)(X=>{w(Oa({handler:f,reactEvent:X}))},[w,f]),K=(0,gt.useCallback)(X=>{w(Oa({handler:y,reactEvent:X}))},[w,y]),I=(0,gt.useCallback)(X=>{x&&w(mE(X)),w(Oa({handler:m,reactEvent:X}))},[w,x,m]),C=(0,gt.useCallback)(X=>{w(Oa({handler:p,reactEvent:X}))},[w,p]),T=sle(g);return cr.createElement(bC.Provider,{value:A},cr.createElement(lA.Provider,{value:H},cr.createElement(T,{width:_??h?.width,height:z??h?.height,className:Ue("recharts-wrapper",n),style:Xie({position:"relative",cursor:"default",width:_,height:z},h),onClick:P,onContextMenu:de,onDoubleClick:De,onFocus:G,onBlur:ee,onKeyDown:fe,onMouseDown:le,onMouseEnter:B,onMouseLeave:R,onMouseMove:F,onMouseUp:Te,onTouchEnd:C,onTouchMove:I,onTouchStart:K,ref:j},cr.createElement(nle,null),r)))});var ule=["width","height","responsive","children","className","style","compact","title","desc"];function cle(e,t){if(e==null)return{};var r,n,a=dle(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n{var r=e.width,n=e.height,a=e.responsive,o=e.children,i=e.className,l=e.style,s=e.compact,u=e.title,c=e.desc,d=cle(e,ule),f=tr(d);return s?el.createElement(el.Fragment,null,el.createElement(au,{width:r,height:n}),el.createElement(hE,{otherAttributes:f,title:u,desc:c},o)):el.createElement(R9,{className:i,style:l,width:r,height:n,responsive:a??!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},el.createElement(hE,{otherAttributes:f,title:u,desc:c,ref:t},el.createElement(gB,null,o)))});function xE(){return xE=Object.assign?Object.assign.bind():function(e){for(var t=1;tn7.createElement(Pf,{chartName:"LineChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:hle,tooltipPayloadSearcher:ts,categoricalChartProps:e,ref:t}));var o7=te(ne()),i7=te(ne());var xle=["axis","item"],wE=(0,i7.forwardRef)((e,t)=>o7.createElement(Pf,{chartName:"BarChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:xle,tooltipPayloadSearcher:ts,categoricalChartProps:e,ref:t}));var m7=te(ne()),v7=te(ne());var c7=te(ne()),vs=te(ne());var l7=te(ne());function s7(e){var t=Ve();return(0,l7.useEffect)(()=>{t(L9(e))},[t,e]),null}var ble=["layout"];function SE(){return SE=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=lt(e,Ple);return m7.createElement(d7,{chartName:"PieChart",defaultTooltipEventType:"item",validateTooltipEventTypes:Mle,tooltipPayloadSearcher:ts,categoricalChartProps:r,ref:t})});var g7=te(ne()),y7=te(ne());var Dle=["axis"],gs=(0,y7.forwardRef)((e,t)=>g7.createElement(Pf,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:Dle,tooltipPayloadSearcher:ts,categoricalChartProps:e,ref:t}));var lo=te(ne()),Df=[{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}],h7="30m",x7="activeagents.timeWindow",b7=(0,lo.createContext)(null),NE=e=>Df.find(t=>t.id===e);function w7({children:e}){let[t,r]=(0,lo.useState)(()=>{try{let o=localStorage.getItem(x7);if(o&&NE(o))return o}catch{}return h7}),n=(0,lo.useCallback)(o=>{if(NE(o)){r(o);try{localStorage.setItem(x7,o)}catch{}}},[]),a=(0,lo.useMemo)(()=>{let o=Df.findIndex(l=>l.id===t),i=Df[o]||NE(h7);return{timeWindow:i,windowIndex:o,windows:Df,setWindow:n,zoomTo:l=>{let s=Df[Math.min(Math.max(l,0),Df.length-1)];s&&n(s.id)},days:Math.max(1,Math.ceil(i.minutes/1440))}},[t,n]);return lo.default.createElement(b7.Provider,{value:a},e)}function Qo(){let e=(0,lo.useContext)(b7);if(!e)throw new Error("useTimeWindow must be used within a TimeWindowProvider");return e}var If=te(ne());function Jo({compact:e=!1}){let{windows:t,windowIndex:r,timeWindow:n,setWindow:a,zoomTo:o}=Qo(),{darkMode:i}=kt(),l=Fa(i),s={color:l.textSecondary};return If.default.createElement("div",{className:"flex items-center rounded-lg p-1",style:{background:l.mutedBg}},If.default.createElement("button",{onClick:()=>o(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:s},"\u2212"),If.default.createElement("select",{value:n.id,onChange:u=>a(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:l.cardBg,color:l.textPrimary,border:`1px solid ${l.cardBorder}`}},t.map(u=>If.default.createElement("option",{key:u.id,value:u.id},u.label))),If.default.createElement("button",{onClick:()=>o(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:s},"+"))}var jr=te(ne());var Vt=te(ne()),Ile={messages:"#2563eb",tool_results:"#5b84ec",instructions:"#85a3f0",tool_schemas:"#a6bcf4",mcp_schemas:"#c3d2f8",memory:"#dce4fb",output:"#7c3aed"},Fv=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},Ro=e=>{if(e==null)return 0;let t=typeof e=="string"?e:JSON.stringify(e);return Math.round(t.length/4)},jf=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 ys({used:e,limit:t=2e5,segments:r=[],cached:n=0,thinking:a=0,compact:o=!1,defaultOpen:i=!1,label:l="Context window",estimated:s=!1,darkMode:u=!1}){let[c,d]=(0,Vt.useState)(i),f=r.filter(O=>O.tokens>0),p=e??f.reduce((O,k)=>O+k.tokens,0),m=t>0?p/t:0,y=m>=.9?"#dc2626":m>=.75?"#eab308":null,h=u?"rgba(255,255,255,0.4)":"#9ca3af",v=u?"rgba(255,255,255,0.6)":"#6b7280",g=u?"rgba(255,255,255,0.75)":"#4b5563",b=u?"rgba(255,255,255,0.1)":"#f3f4f6",x=`${jf(p)} / ${jf(t)} (${Math.round(m*100)}%)`,S=O=>O.key==="messages"&&y?y:O.color||Ile[O.key]||"#2563eb",w=O=>Vt.default.createElement("div",{style:{display:"flex",height:O,borderRadius:"999px",overflow:"hidden",background:b,flex:1}},f.map(k=>Vt.default.createElement("div",{key:k.key,title:`${k.label} \xB7 ${jf(k.tokens)}`,style:{width:`${Math.min(k.tokens/t*100,100)}%`,background:S(k)}})));return o?Vt.default.createElement("span",{title:`${l}: ${x}`,style:{display:"inline-flex",alignItems:"center",gap:"6px",width:"132px",verticalAlign:"middle"}},w("6px"),Vt.default.createElement("span",{style:{fontSize:"11px",fontFamily:"'SF Mono', 'Fira Code', monospace",color:y||h,whiteSpace:"nowrap"}},Math.round(m*100),"%")):Vt.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"}},Vt.default.createElement("div",{onClick:O=>{O.stopPropagation(),d(!c)},style:{display:"flex",alignItems:"center",justifyContent:"space-between",cursor:"pointer"}},Vt.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:v}},l,s&&Vt.default.createElement("span",{style:{color:h,fontWeight:400}}," \xB7 estimated")),Vt.default.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:"8px"}},Vt.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",fontWeight:600,color:y||g}},x),Vt.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"11px",color:h,display:"inline-block",transform:c?"rotate(90deg)":"none",transition:"transform 0.15s ease"}},">"))),Vt.default.createElement("div",{style:{display:"flex",marginTop:"8px"}},w("9px")),m>=.9&&Vt.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&&Vt.default.createElement("div",{style:{marginTop:"10px",display:"grid",gap:"5px"}},[...f,{key:"__free",label:"Free space",tokens:Math.max(t-p,0)}].map(O=>Vt.default.createElement("div",{key:O.key,style:{display:"flex",alignItems:"center",gap:"8px"}},Vt.default.createElement("span",{style:{width:"9px",height:"9px",borderRadius:"2px",flexShrink:0,background:O.key==="__free"?b:S(O),border:O.key==="__free"?`1px solid ${u?"rgba(255,255,255,0.25)":"#d1d5db"}`:"none"}}),Vt.default.createElement("span",{style:{fontSize:"13px",color:g,flex:1}},O.label),Vt.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",color:v,width:"56px",textAlign:"right"}},jf(O.tokens)),Vt.default.createElement("span",{style:{fontFamily:"'SF Mono', 'Fira Code', monospace",fontSize:"12px",color:h,width:"46px",textAlign:"right"}},t>0?`${(O.tokens/t*100).toFixed(1)}%`:"\u2014"))),(n>0||a>0)&&Vt.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:h}},n>0&&Vt.default.createElement("span",null,Vt.default.createElement("span",{style:{color:"#2563eb"}},"[=]")," cached prefix ",jf(n)),a>0&&Vt.default.createElement("span",null,Vt.default.createElement("span",{style:{color:"#7c3aed"}},"[~]")," thinking ",jf(a)))))}var We=te(ne());var Se=te(ne());var Nr=te(ne());var ue=te(ne());var S7=["ui","json-ui","genui"],qu="render_ui",Eo=e=>e!=null&&typeof e=="object"&&!Array.isArray(e),CE=e=>{if(typeof e=="string")try{return JSON.parse(e)}catch{return}};function Yu(e){let t=typeof e=="string"?CE(e):e;if(Array.isArray(t))return t.every(Eo)?t:null;if(Eo(t)){if(Array.isArray(t.blocks))return t.blocks.every(Eo)?t.blocks:null;if(Array.isArray(t.ui))return t.ui.every(Eo)?t.ui:null}return null}function EE(e,t){let r=String(e||"").trim().toLowerCase();if(S7.includes(r))return Yu(t);if(r==="json"){let n=CE(t);return Eo(n)&&Array.isArray(n.ui)?Yu(n):null}return null}function _E(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 a=CE(t);if(a==null||typeof a!="object")return null;if(Array.isArray(a))return a.length>0&&a.every(l=>Eo(l)&&typeof l.type=="string")?{blocks:a}:{object:a};let o=Yu(a);return o?{blocks:o}:{object:a}}var jle=e=>Eo(e)?e.function?.name||e.name:void 0,zle=e=>Eo(e)?e.function?.arguments??e.arguments??e.input:void 0;function zf(e,{callId:t}={}){if(!Eo(e))return null;if(e.tool_name===qu&&e.tool_arguments!=null){let a=Yu(e.tool_arguments);if(a)return a}let r=e.tool_calls,n=[];if(Array.isArray(r)){let a=r.some(o=>Eo(o)&&o.id!=null);r.forEach(o=>{if(jle(o)!==qu||t!=null&&a&&o.id!==t)return;let i=Yu(zle(o));i&&n.push(...i)})}else if(Eo(r)&&e.tool_name===qu){let a=Yu(r);a&&n.push(...a)}return n.length>0?n:null}function N1(e){return typeof e=="string"&&/^(https?:\/\/|data:image\/)/i.test(e.trim())}function C1(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 A7(e){try{return new URL(String(e).trim()).host}catch{return""}}var O7=["#2a78d6","#eb6834","#1baf7a","#eda100","#e87ba4","#008300","#4a3aa7","#e34948"],Lle=["#3987e5","#d95926","#199e70","#c98500","#d55181","#008300","#9085e9","#e66767"],Wv=O7.length,k7=220,Lf=e=>e!=null&&typeof e=="object"&&!Array.isArray(e),it=e=>e==null?"":typeof e=="object"?JSON.stringify(e):String(e),T7=e=>{if(typeof e!="number"||!Number.isFinite(e))return it(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()},PE=(e,t)=>typeof t=="string"&&Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0,N7={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"]}},Ble={positive:{light:"#15803d",dark:"#4ade80"},negative:{light:"#b91c1c",dark:"#f87171"}},OE=e=>({width:"100%",padding:"6px 10px",borderRadius:"8px",border:`1px solid ${e.inputBorder}`,background:e.inputBg,color:e.textPrimary,fontFamily:"inherit",fontSize:"13px"}),DE=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"}),Bf=e=>({fontSize:"13px",fontWeight:600,color:e.textPrimary,margin:0});function tl({block:e,reason:t,colors:r,darkMode:n}){return ue.default.createElement("div",{className:"text-xs",style:{color:r.textMuted}},ue.default.createElement("div",{className:"mb-1"},"Unsupported block",e&&e.type?` \u201C${it(e.type)}\u201D`:"",t?` \u2014 ${t}`:""),ue.default.createElement("pre",{style:{...DE(n),maxHeight:"160px",overflowY:"auto"}},JSON.stringify(e,null,2)))}function $le({block:e,colors:t,darkMode:r,onAction:n}){let a=N1(e.image_url)&&C1(e.image_url)?e.image_url.trim():null;return ue.default.createElement("div",{className:"overflow-hidden",style:{border:`1px solid ${t.cardBorder}`,borderRadius:"10px",background:t.innerBg}},a&&ue.default.createElement("img",{src:a,alt:it(e.title),style:{width:"100%",maxHeight:"220px",objectFit:"cover",display:"block"}}),ue.default.createElement("div",{className:"p-3 space-y-1.5"},e.title!=null&&ue.default.createElement("div",{style:Bf(t)},it(e.title)),e.body!=null&&ue.default.createElement("div",{className:"text-sm",style:{color:t.textCell}},ue.default.createElement(_o,{text:it(e.body),darkMode:r,onUiAction:n})),e.footer!=null&&ue.default.createElement("div",{className:"text-xs pt-1",style:{color:t.textMuted,borderTop:`1px solid ${t.cardBorder}`}},it(e.footer))))}function M7({block:e,colors:t,darkMode:r}){let n=e.delta!=null?it(e.delta):null,a=e.tone||(n&&n.trim().startsWith("-")?"negative":n?"positive":"neutral"),o=PE(Ble,a),i=o?o[r?"dark":"light"]:t.textMuted,l=typeof e.value=="number"?T7(e.value):it(e.value);return ue.default.createElement("div",{style:{background:t.innerBg,border:`1px solid ${t.cardBorder}`,borderRadius:"10px",padding:"10px 12px"}},ue.default.createElement("div",{className:"text-xs",style:{color:t.textMuted}},it(e.label)),ue.default.createElement("div",{className:"text-lg font-semibold leading-tight mt-0.5",style:{color:t.textPrimary}},l),n&&ue.default.createElement("div",{className:"text-xs mt-0.5 font-medium",style:{color:i}},n))}function Ule({block:e,colors:t,darkMode:r}){let n=Array.isArray(e.items)?e.items.filter(Lf):[];return n.length===0?ue.default.createElement(tl,{block:e,reason:"stats needs an items array",colors:t,darkMode:r}):ue.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(140px, 1fr))",gap:"8px"}},n.map((a,o)=>ue.default.createElement(M7,{key:o,block:a,colors:t,darkMode:r})))}var ME=(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"}),Fle=e=>({padding:"6px 10px",borderBottom:`1px solid ${e.borderStrong}`,color:e.textSecondary,fontSize:"11px",fontWeight:600,textAlign:"left",fontFamily:Fe.mono,textTransform:"uppercase",letterSpacing:"0.04em",whiteSpace:"nowrap"});function P7({columns:e,rows:t,colors:r,renderCell:n}){return ue.default.createElement("div",{style:{overflowX:"auto"}},ue.default.createElement("table",{className:"text-sm",style:{width:"100%",borderCollapse:"collapse"}},ue.default.createElement("thead",null,ue.default.createElement("tr",null,e.map((a,o)=>ue.default.createElement("th",{key:o,style:Fle(r)},it(a))))),ue.default.createElement("tbody",null,t.map((a,o)=>ue.default.createElement("tr",{key:o},e.map((i,l)=>{let s=a[l];return ue.default.createElement("td",{key:l,style:ME(r,typeof s=="number")},n?n(s):typeof s=="number"?s.toLocaleString():it(s))}))))))}function Wle({block:e,colors:t,darkMode:r}){let n=Array.isArray(e.columns)?e.columns:null,a=Array.isArray(e.rows)?e.rows:null;if(!n||!a)return ue.default.createElement(tl,{block:e,reason:"table needs columns and rows arrays",colors:t,darkMode:r});let o=a.map(i=>Array.isArray(i)?i:Lf(i)?n.map(l=>i[l]):[i]);return ue.default.createElement("div",null,e.title!=null&&ue.default.createElement("div",{className:"mb-1.5",style:Bf(t)},it(e.title)),ue.default.createElement(P7,{columns:n,rows:o,colors:t}))}var Hle=e=>{let t=e[0];return Object.keys(t).find(r=>typeof t[r]=="string")||Object.keys(t)[0]},Vle=(e,t)=>Object.keys(e[0]).filter(r=>r!==t&&typeof e[0][r]=="number");function Kle({block:e,colors:t,darkMode:r}){let n=String(e.chart||e.kind||"bar").toLowerCase(),a=Array.isArray(e.data)?e.data.filter(Lf):[];if(a.length===0)return ue.default.createElement(tl,{block:e,reason:"chart needs a data array of objects",colors:t,darkMode:r});let o=typeof e.x=="string"?e.x:Hle(a),i=Array.isArray(e.series)?e.series.filter(h=>typeof h=="string"):[],l=(i.length>0?i:Vle(a,o)).slice(0,Wv);if(!o||l.length===0)return ue.default.createElement(tl,{block:e,reason:"chart needs an x key and at least one series",colors:t,darkMode:r});let s=r?Lle:O7,u=t.cardBg,c={fontSize:10,fill:t.textMuted},d=ue.default.createElement(rs,{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:h=>typeof h=="number"?h.toLocaleString():it(h)}),f=l.length>1||n==="pie"?ue.default.createElement(S0,{wrapperStyle:{fontSize:"11px",color:t.textSecondary},iconSize:10}):null,p=ue.default.createElement(ue.default.Fragment,null,ue.default.createElement(Yi,{stroke:t.cardBorder,vertical:!1}),ue.default.createElement(Qi,{dataKey:o,stroke:t.borderStrong,tick:c,tickLine:!1}),ue.default.createElement(Ri,{stroke:t.borderStrong,tick:c,tickLine:!1,axisLine:!1,tickFormatter:T7,width:44})),m={top:8,right:12,bottom:0,left:0},y;if(n==="line")y=ue.default.createElement(bE,{data:a,margin:m},p,d,f,l.map((h,v)=>ue.default.createElement(t1,{key:h,type:"monotone",dataKey:h,stroke:s[v],strokeWidth:2,dot:{r:4,strokeWidth:2,stroke:u,fill:s[v]},activeDot:{r:5,strokeWidth:2,stroke:u},isAnimationActive:!1})));else if(n==="area")y=ue.default.createElement(gs,{data:a,margin:m},p,d,f,l.map((h,v)=>ue.default.createElement(Xi,{key:h,type:"monotone",dataKey:h,stroke:s[v],strokeWidth:2,fill:s[v],fillOpacity:.12,dot:{r:3,strokeWidth:2,stroke:u,fill:s[v]},isAnimationActive:!1})));else if(n==="pie"){let h=l[0],v=[...a].sort((x,S)=>(Number(S[h])||0)-(Number(x[h])||0)),g=v.slice(0,Wv),b=v.slice(Wv);b.length>0&&(g[Wv-1]={[o]:"Other",[h]:b.reduce((x,S)=>x+(Number(S[h])||0),Number(g[Wv-1][h])||0)}),y=ue.default.createElement(kE,{margin:m},d,f,ue.default.createElement(Fb,{data:g,dataKey:h,nameKey:o,innerRadius:44,outerRadius:80,paddingAngle:2,stroke:u,strokeWidth:2,isAnimationActive:!1},g.map((x,S)=>ue.default.createElement(Hi,{key:S,fill:s[S]}))))}else y=ue.default.createElement(wE,{data:a,margin:m,barCategoryGap:"25%",barGap:2},p,d,f,l.map((h,v)=>ue.default.createElement(l1,{key:h,dataKey:h,fill:s[v],radius:[4,4,0,0],maxBarSize:24,isAnimationActive:!1})));return ue.default.createElement("div",null,e.title!=null&&ue.default.createElement("div",{className:"mb-1",style:Bf(t)},it(e.title)),ue.default.createElement("div",{style:{width:"100%",height:k7,minWidth:0}},ue.default.createElement($l,{width:"100%",height:k7},y)))}function qle({block:e,colors:t,darkMode:r,onAction:n}){let a=Array.isArray(e.items)?e.items:null;if(!a)return ue.default.createElement(tl,{block:e,reason:"list needs an items array",colors:t,darkMode:r});let o=e.ordered?"ol":"ul";return ue.default.createElement("div",null,e.title!=null&&ue.default.createElement("div",{className:"mb-1",style:Bf(t)},it(e.title)),ue.default.createElement(o,{className:`${e.ordered?"list-decimal":"list-disc"} pl-5 text-sm space-y-0.5`,style:{color:t.textCell}},a.map((i,l)=>ue.default.createElement("li",{key:l},typeof i=="string"?ue.default.createElement(_o,{text:i,darkMode:r,onUiAction:n}):it(i)))))}function Yle({block:e,colors:t}){let r=Number(e.value),n=Number.isFinite(r)?Math.max(0,Math.min(100,r)):0;return ue.default.createElement("div",null,ue.default.createElement("div",{className:"flex items-center justify-between text-xs mb-1"},ue.default.createElement("span",{style:{color:t.textCell}},it(e.label)),ue.default.createElement("span",{className:"font-mono",style:{color:t.textMuted}},Math.round(n),"%")),ue.default.createElement("div",{style:{height:"8px",borderRadius:"999px",background:t.trackBg,overflow:"hidden"}},ue.default.createElement("div",{style:{width:`${n}%`,height:"100%",background:vn,borderRadius:"999px",transition:"width 0.3s ease"}})))}var Gle=["text","textarea","number","select","checkbox"],TE=e=>it(e.name||e.label),C7=e=>it(e.label||e.name),E7=e=>Gle.includes(e.type)?e.type:"text";function Xle({block:e,colors:t,darkMode:r,onAction:n}){let a=(Array.isArray(e.fields)?e.fields:[]).filter(f=>Lf(f)&&(f.name||f.label)),[o,i]=(0,ue.useState)(()=>Object.fromEntries(a.map(f=>[TE(f),E7(f)==="checkbox"?!1:""]))),[l,s]=(0,ue.useState)(!1);if(a.length===0)return ue.default.createElement(tl,{block:e,reason:"form needs fields",colors:t,darkMode:r});let u=e.submit!=null?it(e.submit):"Submit",c=(f,p)=>i(m=>({...m,[f]:p}));return ue.default.createElement("form",{onSubmit:f=>{f.preventDefault();let p=a.map(m=>{let y=o[TE(m)];return`${C7(m)}: ${typeof y=="boolean"?y?"yes":"no":it(y)}`}).join("; ");s(!0),n&&n({kind:"form",text:`${e.submit!=null?it(e.submit):"Submitted"}: ${p}`,values:{...o}})},className:"space-y-2.5",style:{border:`1px solid ${t.cardBorder}`,borderRadius:"10px",background:t.innerBg,padding:"12px"}},e.title!=null&&ue.default.createElement("div",{style:Bf(t)},it(e.title)),a.map(f=>{let p=TE(f),m=E7(f),y=C7(f),h=`genui-field-${p.replace(/\W+/g,"-")}`;return m==="checkbox"?ue.default.createElement("label",{key:p,className:"flex items-center gap-2 text-sm",style:{color:t.textCell}},ue.default.createElement("input",{type:"checkbox",checked:!!o[p],onChange:v=>c(p,v.target.checked),style:{accentColor:vn}}),y):ue.default.createElement("div",{key:p},ue.default.createElement("label",{htmlFor:h,className:"block text-xs mb-1",style:{color:t.textSecondary}},y,f.required?" *":""),m==="textarea"?ue.default.createElement("textarea",{id:h,name:p,value:o[p],onChange:v=>c(p,v.target.value),placeholder:f.placeholder!=null?it(f.placeholder):void 0,required:!!f.required,rows:3,className:"aa-field",style:{...OE(t),resize:"vertical"}}):m==="select"?ue.default.createElement("select",{id:h,name:p,value:o[p],onChange:v=>c(p,v.target.value),required:!!f.required,className:"aa-field",style:OE(t)},ue.default.createElement("option",{value:""},f.placeholder!=null?it(f.placeholder):"Select\u2026"),(Array.isArray(f.options)?f.options:[]).map((v,g)=>ue.default.createElement("option",{key:g,value:it(v)},it(v)))):ue.default.createElement("input",{id:h,name:p,type:m==="number"?"number":"text",value:o[p],onChange:v=>c(p,m==="number"&&v.target.value!==""?Number(v.target.value):v.target.value),placeholder:f.placeholder!=null?it(f.placeholder):void 0,required:!!f.required,className:"aa-field",style:OE(t)}))}),ue.default.createElement("div",{className:"flex items-center gap-3 pt-1"},ue.default.createElement("button",{type:"submit","data-testid":"genui-form-submit",style:{padding:"6px 14px",borderRadius:"8px",fontSize:"13px",fontWeight:500,background:vn,color:"#ffffff",border:"1px solid transparent",cursor:"pointer"}},u),l&&ue.default.createElement("span",{className:"text-xs",style:{color:t.textMuted}},"Sent to the agent")))}function Zle({block:e,colors:t,darkMode:r,onAction:n}){let a=Array.isArray(e.options)?e.options:null,[o,i]=(0,ue.useState)(null);return!a||a.length===0?ue.default.createElement(tl,{block:e,reason:"choices needs options",colors:t,darkMode:r}):ue.default.createElement("div",null,e.prompt!=null&&ue.default.createElement("div",{className:"text-sm mb-1.5",style:{color:t.textCell}},it(e.prompt)),ue.default.createElement("div",{className:"flex flex-wrap gap-2"},a.map((l,s)=>{let u=it(l),c=o===s;return ue.default.createElement("button",{key:s,type:"button","data-testid":"genui-choice",onClick:()=>{i(s),n&&n({kind:"choice",text:u})},style:{padding:"5px 12px",borderRadius:"999px",fontSize:"13px",cursor:"pointer",border:`1px solid ${c?vn:t.inputBorder}`,background:c?vn:"transparent",color:c?"#ffffff":t.textCell}},u)})))}function Qle({url:e,alt:t,colors:r,darkMode:n}){let[a,o]=(0,ue.useState)(!1);if(a)return ue.default.createElement("img",{src:e,alt:t,style:{maxWidth:"100%",borderRadius:"8px",display:"block"}});let i=A7(e);return ue.default.createElement("button",{type:"button",onClick:()=>o(!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 Jle({block:e,colors:t,darkMode:r}){if(!N1(e.url))return ue.default.createElement(tl,{block:e,reason:"image URL must be http(s) or data:",colors:t,darkMode:r});let n=e.url.trim(),a=e.alt!=null?it(e.alt):"";return ue.default.createElement("figure",{style:{margin:0}},C1(n)?ue.default.createElement("img",{src:n,alt:a,style:{maxWidth:"100%",borderRadius:"8px",display:"block"}}):ue.default.createElement(Qle,{url:n,alt:a,colors:t,darkMode:r}),e.caption!=null&&ue.default.createElement("figcaption",{className:"text-xs mt-1",style:{color:t.textMuted}},it(e.caption)))}function Rle({block:e,colors:t,darkMode:r,onAction:n}){let[a,o]=(PE(N7,e.tone)||N7.info)[r?"dark":"light"];return ue.default.createElement("div",{style:{background:a,borderLeft:`3px solid ${o}`,borderRadius:"8px",padding:"10px 12px"}},e.title!=null&&ue.default.createElement("div",{className:"text-sm font-semibold mb-0.5",style:{color:o}},it(e.title)),ue.default.createElement("div",{className:"text-sm",style:{color:t.textCell}},ue.default.createElement(_o,{text:it(e.body),darkMode:r,onUiAction:n})))}function ese({block:e,colors:t,darkMode:r}){return ue.default.createElement("div",null,e.language!=null&&ue.default.createElement("div",{className:"text-xs font-mono mb-1",style:{color:t.textMuted}},it(e.language)),ue.default.createElement("pre",{style:DE(r)},it(e.code)))}function _7({block:e,colors:t,darkMode:r,onAction:n}){let a=e.text??e.body??e.content??e.markdown;return ue.default.createElement("div",{className:"text-sm",style:{color:t.textCell}},ue.default.createElement(_o,{text:it(a),darkMode:r,onUiAction:n}))}var tse=3;function E1({value:e,colors:t,darkMode:r,depth:n}){if(e==null||typeof e!="object")return typeof e=="boolean"?ue.default.createElement("span",{className:"font-mono"},String(e)):typeof e=="number"?ue.default.createElement("span",{style:{fontVariantNumeric:"tabular-nums"}},e.toLocaleString()):ue.default.createElement("span",null,it(e));if(n>=tse)return ue.default.createElement("pre",{style:{...DE(r),maxHeight:"160px",overflowY:"auto"}},JSON.stringify(e,null,2));if(Array.isArray(e)){if(e.length===0)return ue.default.createElement("span",{style:{color:t.textMuted}},"\u2014");if(e.every(Lf)){let o=[...new Set(e.flatMap(i=>Object.keys(i)))];return ue.default.createElement(P7,{columns:o,rows:e.map(i=>o.map(l=>i[l])),colors:t,renderCell:i=>ue.default.createElement(E1,{value:i,colors:t,darkMode:r,depth:n+1})})}return e.every(o=>o==null||typeof o!="object")?ue.default.createElement("span",null,e.map(it).join(", ")):ue.default.createElement("ul",{className:"list-disc pl-5 space-y-0.5"},e.map((o,i)=>ue.default.createElement("li",{key:i},ue.default.createElement(E1,{value:o,colors:t,darkMode:r,depth:n+1}))))}let a=Object.entries(e);return a.length===0?ue.default.createElement("span",{style:{color:t.textMuted}},"{}"):ue.default.createElement("table",{className:"text-sm",style:{borderCollapse:"collapse",width:n===0?"100%":"auto"}},ue.default.createElement("tbody",null,a.map(([o,i])=>ue.default.createElement("tr",{key:o},ue.default.createElement("th",{scope:"row",className:"font-mono text-xs",style:{...ME(t,!1),color:t.textSecondary,fontWeight:500,whiteSpace:"nowrap",width:"1%"}},o),ue.default.createElement("td",{style:ME(t,!1)},ue.default.createElement(E1,{value:i,colors:t,darkMode:r,depth:n+1}))))))}function rse({block:e,colors:t,darkMode:r}){let n="value"in e?e.value:e.data;return ue.default.createElement("div",{style:{border:`1px solid ${t.cardBorder}`,borderRadius:"10px",overflow:"hidden"}},e.title!=null&&ue.default.createElement("div",{className:"px-3 pt-2",style:Bf(t)},it(e.title)),ue.default.createElement("div",{className:"px-1 pb-1",style:{overflowX:"auto"}},ue.default.createElement(E1,{value:n,colors:t,darkMode:r,depth:0})))}var nse={card:$le,stat:M7,stats:Ule,table:Wle,chart:Kle,list:qle,progress:Yle,form:Xle,choices:Zle,image:Jle,callout:Rle,code:ese,object:rse,text:_7,markdown:_7};function hs({blocks:e,onAction:t,darkMode:r=!1}){let n=Array.isArray(e)?e.filter(Lf):[];if(n.length===0)return null;let a=Fa(r);return ue.default.createElement("div",{className:"space-y-3",onClick:o=>o.stopPropagation()},n.map((o,i)=>{let l=typeof o.type=="string"?o.type.toLowerCase():"unknown",s=PE(nse,l);return ue.default.createElement("div",{key:i,"data-testid":"genui-block","data-block-type":l},s?ue.default.createElement(s,{block:o,colors:a,darkMode:r,onAction:t}):ue.default.createElement(tl,{block:o,colors:a,darkMode:r}))}))}var ase=/(\*\*[^*]+\*\*|\*[^*\n]+\*|`[^`]+`|\[[^\]]+\]\((?:https?:\/\/|\/)[^)\s]+\))/g,Hv=(e,t)=>e.split(ase).filter(Boolean).map((r,n)=>{let a=`${t}-${n}`;if(r.startsWith("**")&&r.endsWith("**"))return Nr.default.createElement("strong",{key:a},r.slice(2,-2));if(r.startsWith("*")&&r.endsWith("*")&&r.length>2)return Nr.default.createElement("em",{key:a},r.slice(1,-1));if(r.startsWith("`")&&r.endsWith("`"))return Nr.default.createElement("code",{key:a,className:"px-1 py-0.5 rounded text-[0.9em]",style:{background:"rgba(127,127,127,0.15)"}},r.slice(1,-1));let o=r.match(/^\[([^\]]+)\]\(((?:https?:\/\/|\/)[^)\s]+)\)$/);return o?Nr.default.createElement("a",{key:a,href:o[2],target:"_blank",rel:"noopener noreferrer",className:"underline text-blue-500"},o[1]):r}),D7=e=>/^\s*\|.*\|\s*$/.test(e),ose=e=>/^\s*\|(\s*:?-+:?\s*\|)+\s*$/.test(e),I7=e=>e.trim().replace(/^\|/,"").replace(/\|$/,"").split(/(?t.replace(/\\\|/g,"|").trim());function _o({text:e,onUiAction:t,darkMode:r}){if(!e)return null;let n=[],a=String(e).split(` +`),o=0,i=0;for(;oNr.default.createElement("th",{key:p,className:"text-left font-semibold px-2 py-1",style:{borderBottom:"1px solid rgba(127,127,127,0.35)"}},Hv(f,`th${d}-${p}`))))),Nr.default.createElement("tbody",null,c.map((f,p)=>Nr.default.createElement("tr",{key:p},u.map((m,y)=>Nr.default.createElement("td",{key:y,className:"px-2 py-1 align-top",style:{borderBottom:"1px solid rgba(127,127,127,0.15)"}},Hv(f[y]??"",`td${d}-${p}-${y}`)))))))));continue}if(/^\s*([-*]|\d+\.)\s+/.test(l)){let u=[];for(;oNr.default.createElement("li",{key:d},Hv(c,`li${i}-${d}`)))));continue}if(l.trim()===""){n.push(Nr.default.createElement("div",{key:i++,className:"h-2"})),o+=1;continue}n.push(Nr.default.createElement("div",{key:i++},Hv(l,`p${i}`))),o+=1}return Nr.default.createElement("div",{className:"break-words"},n)}var na=te(ne()),ise=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"},lse=e=>Array.isArray(e.parameters)?e.parameters:e.parameters&&typeof e.parameters=="object"?Object.keys(e.parameters.properties||e.parameters):[];function IE({tool:e,darkMode:t}){let r=lse(e);return na.default.createElement("div",{style:{display:"grid",gap:"4px"}},e.description&&na.default.createElement("div",{className:"text-sm",style:{color:t?"rgba(255,255,255,0.75)":"#4b5563"}},e.description),na.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"}},na.default.createElement("span",null,"params: ",r.length>0?r.join(", "):"none"),na.default.createElement("span",null,"source: ",ise(e))))}function jE({tools:e,darkMode:t}){let[r,n]=(0,na.useState)(null),a=(e||[]).filter(l=>l&&l.name);if(a.length===0)return null;let o=a.find(l=>l.name===r),i=l=>({background:t?"rgba(34,197,94,0.12)":"#f0fdf4",color:t?"#86efac":"#15803d",border:`1px solid ${l?t?"#4ade80":"#22c55e":"transparent"}`,borderRadius:"6px",padding:"2px 8px",fontSize:"11px",cursor:"pointer"});return na.default.createElement("div",{style:{marginTop:"8px"}},na.default.createElement("div",{className:"flex items-center gap-1.5 flex-wrap font-mono"},na.default.createElement("span",{className:"text-xs uppercase",style:{letterSpacing:"0.05em",color:t?"rgba(255,255,255,0.45)":"#9ca3af"}},"tools"),a.map(l=>na.default.createElement("button",{key:l.name,onClick:s=>{s.stopPropagation(),n(r===l.name?null:l.name)},title:r===l.name?"Hide definition":"Show definition",style:i(r===l.name)},"\u2699 ",l.name))),o&&na.default.createElement("div",{onClick:l=>l.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"}`}},na.default.createElement(IE,{tool:o,darkMode:t})))}var sse=["application/json","application/xml","application/x-yaml","application/csv"],use=/\.(csv|md|txt|json|ya?ml)$/i;function j7(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/")||sse.includes(t)||use.test(r)?"text":"file"}function z7(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 L7(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 B7=e=>e==null?null:e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(2)}s`,Vv=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}},cse=["text","output","body","content"],$7=e=>{if(e==null)return null;if(typeof e=="object")return e;try{return JSON.parse(e)}catch{return null}},dse=e=>{let t=$7(e.tool_result)??$7(e.content);if(!t||typeof t!="object"||Array.isArray(t))return null;let r=cse.find(o=>typeof t[o]=="string"&&t[o].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 "),a=Object.fromEntries(Object.entries(t).filter(([o])=>o!==r));return{field:r,meta:n,body:t[r],rest:a}},fse=e=>!!(e.tool_name||e.tool_call_id||e.tool_arguments||e.tool_result||(e.tool_calls||[]).length>0||e.duration_ms!=null||Vv(e.content)),W7=280,pse=["tool","system","developer"],Kv=(e,t=W7)=>e.replace(/\s+/g," ").trim().slice(0,t),zE=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)}},H7=e=>{let t=e.tool_calls;return t?Array.isArray(t)?t.map(r=>({name:r.function?.name||r.name||e.tool_name,args:zE(r.function?.arguments??r.arguments??r.input)})):[{name:e.tool_name,args:zE(t)}]:[]},V7=e=>!!(e&&String(e).trim()&&String(e).trim()!=="\u2014"),mse=e=>{let t=(e||[]).filter(Boolean),r=new Map,n=new Set;return t.forEach((a,o)=>{if(a.role!=="assistant"||V7(a.content))return;let i=H7(a);if(i.length===0)return;let l=new Set;Array.isArray(a.tool_calls)?a.tool_calls.forEach(u=>u.id&&l.add(u.id)):a.tool_call_id&&l.add(a.tool_call_id);let s=[];for(let u=o+1;u0&&c.tool_call_id&&!l.has(c.tool_call_id))break;s.push(u)}s.length!==0&&(s.forEach((u,c)=>{let d=t[u],f=i.find(p=>p.name&&p.name===d.tool_name)||i[Math.min(c,i.length-1)];f&&f.args&&!d.tool_arguments&&r.set(u,{tool_arguments:f.args,created_at:a.created_at||d.created_at})}),n.add(o))}),t.map((a,o)=>r.has(o)?{...a,...r.get(o)}:a).filter((a,o)=>!n.has(o))},U7=e=>pse.includes(e.role)&&typeof e.content=="string"&&Kv(e.content).length>=W7,vse=({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),a=Math.max(e.span_duration_ms/r*100,2),o=e.role==="tool"?"#22c55e":e.role==="assistant"?"#ef4444":"#60a5fa";return Se.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"}},Se.default.createElement("span",{style:{position:"absolute",top:0,bottom:0,left:`${n}%`,width:`${Math.min(a,100-n)}%`,borderRadius:"999px",background:o}}))},_1=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}),gr=(e,t)=>{switch(e){case"user":return t?{background:"rgba(59,130,246,0.15)",color:"#93c5fd",label:"User"}:{background:"#eff6ff",color:"#1d4ed8",label:"User"};case"assistant":return t?{background:"rgba(239,68,68,0.12)",color:"#fca5a5",label:"Assistant"}:{background:"#fef2f2",color:"#b91c1c",label:"Assistant"};case"tool":return t?{background:"rgba(245,158,11,0.12)",color:"#fcd34d",label:"Tool"}:{background:"#fffbeb",color:"#b45309",label:"Tool"};case"system":return t?{background:"rgba(139,92,246,0.15)",color:"#c4b5fd",label:"System"}:{background:"#f5f3ff",color:"#6d28d9",label:"System"};case"developer":return t?{background:"rgba(20,184,166,0.15)",color:"#5eead4",label:"Dev"}:{background:"#f0fdfa",color:"#0f766e",label:"Dev"};default:return t?{background:"rgba(255,255,255,0.08)",color:"rgba(255,255,255,0.7)",label:e}:{background:"#f3f4f6",color:"#374151",label:e}}},F7={image:"IMG",document:"PDF",text:"TXT",file:"FILE"};function O1({attachments:e,darkMode:t,testId:r,onRemove:n,removeTestId:a}){let o=(e||[]).filter(Boolean);if(o.length===0)return null;let i=Fa(t);return Se.default.createElement("div",{className:"flex flex-wrap gap-2 mt-1.5"},o.map((l,s)=>{let u=String(l.content_type||""),c=(l.kind==="image"||u.startsWith("image/"))&&L7(l.url),d=z7(l.byte_size);return Se.default.createElement("span",{key:l.id??`${l.filename}-${s}`,"data-testid":r,title:[l.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?Se.default.createElement("img",{src:l.url,alt:l.filename||"",style:{width:"36px",height:"36px",objectFit:"cover",borderRadius:"4px",flexShrink:0}}):Se.default.createElement("span",{className:"font-mono",style:{color:i.textMuted,flexShrink:0}},F7[l.kind]||F7.file),Se.default.createElement("span",{className:"min-w-0"},Se.default.createElement("span",{className:"block truncate"},l.filename||"attachment"),d&&Se.default.createElement("span",{className:"block font-mono",style:{color:i.textMuted}},d)),n&&Se.default.createElement("button",{type:"button","data-testid":a,onClick:f=>{f.stopPropagation(),n(l,s)},title:"Remove","aria-label":`Remove ${l.filename||"attachment"}`,className:"font-mono",style:{color:i.textMuted,background:"none",border:"none",cursor:"pointer",padding:"0 2px"}},"\u2715"))}))}var K7=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},gse=(e,t)=>{let r=zf(e);if(r)return r;let n=t.find(a=>a&&a.role==="assistant"&&(e.tool_call_id?K7(a).has(e.tool_call_id):zf(a)));return n?zf(n,{callId:e.tool_call_id}):null},yse=(e,t)=>{let r=K7(e);return t.some(n=>n&&n.role==="tool"&&n.tool_name===qu&&(!n.tool_call_id||r.size===0||r.has(n.tool_call_id)))};function so({messages:e,darkMode:t,tools:r,onUiAction:n,onEditMessage:a,onDeleteMessage:o,testIdPrefix:i}){let[l,s]=(0,Se.useState)({}),[u,c]=(0,Se.useState)(null),[d,f]=(0,Se.useState)(""),[p,m]=(0,Se.useState)(!1),[y,h]=(0,Se.useState)(null),v=A=>s(M=>({...M,[A]:!M[A]})),g={textPrimary:t?"#ffffff":"#111827",textSecondary:t?"rgba(255,255,255,0.6)":"#6b7280",textMuted:t?"rgba(255,255,255,0.4)":"#9ca3af"},b=A=>i?`${i}-${A}`:void 0,x=A=>A.stopPropagation(),S=A=>{c(A.id),f(A.content||""),h(null)},w=()=>{c(null),h(null)},O=async A=>{if(!p){m(!0),h(null);try{await a(A,d),c(null)}catch(M){h(M.message||"Could not save the message")}finally{m(!1)}}},k=mse(e);return Se.default.createElement("div",{className:"space-y-3"},k.map(A=>{let M=gr(A.role,t),W=!!l[A.id],L=u===A.id,H=!!((a||o)&&["user","assistant"].includes(A.role)),D=A.role==="tool"&&A.tool_name===qu?gse(A,k):null,Y=A.role==="assistant"&&!L?_E(A.content):null,N=A.role==="assistant"&&!yse(A,k)?zf(A):null,_=U7(A)&&!W,z=fse(A)||U7(A),j=Vv(A.tool_arguments),P=Vv(A.tool_result)||Vv(A.content),B=A.tool_calls&&(!Array.isArray(A.tool_calls)||A.tool_calls.length>0)?Vv(A.tool_calls):null,R=A.role==="tool"?dse(A):null,F=A.tool_name?(r||[]).find(K=>K&&K.name===A.tool_name):null,G=A.role==="tool"?zE(A.tool_arguments):null,ee=A.role==="tool"&&!!G,fe=gr("assistant",t),de=gr("tool",t),De=A.role==="tool"&&!A.tool_arguments&&k.some(K=>K&&K.role==="assistant"&&(A.tool_call_id&&K.tool_call_id===A.tool_call_id||Array.isArray(K.tool_calls)&&K.tool_calls.some(I=>I.id&&I.id===A.tool_call_id))),le=A.role==="assistant"&&!V7(A.content)?H7(A):[],Te=_1(t);return Se.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},Se.default.createElement("div",{className:`flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 ${z?"cursor-pointer":""}`,onClick:z?()=>v(A.id):void 0,style:W?{background:t?"rgba(255,255,255,0.04)":"rgba(0,0,0,0.03)"}:{}},Se.default.createElement("span",{className:"flex flex-col gap-1 flex-shrink-0 mt-0.5",style:{minWidth:"72px"}},(ee?[fe,de]:[M]).map(K=>Se.default.createElement("span",{key:K.label,className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:K.background,color:K.color,textAlign:"center"}},K.label))),Se.default.createElement("div",{className:"min-w-0 flex-1"},Se.default.createElement("div",{className:"text-sm break-words",style:{color:g.textPrimary}},L?Se.default.createElement("div",{className:"space-y-2",onClick:x},Se.default.createElement("textarea",{"data-testid":b("editor"),value:d,onChange:K=>f(K.target.value),onKeyDown:K=>{K.key==="Escape"&&w(),K.key==="Enter"&&(K.metaKey||K.ctrlKey)&&O(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:g.textPrimary,fontFamily:"inherit",fontSize:"13px",resize:"vertical"}}),Se.default.createElement("div",{className:"flex items-center gap-2 text-xs"},Se.default.createElement("button",{type:"button","data-testid":b("save"),onClick:()=>O(A),disabled:p,style:{padding:"4px 10px",borderRadius:"6px",background:"#ef4444",color:"#ffffff",border:"none",cursor:p?"wait":"pointer",fontWeight:500}},p?"Saving\u2026":"Save"),Se.default.createElement("button",{type:"button","data-testid":b("cancel"),onClick:w,disabled:p,style:{padding:"4px 10px",borderRadius:"6px",background:"transparent",color:g.textSecondary,border:`1px solid ${t?"rgba(255,255,255,0.2)":"#d1d5db"}`,cursor:"pointer"}},"Cancel"),y&&Se.default.createElement("span",{style:{color:"#dc2626"}},y))):D?Se.default.createElement("div",null,Se.default.createElement("div",{className:"font-mono text-xs mb-1",style:{color:de.color}},"\u2699 ",A.tool_name," \xB7 ",D.length," block",D.length===1?"":"s"),Se.default.createElement(hs,{blocks:D,onAction:n,darkMode:t})):A.role==="tool"?Se.default.createElement("span",{style:{display:"grid",gap:"2px"}},G&&!De&&Se.default.createElement("span",{className:"font-mono text-xs break-words"},A.tool_name&&Se.default.createElement("span",{style:{color:de.color}},"\u2699 ",A.tool_name," "),Se.default.createElement("span",{style:{color:ee?fe.color:g.textMuted}},"in:")," ",Kv(G,180),G.length>180?"\u2026":""),R?Se.default.createElement("span",null,A.tool_name&&!(G&&!De)&&Se.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:de.color}},"\u2699 ",A.tool_name),(G||De)&&Se.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:ee?de.color:g.textMuted}},"out:"),R.meta&&Se.default.createElement("span",{className:"font-mono text-xs mr-2",style:{color:g.textMuted}},R.meta),"\u201C",R.body.replace(/\s+/g," ").trim().slice(0,180),R.body.length>180?"\u2026":"","\u201D"):A.content?Se.default.createElement("span",null,A.tool_name&&!(G&&!De)&&Se.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:de.color}},"\u2699 ",A.tool_name),(G||De)&&Se.default.createElement("span",{className:"font-mono text-xs mr-1",style:{color:ee?de.color:g.textMuted}},"out:"),"\u201C",Kv(A.content,180),A.content.replace(/\s+/g," ").trim().length>180?"\u2026":"","\u201D"):Se.default.createElement("span",{className:"whitespace-pre-wrap"},A.tool_name?`\u2192 ${A.tool_name}(...)`:"\u2014")):_?Se.default.createElement("span",{style:{color:g.textSecondary}},Kv(A.content),"\u2026"):le.length>0?Se.default.createElement("span",{style:{display:"grid",gap:"2px"}},le.map((K,I)=>Se.default.createElement("span",{key:I,className:"font-mono text-xs break-words"},K.name&&Se.default.createElement("span",{style:{color:g.textMuted}},K.name," "),Se.default.createElement("span",{style:{color:g.textMuted}},"in:")," ",K.args?Se.default.createElement(Se.default.Fragment,null,Kv(K.args,180),K.args.length>180?"\u2026":""):"\u2014"))):Y&&Y.blocks?Se.default.createElement(hs,{blocks:Y.blocks,onAction:n,darkMode:t}):Y&&Y.object?Se.default.createElement(hs,{blocks:[{type:"object",value:Y.object}],darkMode:t}):Se.default.createElement(_o,{text:A.content||"\u2014",darkMode:t,onUiAction:n}),N&&!L&&Se.default.createElement("div",{className:"mt-2"},Se.default.createElement(hs,{blocks:N,onAction:n,darkMode:t})),A.role==="user"&&Se.default.createElement(O1,{attachments:A.attachments,darkMode:t,testId:b("attachment")})),Se.default.createElement("div",{className:"text-xs mt-0.5 font-mono flex items-center gap-2 flex-wrap",style:{color:g.textMuted}},H&&!L&&Se.default.createElement("span",{className:"flex items-center gap-2 opacity-0 group-hover:opacity-100 focus-within:opacity-100 transition-opacity",onClick:x},a&&Se.default.createElement("button",{type:"button","data-testid":b("edit"),onClick:()=>S(A),className:"hover:underline",style:{color:g.textSecondary,background:"none",border:"none",padding:0,cursor:"pointer",font:"inherit"}},"Edit"),o&&Se.default.createElement("button",{type:"button","data-testid":b("delete"),onClick:()=>o(A),className:"hover:underline",style:{color:"#dc2626",background:"none",border:"none",padding:0,cursor:"pointer",font:"inherit"}},"Delete")),A.created_at&&Se.default.createElement("span",null,new Date(A.created_at).toLocaleTimeString()),A.tool_name&&A.role!=="tool"&&Se.default.createElement("span",{className:"px-1.5 py-0.5 rounded",style:{background:M.background,color:M.color}},"\u2699 ",A.tool_name),A.duration_ms!=null&&Se.default.createElement("span",null,B7(A.duration_ms)),(A.tool_calls||[]).length>0&&Se.default.createElement("span",null,A.tool_calls.length," tool call",A.tool_calls.length>1?"s":""),A.content_checksum&&Se.default.createElement("span",{title:"Content fingerprint"},"\u{1F512} ",A.content_checksum.slice(0,8)))),Se.default.createElement(vse,{message:A,darkMode:t}),z&&Se.default.createElement("svg",{className:`w-3.5 h-3.5 mt-1 flex-shrink-0 transition-transform ${W?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",style:{color:g.textMuted}},Se.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))),W&&Se.default.createElement("div",{className:"ml-3 mt-1 mb-2 pl-4 space-y-2 border-l-2",style:{borderColor:M.color+"55"}},Se.default.createElement("div",{className:"flex flex-wrap gap-x-5 gap-y-1 text-xs font-mono",style:{color:g.textSecondary}},A.created_at&&Se.default.createElement("span",null,new Date(A.created_at).toLocaleString()),A.tool_call_id&&Se.default.createElement("span",null,"call: ",A.tool_call_id),A.duration_ms!=null&&Se.default.createElement("span",null,"took ",B7(A.duration_ms)),A.content_checksum&&Se.default.createElement("span",null,"\u{1F512} ",A.content_checksum)),j&&Se.default.createElement("div",null,Se.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:ee?fe.color:g.textMuted}},"Arguments",ee?" \xB7 from the agent":""),Se.default.createElement("pre",{style:Te},j)),R?Se.default.createElement("div",null,Se.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:ee?de.color:g.textMuted}},"Result",ee?" \xB7 from the tool":""),Object.keys(R.rest).length>0&&Se.default.createElement("pre",{style:Te},JSON.stringify(R.rest,null,2)),Se.default.createElement("div",{className:"text-xs uppercase tracking-wide mt-2 mb-1",style:{color:g.textMuted}},R.field," \xB7 ",R.body.length.toLocaleString()," chars"),Se.default.createElement("pre",{style:{...Te,whiteSpace:"pre-wrap",maxHeight:"320px",overflowY:"auto"}},R.body.slice(0,8e3),R.body.length>8e3?` +\u2026`:"")):P?Se.default.createElement("div",null,Se.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:g.textMuted}},A.role==="tool"?"Result":"Content (parsed)"),Se.default.createElement("pre",{style:Te},P)):A.role==="tool"&&A.content?Se.default.createElement("div",null,Se.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:ee?de.color:g.textMuted}},"Result",ee?" \xB7 from the tool":""," \xB7 ",A.content.length.toLocaleString()," chars"),Se.default.createElement("pre",{style:{...Te,whiteSpace:"pre-wrap",maxHeight:"320px",overflowY:"auto"}},A.content.slice(0,8e3),A.content.length>8e3?` +\u2026`:"")):null,B&&Se.default.createElement("div",null,Se.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:g.textMuted}},"Requested tool calls"),Se.default.createElement("pre",{style:Te},B)),F&&Se.default.createElement("div",null,Se.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:g.textMuted}},"Tool definition"),Se.default.createElement(IE,{tool:F,darkMode:t}))))}))}var st=te(ne());var Cr=te(ne());var Ir=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"}),q7=(e,t=200)=>{let r=String(e??"").replace(/\s+/g," ").trim();return r.length>t?`${r.slice(0,t)}\u2026`:r};function Gu({open:e,darkMode:t,size:r=14,style:n}){return Cr.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:Ir(t).textMuted,...n},"aria-hidden":"true"},Cr.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))}function T1({darkMode:e,id:t,children:r,style:n,className:a=""}){let o=Ir(e);return Cr.default.createElement("div",{id:t,className:`rounded-xl border overflow-hidden transition-colors ${a}`,style:{backgroundColor:o.cardBg,borderColor:o.cardBorder,...n}},r)}var Y7=(e,{wrap:t=!0,maxHeight:r=320}={})=>({background:Ir(e).preBg,borderRadius:"6px",padding:"6px 8px",margin:"2px 0 4px 0",overflowX:"auto",overflowY:"auto",maxHeight:`${r}px`,whiteSpace:t?"pre-wrap":"pre"}),hse=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 $f({lines:e,darkMode:t,onClick:r,indent:n=0,size:a="12px",style:o,max:i=200}){let[l,s]=Uf(),u=Ir(t),c=(e||[]).filter(d=>d&&d.text);return c.length===0?null:Cr.default.createElement("div",{onClick:r,className:"min-w-0",style:{display:"grid",gap:"2px",paddingLeft:n?`${n}px`:0,fontFamily:Fe.mono,fontSize:a,color:u.textSecondary,cursor:r?"pointer":"default",...o}},c.map((d,f)=>{let p=`${d.label}-${f}`,m=l(p),y=d.max||i,h=String(d.text).replace(/\s+/g," ").trim(),v=hse(d.text),g=v.json||h.length>60||h!==String(d.text).trim();return Cr.default.createElement("div",{key:p},Cr.default.createElement("div",{onClick:g?b=>{b.stopPropagation(),s(p)}:void 0,title:g?m?"Collapse":"Expand":void 0,style:{cursor:g?"pointer":"default",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0}},Cr.default.createElement("span",{style:{color:d.color||u.textMuted}},g?m?"\u25BE":"\u25B8":"\xA0"," ",d.label,":")," ",!m&&q7(h,y)),m&&Cr.default.createElement("pre",{onClick:b=>b.stopPropagation(),style:Y7(t,{wrap:!v.json})},v.text))}))}function qv({options:e,value:t,onChange:r,darkMode:n,label:a,style:o}){let i=Ir(n);return Cr.default.createElement("div",{className:"flex items-center gap-1 flex-shrink-0",style:o},a&&Cr.default.createElement("span",{className:"text-xs mr-1",style:{color:i.textMuted}},a),e.map(l=>Cr.default.createElement("button",{key:l.id,type:"button",onClick:s=>{s.stopPropagation(),r(l.id)},title:l.hint,className:"px-2 py-0.5 text-xs rounded transition-colors",style:t===l.id?{background:i.controlActiveBg,color:i.textPrimary,boxShadow:n?"none":"0 1px 2px rgba(0,0,0,0.08)"}:{color:i.textSecondary}},l.label)))}function G7({label:e,body:t,open:r,onToggle:n,darkMode:a,prose:o=!1,max:i=140}){let l=Ir(a);return Cr.default.createElement("div",null,Cr.default.createElement("div",{onClick:s=>{s.stopPropagation(),n()},title:r?"Collapse":"Expand",style:{cursor:"pointer",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},Cr.default.createElement("span",{style:{color:l.textMuted}},r?"\u25BE":"\u25B8"," ",e,":")," ",!r&&Cr.default.createElement("span",{style:{color:l.textMuted}},q7(t,i))),r&&Cr.default.createElement("pre",{onClick:s=>s.stopPropagation(),style:Y7(a,{wrap:o})},t))}function Uf(e={}){let[t,r]=(0,Cr.useState)(e),n=(0,Cr.useCallback)(o=>{r(i=>({...i,[o]:!i[o]}))},[]);return[(0,Cr.useCallback)(o=>!!t[o],[t]),n,r]}var LE={root:"#9ca3af",prompt:"#60a5fa",generate:"#a855f7",llm:"#ef4444",thinking:"#fbbf24",tool:"#22c55e",response:"#2dd4bf",embedding:"#818cf8"},Z7=[{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"}],Er=e=>e==null?"\u2014":e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(2)}s`,BE=e=>{switch(e){case"root":return Ut.spans.root;case"prompt":return Ut.spans.prompt;case"generate":return Ut.spans.generate;case"llm":return Ut.spans.llm;case"thinking":return Ut.spans.thinking;case"tool":return Ut.spans.tool;case"response":return Ut.spans.response;default:return"-"}},xse=(e,t)=>{let r=Math.max(e||0,1),n=Math.max(t||1,1);if(n<=1)return 100;let a=Math.log(r)/Math.log(n);return Math.min(100,Math.max(4,a*100))},bse=(e,t)=>{let r=[...e||[]];switch(t){case"duration":return r.sort((n,a)=>(a.duration||0)-(n.duration||0));case"name":return r.sort((n,a)=>(n.name||"").localeCompare(a.name||""));default:return r.sort((n,a)=>(n.start||0)-(a.start||0))}},wse=e=>{let t=e.tokens||{};return(t.input||0)+(t.output||0)+(t.thinking||0)},Sse=(e,t)=>{if(!t.duration_ms)return Er(e.duration);let r=(e.duration||0)/t.duration_ms*100;return`${Er(e.duration)} \xB7 ${r<1?r.toFixed(2):r.toFixed(1)}%`},Ase=e=>{if(typeof e!="string")return null;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return null}},X7=e=>e.endsWith(".instructions")?0:e.endsWith(".tools")?1:e.endsWith(".messages")?3:2,$E=e=>{let t=e.spans||[],r=o=>{for(let i of t){let l=(i.attributes||{})[o];if(l)return l}return null},n=r("llm.prompt");if(!n){let o=r("prompt.input.messages");if(o)try{n=[...JSON.parse(o)].reverse().find(s=>s&&s.role==="user"&&s.content)?.content}catch{}}let a=r("llm.completion")||r("llm.output.message");return{input:n,output:a}},kse=e=>{let t=e.attributes||{},r=null,n="input",a="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 s=t["tool.input.args"]||t["tool.arguments"];r=typeof s=="string"?s:JSON.stringify(s),n="in",a="assistant"}let o=null,i="output",l="assistant";return t["llm.output.message"]||t["llm.completion"]?o=t["llm.output.message"]||t["llm.completion"]:(t["tool.output.result"]||t["tool.result"])&&(o=t["tool.output.result"]||t["tool.result"],i="out",l="tool"),o!=null&&typeof o!="string"&&(o=JSON.stringify(o)),{input:r,output:o,inputLabel:n,inputTone:a,outputLabel:i,outputTone:l}},Nse=(e,t)=>{let r=kse(e),n=$E(t);return r.input&&r.input===n.input&&(r.input=null),r.output&&r.output===n.output&&(r.output=null),r},Cse=e=>{let t={...e.attributes||{}},r=f=>{let p=t[f];return delete t[f],p},n=[],a=f=>n.push({id:`${e.span_id}-m${n.length}`,...f}),o=r("prompt.input.instructions")||r("llm.instructions");o&&a({role:"system",content:String(o)});let i=r("prompt.input.messages");if(i)try{JSON.parse(i).forEach(f=>{f&&a({role:f.role||"user",content:typeof f.content=="string"?f.content:JSON.stringify(f.content),tool_call_id:f.tool_call_id,tool_calls:f.tool_calls})})}catch{t["prompt.input.messages"]=i}let l=r("llm.prompt");l&&a({role:"user",content:String(l)});let s=r("tool.input.args")||r("tool.arguments"),u=r("tool.output.result")||r("tool.result");if(s||u){let f=r("tool.name");a({role:"tool",tool_name:f||(e.name||"").replace(/^tool\./,""),tool_arguments:s,content:u?String(u):null})}let c=r("llm.completion"),d=r("llm.output.message");return(c||d)&&a({role:"assistant",content:String(c||d)}),{messages:n,rest:t}},UE=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 Ese({span:e,darkMode:t,tools:r=[]}){let[n,a]=Uf(),o=Ir(t),{messages:i,rest:l}=Cse(e),s=null,u=l["prompt.input.tools"];if(u)try{let p=typeof u=="string"?JSON.parse(u):u;Array.isArray(p)&&p.length>0&&(s=p,delete l["prompt.input.tools"])}catch{}let c=Object.entries(l).sort((p,m)=>X7(p[0])-X7(m[0])),d=i.length===1&&i[0].role==="tool"?i[0]:null,f=d?.tool_arguments==null?null:typeof d.tool_arguments=="string"?d.tool_arguments:JSON.stringify(d.tool_arguments);return st.default.createElement("div",{onClick:p=>p.stopPropagation(),style:{margin:"4px 0 8px 0",padding:"10px 12px",borderRadius:"8px",background:o.panelBg,border:`1px solid ${o.cardBorder}`,fontFamily:Fe.mono,fontSize:"12px",color:o.textBody,cursor:"default"}},st.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 20px"}},st.default.createElement("span",null,"duration: ",Er(e.duration)),st.default.createElement("span",null,"status: ",e.status||"OK"),wse(e)>0&&st.default.createElement("span",null,"tokens in:",e.tokens.input||0," out:",e.tokens.output||0,e.tokens.thinking>0?` thinking:${e.tokens.thinking}`:""),st.default.createElement("span",{style:{color:o.textMuted}},"span: ",e.span_id)),d&&st.default.createElement("div",{style:{marginTop:"8px",display:"grid",gap:"4px"}},st.default.createElement("div",{style:{fontSize:"12px",wordBreak:"break-all"}},st.default.createElement("span",{style:{color:gr("tool",t).color}},"\u2699 ",d.tool_name),f&&st.default.createElement(st.default.Fragment,null," ",st.default.createElement("span",{style:{color:gr("assistant",t).color}},"in:")," ",st.default.createElement("span",{style:{color:o.textBody}},f))),d.content&&st.default.createElement("div",{style:{fontSize:"12px"}},st.default.createElement("span",{style:{color:gr("tool",t).color}},"out:")," ",st.default.createElement("span",{style:{color:o.textBody,whiteSpace:"pre-wrap",display:"inline-block",maxHeight:"240px",overflowY:"auto",verticalAlign:"top",maxWidth:"100%"}},d.content))),i.length>0&&!d&&st.default.createElement("div",{style:{marginTop:"10px",fontFamily:"ui-sans-serif, system-ui, sans-serif"}},st.default.createElement(so,{messages:i,darkMode:t,tools:s||r})),s&&st.default.createElement(jE,{tools:s,darkMode:t}),c.length>0&&st.default.createElement("div",{style:{marginTop:"6px",display:"grid",gap:"2px"}},c.map(([p,m])=>{let y=p.match(/args|result|input|output/)?Ase(m):null,h=!y&&(p.endsWith(".instructions")||p.match(/input|output|result/))&&typeof m=="string"?m:null,v=y||h;if(!v)return st.default.createElement("div",{key:p,style:{wordBreak:"break-all"}},st.default.createElement("span",{style:{color:o.textMuted}},p,":")," ",typeof m=="string"?m:JSON.stringify(m));let g=`${e.span_id}:${p}`;return st.default.createElement(G7,{key:p,label:p,body:v,prose:!y,darkMode:t,open:n(g),onToggle:()=>a(g)})})))}function _se({span:e,trace:t,darkMode:r,sort:n,longest:a,expanded:o,onToggle:i,tools:l}){let s=Ir(r),u=Object.keys(e.attributes||{}).length>0,c=o?null:Nse(e,t);return st.default.createElement(st.default.Fragment,null,st.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:o?s.hoverBg:void 0},onClick:u?()=>i():void 0,title:u?`${e.name} \u2014 click for span details`:e.name},st.default.createElement("div",{className:"flex items-baseline gap-2 min-w-0"},st.default.createElement("span",{className:"flex-shrink-0",style:{color:e.type==="thinking"?void 0:s.textMuted}},BE(e.type)),st.default.createElement("span",{className:"text-sm font-medium truncate",style:{color:e.error?s.bad:s.textPrimary}},e.name),st.default.createElement("span",{className:"text-xs ml-auto flex-shrink-0",style:{fontFamily:Fe.mono,color:s.textMuted}},Sse(e,t)),u&&st.default.createElement(Gu,{open:o,darkMode:r,size:13,style:{marginLeft:"2px"}})),st.default.createElement("div",{className:"h-3 relative rounded mt-0.5",style:{background:s.trackBg}},st.default.createElement("div",{className:"absolute h-3 rounded",style:{background:e.error?"#f87171":LE[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}%`:`${xse(e.duration,a)}%`}})),c&&st.default.createElement($f,{darkMode:r,size:"11px",style:{marginTop:"2px"},lines:[{label:c.inputLabel,text:c.input,color:gr(c.inputTone,r).color,max:160},{label:c.outputLabel,text:c.output,color:gr(c.outputTone,r).color,max:160}]})),o&&st.default.createElement(Ese,{span:e,darkMode:r,tools:l}))}function FE({trace:e,darkMode:t,sort:r="time",tools:n,keyPrefix:a=""}){let[o,i]=Uf(),l=Ir(t),s=bse(e?.spans,r),u=n||UE(e);if(s.length===0)return st.default.createElement("div",{className:"text-sm py-2",style:{color:l.textMuted}},"No spans recorded for this trace.");let c=Math.max(...s.map(d=>d.duration||0),1);return st.default.createElement("div",{className:"space-y-2"},s.map((d,f)=>{let p=`${a}${d.span_id||f}`;return st.default.createElement(_se,{key:p,span:d,trace:e,darkMode:t,sort:r,longest:c,tools:u,expanded:o(p),onToggle:()=>i(p)})}))}var Ose=[{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"}],WE=e=>{let t=e?.spans||[],r=null;for(let u of t){let c=u.tokens||{},d=(c.input||0)+(c.output||0);d>0&&(!r||d>r.total)&&(r={input:c.input||0,output:c.output||0,thinking:c.thinking||0,cached:c.cached||0,total:d})}if(!r)return null;let n=u=>{for(let c of t){let d=(c.attributes||{})[u];if(d)return d}return null},a=Ro(n("prompt.input.instructions")||n("llm.instructions")),o=Ro(n("prompt.input.tools")||n("llm.tools")),i=Ro(n("prompt.input.mcp_tools")),l=0;for(let u of t){let c=u.attributes||{},d=c["tool.output.result"]||c["tool.result"],f=c["tool.input.args"]||c["tool.arguments"];d&&(l+=Ro(d)),f&&(l+=Ro(f))}l=Math.min(l,r.input);let s=Math.max(r.input-a-o-i-l,0);return{used:r.total,limit:Fv(e.model),cached:r.cached,thinking:r.thinking,segments:[{key:"messages",label:"Messages",tokens:s},{key:"tool_results",label:"Tool results",tokens:l},{key:"instructions",label:"Instructions",tokens:a},{key:"tool_schemas",label:"Tool schemas",tokens:o},{key:"mcp_schemas",label:"MCP tool schemas",tokens:i},{key:"output",label:"Generated output",tokens:r.output}]}},Tse=e=>{let t=0,r=[];(e?.spans||[]).forEach(o=>{(o.nested||0)!==0&&(o.type==="tool"?r.push(o):(o.type==="llm"||o.type==="generate")&&(t=Math.max(t,o.duration||0)))});let n=r.reduce((o,i)=>o+(i.duration||0),0);t=Math.max(t-n,0);let a=e?.duration_ms||t+n||1;return{generation:t,tools:r,toolTotal:n,total:a,overhead:Math.max(a-t-n,0)}};function Mse({trace:e,darkMode:t}){let r=Ir(t),{generation:n,tools:a,toolTotal:o,total:i,overhead:l}=Tse(e);if(n===0&&o===0||n/i>=.99&&o/i<.01)return null;let s=c=>`${(c/i*100).toFixed(c/i<.01?2:1)}%`,u=(c,d)=>We.default.createElement("div",{style:{width:`${Math.max(c/i*100,.4)}%`,background:d,height:"100%"}});return We.default.createElement("div",{style:{marginTop:"14px",paddingTop:"12px",borderTop:`1px solid ${r.cardBorder}`}},We.default.createElement("div",{style:{fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.05em",color:r.textSecondary,marginBottom:"6px"}},"Time breakdown \u2014 generation vs tools"),We.default.createElement("div",{style:{display:"flex",height:"10px",borderRadius:"5px",overflow:"hidden",background:r.trackBg}},u(n,"#ef4444"),u(o,"#10b981"),l>0&&u(l,t?"rgba(255,255,255,0.2)":"#d1d5db")),We.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 18px",marginTop:"8px",fontSize:"12px",fontFamily:Fe.mono,color:r.textBody}},We.default.createElement("span",null,We.default.createElement("span",{style:{color:"#ef4444"}},"\u25A0")," generation ",Er(n)," (",s(n),")"),We.default.createElement("span",null,We.default.createElement("span",{style:{color:"#10b981"}},"\u25A0")," tools ",Er(o)," (",s(o),")"),l>0&&We.default.createElement("span",null,We.default.createElement("span",{style:{color:r.textSecondary}},"\u25A0")," overhead ",Er(l)," (",s(l),")")),a.length>0&&We.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 18px",marginTop:"4px",fontSize:"12px",fontFamily:Fe.mono,color:r.textSecondary}},a.map((c,d)=>We.default.createElement("span",{key:d},c.name," ",Er(c.duration)," (",s(c.duration||0),")"))))}function Pse({trace:e,darkMode:t}){let[r,n]=(0,We.useState)(null),[a,o]=(0,We.useState)(!1),i=Ir(t);if((0,We.useEffect)(()=>{if(e?.id==null)return;let s=!0;return n(null),o(!1),fetch(`/api/interactions/trace-${e.id}`).then(u=>u.ok?u.json():Promise.reject(new Error("request failed"))).then(u=>s&&n(u.interaction)).catch(()=>s&&o(!0)),()=>{s=!1}},[e?.id]),a)return We.default.createElement("div",{className:"text-sm py-4",style:{color:i.bad}},"Couldn't load the conversation for this trace.");if(!r)return We.default.createElement("div",{className:"text-sm py-4",style:{color:i.textMuted}},"Loading conversation\u2026");let l=r.instructions?[{id:`trace-${e.id}-system`,role:"system",content:r.instructions,created_at:r.created_at},...r.messages||[]]:r.messages||[];return l.length===0?We.default.createElement("div",{className:"text-sm py-4",style:{color:i.textMuted}},"This trace predates content capture \u2014 no conversation to show."):We.default.createElement(so,{messages:l,darkMode:t,tools:UE(e)})}function Yv({trace:e,darkMode:t,compact:r=!1,showConversation:n=!0}){let[a,o]=(0,We.useState)("spans"),[i,l]=(0,We.useState)("time"),s=Ir(t),u=(e?.spans||[]).length,c=WE(e),d=e?.tokens||{},f=(0,We.useCallback)(p=>o(n?p:"spans"),[n]);return e?We.default.createElement("div",null,We.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2 mb-2"},We.default.createElement("div",{className:"flex items-center gap-1"},n&&We.default.createElement(qv,{options:Ose,value:a,onChange:f,darkMode:t}),We.default.createElement("span",{className:"text-xs ml-2",style:{color:s.textSecondary}},u," ",u===1?"span":"spans")),a==="spans"&&u>0&&We.default.createElement(qv,{options:Z7,value:i,onChange:l,darkMode:t,label:"Sort"})),a==="conversation"?We.default.createElement("div",{className:"rounded-lg border p-4",style:{background:s.cardBg,borderColor:s.cardBorder}},We.default.createElement(Pse,{trace:e,darkMode:t})):We.default.createElement(We.default.Fragment,null,i==="time"?We.default.createElement("div",{className:"flex justify-between text-xs mb-2",style:{color:s.textMuted}},We.default.createElement("span",null,"0ms"),We.default.createElement("span",null,Math.round((e.duration_ms||0)*.33),"ms"),We.default.createElement("span",null,Math.round((e.duration_ms||0)*.66),"ms"),We.default.createElement("span",null,Er(e.duration_ms))):We.default.createElement("div",{className:"text-xs mb-2",style:{color:s.textMuted}},"Bar length compares duration on a log scale"),We.default.createElement(FE,{trace:e,darkMode:t,sort:i,keyPrefix:`${e.id||e.trace_id}:`})),c&&We.default.createElement("div",{className:"mt-3"},We.default.createElement(ys,{...c,label:"Context pressure",estimated:!0,darkMode:t})),We.default.createElement(Mse,{trace:e,darkMode:t}),!r&&We.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:s.cardBorder,color:s.textSecondary}},We.default.createElement("span",null,"Tokens:"),d.thinking>0&&We.default.createElement("span",{className:"text-amber-500",style:{fontFamily:Fe.mono}},"T:",d.thinking.toLocaleString()),We.default.createElement("span",{className:"text-blue-500",style:{fontFamily:Fe.mono}},"in:",(d.input||0).toLocaleString()),We.default.createElement("span",{className:"text-green-500",style:{fontFamily:Fe.mono}},"out:",(d.output||0).toLocaleString()),e.provider&&We.default.createElement("span",{style:{fontFamily:Fe.mono}},e.provider,e.model?` \xB7 ${e.model}`:"")),e.error&&We.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"}},We.default.createElement("span",{className:"text-sm",style:{color:t?"#fca5a5":"#b91c1c"}},e.error))):null}var Dse=e=>{if(!e)return"0";let t=(e.input||0)+(e.output||0)+(e.thinking||0);return t>=1e3?`${(t/1e3).toFixed(1)}K`:`${t}`},Ise=e=>e==null?null:`$${e.toFixed(4)}`;function M1({trace:e,darkMode:t,expanded:r,onToggle:n}){let a=Ir(t),o=$E(e),i=WE(e),l=e.status!=="ERROR";return jr.default.createElement(T1,{darkMode:t,id:`trace-row-${e.id}`},jr.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:a.hoverBg}:void 0},jr.default.createElement("div",{className:"flex items-center gap-3 min-w-0"},jr.default.createElement("span",{className:"px-2 py-1 text-xs rounded flex-shrink-0",style:{fontFamily:Fe.mono,background:a.controlBg,color:a.textSecondary}},"TRACE"),jr.default.createElement("span",{className:"text-sm flex-shrink-0",style:{fontFamily:Fe.mono,color:a.textMuted}},e.short_id),jr.default.createElement("span",{className:"text-sm font-medium truncate",style:{color:a.textPrimary}},e.display_name)),jr.default.createElement("div",{className:"flex items-center gap-4 flex-shrink-0 text-sm",style:{color:a.textSecondary}},e.model&&jr.default.createElement("span",{className:"text-xs px-2 py-0.5 rounded",style:{fontFamily:Fe.mono,background:t?"rgba(99,102,241,0.2)":"#eef2ff",color:t?"#a5b4fc":"#4338ca"},title:"Model that generated this trace"},e.model),i&&jr.default.createElement(ys,{compact:!0,...i,label:"Context",darkMode:t}),jr.default.createElement("span",null,jr.default.createElement("i",{className:"fa-solid fa-clock mr-1"}),Er(e.duration_ms)),jr.default.createElement("span",null,Dse(e.tokens)," tokens"),e.estimated_cost!=null&&jr.default.createElement("span",null,jr.default.createElement("i",{className:"fa-solid fa-coins mr-1"}),Ise(e.estimated_cost)),jr.default.createElement("span",{style:{color:l?a.good:a.bad}},jr.default.createElement("i",{className:`fa-solid ${l?"fa-check":"fa-xmark"} mr-1`}),l?"OK":"ERROR"),jr.default.createElement(Gu,{open:r,darkMode:t}))),!r&&jr.default.createElement($f,{darkMode:t,onClick:n,style:{padding:"0 16px 12px"},lines:[{label:"input",text:o.input,color:gr("user",t).color},{label:"output",text:o.output,color:gr("assistant",t).color}]}),r&&jr.default.createElement("div",{className:"border-t p-4",style:{borderColor:a.cardBorder,background:a.innerBg}},jr.default.createElement(Yv,{trace:e,darkMode:t})))}function Ge(e=""){return`${(window.ACTIVE_AGENT_DASHBOARD?.mountPath||"").replace(/\/$/,"")}${e}`||"/"}function HE(e=""){window.history.pushState({},"",Ge(e))}function Xu(e=window.location.pathname){let t=(window.ACTIVE_AGENT_DASHBOARD?.mountPath||"").replace(/\/$/,"");return t&&(e===t||e.startsWith(`${t}/`))?e.slice(t.length)||"/":e}function Gv(e){if(!e)return;let t=Xu(e);HE(t),window.dispatchEvent(new CustomEvent("dashboard:navigate",{detail:{path:Ge(t)}}))}var Q7=["#6366f1","#10b981","#f59e0b","#ec4899","#3b82f6","#8b5cf6","#14b8a6","#f97316"],jse=3e4,zse=e=>{let t={};return e.forEach((r,n)=>{t[r]=Q7[n%Q7.length]}),t},Lse=e=>{let t={};return e.forEach(r=>{(r.spans||[]).forEach(n=>{if((n.nested||0)===0)return;let a=n.name||n.type||"unknown";t[a]||(t[a]={name:a,type:n.type,count:0,total:0,max:0,errors:0});let o=t[a];o.count+=1,o.total+=n.duration||0,o.max=Math.max(o.max,n.duration||0),n.error&&(o.errors+=1)})}),Object.values(t).map(r=>({...r,avg:r.total/r.count})).sort((r,n)=>n.total-r.total)},Bse=(e,t,r,n=60)=>{let a=Date.now(),o=[],i=n*1e3,l=Math.max(1,Math.round(r*60/n));for(let s=l-1;s>=0;s--){let u=a-(s+1)*i,c=a-s*i,d=e.filter(p=>p.timestamp_ms>=u&&p.timestamp_ms{f[p]=d.filter(m=>m.agent===p).length}),o.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(p=>p.status==="ERROR").length,avgLatency:d.length>0?Math.round(d.reduce((p,m)=>p+(m.duration_ms||0),0)/d.length):0,traces:d,...f})}return o};function Zu({agentClass:e=null,embedded:t=!1}){let{darkMode:r}=kt(),[n,a]=(0,U.useState)([]),[o,i]=(0,U.useState)([]),[l,s]=(0,U.useState)({}),[u,c]=(0,U.useState)(!0),[d,f]=(0,U.useState)(null),[p,m]=(0,U.useState)(null),y=(0,U.useRef)(new URLSearchParams(window.location.search).get("trace")),[h,v]=(0,U.useState)(null),[g,b]=(0,U.useState)({status:"all",agent:"all",action:"all"}),[x,S]=(0,U.useState)("time"),[w,O]=(0,U.useState)(null),[k,A]=(0,U.useState)("timeline"),[M,W]=(0,U.useState)("popular"),{timeWindow:L}=Qo(),H=(0,U.useCallback)(async()=>{try{let C=e?`&agent=${encodeURIComponent(e)}`:"",T=await fetch(`/api/traces?minutes=${L.minutes}${C}`);if(!T.ok)throw new Error(`Request failed (${T.status})`);let X=await T.json();a(X.traces||[]),i(e?[e]:X.agents||[]),s(X.agent_ids||{}),f(null)}catch(C){f(C.message)}finally{c(!1)}},[L.minutes,e]);(0,U.useEffect)(()=>{H();let C=setInterval(H,jse);return()=>clearInterval(C)},[H]);let D=(0,U.useMemo)(()=>zse(o),[o]);(0,U.useEffect)(()=>{O(null)},[L.id]);let Y=(0,U.useMemo)(()=>Bse(n,o,L.minutes,L.bucketSeconds),[n,o,L]),N=Math.max(0,Math.ceil(Y.length/6)-1),_=(0,U.useMemo)(()=>{let C=n;if(w!==null){let T=Y[w];T&&(C=T.traces||[])}if(g.status!=="all"&&(C=C.filter(T=>g.status==="success"?T.status!=="ERROR":T.status==="ERROR")),g.agent!=="all"&&(C=C.filter(T=>T.agent===g.agent)),g.action!=="all")if(g.action.includes("#")){let[T,X]=g.action.split("#");C=C.filter($=>$.agent===T&&$.action===X)}else C=C.filter(T=>T.action===g.action);return x==="latency"&&(C=[...C].sort((T,X)=>(X.duration_ms||0)-(T.duration_ms||0))),h&&!C.some(T=>T.id===h.id)&&(C=[h,...C]),C},[n,w,Y,g,x,h]);(0,U.useEffect)(()=>{let C=y.current;if(!C)return;let T=$=>{y.current=null,m($.id),setTimeout(()=>{document.getElementById(`trace-row-${$.id}`)?.scrollIntoView({behavior:"smooth",block:"start"})},150)},X=n.find($=>$.id===C||$.trace_id===C||$.short_id&&String(C).startsWith($.short_id));if(X){T(X);return}n.length!==0&&fetch(`/api/traces/${encodeURIComponent(C)}`).then($=>$.ok?$.json():Promise.reject(new Error("not found"))).then(({trace:$})=>{v($),T($)}).catch(()=>{y.current=null})},[n]);let z=(0,U.useMemo)(()=>{let C=w!==null?Y[w]?.traces||[]:n,T={};C.forEach($=>{$.agent&&(T[$.agent]||(T[$.agent]={agent:$.agent,count:0,totalDuration:0,cost:0,errors:0,actions:{},tokens:{thinking:0,input:0,output:0}}),T[$.agent].count++,T[$.agent].totalDuration+=$.duration_ms||0,T[$.agent].cost+=$.estimated_cost||0,$.status==="ERROR"&&T[$.agent].errors++,$.tokens&&(T[$.agent].tokens.thinking+=$.tokens.thinking||0,T[$.agent].tokens.input+=$.tokens.input||0,T[$.agent].tokens.output+=$.tokens.output||0),$.action&&(T[$.agent].actions[$.action]=(T[$.agent].actions[$.action]||0)+1))});let X={popular:$=>$.count,longest:$=>$.totalDuration/($.count||1),cost:$=>$.cost,tokens:$=>($.tokens.input||0)+($.tokens.output||0)+($.tokens.thinking||0),errors:$=>$.errors}[M]||($=>$.count);return Object.values(T).sort(($,Ne)=>X(Ne)-X($)||Ne.count-$.count)},[n,Y,w,M]),j=(0,U.useMemo)(()=>{let C=w!==null?Y[w]?.traces||[]:n,T={};return C.forEach(X=>{if(!X.agent)return;let $=`${X.agent}#${X.action||"unknown"}`;T[$]||(T[$]={key:$,agent:X.agent,action:X.action||"unknown",count:0,totalDuration:0,errors:0,minDuration:1/0,maxDuration:0,tokens:{thinking:0,input:0,output:0}}),T[$].count++,T[$].totalDuration+=X.duration_ms||0,T[$].minDuration=Math.min(T[$].minDuration,X.duration_ms||0),T[$].maxDuration=Math.max(T[$].maxDuration,X.duration_ms||0),X.status==="ERROR"&&T[$].errors++,X.tokens&&(T[$].tokens.thinking+=X.tokens.thinking||0,T[$].tokens.input+=X.tokens.input||0,T[$].tokens.output+=X.tokens.output||0)}),Object.values(T).forEach(X=>{X.minDuration===1/0&&(X.minDuration=0)}),Object.values(T).sort((X,$)=>$.count-X.count)},[n,Y,w]),P=(0,U.useMemo)(()=>{let C=w!==null?Y[w]?.traces||[]:n,T={};return C.forEach(X=>{(X.spans||[]).forEach($=>{if($.type!=="tool")return;let Ne=$.attributes?.["tool.name"]||$.name?.replace(/^tool\./,"")||"unknown";T[Ne]||(T[Ne]={name:Ne,count:0,totalDuration:0,maxDuration:0,errors:0,agents:new Set}),T[Ne].count++,T[Ne].totalDuration+=$.duration||0,T[Ne].maxDuration=Math.max(T[Ne].maxDuration,$.duration||0),$.error&&T[Ne].errors++,X.agent&&T[Ne].agents.add(`${X.agent}#${X.action||"unknown"}`)})}),Object.values(T).map(X=>({...X,agents:[...X.agents],avgDuration:X.count?X.totalDuration/X.count:0})).sort((X,$)=>$.totalDuration-X.totalDuration)},[n,Y,w]),B=(0,U.useMemo)(()=>g.agent==="all"?j.map(C=>C.key):j.filter(C=>C.agent===g.agent).map(C=>C.key),[g.agent,j]),R=(0,U.useMemo)(()=>Lse(_),[_]),F=C=>{if(C&&C.activeTooltipIndex!==void 0){let T=C.activeTooltipIndex;O(w===T?null:T),m(null)}},G=C=>(C?.input||0)+(C?.output||0)+(C?.thinking||0),ee=C=>{let T=C.count?C.errors/C.count:0;return[{label:`Calls ${L.label||""}`.trim(),value:C.count.toLocaleString()},{label:"Errors",value:`${(T*100).toFixed(1)}%`,tone:C.errors>0?"bad":"good"},{label:"Avg time",value:`${Math.round(C.totalDuration/(C.count||1))}ms`},{label:"Tokens",value:G(C.tokens).toLocaleString()},{label:"Cost",value:fe(C.cost),title:"Estimated from token counts at this model's published rates",tone:C.cost?void 0:"muted"},{label:"Actions",value:(C.agents?.length||0).toLocaleString()}]},fe=C=>C?C<.01?"<$0.01":`$${C.toFixed(2)}`:"\u2014",de=U.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:"8px",marginBottom:"12px"}},U.default.createElement("span",{style:{fontSize:"12px",color:r?"rgba(255,255,255,0.5)":"#6b7280"}},"Rank by"),U.default.createElement("select",{value:M,onChange:C=>W(C.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"}},U.default.createElement("option",{value:"popular"},"Most calls"),U.default.createElement("option",{value:"longest"},"Longest average"),U.default.createElement("option",{value:"cost"},"Highest cost"),U.default.createElement("option",{value:"tokens"},"Most tokens"),U.default.createElement("option",{value:"errors"},"Most errors"))),De=C=>b(T=>({...T,agent:T.agent===C?"all":C})),le=C=>{let T=l[C];if(!T)return De(C);let X=Ge(`/agents/${T}`);window.history.pushState(window.history.state,"",X),window.dispatchEvent(new CustomEvent("dashboard:navigate",{detail:{path:X}}))},Te=C=>{let T=R[0]?.total||1,X=C?"rgba(0,0,0,0.3)":"white",$=C?"1px solid rgba(255,255,255,0.1)":"1px solid #e5e7eb",Ne=C?"white":"#111827",E=C?"rgba(255,255,255,0.5)":"#6b7280",Z={llm:"#ef4444",tool:"#10b981",generate:"#8b5cf6",prompt:"#3b82f6"};return U.default.createElement("div",{style:{padding:C?"0 24px 24px 24px":0}},U.default.createElement("div",{style:{background:X,border:$,borderRadius:"12px",padding:"16px"}},U.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,color:Ne,marginBottom:"4px"}},"Slowest operations"),U.default.createElement("div",{style:{fontSize:"12px",color:E,marginBottom:"14px"}},"Span durations aggregated across ",_.length," trace",_.length===1?"":"s"," \u2014 ranked by total time"),R.length===0?U.default.createElement("div",{style:{fontSize:"13px",color:E,padding:"12px 0"}},"No spans in the current selection"):U.default.createElement("div",{style:{display:"grid",gap:"10px"}},R.map(ge=>U.default.createElement("div",{key:ge.name,style:{display:"flex",alignItems:"center",gap:"12px"}},U.default.createElement("div",{style:{width:"220px",flexShrink:0,display:"flex",alignItems:"center",gap:"8px"}},U.default.createElement("span",{style:{color:E}},BE(ge.type)),U.default.createElement("span",{style:{fontSize:"13px",color:ge.errors>0?"#ef4444":Ne,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},ge.name)),U.default.createElement("div",{style:{flex:1,height:"18px",background:C?"rgba(255,255,255,0.06)":"#f3f4f6",borderRadius:"4px",position:"relative"}},U.default.createElement("div",{style:{position:"absolute",top:"3px",left:0,height:"12px",borderRadius:"3px",width:`${Math.max(ge.total/T*100,.5)}%`,background:Z[ge.type]||"#6366f1"}})),U.default.createElement("div",{style:{width:"260px",flexShrink:0,fontSize:"12px",color:E,fontFamily:Fe.mono,textAlign:"right"}},ge.count,"\xD7 \xB7 avg ",Er(ge.avg)," \xB7 max ",Er(ge.max)," \xB7 \u03A3 ",Er(ge.total)))))))};if(u)return U.default.createElement("div",{className:"flex items-center justify-center h-64"},U.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let K={requests:Y.reduce((C,T)=>C+T.requests,0),errors:Y.reduce((C,T)=>C+T.errors,0),avgLatency:(()=>{let C=Y.filter(T=>T.requests>0);return C.length===0?0:Math.round(C.reduce((T,X)=>T+X.avgLatency,0)/C.length)})(),throughput:(Y.reduce((C,T)=>C+T.requests,0)/L.minutes).toFixed(1)},I=n.length===0;return r?U.default.createElement("div",{className:"preview-content",style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)"}},U.default.createElement("div",{style:{padding:"24px 24px 0 24px",borderBottom:"1px solid rgba(255,255,255,0.1)",marginBottom:"16px",paddingBottom:"16px"}},U.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"}},U.default.createElement("div",null,!t&&U.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:"white",margin:0}},"Traces"),U.default.createElement("p",{style:{fontSize:"14px",color:"rgba(255,255,255,0.6)",marginTop:"4px"}},w!==null?`Viewing ${Y[w]?.time} \u2022 ${_.length} requests`:`Last ${L.label} \u2022 Click timeline to drill down`)),U.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"12px"}},U.default.createElement("div",{style:{display:"flex",background:"rgba(255,255,255,0.1)",borderRadius:"8px",padding:"2px"}},["timeline","agents","actions","tools","spans"].map(C=>U.default.createElement("button",{key:C,onClick:()=>A(C),style:{padding:"6px 12px",background:k===C?"#ef4444":"transparent",color:"white",borderRadius:"6px",border:"none",fontSize:"13px",cursor:"pointer",textTransform:"capitalize"}},C))),!e&&U.default.createElement("select",{value:g.agent,onChange:C=>b({...g,agent:C.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"}},U.default.createElement("option",{value:"all"},"All Agents"),o.map(C=>U.default.createElement("option",{key:C,value:C},C))),U.default.createElement("select",{value:g.action,onChange:C=>b({...g,action:C.target.value}),style:{padding:"8px 12px",background:g.action!=="all"?"rgba(239, 68, 68, 0.3)":"rgba(255,255,255,0.1)",border:g.action!=="all"?"1px solid #ef4444":"1px solid rgba(255,255,255,0.2)",borderRadius:"8px",color:"white",fontSize:"14px",maxWidth:"220px",textOverflow:"ellipsis"}},U.default.createElement("option",{value:"all"},"All Actions"),B.map(C=>U.default.createElement("option",{key:C,value:C},C))),U.default.createElement("select",{value:g.status,onChange:C=>b({...g,status:C.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"}},U.default.createElement("option",{value:"all"},"All Status"),U.default.createElement("option",{value:"success"},"Success"),U.default.createElement("option",{value:"error"},"Error")),U.default.createElement("select",{value:x,onChange:C=>S(C.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"}},U.default.createElement("option",{value:"time"},"Newest first"),U.default.createElement("option",{value:"latency"},"Slowest first")),w!==null&&U.default.createElement("button",{onClick:()=>O(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")))),d&&U.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: ",d),U.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},U.default.createElement("div",{style:{background:"rgba(0,0,0,0.3)",borderRadius:"12px",padding:"16px",border:"1px solid rgba(255,255,255,0.1)"}},U.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"12px"}},U.default.createElement("div",{style:{fontSize:"14px",fontWeight:"600",color:"white"}},"Agent Requests / Minute"),U.default.createElement("div",{style:{display:"flex",gap:"16px",flexWrap:"wrap"}},Object.entries(D).map(([C,T])=>U.default.createElement("div",{key:C,style:{display:"flex",alignItems:"center",gap:"6px"}},U.default.createElement("div",{style:{width:"10px",height:"10px",borderRadius:"2px",background:T}}),U.default.createElement("span",{style:{fontSize:"11px",color:"rgba(255,255,255,0.7)"}},C.replace("Agent","")))))),U.default.createElement("div",{style:{height:"150px"}},U.default.createElement($l,{width:"100%",height:"100%"},U.default.createElement(gs,{data:Y,onClick:F,style:{cursor:"pointer"}},U.default.createElement("defs",null,Object.entries(D).map(([C,T])=>U.default.createElement("linearGradient",{key:C,id:`gradient-${C}`,x1:"0",y1:"0",x2:"0",y2:"1"},U.default.createElement("stop",{offset:"5%",stopColor:T,stopOpacity:.8}),U.default.createElement("stop",{offset:"95%",stopColor:T,stopOpacity:.1})))),U.default.createElement(Yi,{strokeDasharray:"3 3",stroke:"rgba(255,255,255,0.1)"}),U.default.createElement(Qi,{dataKey:"time",stroke:"rgba(255,255,255,0.5)",tick:{fontSize:10,fill:"rgba(255,255,255,0.5)"},tickLine:!1,interval:N}),U.default.createElement(Ri,{stroke:"rgba(255,255,255,0.5)",tick:{fontSize:10,fill:"rgba(255,255,255,0.5)"},tickLine:!1,axisLine:!1,allowDecimals:!1}),U.default.createElement(rs,{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:(C,T)=>[C,T.replace("Agent","")]}),Object.keys(D).map(C=>U.default.createElement(Xi,{key:C,type:"monotone",dataKey:C,stackId:"1",stroke:D[C],fill:`url(#gradient-${C})`}))))),U.default.createElement("div",{style:{display:"flex",gap:"24px",marginTop:"12px",paddingTop:"12px",borderTop:"1px solid rgba(255,255,255,0.1)"}},U.default.createElement("div",null,U.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"white"}},K.requests),U.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Total Requests")),U.default.createElement("div",null,U.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#ef4444"}},K.errors),U.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Errors")),U.default.createElement("div",null,U.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#10b981"}},K.avgLatency,"ms"),U.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Avg Latency")),U.default.createElement("div",null,U.default.createElement("div",{style:{fontSize:"20px",fontWeight:"700",color:"#f59e0b"}},K.throughput,"/min"),U.default.createElement("div",{style:{fontSize:"11px",color:"rgba(255,255,255,0.5)"}},"Throughput"))))),k==="agents"&&U.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},de,U.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(280px, 1fr))",gap:"16px"}},z.map(C=>U.default.createElement(ad,{key:C.agent,name:C.agent,accentColor:D[C.agent],subtitle:C.agents?.length?C.agents.join(", "):void 0,badge:U.default.createElement("span",{style:{fontSize:"12px",padding:"2px 8px",background:D[C.agent]+"30",color:D[C.agent],borderRadius:"4px",whiteSpace:"nowrap"}},C.count," calls"),onClick:()=>le(C.agent),stats:ee(C),footer:U.default.createElement(U.default.Fragment,null,U.default.createElement("span",null,l[C.agent]?"Open agent \u2192":"Not linked to an agent record"),U.default.createElement("button",{onClick:T=>{T.stopPropagation(),De(C.agent)},style:{background:"none",border:"none",padding:0,cursor:"pointer",color:g.agent===C.agent?"#ef4444":"inherit",font:"inherit"}},g.agent===C.agent?"Clear filter":"Filter traces"))})))),k==="actions"&&U.default.createElement("div",{style:{padding:"0 24px",marginBottom:"24px"}},U.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:"12px"}},j.map(C=>{let T=g.action===C.key;return U.default.createElement("div",{key:C.key,onClick:()=>{b({...g,action:T?"all":C.key}),A("timeline")},style:{background:T?"rgba(239, 68, 68, 0.15)":"rgba(0,0,0,0.3)",borderRadius:"10px",padding:"14px",border:T?"1px solid #ef4444":`1px solid ${D[C.agent]}30`,cursor:"pointer",transition:"all 0.15s"}},U.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"10px"}},U.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},U.default.createElement("div",{style:{width:"6px",height:"6px",borderRadius:"50%",background:D[C.agent]}}),U.default.createElement("span",{style:{fontSize:"14px",fontWeight:"600",color:"white"}},C.agent),U.default.createElement("span",{style:{fontSize:"13px",color:"rgba(255,255,255,0.7)"}},"#",C.action)),U.default.createElement("span",{style:{fontSize:"12px",padding:"2px 8px",background:D[C.agent]+"30",color:D[C.agent],borderRadius:"4px"}},C.count," calls")),U.default.createElement("div",{style:{display:"flex",gap:"16px",flexWrap:"wrap"}},U.default.createElement("div",null,U.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Avg"),U.default.createElement("div",{style:{fontSize:"13px",color:"white",fontWeight:"500"}},Math.round(C.totalDuration/C.count),"ms")),U.default.createElement("div",null,U.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Min/Max"),U.default.createElement("div",{style:{fontSize:"13px",color:"rgba(255,255,255,0.8)"}},Math.round(C.minDuration),"ms / ",Math.round(C.maxDuration),"ms")),U.default.createElement("div",null,U.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Errors"),U.default.createElement("div",{style:{fontSize:"13px",color:C.errors>0?"#ef4444":"#10b981"}},C.errors," (",(C.errors/C.count*100).toFixed(0),"%)")),U.default.createElement("div",null,U.default.createElement("div",{style:{fontSize:"10px",color:"rgba(255,255,255,0.5)"}},"Tokens"),U.default.createElement("div",{style:{fontSize:"13px",color:"rgba(255,255,255,0.8)"}},G(C.tokens).toLocaleString()))))}))),k==="spans"&&Te(!0),k==="timeline"&&!I&&U.default.createElement("div",{className:"space-y-4"},_.length===0?U.default.createElement("div",{style:{textAlign:"center",padding:"32px",color:"rgba(255,255,255,0.5)",fontSize:"14px"}},"No traces match filters"):_.map(C=>U.default.createElement(M1,{key:C.id,trace:C,darkMode:!0,expanded:p===C.id,onToggle:()=>m(p===C.id?null:C.id)}))),I&&k==="timeline"&&U.default.createElement("div",{style:{textAlign:"center",padding:"48px 0"}},U.default.createElement("div",{style:{color:"rgba(255,255,255,0.5)",fontSize:"18px"}},"No traces yet"),U.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"))):U.default.createElement("div",{className:"space-y-6"},U.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2"},U.default.createElement("div",null,U.default.createElement("h1",{className:"text-2xl font-bold text-gray-900"},"Traces"),U.default.createElement("p",{className:"text-sm text-gray-500"},w!==null?`Viewing ${Y[w]?.time} \u2022 ${_.length} requests`:`Last ${L.label} \u2022 Click timeline to drill down`)),U.default.createElement("div",{className:"flex items-center space-x-3 flex-wrap gap-y-2 min-w-0"},U.default.createElement(Jo,null),U.default.createElement("div",{className:"flex bg-gray-100 rounded-lg p-1"},["timeline","agents","actions","tools","spans"].map(C=>U.default.createElement("button",{key:C,onClick:()=>A(C),className:`px-3 py-1 text-sm rounded-md transition-colors capitalize ${k===C?"bg-white shadow text-gray-900":"text-gray-600"}`},C))),U.default.createElement("select",{value:g.agent,onChange:C=>b({...g,agent:C.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"}},U.default.createElement("option",{value:"all"},"All Agents"),o.map(C=>U.default.createElement("option",{key:C,value:C},C))),U.default.createElement("select",{value:g.action,onChange:C=>b({...g,action:C.target.value}),className:`px-3 py-2 border rounded-lg text-sm focus:ring-2 focus:ring-red-500 ${g.action!=="all"?"border-red-500 bg-red-50":"border-gray-300"}`,style:{maxWidth:"220px",textOverflow:"ellipsis"}},U.default.createElement("option",{value:"all"},"All Actions"),B.map(C=>U.default.createElement("option",{key:C,value:C},C))),U.default.createElement("select",{value:g.status,onChange:C=>b({...g,status:C.target.value}),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500"},U.default.createElement("option",{value:"all"},"All Status"),U.default.createElement("option",{value:"success"},"Success"),U.default.createElement("option",{value:"error"},"Error")),U.default.createElement("select",{value:x,onChange:C=>S(C.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500"},U.default.createElement("option",{value:"time"},"Newest first"),U.default.createElement("option",{value:"latency"},"Slowest first")),w!==null&&U.default.createElement("button",{onClick:()=>O(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"))),d&&U.default.createElement("div",{className:"p-3 bg-red-50 border border-red-200 rounded-lg text-sm text-red-700"},"Failed to load traces: ",d),U.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},U.default.createElement("div",{className:"flex justify-between items-center mb-3"},U.default.createElement("h3",{className:"text-sm font-semibold text-gray-700"},"Agent Requests / Minute"),U.default.createElement("div",{className:"flex gap-4 flex-wrap"},Object.entries(D).map(([C,T])=>U.default.createElement("div",{key:C,className:"flex items-center gap-1.5"},U.default.createElement("div",{className:"w-2.5 h-2.5 rounded-sm",style:{background:T}}),U.default.createElement("span",{className:"text-xs text-gray-500"},C.replace("Agent","")))))),U.default.createElement("div",{className:"h-36"},U.default.createElement($l,{width:"100%",height:"100%"},U.default.createElement(gs,{data:Y,onClick:F,style:{cursor:"pointer"}},U.default.createElement("defs",null,Object.entries(D).map(([C,T])=>U.default.createElement("linearGradient",{key:C,id:`gradient-light-${C}`,x1:"0",y1:"0",x2:"0",y2:"1"},U.default.createElement("stop",{offset:"5%",stopColor:T,stopOpacity:.6}),U.default.createElement("stop",{offset:"95%",stopColor:T,stopOpacity:.05})))),U.default.createElement(Yi,{strokeDasharray:"3 3",stroke:"#e5e7eb"}),U.default.createElement(Qi,{dataKey:"time",stroke:"#9ca3af",tick:{fontSize:10,fill:"#6b7280"},tickLine:!1,interval:N}),U.default.createElement(Ri,{stroke:"#9ca3af",tick:{fontSize:10,fill:"#6b7280"},tickLine:!1,axisLine:!1,allowDecimals:!1}),U.default.createElement(rs,{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:(C,T)=>[C,T.replace("Agent","")]}),Object.keys(D).map(C=>U.default.createElement(Xi,{key:C,type:"monotone",dataKey:C,stackId:"1",stroke:D[C],fill:`url(#gradient-light-${C})`}))))),U.default.createElement("div",{className:"flex gap-6 mt-3 pt-3 border-t border-gray-100"},U.default.createElement("div",null,U.default.createElement("div",{className:"text-lg font-bold text-gray-900"},K.requests),U.default.createElement("div",{className:"text-xs text-gray-500"},"Total Requests")),U.default.createElement("div",null,U.default.createElement("div",{className:"text-lg font-bold text-red-500"},K.errors),U.default.createElement("div",{className:"text-xs text-gray-500"},"Errors")),U.default.createElement("div",null,U.default.createElement("div",{className:"text-lg font-bold text-green-600"},K.avgLatency,"ms"),U.default.createElement("div",{className:"text-xs text-gray-500"},"Avg Latency")),U.default.createElement("div",null,U.default.createElement("div",{className:"text-lg font-bold text-amber-500"},K.throughput,"/min"),U.default.createElement("div",{className:"text-xs text-gray-500"},"Throughput")))),k==="agents"&&U.default.createElement("div",null,de,U.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"},z.map(C=>U.default.createElement(ad,{key:C.agent,name:C.agent,accentColor:D[C.agent],subtitle:C.agents?.length?C.agents.join(", "):void 0,badge:U.default.createElement("span",{className:"text-sm px-2 py-0.5 rounded",style:{background:D[C.agent]+"20",color:D[C.agent]}},C.count," calls"),onClick:()=>le(C.agent),stats:ee(C),footer:U.default.createElement(U.default.Fragment,null,U.default.createElement("span",null,l[C.agent]?"Open agent \u2192":"Not linked to an agent record"),U.default.createElement("button",{onClick:T=>{T.stopPropagation(),De(C.agent)},className:g.agent===C.agent?"text-red-600":"hover:text-gray-700"},g.agent===C.agent?"Clear filter":"Filter traces"))})))),k==="actions"&&U.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3"},j.map(C=>{let T=g.action===C.key;return U.default.createElement("div",{key:C.key,onClick:()=>{b({...g,action:T?"all":C.key}),A("timeline")},className:`rounded-xl p-4 cursor-pointer transition-all ${T?"bg-red-50 border-2 border-red-500":"bg-white border border-gray-200 hover:border-gray-300"}`,style:{borderLeftColor:D[C.agent],borderLeftWidth:T?"2px":"4px"}},U.default.createElement("div",{className:"flex items-center justify-between mb-3"},U.default.createElement("div",{className:"flex items-center gap-2"},U.default.createElement("div",{className:"w-2 h-2 rounded-full",style:{background:D[C.agent]}}),U.default.createElement("span",{className:"font-semibold text-gray-900"},C.agent),U.default.createElement("span",{className:"text-gray-500"},"#",C.action)),U.default.createElement("span",{className:"text-xs px-2 py-0.5 rounded",style:{background:D[C.agent]+"20",color:D[C.agent]}},C.count," calls")),U.default.createElement("div",{className:"flex flex-wrap gap-4 text-sm"},U.default.createElement("div",null,U.default.createElement("div",{className:"text-xs text-gray-500"},"Avg"),U.default.createElement("div",{className:"font-medium"},Math.round(C.totalDuration/C.count),"ms")),U.default.createElement("div",null,U.default.createElement("div",{className:"text-xs text-gray-500"},"Min/Max"),U.default.createElement("div",{className:"text-gray-600"},Math.round(C.minDuration),"ms / ",Math.round(C.maxDuration),"ms")),U.default.createElement("div",null,U.default.createElement("div",{className:"text-xs text-gray-500"},"Errors"),U.default.createElement("div",{className:C.errors>0?"text-red-600":"text-green-600"},C.errors," (",(C.errors/C.count*100).toFixed(0),"%)")),U.default.createElement("div",null,U.default.createElement("div",{className:"text-xs text-gray-500"},"Tokens"),U.default.createElement("div",{className:"text-gray-600"},G(C.tokens).toLocaleString()))))})),k==="tools"&&(P.length===0?U.default.createElement("div",{className:"text-center py-8 text-gray-500 text-sm"},"No tool calls in this window"):U.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},U.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"},U.default.createElement("div",{className:"flex-1"},"Tool"),U.default.createElement("div",{className:"w-20 text-right"},"Calls"),U.default.createElement("div",{className:"w-24 text-right"},"Total time"),U.default.createElement("div",{className:"w-20 text-right"},"Avg"),U.default.createElement("div",{className:"w-20 text-right"},"Slowest")),P.map(C=>{let T=P[0].totalDuration?C.totalDuration/P[0].totalDuration*100:0;return U.default.createElement("div",{key:C.name,className:"px-4 py-2 border-b border-gray-50 last:border-0"},U.default.createElement("div",{className:"flex items-center gap-4 text-sm"},U.default.createElement("div",{className:"flex-1 min-w-0"},U.default.createElement("div",{className:"font-medium text-gray-900 truncate",title:C.name},C.name),C.agents.length>0&&U.default.createElement("div",{className:"text-xs text-gray-400 truncate",title:C.agents.join(", ")},C.agents.join(", "))),U.default.createElement("div",{className:"w-20 text-right text-gray-700",style:{fontFamily:Fe.mono}},C.count.toLocaleString(),C.errors>0&&U.default.createElement("span",{className:"text-red-600 ml-1",title:`${C.errors} failed`},"(",C.errors,")")),U.default.createElement("div",{className:"w-24 text-right text-gray-900 font-medium",style:{fontFamily:Fe.mono}},Er(C.totalDuration)),U.default.createElement("div",{className:"w-20 text-right text-gray-500",style:{fontFamily:Fe.mono}},Er(C.avgDuration)),U.default.createElement("div",{className:"w-20 text-right text-gray-500",style:{fontFamily:Fe.mono}},Er(C.maxDuration))),U.default.createElement("div",{className:"h-1 bg-gray-100 rounded mt-1.5"},U.default.createElement("div",{className:"h-1 bg-green-500 rounded",style:{width:`${Math.max(T,1)}%`}})))}))),k==="spans"&&Te(!1),k==="timeline"&&!I&&U.default.createElement("div",{className:"space-y-4"},_.length===0?U.default.createElement("div",{className:"text-center py-8 text-gray-500"},"No traces match filters"):_.map(C=>U.default.createElement(M1,{key:C.id,trace:C,darkMode:!1,expanded:p===C.id,onToggle:()=>m(p===C.id?null:C.id)}))),I&&k==="timeline"&&U.default.createElement("div",{className:"text-center py-12"},U.default.createElement("div",{className:"text-gray-400 text-lg"},"No traces yet"),U.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 ce=te(ne());var P1=te(ne());function VE({trace:e,darkMode:t,height:r=8}){let n=Ir(t);if(!e)return P1.default.createElement("div",{className:"rounded",style:{height:`${r}px`,background:n.trackBg}});let a=e.spans||[],o=e.duration_ms||1,i=[...a].sort((l,s)=>(l.nested||0)-(s.nested||0));return P1.default.createElement("div",{style:{position:"relative",height:`${r}px`,borderRadius:"999px",background:n.trackBg,overflow:"hidden",flex:1}},i.map((l,s)=>P1.default.createElement("div",{key:l.span_id||s,title:`${l.name} \xB7 ${Er(l.duration)}`,style:{position:"absolute",top:0,bottom:0,left:`${Math.min(l.start/o*100,99)}%`,width:`${Math.max(l.duration/o*100,.8)}%`,background:l.error?"#ef4444":LE[l.type]||"#9ca3af"}})))}var $se=e=>{let t=null;if((e?.generations||[]).forEach(o=>{let i=o.tokens||{},l=(i.input||0)+(i.output||0);l>0&&(!t||l>t.total)&&(t={input:i.input||0,output:i.output||0,cached:i.cached||0,thinking:i.thinking||0,model:o.model,total:l})}),!t)return null;let r=Ro(e?.instructions),n=0;(e?.messages||[]).forEach(o=>{o.role==="tool"&&(n+=Ro(o.content)+Ro(o.tool_arguments))}),n=Math.min(n,t.input);let a=Math.max(t.input-r-n,0);return{used:t.total,limit:Fv(t.model),cached:t.cached,thinking:t.thinking,segments:[{key:"messages",label:"Messages",tokens:a},{key:"tool_results",label:"Tool results",tokens:n},{key:"instructions",label:"Instructions",tokens:r},{key:"output",label:"Generated output",tokens:t.output}]}},J7=["#6366f1","#10b981","#f59e0b","#ec4899","#3b82f6","#8b5cf6","#14b8a6","#f97316"],Use=[{id:"recent",label:"Recent"},{id:"tokens",label:"Tokens"},{id:"messages",label:"Messages"}],Fse=[{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"}],Wse=3e4,rl=e=>e==null?"0":e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString(),Hse=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 Vse({generation:e,darkMode:t,maxMs:r,expanded:n,onToggle:a}){let o=Ir(t),[i,l]=(0,ce.useState)(null),[s,u]=(0,ce.useState)(!1),c=e.trace_id,d=(e.duration_seconds||0)*1e3;(0,ce.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&&l(y)).catch(()=>m&&u(!0)),()=>{m=!1}},[c]);let f=!!i,p=(i?.spans||[]).length;return ce.default.createElement("div",{className:`rounded-lg px-2 py-1.5 -mx-2 transition-colors ${f?t?"hover:bg-white/5":"hover:bg-gray-100":""}`,style:n?{background:o.hoverBg}:void 0},ce.default.createElement("div",{className:f?"cursor-pointer":void 0,onClick:f?a:void 0,title:f?`${p} spans \u2014 click for the trace`:void 0},ce.default.createElement("div",{className:"flex flex-wrap items-center gap-3 text-xs font-mono",style:{color:o.textSecondary}},ce.default.createElement("span",{title:e.cache_hit?`${rl(e.tokens.cached)} cached prompt tokens`:"No prompt cache hit",style:{color:e.cache_hit?o.good:o.textMuted}},e.cache_hit?"\u26A1 cache hit":"\u25CF generated"),e.thinking&&ce.default.createElement("span",{className:"text-amber-500",title:`${rl(e.tokens.thinking)} thinking tokens`},"\u{1F9E0} ",rl(e.tokens.thinking)),ce.default.createElement("span",null,e.model||"unknown-model"),e.provider&&ce.default.createElement("span",null,e.provider),ce.default.createElement("span",{className:"text-blue-500"},"in:",rl(e.tokens.input)),ce.default.createElement("span",{className:"text-green-500"},"out:",rl(e.tokens.output)),e.finish_reason&&ce.default.createElement("span",null,e.finish_reason),e.duration_seconds!=null&&ce.default.createElement("span",null,Er(d)),c&&ce.default.createElement("a",{href:Ge(`/traces?trace=${c}`),title:`${c} \u2014 open in Traces`,style:{color:o.link},className:"hover:underline",onClick:m=>m.stopPropagation()},"trace:",c.slice(0,8)," \u2192"),s&&ce.default.createElement("span",{style:{color:o.textMuted}},"trace unavailable")),ce.default.createElement("div",{className:"flex items-center gap-2 mt-1"},c&&!s?ce.default.createElement(VE,{trace:i,darkMode:t}):d>0?ce.default.createElement("div",{className:"rounded flex-1",style:{height:"8px",background:o.trackBg}},ce.default.createElement("div",{className:"rounded",style:{height:"8px",width:`${Math.max(d/r*100,2)}%`,background:"#ef4444"}})):null,f&&ce.default.createElement(ce.default.Fragment,null,ce.default.createElement("span",{className:"font-mono flex-shrink-0",style:{fontSize:"10px",color:o.textMuted}},p," ",p===1?"span":"spans"),ce.default.createElement(Gu,{open:n,darkMode:t,size:12})))),n&&i&&ce.default.createElement("div",{className:"mt-2 rounded-lg border p-3",style:{background:o.cardBg,borderColor:o.cardBorder}},ce.default.createElement(Yv,{trace:i,darkMode:t,compact:!0})))}function nl({agentId:e=null,embedded:t=!1}){let{darkMode:r}=kt(),[n,a]=(0,ce.useState)([]),[o,i]=(0,ce.useState)(!0),[l,s]=(0,ce.useState)(null),[u,c]=(0,ce.useState)(null),[d,f]=(0,ce.useState)({}),{timeWindow:p}=Qo(),m=(0,ce.useCallback)(async()=>{try{let H=await fetch(`/api/interactions?minutes=${p.minutes}${e?`&agent_id=${e}`:""}`);if(!H.ok)throw new Error(`Request failed (${H.status})`);let D=await H.json();a(D.interactions||[]),s(null)}catch(H){s(H.message)}finally{i(!1)}},[p.minutes,e]);(0,ce.useEffect)(()=>{m();let H=setInterval(m,Wse);return()=>clearInterval(H)},[m]);let[y,h]=(0,ce.useState)("recent"),v=(0,ce.useMemo)(()=>{let H=[...new Set(n.map(D=>D.display_name).filter(Boolean))].sort();return Object.fromEntries(H.map((D,Y)=>[D,J7[Y%J7.length]]))},[n]),g=(0,ce.useMemo)(()=>{let H=n.reduce((Y,N)=>Y+(N.tokens?.total||0),0),D=new Set(n.map(Y=>Y.display_name).filter(Boolean));return{interactions:n.length,tokens:H,agents:D.size,avgTokens:n.length?Math.round(H/n.length):0}},[n]),b=(0,ce.useMemo)(()=>{if(n.length===0)return[];let H=Date.now(),D=p.bucketSeconds*1e3,Y=Math.max(1,Math.round(p.minutes*60/p.bucketSeconds)),N=Object.keys(v);return Array.from({length:Y},(_,z)=>{let j=H-(Y-1-z)*D,P=j-D,B=n.filter(R=>{let F=new Date(R.last_activity_at).getTime();return F>=P&&F1440?new Date(j).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit"}):new Date(j).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),...Object.fromEntries(N.map(R=>[R,B.filter(F=>F.display_name===R).length]))}})},[n,v,p]),x=Math.max(0,Math.ceil(b.length/6)-1),S=(0,ce.useCallback)(H=>{let D=[...H];switch(y){case"tokens":return D.sort((Y,N)=>(N.tokens?.total||0)-(Y.tokens?.total||0));case"messages":return D.sort((Y,N)=>(N.message_count||0)-(Y.message_count||0));default:return D.sort((Y,N)=>String(N.last_activity_at).localeCompare(String(Y.last_activity_at)))}},[y]),w=(0,ce.useMemo)(()=>{let H=new Map;n.forEach(Y=>{let N=Y.agent_name||Y.agent?.name||"Unattributed",_=Y.action_name,z=`${N}#${_||""}`;H.has(z)||H.set(z,{key:z,title:_?`${N} ${_.charAt(0).toUpperCase()}${_.slice(1)} Agent Interactions`:`${N} Interactions`,sessions:[],tokens:0,lastActivity:Y.last_activity_at});let j=H.get(z);j.sessions.push(Y),j.tokens+=Y.tokens?.total||0,Y.last_activity_at>j.lastActivity&&(j.lastActivity=Y.last_activity_at)});let D=[...H.values()].map(Y=>({...Y,sessions:S(Y.sessions)}));return y==="tokens"?D.sort((Y,N)=>N.tokens-Y.tokens):y==="messages"?D.sort((Y,N)=>N.sessions.length-Y.sessions.length):D.sort((Y,N)=>String(N.lastActivity).localeCompare(String(Y.lastActivity)))},[n,y,S]),O=async H=>{if(u===H){c(null);return}if(c(H),!d[H])try{let D=await fetch(`/api/interactions/${H}`);if(D.ok){let Y=await D.json();f(N=>({...N,[H]:Y.interaction}))}}catch{}},[k,A]=(0,ce.useState)({}),[M,W]=Uf(),L=Ir(r);return 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 border-red-500"})):ce.default.createElement("div",{className:"space-y-6"},ce.default.createElement("div",{className:"flex items-start justify-between"},!t&&ce.default.createElement("div",null,ce.default.createElement("h1",{className:"text-2xl font-bold",style:{color:L.textPrimary}},"Interactions"),ce.default.createElement("p",{className:"text-sm mt-1",style:{color:L.textSecondary}},"Persisted conversation streams per agent \u2014 messages, generations and provenance")),ce.default.createElement("div",{className:"flex items-center gap-3"},ce.default.createElement("div",{className:"flex items-center rounded-lg p-1",style:{background:r?"rgba(255,255,255,0.06)":"#f3f4f6"}},ce.default.createElement("span",{className:"text-xs px-1",style:{color:L.textMuted}},"Sort"),Use.map(H=>ce.default.createElement("button",{key:H.id,onClick:()=>h(H.id),className:"px-2 py-1 text-xs rounded transition-colors",style:y===H.id?{background:r?"#2a2a2a":"#ffffff",color:L.textPrimary,boxShadow:r?"none":"0 1px 2px rgba(0,0,0,0.08)"}:{color:L.textSecondary}},H.label))),ce.default.createElement(Jo,null))),l&&ce.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: ",l),n.length>0&&ce.default.createElement("div",{className:"rounded-xl border p-4",style:{backgroundColor:L.cardBg,borderColor:L.cardBorder}},ce.default.createElement("div",{className:"flex items-center justify-between mb-3"},ce.default.createElement("h3",{className:"text-sm font-semibold",style:{color:L.textPrimary}},"Interactions over time"),ce.default.createElement("div",{className:"flex items-center gap-3 flex-wrap justify-end"},Object.entries(v).map(([H,D])=>ce.default.createElement("span",{key:H,className:"flex items-center gap-1.5 text-xs",style:{color:L.textSecondary}},ce.default.createElement("span",{className:"inline-block w-2 h-2 rounded-full",style:{background:D}}),H)))),ce.default.createElement("div",{className:"h-32"},ce.default.createElement($l,{width:"100%",height:"100%"},ce.default.createElement(gs,{data:b},ce.default.createElement("defs",null,Object.entries(v).map(([H,D])=>ce.default.createElement("linearGradient",{key:H,id:`ix-gradient-${H.replace(/\W/g,"-")}`,x1:"0",y1:"0",x2:"0",y2:"1"},ce.default.createElement("stop",{offset:"5%",stopColor:D,stopOpacity:.6}),ce.default.createElement("stop",{offset:"95%",stopColor:D,stopOpacity:.05})))),ce.default.createElement(Yi,{strokeDasharray:"3 3",stroke:r?"#2a2a2a":"#e5e7eb"}),ce.default.createElement(Qi,{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:x}),ce.default.createElement(Ri,{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}),ce.default.createElement(rs,{contentStyle:{background:r?"#1f1f1f":"white",border:`1px solid ${L.cardBorder}`,borderRadius:"8px"},labelStyle:{color:L.textPrimary,fontWeight:"600",marginBottom:"4px"}}),Object.entries(v).map(([H,D])=>ce.default.createElement(Xi,{key:H,type:"monotone",dataKey:H,stackId:"1",stroke:D,strokeWidth:2,fill:`url(#ix-gradient-${H.replace(/\W/g,"-")})`}))))),ce.default.createElement("div",{className:"flex items-center gap-8 pt-3 mt-3 border-t",style:{borderColor:L.cardBorder}},[{label:"Interactions",value:g.interactions.toLocaleString()},{label:"Agents",value:g.agents.toLocaleString()},{label:"Total tokens",value:rl(g.tokens)},{label:"Avg / interaction",value:rl(g.avgTokens)}].map(H=>ce.default.createElement("div",{key:H.label},ce.default.createElement("div",{className:"text-lg font-bold",style:{color:L.textPrimary}},H.value),ce.default.createElement("div",{className:"text-xs",style:{color:L.textSecondary}},H.label))))),n.length===0?ce.default.createElement("div",{className:"text-center py-12"},ce.default.createElement("div",{className:"text-lg",style:{color:L.textMuted}},"No interactions in the last ",p.label),ce.default.createElement("p",{className:"text-sm mt-2",style:{color:L.textSecondary}},"Widen the time window, or run an agent to start recording its conversation stream")):ce.default.createElement("div",{className:"space-y-8"},w.map(H=>ce.default.createElement("div",{key:H.key,className:"space-y-4"},ce.default.createElement("div",{className:"flex items-baseline justify-between"},ce.default.createElement("h2",{className:"text-sm font-semibold",style:{color:L.textPrimary}},H.title),ce.default.createElement("span",{className:"text-xs",style:{color:L.textMuted}},H.sessions.length," ",H.sessions.length===1?"interaction":"interactions",H.tokens>0&&` \xB7 ${rl(H.tokens)} tokens`)),H.sessions.map(D=>{let Y=d[D.id],N=u===D.id,_=k[D.id]||"conversation";return ce.default.createElement(T1,{key:D.id,darkMode:r,className:"shadow-sm"},ce.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:()=>O(D.id),style:N?{background:L.hoverBg}:void 0},ce.default.createElement("div",{className:"flex items-center gap-3 min-w-0"},D.source==="telemetry"?ce.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"):ce.default.createElement("span",{className:"px-2 py-1 text-xs font-medium bg-blue-100 text-blue-700 rounded flex-shrink-0"},"SESSION"),ce.default.createElement("span",{className:"font-mono text-sm truncate",style:{color:L.textPrimary}},D.display_name),D.agent&&ce.default.createElement("span",{className:"text-sm truncate",style:{color:L.textSecondary}},D.agent.name),D.service_name&&ce.default.createElement("span",{className:"text-sm truncate font-mono",style:{color:L.textMuted}},D.service_name)),ce.default.createElement("div",{className:"flex items-center gap-4 flex-shrink-0 text-sm",style:{color:L.textSecondary}},ce.default.createElement("span",null,D.message_count>0?`${D.message_count} messages`:`${D.tool_count||0} tool ${D.tool_count===1?"call":"calls"}`),ce.default.createElement("span",null,rl(D.tokens?.total)," tokens"),(D.tokens?.total||0)>0&&ce.default.createElement(ys,{compact:!0,darkMode:r,label:"Context",used:(D.tokens?.input||0)+(D.tokens?.output||0)||D.tokens?.total,limit:Fv(D.model),segments:[{key:"messages",label:"Context",tokens:(D.tokens?.input||0)+(D.tokens?.output||0)||D.tokens?.total}]}),ce.default.createElement("span",{style:{color:L.textMuted}},Hse(D.last_activity_at)),ce.default.createElement(Gu,{open:N,darkMode:r}))),!N&&ce.default.createElement($f,{darkMode:r,onClick:()=>O(D.id),style:{padding:"0 16px 12px"},lines:[{label:"input",text:D.preview?.input,color:gr("user",r).color},{label:"output",text:D.preview?.output,color:gr("assistant",r).color}]}),N&&ce.default.createElement("div",{className:"border-t p-4 space-y-3",style:{borderColor:L.cardBorder,background:L.innerBg}},Y?ce.default.createElement(ce.default.Fragment,null,ce.default.createElement("div",{className:"flex items-center justify-between flex-wrap gap-y-2"},ce.default.createElement(qv,{options:Fse,value:_,onChange:z=>A(j=>({...j,[D.id]:z})),darkMode:r}),ce.default.createElement("span",{className:"text-xs",style:{color:L.textSecondary}},Y.messages.length," ",Y.messages.length===1?"message":"messages",Y.generations.length>0&&` \xB7 ${Y.generations.length} ${Y.generations.length===1?"generation":"generations"}`)),_==="conversation"&&ce.default.createElement(ce.default.Fragment,null,Y.messages.length===0&&ce.default.createElement("div",{className:"text-sm",style:{color:L.textMuted}},"No conversation content captured for this run. Enable content capture in the reporting app to record prompts, tool arguments, and responses."),ce.default.createElement(so,{darkMode:r,messages:Y.instructions?[{id:`ctx-${D.id}-system`,role:"system",content:Y.instructions,created_at:D.created_at},...Y.messages]:Y.messages}),(()=>{let z=$se(Y);return z?ce.default.createElement("div",{className:"pt-3 mt-2 border-t",style:{borderColor:L.cardBorder}},ce.default.createElement(ys,{...z,label:"Context pressure",estimated:!0,darkMode:r})):null})()),_==="spans"&&(Y.generations.length===0?ce.default.createElement("div",{className:"text-sm",style:{color:L.textMuted}},"No generations recorded for this interaction \u2014 nothing to trace."):ce.default.createElement("div",{className:"space-y-2"},Y.generations.map(z=>ce.default.createElement(Vse,{key:z.id,generation:z,darkMode:r,maxMs:Math.max(...Y.generations.map(j=>(j.duration_seconds||0)*1e3),1),expanded:M(`${D.id}:${z.id}`),onToggle:()=>W(`${D.id}:${z.id}`)}))))):ce.default.createElement("div",{className:"flex justify-center py-6"},ce.default.createElement("div",{className:"animate-spin rounded-full h-6 w-6 border-b-2 border-red-500"}))))})))))}var re=te(ne());function e$(e,t){let r=i=>{let l=Object.values(t[i]||{})[0];if(!l)return null;let s=l.scenario||l;return{key:i,prompt:s.prompt,group:s.group??null,notes:s.notes??null,expectations:s.expectations||{},position:s.position}},n=new Set(e.map(i=>i.key)),a=e.map(i=>{let l=r(i.key);if(!l)return i;let s=["prompt","group","notes","expectations"].some(u=>JSON.stringify(i[u]??null)!==JSON.stringify(l[u]??null));return{...i,...l,catalogChanged:s}}),o=Object.keys(t).filter(i=>!n.has(i)).map(i=>({...r(i),id:null,enabled:!1,orphan:!0}));return[...a,...o]}var R7=e=>/^[1-9]\d*$/.test(e||"")?e:null;function D1(e){let t=new URLSearchParams(e),r=R7(t.get("evaluation"));return r?{evaluationId:r,runId:R7(t.get("run"))}:null}async function t$(e,t,r){if(!t||e.some(o=>String(o.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 a=await n.json();if(!a.evaluation)throw new Error("Requested evaluation is unavailable");return[a.evaluation,...e]}var Pe=te(ne());var Gt=te(ne());var ye="var(--font-mono)",Qu=e=>e>=1?"success":e>=.7?"warning":"error",al={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)"}},KE={object:"=",sample:"~",pass:Ut.success,fault:Ut.error,info:Ut.info,on:"[x]",off:"[ ]",link:Ut.arrow,chevron:Ut.chevronRight};function Ju({kind:e="pass",open:t=!1,color:r,size:n=12,weight:a=700,style:o,title:i}){return e==="chevron"?Gt.default.createElement("span",{className:"aa-chevron","data-open":t?"true":"false",title:i,style:{fontFamily:ye,fontSize:n,color:r||"var(--color-text-muted)",flexShrink:0,...o}},KE.chevron):Gt.default.createElement("span",{title:i,style:{fontFamily:ye,fontSize:n,fontWeight:a,color:r||(e==="fault"?"var(--color-error)":e==="info"?"var(--color-info)":e==="pass"?"var(--color-success)":"var(--color-text-muted)"),flexShrink:0,...o}},KE[e]||e)}function dr({tone:e="muted",size:t=11,children:r,title:n,style:a,testId:o}){let i=al[e]||al.muted;return Gt.default.createElement("span",{"data-testid":o,title:n,style:{display:"inline-flex",alignItems:"center",padding:"2px 7px",borderRadius:4,fontFamily:ye,fontSize:t,fontWeight:600,whiteSpace:"nowrap",background:i.soft,color:i.text,...a}},r)}function rt({children:e,size:t=11,color:r="var(--color-text-secondary)",spacing:n="0.06em",style:a,as:o="span"}){return Gt.default.createElement(o,{style:{fontFamily:ye,fontSize:t,fontWeight:600,letterSpacing:n,textTransform:"uppercase",color:r,...a}},e)}function ol({selected:e=!1,onClick:t,children:r,square:n=!1,mono:a=!1,title:o,style:i,testId:l}){return Gt.default.createElement("button",{type:"button","data-testid":l,onClick:t,title:o,style:{padding:"4px 10px",borderRadius:n?6:999,cursor:t?"pointer":"default",fontFamily:a?ye:"inherit",fontSize:a?11:12,fontWeight:a?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)":a?"var(--color-text-muted)":"var(--color-text-cell)",...i}},r)}function I1({options:e,value:t,onChange:r,style:n}){return Gt.default.createElement("div",{style:{display:"flex",gap:4,...n},role:"group"},e.map(a=>{let o=a.value===t;return Gt.default.createElement("button",{key:a.value,type:"button",onClick:()=>r(a.value),"aria-pressed":o,style:{padding:"6px 12px",borderRadius:8,cursor:"pointer",fontSize:13,fontWeight:500,background:"var(--color-card)",border:`1px solid ${o?"var(--color-accent-ui)":"var(--color-border)"}`,color:o?"var(--color-accent-ui)":"var(--color-text-cell)"}},a.label)}))}function zr({variant:e="secondary",size:t="md",children:r,onClick:n,disabled:a=!1,title:o,type:i="button",style:l,testId:s}){let c={padding:t==="sm"?"6px 12px":"8px 14px",borderRadius:8,cursor:a?"not-allowed":"pointer",fontSize:13,fontWeight:500,opacity:a?.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 Gt.default.createElement("button",{type:i,"data-testid":s,onClick:n,disabled:a,title:o,style:{...c,...d[e]||d.secondary,...l}},r)}function yr({children:e,padding:t=20,style:r,className:n,testId:a,...o}){return Gt.default.createElement("div",{"data-testid":a,className:n,style:{background:"var(--color-card)",border:"1px solid var(--color-border)",borderRadius:12,padding:t,...r},...o},e)}function Xv({label:e,value:t,sub:r,valueColor:n,valueSize:a=32,testId:o}){return Gt.default.createElement(yr,{testId:o},Gt.default.createElement(rt,{size:11,spacing:"0.05em"},e),Gt.default.createElement("div",{style:{marginTop:8,fontFamily:ye,fontSize:a,fontWeight:700,lineHeight:1.1,color:n||"var(--color-text-primary)"}},t),r!=null&&Gt.default.createElement("div",{style:{marginTop:8,fontSize:13,color:"var(--color-text-secondary)"}},r))}function qE({title:e,meta:t,children:r,style:n,testId:a,bodyStyle:o}){return Gt.default.createElement("div",{"data-testid":a,style:{border:"1px solid var(--color-border-light)",borderRadius:10,overflow:"hidden",minWidth:0,...n}},(e||t)&&Gt.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"8px 12px",background:"var(--color-muted)"}},e&&Gt.default.createElement(rt,null,e),t&&Gt.default.createElement("span",{style:{marginLeft:"auto",fontFamily:ye,fontSize:11,color:"var(--color-text-muted)"}},t)),Gt.default.createElement("div",{style:o},r))}function r$({passed:e,total:t,label:r,labelWidth:n=128,width:a,height:o=6,color:i,valueWidth:l=38,style:s}){let u=t?e/t:0,c=i||al[Qu(u)].strong;return Gt.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,...s}},r!=null&&Gt.default.createElement("span",{style:{fontFamily:ye,fontSize:10,color:"var(--color-text-muted)",width:n,flexShrink:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:r},r),Gt.default.createElement("span",{style:{flex:a?void 0:1,width:a,height:o,borderRadius:999,background:"var(--color-muted)",overflow:"hidden",flexShrink:0}},Gt.default.createElement("span",{style:{display:"block",width:`${Math.round(u*100)}%`,height:"100%",borderRadius:999,background:c}})),Gt.default.createElement("span",{style:{fontFamily:ye,fontSize:11,fontWeight:600,width:l,textAlign:"right",color:c}},e,"/",t))}function Ff({children:e,onClick:t,href:r="#",color:n="var(--color-info)",size:a=11,style:o,title:i}){return Gt.default.createElement("a",{href:r,title:i,onClick:l=>{t&&(l.preventDefault(),t(l))},style:{fontFamily:ye,fontSize:a,color:n,textDecoration:"none",...o}},e," ",KE.link)}function aa({children:e,style:t}){return Gt.default.createElement("div",{style:{padding:"20px 12px",fontFamily:ye,fontSize:11,color:"var(--color-text-muted)",textAlign:"center",...t}},e)}var hr=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)}`},YE=e=>e==null?"\u2014":hr(e),Qr=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`},Zv=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)}`},uo=(e,t=4)=>e==null?"\u2014":`$${Number(e).toFixed(t)}`,n$=(e,t=0)=>`${(Number(e||0)*100).toFixed(t)}%`,Ru=e=>e==null?"\u2014":Number(e).toFixed(2),Wf=(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}`},Hf=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`},j1=(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 se=te(ne());var xs=e=>[...new Set(e)],Xt=(e,t)=>`${e} ${t}${e===1?"":"s"}`,Qv=e=>String(e||"").replace(/_/g," "),bs=e=>e?.status==="passed",ec=e=>!!e&&e.status!=="pending",ws=e=>!!e&&["pending","running"].includes(e.status),L1=e=>e?.selection||e?.scores?._selection||{},Kse=e=>(L1(e).models||[]).map(t=>typeof t=="string"?t:t?.label).filter(Boolean);function z1(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 a=Kse(e);if(a.length)return a;let o=xs(t.map(l=>Rv(e,l)));if(o.length)return o;let i=r?.compare_models||[];return i.length?i:e?["agent's model"]:[]}function Rv(e,t){let n=(L1(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 a=e?.scores?._models||{};if(a[t.model])return t.model;let o=[t.provider,t.model].filter(Boolean).join("/");return a[o]?o:t.model}function XE(e,t){let r=e?.scores?._models?.[t],n=(L1(e).models||[]).find(a=>a&&typeof a=="object"&&a.label===t);return j1(t,r?.provider||n?.provider||"")}function ZE(e,t=[]){let r=L1(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 a=r.scenario_ids.map(String);return t.filter(o=>a.includes(String(o.id))).map(o=>o.key)}let n=t.filter(a=>a.enabled!==!1);return r.group?n.filter(a=>a.group===r.group).map(a=>a.key):ws(e)?n.map(a=>a.key):[]}function Jv(e,t=[],r=[]){let n=ZE(e,r);if(n.length)return n.length;let a=Object.values(e?.scores?._models||{});return a.length?Math.max(...a.map(o=>o.scenarios||0)):e?.samples_evaluated&&t.length?Math.round(e.samples_evaluated/t.length):0}function a$(e,t,r=[],n=0){let a=e?.scores?._models?.[t];if(a&&a.scenarios!=null)return{passed:a.passed||0,total:a.scenarios||0};let o=r.filter(i=>Rv(e,i)===t);return{passed:o.filter(bs).length,total:n||o.length}}function QE(e,t=[],r=[],n=[]){if(e?.status==="complete"&&e.samples_evaluated!=null)return{passed:e.samples_passed||0,total:e.samples_evaluated||0};let a=Jv(e,r,n)*Math.max(r.length,1);return{passed:t.filter(bs).length,total:a}}function o$(e,t=[]){let r=[],n={};return(Array.isArray(e)?e:[]).forEach(a=>{let o=typeof a=="string"?a:String(a?.name||"");o&&(n[o]||(n[o]={name:o,count:0,errored:!1},r.push(o)),n[o].count+=1,a&&typeof a=="object"&&a.error&&(n[o].errored=!0))}),r.map(a=>{let o=n[a],i=t.includes(a);return{...o,hit:i,label:`${a}${o.errored?" \u2717":""}${o.count>1?` \xD7${o.count}`:""}`,color:o.errored?"var(--color-error)":i?"var(--color-success-text)":"var(--color-text-muted)",weight:o.errored||i?600:400}})}var qse=(e,t)=>{let r=String(e||"").trim();return r.length>t?`${r.slice(0,t-1)}\u2026`:r},GE=e=>e?.diagnosis?.judge?.instruction_change;function i$(e,t=[]){let r=e?.scores?._recommendations||[];if(Array.isArray(e?.fix_items)){let o=r.length>0||t.some(GE);if(e.fix_items.length>0||!o)return e.fix_items}let n=r.map(o=>Yse(o,t)),a=new Set;return t.forEach(o=>{let i=GE(o);if(!i||a.has(i))return;a.add(i);let l=t.filter(s=>GE(s)===i);n.push({kind:"instruction",fault:"instruction change",count:l.length,scenario_keys:xs(l.map(s=>s.scenario_key)),models:xs(l.map(s=>Rv(e,s))),recommendation:o.diagnosis.judge.recommendation||o.recommendation||"",quote:i,tools_label:null,tools:[],server:null,note:null,action:{label:"Add to instructions",hint:"Agent -> Instructions",path:null}})}),n}function Yse(e,t){let r=e.fault,n=t.filter(u=>u.fault===r),a=(e.suggested_tools||[]).map(u=>typeof u=="string"?u:u?.name).filter(Boolean),o=null,i=[],l=null,s=null;if(r==="expected_tool_not_called"){o="missing tools";let u=xs(n.flatMap(d=>d.diagnosis?.evidence?.unavailable||[]));u.length||(u=xs(n.flatMap(d=>{let f=d.diagnosis?.evidence||{};return(f.expected||[]).filter(p=>!(f.called||[]).includes(p))}))),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"){o="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:qse(d.detail,60)||null,server:null})})),i=Object.values(u),s={label:"Open failing tools",hint:"Tools ->",path:"/tools"}}else o=a.length?"suggested tools":null,i=xs(a).map(u=>({name:u,note:null,server:null}));return!s&&o==="suggested tools"&&i.length&&(s={label:"Open suggested tools",hint:"Tools ->",path:"/tools"}),{kind:"fault",fault:r,count:e.count||n.length,scenario_keys:e.scenario_keys||xs(n.map(u=>u.scenario_key)),models:e.models||[],recommendation:e.recommendation||"",quote:null,tools_label:o,tools:i,server:null,note:l,action:s}}var un=(e,t="var(--color-text-muted)",r={})=>({fontFamily:ye,fontSize:e,color:t,...r});function l$({calls:e,empty:t,style:r}){return se.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"2px 8px",fontFamily:ye,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))}var Gse=20,B1=(e=[],t=null)=>Number.isFinite(t)?Math.max(t,e.length):e.length,Xse=(e=[],t=null)=>{let r=B1(e,t),n=e.length=Gse;return`${Xt(r,"run")}${n?` \xB7 latest ${e.length}`:""}`};function s$({runs:e,runCount:t=null,selectedId:r,onSelect:n,agentName:a,selectedResults:o=[],scenarios:i=[]}){let l=B1(e,t),s=c=>l-c,u=e.map((c,d)=>{let f=z1(c,c.id===r?o:[]),p=c.id===r?o:[],m=Jv(c,f,i),y=QE(c,p,f,i),h=c.selection||c.scores?._selection||{},v="first run",g="var(--color-text-muted)";if(c.status==="failed")v="failed",g="var(--color-error)";else if(ws(c))v=c.status==="pending"?"queued":"running";else{let b=e.findIndex((S,w)=>w>d&&S.status==="complete"),x=b>=0?e[b]:null;if(x){let S=z1(x);if(Jv(x,S,i)===m&&S.length===f.length){let O=y.passed-(x.samples_passed||0);v=`${O>0?"+":""}${O} passed vs #${s(b)}`,g=O>0?"var(--color-success)":O<0?"var(--color-error)":"var(--color-text-muted)"}else v="partial run"}}return{run:c,label:`#${s(d)}`,when:Hf(c.completed_at||c.created_at),delta:v,deltaColor:g,note:`${a} \xB7 ${Xt(m,"scenario")} \xD7 ${Xt(f.length,"model")}${h.group?` \xB7 ${h.group}`:""}`,bars:f.map(b=>({label:b,...a$(c,b,p,m)})),selected:c.id===r}});return se.default.createElement(qE,{title:"Runs",meta:Xse(e,t),testId:"suite-runs-panel"},u.length===0&&se.default.createElement(aa,null,"[ ] no runs yet"),u.map(c=>se.default.createElement("div",{key:c.run.id,onClick:()=>n(c.run.id),className:c.selected?void 0:"hover:bg-[var(--color-hover)]","data-selected":c.selected?"true":"false",style:{padding:"10px 12px 10px 10px",borderTop:"1px solid var(--color-border-light)",cursor:"pointer",background:c.selected?"var(--color-muted)":void 0,borderLeft:`2px solid ${c.selected?"var(--color-accent-ui)":"transparent"}`}},se.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8}},se.default.createElement("span",{style:{fontFamily:ye,fontSize:12,fontWeight:600,color:"var(--color-text-primary)"}},c.label),se.default.createElement("span",{style:{fontSize:11,color:"var(--color-text-muted)"}},c.when),se.default.createElement("span",{style:{marginLeft:"auto",fontFamily:ye,fontSize:11,fontWeight:600,color:c.deltaColor}},c.delta)),se.default.createElement("div",{style:{...un(11),marginTop:2,textWrap:"pretty"}},c.note),c.bars.length>0&&se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:4,marginTop:8}},c.bars.map(d=>se.default.createElement(r$,{key:d.label,label:j1(d.label).short,passed:d.passed,total:d.total}))))))}function u$({run:e,columns:t,results:r=[],scenarioCount:n=0,judgedBy:a,verdict:o}){let i=e?.scores?._models||{};return se.default.createElement(qE,{title:"Models",meta:a?`judged by ${a}`:null,testId:"suite-models-panel"},t.length===0&&se.default.createElement(aa,null,"[ ] no models scored yet"),t.map(l=>{let{short:s,provider:u}=XE(e,l),c=i[l],{passed:d,total:f}=a$(e,l,r,n),p=f?d/f:0,m=al[Qu(p)].strong,y=Object.entries(c?.faults||{}),h=o?.winner===l;return se.default.createElement("div",{key:l,style:{padding:"10px 12px",borderTop:"1px solid var(--color-border-light)",display:"flex",flexDirection:"column",gap:6}},se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"}},se.default.createElement("span",{style:{fontFamily:ye,fontSize:12,fontWeight:600,color:"var(--color-text-primary)"},title:l},s),u&&se.default.createElement("span",{style:un(11)},u),h&&se.default.createElement(dr,{tone:"info",size:10,style:{padding:"1px 6px"},testId:"judges-pick"},"judge's pick"),se.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:10}},se.default.createElement("span",{style:{width:120,height:6,borderRadius:999,background:"var(--color-muted)",overflow:"hidden"}},se.default.createElement("span",{style:{display:"block",width:`${Math.round(p*100)}%`,height:"100%",borderRadius:999,background:m}})),se.default.createElement("span",{style:{fontFamily:ye,fontSize:12,fontWeight:600,color:m}},`${d}/${f}`))),se.default.createElement("div",{style:{display:"flex",gap:14,flexWrap:"wrap",fontFamily:ye,fontSize:11,color:"var(--color-text-secondary)"}},se.default.createElement("span",null,"score ",se.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},c?.avg_score!=null?Number(c.avg_score).toFixed(3):"\u2014")),se.default.createElement("span",null,"latency ",se.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},Qr(c?.avg_duration_ms))),se.default.createElement("span",{style:{whiteSpace:"nowrap"}},se.default.createElement("span",{style:{color:"var(--color-token-in)"}},"in")," ",YE(c?.input_tokens)," \xB7 ",se.default.createElement("span",{style:{color:"var(--color-token-out)"}},"out")," ",YE(c?.output_tokens)),se.default.createElement("span",null,"cost ",se.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},uo(c?.cost)))),se.default.createElement("div",{style:{display:"flex",gap:6,flexWrap:"wrap"}},y.map(([v,g])=>se.default.createElement(dr,{key:v,tone:"error"},`${Qv(v)} \xD7${g}`)),c&&y.length===0&&se.default.createElement("span",{style:{fontFamily:ye,fontSize:11,color:"var(--color-success-text)"}},"[+] no faults"),!c&&ws(e)&&se.default.createElement("span",{style:un(11)},"scoring\u2026")))}),o?.rationale&&se.default.createElement("div",{style:{padding:"10px 12px",borderTop:"1px solid var(--color-border-light)",fontSize:12,lineHeight:"18px",color:"var(--color-text-cell)",textWrap:"pretty"}},se.default.createElement(rt,{size:10,color:"var(--color-text-muted)",style:{marginRight:8}},"Verdict"),o.rationale))}function c$({items:e,columns:t=[],agentName:r,onNavigate:n,onOpenScenario:a}){let o=i=>{let l=Xt((i.scenario_keys||[]).length,"scenario");if(i.kind==="instruction")return`${(i.scenario_keys||[]).join(", ")} \xB7 judge suggestion`;let s=xs(i.models||[]);if(t.length<=1||s.length===0)return l;let c=s.length>=t.length?t.length===2?"both models":"all models":s.map(d=>j1(d).short).join(", ");return`${l} \xB7 ${c}`};return se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:12}},e.map((i,l)=>{let s=i.kind==="instruction",u=s?"info":"error",c=[],d=new Set;(i.tools||[]).forEach(y=>{let h=typeof y=="string"?y:y?.name;!h||d.has(h)||(d.add(h),c.push({name:h,note:typeof y=="object"&&(y.note||y.server?.name)||null}))});let f=i.server,p=f?.status==="enabled",m=r||"the agent";return se.default.createElement("div",{key:`${i.fault}-${l}`,"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(Ju,{kind:s?"info":"fault"}),se.default.createElement(dr,{tone:u},`${Qv(i.fault)}${i.count>1?` \xD7${i.count}`:""}`),a&&(i.scenario_keys||[]).length>0?se.default.createElement("button",{type:"button",onClick:()=>a(i.scenario_keys),title:`Show ${(i.scenario_keys||[]).join(", ")} \u2014 the question, the answer and the tools it called`,style:{...un(11),background:"none",border:0,padding:0,cursor:"pointer",color:"var(--color-text-link, var(--color-text-primary))",textDecoration:"underline",textUnderlineOffset:2}},o(i)):se.default.createElement("span",{style:un(11)},o(i))),i.recommendation&&se.default.createElement("p",{style:{margin:0,fontSize:13,lineHeight:"19px",color:"var(--color-text-cell)",textWrap:"pretty"}},i.recommendation),i.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",i.quote,"\u201D"),c.length>0&&se.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:6}},se.default.createElement(rt,{size:10,color:"var(--color-text-muted)"},i.tools_label||"tools"),se.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:6}},c.map(y=>se.default.createElement("span",{key:y.name,style:{display:"inline-flex",alignItems:"center",gap:6,padding:"3px 8px",borderRadius:6,border:"1px solid var(--color-border)",fontFamily:ye,fontSize:11,maxWidth:"100%"}},se.default.createElement("span",{style:{fontWeight:600,color:"var(--color-text-primary)"}},y.name),y.note&&se.default.createElement("span",{style:{color:"var(--color-text-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:y.note},y.note))))),f&&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)"}},f.name||f.key),se.default.createElement(dr,{tone:p?"success":"warning",size:10,style:{padding:"1px 6px"}},p?`enabled for ${m}`:`${f.status||"unknown"} \xB7 not enabled for ${m}`)),i.note&&se.default.createElement("div",{style:{fontSize:12,lineHeight:"18px",color:"var(--color-text-secondary)",textWrap:"pretty"}},i.note),i.action&&se.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:"auto",paddingTop:2,flexWrap:"wrap"}},i.action.path&&se.default.createElement(zr,{size:"sm",onClick:()=>n?.(i.action.path)},i.action.label),i.action.hint&&se.default.createElement("span",{style:{...un(11),whiteSpace:"nowrap"}},i.action.hint)))}))}var Zse=e=>`minmax(240px, 1.6fr) 150px ${e.map(()=>"minmax(170px, 1fr)").join(" ")}`;function Qse({result:e,expects:t,pending:r}){if(!e)return se.default.createElement("span",{style:{...un(12),fontWeight:600}},r?"\u2026":"\u2014");if(!ec(e))return se.default.createElement("span",{style:{...un(12),fontWeight:600}},"\u2026");let n=bs(e),a=n?"var(--color-success)":"var(--color-error)",o=o$(e.tool_calls,t);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:ye,fontSize:12}},se.default.createElement("span",{style:{fontWeight:700,color:a}},n?"[+]":"[!]"),se.default.createElement("span",{style:{fontWeight:600,color:a}},Ru(e.score)),e.fault&&se.default.createElement("span",{style:{fontSize:11,color:"var(--color-error-text)"}},Qv(e.fault))),se.default.createElement(l$,{calls:o,empty:"no tools called"}))}function d$({rows:e,columns:t,run:r,resultsByKey:n,runKeys:a,running:o,openKey:i,onToggleRow:l,emptyLabel:s,renderDetail:u}){let c=Zse(t),d=e.some(p=>p.group),f=[];return e.forEach(p=>{let m=p.group||"",y=f.find(h=>h.name===m);y||(y={name:m,rows:[]},f.push(y)),y.rows.push(p)}),se.default.createElement("div",{style:{border:"1px solid var(--color-border-light)",borderRadius:10,overflowX:"auto"}},se.default.createElement("div",{style:{minWidth:Math.max(760,400+180*t.length)}},se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:c,gap:12,padding:"8px 12px",background:"var(--color-muted)",alignItems:"end"}},se.default.createElement(rt,{size:10,color:"var(--color-text-muted)"},"Scenario"),se.default.createElement(rt,{size:10,color:"var(--color-text-muted)"},"Expects"),t.map(p=>{let{short:m,provider:y}=XE(r,p);return se.default.createElement("span",{key:p,style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},title:p},se.default.createElement("span",{style:{fontFamily:ye,fontSize:11,fontWeight:600,color:"var(--color-text-primary)"}},m),se.default.createElement("span",{style:un(10)},y||"\xA0"))})),f.map(p=>{let m=p.rows.filter(h=>a.has(h.key)||n[h.key]),y=t.map(h=>{let g=m.filter(S=>ec(n[S.key]?.[h])).filter(S=>bs(n[S.key][h])).length,b=m.length,x=b&&g===b?"var(--color-success-text)":g===0?"var(--color-error-text)":"var(--color-text-cell)";return{label:h,text:b?`${g}/${b} passed`:"\u2014",color:x}});return se.default.createElement("div",{key:p.name||"__ungrouped"},(p.name||d)&&se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:c,gap:12,padding:"7px 12px",borderTop:"1px solid var(--color-border-light)",background:"var(--color-background)",alignItems:"center"}},se.default.createElement("span",{style:{fontSize:12,fontWeight:600,color:"var(--color-text-primary)"}},p.name||"ungrouped"),se.default.createElement("span",{style:un(11)},Xt(p.rows.length,"scenario")),y.map(h=>se.default.createElement("span",{key:h.label,style:{fontFamily:ye,fontSize:11,fontWeight:600,color:h.color}},h.text))),p.rows.map(h=>{let v=i===h.key,g=h.expectations?.tools||[],b=a.has(h.key)||!!n[h.key],x=h.enabled===!1;return se.default.createElement("div",{key:h.key},se.default.createElement("div",{"data-testid":"scenario-row","data-scenario-key":h.key,onClick:()=>l(h.key),className:v?void 0:"hover:bg-[var(--color-hover)]",style:{display:"grid",gridTemplateColumns:c,gap:12,padding:"10px 12px",borderTop:"1px solid var(--color-border-light)",cursor:"pointer",background:v?"var(--color-muted)":void 0,opacity:x?.5:1}},se.default.createElement("div",{style:{minWidth:0}},se.default.createElement("div",{style:{...un(11),marginBottom:2}},`${h.key}${x?" \xB7 disabled":""}`),se.default.createElement("div",{style:{fontSize:13,lineHeight:"18px",color:"var(--color-text-primary)",textWrap:"pretty"}},h.prompt)),se.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:4,alignContent:"flex-start",minWidth:0}},g.map(S=>se.default.createElement("span",{key:S,style:{fontFamily:ye,fontSize:11,padding:"2px 6px",border:"1px solid var(--color-border)",borderRadius:4,color:"var(--color-text-cell)",whiteSpace:"nowrap"}},S)),g.length===0&&(h.expectations?.contains||[]).map(S=>se.default.createElement("span",{key:`contains-${S}`,style:{fontFamily:ye,fontSize:11,padding:"2px 6px",border:"1px solid var(--color-border)",borderRadius:4,color:"var(--color-text-cell)",whiteSpace:"nowrap"},title:"the answer must contain this"},`contains: ${S}`))),t.map(S=>se.default.createElement(Qse,{key:S,result:n[h.key]?.[S],expects:g,pending:o&&b}))),v&&u(h))}))}),e.length===0&&se.default.createElement(aa,{style:{borderTop:"1px solid var(--color-border-light)"}},s||"[+] nothing failed in this group")))}function Jse(e){let t=[];return e.duration_ms!=null&&t.push(Qr(e.duration_ms)),(e.input_tokens!=null||e.output_tokens!=null)&&t.push(`${hr((e.input_tokens||0)+(e.output_tokens||0))} tokens`),e.cost!=null&&t.push(uo(e.cost)),t.join(" \xB7 ")}function Rse({label:e,run:t,result:r,expects:n,running:a}){let{short:o}=XE(t,e),i=se.default.createElement("span",{style:{fontFamily:ye,fontSize:12,fontWeight:600,color:"var(--color-text-primary)"},title:e},o),l=(v,g)=>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,g),se.default.createElement("div",{style:{padding:"10px 12px",display:"flex",flexDirection:"column",gap:10}},v));if(!r||!ec(r))return l(se.default.createElement("span",{style:un(11)},a?"waiting for this replay\u2026":"not part of this run"),se.default.createElement(dr,{tone:"muted"},a?"pending":"no result"));let u=bs(r)?"success":"error",c=o$(r.tool_calls,n),d=r.diagnosis||{},f=d.judge||{},p=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||{}),h=Jse(r);return l(se.default.createElement(se.default.Fragment,null,se.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,flexWrap:"wrap",fontFamily:ye,fontSize:11}},se.default.createElement(rt,{size:10,color:"var(--color-text-muted)"},"tools"),se.default.createElement(l$,{calls:c,empty:"none called",style:{display:"contents"}})),p&&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:ye,fontWeight:700}},`[!] ${Qv(p)}`),m?` \u2014 ${m}`:"",f.suggested_tool?.name&&se.default.createElement("div",{style:{marginTop:4,fontFamily:ye,fontSize:11}},`suggested tool: ${f.suggested_tool.name}${f.suggested_tool.description?` \u2014 ${f.suggested_tool.description}`:""}`),f.instruction_change&&se.default.createElement("div",{style:{marginTop:4,fontStyle:"italic"}},`instruction change: \u201C${f.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:un(11)},"answer not retained for this run"),y.length>0&&se.default.createElement("div",{style:{...un(11),display:"flex",flexWrap:"wrap",gap:"2px 10px"},title:"score per criterion"},y.map(([v,g])=>se.default.createElement("span",{key:v},Qv(v)," ",se.default.createElement("span",{style:{color:"var(--color-text-secondary)"}},g==null?"skipped":Ru(g)))))),se.default.createElement(se.default.Fragment,null,se.default.createElement(dr,{tone:u},r.score==null?r.status:`${r.status} \xB7 ${Ru(r.score)}`),h&&se.default.createElement("span",{style:{marginLeft:"auto",...un(11)}},h)))}function f$({scenario:e,run:t,columns:r,resultsByKey:n,running:a,inRun:o=!0,onRerun:i,onToggleEnabled:l,canMutate:s=!0}){let u=e.expectations?.tools||[],c=n[e.key]||{},d=r.some(p=>c[p]),f=o||d;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:un(11)},e.key),se.default.createElement("span",{style:{fontSize:12,color:"var(--color-text-cell)"}},"expects"),se.default.createElement("span",{style:{fontFamily:ye,fontSize:11,fontWeight:600,color:"var(--color-text-primary)"}},u.join(" or ")||"\u2014"),s&&se.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:14}},se.default.createElement("button",{type:"button",onClick:p=>{p.stopPropagation(),l?.(e)},title:e.enabled===!1?"Enable this scenario":"Disable this scenario",style:{background:"transparent",border:"none",padding:0,cursor:"pointer",fontFamily:ye,fontSize:11,color:e.enabled===!1?"var(--color-text-muted)":"var(--color-text-cell)"}},e.enabled===!1?"[ ] enabled":"[x] enabled"),se.default.createElement(Ff,{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 catalog."),t?f?se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(300px, 1fr))",gap:12}},r.map(p=>se.default.createElement(Rse,{key:p,label:p,run:t,result:c[p],expects:u,running:a}))):se.default.createElement("div",{style:un(11)},"Not part of this run \u2014 use \u201Cre-run scenario\u201D to replay it."):se.default.createElement("div",{style:un(11)},"No runs yet \u2014 use \u201Cre-run scenario\u201D to replay this one on its own."))}var JE=()=>document.querySelector('meta[name="csrf-token"]')?.content;function eue(e){let t=[],r=null;return e.forEach(n=>{(n.group||"")!==(r||"")&&(r=n.group,r&&t.push(`# ${r}`));let a=[],o=n.expectations||{};o.tools?.length&&a.push(`tools: ${o.tools.join(", ")}`),o.contains?.length&&a.push(`contains: ${o.contains.join(", ")}`),o.not_contains?.length&&a.push(`not_contains: ${o.not_contains.join(", ")}`),n.notes&&a.push(`notes: ${n.notes}`),a.push(`key: ${n.key}`),t.push(`${n.prompt} | ${a.join(" | ")}`)}),t.join(` +`)}var tue=e=>{let{results:t,fix_items:r,...n}=e;return n},rue=e=>{if(!e)return null;let t=[uo(e.cost),`${hr((e.input_tokens||0)+(e.output_tokens||0))} tokens`];return e.model_time_ms!=null&&t.push(`model time ${Qr(e.model_time_ms)}`),e.runtime_ms!=null&&t.push(`finished in ${Qr(e.runtime_ms)}`),t.join(" \xB7 ")},p$={padding:"6px 10px",borderRadius:8,fontSize:12,fontFamily:ye,background:"var(--color-card)",border:"1px solid var(--color-border-strong)",color:"var(--color-text-primary)"};function RE({evaluation:e,onChanged:t,onDelete:r,deleting:n=!1}){let a=e.id,o=e.agent?.name||"Agent",[i,l]=(0,Pe.useState)(!1),[s,u]=(0,Pe.useState)(null),[c,d]=(0,Pe.useState)([]),[f,p]=(0,Pe.useState)(e.scenario_groups||[]),[m,y]=(0,Pe.useState)(e.latest_run?[e.latest_run]:[]),[h,v]=(0,Pe.useState)(null),[g,b]=(0,Pe.useState)(e.latest_run?.id??null),[x,S]=(0,Pe.useState)({}),[w,O]=(0,Pe.useState)((e.compare_models||[]).join(", ")),[k,A]=(0,Pe.useState)(null),[M,W]=(0,Pe.useState)(!1),[L,H]=(0,Pe.useState)(!1),[D,Y]=(0,Pe.useState)(""),[N,_]=(0,Pe.useState)(null),[z,j]=(0,Pe.useState)(null),[P,B]=(0,Pe.useState)(!1),[R,F]=(0,Pe.useState)(null),[G,ee]=(0,Pe.useState)(0),fe=(0,Pe.useCallback)(async()=>{let xe=await fetch(`/api/evaluations/${a}/scenarios`);if(!xe.ok)return;let ut=await xe.json();d(ut.scenarios||[]),p(ut.groups||[])},[a]),de=(0,Pe.useCallback)(async()=>{try{let xe=await fetch(`/api/evaluations/${a}`);if(!xe.ok)return u(`Could not load this suite (HTTP ${xe.status})`),null;let Zt=(await xe.json()).evaluation||{};return d(Zt.scenarios||[]),p(Zt.scenario_groups||[]),y(Zt.runs||[]),v(Number.isFinite(Zt.run_count)?Zt.run_count:null),u(null),Zt}catch(xe){return u(`Could not load this suite: ${xe.message}`),null}finally{l(!0)}},[a]),De=(0,Pe.useCallback)(async xe=>{if(!xe)return null;let ut=await fetch(`/api/evaluations/${a}/runs/${xe}`);if(!ut.ok)return null;let pr=(await ut.json()).run;return pr?(S(hn=>({...hn,[pr.id]:pr})),y(hn=>hn.map(Ns=>Ns.id===pr.id?{...Ns,...tue(pr)}:Ns)),pr):null},[a]);(0,Pe.useEffect)(()=>{let xe=!1;return(async()=>{let ut=await de();if(xe)return;let Zt=ut?.runs?.[0]?.id??null;b(pr=>pr&&ut?.runs?.some(hn=>hn.id===pr)?pr:Zt),Zt&&De(Zt)})(),()=>{xe=!0}},[de,De]);let le=e.latest_run?.id??null;(0,Pe.useEffect)(()=>{!le||m.some(xe=>xe.id===le)||de()},[le,m,de]);let Te=x[g]||m.find(xe=>xe.id===g)||null,K=m[0]||null,I=ws(Te)?Te.id:ws(K)?K.id:null;(0,Pe.useEffect)(()=>{if(!I)return;let xe=!1,ut=setTimeout(async()=>{let Zt=null;try{Zt=await De(I)}catch{Zt=null}if(!xe){if(Zt&&!ws(Zt)){await de(),t?.();return}ee(pr=>pr+1)}},3e3);return()=>{xe=!0,clearTimeout(ut)}},[I,G,De,de,t]);let C=w.split(",").map(xe=>xe.trim()).filter(Boolean),T=async xe=>{W(!0),A(null);try{let ut=await fetch(`/api/evaluations/${a}/run`,{method:"POST",headers:{"Content-Type":"application/json","X-CSRF-Token":JE()},body:JSON.stringify({...xe,models:C})}),Zt=await ut.json().catch(()=>({}));if(!ut.ok)throw new Error((Zt.errors||[Zt.error]).filter(Boolean).join(", ")||"Run failed to start");let pr=Zt.run;y(hn=>[pr,...hn.filter(Ns=>Ns.id!==pr.id)]),v(hn=>hn==null?null:hn+1),S(hn=>({...hn,[pr.id]:{...pr,results:[]}})),b(pr.id),F(null),t?.()}catch(ut){A(ut.message)}finally{W(!1)}},X=xe=>{b(xe),F(null),x[xe]||De(xe)},$=async xe=>{xe.id&&(await fetch(`/api/evaluations/${a}/scenarios/${xe.id}`,{method:"PATCH",headers:{"Content-Type":"application/json","X-CSRF-Token":JE()},body:JSON.stringify({scenario:{enabled:xe.enabled===!1}})}),await fe())},Ne=async()=>{_(null);let xe=await fetch(`/api/evaluations/${a}/scenarios`,{method:"PUT",headers:{"Content-Type":"application/json","X-CSRF-Token":JE()},body:JSON.stringify({scenarios_text:D})}),ut=await xe.json().catch(()=>({}));if(!xe.ok){_((ut.errors||[ut.error]).filter(Boolean).join(", ")||"Could not save scenarios");return}d(ut.scenarios||[]),p(ut.groups||[]),H(!1),t?.()},E=Te,Z=(0,Pe.useMemo)(()=>(E?.results||[]).filter(xe=>xe&&xe.scenario_key),[E]),ge=(0,Pe.useMemo)(()=>z1(E,Z,e),[E,Z,e]),Le=(0,Pe.useMemo)(()=>Z.reduce((xe,ut)=>((xe[ut.scenario_key]||={})[Rv(E,ut)]=ut,xe),{}),[Z,E]),nt=(0,Pe.useMemo)(()=>new Set(ZE(E,c)),[E,c]),Bt=ws(E),ft=Jv(E,ge,c),En=QE(E,Z,ge,c),Bn=(0,Pe.useCallback)(xe=>nt.has(xe.key)||!!Le[xe.key],[nt,Le]),oa=(0,Pe.useMemo)(()=>e$(c,Le),[c,Le]),Mo=xe=>ge.some(ut=>{let Zt=Le[xe.key]?.[ut];return ec(Zt)&&!bs(Zt)}),nc=oa.filter(xe=>!z||(xe.group||"")===z).filter(xe=>!P||Mo(xe)),fr=m.findIndex(xe=>xe.id===E?.id),$n=B1(m,h),ni=fr>=0?$n-fr:null,ac=new Set(oa.filter(Bn).map(xe=>xe.group).filter(Boolean)).size,nw=Z.filter(ec).length,Xf=ft*Math.max(ge.length,1),aw=new Set(Z.filter(xe=>ec(xe)&&!bs(xe)).map(xe=>xe.scenario_key)).size,oc=E?.scores?._verdict||null,ai=Object.prototype.hasOwnProperty.call(E?.scores||{},"_judge_label")?E.scores._judge_label||"rules":oc?.judge&&oc.judge!=="pass rate"?oc.judge:e.judge_model||"rules",ic=(0,Pe.useMemo)(()=>E?i$(E,Z):[],[E,Z]),ow=(0,Pe.useCallback)(xe=>{let ut=Array.isArray(xe)?xe[0]:xe;ut&&(j(null),B(!1),F(ut),requestAnimationFrame(()=>{document.querySelector(`[data-scenario-key="${CSS.escape(ut)}"]`)?.scrollIntoView({behavior:"smooth",block:"center"})}))},[]),fg=Object.keys(E?.scores||{}).filter(xe=>!xe.startsWith("_")),iw=(fg.length?fg:(e.criteria||[]).map(xe=>xe.key)).map(xe=>String(xe).replace(/_/g," ")).join(" \xB7 ")||"\u2014",lc=i?c.length:e.scenario_count??0,Zf=i?c.filter(xe=>xe.enabled!==!1&&(!z||(xe.group||"")===z)).length:lc,pg=`Run ${Xt(Zf,"scenario")}${C.length?` \xD7 ${Xt(C.length,"model")}`:""}`,lw=E?[fr>0?`Viewing run #${ni} (latest is #${$n})`:`Run #${ni??"?"} \xB7 ${Hf(E.completed_at||E.created_at)}`,o,`${Xt(ft,"scenario")}${ac?` in ${Xt(ac,"group")}`:""} \xD7 ${Xt(ge.length,"model")}`,E.status==="failed"?"failed":`${En.passed}/${En.total} passed`].join(" \xB7 "):`${o} \xB7 ${Xt(lc,"scenario")}${f.length?` in ${Xt(f.length,"group")}`:""} \xB7 ${s?"not loaded":i?"no runs yet":"loading\u2026"}`,Qf=E&&E.status==="complete"?`/evaluations/${a}/runs/${E.id}/report`:null,sw=[...new Set([...f,...oa.map(xe=>xe.group).filter(Boolean)])],uw=[{label:`All ${oa.length||lc}`,value:null}].concat(sw.map(xe=>({label:i?`${xe} ${oa.filter(ut=>ut.group===xe).length}`:xe,value:xe}))),sc=oa.length===0,cw=P?"[+] nothing failed in this group":"[ ] no scenarios";return Pe.default.createElement("div",{style:{padding:16,display:"flex",flexDirection:"column",gap:16},"data-testid":"scenario-suite-panel"},Pe.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"}},Pe.default.createElement("span",{style:{fontSize:13,color:"var(--color-text-secondary)"}},lw),Bt&&Pe.default.createElement("span",{style:{fontFamily:ye,fontSize:11,color:"var(--color-text-muted)"},"data-testid":"suite-run-progress"},`running \xB7 ${nw} of ${Xf} results in`),Pe.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},Pe.default.createElement(zr,{size:"sm",onClick:()=>{Y(eue(c)),_(null),H(!L)}},L?"Cancel":"Edit scenarios"),Pe.default.createElement("input",{type:"text",value:w,onChange:xe=>O(xe.target.value),placeholder:"models, e.g. gpt-5-mini, ollama/qwen3:8b",style:{...p$,width:250},title:"Comma-separated. Prefix with a provider (ollama/qwen3:8b) when the name alone is ambiguous; blank runs the agent's own model."}),Pe.default.createElement(zr,{variant:"primary",size:"sm",disabled:M||!i||Zf===0,onClick:()=>T(z?{group:z}:{}),testId:"suite-run-button"},M?"Starting\u2026":pg))),(s||k||E?.status==="failed")&&Pe.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)",background:"var(--color-error-soft)",borderRadius:8,padding:"8px 12px"}},s||k||`Run failed: ${E.error_message||"unknown error"}`),L&&Pe.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8}},Pe.default.createElement("textarea",{value:D,onChange:xe=>Y(xe.target.value),rows:Math.min(Math.max(c.length+4,6),24),style:{...p$,width:"100%",boxSizing:"border-box",lineHeight:"18px"}}),Pe.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12,fontSize:12,color:"var(--color-text-muted)",flexWrap:"wrap"}},Pe.default.createElement("span",{style:{flex:1,minWidth:240}},"One message per line. ",Pe.default.createElement("code",{style:{fontFamily:ye}},"# Heading")," starts a group; ",Pe.default.createElement("code",{style:{fontFamily:ye}},"| tools: a, b"),", ",Pe.default.createElement("code",{style:{fontFamily:ye}},"| contains: x"),", ",Pe.default.createElement("code",{style:{fontFamily:ye}},"| not_contains: y")," set expectations. Keep a scenario's ",Pe.default.createElement("code",{style:{fontFamily:ye}},"key")," to keep its history."),Pe.default.createElement(zr,{variant:"primary",size:"sm",onClick:Ne},"Save scenarios")),N&&Pe.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},N)),Pe.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"minmax(280px, 2fr) minmax(0, 3fr)",gap:16,alignItems:"start"}},Pe.default.createElement(s$,{runs:m,runCount:h,selectedId:E?.id??null,onSelect:X,agentName:o,selectedResults:Z,scenarios:c}),Pe.default.createElement(u$,{run:E,columns:E?ge:[],results:Z,scenarioCount:ft,judgedBy:ai,verdict:oc})),E&&E.status!=="failed"&&Pe.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},Pe.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:10}},Pe.default.createElement(rt,null,"What to fix"),Pe.default.createElement("span",{style:{fontFamily:ye,fontSize:11,color:"var(--color-text-muted)"}},`${Xt(ic.length,"item")} \xB7 ${Xt(Math.max(En.total-En.passed,0),"fault")} across ${Xt(aw,"scenario")}`)),ic.length>0?Pe.default.createElement(c$,{items:ic,columns:ge,agentName:o,onNavigate:Gv,onOpenScenario:ow}):Pe.default.createElement(aa,{style:{border:"1px solid var(--color-border-light)",borderRadius:10,padding:"14px 12px"}},Bt?"[ ] scoring\u2026":"[+] nothing to fix")),Pe.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},Pe.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Pe.default.createElement(rt,{style:{marginRight:4}},"Scenarios"),uw.map(xe=>Pe.default.createElement(ol,{key:xe.label,selected:z===xe.value,onClick:()=>j(xe.value)},xe.label)),Pe.default.createElement(ol,{square:!0,mono:!0,selected:P,onClick:()=>B(!P),style:{marginLeft:"auto",background:"transparent"},title:"Hide scenarios that passed on every model"},P?"[x] failed only":"[ ] failed only")),sc&&s?Pe.default.createElement(aa,{style:{border:"1px solid var(--color-border-light)",borderRadius:10}},"[!] suite not loaded"):sc&&!i?Pe.default.createElement(aa,{style:{border:"1px solid var(--color-border-light)",borderRadius:10}},"loading\u2026"):sc?Pe.default.createElement(aa,{style:{border:"1px solid var(--color-border-light)",borderRadius:10}},"No scenarios yet \u2014 paste some with \u201CEdit scenarios\u201D."):Pe.default.createElement(d$,{rows:nc,columns:E?ge:[],run:E,resultsByKey:Le,runKeys:nt,running:Bt,openKey:R,onToggleRow:xe=>F(R===xe?null:xe),emptyLabel:cw,renderDetail:xe=>Pe.default.createElement(f$,{scenario:xe,run:E,columns:E?ge:[],resultsByKey:Le,running:Bt,inRun:Bn(xe),canMutate:!xe.orphan,onRerun:ut=>T({keys:[ut.key]}),onToggleEnabled:$})})),Pe.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:16,flexWrap:"wrap",paddingTop:12,borderTop:"1px solid var(--color-border-light)",fontFamily:ye,fontSize:11,color:"var(--color-text-muted)"}},Pe.default.createElement("span",{style:{whiteSpace:"nowrap"}},`judge ${ai}`),Pe.default.createElement("span",{style:{minWidth:0,textWrap:"pretty"}},`criteria ${iw}`),E?.usage&&Pe.default.createElement("span",{style:{whiteSpace:"nowrap"},title:"Estimated cost, tokens and model time of this run"},rue(E.usage)),Qf&&Pe.default.createElement(Ff,{href:Ge(Qf),onClick:()=>Gv(Qf),title:"The run rendered as a report page"},"run report"),r&&Pe.default.createElement("button",{type:"button",onClick:r,disabled:n,title:"Delete this suite and its runs",style:{marginLeft:"auto",background:"transparent",border:"none",padding:0,cursor:n?"not-allowed":"pointer",fontFamily:ye,fontSize:11,color:"var(--color-error)",opacity:n?.5:1}},n?"Deleting\u2026":"Delete suite")))}var e_=[{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}}],t_=[{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}}],r_=()=>document.querySelector('meta[name="csrf-token"]')?.content,nue=e=>{if(!e)return null;let t=(e.input_tokens||0)+(e.output_tokens||0),r=e.runtime_ms==null?null:Qr(e.runtime_ms);return`${uo(e.cost)} \xB7 ${hr(t)} tok${r?` \xB7 ${r}`:""}`},g$=e=>e>=.85?"success":e>=.7?"warning":"error",m$=()=>{let e=Xu().match(/^\/evaluations\/(\d+)\/runs\/(\d+)\/report/);if(e)return{evaluationId:e[1],runId:e[2]};let t=D1(window.location.search);return t?.runId?t:null},il={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)"},ei=(e=11,t="var(--color-text-muted)")=>({fontFamily:ye,fontSize:e,color:t});function v$({label:e,score:t,indent:r=!1,mono:n=!1}){let a=t.skipped?null:g$(t.score);return re.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:16,paddingLeft:r?16:0}},re.default.createElement("div",{style:{width:160,flexShrink:0,fontSize:n?11:13,fontFamily:n?ye:"inherit",color:"var(--color-text-secondary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:e},n?e:e.replace(/_/g," "),t.source==="telemetry"&&re.default.createElement("span",{"data-testid":"score-source-telemetry",style:{...ei(10),marginLeft:6,textTransform:"uppercase",letterSpacing:"0.05em"},title:`Aggregate over ${t.traces} traces in the last ${t.window_hours}h`},"telemetry")),t.skipped?re.default.createElement("div",{style:{flex:1,fontSize:12,fontStyle:"italic",color:"var(--color-text-muted)"},title:t.reason},"skipped \u2014 ",t.reason):re.default.createElement(re.default.Fragment,null,re.default.createElement("div",{style:{flex:1,height:6,borderRadius:999,background:"var(--color-muted)",overflow:"hidden"}},re.default.createElement("div",{style:{height:"100%",width:`${Math.round(t.score*100)}%`,borderRadius:999,background:al[a].strong}})),re.default.createElement("div",{style:{width:48,textAlign:"right",fontFamily:ye,fontSize:12,fontWeight:600,color:al[a].strong},title:`min ${t.min} \xB7 max ${t.max} \xB7 ${t.passed}/${t.total} passed`},Ru(t.score))))}function eg({embedded:e=!1,agentId:t=null}){let{darkMode:r}=kt(),[n,a]=(0,re.useState)(()=>e?null:m$()),o=(0,re.useRef)(null),[i,l]=(0,re.useState)(0),[s,u]=(0,re.useState)(null);(0,re.useEffect)(()=>{let E=o.current?.contentDocument?.body;if(!E)return;let Z=()=>u(E.scrollHeight);if(Z(),typeof ResizeObserver>"u")return window.addEventListener("resize",Z),()=>window.removeEventListener("resize",Z);let ge=new ResizeObserver(Z);return ge.observe(E),()=>ge.disconnect()},[i,n]),(0,re.useEffect)(()=>u(null),[n]),(0,re.useEffect)(()=>{if(e)return;let E=()=>a(m$());return window.addEventListener("popstate",E),window.addEventListener("dashboard:navigate",E),()=>{window.removeEventListener("popstate",E),window.removeEventListener("dashboard:navigate",E)}},[e]);let[c,d]=(0,re.useState)([]),[f,p]=(0,re.useState)([]),[m,y]=(0,re.useState)(!0),[h,v]=(0,re.useState)(null),[g,b]=(0,re.useState)(null),[x,S]=(0,re.useState)(()=>e?null:D1(window.location.search)?.evaluationId);(0,re.useEffect)(()=>{if(e)return;let E=()=>{let Z=D1(window.location.search)?.evaluationId;S(Z),Z&&b(new Set([Number(Z)]))};return window.addEventListener("popstate",E),window.addEventListener("dashboard:navigate",E),()=>{window.removeEventListener("popstate",E),window.removeEventListener("dashboard:navigate",E)}},[e]);let[w,O]=(0,re.useState)(!1),[k,A]=(0,re.useState)(null),[M,W]=(0,re.useState)(null),[L,H]=(0,re.useState)({agent_id:t?String(t):"",name:"",sample_size:20,criteria:e_.map(E=>E.key),containsPattern:"",llmJudgePrompt:"",judgeKind:"manual",judgeModel:"",compareModels:"",scenariosText:""}),[D,Y]=(0,re.useState)(null),[N,_]=(0,re.useState)(!1),z=(0,re.useCallback)(async()=>{try{let E=await fetch(`/api/evaluations${t?`?agent_id=${encodeURIComponent(t)}`:""}`);if(!E.ok)throw new Error(`Request failed (${E.status})`);let ge=(await E.json()).evaluations||[],Le=null;try{ge=await t$(ge,x,fetch)}catch(nt){Le=nt.message}d(ge),b(nt=>{if(nt)return nt;let Bt=x?ge.find(ft=>String(ft.id)===x):ge.find(ft=>ft.scenario_suite)||ge[0];return new Set(Bt?[Bt.id]:[])}),v(Le)}catch(E){v(E.message)}finally{y(!1)}},[t,x]);(0,re.useEffect)(()=>{z(),fetch("/api/agents").then(E=>E.ok?E.json():{agents:[]}).then(E=>p(E.agents||[])).catch(()=>p([]))},[z]);let j=E=>!!g?.has(E),P=E=>b(Z=>{let ge=new Set(Z||[]);return ge.has(E)?ge.delete(E):ge.add(E),ge}),B=()=>{let E=[...e_,...t_].filter(Z=>L.criteria.includes(Z.key)).map(({key:Z,type:ge,config:Le})=>({key:Z,type:ge,config:Le}));return L.containsPattern.trim()&&E.push({key:"contains",type:"contains",config:{pattern:L.containsPattern.trim()}}),L.llmJudgePrompt.trim()&&E.push({key:"quality",type:"llm_judge",config:{prompt:L.llmJudgePrompt.trim()}}),E},R=async E=>{E.preventDefault(),_(!0),Y(null);try{let Z=await fetch("/api/evaluations",{method:"POST",headers:{"Content-Type":"application/json","X-CSRF-Token":r_()},body:JSON.stringify({evaluation:{agent_id:L.agent_id,name:L.name,sample_size:L.sample_size,judge_kind:L.judgeKind==="judge_defined"?"judge_defined":L.llmJudgePrompt.trim()?"llm":"rules",judge_model:L.judgeModel.trim()||void 0,compare_models:L.compareModels.split(",").map(Le=>Le.trim()).filter(Boolean),criteria:L.judgeKind==="judge_defined"?[]:B(),scenarios_text:L.scenariosText.trim()||void 0}})}),ge=await Z.json().catch(()=>({}));if(!Z.ok)throw new Error((ge.errors||[ge.error]).filter(Boolean).join(", ")||`Failed to create evaluation (HTTP ${Z.status})`);O(!1),H({...L,name:"",scenariosText:""}),await z(),ge.evaluation?.id!=null&&b(Le=>new Set([...Le||[],ge.evaluation.id]))}catch(Z){Y(Z.message)}finally{_(!1)}},F=async E=>{A(E),v(null);try{let Z=await fetch(`/api/evaluations/${E}/run`,{method:"POST",headers:{"X-CSRF-Token":r_()}});Z.ok||v(`Run failed (HTTP ${Z.status})`),await z()}finally{A(null)}},G=async E=>{if(window.confirm(`Delete "${E.name}"? Its runs are deleted with it.`)){W(E.id),v(null);try{let Z=await fetch(`/api/evaluations/${E.id}`,{method:"DELETE",headers:{"X-CSRF-Token":r_()}});Z.ok||Z.status===404?(d(ge=>ge.filter(Le=>Le.id!==E.id)),b(ge=>{let Le=new Set(ge||[]);return Le.delete(E.id),Le})):v(`Delete failed (HTTP ${Z.status})`)}finally{W(null)}}};if(m)return re.default.createElement("div",{className:"flex items-center justify-center h-64"},re.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2",style:{borderBottomColor:"var(--color-accent-ui)"}}));let ee=t?c.filter(E=>String(E.agent?.id)===String(t)):c,fe=ee.filter(E=>E.scenario_suite),de=ee.filter(E=>!E.scenario_suite),De=fe.map(E=>E.latest_run).filter(E=>E&&E.status==="complete"),le=De.reduce((E,Z)=>E+(Z.samples_evaluated||0),0),Te=De.reduce((E,Z)=>E+(Z.samples_passed||0),0),K=De.reduce((E,Z)=>E+(Z.scores?._recommendations?.length||0),0),I=le?Te/le:null,C=[...new Set(fe.map(E=>E.agent?.name).filter(Boolean))],T=fe.reduce((E,Z)=>Math.max(E,Z.latest_run?.models?.length||(Z.compare_models||[]).length||0),0),X=[];C.length===1?X.push(`@${C[0]} \xB7 ${T>1?`${T} models compared`:"1 model"}`):C.length>1&&X.push(Xt(C.length,"agent")),de.length&&X.push(Xt(de.length,"sampling evaluation"));let $=X.join(" \xB7 ")||"no suites yet",Ne=E=>E&&typeof E=="object"&&!("score"in E)&&!("skipped"in E);if(n){let E=Ge(`/api/evaluations/${n.evaluationId}/runs/${n.runId}/report`),Z=`${E}?theme=${r?"dark":"light"}`;return re.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},re.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,flexWrap:"wrap"}},re.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:12}},re.default.createElement(zr,{size:"sm",onClick:()=>{HE("/evaluations"),a(null)}},re.default.createElement("span",{style:{fontFamily:ye}},"<-")," Evaluations"),re.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Run report"),re.default.createElement("span",{style:ei(11)},`evaluation ${n.evaluationId} \xB7 run ${n.runId}`)),re.default.createElement("a",{href:E,target:"_blank",rel:"noopener noreferrer",title:"The report is one self-contained page \u2014 save it to export",style:{padding:"6px 12px",borderRadius:8,fontSize:13,fontWeight:500,color:"var(--color-text-cell)",border:"1px solid var(--color-border-strong)",textDecoration:"none"}},"Open standalone ",re.default.createElement("span",{style:{fontFamily:ye}},"->"))),re.default.createElement("iframe",{ref:o,src:Z,title:"Evaluation run report",onLoad:()=>l(ge=>ge+1),scrolling:"no",style:{width:"100%",borderRadius:12,border:"1px solid var(--color-border)",background:"var(--color-background)",display:"block",height:s?`${s}px`:"calc(100vh - 180px)"}}))}return re.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:20}},re.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:16,flexWrap:"wrap"}},!e&&re.default.createElement("div",{style:{flex:1,minWidth:260}},re.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},"Evaluations"),re.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")),re.default.createElement("div",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:12}},re.default.createElement(zr,{variant:"primary",onClick:()=>O(!w),testId:"new-evaluation-button"},w?"Cancel":"New Evaluation"))),h&&re.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: ",h),w&&re.default.createElement(yr,{testId:"new-evaluation-form"},re.default.createElement("form",{onSubmit:R,style:{display:"flex",flexDirection:"column",gap:16}},re.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},re.default.createElement("div",null,re.default.createElement(rt,{as:"label",style:{display:"block",marginBottom:6}},"Agent"),re.default.createElement("select",{required:!0,disabled:!!t,value:L.agent_id,onChange:E=>H({...L,agent_id:E.target.value}),style:{...il,width:"100%",opacity:t?.7:1}},!t&&re.default.createElement("option",{value:""},"Select agent\u2026"),f.map(E=>re.default.createElement("option",{key:E.id,value:E.id},E.name)))),re.default.createElement("div",null,re.default.createElement(rt,{as:"label",style:{display:"block",marginBottom:6}},"Name"),re.default.createElement("input",{required:!0,type:"text",value:L.name,onChange:E=>H({...L,name:E.target.value}),placeholder:"Response Quality",style:{...il,width:"100%"}})),re.default.createElement("div",null,re.default.createElement(rt,{as:"label",style:{display:"block",marginBottom:6}},"Sample size"),re.default.createElement("input",{type:"number",min:"1",max:"100",value:L.sample_size,onChange:E=>H({...L,sample_size:E.target.value}),style:{...il,width:"100%",fontFamily:ye}}))),re.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},re.default.createElement("div",null,re.default.createElement(rt,{as:"label",style:{display:"block",marginBottom:6}},"KPI definition"),re.default.createElement("select",{value:L.judgeKind,onChange:E=>H({...L,judgeKind:E.target.value}),style:{...il,width:"100%"}},re.default.createElement("option",{value:"manual"},"Manual criteria"),re.default.createElement("option",{value:"judge_defined"},"Judge defines KPIs from agent goals"))),re.default.createElement("div",null,re.default.createElement(rt,{as:"label",style:{display:"block",marginBottom:6}},"Judge model (optional)"),re.default.createElement("input",{type:"text",value:L.judgeModel,onChange:E=>H({...L,judgeModel:E.target.value}),placeholder:"e.g. claude-opus-5",style:{...il,width:"100%",fontFamily:ye,fontSize:12}})),re.default.createElement("div",null,re.default.createElement(rt,{as:"label",style:{display:"block",marginBottom:6}},"Compare models (optional, comma-separated)"),re.default.createElement("input",{type:"text",value:L.compareModels,onChange:E=>H({...L,compareModels:E.target.value}),placeholder:"e.g. claude-haiku-4-5, qwen3:8b",style:{...il,width:"100%",fontFamily:ye,fontSize:12}}))),re.default.createElement("div",null,re.default.createElement(rt,{as:"label",style:{display:"block",marginBottom:6}},"Scenarios (optional) \u2014 paste user messages to replay, one per line"),re.default.createElement("textarea",{value:L.scenariosText,onChange:E=>H({...L,scenariosText:E.target.value}),rows:L.scenariosText?8:3,placeholder:`# Find records Which catalog items are available? | tools: find_records # Change history -Who updated the description for the sample notebook?`,style:{...nl,width:"100%",fontFamily:Ce,fontSize:12,lineHeight:"18px"}}),te.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. ",te.default.createElement("code",{style:{fontFamily:Ce}},"# Heading")," lines group related tasks so they can be run together; ",te.default.createElement("code",{style:{fontFamily:Ce}},"| tools: a, b")," names the tool a task should call.")),z.judgeKind==="judge_defined"&&te.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."),z.judgeKind!=="judge_defined"&&te.default.createElement(te.default.Fragment,null,te.default.createElement("div",null,te.default.createElement(yt,{style:{display:"block",marginBottom:8}},"Rule-based criteria (sampled generations)"),te.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:12}},qE.map(C=>te.default.createElement("label",{key:C.key,style:{display:"flex",alignItems:"center",gap:8,fontSize:13,color:"var(--color-text-primary)"}},te.default.createElement("input",{type:"checkbox",checked:z.criteria.includes(C.key),onChange:Y=>Q({...z,criteria:Y.target.checked?[...z.criteria,C.key]:z.criteria.filter(ve=>ve!==C.key)})}),C.label)))),te.default.createElement("div",null,te.default.createElement(yt,{style:{display:"block",marginBottom:8}},"Telemetry criteria (trace aggregates)"),te.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:12}},YE.map(C=>te.default.createElement("label",{key:C.key,style:{display:"flex",alignItems:"center",gap:8,fontSize:13,color:"var(--color-text-primary)"}},te.default.createElement("input",{type:"checkbox",checked:z.criteria.includes(C.key),onChange:Y=>Q({...z,criteria:Y.target.checked?[...z.criteria,C.key]:z.criteria.filter(ve=>ve!==C.key)})}),C.label)))),te.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4"},te.default.createElement("div",null,te.default.createElement(yt,{as:"label",style:{display:"block",marginBottom:6}},"Must contain (optional pattern)"),te.default.createElement("input",{type:"text",value:z.containsPattern,onChange:C=>Q({...z,containsPattern:C.target.value}),placeholder:"e.g. password reset",style:{...nl,width:"100%"}})),te.default.createElement("div",null,te.default.createElement(yt,{as:"label",style:{display:"block",marginBottom:6}},"LLM judge criterion (optional, needs provider credentials)"),te.default.createElement("input",{type:"text",value:z.llmJudgePrompt,onChange:C=>Q({...z,llmJudgePrompt:C.target.value}),placeholder:"e.g. Is the answer helpful and accurate?",style:{...nl,width:"100%"}})))),M&&te.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},M),te.default.createElement("div",null,te.default.createElement(on,{variant:"primary",type:"submit",disabled:N},N?z.scenariosText.trim()?"Creating & starting run\u2026":"Creating & running\u2026":"Create & Run")))),te.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(190px, 1fr))",gap:16}},te.default.createElement(Hv,{label:"Suites",value:fe.length,sub:B,testId:"stat-suites"}),te.default.createElement(Hv,{label:"Scenario runs",value:oe,sub:"latest run of each suite",testId:"stat-scenario-runs"}),te.default.createElement(Hv,{label:"Pass rate",value:J==null?"\u2014":V7(J),valueColor:J==null?"var(--color-text-muted)":tl[Gu(J)].strong,sub:J==null?"no completed runs yet":`${Te} / ${oe} passed`,testId:"stat-pass-rate"}),te.default.createElement(Hv,{label:"Open faults",value:oe-Te,sub:`${Gt(V,"fix item")} across ${Gt(Pe.length,"suite")}`,testId:"stat-open-faults"})),te.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},ee.map(C=>{let Y=C.latest_run,ve=D(C.id),ze=!!C.scenario_suite,tt=Y?.status==="complete",Lt=Y?.status==="pending"||Y?.status==="running",ct=Y?.models?.length||(C.compare_models||[]).length||1,Nn=Y?.samples_passed||0,Ln=Y?.samples_evaluated||0,na=Ln?Nn/Ln:0,_i=(C.criteria||[]).some(cr=>YE.some(Bn=>Bn.key===cr.key)),Ru=ze?`@${C.agent?.name||"agent"} \xB7 ${Gt(C.scenario_count||0,"scenario")} \xD7 ${Gt(ct,"model")}`:`@${C.agent?.name||"agent"} \xB7 ${Gt(C.sample_size||0,"sample")}${ct>1?` \xD7 ${Gt(ct,"model")}`:""}`;return te.default.createElement(kn,{key:C.id,padding:0,testId:"evaluation-card","data-telemetry":_i?"true":"false","data-kind":ze?"suite":"sampling","data-open":ve?"true":"false",style:{overflow:"hidden"}},te.default.createElement("div",{onClick:()=>T(C.id),className:"hover:bg-[var(--color-hover)]",style:{display:"flex",alignItems:"center",gap:12,rowGap:8,padding:"12px 16px",cursor:"pointer",flexWrap:"wrap"}},te.default.createElement(O1,{kind:"chevron",open:ve}),te.default.createElement("span",{style:{width:22,height:22,borderRadius:6,background:"var(--color-muted)",display:"inline-flex",alignItems:"center",justifyContent:"center",fontFamily:Ce,fontSize:10,fontWeight:700,color:"var(--color-text-secondary)",flexShrink:0},title:ze?"scenario suite":"sampling evaluation"},ze?"=":"~"),te.default.createElement("span",{style:{fontSize:14,fontWeight:600,color:"var(--color-text-primary)"}},C.name),te.default.createElement("span",{style:Qi(11)},Ru),te.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:14,flexShrink:0}},te.default.createElement("span",{style:Qi(11)},Bf(Y?.completed_at||Y?.created_at||C.created_at)),Y?.status==="failed"&&te.default.createElement("span",{style:Qi(11,"var(--color-error)")},"failed"),Lt&&te.default.createElement("span",{style:Qi(11)},Y.status==="pending"?"queued":"running"),!Y&&te.default.createElement("span",{style:Qi(11)},"no runs"),tt&&ze&&te.default.createElement("span",{style:Qi(11)},Gt(Ln-Nn,"fault")),tt&&ze&&te.default.createElement(jn,{tone:Gu(na),testId:"suite-pass-badge"},`${Nn}/${Ln} passed`),tt&&!ze&&Y.average_score!=null&&te.default.createElement(jn,{tone:a$(Y.average_score),title:"mean score across criteria"},`score ${Xu(Y.average_score)}`),tt&&!ze&&Ln>0&&te.default.createElement(jn,{tone:Gu(na)},`${Nn}/${Ln} passed`))),ve&&te.default.createElement("div",{style:{borderTop:"1px solid var(--color-border-light)"}},ze?te.default.createElement(KE,{evaluation:C,onChanged:I,onDelete:()=>q(C),deleting:P===C.id}):te.default.createElement(te.default.Fragment,null,Y?.status==="failed"?te.default.createElement("div",{style:{padding:16,fontSize:13,color:"var(--color-error-text)"}},Y.error_message):Y?.scores?te.default.createElement("div",{style:{padding:16,display:"flex",flexDirection:"column",gap:12}},Y.scores._verdict&&te.default.createElement("div",{style:{padding:"10px 12px",borderRadius:10,border:"1px solid var(--color-border-light)",display:"flex",flexDirection:"column",gap:6}},te.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"}},te.default.createElement("span",{style:{fontFamily:Ce,fontSize:12,fontWeight:600,color:"var(--color-text-primary)"}},Y.scores._verdict.winner),te.default.createElement(jn,{tone:"info",size:10,style:{padding:"1px 6px"}},"judge's pick"),te.default.createElement("span",{style:{marginLeft:"auto",...Qi(11)}},`judged by ${Y.scores._verdict.judge}`)),te.default.createElement("div",{style:{fontSize:12,lineHeight:"18px",color:"var(--color-text-cell)",textWrap:"pretty"}},te.default.createElement(yt,{size:10,color:"var(--color-text-muted)",style:{marginRight:8}},"Verdict"),Y.scores._verdict.rationale)),Y.scores._missing_models&&te.default.createElement("div",{style:{fontSize:12,fontStyle:"italic",color:"var(--color-text-muted)"}},"No recorded generations for: ",Y.scores._missing_models.join(", ")," \u2014 run the agent under those models first"),Object.entries(Y.scores).filter(([cr])=>!cr.startsWith("_")).map(([cr,Bn])=>Ae(Bn)?te.default.createElement("div",{key:cr,style:{display:"flex",flexDirection:"column",gap:4}},te.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)"}},cr.replace(/_/g," ")),Object.entries(Bn).map(([Ri,ec])=>te.default.createElement(n$,{key:Ri,label:Ri,score:ec,indent:!0,mono:!0}))):te.default.createElement(n$,{key:cr,label:cr,score:Bn}))):te.default.createElement("div",{style:{padding:16,...Qi(11)}},"[ ] no runs yet"),te.default.createElement("div",{style:{padding:16,background:"var(--color-background)",display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(160px, 1fr))",gap:16,fontSize:13}},te.default.createElement("div",null,te.default.createElement(yt,{size:10,color:"var(--color-text-muted)"},"Judge"),te.default.createElement("div",{style:{marginTop:4,fontFamily:Ce,fontSize:12,color:"var(--color-text-primary)"}},C.judge_kind==="judge_defined"?`judge-defined KPIs${C.judge_model?` (${C.judge_model})`:""}`:C.judge_kind==="llm"?C.judge_model||"llm judge":"rules")),te.default.createElement("div",{style:{gridColumn:"span 2",minWidth:0}},te.default.createElement(yt,{size:10,color:"var(--color-text-muted)"},"Criteria"),te.default.createElement("div",{style:{marginTop:4,fontFamily:Ce,fontSize:12,color:"var(--color-text-primary)",textWrap:"pretty"}},(C.criteria||[]).map(cr=>String(cr.key).replace(/_/g," ")).join(" \xB7 ")||"\u2014")),te.default.createElement("div",null,te.default.createElement(yt,{size:10,color:"var(--color-text-muted)"},"Samples"),te.default.createElement("div",{style:{marginTop:4,fontFamily:Ce,fontSize:12,color:"var(--color-text-primary)"}},tt&&Ln>0?`${Nn} / ${Ln} passed`:"\u2014")),te.default.createElement("div",null,te.default.createElement(yt,{size:10,color:"var(--color-text-muted)"},"Last run"),te.default.createElement("div",{style:{marginTop:4,fontFamily:Ce,fontSize:12,color:"var(--color-text-primary)"},title:"Estimated cost, tokens and wall-clock runtime of the latest run"},Ise(Y?.usage)||"\u2014")),te.default.createElement("div",{style:{display:"flex",alignItems:"flex-end",justifyContent:"flex-end",gap:8}},te.default.createElement(on,{size:"sm",onClick:cr=>{cr.stopPropagation(),U(C.id)},disabled:k===C.id},k===C.id?"Running\u2026":"Run again"),te.default.createElement(on,{variant:"danger",size:"sm",onClick:cr=>{cr.stopPropagation(),q(C)},disabled:P===C.id,title:"Delete this evaluation and its runs"},P===C.id?"Deleting\u2026":"Delete"))))))})),ee.length===0&&!w&&te.default.createElement(kn,{style:{textAlign:"center",padding:"48px 20px"}},te.default.createElement("div",{style:{fontSize:16,fontWeight:600,color:"var(--color-text-primary)"}},"No evaluations yet"),te.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")))}var ke=re(ne());var jse=e=>new Date(`${e}T00:00:00`),zse=[{id:"overview",label:"Overview"},{id:"traces",label:"Traces"},{id:"interactions",label:"Interactions"}];function XE({agent:e,onBack:t,embedded:r=!1}){let{darkMode:n}=At(),a=$a(n),[i,o]=(0,ke.useState)(null),[l,s]=(0,ke.useState)(!0),{timeWindow:u,days:c}=Gi(),[d,f]=(0,ke.useState)("overview"),p=e.telemetry_agent_class||(()=>{let x=e.agent_class_name||`${(e.name||"").replace(/[^a-zA-Z0-9]+(.)/g,(S,w)=>w.toUpperCase()).replace(/^./,S=>S.toUpperCase()).replace(/[^a-zA-Z0-9]/g,"")}`;return x.endsWith("Agent")?x:`${x}Agent`})();(0,ke.useEffect)(()=>{m()},[e?.id,c]);let m=async()=>{if(e?.id){s(!0);try{let S=await(await fetch(`/api/agents/${e.id}/analytics?days=${c}`)).json();o(S)}catch(x){console.error("Failed to load analytics:",x)}finally{s(!1)}}},y=x=>x?x<1e3?`${x}ms`:`${(x/1e3).toFixed(2)}s`:"-",h=x=>x?x>=1e6?`${(x/1e6).toFixed(1)}M`:x>=1e3?`${(x/1e3).toFixed(1)}K`:x.toString():"0",v=x=>{switch(x){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(l&&!i)return ke.default.createElement("div",{className:"flex items-center justify-center h-64"},ke.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));let g=i?.runs_by_day?.length>0?Math.max(...i.runs_by_day.map(x=>x.count)):1,b=r?"overview":d;return ke.default.createElement("div",{className:"space-y-6"},r?ke.default.createElement("div",{className:"flex items-center justify-end gap-2"},u.minutes<1440&&ke.default.createElement("span",{className:"text-xs",style:{color:a.textMuted},title:"This view aggregates by day"},"showing 1 day"),ke.default.createElement(Xi,null)):ke.default.createElement("div",{className:"flex items-center justify-between"},ke.default.createElement("div",{className:"flex items-center space-x-4"},ke.default.createElement("button",{onClick:t,className:"p-2 transition-colors",style:{color:a.textMuted}},ke.default.createElement("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ke.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"}))),ke.default.createElement("div",null,ke.default.createElement("h1",{className:"text-2xl font-bold",style:{color:a.textPrimary}},e.name," Analytics"),ke.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},"Performance metrics and usage data"))),ke.default.createElement("div",{className:"flex items-center gap-2"},u.minutes<1440&&ke.default.createElement("span",{className:"text-xs",style:{color:a.textMuted},title:"This view aggregates by day"},"showing 1 day"),ke.default.createElement(Xi,null))),!r&&ke.default.createElement("div",{className:"flex rounded-lg p-1 w-fit",style:{background:a.mutedBg}},zse.map(x=>ke.default.createElement("button",{key:x.id,onClick:()=>f(x.id),className:`px-4 py-1.5 text-sm rounded-md transition-colors ${d===x.id?"shadow":""}`,style:d===x.id?{background:a.cardBg,color:a.textPrimary}:{color:a.textSecondary}},x.label))),b==="traces"&&ke.default.createElement(Yu,{agentClass:p,embedded:!0}),b==="interactions"&&ke.default.createElement(el,{agentId:e.id,embedded:!0}),b==="overview"&&ke.default.createElement(ke.default.Fragment,null,ke.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4"},ke.default.createElement(j1,{title:"Total Runs",value:i?.summary?.total_runs||0,icon:ke.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ke.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 10V3L4 14h7v7l9-11h-7z"})),color:"rose",colors:a,darkMode:n}),ke.default.createElement(j1,{title:"Success Rate",value:`${i?.summary?.success_rate||0}%`,icon:ke.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ke.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:a,darkMode:n}),ke.default.createElement(j1,{title:"Avg Duration",value:y(i?.summary?.avg_duration_ms),icon:ke.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ke.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:a,darkMode:n}),ke.default.createElement(j1,{title:"Total Tokens",value:h(i?.summary?.total_tokens),icon:ke.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ke.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:a,darkMode:n})),ke.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6"},ke.default.createElement("div",{className:"lg:col-span-2 rounded-xl border p-6",style:{background:a.cardBg,borderColor:a.cardBorder}},ke.default.createElement("h3",{className:"font-semibold mb-4",style:{color:a.textPrimary}},"Runs Over Time"),i?.runs_by_day?.length>0?ke.default.createElement("div",{className:"h-48"},ke.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},i.runs_by_day.map((x,S)=>ke.default.createElement("div",{key:x.date,className:"flex-1 flex flex-col items-center group"},ke.default.createElement("div",{className:"relative w-full"},ke.default.createElement("div",{className:"w-full bg-red-500 rounded-t transition-all hover:bg-red-600",style:{height:`${x.count/g*150}px`,minHeight:x.count>0?"4px":"0"}}),ke.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"},x.count," runs")),(S===0||S===i.runs_by_day.length-1||i.runs_by_day.length<=7)&&ke.default.createElement("span",{className:"text-xs mt-2 transform -rotate-45 origin-left",style:{color:a.textMuted}},jse(x.date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))))):ke.default.createElement("div",{className:"h-48 flex items-center justify-center",style:{color:a.textMuted}},"No data for this period")),ke.default.createElement("div",{className:"rounded-xl border p-6",style:{background:a.cardBg,borderColor:a.cardBorder}},ke.default.createElement("h3",{className:"font-semibold mb-4",style:{color:a.textPrimary}},"Status Breakdown"),Object.keys(i?.status_breakdown||{}).length>0?ke.default.createElement("div",{className:"space-y-3"},Object.entries(i.status_breakdown).map(([x,S])=>{let w=i?.summary?.total_runs||1,_=(S/w*100).toFixed(1);return ke.default.createElement("div",{key:x},ke.default.createElement("div",{className:"flex justify-between text-sm mb-1"},ke.default.createElement("span",{className:"capitalize",style:{color:a.textSecondary}},x),ke.default.createElement("span",{className:"font-medium",style:{color:a.textPrimary}},S," (",_,"%)")),ke.default.createElement("div",{className:"h-2 rounded-full overflow-hidden",style:{background:a.trackBg}},ke.default.createElement("div",{className:`h-full ${v(x)} rounded-full transition-all`,style:{width:`${_}%`}})))})):ke.default.createElement("div",{className:"h-32 flex items-center justify-center",style:{color:a.textMuted}},"No runs yet"))),i?.recent_errors?.length>0&&ke.default.createElement("div",{className:"rounded-xl border p-6",style:{background:a.cardBg,borderColor:a.cardBorder}},ke.default.createElement("h3",{className:"font-semibold mb-4",style:{color:a.textPrimary}},"Recent Errors"),ke.default.createElement("div",{className:"space-y-3"},i.recent_errors.map(x=>ke.default.createElement("div",{key:x.id,className:"flex items-start space-x-3 p-3 rounded-lg",style:{background:n?"rgba(220,38,38,0.12)":"#fef2f2"}},ke.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"},ke.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"})),ke.default.createElement("div",{className:"flex-1 min-w-0"},ke.default.createElement("p",{className:"text-sm",style:{color:n?"#fca5a5":"#991b1b"}},x.error||"Unknown error"),ke.default.createElement("p",{className:"text-xs mt-1",style:{color:n?"#f87171":"#dc2626"}},new Date(x.created_at).toLocaleString())))))),ke.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4"},ke.default.createElement("div",{className:"rounded-lg p-4",style:{background:a.innerBg}},ke.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},"Completed Runs"),ke.default.createElement("p",{className:"text-2xl font-bold",style:{color:a.textPrimary}},i?.summary?.completed_runs||0)),ke.default.createElement("div",{className:"rounded-lg p-4",style:{background:a.innerBg}},ke.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},"Failed Runs"),ke.default.createElement("p",{className:"text-2xl font-bold",style:{color:a.textPrimary}},i?.summary?.failed_runs||0)),ke.default.createElement("div",{className:"rounded-lg p-4",style:{background:a.innerBg}},ke.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},"Avg Tokens/Run"),ke.default.createElement("p",{className:"text-2xl font-bold",style:{color:a.textPrimary}},h(i?.summary?.avg_tokens_per_run))),ke.default.createElement("div",{className:"rounded-lg p-4",style:{background:a.innerBg}},ke.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},"Period"),ke.default.createElement("p",{className:"text-2xl font-bold",style:{color:a.textPrimary}},i?.period_days||30," days")))))}var i$={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 j1({title:e,value:t,icon:r,color:n,colors:a,darkMode:i}){let[o,l,s]=i$[n]||i$.rose;return ke.default.createElement("div",{className:"rounded-xl border p-4",style:{background:a.cardBg,borderColor:a.cardBorder}},ke.default.createElement("div",{className:"flex items-center justify-between"},ke.default.createElement("div",null,ke.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},e),ke.default.createElement("p",{className:"text-2xl font-bold mt-1",style:{color:a.textPrimary}},t)),ke.default.createElement("div",{className:"p-3 rounded-lg",style:{background:i?l:s,color:o}},r)))}var Lse=[{id:"config",label:"Configuration"},{id:"instructions",label:"Instructions"},{id:"tools",label:"Tools"},{id:"versions",label:"Versions"},{id:"code",label:"Code"}],s$=[{id:"traces",label:"Traces"},{id:"metrics",label:"Metrics"},{id:"interactions",label:"Interactions"},{id:"evals",label:"Evals"},{id:"feedback",label:"Feedback"}],Bse=s$.map(e=>e.id),o$={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"]}},$se={active:"success",draft:"warning",archived:"neutral",failed:"error",trial:"info"};function bs({tone:e="neutral",mono:t=!1,darkMode:r,children:n}){let[a,i]=(o$[e]||o$.neutral)[r?"dark":"light"];return ae.default.createElement("span",{style:{background:a,color:i,borderRadius:"999px",padding:"2px 8px",fontSize:"11px",fontWeight:600,fontFamily:t?$e.mono:void 0,whiteSpace:"nowrap"}},n)}function zn({variant:e="secondary",size:t="md",onClick:r,disabled:n,colors:a,title:i,testId:o,children:l}){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?a.mutedBg:Wr,color:n?a.textMuted:"#ffffff",border:"1px solid transparent"},secondary:{background:"transparent",color:a.textCell,border:`1px solid ${a.inputBorder}`},danger:{background:"transparent",color:"#dc2626",border:"1px solid rgba(220,38,38,0.4)"}};return ae.default.createElement("button",{type:"button",onClick:r,disabled:n,title:i,"data-testid":o,style:{...u,...c[e]||c.secondary}},l)}function l$({tabs:e,active:t,onChange:r,colors:n}){return ae.default.createElement("div",{style:{display:"flex",alignItems:"center"}},e.map(a=>{let i=t===a.id;return ae.default.createElement("button",{key:a.id,type:"button",onClick:()=>r(a.id),style:{padding:"10px 12px",marginBottom:"-1px",background:"none",border:"none",borderBottom:`2px solid ${i?Wr:"transparent"}`,color:i?Wr:n.textSecondary,fontSize:"13px",fontWeight:i?600:500,cursor:"pointer",whiteSpace:"nowrap"}},a.label)}))}function z1({agent:e,meta:t,onSave:r,onDelete:n,onRun:a,onDuplicate:i,onRunReport:o,onBack:l,isLoading:s,initialTab:u}){let{darkMode:c}=At(),d=$a(c),[f,p]=(0,ae.useState)(u||"config"),[m,y]=(0,ae.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||[],mcp_servers:e.mcpServers||e.mcp_servers||[],model_config:e.modelConfig||e.model_config||{temperature:.7},status:e.status||"draft"}),[h,v]=(0,ae.useState)([]),[g,b]=(0,ae.useState)(!1),[x,S]=(0,ae.useState)(""),[w,_]=(0,ae.useState)(td),k=e.telemetry_agent_class||e.telemetryAgentClass||(()=>{let F=e.agent_class_name||e.agentClassName||`${(e.name||"").replace(/[^a-zA-Z0-9]+(.)/g,(N,O)=>O.toUpperCase()).replace(/^./,N=>N.toUpperCase()).replace(/[^a-zA-Z0-9]/g,"")}`;return F.endsWith("Agent")?F:`${F}Agent`})();(0,ae.useEffect)(()=>{let F=!1;return $y(m.provider).then(N=>{F||N.length===0||_(O=>({...O,[m.provider]:N}))}),()=>{F=!0}},[m.provider]),(0,ae.useEffect)(()=>{let F=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||[],mcp_servers:e.mcpServers||e.mcp_servers||[],model_config:e.modelConfig||e.model_config||{temperature:.7},status:e.status||"draft"});b(F)},[m,e]),(0,ae.useEffect)(()=>{f==="versions"?A():f==="code"&&P()},[f]);let A=async()=>{try{let N=await(await fetch(`/api/agents/${e.id}/versions`)).json();v(N.versions)}catch(F){console.error("Failed to load versions:",F)}},P=async()=>{try{let N=await(await fetch(`/api/agents/${e.id}/export`)).json();S(N.code)}catch(F){console.error("Failed to load code preview:",F)}},K=(F,N)=>{y(O=>({...O,[F]:N}))},z=(F,N)=>{y(O=>{let I=O[F]||[],D=I.includes(N)?I.filter(T=>T!==N):[...I,N];return{...O,[F]:D}})},Q=()=>{r(m)},M=Bse.includes(f);return ae.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},ae.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:"12px"}},ae.default.createElement("button",{type:"button",onClick:l,title:"Back to agents",style:{fontFamily:$e.mono,fontSize:"13px",color:d.textSecondary,background:"none",border:"none",cursor:"pointer",padding:"4px 2px",marginTop:"10px"}},"<-"),ae.default.createElement(fr,{size:44}),ae.default.createElement("div",{style:{flex:1,minWidth:0}},ae.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}},ae.default.createElement("h1",{style:{fontSize:"20px",fontWeight:700,color:d.textPrimary,margin:0}},m.name||"Untitled agent"),ae.default.createElement(bs,{tone:$se[m.status]||"neutral",darkMode:c},m.status),g&&ae.default.createElement(bs,{tone:"info",darkMode:c},"unsaved")),ae.default.createElement("p",{style:{fontSize:"13px",color:d.textSecondary,margin:"4px 0 0"}},m.description||"No description")),ae.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexShrink:0}},i&&ae.default.createElement(zn,{variant:"secondary",colors:d,onClick:i},"Duplicate"),ae.default.createElement(zn,{variant:"primary",colors:d,onClick:a},"Run Agent"))),ae.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"20px",borderBottom:`1px solid ${d.cardBorder}`,overflowX:"auto"}},ae.default.createElement(l$,{tabs:Lse,active:f,onChange:p,colors:d}),ae.default.createElement("div",{style:{width:"1px",height:"18px",background:d.borderStrong,flexShrink:0}}),ae.default.createElement(l$,{tabs:s$,active:f,onChange:p,colors:d})),M?ae.default.createElement("div",null,f==="traces"&&ae.default.createElement(Yu,{agentClass:k,embedded:!0}),f==="metrics"&&ae.default.createElement(XE,{agent:e,embedded:!0}),f==="interactions"&&ae.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},o&&ae.default.createElement("div",{style:{display:"flex",justifyContent:"flex-end"}},ae.default.createElement("button",{type:"button",onClick:o,style:{background:"none",border:"none",cursor:"pointer",fontFamily:$e.mono,fontSize:"11px",color:"#3b82f6"}},"run report ->")),ae.default.createElement(el,{agentId:e.id,embedded:!0})),f==="evals"&&ae.default.createElement(Gv,{embedded:!0,agentId:e.id}),f==="feedback"&&ae.default.createElement(Kse,{colors:d})):ae.default.createElement("div",{style:{background:d.cardBg,border:`1px solid ${d.cardBorder}`,borderRadius:"12px",padding:"20px"}},f==="config"&&ae.default.createElement(Use,{formData:m,updateField:K,providerModels:w,colors:d,darkMode:c,onDelete:n}),f==="instructions"&&ae.default.createElement(Fse,{formData:m,updateField:K,meta:t,toggleArrayItem:z,colors:d}),f==="tools"&&ae.default.createElement(Wse,{formData:m,meta:t,toggleArrayItem:z,colors:d}),f==="versions"&&ae.default.createElement(Hse,{versions:h,agentId:e.id,onRestore:A,colors:d,darkMode:c}),f==="code"&&ae.default.createElement(Vse,{code:x,colors:d})),g&&ae.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)"}},ae.default.createElement("span",{style:{fontSize:"13px",color:d.textSecondary}},"Unsaved changes"),ae.default.createElement("div",{style:{display:"flex",gap:"8px"}},ae.default.createElement(zn,{variant:"primary",size:"sm",colors:d,onClick:Q,disabled:s},s?"Saving\u2026":"Save Changes"))))}var Ji=e=>({display:"block",fontSize:"13px",fontWeight:500,color:e.textCell,marginBottom:"6px"}),al=e=>({width:"100%",padding:"8px 12px",borderRadius:"8px",border:`1px solid ${e.inputBorder}`,background:e.inputBg,color:e.textPrimary,fontFamily:"inherit",fontSize:"13px"}),u$=e=>({fontFamily:$e.mono,fontSize:"11px",fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:e.textSecondary});function Use({formData:e,updateField:t,providerModels:r,colors:n,darkMode:a,onDelete:i}){return ae.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},ae.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},ae.default.createElement("div",null,ae.default.createElement("label",{style:Ji(n)},"Agent Name"),ae.default.createElement("input",{type:"text",value:e.name,onChange:o=>t("name",o.target.value),className:"aa-field",style:al(n)})),ae.default.createElement("div",null,ae.default.createElement("label",{style:Ji(n)},"Preset Type"),ae.default.createElement("select",{value:e.preset_type,onChange:o=>t("preset_type",o.target.value),className:"aa-field",style:al(n)},Object.keys(Rc).map(o=>ae.default.createElement("option",{key:o,value:o},o))))),ae.default.createElement("div",null,ae.default.createElement("label",{style:Ji(n)},"Description"),ae.default.createElement("textarea",{value:e.description,onChange:o=>t("description",o.target.value),rows:3,className:"aa-field",style:{...al(n),resize:"vertical"}})),ae.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},ae.default.createElement("div",null,ae.default.createElement("label",{style:Ji(n)},"Provider"),ae.default.createElement("select",{value:e.provider,onChange:o=>{t("provider",o.target.value),t("model",r[o.target.value][0])},className:"aa-field",style:al(n)},Object.keys(r).map(o=>ae.default.createElement("option",{key:o,value:o},o.charAt(0).toUpperCase()+o.slice(1))))),ae.default.createElement("div",null,ae.default.createElement("label",{style:Ji(n)},"Model"),ae.default.createElement("select",{value:e.model,onChange:o=>t("model",o.target.value),className:"aa-field",style:{...al(n),fontFamily:$e.mono}},(r[e.provider]?.includes(e.model)?r[e.provider]:[e.model,...r[e.provider]||[]]).filter(Boolean).map(o=>ae.default.createElement("option",{key:o,value:o},o))))),ae.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},ae.default.createElement("div",null,ae.default.createElement("label",{style:Ji(n)},"Temperature"," ",ae.default.createElement("span",{style:{fontFamily:$e.mono,color:n.textSecondary}},e.model_config.temperature)),ae.default.createElement("input",{type:"range",min:"0",max:"1",step:"0.1",value:e.model_config.temperature,onChange:o=>t("model_config",{...e.model_config,temperature:parseFloat(o.target.value)}),style:{width:"100%",accentColor:Wr}})),ae.default.createElement("div",null,ae.default.createElement("label",{style:Ji(n)},"Status"),ae.default.createElement("select",{value:e.status,onChange:o=>t("status",o.target.value),className:"aa-field",style:al(n)},ae.default.createElement("option",{value:"draft"},"Draft"),ae.default.createElement("option",{value:"active"},"Active"),ae.default.createElement("option",{value:"archived"},"Archived")))),i&&ae.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",borderTop:`1px solid ${n.cardBorder}`,paddingTop:"16px"}},ae.default.createElement("div",null,ae.default.createElement("div",{style:u$(n)},"Danger zone"),ae.default.createElement("p",{style:{fontSize:"13px",color:n.textMuted,margin:"4px 0 0"}},"Deleting an agent removes its configuration and version history.")),ae.default.createElement(zn,{variant:"danger",size:"sm",colors:n,onClick:i},"Delete Agent")))}function Fse({formData:e,updateField:t,meta:r,toggleArrayItem:n,colors:a}){let i=e.action_prompts||[],o=(u,c)=>{t("action_prompts",i.map((d,f)=>f===u?{...d,...c}:d))},l=()=>{t("action_prompts",[...i,{name:"",prompt:"",expose_as_tool:!1}])},s=u=>{t("action_prompts",i.filter((c,d)=>d!==u))};return ae.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},ae.default.createElement("div",null,ae.default.createElement("label",{style:Ji(a)},"System Instructions"),ae.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:{...al(a),fontFamily:$e.mono,resize:"vertical"}})),ae.default.createElement("div",null,ae.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"6px"}},ae.default.createElement("label",{style:{...Ji(a),marginBottom:0}},"Action Prompts"),ae.default.createElement(zn,{variant:"secondary",size:"sm",colors:a,onClick:l},"+ Add action")),ae.default.createElement("p",{style:{fontSize:"12px",color:a.textMuted,margin:"0 0 12px"}},"Named actions run with their prompt stacked below the system instructions. The default ",ae.default.createElement("span",{style:{fontFamily:$e.mono}},"#ask")," action uses the system instructions alone."),i.length>0&&ae.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},i.map((u,c)=>ae.default.createElement("div",{key:c,style:{border:`1px solid ${a.cardBorder}`,borderRadius:"10px",padding:"12px",display:"flex",flexDirection:"column",gap:"8px"}},ae.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},ae.default.createElement("span",{style:{fontFamily:$e.mono,fontSize:"13px",color:a.textMuted}},"#"),ae.default.createElement("input",{type:"text",value:u.name,onChange:d=>o(c,{name:d.target.value.toLowerCase().replace(/[^a-z0-9_]/g,"_")}),placeholder:"action_name",className:"aa-field",style:{...al(a),flex:1,padding:"6px 10px",fontFamily:$e.mono}}),ae.default.createElement("label",{style:{display:"flex",alignItems:"center",gap:"6px",fontSize:"12px",color:a.textSecondary,whiteSpace:"nowrap"}},ae.default.createElement("input",{type:"checkbox",checked:!!u.expose_as_tool,onChange:d=>o(c,{expose_as_tool:d.target.checked}),style:{accentColor:Wr}}),"Expose as tool"),ae.default.createElement("button",{type:"button",onClick:()=>s(c),title:"Remove action",style:{fontFamily:$e.mono,fontSize:"12px",color:a.textMuted,background:"none",border:"none",cursor:"pointer",padding:"4px"}},"[x]")),ae.default.createElement("textarea",{value:u.prompt,onChange:d=>o(c,{prompt:d.target.value}),placeholder:"This action's system prompt, applied on top of the base instructions...",rows:4,className:"aa-field",style:{...al(a),fontFamily:$e.mono,resize:"vertical"}}))))),ae.default.createElement("div",null,ae.default.createElement("label",{style:Ji(a)},"Instruction Sets"),ae.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px"}},r.instructionSets?.map(u=>{let c=e.instruction_sets.includes(u);return ae.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?Wr:a.inputBorder}`,background:c?Wr:"transparent",color:c?"#ffffff":a.textCell}},u)}))))}function Wse({formData:e,meta:t,toggleArrayItem:r,colors:n}){let a=l=>({terminal:"$",playwright:">",filesystem:"/",code:"<>",database:"#",slack:"@",fetch:"~",search:"?",edit:"*",translate:"[]",memory:"M",ui:"[=]"})[l]||"[]",i=l=>l.includes("_"),o=l=>i(l)?l.replace(/_/g," "):l;return ae.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},ae.default.createElement("p",{style:{fontSize:"13px",color:n.textSecondary,margin:0}},"Select the tools your agent can use."),ae.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(140px, 1fr))",gap:"12px"}},t.availableTools?.map(l=>{let s=e.tools.includes(l);return ae.default.createElement("button",{key:l,type:"button",onClick:()=>r("tools",l),style:{padding:"14px",borderRadius:"12px",textAlign:"center",cursor:"pointer",border:`1px solid ${s?Wr:n.cardBorder}`,background:s?"rgba(239,68,68,0.08)":"transparent",color:s?Wr:n.textCell}},ae.default.createElement("span",{style:{display:"block",fontFamily:$e.mono,fontSize:"20px",marginBottom:"6px"}},a(l)),ae.default.createElement("span",{style:{fontSize:i(l)?"12px":"13px",fontWeight:500,textTransform:"capitalize",fontFamily:i(l)?$e.mono:"inherit"}},o(l)))})),e.tools.length>0&&ae.default.createElement("div",{style:{background:n.innerBg,borderRadius:"10px",padding:"14px"}},ae.default.createElement("div",{style:{...u$(n),marginBottom:"10px"}},"Selected tools \xB7 ",e.tools.length),ae.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px"}},e.tools.map(l=>ae.default.createElement("span",{key:l,style:{fontFamily:$e.mono,fontSize:"11px",padding:"3px 8px",borderRadius:"6px",border:`1px solid ${n.inputBorder}`,color:n.textCell}},a(l)," ",l)))))}function Hse({versions:e,agentId:t,onRestore:r,colors:n,darkMode:a}){let i=async o=>{if(confirm("Restore this version? This will create a new version with the restored configuration."))try{await fetch(`/api/agents/${t}/restore`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({version_id:o})}),r()}catch(l){console.error("Failed to restore version:",l)}};return ae.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"16px"}},ae.default.createElement("p",{style:{fontSize:"13px",color:n.textSecondary,margin:0}},"View and restore previous versions of this agent."),e.length>0?ae.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"10px"}},e.map(o=>{let l=o.is_latest||o.isLatest;return ae.default.createElement("div",{key:o.id,style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"12px",padding:"14px",borderRadius:"10px",border:`1px solid ${l?Wr:n.cardBorder}`,background:l?"rgba(239,68,68,0.06)":"transparent"}},ae.default.createElement("div",{style:{minWidth:0}},ae.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},ae.default.createElement("span",{style:{fontFamily:$e.mono,fontSize:"13px",fontWeight:600,color:n.textPrimary}},"v",o.version_number||o.versionNumber),l&&ae.default.createElement(bs,{tone:"error",darkMode:a},"current")),ae.default.createElement("p",{style:{fontSize:"13px",color:n.textCell,margin:"4px 0 0"}},o.change_summary||o.changeSummary),ae.default.createElement("p",{style:{fontFamily:$e.mono,fontSize:"11px",color:n.textMuted,margin:"4px 0 0"}},new Date(o.created_at||o.createdAt).toLocaleString())),!l&&ae.default.createElement(zn,{variant:"secondary",size:"sm",colors:n,onClick:()=>i(o.id)},"Restore"))})):ae.default.createElement(c$,{colors:n,glyph:"[#]",title:"No version history",hint:"Saving a change records a new version."}))}function Vse({code:e,colors:t}){let r=()=>{navigator.clipboard.writeText(e)};return ae.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},ae.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"}},ae.default.createElement("p",{style:{fontSize:"13px",color:t.textSecondary,margin:0}},"Generated Ruby code for this agent."),ae.default.createElement(zn,{variant:"secondary",size:"sm",colors:t,onClick:r},"Copy")),ae.default.createElement("pre",{style:{padding:"16px",background:"#111827",color:"#e5e7eb",borderRadius:"10px",overflowX:"auto",fontFamily:$e.mono,fontSize:"12px",lineHeight:1.6,margin:0}},ae.default.createElement("code",null,e||"Loading...")))}function Kse({colors:e}){return ae.default.createElement("div",{style:{background:e.cardBg,border:`1px solid ${e.cardBorder}`,borderRadius:"12px",padding:"20px"}},ae.default.createElement(c$,{colors:e,glyph:"[?]",title:"No feedback recorded",hint:"Thumbs and comments are not captured yet. Once an interaction feedback source is recorded, CSAT and per-trace comments appear here."}))}function c$({colors:e,glyph:t,title:r,hint:n}){return ae.default.createElement("div",{style:{textAlign:"center",padding:"40px 20px"}},ae.default.createElement("div",{style:{fontFamily:$e.mono,fontSize:"20px",color:e.textMuted}},t),ae.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,color:e.textPrimary,marginTop:"10px"}},r),ae.default.createElement("p",{style:{fontSize:"13px",color:e.textMuted,margin:"6px auto 0",maxWidth:"420px"}},n))}var W=re(ne());async function $f(){let e=window.ACTIVE_AGENT_DASHBOARD?.meta?.upgradeUrl;if(!e)throw new Error("This dashboard has no billing configured.");window.location.href=e}var qse={llm:{role:"assistant",label:"LLM"},tool:{role:"tool",label:"Tool"},agent:{role:"developer",label:"Agent"},mcp:{role:"system",label:"MCP"}},Yse=(e,t)=>{let r=qse[e]||{role:e,label:e};return{...mr(r.role,t),label:r.label}},ZE={complete:"success",failed:"error",running:"info",pending:"warning",cancelled:"neutral"},Gse=["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"],Xse=["user","assistant","tool"],Zse=1200,Qse=600*1e3,L1=e=>e?e<1e3?`${e}ms`:`${(e/1e3).toFixed(2)}s`:"-",d$=e=>{if(!e)return null;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}},QE=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()]},ws=e=>e?.context_id??e?.output_metadata?.context_id??null,Xv=e=>e.json().catch(()=>({})),f$=({open:e,color:t})=>W.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}},W.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}));function Jse({run:e,darkMode:t,colors:r,expanded:n,onToggle:a}){let i=QE(e),o=S1(t);return W.default.createElement("div",{"data-testid":"runner-activity",className:"space-y-2"},i.map(l=>{let s=!!n[l.eid],u=!!(l.input||l.output),c=Yse(l.kind,t);return W.default.createElement("div",{key:l.eid,"data-testid":"runner-activity-event"},W.default.createElement("div",{className:`flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 ${u?"cursor-pointer":""}`,onClick:u?()=>a(l.eid):void 0,title:u?"Click to inspect input/output":void 0,style:s?{background:t?"rgba(255,255,255,0.04)":"rgba(0,0,0,0.03)"}:{}},W.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),W.default.createElement("div",{className:"min-w-0 flex-1"},W.default.createElement("div",{className:"text-sm break-words",style:{color:r.textPrimary}},l.label,l.output&&!s&&W.default.createElement("span",{style:{color:r.textMuted}}," \u201C",l.output.slice(0,160),l.output.length>160?"\u2026":"","\u201D")),W.default.createElement("div",{className:"text-xs mt-0.5 font-mono flex items-center gap-2 flex-wrap",style:{color:r.textMuted}},l.status==="started"?W.default.createElement("span",{className:"animate-pulse",style:{color:"#3b82f6"}},"running\u2026"):W.default.createElement("span",{style:l.status==="error"?{color:"#ef4444"}:void 0},l.status==="error"?"failed":"\u2713",l.duration_ms!=null&&` ${L1(l.duration_ms)}`),l.at&&W.default.createElement("span",null,new Date(l.at).toLocaleTimeString()))),u&&W.default.createElement(f$,{open:s,color:r.textMuted})),s&&W.default.createElement("div",{className:"ml-3 mt-1 mb-2 pl-4 space-y-2 border-l-2",style:{borderColor:c.color+"55"}},l.input&&W.default.createElement("div",null,W.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:r.textMuted}},"Input"),W.default.createElement("pre",{style:{...o,whiteSpace:"pre-wrap",maxHeight:"160px",overflowY:"auto"}},d$(l.input))),l.output&&W.default.createElement("div",null,W.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:r.textMuted}},l.status==="error"?"Error":"Result"),W.default.createElement("pre",{style:{...o,whiteSpace:"pre-wrap",maxHeight:"224px",overflowY:"auto",...l.status==="error"?{background:t?"rgba(239,68,68,0.12)":"#fef2f2",color:t?"#fca5a5":"#b91c1c"}:{}}},d$(l.output)))))}))}function Rse({run:e,darkMode:t,colors:r}){return e?W.default.createElement("div",{className:"flex items-center gap-3 flex-wrap text-xs",style:{color:r.textMuted}},W.default.createElement("span",{"data-testid":"runner-status",style:{display:"inline-flex"}},W.default.createElement(bs,{tone:ZE[e.status]||"neutral",darkMode:t},e.status)),e.output_metadata?.model&&W.default.createElement("span",{className:"font-mono",title:"Model that generated this run"},e.output_metadata.provider,"/",e.output_metadata.model),e.duration_ms?W.default.createElement("span",null,L1(e.duration_ms)):null,e.total_tokens?W.default.createElement("span",null,e.total_tokens," tokens"):null,e.trace_id&&W.default.createElement("a",{href:Je(`/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 JE({agent:e,onBack:t}){let{darkMode:r}=At(),n=$a(r),a=e.action_prompts||e.actionPrompts||[],i=["ask",...a.map(ie=>ie.name).filter(Boolean)],[o,l]=(0,W.useState)("ask"),[s,u]=(0,W.useState)(""),[c,d]=(0,W.useState)([]),[f,p]=(0,W.useState)(!1),[m,y]=(0,W.useState)([]),[h,v]=(0,W.useState)(null),[g,b]=(0,W.useState)(null),[x,S]=(0,W.useState)(null),[w,_]=(0,W.useState)([]),[k,A]=(0,W.useState)(!1),[P,K]=(0,W.useState)(null),[z,Q]=(0,W.useState)(null),[M,F]=(0,W.useState)(null),[N,O]=(0,W.useState)(null),[I,D]=(0,W.useState)({}),[T,j]=(0,W.useState)(null),[R,U]=(0,W.useState)(!1),[q,ee]=(0,W.useState)(null),[fe,pe]=(0,W.useState)(!1),[Pe,oe]=(0,W.useState)(!1),[Te,V]=(0,W.useState)(null),[J,E]=(0,W.useState)(""),[L,X]=(0,W.useState)(!1),[B,Ae]=(0,W.useState)(null),C=(0,W.useRef)(null),Y=(0,W.useRef)(null),ve=(0,W.useRef)(0),ze=(0,W.useRef)(!0),tt=(0,W.useRef)(null),Lt=(0,W.useRef)([]),ct=(0,W.useRef)(null),Nn=(0,W.useRef)(null),Ln=(0,W.useRef)(null),na=(0,W.useRef)(null),_i=(g?.messages||[]).filter(ie=>Xse.includes(ie.role));(0,W.useEffect)(()=>{tt.current=z},[z]),(0,W.useEffect)(()=>{Lt.current=c},[c]),(0,W.useEffect)(()=>(ze.current=!0,Ru(),()=>{ze.current=!1,ve.current+=1,eo(tt.current),eo({attachments:Lt.current}),Q(null),d([])}),[e.id]),(0,W.useEffect)(()=>{cr(o)},[e.id,o]),(0,W.useEffect)(()=>{Y.current=h,h?Bn(h):(b(null),S(null))},[h]),(0,W.useEffect)(()=>{let ie=Nn.current;ie&&(ie.scrollTop=ie.scrollHeight)},[_i.length,z,P?.logs?.length,Te,M]),(0,W.useEffect)(()=>{if(!Pe)return;let ie=De=>{na.current&&!na.current.contains(De.target)&&oe(!1)};return document.addEventListener("mousedown",ie),()=>document.removeEventListener("mousedown",ie)},[Pe]);let Ru=async()=>{try{let De=await(await fetch(`/api/agents/${e.id}/runs?per_page=10`)).json();_(De.runs||[])}catch(ie){console.error("Failed to load runs:",ie)}},cr=async ie=>{try{let De=await fetch(`/api/agents/${e.id}/conversations?action_name=${encodeURIComponent(ie)}`);if(!De.ok)throw new Error(`HTTP ${De.status}`);let rt=(await De.json()).conversations||[];y(rt),v($r=>$r&&(C.current===$r||rt.some(ui=>ui.id===$r))?$r:rt[0]?.id??null)}catch(De){console.error("Failed to load conversations:",De),y([])}},Bn=async ie=>{try{let De=await fetch(`/api/interactions/${ie}`);if(!De.ok)throw new Error(De.status===404?"Conversation not found":`HTTP ${De.status}`);let qe=await De.json();if(Y.current!==ie)return;b(qe.interaction),S(null)}catch(De){if(Y.current!==ie)return;b(null),S(De.message)}},Ri=async()=>{let ie=await fetch(`/api/agents/${e.id}/conversations`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action_name:o})}),De=await Xv(ie);if(!ie.ok||!De.conversation)throw new Error(De.error||`Could not start a conversation (HTTP ${ie.status})`);let qe=De.conversation;return y(rt=>[qe,...rt.filter($r=>$r.id!==qe.id)]),C.current=qe.id,v(qe.id),qe.id},ec=()=>Y.current?Promise.resolve(Y.current):Ri(),X1=ie=>{C.current=null,l(ie)},Vf=()=>{K(null),O(null),D({})},Z1=ie=>{let De=ie?Number(ie):null;De!==Y.current&&Vf(),C.current=De,v(De),F(null)},tc=async()=>{if(!k)try{await Ri(),S(null),F(null),Vf(),eo(tt.current),Q(null),V(null)}catch(ie){S(ie.message)}},eo=ie=>{(ie?.attachments||[]).forEach(De=>{De.url&&De.url.startsWith("blob:")&&URL.revokeObjectURL(De.url)})},rc=ie=>{let De=Array.from(ie||[]).filter(Boolean);De.length!==0&&d(qe=>[...qe,...De.map(rt=>({file:rt,filename:rt.name,content_type:rt.type||"application/octet-stream",byte_size:rt.size,kind:w7(rt),url:rt.type&&rt.type.startsWith("image/")?URL.createObjectURL(rt):null}))])},Q1=ie=>{d(De=>{let qe=De[ie];return qe?.url&&URL.revokeObjectURL(qe.url),De.filter((rt,$r)=>$r!==ie)})},og=(ie,De)=>{A(!1),eo(tt.current),Q(null),Ru();let qe=ws(ie)??De;qe&&(qe!==Y.current?(C.current=qe,v(qe)):Bn(qe),cr(o))},J1=(ie,De)=>{if(!ze.current)return;let qe=++ve.current,rt=Date.now(),$r=async()=>{if(ve.current===qe){try{let ui=await fetch(`/api/runs/${ie}`);if(ui.ok){let $n=await ui.json();if(ve.current!==qe)return;if(K($n.run),!["pending","running"].includes($n.run.status)){og($n.run,De);return}}}catch{}Date.now()-rtui&&{...ui,status:"failed",error_message:"Timed out waiting for the run to finish."}),O("Timed out waiting for the run to finish."))}};$r()},nc=async({text:ie,files:De,fromComposer:qe=!1})=>{let rt=(ie||"").trim();if(!rt&&De.length===0||k)return;O(null),F(null),V(null),A(!0),D({}),K({status:"pending",input_prompt:rt,output:"",logs:[],started_at:new Date().toISOString()}),eo(tt.current),Q({content:rt||"(see attached files)",attachments:De.map(({file:$n,...ks})=>ks)}),qe&&(u(""),d([]));let $r=Y.current;if(!$r)try{$r=await Ri()}catch($n){O(`${$n.message} \u2014 running without a pinned conversation.`)}let ui=()=>{qe&&(u(rt),d(De)),Q(null)};try{let $n=new FormData;$n.append("prompt",rt),$n.append("action_name",o),$r&&$n.append("params[context_id]",String($r)),De.forEach(({file:sg})=>$n.append("attachments[]",sg,sg.name));let ks=await fetch(`/api/agents/${e.id}/execute`,{method:"POST",body:$n}),oc=await Xv(ks);if(ks.status===402&&oc.upgrade_required){j(oc.usage),K(sg=>({...sg,status:"failed",error_message:oc.message||"Plan limit reached"})),A(!1),ui();return}if(!ks.ok)throw new Error(oc.error||"Run failed");J1(oc.run.id,ws(oc.run)??$r)}catch($n){K(ks=>({...ks,status:"failed",error_message:$n.message})),A(!1),ui()}},Kf=()=>nc({text:s,files:c,fromComposer:!0}),lg=ie=>{!ie||!ie.text||nc({text:ie.text,files:[]})},R1=ie=>{ie.key==="Enter"&&(ie.metaKey||ie.ctrlKey)&&(ie.preventDefault(),Kf())},qf=async(ie,De)=>{let qe=Y.current,rt=await fetch(`/api/interactions/${qe}/messages/${ie.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:De})}),$r=await Xv(rt);if(!rt.ok)throw new Error($r.error||`Could not save the message (HTTP ${rt.status})`);await Bn(qe)},ew=async ie=>{let De=Y.current;try{let qe=await fetch(`/api/interactions/${De}/messages/${ie.id}`,{method:"DELETE"});if(!qe.ok){let rt=await Xv(qe);throw new Error(rt.error||`Could not delete the message (HTTP ${qe.status})`)}S(null),await Bn(De),cr(o)}catch(qe){S(qe.message)}},tw=ie=>{oe(!1),V(ie),E(""),Ae(null)},ac=async()=>{let ie=J.trim();if(!(!ie||L)){X(!0),Ae(null);try{let De=await ec(),qe=await fetch(`/api/interactions/${De}/messages`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({role:Te,content:ie})}),rt=await Xv(qe);if(!qe.ok)throw new Error(rt.error||`Could not add the message (HTTP ${qe.status})`);E(""),V(null),await Bn(De),cr(o)}catch(De){Ae(De.message)}finally{X(!1)}}},rw=async ie=>{let De=ie;if(ws(ie)==null)try{let rt=await fetch(`/api/runs/${ie.id}`);rt.ok&&(De=(await rt.json()).run)}catch(rt){console.error("Failed to load run details:",rt)}let qe=ws(De);if(qe){F(null),qe!==Y.current&&Vf(),C.current=qe;let rt=De.action_name||ie.action_name;rt&&i.includes(rt)&&rt!==o&&l(rt),v(qe)}else F({...De,output:De.output??De.output_preview,error_message:De.error_message??De.error});ct.current?.scrollIntoView({behavior:"smooth",block:"start"})},ye=async()=>{U(!0),ee(null);try{await $f({planSlug:"pro"})}catch(ie){ee(ie.message),U(!1)}},lt=window.ACTIVE_AGENT_DASHBOARD?.meta?.upgradeUrl,Xt=a.find(ie=>ie.name===o)?.prompt,dr=[e.instructions,o==="ask"?null:Xt].map(ie=>(ie||"").trim()).filter(Boolean).join(` +Who updated the description for the sample notebook?`,style:{...il,width:"100%",fontFamily:ye,fontSize:12,lineHeight:"18px"}}),re.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. ",re.default.createElement("code",{style:{fontFamily:ye}},"# Heading")," lines group related tasks so they can be run together; ",re.default.createElement("code",{style:{fontFamily:ye}},"| tools: a, b")," names the tool a task should call.")),L.judgeKind==="judge_defined"&&re.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."),L.judgeKind!=="judge_defined"&&re.default.createElement(re.default.Fragment,null,re.default.createElement("div",null,re.default.createElement(rt,{style:{display:"block",marginBottom:8}},"Rule-based criteria (sampled generations)"),re.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:12}},e_.map(E=>re.default.createElement("label",{key:E.key,style:{display:"flex",alignItems:"center",gap:8,fontSize:13,color:"var(--color-text-primary)"}},re.default.createElement("input",{type:"checkbox",checked:L.criteria.includes(E.key),onChange:Z=>H({...L,criteria:Z.target.checked?[...L.criteria,E.key]:L.criteria.filter(ge=>ge!==E.key)})}),E.label)))),re.default.createElement("div",null,re.default.createElement(rt,{style:{display:"block",marginBottom:8}},"Telemetry criteria (trace aggregates)"),re.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:12}},t_.map(E=>re.default.createElement("label",{key:E.key,style:{display:"flex",alignItems:"center",gap:8,fontSize:13,color:"var(--color-text-primary)"}},re.default.createElement("input",{type:"checkbox",checked:L.criteria.includes(E.key),onChange:Z=>H({...L,criteria:Z.target.checked?[...L.criteria,E.key]:L.criteria.filter(ge=>ge!==E.key)})}),E.label)))),re.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4"},re.default.createElement("div",null,re.default.createElement(rt,{as:"label",style:{display:"block",marginBottom:6}},"Must contain (optional pattern)"),re.default.createElement("input",{type:"text",value:L.containsPattern,onChange:E=>H({...L,containsPattern:E.target.value}),placeholder:"e.g. password reset",style:{...il,width:"100%"}})),re.default.createElement("div",null,re.default.createElement(rt,{as:"label",style:{display:"block",marginBottom:6}},"LLM judge criterion (optional, needs provider credentials)"),re.default.createElement("input",{type:"text",value:L.llmJudgePrompt,onChange:E=>H({...L,llmJudgePrompt:E.target.value}),placeholder:"e.g. Is the answer helpful and accurate?",style:{...il,width:"100%"}})))),D&&re.default.createElement("div",{style:{fontSize:13,color:"var(--color-error-text)"}},D),re.default.createElement("div",null,re.default.createElement(zr,{variant:"primary",type:"submit",disabled:N},N?L.scenariosText.trim()?"Creating & starting run\u2026":"Creating & running\u2026":"Create & Run")))),re.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(190px, 1fr))",gap:16}},re.default.createElement(Xv,{label:"Suites",value:fe.length,sub:$,testId:"stat-suites"}),re.default.createElement(Xv,{label:"Scenario runs",value:le,sub:"latest run of each suite",testId:"stat-scenario-runs"}),re.default.createElement(Xv,{label:"Pass rate",value:I==null?"\u2014":n$(I),valueColor:I==null?"var(--color-text-muted)":al[Qu(I)].strong,sub:I==null?"no completed runs yet":`${Te} / ${le} passed`,testId:"stat-pass-rate"}),re.default.createElement(Xv,{label:"Open faults",value:le-Te,sub:`${Xt(K,"fix item")} across ${Xt(De.length,"suite")}`,testId:"stat-open-faults"})),re.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},ee.map(E=>{let Z=E.latest_run,ge=j(E.id),Le=!!E.scenario_suite,nt=Z?.status==="complete",Bt=Z?.status==="pending"||Z?.status==="running",ft=Z?.models?.length||(E.compare_models||[]).length||1,En=Z?.samples_passed||0,Bn=Z?.samples_evaluated||0,oa=Bn?En/Bn:0,Mo=(E.criteria||[]).some(fr=>t_.some($n=>$n.key===fr.key)),nc=Le?`@${E.agent?.name||"agent"} \xB7 ${Xt(E.scenario_count||0,"scenario")} \xD7 ${Xt(ft,"model")}`:`@${E.agent?.name||"agent"} \xB7 ${Xt(E.sample_size||0,"sample")}${ft>1?` \xD7 ${Xt(ft,"model")}`:""}`;return re.default.createElement(yr,{key:E.id,padding:0,testId:"evaluation-card","data-telemetry":Mo?"true":"false","data-kind":Le?"suite":"sampling","data-open":ge?"true":"false",style:{overflow:"hidden"}},re.default.createElement("div",{onClick:()=>P(E.id),className:"hover:bg-[var(--color-hover)]",style:{display:"flex",alignItems:"center",gap:12,rowGap:8,padding:"12px 16px",cursor:"pointer",flexWrap:"wrap"}},re.default.createElement(Ju,{kind:"chevron",open:ge}),re.default.createElement("span",{style:{width:22,height:22,borderRadius:6,background:"var(--color-muted)",display:"inline-flex",alignItems:"center",justifyContent:"center",fontFamily:ye,fontSize:10,fontWeight:700,color:"var(--color-text-secondary)",flexShrink:0},title:Le?"scenario suite":"sampling evaluation"},Le?"=":"~"),re.default.createElement("span",{style:{fontSize:14,fontWeight:600,color:"var(--color-text-primary)"}},E.name),re.default.createElement("span",{style:ei(11)},nc),re.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:14,flexShrink:0}},re.default.createElement("span",{style:ei(11)},Hf(Z?.completed_at||Z?.created_at||E.created_at)),Z?.status==="failed"&&re.default.createElement("span",{style:ei(11,"var(--color-error)")},"failed"),Bt&&re.default.createElement("span",{style:ei(11)},Z.status==="pending"?"queued":"running"),!Z&&re.default.createElement("span",{style:ei(11)},"no runs"),nt&&Le&&re.default.createElement("span",{style:ei(11)},Xt(Bn-En,"fault")),nt&&Le&&re.default.createElement(dr,{tone:Qu(oa),testId:"suite-pass-badge"},`${En}/${Bn} passed`),nt&&!Le&&Z.average_score!=null&&re.default.createElement(dr,{tone:g$(Z.average_score),title:"mean score across criteria"},`score ${Ru(Z.average_score)}`),nt&&!Le&&Bn>0&&re.default.createElement(dr,{tone:Qu(oa)},`${En}/${Bn} passed`))),ge&&re.default.createElement("div",{style:{borderTop:"1px solid var(--color-border-light)"}},Le?re.default.createElement(RE,{evaluation:E,onChanged:z,onDelete:()=>G(E),deleting:M===E.id}):re.default.createElement(re.default.Fragment,null,Z?.status==="failed"?re.default.createElement("div",{style:{padding:16,fontSize:13,color:"var(--color-error-text)"}},Z.error_message):Z?.scores?re.default.createElement("div",{style:{padding:16,display:"flex",flexDirection:"column",gap:12}},Z.scores._verdict&&re.default.createElement("div",{style:{padding:"10px 12px",borderRadius:10,border:"1px solid var(--color-border-light)",display:"flex",flexDirection:"column",gap:6}},re.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"}},re.default.createElement("span",{style:{fontFamily:ye,fontSize:12,fontWeight:600,color:"var(--color-text-primary)"}},Z.scores._verdict.winner),re.default.createElement(dr,{tone:"info",size:10,style:{padding:"1px 6px"}},"judge's pick"),re.default.createElement("span",{style:{marginLeft:"auto",...ei(11)}},`judged by ${Z.scores._verdict.judge}`)),re.default.createElement("div",{style:{fontSize:12,lineHeight:"18px",color:"var(--color-text-cell)",textWrap:"pretty"}},re.default.createElement(rt,{size:10,color:"var(--color-text-muted)",style:{marginRight:8}},"Verdict"),Z.scores._verdict.rationale)),Z.scores._missing_models&&re.default.createElement("div",{style:{fontSize:12,fontStyle:"italic",color:"var(--color-text-muted)"}},"No recorded generations for: ",Z.scores._missing_models.join(", ")," \u2014 run the agent under those models first"),Object.entries(Z.scores).filter(([fr])=>!fr.startsWith("_")).map(([fr,$n])=>Ne($n)?re.default.createElement("div",{key:fr,style:{display:"flex",flexDirection:"column",gap:4}},re.default.createElement("div",{style:{fontSize:13,color:"var(--color-text-secondary)"}},fr.replace(/_/g," ")),Object.entries($n).map(([ni,ac])=>re.default.createElement(v$,{key:ni,label:ni,score:ac,indent:!0,mono:!0}))):re.default.createElement(v$,{key:fr,label:fr,score:$n}))):re.default.createElement("div",{style:{padding:16,...ei(11)}},"[ ] no runs yet"),re.default.createElement("div",{style:{padding:16,background:"var(--color-background)",display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(160px, 1fr))",gap:16,fontSize:13}},re.default.createElement("div",null,re.default.createElement(rt,{size:10,color:"var(--color-text-muted)"},"Judge"),re.default.createElement("div",{style:{marginTop:4,fontFamily:ye,fontSize:12,color:"var(--color-text-primary)"}},E.judge_kind==="judge_defined"?`judge-defined KPIs${E.judge_model?` (${E.judge_model})`:""}`:E.judge_kind==="llm"?E.judge_model||"llm judge":"rules")),re.default.createElement("div",{style:{gridColumn:"span 2",minWidth:0}},re.default.createElement(rt,{size:10,color:"var(--color-text-muted)"},"Criteria"),re.default.createElement("div",{style:{marginTop:4,fontFamily:ye,fontSize:12,color:"var(--color-text-primary)",textWrap:"pretty"}},(E.criteria||[]).map(fr=>String(fr.key).replace(/_/g," ")).join(" \xB7 ")||"\u2014")),re.default.createElement("div",null,re.default.createElement(rt,{size:10,color:"var(--color-text-muted)"},"Samples"),re.default.createElement("div",{style:{marginTop:4,fontFamily:ye,fontSize:12,color:"var(--color-text-primary)"}},nt&&Bn>0?`${En} / ${Bn} passed`:"\u2014")),re.default.createElement("div",null,re.default.createElement(rt,{size:10,color:"var(--color-text-muted)"},"Last run"),re.default.createElement("div",{style:{marginTop:4,fontFamily:ye,fontSize:12,color:"var(--color-text-primary)"},title:"Estimated cost, tokens and wall-clock runtime of the latest run"},nue(Z?.usage)||"\u2014")),re.default.createElement("div",{style:{display:"flex",alignItems:"flex-end",justifyContent:"flex-end",gap:8}},re.default.createElement(zr,{size:"sm",onClick:fr=>{fr.stopPropagation(),F(E.id)},disabled:k===E.id},k===E.id?"Running\u2026":"Run again"),re.default.createElement(zr,{variant:"danger",size:"sm",onClick:fr=>{fr.stopPropagation(),G(E)},disabled:M===E.id,title:"Delete this evaluation and its runs"},M===E.id?"Deleting\u2026":"Delete"))))))})),ee.length===0&&!w&&re.default.createElement(yr,{style:{textAlign:"center",padding:"48px 20px"}},re.default.createElement("div",{style:{fontSize:16,fontWeight:600,color:"var(--color-text-primary)"}},"No evaluations yet"),re.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")))}var Ce=te(ne());var aue=e=>new Date(`${e}T00:00:00`),oue=[{id:"overview",label:"Overview"},{id:"traces",label:"Traces"},{id:"interactions",label:"Interactions"}];function n_({agent:e,onBack:t,embedded:r=!1}){let{darkMode:n}=kt(),a=Fa(n),[o,i]=(0,Ce.useState)(null),[l,s]=(0,Ce.useState)(!0),{timeWindow:u,days:c}=Qo(),[d,f]=(0,Ce.useState)("overview"),p=e.telemetry_agent_class||(()=>{let x=e.agent_class_name||`${(e.name||"").replace(/[^a-zA-Z0-9]+(.)/g,(S,w)=>w.toUpperCase()).replace(/^./,S=>S.toUpperCase()).replace(/[^a-zA-Z0-9]/g,"")}`;return x.endsWith("Agent")?x:`${x}Agent`})();(0,Ce.useEffect)(()=>{m()},[e?.id,c]);let m=async()=>{if(e?.id){s(!0);try{let S=await(await fetch(`/api/agents/${e.id}/analytics?days=${c}`)).json();i(S)}catch(x){console.error("Failed to load analytics:",x)}finally{s(!1)}}},y=x=>x?x<1e3?`${x}ms`:`${(x/1e3).toFixed(2)}s`:"-",h=x=>x?x>=1e6?`${(x/1e6).toFixed(1)}M`:x>=1e3?`${(x/1e3).toFixed(1)}K`:x.toString():"0",v=x=>{switch(x){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(l&&!o)return 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 border-red-500"}));let g=o?.runs_by_day?.length>0?Math.max(...o.runs_by_day.map(x=>x.count)):1,b=r?"overview":d;return Ce.default.createElement("div",{className:"space-y-6"},r?Ce.default.createElement("div",{className:"flex items-center justify-end gap-2"},u.minutes<1440&&Ce.default.createElement("span",{className:"text-xs",style:{color:a.textMuted},title:"This view aggregates by day"},"showing 1 day"),Ce.default.createElement(Jo,null)):Ce.default.createElement("div",{className:"flex items-center justify-between"},Ce.default.createElement("div",{className:"flex items-center space-x-4"},Ce.default.createElement("button",{onClick:t,className:"p-2 transition-colors",style:{color:a.textMuted}},Ce.default.createElement("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ce.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"}))),Ce.default.createElement("div",null,Ce.default.createElement("h1",{className:"text-2xl font-bold",style:{color:a.textPrimary}},e.name," Analytics"),Ce.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},"Performance metrics and usage data"))),Ce.default.createElement("div",{className:"flex items-center gap-2"},u.minutes<1440&&Ce.default.createElement("span",{className:"text-xs",style:{color:a.textMuted},title:"This view aggregates by day"},"showing 1 day"),Ce.default.createElement(Jo,null))),!r&&Ce.default.createElement("div",{className:"flex rounded-lg p-1 w-fit",style:{background:a.mutedBg}},oue.map(x=>Ce.default.createElement("button",{key:x.id,onClick:()=>f(x.id),className:`px-4 py-1.5 text-sm rounded-md transition-colors ${d===x.id?"shadow":""}`,style:d===x.id?{background:a.cardBg,color:a.textPrimary}:{color:a.textSecondary}},x.label))),b==="traces"&&Ce.default.createElement(Zu,{agentClass:p,embedded:!0}),b==="interactions"&&Ce.default.createElement(nl,{agentId:e.id,embedded:!0}),b==="overview"&&Ce.default.createElement(Ce.default.Fragment,null,Ce.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4"},Ce.default.createElement($1,{title:"Total Runs",value:o?.summary?.total_runs||0,icon:Ce.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ce.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 10V3L4 14h7v7l9-11h-7z"})),color:"rose",colors:a,darkMode:n}),Ce.default.createElement($1,{title:"Success Rate",value:`${o?.summary?.success_rate||0}%`,icon:Ce.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ce.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:a,darkMode:n}),Ce.default.createElement($1,{title:"Avg Duration",value:y(o?.summary?.avg_duration_ms),icon:Ce.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ce.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:a,darkMode:n}),Ce.default.createElement($1,{title:"Total Tokens",value:h(o?.summary?.total_tokens),icon:Ce.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ce.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:a,darkMode:n})),Ce.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6"},Ce.default.createElement("div",{className:"lg:col-span-2 rounded-xl border p-6",style:{background:a.cardBg,borderColor:a.cardBorder}},Ce.default.createElement("h3",{className:"font-semibold mb-4",style:{color:a.textPrimary}},"Runs Over Time"),o?.runs_by_day?.length>0?Ce.default.createElement("div",{className:"h-48"},Ce.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},o.runs_by_day.map((x,S)=>Ce.default.createElement("div",{key:x.date,className:"flex-1 flex flex-col items-center group"},Ce.default.createElement("div",{className:"relative w-full"},Ce.default.createElement("div",{className:"w-full bg-red-500 rounded-t transition-all hover:bg-red-600",style:{height:`${x.count/g*150}px`,minHeight:x.count>0?"4px":"0"}}),Ce.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"},x.count," runs")),(S===0||S===o.runs_by_day.length-1||o.runs_by_day.length<=7)&&Ce.default.createElement("span",{className:"text-xs mt-2 transform -rotate-45 origin-left",style:{color:a.textMuted}},aue(x.date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))))):Ce.default.createElement("div",{className:"h-48 flex items-center justify-center",style:{color:a.textMuted}},"No data for this period")),Ce.default.createElement("div",{className:"rounded-xl border p-6",style:{background:a.cardBg,borderColor:a.cardBorder}},Ce.default.createElement("h3",{className:"font-semibold mb-4",style:{color:a.textPrimary}},"Status Breakdown"),Object.keys(o?.status_breakdown||{}).length>0?Ce.default.createElement("div",{className:"space-y-3"},Object.entries(o.status_breakdown).map(([x,S])=>{let w=o?.summary?.total_runs||1,O=(S/w*100).toFixed(1);return Ce.default.createElement("div",{key:x},Ce.default.createElement("div",{className:"flex justify-between text-sm mb-1"},Ce.default.createElement("span",{className:"capitalize",style:{color:a.textSecondary}},x),Ce.default.createElement("span",{className:"font-medium",style:{color:a.textPrimary}},S," (",O,"%)")),Ce.default.createElement("div",{className:"h-2 rounded-full overflow-hidden",style:{background:a.trackBg}},Ce.default.createElement("div",{className:`h-full ${v(x)} rounded-full transition-all`,style:{width:`${O}%`}})))})):Ce.default.createElement("div",{className:"h-32 flex items-center justify-center",style:{color:a.textMuted}},"No runs yet"))),o?.recent_errors?.length>0&&Ce.default.createElement("div",{className:"rounded-xl border p-6",style:{background:a.cardBg,borderColor:a.cardBorder}},Ce.default.createElement("h3",{className:"font-semibold mb-4",style:{color:a.textPrimary}},"Recent Errors"),Ce.default.createElement("div",{className:"space-y-3"},o.recent_errors.map(x=>Ce.default.createElement("div",{key:x.id,className:"flex items-start space-x-3 p-3 rounded-lg",style:{background:n?"rgba(220,38,38,0.12)":"#fef2f2"}},Ce.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"},Ce.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"})),Ce.default.createElement("div",{className:"flex-1 min-w-0"},Ce.default.createElement("p",{className:"text-sm",style:{color:n?"#fca5a5":"#991b1b"}},x.error||"Unknown error"),Ce.default.createElement("p",{className:"text-xs mt-1",style:{color:n?"#f87171":"#dc2626"}},new Date(x.created_at).toLocaleString())))))),Ce.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4"},Ce.default.createElement("div",{className:"rounded-lg p-4",style:{background:a.innerBg}},Ce.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},"Completed Runs"),Ce.default.createElement("p",{className:"text-2xl font-bold",style:{color:a.textPrimary}},o?.summary?.completed_runs||0)),Ce.default.createElement("div",{className:"rounded-lg p-4",style:{background:a.innerBg}},Ce.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},"Failed Runs"),Ce.default.createElement("p",{className:"text-2xl font-bold",style:{color:a.textPrimary}},o?.summary?.failed_runs||0)),Ce.default.createElement("div",{className:"rounded-lg p-4",style:{background:a.innerBg}},Ce.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},"Avg Tokens/Run"),Ce.default.createElement("p",{className:"text-2xl font-bold",style:{color:a.textPrimary}},h(o?.summary?.avg_tokens_per_run))),Ce.default.createElement("div",{className:"rounded-lg p-4",style:{background:a.innerBg}},Ce.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},"Period"),Ce.default.createElement("p",{className:"text-2xl font-bold",style:{color:a.textPrimary}},o?.period_days||30," days")))))}var y$={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 $1({title:e,value:t,icon:r,color:n,colors:a,darkMode:o}){let[i,l,s]=y$[n]||y$.rose;return Ce.default.createElement("div",{className:"rounded-xl border p-4",style:{background:a.cardBg,borderColor:a.cardBorder}},Ce.default.createElement("div",{className:"flex items-center justify-between"},Ce.default.createElement("div",null,Ce.default.createElement("p",{className:"text-sm",style:{color:a.textSecondary}},e),Ce.default.createElement("p",{className:"text-2xl font-bold mt-1",style:{color:a.textPrimary}},t)),Ce.default.createElement("div",{className:"p-3 rounded-lg",style:{background:o?l:s,color:i}},r)))}var ae=te(ne());var iue=["agent_defined","dashboard","mcp"],o_={agent_defined:"Agent-defined",dashboard:"Dashboard",mcp:"MCP"},lue={agent_defined:"derived from the agent's own schema",dashboard:"built into the dashboard",mcp:"offered by the services above"},F1=[{value:"24h",label:"24h",hours:24},{value:"7d",label:"7d",hours:168},{value:"30d",label:"30d",hours:720}],i_=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`},l_=(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 a=Math.floor(n/60);return a<24?`${a}h ago`:`${Math.floor(a/24)}d ago`},a_=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 U1(e,t=[]){let r=new Map;(t||[]).forEach(a=>{let o=a_(a);o&&r.set(o,a)});let n={};return(e.services||[]).forEach(a=>{let o=r.get(a.key),i=o&&typeof o=="object"&&Array.isArray(o.tools)?o.tools.map(l=>String(l&&l.name?l.name:l)):null;n[a.key]={on:r.has(a.key),tools:Object.fromEntries((a.tools||[]).map(l=>[l.name,i===null||i.includes(l.name)]))}}),n}var h$=e=>{let t=String(e||"").trim().toLowerCase();return(...r)=>!t||r.some(n=>String(n||"").toLowerCase().includes(t))};function x$(e,t,{query:r="",filter:n=null}={}){let a=h$(r);return(e.services||[]).filter(o=>n?n==="enabled"?t[o.key]?.on:o.status===n:!0).filter(o=>a(o.name,o.description)||(o.tools||[]).some(i=>a(i.name))).map(o=>{let i=t[o.key]||{on:!1,tools:{}},l=o.tools||[],s=l.map(c=>({...c,on:!!i.tools[c.name]})),u=s.filter(c=>c.on);return{...o,on:i.on,tools:s,offeredCount:l.length,enabledCount:u.length,toolsLabel:`${u.length}/${l.length}`,partial:i.on&&u.length{let a=t[n.key];!a||!a.on||(n.tools||[]).forEach(o=>{a.tools[o.name]&&r.push({...o,key:`${n.key}:${o.name}`,source:"mcp",editable:!1,enabled:!0,server:n.name,serverKey:n.key})})}),r}function b$(e,t,r=[]){let n=new Set((r||[]).map(String));return(e.tools||[]).map(a=>({...a,on:a.editable?n.has(a.key):a.enabled!==!1})).concat(sue(e,t).map(a=>({...a,on:!0})))}function w$(e,t,r,{query:n="",source:a=null,enabledOnly:o=!1}={}){let i=h$(n),l=b$(e,t,r),s=l.filter(u=>!a||u.source===a).filter(u=>!o||u.on).filter(u=>i(u.name,u.description));return iue.map(u=>{let c=l.filter(p=>p.source===u),d=c.some(p=>p.editable),f=c.filter(p=>p.on).length;return{source:u,name:o_[u],meta:`${lue[u]} \xB7 ${c.length} ${c.length===1?"tool":"tools"}`,countLabel:d?`${f}/${c.length} on`:`${c.length} offered`,editable:d,total:c.length,enabledCount:f,keys:c.map(p=>p.key),rows:s.filter(p=>p.source===u)}}).filter(u=>u.total>0)}function S$(e,t,r,{range:n="7d"}={}){let a=b$(e,t,r),o=e.usage_available!==!1,i=e.services||[],l=i.filter(p=>t[p.key]?.on),s=a.filter(p=>p.source!=="mcp"&&p.on),u=a.filter(p=>p.source==="mcp"),c=a.reduce((p,m)=>p+(m.calls||0),0),d=a.reduce((p,m)=>p+(m.errors||0),0),f=a.filter(p=>p.on&&!p.calls).length;return[{key:"tools",label:"Tools enabled",value:String(s.length+u.length),sub:`${s.length} direct \xB7 ${u.length} offered through MCP`},{key:"services",label:"MCP services",value:`${l.length}/${i.length}`,sub:l.length?`on for this agent: ${l.map(p=>p.name).join(", ")}`:"none enabled for this agent"},{key:"calls",label:"Tool calls",value:o?String(c):"\u2014",sub:o?`${d} error${d===1?"":"s"} in the last ${n} \xB7 traced`:"no calls recorded in this window yet"},{key:"unused",label:"Never called",value:o?String(f):"\u2014",sub:"enabled but unused in this window",tone:o&&f>6?"warning":null}]}function A$(e,t,r){let n=U1(e,t.mcpServers),a=U1(e,r.mcpServers),o=0;Object.keys(n).forEach(s=>{n[s].on!==a[s].on&&(o+=1),Object.keys(n[s].tools).forEach(u=>{n[s].tools[u]!==a[s].tools[u]&&(o+=1)})});let i=new Set((t.tools||[]).map(String)),l=new Set((r.tools||[]).map(String));return(e.tools||[]).forEach(s=>{s.editable&&i.has(s.key)!==l.has(s.key)&&(o+=1)}),o}function k$(e,t,r=[]){let n=new Map;(r||[]).forEach(i=>{let l=a_(i);l&&n.set(l,i)});let a=[];(e.services||[]).forEach(i=>{let l=t[i.key];if(!l||!l.on)return;let s=(i.tools||[]).map(p=>p.name),u=s.filter(p=>l.tools[p]),c=n.get(i.key),d=s.length>0&&u.lengthi.key));return(r||[]).forEach(i=>{let l=a_(i);l&&!o.has(l)&&a.push(i)}),a}function s_(e,t=[]){let r=new Set((e.tools||[]).filter(o=>o.editable).map(o=>o.key)),n=(t||[]).map(String).filter(o=>!r.has(o)),a=(e.tools||[]).filter(o=>o.editable&&t.includes(o.key)).map(o=>o.key);return n.concat(a)}var uue={active:"success",configured:"info",available:"warning",idle:"muted"},cue={agent_defined:"success",dashboard:"success",mcp:"info"},N$="44px minmax(0, 1fr) 108px 60px 52px 58px 74px 26px",C$="26px minmax(0, 1fr) 108px 52px 52px 52px 74px",due=[{value:"enabled",label:"Enabled"},{value:"active",label:"Active"},{value:"configured",label:"Configured"},{value:"available",label:"Available"}],E$={padding:"7px 16px",gap:10,alignItems:"end",background:"var(--color-muted)",fontFamily:ye,fontSize:10,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",color:"var(--color-text-muted)"},ti={fontFamily:ye,fontSize:11,textAlign:"right",color:"var(--color-text-primary)"},W1={whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"};function fue({on:e,onClick:t,title:r}){return ae.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"}},ae.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 _$({on:e,dim:t=!1}){return ae.default.createElement("span",{"aria-hidden":"true",style:{width:16,height:16,borderRadius:4,display:"flex",alignItems:"center",justifyContent:"center",fontFamily:ye,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 H1({children:e,onClick:t,disabled:r,title:n}){return ae.default.createElement("button",{type:"button",onClick:t,disabled:r,title:n,style:{padding:"3px 9px",borderRadius:6,background:"transparent",fontFamily:ye,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 O$({children:e}){return ae.default.createElement("div",{style:{overflowX:"auto"}},ae.default.createElement("div",{style:{minWidth:800}},e))}function u_({agent:e,formData:t,updateField:r,onSave:n,hasChanges:a=!1,isLoading:o}){let[i,l]=(0,ae.useState)(null),[s,u]=(0,ae.useState)(null),[c,d]=(0,ae.useState)("7d"),[f,p]=(0,ae.useState)(""),[m,y]=(0,ae.useState)(null),[h,v]=(0,ae.useState)(null),[g,b]=(0,ae.useState)(!1),[x,S]=(0,ae.useState)(null),[w,O]=(0,ae.useState)({}),k=(F1.find(I=>I.value===c)||F1[1]).hours;(0,ae.useEffect)(()=>{let I=!1;return u(null),fetch(`/api/agents/${e.id}/tool_roster?hours=${k}`).then(C=>{if(!C.ok)throw new Error(`Request failed (${C.status})`);return C.json()}).then(C=>{I||l(C)}).catch(C=>{I||u(C.message)}),()=>{I=!0}},[e.id,k]);let A=(0,ae.useMemo)(()=>({services:[],tools:[]}),[]),M=i||A,W=(0,ae.useMemo)(()=>t.tools||[],[t.tools]),L=(0,ae.useMemo)(()=>t.mcp_servers||[],[t.mcp_servers]),H=(0,ae.useMemo)(()=>U1(M,L),[M,L]),D=(0,ae.useMemo)(()=>x$(M,H,{query:f,filter:m}),[M,H,f,m]),Y=(0,ae.useMemo)(()=>w$(M,H,W,{query:f,source:h,enabledOnly:g}),[M,H,W,f,h,g]),N=(0,ae.useMemo)(()=>S$(M,H,W,{range:c}),[M,H,W,c]),_=(0,ae.useMemo)(()=>A$(M,{tools:W,mcpServers:L},{tools:e.tools||[],mcpServers:e.mcp_servers||[]}),[M,W,L,e]),z=M.usage_available!==!1,j=I=>z?I:"\u2014",P=(0,ae.useCallback)(I=>{r("mcp_servers",k$(M,I,L))},[M,L,r]),B=(0,ae.useCallback)(I=>{let C=H[I.key];P({...H,[I.key]:{...C,on:!C.on}})},[H,P]),R=(0,ae.useCallback)((I,C)=>{let T=H[I.key];T.on&&P({...H,[I.key]:{...T,tools:{...T.tools,[C.name]:!T.tools[C.name]}}})},[H,P]),F=(0,ae.useCallback)((I,C)=>{let T=H[I.key],X=Object.fromEntries((I.tools||[]).map($=>[$.name,C]));P({...H,[I.key]:{on:C||T.on,tools:X}})},[H,P]),G=(0,ae.useCallback)(I=>{if(!I.editable)return;let C=I.on?W.filter(T=>T!==I.key):[...W,I.key];r("tools",s_(M,C))},[M,W,r]),ee=(0,ae.useCallback)((I,C)=>{if(!I.editable)return;let T=C?[...W,...I.keys.filter(X=>!W.includes(X))]:W.filter(X=>!I.keys.includes(X));r("tools",s_(M,T))},[M,W,r]),fe=(0,ae.useCallback)(()=>{r("tools",e.tools||[]),r("mcp_servers",e.mcp_servers||[])},[e,r]),de=(M.services||[]).filter(I=>H[I.key]?.on),De=Y.find(I=>I.source==="mcp"),Te=Y.filter(I=>I.source!=="mcp").reduce((I,C)=>I+C.enabledCount,0)+(De?De.total:0),K=Y.reduce((I,C)=>I+C.total,0);return s?ae.default.createElement(yr,null,ae.default.createElement(rt,null,"Tools & MCP services"),ae.default.createElement("p",{style:{margin:"8px 0 0",fontSize:13,color:"var(--color-error-text)"}},"Could not load the roster: ",s)):i?ae.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},ae.default.createElement("div",{style:{display:"flex",alignItems:"flex-end",gap:16,flexWrap:"wrap"}},ae.default.createElement("div",{style:{flex:1,minWidth:260}},ae.default.createElement("h2",{style:{margin:0,fontSize:16,fontWeight:600,color:"var(--color-text-primary)"}},"Tools & MCP services"),ae.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.")),ae.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},ae.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)"}},ae.default.createElement("span",{style:{fontFamily:ye,fontSize:12,color:"var(--color-text-muted)"}},"?"),ae.default.createElement("input",{value:f,onChange:I=>p(I.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}})),ae.default.createElement(I1,{options:F1,value:c,onChange:d}))),ae.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))",gap:12}},N.map(I=>ae.default.createElement(yr,{key:I.key,padding:"14px 16px",testId:`roster-stat-${I.key}`},ae.default.createElement(rt,{size:11,spacing:"0.05em"},I.label),ae.default.createElement("div",{style:{marginTop:6,fontFamily:ye,fontSize:26,fontWeight:700,lineHeight:1.1,color:I.tone==="warning"?"var(--color-warning)":"var(--color-text-primary)"}},I.value),ae.default.createElement("div",{style:{marginTop:5,fontSize:12,color:"var(--color-text-secondary)",textWrap:"pretty"}},I.sub)))),ae.default.createElement(yr,{padding:0,style:{overflow:"hidden"},testId:"mcp-services-card"},ae.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"12px 16px",borderBottom:"1px solid var(--color-border-light)",flexWrap:"wrap"}},ae.default.createElement(rt,null,"MCP services"),ae.default.createElement("span",{style:{fontFamily:ye,fontSize:11,color:"var(--color-text-muted)"}},de.length," of ",(M.services||[]).length," enabled \xB7 ",De?De.total:0," tools offered"),ae.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"}},ae.default.createElement(ol,{selected:!m,onClick:()=>y(null)},"All ",(M.services||[]).length),due.map(I=>ae.default.createElement(ol,{key:I.value,selected:m===I.value,onClick:()=>y(m===I.value?null:I.value)},I.label,I.value==="enabled"?` ${de.length}`:"")),ae.default.createElement(Ff,{href:Ge("/mcp"),onClick:()=>Gv("/mcp"),title:"Every MCP service this workspace knows",style:{marginLeft:4}},"manage servers"))),ae.default.createElement(O$,null,ae.default.createElement("div",{style:{display:"grid",gridTemplateColumns:N$,...E$}},ae.default.createElement("span",null,"On"),ae.default.createElement("span",null,"Service"),ae.default.createElement("span",null,"Status"),ae.default.createElement("span",{style:{textAlign:"right"}},"Tools"),ae.default.createElement("span",{style:{textAlign:"right"}},"Calls"),ae.default.createElement("span",{style:{textAlign:"right"}},"Errors"),ae.default.createElement("span",{style:{textAlign:"right"}},"Last seen"),ae.default.createElement("span",null)),D.map(I=>{let C=x===I.key;return ae.default.createElement("div",{key:I.key},ae.default.createElement("div",{className:"aa-roster-row","data-on":I.on?"true":"false","data-testid":`service-row-${I.key}`,style:{display:"grid",gridTemplateColumns:N$,gap:10,alignItems:"center",padding:"10px 16px",borderTop:"1px solid var(--color-border-light)"}},ae.default.createElement(fue,{on:I.on,onClick:()=>B(I),title:`${I.on?"Disable":"Enable"} ${I.name} for this agent`}),ae.default.createElement("div",{onClick:()=>S(C?null:I.key),style:{minWidth:0,cursor:"pointer"}},ae.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},ae.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},I.name),I.first_party&&ae.default.createElement(dr,{tone:"accent",size:10},"first-party"),!I.known&&ae.default.createElement(dr,{size:10,title:"Seen in your traffic but not in the platform catalog"},"undocumented"),I.partial&&ae.default.createElement(dr,{tone:"warning",size:10},I.partialLabel)),ae.default.createElement("div",{style:{marginTop:2,fontSize:12,lineHeight:"17px",color:"var(--color-text-secondary)",...W1}},I.description)),ae.default.createElement("span",null,ae.default.createElement(dr,{tone:uue[I.status]||"muted"},I.status)),ae.default.createElement("span",{style:{...ti,color:I.on?"var(--color-text-primary)":"var(--color-text-muted)"}},I.toolsLabel),ae.default.createElement("span",{style:ti},j(I.calls)),ae.default.createElement("span",{style:{...ti,color:I.errors?"var(--color-error-text)":"var(--color-text-secondary)"}},j(I.errors)),ae.default.createElement("span",{style:{...ti,color:"var(--color-text-muted)"}},j(l_(I.last_seen))),ae.default.createElement("span",{onClick:()=>S(C?null:I.key),style:{cursor:"pointer",textAlign:"center"}},ae.default.createElement(Ju,{kind:"chevron",open:C}))),C&&ae.default.createElement("div",{style:{borderTop:"1px solid var(--color-border-light)",background:"var(--color-background)",padding:"10px 16px 12px"}},ae.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap",marginBottom:8}},ae.default.createElement(rt,{size:10,color:"var(--color-text-muted)"},"Tools offered"),ae.default.createElement("span",{style:{fontFamily:ye,fontSize:11,color:"var(--color-text-muted)"}},I.transport),ae.default.createElement("span",{style:{marginLeft:"auto",display:"flex",gap:8}},ae.default.createElement(H1,{onClick:()=>F(I,!0),title:`Offer every tool ${I.name} serves`},"all"),ae.default.createElement(H1,{onClick:()=>F(I,!1),disabled:!I.on,title:`Offer none of ${I.name}'s tools`},"none"))),I.tools.length===0?ae.default.createElement(aa,{style:{padding:"10px 0"}},"no tools recorded for this service yet"):ae.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(300px, 1fr))",gap:"6px 14px"}},I.tools.map(T=>ae.default.createElement("div",{key:T.name,className:"aa-roster-row",onClick:()=>R(I,T),style:{display:"grid",gridTemplateColumns:"20px minmax(0, 1fr) 46px 52px",gap:10,alignItems:"center",padding:"6px 8px",borderRadius:8,cursor:I.on?"pointer":"default",opacity:I.on?1:.55}},ae.default.createElement(_$,{on:T.on,dim:!I.on}),ae.default.createElement("span",{style:{minWidth:0}},ae.default.createElement("span",{style:{display:"block",fontFamily:ye,fontSize:12,fontWeight:600,color:T.on?"var(--color-text-primary)":"var(--color-text-secondary)",...W1}},T.name),ae.default.createElement("span",{style:{display:"block",fontSize:11,color:"var(--color-text-muted)",...W1}},T.description)),ae.default.createElement("span",{style:{...ti,color:"var(--color-text-secondary)"}},j(T.calls)),ae.default.createElement("span",{style:{...ti,color:T.errors?"var(--color-error-text)":"var(--color-text-muted)"}},j(T.errors?`${T.errors} err`:i_(T.avg_duration_ms)))))),!I.on&&ae.default.createElement("div",{style:{marginTop:8,fontSize:12,color:"var(--color-text-secondary)",textWrap:"pretty"}},"Turning ",I.name," on offers these ",I.tools.length," tools to the agent and starts recording traces and metrics for every call.")))}),D.length===0&&ae.default.createElement(aa,{style:{borderTop:"1px solid var(--color-border-light)",padding:"18px 16px"}},f?`no services match "${f}"`:"no MCP services yet"))),ae.default.createElement(yr,{padding:0,style:{overflow:"hidden"},testId:"tools-card"},ae.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"12px 16px",borderBottom:"1px solid var(--color-border-light)",flexWrap:"wrap"}},ae.default.createElement(rt,null,"Tools"),ae.default.createElement("span",{style:{fontFamily:ye,fontSize:11,color:"var(--color-text-muted)"}},Te," enabled of ",K," available"),ae.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"}},ae.default.createElement(ol,{selected:!h,onClick:()=>v(null)},"All ",K),Y.map(I=>ae.default.createElement(ol,{key:I.source,selected:h===I.source,onClick:()=>v(h===I.source?null:I.source)},I.name," ",I.total)),ae.default.createElement(ol,{square:!0,mono:!0,selected:g,onClick:()=>b(!g),style:{marginLeft:4}},g?"[x] enabled only":"[ ] enabled only"))),ae.default.createElement(O$,null,ae.default.createElement("div",{style:{display:"grid",gridTemplateColumns:C$,...E$}},ae.default.createElement("span",null),ae.default.createElement("span",null,"Tool"),ae.default.createElement("span",null,"Source"),ae.default.createElement("span",{style:{textAlign:"right"}},"Calls"),ae.default.createElement("span",{style:{textAlign:"right"}},"Errors"),ae.default.createElement("span",{style:{textAlign:"right"}},"Avg"),ae.default.createElement("span",{style:{textAlign:"right"}},"Last seen")),Y.map(I=>{let C=w[I.source]!==!0;return ae.default.createElement("div",{key:I.source},ae.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"}},ae.default.createElement("span",{onClick:()=>O({...w,[I.source]:C}),style:{cursor:"pointer",display:"inline-flex",alignItems:"center",gap:10}},ae.default.createElement(Ju,{kind:"chevron",open:C}),ae.default.createElement("span",{style:{fontSize:12,fontWeight:600,color:"var(--color-text-primary)"}},I.name)),ae.default.createElement("span",{style:{fontFamily:ye,fontSize:11,color:"var(--color-text-muted)"}},I.meta),ae.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:8}},ae.default.createElement("span",{style:{fontFamily:ye,fontSize:11,color:"var(--color-text-cell)"}},I.countLabel),I.editable&&ae.default.createElement(ae.default.Fragment,null,ae.default.createElement(H1,{onClick:()=>ee(I,!0)},"all"),ae.default.createElement(H1,{onClick:()=>ee(I,!1)},"none")))),C&&I.rows.map(T=>ae.default.createElement("div",{key:T.key,className:"aa-roster-row","data-on":T.on?"true":"false","data-testid":`tool-row-${T.key}`,onClick:()=>G(T),style:{display:"grid",gridTemplateColumns:C$,gap:10,alignItems:"center",padding:"10px 16px",borderTop:"1px solid var(--color-border-light)",cursor:T.editable?"pointer":"default",opacity:T.editable?1:.75}},ae.default.createElement(_$,{on:T.on,dim:!T.editable}),ae.default.createElement("div",{style:{minWidth:0}},ae.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},ae.default.createElement("span",{style:{fontFamily:ye,fontSize:12,fontWeight:600,color:T.on?"var(--color-text-primary)":"var(--color-text-secondary)"}},T.name),T.source==="mcp"&&ae.default.createElement(dr,{size:10},"via ",T.server),T.source==="agent_defined"&&ae.default.createElement(dr,{size:10,title:"Declared by the agent class, so the roster reports it rather than selecting it"},"from schema"),z&&T.on&&!T.calls&&ae.default.createElement(dr,{size:10},"unused")),ae.default.createElement("div",{style:{marginTop:2,fontSize:12,lineHeight:"17px",color:"var(--color-text-secondary)",...W1}},T.description)),ae.default.createElement("span",null,ae.default.createElement(dr,{tone:cue[T.source]||"muted"},o_[T.source])),ae.default.createElement("span",{style:ti},j(T.calls)),ae.default.createElement("span",{style:{...ti,color:T.errors?"var(--color-error-text)":"var(--color-text-secondary)"}},j(T.errors)),ae.default.createElement("span",{style:{...ti,color:"var(--color-text-secondary)"}},j(i_(T.avg_duration_ms))),ae.default.createElement("span",{style:{...ti,color:"var(--color-text-muted)"}},j(l_(T.last_seen))))))}),Y.every(I=>I.rows.length===0)&&ae.default.createElement(aa,{style:{borderTop:"1px solid var(--color-border-light)",padding:"18px 16px"}},f?`no tools match "${f}"`:"nothing enabled yet"))),ae.default.createElement(yr,{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"},ae.default.createElement("div",{style:{minWidth:0,display:"flex",flexDirection:"column",gap:3}},ae.default.createElement(rt,{size:11,spacing:"0.05em"},Te," tools \xB7 ",de.length," services"),ae.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.")),ae.default.createElement("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"}},_>0&&ae.default.createElement(ae.default.Fragment,null,ae.default.createElement("span",{style:{fontFamily:ye,fontSize:11,color:"var(--color-warning-text)"}},_," change",_===1?"":"s"," pending"),ae.default.createElement(zr,{variant:"secondary",onClick:fe},"Discard")),ae.default.createElement(zr,{variant:a?"primary":"secondary",onClick:n,disabled:o||!a,title:a?"Save this agent":"Nothing to save",style:a?void 0:{background:"var(--color-muted)",color:"var(--color-text-muted)",border:"1px solid transparent",cursor:"default"}},o?"Saving\u2026":"Save Changes")))):ae.default.createElement(yr,null,ae.default.createElement(aa,null,"loading the roster\u2026"))}var pue=[{id:"config",label:"Configuration"},{id:"instructions",label:"Instructions"},{id:"tools",label:"Tools"},{id:"versions",label:"Versions"},{id:"code",label:"Code"}],P$=[{id:"traces",label:"Traces"},{id:"metrics",label:"Metrics"},{id:"interactions",label:"Interactions"},{id:"evals",label:"Evals"},{id:"feedback",label:"Feedback"}],mue=P$.map(e=>e.id),T$={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"]}},vue={active:"success",draft:"warning",archived:"neutral",failed:"error",trial:"info"};function Ss({tone:e="neutral",mono:t=!1,darkMode:r,children:n}){let[a,o]=(T$[e]||T$.neutral)[r?"dark":"light"];return ie.default.createElement("span",{style:{background:a,color:o,borderRadius:"999px",padding:"2px 8px",fontSize:"11px",fontWeight:600,fontFamily:t?Fe.mono:void 0,whiteSpace:"nowrap"}},n)}function Ln({variant:e="secondary",size:t="md",onClick:r,disabled:n,colors:a,title:o,testId:i,children:l}){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?a.mutedBg:vn,color:n?a.textMuted:"#ffffff",border:"1px solid transparent"},secondary:{background:"transparent",color:a.textCell,border:`1px solid ${a.inputBorder}`},danger:{background:"transparent",color:"#dc2626",border:"1px solid rgba(220,38,38,0.4)"}};return ie.default.createElement("button",{type:"button",onClick:r,disabled:n,title:o,"data-testid":i,style:{...u,...c[e]||c.secondary}},l)}function M$({tabs:e,active:t,onChange:r,colors:n}){return ie.default.createElement("div",{style:{display:"flex",alignItems:"center"}},e.map(a=>{let o=t===a.id;return ie.default.createElement("button",{key:a.id,type:"button",onClick:()=>r(a.id),style:{padding:"10px 12px",marginBottom:"-1px",background:"none",border:"none",borderBottom:`2px solid ${o?vn:"transparent"}`,color:o?vn:n.textSecondary,fontSize:"13px",fontWeight:o?600:500,cursor:"pointer",whiteSpace:"nowrap"}},a.label)}))}function V1({agent:e,meta:t,onSave:r,onDelete:n,onRun:a,onDuplicate:o,onRunReport:i,onBack:l,isLoading:s,initialTab:u}){let{darkMode:c}=kt(),d=Fa(c),[f,p]=(0,ie.useState)(u||"config"),[m,y]=(0,ie.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||[],mcp_servers:e.mcpServers||e.mcp_servers||[],model_config:e.modelConfig||e.model_config||{temperature:.7},status:e.status||"draft"}),[h,v]=(0,ie.useState)([]),[g,b]=(0,ie.useState)(!1),[x,S]=(0,ie.useState)(""),[w,O]=(0,ie.useState)(od),k=e.telemetry_agent_class||e.telemetryAgentClass||(()=>{let N=e.agent_class_name||e.agentClassName||`${(e.name||"").replace(/[^a-zA-Z0-9]+(.)/g,(_,z)=>z.toUpperCase()).replace(/^./,_=>_.toUpperCase()).replace(/[^a-zA-Z0-9]/g,"")}`;return N.endsWith("Agent")?N:`${N}Agent`})();(0,ie.useEffect)(()=>{let N=!1;return Ky(m.provider).then(_=>{N||_.length===0||O(z=>({...z,[m.provider]:_}))}),()=>{N=!0}},[m.provider]),(0,ie.useEffect)(()=>{let N=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||[],mcp_servers:e.mcpServers||e.mcp_servers||[],model_config:e.modelConfig||e.model_config||{temperature:.7},status:e.status||"draft"});b(N)},[m,e]),(0,ie.useEffect)(()=>{f==="versions"?A():f==="code"&&M()},[f]);let A=async()=>{try{let _=await(await fetch(`/api/agents/${e.id}/versions`)).json();v(_.versions)}catch(N){console.error("Failed to load versions:",N)}},M=async()=>{try{let _=await(await fetch(`/api/agents/${e.id}/export`)).json();S(_.code)}catch(N){console.error("Failed to load code preview:",N)}},W=(N,_)=>{y(z=>({...z,[N]:_}))},L=(N,_)=>{y(z=>{let j=z[N]||[],P=j.includes(_)?j.filter(B=>B!==_):[...j,_];return{...z,[N]:P}})},H=()=>{r(m)},D=mue.includes(f),Y=f==="tools";return ie.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},ie.default.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:"12px"}},ie.default.createElement("button",{type:"button",onClick:l,title:"Back to agents",style:{fontFamily:Fe.mono,fontSize:"13px",color:d.textSecondary,background:"none",border:"none",cursor:"pointer",padding:"4px 2px",marginTop:"10px"}},"<-"),ie.default.createElement(mr,{size:44}),ie.default.createElement("div",{style:{flex:1,minWidth:0}},ie.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}},ie.default.createElement("h1",{style:{fontSize:"20px",fontWeight:700,color:d.textPrimary,margin:0}},m.name||"Untitled agent"),ie.default.createElement(Ss,{tone:vue[m.status]||"neutral",darkMode:c},m.status),g&&ie.default.createElement(Ss,{tone:"info",darkMode:c},"unsaved")),ie.default.createElement("p",{style:{fontSize:"13px",color:d.textSecondary,margin:"4px 0 0"}},m.description||"No description")),ie.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexShrink:0}},o&&ie.default.createElement(Ln,{variant:"secondary",colors:d,onClick:o},"Duplicate"),ie.default.createElement(Ln,{variant:"primary",colors:d,onClick:a},"Run Agent"))),ie.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"20px",borderBottom:`1px solid ${d.cardBorder}`,overflowX:"auto"}},ie.default.createElement(M$,{tabs:pue,active:f,onChange:p,colors:d}),ie.default.createElement("div",{style:{width:"1px",height:"18px",background:d.borderStrong,flexShrink:0}}),ie.default.createElement(M$,{tabs:P$,active:f,onChange:p,colors:d})),Y?ie.default.createElement(u_,{agent:e,formData:m,updateField:W,onSave:H,hasChanges:g,isLoading:s}):D?ie.default.createElement("div",null,f==="traces"&&ie.default.createElement(Zu,{agentClass:k,embedded:!0}),f==="metrics"&&ie.default.createElement(n_,{agent:e,embedded:!0}),f==="interactions"&&ie.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},i&&ie.default.createElement("div",{style:{display:"flex",justifyContent:"flex-end"}},ie.default.createElement("button",{type:"button",onClick:i,style:{background:"none",border:"none",cursor:"pointer",fontFamily:Fe.mono,fontSize:"11px",color:"#3b82f6"}},"run report ->")),ie.default.createElement(nl,{agentId:e.id,embedded:!0})),f==="evals"&&ie.default.createElement(eg,{embedded:!0,agentId:e.id}),f==="feedback"&&ie.default.createElement(wue,{colors:d})):ie.default.createElement("div",{style:{background:d.cardBg,border:`1px solid ${d.cardBorder}`,borderRadius:"12px",padding:"20px"}},f==="config"&&ie.default.createElement(yue,{formData:m,updateField:W,providerModels:w,colors:d,darkMode:c,onDelete:n}),f==="instructions"&&ie.default.createElement(hue,{formData:m,updateField:W,meta:t,toggleArrayItem:L,colors:d}),f==="versions"&&ie.default.createElement(xue,{versions:h,agentId:e.id,onRestore:A,colors:d,darkMode:c}),f==="code"&&ie.default.createElement(bue,{code:x,colors:d})),g&&!Y&&ie.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)"}},ie.default.createElement("span",{style:{fontSize:"13px",color:d.textSecondary}},"Unsaved changes"),ie.default.createElement("div",{style:{display:"flex",gap:"8px"}},ie.default.createElement(Ln,{variant:"primary",size:"sm",colors:d,onClick:H,disabled:s},s?"Saving\u2026":"Save Changes"))))}var ri=e=>({display:"block",fontSize:"13px",fontWeight:500,color:e.textCell,marginBottom:"6px"}),ll=e=>({width:"100%",padding:"8px 12px",borderRadius:"8px",border:`1px solid ${e.inputBorder}`,background:e.inputBg,color:e.textPrimary,fontFamily:"inherit",fontSize:"13px"}),gue=e=>({fontFamily:Fe.mono,fontSize:"11px",fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:e.textSecondary});function yue({formData:e,updateField:t,providerModels:r,colors:n,darkMode:a,onDelete:o}){return ie.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},ie.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},ie.default.createElement("div",null,ie.default.createElement("label",{style:ri(n)},"Agent Name"),ie.default.createElement("input",{type:"text",value:e.name,onChange:i=>t("name",i.target.value),className:"aa-field",style:ll(n)})),ie.default.createElement("div",null,ie.default.createElement("label",{style:ri(n)},"Preset Type"),ie.default.createElement("select",{value:e.preset_type,onChange:i=>t("preset_type",i.target.value),className:"aa-field",style:ll(n)},Object.keys(nd).map(i=>ie.default.createElement("option",{key:i,value:i},i))))),ie.default.createElement("div",null,ie.default.createElement("label",{style:ri(n)},"Description"),ie.default.createElement("textarea",{value:e.description,onChange:i=>t("description",i.target.value),rows:3,className:"aa-field",style:{...ll(n),resize:"vertical"}})),ie.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},ie.default.createElement("div",null,ie.default.createElement("label",{style:ri(n)},"Provider"),ie.default.createElement("select",{value:e.provider,onChange:i=>{t("provider",i.target.value),t("model",r[i.target.value][0])},className:"aa-field",style:ll(n)},Object.keys(r).map(i=>ie.default.createElement("option",{key:i,value:i},i.charAt(0).toUpperCase()+i.slice(1))))),ie.default.createElement("div",null,ie.default.createElement("label",{style:ri(n)},"Model"),ie.default.createElement("select",{value:e.model,onChange:i=>t("model",i.target.value),className:"aa-field",style:{...ll(n),fontFamily:Fe.mono}},(r[e.provider]?.includes(e.model)?r[e.provider]:[e.model,...r[e.provider]||[]]).filter(Boolean).map(i=>ie.default.createElement("option",{key:i,value:i},i))))),ie.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"}},ie.default.createElement("div",null,ie.default.createElement("label",{style:ri(n)},"Temperature"," ",ie.default.createElement("span",{style:{fontFamily:Fe.mono,color:n.textSecondary}},e.model_config.temperature)),ie.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:vn}})),ie.default.createElement("div",null,ie.default.createElement("label",{style:ri(n)},"Status"),ie.default.createElement("select",{value:e.status,onChange:i=>t("status",i.target.value),className:"aa-field",style:ll(n)},ie.default.createElement("option",{value:"draft"},"Draft"),ie.default.createElement("option",{value:"active"},"Active"),ie.default.createElement("option",{value:"archived"},"Archived")))),o&&ie.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",borderTop:`1px solid ${n.cardBorder}`,paddingTop:"16px"}},ie.default.createElement("div",null,ie.default.createElement("div",{style:gue(n)},"Danger zone"),ie.default.createElement("p",{style:{fontSize:"13px",color:n.textMuted,margin:"4px 0 0"}},"Deleting an agent removes its configuration and version history.")),ie.default.createElement(Ln,{variant:"danger",size:"sm",colors:n,onClick:o},"Delete Agent")))}function hue({formData:e,updateField:t,meta:r,toggleArrayItem:n,colors:a}){let o=e.action_prompts||[],i=(u,c)=>{t("action_prompts",o.map((d,f)=>f===u?{...d,...c}:d))},l=()=>{t("action_prompts",[...o,{name:"",prompt:"",expose_as_tool:!1}])},s=u=>{t("action_prompts",o.filter((c,d)=>d!==u))};return ie.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"20px"}},ie.default.createElement("div",null,ie.default.createElement("label",{style:ri(a)},"System Instructions"),ie.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:{...ll(a),fontFamily:Fe.mono,resize:"vertical"}})),ie.default.createElement("div",null,ie.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"6px"}},ie.default.createElement("label",{style:{...ri(a),marginBottom:0}},"Action Prompts"),ie.default.createElement(Ln,{variant:"secondary",size:"sm",colors:a,onClick:l},"+ Add action")),ie.default.createElement("p",{style:{fontSize:"12px",color:a.textMuted,margin:"0 0 12px"}},"Named actions run with their prompt stacked below the system instructions. The default ",ie.default.createElement("span",{style:{fontFamily:Fe.mono}},"#ask")," action uses the system instructions alone."),o.length>0&&ie.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},o.map((u,c)=>ie.default.createElement("div",{key:c,style:{border:`1px solid ${a.cardBorder}`,borderRadius:"10px",padding:"12px",display:"flex",flexDirection:"column",gap:"8px"}},ie.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},ie.default.createElement("span",{style:{fontFamily:Fe.mono,fontSize:"13px",color:a.textMuted}},"#"),ie.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:{...ll(a),flex:1,padding:"6px 10px",fontFamily:Fe.mono}}),ie.default.createElement("label",{style:{display:"flex",alignItems:"center",gap:"6px",fontSize:"12px",color:a.textSecondary,whiteSpace:"nowrap"}},ie.default.createElement("input",{type:"checkbox",checked:!!u.expose_as_tool,onChange:d=>i(c,{expose_as_tool:d.target.checked}),style:{accentColor:vn}}),"Expose as tool"),ie.default.createElement("button",{type:"button",onClick:()=>s(c),title:"Remove action",style:{fontFamily:Fe.mono,fontSize:"12px",color:a.textMuted,background:"none",border:"none",cursor:"pointer",padding:"4px"}},"[x]")),ie.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:{...ll(a),fontFamily:Fe.mono,resize:"vertical"}}))))),ie.default.createElement("div",null,ie.default.createElement("label",{style:ri(a)},"Instruction Sets"),ie.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px"}},r.instructionSets?.map(u=>{let c=e.instruction_sets.includes(u);return ie.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?vn:a.inputBorder}`,background:c?vn:"transparent",color:c?"#ffffff":a.textCell}},u)}))))}function xue({versions:e,agentId:t,onRestore:r,colors:n,darkMode:a}){let o=async i=>{if(confirm("Restore this version? This will create a new version with the restored configuration."))try{await fetch(`/api/agents/${t}/restore`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({version_id:i})}),r()}catch(l){console.error("Failed to restore version:",l)}};return ie.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"16px"}},ie.default.createElement("p",{style:{fontSize:"13px",color:n.textSecondary,margin:0}},"View and restore previous versions of this agent."),e.length>0?ie.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"10px"}},e.map(i=>{let l=i.is_latest||i.isLatest;return ie.default.createElement("div",{key:i.id,style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"12px",padding:"14px",borderRadius:"10px",border:`1px solid ${l?vn:n.cardBorder}`,background:l?"rgba(239,68,68,0.06)":"transparent"}},ie.default.createElement("div",{style:{minWidth:0}},ie.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},ie.default.createElement("span",{style:{fontFamily:Fe.mono,fontSize:"13px",fontWeight:600,color:n.textPrimary}},"v",i.version_number||i.versionNumber),l&&ie.default.createElement(Ss,{tone:"error",darkMode:a},"current")),ie.default.createElement("p",{style:{fontSize:"13px",color:n.textCell,margin:"4px 0 0"}},i.change_summary||i.changeSummary),ie.default.createElement("p",{style:{fontFamily:Fe.mono,fontSize:"11px",color:n.textMuted,margin:"4px 0 0"}},new Date(i.created_at||i.createdAt).toLocaleString())),!l&&ie.default.createElement(Ln,{variant:"secondary",size:"sm",colors:n,onClick:()=>o(i.id)},"Restore"))})):ie.default.createElement(D$,{colors:n,glyph:"[#]",title:"No version history",hint:"Saving a change records a new version."}))}function bue({code:e,colors:t}){let r=()=>{navigator.clipboard.writeText(e)};return ie.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},ie.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"}},ie.default.createElement("p",{style:{fontSize:"13px",color:t.textSecondary,margin:0}},"Generated Ruby code for this agent."),ie.default.createElement(Ln,{variant:"secondary",size:"sm",colors:t,onClick:r},"Copy")),ie.default.createElement("pre",{style:{padding:"16px",background:"#111827",color:"#e5e7eb",borderRadius:"10px",overflowX:"auto",fontFamily:Fe.mono,fontSize:"12px",lineHeight:1.6,margin:0}},ie.default.createElement("code",null,e||"Loading...")))}function wue({colors:e}){return ie.default.createElement("div",{style:{background:e.cardBg,border:`1px solid ${e.cardBorder}`,borderRadius:"12px",padding:"20px"}},ie.default.createElement(D$,{colors:e,glyph:"[?]",title:"No feedback recorded",hint:"Thumbs and comments are not captured yet. Once an interaction feedback source is recorded, CSAT and per-trace comments appear here."}))}function D$({colors:e,glyph:t,title:r,hint:n}){return ie.default.createElement("div",{style:{textAlign:"center",padding:"40px 20px"}},ie.default.createElement("div",{style:{fontFamily:Fe.mono,fontSize:"20px",color:e.textMuted}},t),ie.default.createElement("div",{style:{fontSize:"14px",fontWeight:600,color:e.textPrimary,marginTop:"10px"}},r),ie.default.createElement("p",{style:{fontSize:"13px",color:e.textMuted,margin:"6px auto 0",maxWidth:"420px"}},n))}var V=te(ne());async function Vf(){let e=window.ACTIVE_AGENT_DASHBOARD?.meta?.upgradeUrl;if(!e)throw new Error("This dashboard has no billing configured.");window.location.href=e}var Sue={llm:{role:"assistant",label:"LLM"},tool:{role:"tool",label:"Tool"},agent:{role:"developer",label:"Agent"},mcp:{role:"system",label:"MCP"}},Aue=(e,t)=>{let r=Sue[e]||{role:e,label:e};return{...gr(r.role,t),label:r.label}},c_={complete:"success",failed:"error",running:"info",pending:"warning",cancelled:"neutral"},kue=["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"],Nue=["user","assistant","tool"],Cue=1200,Eue=600*1e3,K1=e=>e?e<1e3?`${e}ms`:`${(e/1e3).toFixed(2)}s`:"-",I$=e=>{if(!e)return null;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}},d_=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()]},As=e=>e?.context_id??e?.output_metadata?.context_id??null,tg=e=>e.json().catch(()=>({})),j$=({open:e,color:t})=>V.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}},V.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}));function _ue({run:e,darkMode:t,colors:r,expanded:n,onToggle:a}){let o=d_(e),i=_1(t);return V.default.createElement("div",{"data-testid":"runner-activity",className:"space-y-2"},o.map(l=>{let s=!!n[l.eid],u=!!(l.input||l.output),c=Aue(l.kind,t);return V.default.createElement("div",{key:l.eid,"data-testid":"runner-activity-event"},V.default.createElement("div",{className:`flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 ${u?"cursor-pointer":""}`,onClick:u?()=>a(l.eid):void 0,title:u?"Click to inspect input/output":void 0,style:s?{background:t?"rgba(255,255,255,0.04)":"rgba(0,0,0,0.03)"}:{}},V.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),V.default.createElement("div",{className:"min-w-0 flex-1"},V.default.createElement("div",{className:"text-sm break-words",style:{color:r.textPrimary}},l.label,l.output&&!s&&V.default.createElement("span",{style:{color:r.textMuted}}," \u201C",l.output.slice(0,160),l.output.length>160?"\u2026":"","\u201D")),V.default.createElement("div",{className:"text-xs mt-0.5 font-mono flex items-center gap-2 flex-wrap",style:{color:r.textMuted}},l.status==="started"?V.default.createElement("span",{className:"animate-pulse",style:{color:"#3b82f6"}},"running\u2026"):V.default.createElement("span",{style:l.status==="error"?{color:"#ef4444"}:void 0},l.status==="error"?"failed":"\u2713",l.duration_ms!=null&&` ${K1(l.duration_ms)}`),l.at&&V.default.createElement("span",null,new Date(l.at).toLocaleTimeString()))),u&&V.default.createElement(j$,{open:s,color:r.textMuted})),s&&V.default.createElement("div",{className:"ml-3 mt-1 mb-2 pl-4 space-y-2 border-l-2",style:{borderColor:c.color+"55"}},l.input&&V.default.createElement("div",null,V.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:r.textMuted}},"Input"),V.default.createElement("pre",{style:{...i,whiteSpace:"pre-wrap",maxHeight:"160px",overflowY:"auto"}},I$(l.input))),l.output&&V.default.createElement("div",null,V.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:r.textMuted}},l.status==="error"?"Error":"Result"),V.default.createElement("pre",{style:{...i,whiteSpace:"pre-wrap",maxHeight:"224px",overflowY:"auto",...l.status==="error"?{background:t?"rgba(239,68,68,0.12)":"#fef2f2",color:t?"#fca5a5":"#b91c1c"}:{}}},I$(l.output)))))}))}function Oue({run:e,darkMode:t,colors:r}){return e?V.default.createElement("div",{className:"flex items-center gap-3 flex-wrap text-xs",style:{color:r.textMuted}},V.default.createElement("span",{"data-testid":"runner-status",style:{display:"inline-flex"}},V.default.createElement(Ss,{tone:c_[e.status]||"neutral",darkMode:t},e.status)),e.output_metadata?.model&&V.default.createElement("span",{className:"font-mono",title:"Model that generated this run"},e.output_metadata.provider,"/",e.output_metadata.model),e.duration_ms?V.default.createElement("span",null,K1(e.duration_ms)):null,e.total_tokens?V.default.createElement("span",null,e.total_tokens," tokens"):null,e.trace_id&&V.default.createElement("a",{href:Ge(`/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 f_({agent:e,onBack:t}){let{darkMode:r}=kt(),n=Fa(r),a=e.action_prompts||e.actionPrompts||[],o=["ask",...a.map(oe=>oe.name).filter(Boolean)],[i,l]=(0,V.useState)("ask"),[s,u]=(0,V.useState)(""),[c,d]=(0,V.useState)([]),[f,p]=(0,V.useState)(!1),[m,y]=(0,V.useState)([]),[h,v]=(0,V.useState)(null),[g,b]=(0,V.useState)(null),[x,S]=(0,V.useState)(null),[w,O]=(0,V.useState)([]),[k,A]=(0,V.useState)(!1),[M,W]=(0,V.useState)(null),[L,H]=(0,V.useState)(null),[D,Y]=(0,V.useState)(null),[N,_]=(0,V.useState)(null),[z,j]=(0,V.useState)({}),[P,B]=(0,V.useState)(null),[R,F]=(0,V.useState)(!1),[G,ee]=(0,V.useState)(null),[fe,de]=(0,V.useState)(!1),[De,le]=(0,V.useState)(!1),[Te,K]=(0,V.useState)(null),[I,C]=(0,V.useState)(""),[T,X]=(0,V.useState)(!1),[$,Ne]=(0,V.useState)(null),E=(0,V.useRef)(null),Z=(0,V.useRef)(null),ge=(0,V.useRef)(0),Le=(0,V.useRef)(!0),nt=(0,V.useRef)(null),Bt=(0,V.useRef)([]),ft=(0,V.useRef)(null),En=(0,V.useRef)(null),Bn=(0,V.useRef)(null),oa=(0,V.useRef)(null),Mo=(g?.messages||[]).filter(oe=>Nue.includes(oe.role));(0,V.useEffect)(()=>{nt.current=L},[L]),(0,V.useEffect)(()=>{Bt.current=c},[c]),(0,V.useEffect)(()=>(Le.current=!0,nc(),()=>{Le.current=!1,ge.current+=1,ai(nt.current),ai({attachments:Bt.current}),H(null),d([])}),[e.id]),(0,V.useEffect)(()=>{fr(i)},[e.id,i]),(0,V.useEffect)(()=>{Z.current=h,h?$n(h):(b(null),S(null))},[h]),(0,V.useEffect)(()=>{let oe=En.current;oe&&(oe.scrollTop=oe.scrollHeight)},[Mo.length,L,M?.logs?.length,Te,D]),(0,V.useEffect)(()=>{if(!De)return;let oe=Ie=>{oa.current&&!oa.current.contains(Ie.target)&&le(!1)};return document.addEventListener("mousedown",oe),()=>document.removeEventListener("mousedown",oe)},[De]);let nc=async()=>{try{let Ie=await(await fetch(`/api/agents/${e.id}/runs?per_page=10`)).json();O(Ie.runs||[])}catch(oe){console.error("Failed to load runs:",oe)}},fr=async oe=>{try{let Ie=await fetch(`/api/agents/${e.id}/conversations?action_name=${encodeURIComponent(oe)}`);if(!Ie.ok)throw new Error(`HTTP ${Ie.status}`);let at=(await Ie.json()).conversations||[];y(at),v(Hr=>Hr&&(E.current===Hr||at.some(fo=>fo.id===Hr))?Hr:at[0]?.id??null)}catch(Ie){console.error("Failed to load conversations:",Ie),y([])}},$n=async oe=>{try{let Ie=await fetch(`/api/interactions/${oe}`);if(!Ie.ok)throw new Error(Ie.status===404?"Conversation not found":`HTTP ${Ie.status}`);let Ye=await Ie.json();if(Z.current!==oe)return;b(Ye.interaction),S(null)}catch(Ie){if(Z.current!==oe)return;b(null),S(Ie.message)}},ni=async()=>{let oe=await fetch(`/api/agents/${e.id}/conversations`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action_name:i})}),Ie=await tg(oe);if(!oe.ok||!Ie.conversation)throw new Error(Ie.error||`Could not start a conversation (HTTP ${oe.status})`);let Ye=Ie.conversation;return y(at=>[Ye,...at.filter(Hr=>Hr.id!==Ye.id)]),E.current=Ye.id,v(Ye.id),Ye.id},ac=()=>Z.current?Promise.resolve(Z.current):ni(),nw=oe=>{E.current=null,l(oe)},Xf=()=>{W(null),_(null),j({})},aw=oe=>{let Ie=oe?Number(oe):null;Ie!==Z.current&&Xf(),E.current=Ie,v(Ie),Y(null)},oc=async()=>{if(!k)try{await ni(),S(null),Y(null),Xf(),ai(nt.current),H(null),K(null)}catch(oe){S(oe.message)}},ai=oe=>{(oe?.attachments||[]).forEach(Ie=>{Ie.url&&Ie.url.startsWith("blob:")&&URL.revokeObjectURL(Ie.url)})},ic=oe=>{let Ie=Array.from(oe||[]).filter(Boolean);Ie.length!==0&&d(Ye=>[...Ye,...Ie.map(at=>({file:at,filename:at.name,content_type:at.type||"application/octet-stream",byte_size:at.size,kind:j7(at),url:at.type&&at.type.startsWith("image/")?URL.createObjectURL(at):null}))])},ow=oe=>{d(Ie=>{let Ye=Ie[oe];return Ye?.url&&URL.revokeObjectURL(Ye.url),Ie.filter((at,Hr)=>Hr!==oe)})},fg=(oe,Ie)=>{A(!1),ai(nt.current),H(null),nc();let Ye=As(oe)??Ie;Ye&&(Ye!==Z.current?(E.current=Ye,v(Ye)):$n(Ye),fr(i))},iw=(oe,Ie)=>{if(!Le.current)return;let Ye=++ge.current,at=Date.now(),Hr=async()=>{if(ge.current===Ye){try{let fo=await fetch(`/api/runs/${oe}`);if(fo.ok){let Un=await fo.json();if(ge.current!==Ye)return;if(W(Un.run),!["pending","running"].includes(Un.run.status)){fg(Un.run,Ie);return}}}catch{}Date.now()-atfo&&{...fo,status:"failed",error_message:"Timed out waiting for the run to finish."}),_("Timed out waiting for the run to finish."))}};Hr()},lc=async({text:oe,files:Ie,fromComposer:Ye=!1})=>{let at=(oe||"").trim();if(!at&&Ie.length===0||k)return;_(null),Y(null),K(null),A(!0),j({}),W({status:"pending",input_prompt:at,output:"",logs:[],started_at:new Date().toISOString()}),ai(nt.current),H({content:at||"(see attached files)",attachments:Ie.map(({file:Un,...Cs})=>Cs)}),Ye&&(u(""),d([]));let Hr=Z.current;if(!Hr)try{Hr=await ni()}catch(Un){_(`${Un.message} \u2014 running without a pinned conversation.`)}let fo=()=>{Ye&&(u(at),d(Ie)),H(null)};try{let Un=new FormData;Un.append("prompt",at),Un.append("action_name",i),Hr&&Un.append("params[context_id]",String(Hr)),Ie.forEach(({file:mg})=>Un.append("attachments[]",mg,mg.name));let Cs=await fetch(`/api/agents/${e.id}/execute`,{method:"POST",body:Un}),cc=await tg(Cs);if(Cs.status===402&&cc.upgrade_required){B(cc.usage),W(mg=>({...mg,status:"failed",error_message:cc.message||"Plan limit reached"})),A(!1),fo();return}if(!Cs.ok)throw new Error(cc.error||"Run failed");iw(cc.run.id,As(cc.run)??Hr)}catch(Un){W(Cs=>({...Cs,status:"failed",error_message:Un.message})),A(!1),fo()}},Zf=()=>lc({text:s,files:c,fromComposer:!0}),pg=oe=>{!oe||!oe.text||lc({text:oe.text,files:[]})},lw=oe=>{oe.key==="Enter"&&(oe.metaKey||oe.ctrlKey)&&(oe.preventDefault(),Zf())},Qf=async(oe,Ie)=>{let Ye=Z.current,at=await fetch(`/api/interactions/${Ye}/messages/${oe.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:Ie})}),Hr=await tg(at);if(!at.ok)throw new Error(Hr.error||`Could not save the message (HTTP ${at.status})`);await $n(Ye)},sw=async oe=>{let Ie=Z.current;try{let Ye=await fetch(`/api/interactions/${Ie}/messages/${oe.id}`,{method:"DELETE"});if(!Ye.ok){let at=await tg(Ye);throw new Error(at.error||`Could not delete the message (HTTP ${Ye.status})`)}S(null),await $n(Ie),fr(i)}catch(Ye){S(Ye.message)}},uw=oe=>{le(!1),K(oe),C(""),Ne(null)},sc=async()=>{let oe=I.trim();if(!(!oe||T)){X(!0),Ne(null);try{let Ie=await ac(),Ye=await fetch(`/api/interactions/${Ie}/messages`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({role:Te,content:oe})}),at=await tg(Ye);if(!Ye.ok)throw new Error(at.error||`Could not add the message (HTTP ${Ye.status})`);C(""),K(null),await $n(Ie),fr(i)}catch(Ie){Ne(Ie.message)}finally{X(!1)}}},cw=async oe=>{let Ie=oe;if(As(oe)==null)try{let at=await fetch(`/api/runs/${oe.id}`);at.ok&&(Ie=(await at.json()).run)}catch(at){console.error("Failed to load run details:",at)}let Ye=As(Ie);if(Ye){Y(null),Ye!==Z.current&&Xf(),E.current=Ye;let at=Ie.action_name||oe.action_name;at&&o.includes(at)&&at!==i&&l(at),v(Ye)}else Y({...Ie,output:Ie.output??Ie.output_preview,error_message:Ie.error_message??Ie.error});ft.current?.scrollIntoView({behavior:"smooth",block:"start"})},xe=async()=>{F(!0),ee(null);try{await Vf({planSlug:"pro"})}catch(oe){ee(oe.message),F(!1)}},ut=window.ACTIVE_AGENT_DASHBOARD?.meta?.upgradeUrl,Zt=a.find(oe=>oe.name===i)?.prompt,pr=[e.instructions,i==="ask"?null:Zt].map(oe=>(oe||"").trim()).filter(Boolean).join(` -`)||g?.instructions||"",vn=m.slice();h&&!vn.some(ie=>ie.id===h)&&vn.unshift({id:h,message_count:_i.length});let As=(s.trim().length>0||c.length>0)&&!k,O_=P&&!k&&P.status==="failed",z$=P&&!k&&P.status==="complete"&&!ws(P)&&!h,ic={background:n.cardBg,border:`1px solid ${n.cardBorder}`,borderRadius:"12px"},T_={borderBottom:`1px solid ${n.cardBorder}`},M_={padding:"6px 10px",borderRadius:"8px",border:`1px solid ${n.inputBorder}`,background:n.inputBg,color:n.textPrimary,fontSize:"13px",fontFamily:$e.mono,maxWidth:"260px"},P_={width:"100%",padding:"10px 12px",borderRadius:"8px",border:`1px solid ${f?Wr:n.inputBorder}`,background:n.inputBg,color:n.textPrimary,fontFamily:"inherit",fontSize:"13px",resize:"vertical"},nw=mr("system",r),L$=S1(r);return W.default.createElement("div",{className:"grid grid-cols-3 gap-6 h-full"},W.default.createElement("div",{className:"col-span-2 flex flex-col gap-4 min-w-0"},T&&W.default.createElement("div",{className:"bg-amber-50 border border-amber-200 rounded-xl p-4 flex items-center justify-between gap-4"},W.default.createElement("div",null,W.default.createElement("p",{className:"font-medium text-amber-900"},"Monthly run limit reached"),W.default.createElement("p",{className:"text-sm text-amber-700 mt-0.5"},"You've used ",T.runs_used," of ",T.runs_limit," runs on the"," ",T.plan||"free"," plan. Upgrade to keep running agents."),q&&W.default.createElement("p",{className:"text-sm text-red-600 mt-1"},q)),W.default.createElement("div",{className:"flex items-center gap-2 flex-shrink-0"},lt&&W.default.createElement("a",{href:lt,className:"px-4 py-2 text-sm text-amber-800 hover:text-amber-900"},"See plans"),W.default.createElement("button",{onClick:ye,disabled:R,className:"px-4 py-2 text-sm bg-amber-500 text-white rounded-lg hover:bg-amber-600 transition-colors disabled:opacity-50"},R?"Redirecting\u2026":"Upgrade to Pro"))),W.default.createElement("div",{"data-testid":"runner-toolbar",style:ic,className:"p-4 flex items-center gap-3 flex-wrap"},W.default.createElement(fr,{size:40}),W.default.createElement("div",{className:"min-w-0"},W.default.createElement("div",{className:"font-semibold truncate",style:{color:n.textPrimary}},e.name),W.default.createElement("div",{className:"text-xs font-mono",style:{color:n.textSecondary}},e.provider," / ",e.model)),W.default.createElement("div",{className:"flex items-center gap-2 flex-wrap ml-auto"},W.default.createElement("select",{"data-testid":"runner-action-select",value:o,onChange:ie=>X1(ie.target.value),disabled:k,className:"aa-field",style:M_,title:"Agent action to invoke"},i.map(ie=>W.default.createElement("option",{key:ie,value:ie},"#",ie))),W.default.createElement("select",{"data-testid":"runner-conversation-select",value:h??"",onChange:ie=>Z1(ie.target.value),disabled:k,className:"aa-field",style:M_,title:"Conversation to continue"},W.default.createElement("option",{value:""},"New conversation on first run"),vn.map(ie=>W.default.createElement("option",{key:ie.id,value:ie.id},"Conversation #",ie.id," \xB7 ",ie.message_count??0," message",ie.message_count===1?"":"s"))),W.default.createElement(zn,{testId:"runner-new-conversation",variant:"secondary",size:"sm",colors:n,onClick:tc,disabled:k,title:"Start an empty conversation for this action"},"+ New conversation"),W.default.createElement(zn,{testId:"runner-back",variant:"secondary",size:"sm",colors:n,onClick:t},"\u2190 Back to editor"))),W.default.createElement("div",{"data-testid":"runner-context",ref:ct,style:ic,className:"flex flex-col overflow-hidden"},W.default.createElement("div",{className:"px-4 py-3 flex items-center justify-between gap-3 flex-wrap",style:T_},W.default.createElement("div",{className:"flex items-center gap-2 min-w-0"},W.default.createElement("h3",{className:"font-medium",style:{color:n.textPrimary}},"Context"),g&&W.default.createElement("span",{className:"text-xs font-mono",style:{color:n.textMuted}},"#",g.id," \xB7 ",_i.length," message",_i.length===1?"":"s")),W.default.createElement("div",{className:"flex items-center gap-3 flex-wrap"},W.default.createElement(Rse,{run:P,darkMode:r,colors:n}),W.default.createElement("div",{className:"relative",ref:na},W.default.createElement(zn,{testId:"runner-add-message",variant:"secondary",size:"sm",colors:n,onClick:()=>oe(ie=>!ie),disabled:k,title:"Insert a message into the context without running"},"+ Add message"),Pe&&W.default.createElement("div",{className:"absolute right-0 mt-1 z-10 py-1 rounded-lg shadow-lg",style:{background:n.cardBg,border:`1px solid ${n.borderStrong}`,minWidth:"180px"}},[["user","runner-add-user-message","User message"],["assistant","runner-add-assistant-message","Assistant message"]].map(([ie,De,qe])=>W.default.createElement("button",{key:ie,type:"button","data-testid":De,onClick:()=>tw(ie),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-black/5",style:{color:n.textCell,background:"none",border:"none",cursor:"pointer"}},qe)))))),W.default.createElement("div",{ref:Nn,className:"p-4 overflow-auto",style:{maxHeight:"60vh"}},W.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:()=>pe(ie=>!ie),title:fe?"Collapse system instructions":"Show system instructions"},W.default.createElement("span",{className:"flex flex-col gap-1 flex-shrink-0 mt-0.5",style:{minWidth:"72px"}},W.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:nw.background,color:nw.color,textAlign:"center"}},nw.label)),W.default.createElement("div",{className:"min-w-0 flex-1"},dr?fe?W.default.createElement("pre",{style:{...L$,whiteSpace:"pre-wrap",maxHeight:"260px",overflowY:"auto"}},dr):W.default.createElement("div",{className:"text-sm truncate",style:{color:n.textSecondary}},dr.split(` -`).find(ie=>ie.trim())||""):W.default.createElement("div",{className:"text-sm",style:{color:n.textMuted}},"No system instructions"),W.default.createElement("div",{className:"text-xs mt-0.5 font-mono",style:{color:n.textMuted}},"read-only \xB7 Edit in the Instructions tab")),W.default.createElement(f$,{open:fe,color:n.textMuted})),x&&W.default.createElement("div",{className:"text-sm mt-3",style:{color:"#dc2626"}},x),_i.length>0?W.default.createElement("div",{className:"mt-3"},W.default.createElement(oi,{messages:_i,darkMode:r,testIdPrefix:"runner-message",onUiAction:lg,onEditMessage:qf,onDeleteMessage:ew})):!z&&!M&&!O_&&W.default.createElement("div",{"data-testid":"runner-context-empty",className:"text-sm text-center py-8",style:{color:n.textMuted}},"No messages yet \u2014 say something below to test the agent as a user."),z&&W.default.createElement("div",{"data-testid":"runner-pending-turn",className:"flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 mt-3"},W.default.createElement("span",{className:"flex flex-col gap-1 flex-shrink-0 mt-0.5",style:{minWidth:"72px"}},W.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:mr("user",r).background,color:mr("user",r).color,textAlign:"center"}},"User")),W.default.createElement("div",{className:"min-w-0 flex-1"},W.default.createElement("div",{className:"text-sm break-words whitespace-pre-wrap",style:{color:n.textPrimary}},z.content),W.default.createElement(A1,{attachments:z.attachments,darkMode:r}))),P&&(k||QE(P).length>0)&&W.default.createElement("div",{className:"mt-3 space-y-2"},W.default.createElement(Jse,{run:P,darkMode:r,colors:n,expanded:I,onToggle:ie=>D(De=>({...De,[ie]:!De[ie]}))}),k&&W.default.createElement("div",{className:"flex items-center gap-2 text-sm",style:{color:n.textSecondary}},W.default.createElement("span",{className:"animate-pulse"},"\u25CF"),W.default.createElement("span",null,QE(P).length>0?"Working\u2026":"Starting run\u2026"))),N&&W.default.createElement("div",{className:"text-xs mt-3",style:{color:"#d97706"}},N),O_&&P.error_message&&W.default.createElement("div",{className:"mt-3 rounded-lg p-3 text-sm",style:{background:r?"rgba(239,68,68,0.12)":"#fef2f2",color:r?"#fca5a5":"#b91c1c"}},W.default.createElement("div",{className:"font-semibold mb-1"},"Run failed"),W.default.createElement("pre",{className:"whitespace-pre-wrap font-mono text-xs",style:{margin:0}},P.error_message)),z$&&W.default.createElement("div",{className:"mt-3 rounded-lg p-3 text-sm",style:{background:n.innerBg,color:n.textPrimary}},W.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:n.textMuted}},"Output"),W.default.createElement(Ni,{text:P.output||"No output",darkMode:r,onUiAction:lg})),M&&W.default.createElement("div",{"data-testid":"runner-inspected-run",className:"mt-3 rounded-lg p-3",style:{background:n.innerBg,border:`1px solid ${n.cardBorder}`}},W.default.createElement("div",{className:"flex items-center justify-between gap-3 flex-wrap mb-2"},W.default.createElement("div",{className:"flex items-center gap-2 text-xs font-mono",style:{color:n.textMuted}},W.default.createElement("span",{style:{color:n.textPrimary}},"Run #",M.id),W.default.createElement(bs,{tone:ZE[M.status]||"neutral",darkMode:r},M.status),M.output_metadata?.model&&W.default.createElement("span",null,M.output_metadata.provider,"/",M.output_metadata.model),M.duration_ms?W.default.createElement("span",null,L1(M.duration_ms)):null,M.trace_id&&W.default.createElement("a",{href:Je(`/traces?trace=${M.trace_id}`),className:"hover:underline",style:{color:n.textSecondary}},"trace:",M.trace_id.slice(0,8)," \u2192"),W.default.createElement("span",null,"\xB7 no conversation attached")),W.default.createElement("button",{type:"button",onClick:()=>F(null),className:"text-xs font-mono",style:{color:n.textMuted,background:"none",border:"none",cursor:"pointer"},title:"Close"},"[x]")),(M.input_prompt||M.input_preview)&&W.default.createElement("div",{className:"text-sm mb-2 whitespace-pre-wrap",style:{color:n.textSecondary}},M.input_prompt||M.input_preview),M.error_message?W.default.createElement("pre",{className:"whitespace-pre-wrap font-mono text-xs",style:{margin:0,color:r?"#fca5a5":"#b91c1c"}},M.error_message):W.default.createElement("div",{className:"text-sm",style:{color:n.textPrimary}},W.default.createElement(Ni,{text:M.output||"No output",darkMode:r}))),Te&&W.default.createElement("div",{className:"mt-3 rounded-lg p-3",style:{border:`1px dashed ${n.borderStrong}`}},W.default.createElement("div",{className:"flex items-center gap-2 mb-2"},W.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:mr(Te,r).background,color:mr(Te,r).color}},mr(Te,r).label),W.default.createElement("span",{className:"text-xs",style:{color:n.textMuted}},"Added to the context without running the agent")),W.default.createElement("textarea",{"data-testid":"runner-inline-composer",value:J,onChange:ie=>E(ie.target.value),onKeyDown:ie=>{ie.key==="Escape"&&V(null),ie.key==="Enter"&&(ie.metaKey||ie.ctrlKey)&&ac()},placeholder:Te==="user"?"What the user said\u2026":"What the assistant replied\u2026",rows:3,autoFocus:!0,className:"aa-field",style:{...P_,border:`1px solid ${n.inputBorder}`}}),W.default.createElement("div",{className:"flex items-center gap-2 mt-2 flex-wrap"},W.default.createElement(zn,{testId:"runner-inline-submit",variant:"primary",size:"sm",colors:n,onClick:ac,disabled:L||!J.trim()},L?"Adding\u2026":`Add ${Te} message`),W.default.createElement(zn,{variant:"secondary",size:"sm",colors:n,onClick:()=>V(null),disabled:L},"Cancel"),B&&W.default.createElement("span",{className:"text-xs",style:{color:"#dc2626"}},B))))),W.default.createElement("div",{style:ic,className:"p-4"},W.default.createElement("div",{onDragOver:ie=>{ie.preventDefault(),f||p(!0)},onDragLeave:()=>p(!1),onDrop:ie=>{ie.preventDefault(),p(!1),k||rc(ie.dataTransfer?.files)}},W.default.createElement("textarea",{"data-testid":"runner-prompt",value:s,onChange:ie=>u(ie.target.value),onKeyDown:R1,placeholder:"Message the agent as a user\u2026 (\u2318/Ctrl+Enter to run \xB7 drop files here to attach)",rows:3,disabled:k,className:"aa-field",style:P_})),W.default.createElement(A1,{attachments:c,darkMode:r,testId:"runner-attachment-chip",onRemove:(ie,De)=>Q1(De),removeTestId:"runner-attachment-remove"}),W.default.createElement("div",{className:"flex items-center justify-between gap-3 flex-wrap mt-3"},W.default.createElement("div",{className:"flex items-center gap-3 flex-wrap"},W.default.createElement("input",{ref:Ln,"data-testid":"runner-attach-input",type:"file",multiple:!0,style:{display:"none"},onChange:ie=>{rc(ie.target.files),ie.target.value=""}}),W.default.createElement(zn,{testId:"runner-attach",variant:"secondary",size:"sm",colors:n,onClick:()=>Ln.current?.click(),disabled:k,title:"Attach images, PDFs, or text files to this message"},"\u{1F4CE} Attach files"),W.default.createElement("span",{className:"text-xs",style:{color:n.textMuted}},"Press ",W.default.createElement("kbd",{className:"px-1.5 py-0.5 rounded",style:{background:n.mutedBg,color:n.textSecondary}},"\u2318")," + ",W.default.createElement("kbd",{className:"px-1.5 py-0.5 rounded",style:{background:n.mutedBg,color:n.textSecondary}},"Enter")," to run")),W.default.createElement(zn,{testId:"runner-run",variant:"primary",colors:n,onClick:Kf,disabled:!As},k?W.default.createElement(W.default.Fragment,null,W.default.createElement("span",{className:"animate-spin inline-block",style:{fontFamily:$e.mono}},"[~]")," Running\u2026"):W.default.createElement(W.default.Fragment,null,W.default.createElement("span",{style:{fontFamily:$e.mono}},"[>]")," Run"))))),W.default.createElement("div",{className:"space-y-4 min-w-0"},W.default.createElement("div",{style:ic,className:"p-4"},W.default.createElement("h4",{className:"font-medium mb-3",style:{color:n.textPrimary}},"Configuration"),W.default.createElement("dl",{className:"space-y-2 text-sm"},W.default.createElement("div",{className:"flex justify-between"},W.default.createElement("dt",{style:{color:n.textSecondary}},"Temperature"),W.default.createElement("dd",{style:{color:n.textPrimary}},e.modelConfig?.temperature||e.model_config?.temperature||.7)),W.default.createElement("div",{className:"flex justify-between"},W.default.createElement("dt",{style:{color:n.textSecondary}},"Tools"),W.default.createElement("dd",{style:{color:n.textPrimary}},e.tools?.length||0)),W.default.createElement("div",{className:"flex justify-between items-center"},W.default.createElement("dt",{style:{color:n.textSecondary}},"Status"),W.default.createElement("dd",null,W.default.createElement(bs,{tone:e.status==="active"?"success":"neutral",darkMode:r},e.status)))),e.instructions&&W.default.createElement("div",{className:"mt-3 pt-3",style:{borderTop:`1px solid ${n.cardBorder}`}},W.default.createElement("div",{className:"text-xs mb-1.5",style:{color:n.textSecondary}},"System Instructions"),W.default.createElement("p",{className:"text-xs whitespace-pre-wrap max-h-44 overflow-y-auto font-mono leading-relaxed",style:{color:n.textCell}},e.instructions))),W.default.createElement("div",{style:ic,className:"overflow-hidden"},W.default.createElement("div",{className:"px-4 py-3",style:T_},W.default.createElement("h4",{className:"font-medium",style:{color:n.textPrimary}},"Recent Runs")),W.default.createElement("div",{className:"max-h-64 overflow-auto"},w.length>0?W.default.createElement("div",null,w.map(ie=>W.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 ${n.cardBorder}`},onClick:()=>rw(ie),title:ws(ie)?"Open this run\u2019s conversation":"Show this run\u2019s output"},W.default.createElement("div",{className:"flex items-center justify-between mb-1"},W.default.createElement(bs,{tone:ZE[ie.status]||"neutral",darkMode:r},ie.status),W.default.createElement("span",{className:"text-xs",style:{color:n.textMuted}},L1(ie.duration_ms))),W.default.createElement("p",{className:"text-sm truncate",style:{color:n.textCell}},ie.input_preview||ie.input_prompt?.substring(0,50)),W.default.createElement("p",{className:"text-xs mt-1 flex items-center gap-2 flex-wrap",style:{color:n.textMuted}},ie.model&&W.default.createElement("span",{className:"px-1.5 py-0.5 rounded font-mono",style:{background:n.mutedBg,color:n.textSecondary}},ie.model),ws(ie)&&W.default.createElement("span",{className:"font-mono"},"#",ws(ie)),W.default.createElement("span",null,new Date(ie.created_at).toLocaleString()))))):W.default.createElement("div",{className:"px-4 py-8 text-center text-sm",style:{color:n.textMuted}},"No runs yet"))),W.default.createElement("div",{style:ic,className:"p-4"},W.default.createElement("h4",{className:"font-medium mb-3",style:{color:n.textPrimary}},"Example Prompts"),W.default.createElement("div",{className:"space-y-2"},Gse.map(ie=>W.default.createElement("button",{key:ie,type:"button","data-testid":"runner-example-prompt",onClick:()=>u(ie),className:"w-full text-left px-3 py-2 text-sm rounded-lg transition-colors hover:bg-black/5",style:{color:n.textCell,border:`1px solid ${n.cardBorder}`,background:"transparent",cursor:"pointer"}},ie))))))}var Ee=re(ne()),B1=e=>new Date(`${e}T00:00:00`),eue=[{value:7,label:"7 days"},{value:14,label:"14 days"},{value:30,label:"30 days"},{value:90,label:"90 days"}];function RE({onSelectAgent:e}){let[t,r]=(0,Ee.useState)(null),[n,a]=(0,Ee.useState)(!0),[i,o]=(0,Ee.useState)(30);(0,Ee.useEffect)(()=>{l()},[i]);let l=async()=>{a(!0);try{let p=await(await fetch(`/api/analytics?days=${i}`)).json();r(p)}catch(f){console.error("Failed to load analytics:",f)}finally{a(!1)}},s=f=>f?f>=1e6?`${(f/1e6).toFixed(1)}M`:f>=1e3?`${(f/1e3).toFixed(1)}K`:f.toString():"0",u=f=>f?f<1e3?`${f}ms`:`${(f/1e3).toFixed(2)}s`:"-";if(n&&!t)return Ee.default.createElement("div",{className:"flex items-center justify-center h-64"},Ee.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(f=>f.count)):1,d=t?.charts?.tokens_by_day?.length>0?Math.max(...t.charts.tokens_by_day.map(f=>f.tokens)):1;return Ee.default.createElement("div",{className:"space-y-6"},Ee.default.createElement("div",{className:"flex items-center justify-between"},Ee.default.createElement("div",null,Ee.default.createElement("h1",{className:"text-2xl font-bold text-gray-900"},"Analytics Dashboard"),Ee.default.createElement("p",{className:"text-sm text-gray-500"},"Overview of all your agents' performance")),Ee.default.createElement("select",{value:i,onChange:f=>o(Number(f.target.value)),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},eue.map(f=>Ee.default.createElement("option",{key:f.value,value:f.value},"Last ",f.label)))),Ee.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-5 gap-4"},Ee.default.createElement(Zv,{title:"Total Agents",value:t?.summary?.total_agents||0,subtitle:`${t?.summary?.active_agents||0} active`,color:"rose"}),Ee.default.createElement(Zv,{title:"Total Runs",value:t?.summary?.total_runs||0,subtitle:`${t?.period_days} day period`,color:"blue"}),Ee.default.createElement(Zv,{title:"Success Rate",value:`${t?.summary?.success_rate||0}%`,subtitle:`${t?.summary?.completed_runs||0} completed`,color:"green"}),Ee.default.createElement(Zv,{title:"Avg Duration",value:u(t?.summary?.avg_duration_ms),subtitle:"per run",color:"purple"}),Ee.default.createElement(Zv,{title:"Total Tokens",value:s(t?.summary?.total_tokens),subtitle:`${s(t?.summary?.avg_tokens_per_run)}/run avg`,color:"amber"})),Ee.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6"},Ee.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},Ee.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Runs Over Time"),t?.charts?.runs_by_day?.length>0?Ee.default.createElement("div",{className:"h-48"},Ee.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},t.charts.runs_by_day.map((f,p)=>Ee.default.createElement("div",{key:f.date,className:"flex-1 flex flex-col items-center group"},Ee.default.createElement("div",{className:"relative w-full"},Ee.default.createElement("div",{className:"w-full bg-red-500 rounded-t transition-all hover:bg-red-600",style:{height:`${f.count/c*150}px`,minHeight:f.count>0?"4px":"0"}}),Ee.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"},f.count," runs"))))),Ee.default.createElement("div",{className:"flex justify-between mt-2 text-xs text-gray-400"},Ee.default.createElement("span",null,t.charts.runs_by_day[0]?.date&&B1(t.charts.runs_by_day[0].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})),Ee.default.createElement("span",null,t.charts.runs_by_day[t.charts.runs_by_day.length-1]?.date&&B1(t.charts.runs_by_day[t.charts.runs_by_day.length-1].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))):Ee.default.createElement("div",{className:"h-48 flex items-center justify-center text-gray-400"},"No runs in this period")),Ee.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},Ee.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Token Usage Over Time"),t?.charts?.tokens_by_day?.length>0?Ee.default.createElement("div",{className:"h-48"},Ee.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},t.charts.tokens_by_day.map((f,p)=>Ee.default.createElement("div",{key:f.date,className:"flex-1 flex flex-col items-center group"},Ee.default.createElement("div",{className:"relative w-full"},Ee.default.createElement("div",{className:"w-full bg-purple-500 rounded-t transition-all hover:bg-purple-600",style:{height:`${f.tokens/d*150}px`,minHeight:f.tokens>0?"4px":"0"}}),Ee.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"},s(f.tokens)," tokens"))))),Ee.default.createElement("div",{className:"flex justify-between mt-2 text-xs text-gray-400"},Ee.default.createElement("span",null,t.charts.tokens_by_day[0]?.date&&B1(t.charts.tokens_by_day[0].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})),Ee.default.createElement("span",null,t.charts.tokens_by_day[t.charts.tokens_by_day.length-1]?.date&&B1(t.charts.tokens_by_day[t.charts.tokens_by_day.length-1].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))):Ee.default.createElement("div",{className:"h-48 flex items-center justify-center text-gray-400"},"No token usage in this period"))),Ee.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6"},Ee.default.createElement("div",{className:"lg:col-span-2 bg-white rounded-xl border border-gray-200 p-6"},Ee.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Top Agents"),t?.top_agents?.length>0?Ee.default.createElement("div",{className:"space-y-3"},t.top_agents.map((f,p)=>Ee.default.createElement("div",{key:f.id,onClick:()=>e?.(f),className:"flex items-center space-x-4 p-3 rounded-lg hover:bg-gray-50 cursor-pointer transition-colors"},Ee.default.createElement("div",{className:"w-8 h-8 rounded-full bg-red-100 flex items-center justify-center text-red-600 font-semibold"},p+1),Ee.default.createElement("div",{className:"flex-1 min-w-0"},Ee.default.createElement("p",{className:"font-medium text-gray-900 truncate"},f.name),Ee.default.createElement("p",{className:"text-sm text-gray-500"},f.run_count," runs")),Ee.default.createElement("div",{className:"text-right"},Ee.default.createElement("p",{className:"font-medium text-gray-900"},s(f.total_tokens)),Ee.default.createElement("p",{className:"text-xs text-gray-500"},"tokens"))))):Ee.default.createElement("div",{className:"py-8 text-center text-gray-400"},"No agent activity yet")),Ee.default.createElement("div",{className:"space-y-6"},Ee.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},Ee.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"By Provider"),Object.keys(t?.provider_breakdown||{}).length>0?Ee.default.createElement("div",{className:"space-y-3"},Object.entries(t.provider_breakdown).map(([f,p])=>{let m=t?.summary?.total_runs||1,y=(p/m*100).toFixed(1);return Ee.default.createElement("div",{key:f},Ee.default.createElement("div",{className:"flex justify-between text-sm mb-1"},Ee.default.createElement("span",{className:"capitalize text-gray-600"},f),Ee.default.createElement("span",{className:"text-gray-900 font-medium"},p)),Ee.default.createElement("div",{className:"h-2 bg-gray-100 rounded-full overflow-hidden"},Ee.default.createElement("div",{className:"h-full bg-blue-500 rounded-full",style:{width:`${y}%`}})))})):Ee.default.createElement("div",{className:"py-4 text-center text-gray-400 text-sm"},"No data")),Ee.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},Ee.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Token Usage"),Ee.default.createElement("div",{className:"space-y-4"},Ee.default.createElement("div",{className:"flex justify-between items-center"},Ee.default.createElement("span",{className:"text-sm text-gray-500"},"Input Tokens"),Ee.default.createElement("span",{className:"font-medium text-gray-900"},s(t?.summary?.total_input_tokens))),Ee.default.createElement("div",{className:"flex justify-between items-center"},Ee.default.createElement("span",{className:"text-sm text-gray-500"},"Output Tokens"),Ee.default.createElement("span",{className:"font-medium text-gray-900"},s(t?.summary?.total_output_tokens))),Ee.default.createElement("div",{className:"pt-2 border-t border-gray-100"},Ee.default.createElement("div",{className:"flex justify-between items-center"},Ee.default.createElement("span",{className:"text-sm font-medium text-gray-700"},"Total"),Ee.default.createElement("span",{className:"font-bold text-gray-900"},s(t?.summary?.total_tokens)))))))))}function Zv({title:e,value:t,subtitle:r,color:n}){return Ee.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`},Ee.default.createElement("p",{className:"text-sm text-gray-500"},e),Ee.default.createElement("p",{className:"text-2xl font-bold text-gray-900 mt-1"},t),r&&Ee.default.createElement("p",{className:"text-xs text-gray-400 mt-1"},r))}var G=re(ne());function e_({agent:e,onBack:t}){let{timeWindow:r}=Gi(),[n,a]=(0,G.useState)([]),[i,o]=(0,G.useState)([]),[l,s]=(0,G.useState)(null),[u,c]=(0,G.useState)(null),[d,f]=(0,G.useState)([]),[p,m]=(0,G.useState)("run"),[y,h]=(0,G.useState)(!1),[v,g]=(0,G.useState)(!1),b=(0,G.useRef)(!1),x=(0,G.useRef)(!1),[S,w]=(0,G.useState)("recent"),[_,k]=(0,G.useState)({}),[A,P]=(0,G.useState)(!0),[K,z]=(0,G.useState)(1),[Q,M]=(0,G.useState)(!0),[F,N]=(0,G.useState)(""),[O,I]=(0,G.useState)(""),[D,T]=(0,G.useState)("recent"),j=(0,G.useRef)(null),R=Je(`/agents/${e.id}/interactions`);(0,G.useEffect)(()=>{U()},[e.id,K,F,O,D,r.minutes]),(0,G.useEffect)(()=>{z(1)},[r.minutes]),(0,G.useEffect)(()=>{fetch(`/api/interactions?agent_id=${e.id}`).then(B=>B.json()).then(B=>o(B.interactions||[])).catch(()=>{}).finally(()=>g(!0))},[e.id]),(0,G.useEffect)(()=>{let B=()=>{let Ae=gs(),C=Ae.match(/\/interactions\/runs\/(\d+)/),Y=Ae.match(/\/interactions\/sessions\/(\d+)/);if(C)m("run"),c(null),ee(parseInt(C[1],10),{updateUrl:!1});else if(Y)m("all"),c({id:parseInt(Y[1],10)});else if(Ae.endsWith("/interactions/sessions")||Ae.endsWith("/interactions/all"))Ae.endsWith("/all")&&window.history.replaceState({},"",Ae.replace(/\/all$/,"/sessions")),m("all"),c(null);else{b.current=!1,s(null),c(null),f([]);return}b.current=!0};return B(),window.addEventListener("popstate",B),()=>window.removeEventListener("popstate",B)},[e.id]),(0,G.useEffect)(()=>{b.current||x.current||!y||!v||m(n.length===0&&i.length>0?"all":"run")},[y,v,n.length,i.length]);let U=async()=>{P(!0);try{let B=new URLSearchParams({page:K.toString(),per_page:"20",minutes:String(r.minutes)});F&&B.append("status",F),O&&B.append("source",O),D!=="recent"&&B.append("sort",D);let C=await(await fetch(`/api/agents/${e.id}/runs?${B}`)).json();a(K===1?C.runs:Y=>[...Y,...C.runs]),M(C.runs.length===20)}catch(B){console.error("Failed to load runs:",B)}finally{P(!1),h(!0)}},q=B=>{window.location.pathname!==B&&window.history.pushState({},"",B)},ee=async(B,{updateUrl:Ae=!0}={})=>{try{let Y=await(await fetch(`/api/runs/${B}`)).json();s(Y.run),f(Y.messages||[]),m("run"),c(null),Ae&&q(`${R}/runs/${B}`)}catch(C){console.error("Failed to load run details:",C)}},fe=B=>{if(B.source==="reported"){let Ae=B.trace_id||String(B.id).replace(/^trace-/,"");window.history.pushState(window.history.state,"",Je(`/traces/${Ae}`)),window.dispatchEvent(new CustomEvent("dashboard:navigate",{detail:{path:Je(`/traces/${Ae}`)}}));return}ee(B.record_id||B.id)},pe=()=>{s(null),c(null),f([]),m("run"),q(R)},Pe=B=>{m("all"),B?(c({id:B.id,name:B.display_name}),q(`${R}/sessions/${B.id}`)):(c(null),q(`${R}/sessions`))},oe=B=>{x.current=!0,m(B),q(B==="all"?u?`${R}/sessions/${u.id}`:`${R}/sessions`:l?`${R}/runs/${l.id}`:R)},Te=u?u.name||i.find(B=>B.id===u.id)?.display_name||`Session #${u.id}`:null,V=()=>{let B=new Map;n.forEach(Y=>{let ve=`${Y.model||"unknown"}|${Y.instructions_digest||"none"}`;B.has(ve)||B.set(ve,{key:ve,model:Y.model,instructionsDigest:Y.instructions_digest,instructionsVersion:Y.instructions_version,instructionsCodename:Y.instructions_codename,instructionsPreview:Y.instructions_preview,runs:[]}),B.get(ve).runs.push(Y)});let Ae=[...B.values()].map(Y=>({...Y,count:Y.runs.length,completed:Y.runs.filter(ve=>ve.status==="complete").length,failed:Y.runs.filter(ve=>ve.status==="failed").length,totalTokens:Y.runs.reduce((ve,ze)=>ve+(ze.tokens||0),0),avgTokens:Y.runs.reduce((ve,ze)=>ve+(ze.tokens||0),0)/Y.runs.length,avgDuration:Y.runs.reduce((ve,ze)=>ve+(ze.duration_ms||0),0)/Y.runs.length,latest:Y.runs[0],sortedRuns:[...Y.runs].sort((ve,ze)=>(ze.duration_ms||0)-(ve.duration_ms||0))}));Ae.sort((Y,ve)=>S==="longest"?ve.avgDuration-Y.avgDuration:new Date(ve.latest.created_at)-new Date(Y.latest.created_at));let C={runs:n.length,completed:n.filter(Y=>Y.status==="complete").length,tokens:n.reduce((Y,ve)=>Y+(ve.tokens||0),0),avgDuration:n.length?n.reduce((Y,ve)=>Y+(ve.duration_ms||0),0)/n.length:0,models:[...new Set(n.map(Y=>Y.model).filter(Boolean))]};return{cohorts:Ae,totals:C}},J=B=>{switch(B){case"complete":return"bg-green-100 text-green-700";case"failed":return"bg-red-100 text-red-700";case"running":return"bg-blue-100 text-blue-700";case"pending":return"bg-yellow-100 text-yellow-700";case"cancelled":return"bg-gray-100 text-gray-500";default:return"bg-gray-100 text-gray-500"}},E=B=>B?B<1e3?`${B}ms`:B<6e4?`${(B/1e3).toFixed(1)}s`:`${Math.floor(B/6e4)}m ${Math.floor(B%6e4/1e3)}s`:"-",L=B=>B==null?"\u2014":B===0?"$0":B<.01?`$${B.toFixed(4)}`:`$${B.toFixed(2)}`,X=B=>{let Ae=new Date(B),Y=new Date-Ae,ve=Math.floor(Y/6e4),ze=Math.floor(Y/36e5),tt=Math.floor(Y/864e5);return ve<1?"Just now":ve<60?`${ve}m ago`:ze<24?`${ze}h ago`:tt<7?`${tt}d ago`:Ae.toLocaleDateString()};return G.default.createElement("div",{className:"flex h-full"},G.default.createElement("div",{className:"w-80 border-r border-gray-200 flex flex-col bg-white"},G.default.createElement("div",{className:"p-4 border-b border-gray-200"},G.default.createElement("div",{className:"flex items-center space-x-3 mb-4"},G.default.createElement("button",{onClick:t,className:"p-1 text-gray-400 hover:text-gray-600 transition-colors"},G.default.createElement("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},G.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"}))),G.default.createElement("div",null,G.default.createElement("h2",{className:"font-semibold text-gray-900"},"Agent Interactions"),G.default.createElement("p",{className:"text-sm text-gray-500"},e.name))),G.default.createElement("div",{className:"mb-2"},G.default.createElement(Xi,{compact:!0})),G.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(B=>G.default.createElement("button",{key:B.value||"all",onClick:()=>{I(B.value),z(1)},className:`flex-1 px-2 py-1 rounded-md transition-colors ${O===B.value?"bg-white shadow text-gray-900":"text-gray-600"}`,title:B.value==="dashboard"?"Executions started from this dashboard":B.value==="reported"?"Executions reported by your app via telemetry":"Every execution, however it started"},B.label))),G.default.createElement("select",{value:F,onChange:B=>{N(B.target.value),z(1)},className:"w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-red-500"},G.default.createElement("option",{value:""},"All statuses"),G.default.createElement("option",{value:"complete"},"Completed"),G.default.createElement("option",{value:"failed"},"Failed"),G.default.createElement("option",{value:"running"},"Running"),G.default.createElement("option",{value:"cancelled"},"Cancelled")),G.default.createElement("select",{value:D,onChange:B=>{T(B.target.value),z(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"},G.default.createElement("option",{value:"recent"},"Most recent"),G.default.createElement("option",{value:"longest"},"Longest running"),G.default.createElement("option",{value:"cost"},"Highest cost"),G.default.createElement("option",{value:"tokens"},"Most tokens"))),G.default.createElement("div",{className:"flex-1 overflow-auto"},A&&n.length===0?G.default.createElement("div",{className:"flex items-center justify-center h-32"},G.default.createElement("div",{className:"animate-spin rounded-full h-6 w-6 border-b-2 border-red-500"})):n.length>0?G.default.createElement(G.default.Fragment,null,n.map(B=>{let Ae=B.source==="reported";return G.default.createElement("div",{key:B.id,onClick:()=>fe(B),title:Ae?"Reported by your app \u2014 opens its trace":"Started from this dashboard",className:`p-4 border-b border-gray-100 cursor-pointer transition-colors ${!Ae&&l?.id===B.id?"bg-red-50 border-l-4 border-l-red-500":"hover:bg-gray-50"}`},G.default.createElement("div",{className:"flex items-center justify-between mb-2 gap-2"},G.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${J(B.status)}`},B.status),G.default.createElement("div",{className:"flex items-center gap-2"},G.default.createElement("span",{className:`px-1.5 py-0.5 rounded text-[10px] uppercase tracking-wide ${Ae?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-600"}`},Ae?"reported":"dashboard"),G.default.createElement("span",{className:"text-xs text-gray-400"},X(B.created_at||B.occurred_at)))),G.default.createElement("p",{className:"text-sm text-gray-700 truncate"},B.input_preview||B.input_prompt?.substring(0,60)||(Ae?`${B.action_name||"execution"} \xB7 trace ${String(B.trace_id||"").slice(0,8)}`:"No input")),G.default.createElement("div",{className:"flex items-center space-x-3 mt-2 text-xs text-gray-400 flex-wrap gap-y-1"},B.model&&G.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono"},B.model),G.default.createElement("span",{className:D==="longest"?"text-gray-700 font-medium":void 0},E(B.duration_ms)),!!B.tokens&&G.default.createElement("span",{className:D==="tokens"?"text-gray-700 font-medium":void 0},B.tokens," tokens"),B.cost!=null&&G.default.createElement("span",{className:D==="cost"?"text-gray-700 font-medium":void 0,title:"Estimated from token counts at this model's published rates"},L(B.cost))))}),Q&&G.default.createElement("button",{onClick:()=>z(B=>B+1),disabled:A,className:"w-full py-3 text-sm text-red-600 hover:bg-gray-50 transition-colors"},A?"Loading...":"Load More")):G.default.createElement("div",{className:"p-8 text-center text-gray-400"},G.default.createElement("svg",{className:"w-12 h-12 mx-auto mb-3 text-gray-300",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},G.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"})),G.default.createElement("p",null,"No conversations yet")))),G.default.createElement("div",{className:"flex-1 flex flex-col bg-gray-50"},G.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"},G.default.createElement("button",{onClick:t,className:"hover:text-gray-900 hover:underline transition-colors"},e.name),G.default.createElement("span",{className:"text-gray-300"},"/"),p==="all"||l?G.default.createElement(G.default.Fragment,null,G.default.createElement("button",{onClick:pe,className:"hover:text-gray-900 hover:underline transition-colors"},"Interactions"),G.default.createElement("span",{className:"text-gray-300"},"/"),p==="all"?u?G.default.createElement(G.default.Fragment,null,G.default.createElement("button",{onClick:()=>Pe(null),className:"hover:text-gray-900 hover:underline transition-colors"},"Sessions"),G.default.createElement("span",{className:"text-gray-300"},"/"),G.default.createElement("span",{className:"text-gray-900 font-medium"},Te)):G.default.createElement("span",{className:"text-gray-900 font-medium"},"Sessions"):G.default.createElement("span",{className:"text-gray-900 font-medium"},"Run #",l.id)):G.default.createElement("span",{className:"text-gray-900 font-medium"},"Interactions")),G.default.createElement("div",{className:"p-3 bg-white border-b border-gray-200 flex items-center justify-between"},G.default.createElement("div",{className:"flex bg-gray-100 rounded-lg p-1"},G.default.createElement("button",{onClick:()=>oe("run"),className:`px-3 py-1 text-sm rounded-md transition-colors ${p==="run"?"bg-white shadow text-gray-900":"text-gray-600"}`},"Selected run"),G.default.createElement("button",{onClick:()=>oe("all"),className:`px-3 py-1 text-sm rounded-md transition-colors ${p==="all"?"bg-white shadow text-gray-900":"text-gray-600"}`},"Sessions")),p==="run"&&l&&G.default.createElement("span",{className:`px-3 py-1 rounded-full text-sm font-medium ${J(l.status)}`},l.status)),p==="all"?G.default.createElement("div",{className:"flex-1 overflow-auto p-4 space-y-4"},(()=>{let{totals:B}=V();return G.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4 space-y-3"},G.default.createElement("div",{className:"flex items-center gap-3"},G.default.createElement(fr,{size:40}),G.default.createElement("div",null,G.default.createElement("h3",{className:"font-semibold text-gray-900"},e.name),G.default.createElement("p",{className:"text-xs text-gray-500"},u?`${Te} \u2014 one persisted interaction stream`:"Sessions group this agent\u2019s runs into persisted interaction streams"))),G.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3"},G.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},G.default.createElement("p",{className:"text-xs text-gray-500"},"Runs"),G.default.createElement("p",{className:"text-lg font-bold text-gray-900"},B.runs)),G.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},G.default.createElement("p",{className:"text-xs text-gray-500"},"Success"),G.default.createElement("p",{className:"text-lg font-bold text-gray-900"},B.runs?Math.round(B.completed/B.runs*100):0,"%")),G.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},G.default.createElement("p",{className:"text-xs text-gray-500"},"Avg Duration"),G.default.createElement("p",{className:"text-lg font-bold text-gray-900"},E(Math.round(B.avgDuration)))),G.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},G.default.createElement("p",{className:"text-xs text-gray-500"},"Tokens"),G.default.createElement("p",{className:"text-lg font-bold text-gray-900"},B.tokens.toLocaleString()))))})(),G.default.createElement(el,{agentId:e.id,embedded:!0,selectedSessionId:u?.id??null,onSelectSession:Pe})):l?G.default.createElement(G.default.Fragment,null,G.default.createElement("div",{className:"p-4 bg-white border-b border-gray-200"},G.default.createElement("div",{className:"flex items-center space-x-3"},G.default.createElement(fr,{size:40}),G.default.createElement("div",null,G.default.createElement("h3",{className:"font-medium text-gray-900"},e.name," \u2014 Run #",l.id),G.default.createElement("p",{className:"text-xs text-gray-500"},new Date(l.created_at).toLocaleString())))),G.default.createElement("div",{ref:j,className:"flex-1 overflow-auto p-6"},G.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 shadow-sm p-4"},d.length>0?G.default.createElement(oi,{messages:d,darkMode:!1}):G.default.createElement(oi,{darkMode:!1,messages:[{id:`run-${l.id}-input`,role:"user",content:l.input_prompt||l.input_preview,created_at:l.created_at},{id:`run-${l.id}-output`,role:"assistant",content:l.error_message||l.output||l.output_preview||"No response",created_at:l.completed_at||l.created_at}]}))),G.default.createElement("div",{className:"p-4 bg-white border-t border-gray-200"},G.default.createElement("div",{className:"flex items-center justify-center space-x-8 text-sm text-gray-500"},G.default.createElement("span",null,"Duration: ",E(l.duration_ms)),l.total_tokens&&G.default.createElement("span",null,"Tokens: ",l.total_tokens),l.input_tokens&&l.output_tokens&&G.default.createElement("span",null,"Input: ",l.input_tokens," / Output: ",l.output_tokens),l.trace_id&&G.default.createElement("a",{href:Je(`/traces?trace=${l.trace_id}`),className:"font-mono text-xs text-blue-500 hover:underline",title:`${l.trace_id} \u2014 open in Traces`},"trace:",l.trace_id.slice(0,8)," \u2192")))):(()=>{let{cohorts:B,totals:Ae}=V();return B.length===0?G.default.createElement("div",{className:"flex-1 flex items-center justify-center"},G.default.createElement("div",{className:"text-center text-gray-400"},G.default.createElement(fr,{size:100}),G.default.createElement("p",{className:"mt-4"},"No runs yet \u2014 run the agent to build its report"))):G.default.createElement("div",{className:"flex-1 overflow-auto p-6 space-y-5"},G.default.createElement("div",{className:"flex items-center gap-3"},G.default.createElement(fr,{size:40}),G.default.createElement("div",null,G.default.createElement("h3",{className:"font-semibold text-gray-900"},"Agent Report"),G.default.createElement("p",{className:"text-xs text-gray-500"},"Recent activity for ",e.name," \u2014 select a run for its full interaction"))),G.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3"},G.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},G.default.createElement("p",{className:"text-xs text-gray-500"},"Runs"),G.default.createElement("p",{className:"text-xl font-bold text-gray-900"},Ae.runs)),G.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},G.default.createElement("p",{className:"text-xs text-gray-500"},"Success"),G.default.createElement("p",{className:"text-xl font-bold text-gray-900"},Ae.runs?Math.round(Ae.completed/Ae.runs*100):0,"%")),G.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},G.default.createElement("p",{className:"text-xs text-gray-500"},"Avg Duration"),G.default.createElement("p",{className:"text-xl font-bold text-gray-900"},E(Math.round(Ae.avgDuration)))),G.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},G.default.createElement("p",{className:"text-xs text-gray-500"},"Tokens"),G.default.createElement("p",{className:"text-xl font-bold text-gray-900"},Ae.tokens.toLocaleString()))),Ae.models.length>0&&G.default.createElement("div",{className:"flex items-center gap-2 flex-wrap text-xs"},G.default.createElement("span",{className:"text-gray-500"},"Models used:"),Ae.models.map(C=>G.default.createElement("span",{key:C,className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono"},C))),i.length>0&&G.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},G.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100"},G.default.createElement("span",{className:"text-xs uppercase tracking-wide text-gray-400"},"Sessions \u2014 grouped interaction streams")),G.default.createElement("div",{className:"divide-y divide-gray-100"},i.map(C=>G.default.createElement("div",{key:C.id,className:"px-4 py-3 hover:bg-gray-50 cursor-pointer flex items-center justify-between gap-3",onClick:()=>Pe(C),title:"Open this session's interaction stream"},G.default.createElement("div",{className:"flex items-center gap-2 min-w-0",title:C.display_name},G.default.createElement("span",{className:"px-2 py-0.5 text-xs font-medium bg-blue-100 text-blue-700 rounded flex-shrink-0"},"SESSION"),G.default.createElement("span",{className:"text-sm text-gray-900 truncate"},C.agent?.name||C.agent_name),C.action_name&&G.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-purple-50 text-purple-700 font-mono text-xs flex-shrink-0"},"#",C.action_name)),G.default.createElement("div",{className:"flex items-center gap-3 text-xs text-gray-400 flex-shrink-0"},G.default.createElement("span",null,C.message_count," messages"),G.default.createElement("span",null,(C.tokens?.total||0).toLocaleString()," tokens"),G.default.createElement("span",null,X(C.last_activity_at))))))),G.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},G.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100 flex items-center justify-between"},G.default.createElement("span",{className:"text-xs uppercase tracking-wide text-gray-400"},"Interactions by instructions \xD7 model"),G.default.createElement("select",{value:S,onChange:C=>w(C.target.value),className:"text-xs border border-gray-200 rounded px-2 py-1 text-gray-600"},G.default.createElement("option",{value:"recent"},"Most recent"),G.default.createElement("option",{value:"longest"},"Longest interactions"))),G.default.createElement("div",{className:"divide-y divide-gray-100"},B.map(C=>G.default.createElement("div",{key:C.key},G.default.createElement("div",{className:"px-4 py-3 hover:bg-gray-50 cursor-pointer",onClick:()=>k(Y=>({...Y,[C.key]:!Y[C.key]})),title:"Show this configuration's runs"},G.default.createElement("div",{className:"flex items-center gap-2 flex-wrap"},G.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono text-xs"},C.model||"unknown model"),G.default.createElement("span",{className:"text-xs text-gray-400 font-mono",title:C.instructionsDigest?`sha:${C.instructionsDigest}`:void 0},"instructions"," ",C.instructionsDigest?[C.instructionsVersion,C.instructionsCodename||C.instructionsDigest].filter(Boolean).join(" \xB7 "):"n/a")),C.instructionsPreview&&G.default.createElement("p",{className:"text-xs text-gray-500 mt-1 truncate"},C.instructionsPreview),G.default.createElement("div",{className:"flex items-center gap-3 mt-1.5 text-xs text-gray-400 flex-wrap gap-y-1"},G.default.createElement("span",null,C.count," run",C.count>1?"s":""),G.default.createElement("span",{className:C.failed>0?"text-red-500":"text-green-600"},C.count?Math.round(C.completed/C.count*100):0,"% success"),G.default.createElement("span",null,"avg ",E(Math.round(C.avgDuration))),G.default.createElement("span",null,"avg ",Math.round(C.avgTokens).toLocaleString()," tokens"),G.default.createElement("span",null,"last ",X(C.latest.created_at)))),_[C.key]&&G.default.createElement("div",{className:"bg-gray-50 divide-y divide-gray-100 border-t border-gray-100"},C.sortedRuns.map(Y=>G.default.createElement("div",{key:Y.id,className:"px-6 py-2 hover:bg-gray-100 cursor-pointer",onClick:()=>ee(Y.id),title:"Open this run's interaction"},G.default.createElement("p",{className:"text-xs text-gray-700 truncate"},Y.input_preview||"No input"),G.default.createElement("div",{className:"flex items-center gap-3 mt-0.5 text-[11px] text-gray-400"},G.default.createElement("span",{className:Y.status==="failed"?"text-red-500":""},Y.status),G.default.createElement("span",null,E(Y.duration_ms)),Y.tokens&&G.default.createElement("span",null,Y.tokens.toLocaleString()," tokens"),G.default.createElement("span",null,X(Y.created_at)))))))))))})()))}var je=re(ne());var tue={productivity:"[+]",development:"<>",research:"[?]",creative:"[*]",data:"[#]",automation:"[>]"};function t_({onUseTemplate:e,onClose:t}){let[r,n]=(0,je.useState)([]),[a,i]=(0,je.useState)([]),[o,l]=(0,je.useState)(""),[s,u]=(0,je.useState)(null),[c,d]=(0,je.useState)(!0),[f,p]=(0,je.useState)(!1),[m,y]=(0,je.useState)(null);(0,je.useEffect)(()=>{h()},[o]);let h=async()=>{d(!0);try{let g=new URLSearchParams;o&&g.append("category",o);let x=await(await fetch(`/api/templates?${g}`)).json();n(x.templates),i(x.categories)}catch(g){console.error("Failed to load templates:",g)}finally{d(!1)}},v=async g=>{p(!0),y(null);try{let b=await fetch(`/api/templates/${g.id}/use`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:g.name})});if(b.ok){let x=await b.json();e(x.agent)}else{let x=`Could not create the agent (HTTP ${b.status})`;try{let S=await b.json(),w=S.errors||S.error;w&&(x=Array.isArray(w)?w.join(", "):String(w))}catch{}y(x)}}catch(b){console.error("Failed to create agent from template:",b),y("Could not create the agent \u2014 check your connection and try again.")}finally{p(!1)}};return je.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4"},je.default.createElement("div",{className:"bg-white rounded-2xl w-full max-w-5xl max-h-[90vh] flex flex-col overflow-hidden"},je.default.createElement("div",{className:"px-6 py-4 border-b border-gray-200 flex items-center justify-between"},je.default.createElement("div",null,je.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Template Library"),je.default.createElement("p",{className:"text-sm text-gray-500"},"Start with a pre-configured agent template")),je.default.createElement("button",{onClick:t,className:"p-2 text-gray-400 hover:text-gray-600 transition-colors"},je.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},je.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})))),je.default.createElement("div",{className:"flex-1 flex overflow-hidden"},je.default.createElement("div",{className:"w-48 border-r border-gray-200 p-4 flex-shrink-0"},je.default.createElement("h3",{className:"text-xs font-semibold text-gray-400 uppercase mb-3"},"Categories"),je.default.createElement("div",{className:"space-y-1"},je.default.createElement("button",{onClick:()=>l(""),className:`w-full text-left px-3 py-2 rounded-lg text-sm transition-colors ${o?"text-gray-600 hover:bg-gray-50":"bg-red-50 text-red-600"}`},"All Templates"),a.map(g=>je.default.createElement("button",{key:g,onClick:()=>l(g),className:`w-full text-left px-3 py-2 rounded-lg text-sm flex items-center space-x-2 transition-colors ${o===g?"bg-red-50 text-red-600":"text-gray-600 hover:bg-gray-50"}`},je.default.createElement("span",null,tue[g]||"\u{1F4E6}"),je.default.createElement("span",{className:"capitalize"},g))))),je.default.createElement("div",{className:"flex-1 p-6 overflow-auto"},c?je.default.createElement("div",{className:"flex items-center justify-center h-full"},je.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"})):r.length>0?je.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-3 gap-4"},r.map(g=>je.default.createElement("div",{key:g.id,onClick:()=>u(g),className:`bg-white rounded-xl border-2 p-4 cursor-pointer transition-all hover:shadow-lg ${s?.id===g.id?"border-red-500 ring-2 ring-red-100":"border-gray-200 hover:border-gray-300"}`},je.default.createElement("div",{className:"flex items-start space-x-3"},je.default.createElement("div",{className:"flex-shrink-0"},je.default.createElement(fr,{size:60})),je.default.createElement("div",{className:"flex-1 min-w-0"},je.default.createElement("div",{className:"flex items-center space-x-2"},je.default.createElement("span",{className:"text-lg"},g.icon),je.default.createElement("h3",{className:"font-medium text-gray-900 truncate"},g.name)),je.default.createElement("p",{className:"text-xs text-gray-500 mt-1 line-clamp-2"},g.description),je.default.createElement("div",{className:"flex items-center space-x-2 mt-2"},je.default.createElement("span",{className:"text-xs px-2 py-0.5 bg-gray-100 rounded capitalize"},g.category),g.featured&&je.default.createElement("span",{className:"text-xs px-2 py-0.5 bg-yellow-100 text-yellow-700 rounded"},"Featured"))))))):je.default.createElement("div",{className:"text-center py-12 text-gray-500"},"No templates found in this category")),s&&je.default.createElement("div",{className:"w-80 border-l border-gray-200 p-6 flex-shrink-0 bg-gray-50 overflow-auto"},je.default.createElement("div",{className:"flex justify-center mb-4"},je.default.createElement(fr,{size:120})),je.default.createElement("h3",{className:"text-lg font-semibold text-gray-900 text-center"},s.name),je.default.createElement("p",{className:"text-sm text-gray-500 text-center mt-1"},s.description),je.default.createElement("div",{className:"mt-6 space-y-4"},je.default.createElement("div",null,je.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Provider / Model"),je.default.createElement("p",{className:"text-sm text-gray-900"},s.provider," / ",s.model)),s.tools?.length>0&&je.default.createElement("div",null,je.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Tools"),je.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},s.tools.map(g=>je.default.createElement("span",{key:g,className:"text-xs px-2 py-0.5 bg-red-100 text-red-700 rounded"},g)))),je.default.createElement("div",null,je.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Usage"),je.default.createElement("p",{className:"text-sm text-gray-900"},s.usage_count," agents created"))),je.default.createElement("button",{onClick:()=>v(s),disabled:f,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"},f?"Creating...":"Use This Template"),m&&je.default.createElement("p",{className:"mt-2 text-sm text-red-600",role:"alert"},m)))))}var Ie=re(ne());function r_({currentView:e,onNavigate:t,agentCount:r,account:n,user:a,gemVersion:i,assistantEnabled:o=!0}){let{darkMode:l}=At(),[s,u]=(0,Ie.useState)(!1),c=(0,Ie.useRef)(null);(0,Ie.useEffect)(()=>{function v(g){c.current&&!c.current.contains(g.target)&&u(!1)}return document.addEventListener("mousedown",v),()=>document.removeEventListener("mousedown",v)},[]);let d=n?.name||"My Workspace",f=a?.name||a?.email?.split("@")[0]||"User",p=[...o?[{id:"assistant",label:"Ask ActiveAgents",icon:">"}]:[],{id:"list",label:"Agents",icon:$t.nav.agents,badge:r},{id:"builder",label:"New Agent",icon:$t.nav.newAgent},{id:"sandbox",label:"Run Agents",icon:$t.nav.demo,highlight:!0}],m=[{id:"traces",label:"Traces",icon:$t.nav.traces},{id:"interactions",label:"Interactions",icon:$t.nav.interactions},{id:"tools",label:"Tools",icon:$t.nav.tools},{id:"mcp",label:"MCP Services",icon:$t.nav.mcp},{id:"metrics",label:"Metrics",icon:$t.nav.metrics},{id:"evaluations",label:"Evaluations",icon:$t.nav.evaluations},{id:"replay",label:"Session Replay",icon:$t.nav.replay}],y=[{id:"organization",label:"Organization",icon:"\u{1F3E2}"},{id:"settings",label:"Settings",icon:"\u2699\uFE0F"}],h=({item:v})=>Ie.default.createElement("button",{onClick:()=>t(v.id),className:`w-full flex items-center justify-between py-3 rounded-lg text-left transition-colors ${v.indent?"pl-10 pr-4":"px-4"}`,style:{backgroundColor:e===v.id?l?"rgba(239, 68, 68, 0.15)":"#fef2f2":"transparent",color:e===v.id?"#ef4444":l?"#d1d5db":"#374151"},onMouseEnter:g=>{e!==v.id&&(g.currentTarget.style.backgroundColor=l?"#252525":"#f3f4f6")},onMouseLeave:g=>{e!==v.id&&(g.currentTarget.style.backgroundColor="transparent")}},Ie.default.createElement("div",{className:"flex items-center space-x-3"},Ie.default.createElement("span",{style:{fontFamily:$e.mono,fontSize:"12px",width:"20px",textAlign:"center"}},v.icon),Ie.default.createElement("span",{className:"font-medium"},v.label)),v.badge!==void 0&&Ie.default.createElement("span",{className:"px-2 py-0.5 text-xs rounded-full",style:{backgroundColor:e===v.id?"#fee2e2":l?"#2a2a2a":"#f3f4f6",color:e===v.id?"#ef4444":l?"#d1d5db":"#4b5563"}},v.badge));return Ie.default.createElement("aside",{className:"w-64 border-r flex flex-col",style:{backgroundColor:l?"#1a1a1a":"#ffffff",borderColor:l?"#2a2a2a":"#e5e7eb"}},Ie.default.createElement("div",{className:"h-16 flex items-center px-4 border-b relative",style:{borderColor:l?"#2a2a2a":"#e5e7eb"},ref:c},Ie.default.createElement("button",{onClick:()=>u(!s),className:"w-full flex items-center justify-between px-2 py-2 rounded-lg transition-colors",style:{backgroundColor:s?l?"#252525":"#f3f4f6":"transparent"}},Ie.default.createElement("div",{className:"flex items-center space-x-3 min-w-0"},Ie.default.createElement(fr,{size:28}),Ie.default.createElement("span",{className:`font-semibold truncate ${l?"text-white":"text-gray-900"}`},d)),Ie.default.createElement("svg",{className:`w-4 h-4 flex-shrink-0 transition-transform ${s?"rotate-180":""}`,style:{color:l?"#9ca3af":"#6b7280"},fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ie.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))),s&&Ie.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"}},Ie.default.createElement("div",{className:"px-4 py-3 border-b",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},Ie.default.createElement("div",{className:"flex items-center space-x-3"},Ie.default.createElement(fr,{size:32}),Ie.default.createElement("div",{className:"min-w-0"},Ie.default.createElement("div",{className:`font-medium truncate ${l?"text-white":"text-gray-900"}`},d)))),Ie.default.createElement("div",{className:"py-1"},Ie.default.createElement("button",{onClick:()=>{t("settings"),u(!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"}`},Ie.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ie.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"}),Ie.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})),Ie.default.createElement("span",null,"Settings")),Ie.default.createElement("button",{onClick:()=>{t("organization"),u(!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"}`},Ie.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ie.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"})),Ie.default.createElement("span",null,"Organization"))),Ie.default.createElement("div",{className:"border-t py-1",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},Ie.default.createElement("div",{className:`px-4 py-2 flex items-center space-x-3 ${l?"text-gray-300":"text-gray-700"}`},Ie.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ie.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"})),Ie.default.createElement("span",{className:"text-sm"},f))))),Ie.default.createElement("nav",{className:"flex-1 px-4 py-4 space-y-1 overflow-y-auto"},Ie.default.createElement("div",{className:"space-y-1"},p.map(v=>Ie.default.createElement(h,{key:v.id,item:v}))),Ie.default.createElement("div",{className:"pt-4"},Ie.default.createElement("div",{className:"px-4 pb-2"},Ie.default.createElement("span",{className:`text-xs font-semibold uppercase tracking-wide ${l?"text-gray-500":"text-gray-400"}`},"Observability")),Ie.default.createElement("div",{className:"space-y-1"},m.map(v=>Ie.default.createElement(h,{key:v.id,item:v})))),Ie.default.createElement("div",{className:"pt-4"},Ie.default.createElement("div",{className:"px-4 pb-2"},Ie.default.createElement("span",{className:`text-xs font-semibold uppercase tracking-wide ${l?"text-gray-500":"text-gray-400"}`},"Workspace")),Ie.default.createElement("div",{className:"space-y-1"},y.map(v=>Ie.default.createElement(h,{key:v.id,item:v}))))),Ie.default.createElement("div",{className:"px-4 py-4 border-t",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},Ie.default.createElement("div",{className:`text-xs font-semibold uppercase mb-3 ${l?"text-gray-500":"text-gray-400"}`},"Resources"),Ie.default.createElement("div",{className:"space-y-2"},Ie.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"}`},Ie.default.createElement("span",{style:{fontFamily:$e.mono,fontSize:"12px",width:"20px",textAlign:"center"}},$t.nav.docs),Ie.default.createElement("span",null,"Documentation")),Ie.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"}`},Ie.default.createElement("span",{style:{fontFamily:$e.mono,fontSize:"12px",width:"20px",textAlign:"center"}},$t.nav.github),Ie.default.createElement("span",null,"GitHub")))),Ie.default.createElement("div",{className:"px-6 py-4 border-t",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},Ie.default.createElement("div",{className:`text-xs ${l?"text-gray-500":"text-gray-400"}`},"Active Agent ",i?`v${i}`:"")))}var ht=re(ne());function n_({user:e,account:t}){let{darkMode:r,toggleDarkMode:n}=At(),[a,i]=(0,ht.useState)(!1),o=(0,ht.useRef)(null);(0,ht.useEffect)(()=>{function d(f){o.current&&!o.current.contains(f.target)&&i(!1)}return document.addEventListener("mousedown",d),()=>document.removeEventListener("mousedown",d)},[]);let l=window.ACTIVE_AGENT_DASHBOARD?.meta?.signOutPath,s=()=>{if(!l)return;let d=document.querySelector('meta[name="csrf-token"]')?.content,f=document.createElement("form");f.method="POST",f.action=l;let p=document.createElement("input");p.type="hidden",p.name="_method",p.value="delete",f.appendChild(p);let m=document.createElement("input");m.type="hidden",m.name="authenticity_token",m.value=d,f.appendChild(m),document.body.appendChild(f),f.submit()},u=e?.name||e?.email?.split("@")[0]||"User",c=u.charAt(0).toUpperCase();return ht.default.createElement("header",{className:"h-16 border-b flex items-center justify-between px-6",style:{backgroundColor:r?"#1a1a1a":"#ffffff",borderColor:r?"#2a2a2a":"#e5e7eb"}},ht.default.createElement("div",{className:"flex items-center space-x-4"}),ht.default.createElement("div",{className:"flex items-center space-x-4"},ht.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?ht.default.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20"},ht.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"})):ht.default.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20"},ht.default.createElement("path",{d:"M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"}))),ht.default.createElement("div",{className:`flex items-center space-x-2 text-sm ${r?"text-gray-400":"text-gray-500"}`},ht.default.createElement("span",{className:"w-2 h-2 bg-green-400 rounded-full"}),ht.default.createElement("span",null,"Connected")),ht.default.createElement("div",{className:"relative",ref:o},ht.default.createElement("button",{onClick:()=>i(!a),className:"flex items-center space-x-2 p-1 rounded-lg transition-colors",style:{backgroundColor:a?r?"#252525":"#f3f4f6":"transparent"}},ht.default.createElement("div",{className:"w-8 h-8 bg-red-100 rounded-full flex items-center justify-center"},ht.default.createElement("span",{className:"text-red-600 font-medium text-sm"},c))),a&&ht.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"}},ht.default.createElement("div",{className:"px-4 py-3 border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},ht.default.createElement("div",{className:"flex items-center space-x-3"},ht.default.createElement("div",{className:"w-10 h-10 bg-red-100 rounded-full flex items-center justify-center"},ht.default.createElement("span",{className:"text-red-600 font-medium"},c)),ht.default.createElement("div",null,ht.default.createElement("div",{className:`font-medium ${r?"text-white":"text-gray-900"}`},u),ht.default.createElement("div",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},e?.email)))),l&&ht.default.createElement("div",{className:"py-1"},ht.default.createElement("button",{onClick:s,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"}`},ht.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ht.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"})),ht.default.createElement("span",null,"Sign out")))))))}var we=re(ne());var Be=re(ne());var a_=150,rue=e=>e.reduce((t,r)=>t+(Number(r)||0),0),nue=e=>e.length?rue(e)/e.length:0,Ci=e=>e.reduce((t,r)=>r!=null&&Number(r)>t?Number(r):t,0),i_=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},Qu=(e,t)=>[0,25,50,75,100].map(r=>({top:r,label:t(e*(1-r/100))})),aue=4,Uf=e=>Math.max(aue,i_(e)),p$=(e,t=2,r=6)=>{let n=e/4;for(let a=t;aMath.abs(n*o-Number((n*o).toFixed(a)))<=n*.1))return a;return r},iue=5.5,oue=12,lue=(e,t)=>{let r=!!e.flip;if(!(t>0))return r;let n=String(e.label||"").length*iue+oue,a=Number(e.left)/100*t,i=t-a;return r?!(aa):ii},sue=typeof window>"u"?Be.useEffect:Be.useLayoutEffect,uue=e=>{let[t,r]=(0,Be.useState)(0);return sue(()=>{let n=e.current;if(!n)return;let a=()=>r(n.clientWidth);if(a(),typeof ResizeObserver>"u")return window.addEventListener("resize",a),()=>window.removeEventListener("resize",a);let i=new ResizeObserver(a);return i.observe(n),()=>i.disconnect()},[e]),t},Ju=(e,t)=>{let r=e.length,n=[];return e.forEach((a,i)=>{if(a==null||Number.isNaN(Number(a)))return;let o=r>1?i/(r-1)*100:50,l=100-Math.min(100,Math.max(0,Number(a)/t*100));n.push(`${o.toFixed(2)},${l.toFixed(2)}`)}),n.join(" ")},$1=(e,t)=>{let r=Ju(e,t);return r?`0,100 ${r} 100,100`:""},m$=(e,t=24)=>{let r=e.length;if(!r)return"";let n=r/t,a=Array.from({length:t},(l,s)=>{let u=Math.floor(s*n),c=Math.max(u+1,Math.floor((s+1)*n));return nue(e.slice(u,c).filter(d=>d!=null))}),i=Math.max(...a),o=Math.min(...a);return a.map((l,s)=>`${(s/(t-1)*100).toFixed(1)},${(26-(i===o?.5:(l-o)/(i-o))*24).toFixed(1)}`).join(" ")},Qv=(e,t,r)=>{let n=e.length?e[0].data.length:0;return Array.from({length:n},(a,i)=>({title:r(i),segs:e.map(o=>({h:(Number(o.data[i])||0)/t*100,color:o.color}))}))};function v$({label:e,value:t,unit:r,sub:n,delta:a,deltaColor:i,deltaSub:o,spark:l,sparkColor:s}){return Be.default.createElement(kn,{padding:"14px 16px 12px",style:{display:"flex",flexDirection:"column",gap:6,minWidth:0}},Be.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8}},Be.default.createElement(yt,{size:11,spacing:"0.05em"},e),Be.default.createElement("span",{style:{marginLeft:"auto",fontFamily:Ce,fontSize:11,fontWeight:600,color:i,whiteSpace:"nowrap"}},a)),Be.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:6}},Be.default.createElement("span",{style:{fontFamily:Ce,fontSize:26,fontWeight:700,lineHeight:1.1,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},t),r?Be.default.createElement("span",{style:{fontFamily:Ce,fontSize:12,color:"var(--color-text-muted)"}},r):null),Be.default.createElement("div",{title:n,style:{fontFamily:Ce,fontSize:11,color:"var(--color-text-secondary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},n),Be.default.createElement("div",{style:{display:"flex",alignItems:"flex-end",gap:8,marginTop:2}},Be.default.createElement("svg",{viewBox:"0 0 100 28",preserveAspectRatio:"none","aria-hidden":"true",style:{flex:1,height:28,minWidth:0,display:"block",overflow:"visible"}},Be.default.createElement("polyline",{points:l,fill:"none",stroke:s,strokeWidth:"1.5",strokeLinejoin:"round",vectorEffect:"non-scaling-stroke"})),Be.default.createElement("span",{style:{fontSize:10,color:"var(--color-text-muted)",whiteSpace:"nowrap"}},o)))}function g$({title:e,sub:t,value:r,valueColor:n="var(--color-text-primary)",legend:a=[],ticks:i=[],buckets:o=[],lines:l=[],areas:s=[],markers:u=[],xLabels:c=[],height:d=a_}){let f=(0,Be.useRef)(null),p=uue(f),m="1px dashed var(--color-text-secondary)";return Be.default.createElement(kn,{padding:"14px 16px 12px",style:{minWidth:0,display:"flex",flexDirection:"column",gap:8}},Be.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,flexWrap:"wrap"}},Be.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},e),Be.default.createElement("span",{style:{fontFamily:Ce,fontSize:10,color:"var(--color-text-muted)"}},t),Be.default.createElement("span",{style:{marginLeft:"auto",fontFamily:Ce,fontSize:12,fontWeight:600,color:n,whiteSpace:"nowrap"}},r)),Be.default.createElement("div",{style:{display:"flex",gap:12,flexWrap:"wrap"}},a.map(y=>Be.default.createElement("span",{key:y.label,style:{display:"inline-flex",alignItems:"center",gap:5,fontFamily:Ce,fontSize:10,color:"var(--color-text-secondary)"}},Be.default.createElement("span",{style:{width:8,height:8,borderRadius:2,background:y.color,flexShrink:0}}),y.label))),Be.default.createElement("div",{ref:f,style:{position:"relative",height:d,margin:"6px 0 0 40px"}},i.map(y=>Be.default.createElement("div",{key:y.top,style:{position:"absolute",left:0,right:0,top:`${y.top}%`,borderTop:"1px solid var(--color-border-light)"}},Be.default.createElement("span",{style:{position:"absolute",right:"calc(100% + 6px)",top:-6,whiteSpace:"nowrap",fontFamily:Ce,fontSize:10,lineHeight:"12px",color:"var(--color-text-muted)"}},y.label))),o.length>0&&Be.default.createElement("div",{style:{position:"absolute",inset:0,display:"flex",alignItems:"stretch",gap:1}},o.map((y,h)=>Be.default.createElement("div",{key:h,title:y.title,style:{flex:1,minWidth:0,display:"flex",flexDirection:"column-reverse"}},y.segs.map((v,g)=>Be.default.createElement("div",{key:g,style:{height:`${v.h.toFixed(2)}%`,background:v.color,flexShrink:0}}))))),(l.length>0||s.length>0)&&Be.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"}},s.map((y,h)=>Be.default.createElement("polygon",{key:h,points:y.points,fill:y.color,opacity:"0.16"})),l.map((y,h)=>Be.default.createElement("polyline",{key:h,points:y.points,fill:"none",stroke:y.color,strokeWidth:y.width||1.5,strokeLinejoin:"round",strokeLinecap:"round",vectorEffect:"non-scaling-stroke"}))),u.map((y,h)=>{let v=lue(y,p),g=`${Number(y.left).toFixed(2)}%`;return Be.default.createElement("div",{key:h,style:{position:"absolute",top:0,bottom:0,pointerEvents:"none",...v?{left:0,width:g,borderRight:m}:{left:g,right:0,borderLeft:m}}},Be.default.createElement("span",{style:{position:"absolute",top:-4,[v?"right":"left"]:4,maxWidth:"calc(100% - 8px)",boxSizing:"border-box",overflow:"hidden",textOverflow:"ellipsis",fontFamily:Ce,fontSize:9,lineHeight:"12px",color:"var(--color-text-secondary)",whiteSpace:"nowrap",background:"var(--color-card)",padding:"0 4px",borderRadius:3}},y.label))})),Be.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",marginLeft:40,fontFamily:Ce,fontSize:10,color:"var(--color-text-muted)"}},c.map((y,h)=>Be.default.createElement("span",{key:h},y))))}function Ff({label:e,qualifier:t,meta:r,children:n}){return Be.default.createElement(kn,{padding:0,style:{overflow:"hidden"}},Be.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,padding:"10px 14px",borderBottom:"1px solid var(--color-border-light)"}},Be.default.createElement(yt,null,e),t?Be.default.createElement("span",{style:{fontFamily:Ce,fontSize:11,color:"var(--color-text-muted)"}},t):null,r?Be.default.createElement("span",{style:{marginLeft:"auto",fontFamily:Ce,fontSize:11,color:"var(--color-text-muted)"}},r):null),n)}function o_({template:e,columns:t}){return Be.default.createElement("div",{style:{display:"grid",gridTemplateColumns:e,gap:8,padding:"6px 14px 4px",fontFamily:Ce,fontSize:10,textTransform:"uppercase",letterSpacing:"0.05em",color:"var(--color-text-muted)"}},Be.default.createElement("span",null),t.map(r=>Be.default.createElement("span",{key:r,style:{textAlign:"right"}},r)))}function U1({template:e,active:t=!1,onClick:r,title:n,padding:a="8px 14px",children:i}){let o=typeof r=="function";return Be.default.createElement("div",{role:o?"button":void 0,tabIndex:o?0:void 0,"aria-pressed":o?t:void 0,onClick:r,onKeyDown:o?s=>{(s.key==="Enter"||s.key===" ")&&(s.preventDefault(),r(s))}:void 0,title:n,className:o?"hover:bg-[var(--color-hover)]":void 0,style:{display:"grid",gridTemplateColumns:e,gap:8,alignItems:"center",padding:a,borderTop:"1px solid var(--color-border-light)",cursor:o?"pointer":"default",background:t?"var(--color-muted)":void 0}},i)}function l_({children:e,padding:t="8px 14px"}){return Be.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:t,borderTop:"1px solid var(--color-border-light)"}},e)}function Jv({children:e}){return Be.default.createElement("div",{style:{padding:"12px 14px",fontFamily:Ce,fontSize:11,color:"var(--color-text-muted)"}},e)}function s_({color:e}){return Be.default.createElement("span",{style:{width:8,height:8,borderRadius:2,background:e,flexShrink:0}})}function u_({pct:e,color:t}){return Be.default.createElement("div",{style:{marginTop:5,height:3,borderRadius:999,background:"var(--color-muted)",overflow:"hidden"}},Be.default.createElement("div",{style:{width:`${Math.max(0,Math.min(100,Number(e)||0))}%`,height:"100%",background:t}}))}function c_({pct:e,color:t,width:r=70}){return Be.default.createElement("span",{style:{width:r,height:4,borderRadius:999,background:"var(--color-muted)",overflow:"hidden",flexShrink:0,display:"inline-block"}},Be.default.createElement("span",{style:{display:"block",width:`${Math.max(0,Math.min(100,Number(e)||0))}%`,height:"100%",background:t}}))}function si({children:e,color:t="var(--color-text-primary)",weight:r=400,width:n,style:a}){return Be.default.createElement("span",{style:{fontFamily:Ce,fontSize:11,fontWeight:r,textAlign:"right",color:t,width:n,...a}},e)}var b$=6e4,cue=1180,Hf={"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"}},due=Object.keys(Hf).map(e=>({value:e,label:e})),f_="24h",Wf=["var(--chart-1)","var(--chart-2)","var(--chart-3)","var(--chart-5)","var(--chart-4)"],Rv=[{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)"}],y$=e=>Rv.find(t=>t.type===e)?.color||"var(--color-text-muted)",fue=3,W1="var(--color-text-primary)",pue={success:"var(--color-success)",error:"var(--color-error)",muted:"var(--color-text-muted)"},mue=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],d_=e=>String(e).padStart(2,"0"),Ye=e=>e==null||Number.isNaN(Number(e))?0:Number(e),vue=e=>e.reduce((t,r)=>t+Ye(r),0),h$=e=>`${Ye(e).toFixed(1)}%`,F1=(e,t)=>`${e} ${t}${e===1?"":"s"}`,gue=e=>e>=1e3?`${(e/1e3).toFixed(1)}s`:`${Math.round(e)}ms`,yue=(e,t)=>{let r=Array.isArray(e)?[...e]:[];return t.forEach(n=>{n.name&&!r.some(a=>a.name===n.name)&&r.push(n)}),r},hue=e=>{let t=String(e.label||"incident"),r=Rv.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},xue=e=>{let t=Ye(e);return t<60?`${t}s`:t<3600?`${+(t/60).toFixed(1)} min`:`${+(t/3600).toFixed(1)} h`},x$=async e=>{let t=await fetch(`/api/metrics?${e.toString()}`);if(!t.ok)throw new Error(`Request failed (${t.status})`);return t.json()},bue=(e,t,r=Date.now())=>{let n=Math.max(1,Ye(t))*1e3,a=Math.max(1,Math.round(Ye(e)*6e4/n)),i=Math.floor(r/n)*n;return Array.from({length:a},(o,l)=>({ts:new Date(i-(a-1-l)*n).toISOString()}))},wue=(e,t)=>{let r=e.summary||{},n=Hf[e.range]||Hf[t]||Hf[f_],a=Ye(e.bucket_seconds)||n.seconds,i=Ye(e.window_minutes)||(e.window_hours?Ye(e.window_hours)*60:n.n*n.seconds/60),o=Array.isArray(e.series)?e.series:bue(i,a),l=Ye(e.totals?.requests??r.total_requests),s=Ye(e.totals?.cost??r.total_cost),u={requests:l,requests_per_minute:i?l/i:0,p50_ms:null,p95_ms:null,p99_ms:null,errors:Ye(r.errors),error_rate:Ye(r.error_rate),tokens_in:Ye(r.tokens_input),tokens_out:Ye(r.tokens_output),tokens:Ye(r.tokens_used),cost:s,cost_per_request:l?s/l: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(p=>({name:p.name,requests:Ye(p.requests),share_pct:l?Ye(p.requests)/l*100:0,p95_ms:null,error_rate:p.requests?Ye(p.errors)/Ye(p.requests)*100:0,cost:Ye(p.cost),tokens:Ye(p.tokens)})),f=Array.isArray(e.errors_by_type)&&e.errors_by_type.length?e.errors_by_type:Rv.map(p=>({type:p.type,count:0}));return{range:e.range||t,bucketSeconds:a,windowMinutes:i,agent:e.agent||null,environment:e.environment||null,totals:u,deltas:c,series:o,agents:d,models:Array.isArray(e.models)?e.models:[],actions:Array.isArray(e.actions)?e.actions:[],tools:Array.isArray(e.tools)?e.tools:[],errorsByType:f,markers:Array.isArray(e.markers)?e.markers:[]}},w$=e=>{let t=Hf[e.range];if(t)return t;let r=Math.max(1,Math.round(e.windowMinutes/60));return{bucket:xue(e.bucketSeconds),prev:`vs previous ${r}h`,title:`last ${r} hours`}},Sue=e=>{let[t,r]=(0,we.useState)(()=>typeof window<"u"&&window.innerWidth{let n=window.matchMedia(`(max-width: ${e-1}px)`),a=()=>r(n.matches);return a(),n.addEventListener("change",a),()=>n.removeEventListener("change",a)},[e]),t};function p_(){let[e,t]=(0,we.useState)(f_),[r,n]=(0,we.useState)(""),[a,i]=(0,we.useState)(null),[o,l]=(0,we.useState)(!0),[s,u]=(0,we.useState)(null),[c,d]=(0,we.useState)(!1),f=(0,we.useRef)(0),p=Sue(cue),m=(0,we.useRef)(null),y=(0,we.useCallback)(async()=>{let S=++f.current;try{let w=new URLSearchParams({range:e});r&&w.set("agent",r);let[_,k]=await Promise.all([x$(w),r?x$(new URLSearchParams({range:e})).catch(()=>null):null]);if(S!==f.current)return;let A=r?k?.agents:_.agents;Array.isArray(A)&&(m.current=A),i({data:_,ranking:Array.isArray(A)?A:m.current}),u(null)}catch(w){if(S!==f.current)return;u(w.message)}finally{S===f.current&&l(!1)}},[e,r]);(0,we.useEffect)(()=>{let S=!1;d(!0),y().finally(()=>{S||d(!1)});let w=setInterval(y,b$);return()=>{S=!0,clearInterval(w)}},[y]);let h=(0,we.useMemo)(()=>a?wue(a.data,e):null,[a,e]),v=(0,we.useMemo)(()=>h?h.agent?yue(a.ranking,h.agents):h.agents:[],[h,a]),g=(0,we.useMemo)(()=>v.map(S=>S.name).filter(Boolean),[v]),b=(0,we.useMemo)(()=>{let S=Object.fromEntries(g.map((_,k)=>[_,Wf[k%Wf.length]])),w=g.length;return(h?h.agents:[]).forEach(_=>{_.name&&!S[_.name]&&(S[_.name]=Wf[w++%Wf.length])}),_=>S[_]||Wf[0]},[g,h]),x=(0,we.useMemo)(()=>h?kue(h,b):null,[h,b]);return o?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",style:{borderBottomColor:"var(--color-accent-ui)"}})):s||!h?we.default.createElement("div",null,we.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:W1}},"Metrics"),we.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",s?`: ${s}`:"")):we.default.createElement(Aue,{m:h,view:x,railAgents:v,range:Hf[e]?e:f_,agent:r,agentOptions:r&&!g.includes(r)?[...g,r]:g,colorFor:b,narrow:p,pending:c,onRange:t,onAgent:n})}function Aue({m:e,view:t,railAgents:r=e.agents,range:n,agent:a,agentOptions:i,colorFor:o,narrow:l,pending:s=!1,onRange:u,onAgent:c}){let d=w$(e),f=e.totals.requests===0,p=m=>c(a===m?"":m);return we.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16,width:"100%",maxWidth:1600,boxSizing:"border-box",color:W1,fontSize:13}},we.default.createElement("div",{style:{display:"flex",alignItems:"flex-end",gap:16,flexWrap:"wrap"}},we.default.createElement("div",{style:{flex:1,minWidth:240}},we.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em"}},"Metrics"),we.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,a?` \xB7 ${a}`:"")),we.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"}},we.default.createElement("select",{value:a,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:W1,cursor:"pointer"}},we.default.createElement("option",{value:""},"All agents"),i.map(m=>we.default.createElement("option",{key:m,value:m},m))),e.environment&&we.default.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:6,padding:"6px 10px",borderRadius:8,border:"1px solid var(--color-border)",fontFamily:Ce,fontSize:11,color:"var(--color-text-cell)",background:"var(--color-card)"}},we.default.createElement("span",{style:{color:"var(--color-text-muted)"}},"env"),e.environment),we.default.createElement(W7,{options:due,value:n,onChange:u}),we.default.createElement("span",{title:s?"loading\u2026":`refreshes every ${b$/1e3}s`,style:{display:"inline-flex",alignItems:"center",gap:6,fontFamily:Ce,fontSize:11,color:"var(--color-text-muted)"}},we.default.createElement("span",{style:{width:7,height:7,borderRadius:"50%",background:s?"var(--color-text-muted)":"var(--color-success)"}}),"live \xB7 ",d.bucket," buckets"))),f?we.default.createElement(kn,{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",we.default.createElement("div",{style:{marginTop:8,fontFamily:Ce,fontSize:11,color:"var(--color-text-muted)"}},a||"all agents"," \xB7 ",d.title)):we.default.createElement(we.default.Fragment,null,we.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:12,opacity:s?.6:1}},t.signals.map(m=>we.default.createElement(v$,{key:m.label,...m,deltaSub:d.prev}))),we.default.createElement("div",{style:{display:"grid",gridTemplateColumns:l?"minmax(0, 1fr)":"minmax(0, 2.3fr) minmax(300px, 1fr)",gap:16,alignItems:"start",opacity:s?.6:1}},we.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:16,minWidth:0}},t.panels.map(m=>we.default.createElement(g$,{key:m.title,...m,xLabels:t.xLabels,height:a_}))),we.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16,minWidth:0}},we.default.createElement(Ff,{label:"Agents",qualifier:"by requests \xB7 click to filter"},we.default.createElement(o_,{template:"minmax(0, 1fr) 44px 44px 40px 52px",columns:["req","p95","err","cost"]}),r.length===0&&we.default.createElement(Jv,null,"no agents in this window"),r.map(m=>we.default.createElement(U1,{key:m.name,template:"minmax(0, 1fr) 44px 44px 40px 52px",active:a===m.name,onClick:()=>p(m.name),title:a===m.name?"Show all agents":`Filter to ${m.name}`},we.default.createElement("div",{style:{minWidth:0}},we.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0}},we.default.createElement(s_,{color:o(m.name)}),we.default.createElement("span",{style:{fontSize:12,fontWeight:600,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.name)),we.default.createElement(u_,{pct:m.share_pct,color:o(m.name)})),we.default.createElement(si,null,vr(m.requests)),we.default.createElement(si,{color:"var(--color-text-secondary)"},Gr(m.p95_ms)),we.default.createElement(si,{color:Ye(m.error_rate)>=1.5?"var(--color-error-text)":"var(--color-text-secondary)"},h$(m.error_rate)),we.default.createElement(si,null,Vv(m.cost))))),we.default.createElement(Ff,{label:"Models",qualifier:"by tokens"},e.models.length===0&&we.default.createElement(Jv,null,"no model usage in this window"),e.models.map((m,y)=>we.default.createElement(U1,{key:`${m.model}-${m.provider}-${y}`,template:"minmax(0, 1fr) 52px 56px"},we.default.createElement("div",{style:{minWidth:0}},we.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:6,minWidth:0}},we.default.createElement("span",{style:{fontFamily:Ce,fontSize:11,fontWeight:600,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.model||"unknown"),m.provider&&we.default.createElement("span",{style:{fontFamily:Ce,fontSize:10,color:"var(--color-text-muted)"}},m.provider)),we.default.createElement(u_,{pct:m.share_pct,color:"var(--color-token-in)"})),we.default.createElement(si,null,vr(m.tokens)),we.default.createElement(si,{color:"var(--color-text-secondary)"},Vv(m.cost))))),we.default.createElement(Ff,{label:"Slowest actions",qualifier:"p95"},e.actions.length===0&&we.default.createElement(Jv,null,"no actions in this window"),e.actions.map(m=>we.default.createElement(l_,{key:m.name},we.default.createElement("span",{title:m.name,style:{flex:1,minWidth:0,fontFamily:Ce,fontSize:11,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.name),we.default.createElement(c_,{pct:t.slowestP95?Ye(m.p95_ms)/t.slowestP95*100:0,color:o(m.agent)}),we.default.createElement(si,{weight:600,width:40},Gr(m.p95_ms))))),we.default.createElement(Ff,{label:"Tools",qualifier:"by calls"},we.default.createElement(o_,{template:"minmax(0, 1fr) 44px 48px 40px",columns:["calls","avg","err"]}),e.tools.length===0&&we.default.createElement(Jv,null,"no tool calls in this window"),e.tools.map(m=>we.default.createElement(U1,{key:m.name,template:"minmax(0, 1fr) 44px 48px 40px",padding:"7px 14px"},we.default.createElement("span",{title:m.name,style:{fontFamily:Ce,fontSize:11,fontWeight:600,color:"var(--span-tool)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.name),we.default.createElement(si,null,vr(m.calls)),we.default.createElement(si,{color:"var(--color-text-secondary)"},Gr(m.avg_ms)),we.default.createElement(si,{color:Ye(m.error_rate)>=2?"var(--color-error-text)":"var(--color-text-secondary)"},h$(m.error_rate))))),we.default.createElement(Ff,{label:"Errors by type",meta:`${Math.round(e.totals.errors)} total`},e.errorsByType.map(m=>we.default.createElement(l_,{key:m.type},we.default.createElement(s_,{color:y$(m.type)}),we.default.createElement("span",{style:{flex:1,minWidth:0,fontSize:12,color:"var(--color-text-cell)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.type),we.default.createElement(c_,{pct:t.errorTotal?Ye(m.count)/t.errorTotal*100:0,color:y$(m.type)}),we.default.createElement(si,{weight:600,width:32},Math.round(Ye(m.count))))))))))}function kue(e,t){let{series:r,totals:n,deltas:a}=e,i=r.length,o=w$(e),l=r.map(C=>new Date(C.ts)),s=e.windowMinutes>=2880,u=C=>Number.isNaN(C.getTime())?"":s?`${mue[C.getDay()]} ${d_(C.getHours())}h`:`${d_(C.getHours())}:${d_(C.getMinutes())}`,c=i?[0,1,2,3,4,5,6].map(C=>C===6?"now":u(l[Math.round(C*(i-1)/6)])):[],d=C=>r.map(Y=>Ye(Y[C])),f=d("requests"),p=d("errors"),m=d("tokens_in"),y=d("tokens_out"),h=d("cost"),v=d("tool_calls"),g=d("tool_errors"),b=C=>r.map(Y=>Y[C]==null?null:Ye(Y[C])),x=b("p50_ms"),S=b("p95_ms"),w=b("p99_ms"),_=r.map(C=>C.requests_by_agent||{}),k=e.agents.map(C=>C.name).filter(Boolean);_.forEach(C=>Object.keys(C).forEach(Y=>{k.includes(Y)||k.push(Y)}));let A=k.length?k.map(C=>({label:C,color:t(C),data:_.map(Y=>Ye(Y[C]))})):[{label:"requests",color:Wf[0],data:f}],P=Rv.map(C=>({label:C.type,color:C.color,data:r.map(Y=>Ye((Y.errors_by_type||{})[C.type]))})),K=(Ye(e.bucketSeconds)||(i>1?(l[1]-l[0])/1e3:0))*1e3,z=(C,Y)=>{if(!C||i<2||!K)return null;let ve=new Date(C.ts).getTime();if(Number.isNaN(ve))return null;let tt=Math.min(i-1,Math.max(0,Math.floor((ve-l[0].getTime())/K)))/(i-1);return{left:tt*100,label:Y,flip:tt>.55}},Q=e.markers.filter(C=>C.kind==="deploy").sort((C,Y)=>new Date(C.ts)-new Date(Y.ts)).slice(-fue).map(C=>z(C,C.label)).filter(Boolean),M=e.markers.find(C=>C.kind==="incident"),F=M?z(M,hue(M)):null,N=F?[F]:[],O=Uf(Ci(f)*1.1),I=Uf(Ci(p)*1.15),D=Uf(Math.max(Ci(w),Ci(S),Ci(x))*1.05),T=Uf(Math.max(Ci(m),Ci(y))*1.1),j=i_(Ci(h)*1.1),R=p$(j),U=Uf(Ci(v)*1.1),q=Ye(n.requests),ee=Ye(n.requests_per_minute),fe=Ye(n.errors),pe=Ye(n.error_rate),Pe=Ye(n.tokens)||Ye(n.tokens_in)+Ye(n.tokens_out),oe=Ye(n.cost),Te=n.cost_per_request!=null?Ye(n.cost_per_request):q?oe/q:0,V=Ye(n.tool_calls),J=n.tool_error_rate!=null?Ye(n.tool_error_rate):V?Ye(n.tool_errors)/V*100:0,E=Ye(e.errorsByType.find(C=>C.type===Rv[0].type)?.count),L=[{title:"Requests",sub:`per ${o.bucket} \xB7 stacked by agent`,value:`${vr(q)} \xB7 ${ee.toFixed(1)}/min`,legend:A.map(C=>({label:C.label,color:C.color})),ticks:Qu(O,vr),buckets:Qv(A,O,C=>`${u(l[C])} \xB7 ${Math.round(f[C])} req`),markers:Q},{title:"Latency",sub:"generation percentiles",value:`p50 ${Gr(n.p50_ms)}`,legend:[{label:`p50 ${Gr(n.p50_ms)}`,color:"var(--color-token-in)"},{label:`p95 ${Gr(n.p95_ms)}`,color:"var(--color-warning)"},{label:`p99 ${Gr(n.p99_ms)}`,color:"var(--color-error)"}],ticks:Qu(D,gue),lines:[{points:Ju(w,D),color:"var(--color-error)",width:1.5},{points:Ju(S,D),color:"var(--color-warning)",width:1.5},{points:Ju(x,D),color:"var(--color-token-in)",width:2}],areas:[{points:$1(x,D),color:"var(--color-token-in)"}],markers:N},{title:"Errors",sub:`per ${o.bucket} \xB7 by type`,value:`${pe.toFixed(2)}% \xB7 ${F1(Math.round(fe),"error")}`,valueColor:pe>1?"var(--color-error)":W1,legend:P.map(C=>({label:C.label,color:C.color})),ticks:Qu(I,C=>String(Math.round(C))),buckets:Qv(P,I,C=>`${u(l[C])} \xB7 ${F1(Math.round(p[C]),"error")}`),markers:N},{title:"Tokens",sub:`per ${o.bucket} \xB7 input / output`,value:`${vr(Pe)} \xB7 in ${vr(n.tokens_in)} / out ${vr(n.tokens_out)}`,legend:[{label:"input",color:"var(--color-token-in)"},{label:"output",color:"var(--color-token-out)"}],ticks:Qu(T,vr),lines:[{points:Ju(m,T),color:"var(--color-token-in)",width:1.5},{points:Ju(y,T),color:"var(--color-token-out)",width:1.5}],areas:[{points:$1(m,T),color:"var(--color-token-in)"},{points:$1(y,T),color:"var(--color-token-out)"}]},{title:"Cost",sub:`estimated \xB7 per ${o.bucket}`,value:`${Vv(oe)} \xB7 ${li(Te)}/req`,legend:[{label:"spend",color:"var(--color-text-secondary)"}],ticks:Qu(j,C=>li(C,R)),buckets:Qv([{color:"var(--color-text-secondary)",data:h}],j,C=>`${u(l[C])} \xB7 ${li(h[C],R)}`)},{title:"Tool calls",sub:`per ${o.bucket} \xB7 MCP + agent-defined`,value:`${vr(V)} \xB7 ${J.toFixed(1)}% errors`,legend:[{label:"calls",color:"var(--span-tool)"},{label:"errors",color:"var(--color-error)"}],ticks:Qu(U,vr),buckets:Qv([{color:"var(--span-tool)",data:v.map((C,Y)=>Math.max(0,C-g[Y]))},{color:"var(--color-error)",data:g}],U,C=>`${u(l[C])} \xB7 ${F1(Math.round(v[C]),"call")}`)}],X=(C,Y,ve)=>{let ze=C==null?null:Ye(C);return ze==null||ze===0?"muted":Y&&Y(ze)?"success":ve&&ve(ze)?"error":"muted"},B=(C,Y,ve,ze,tt,Lt,ct,Nn)=>({label:C,value:Y,unit:ve,sub:ze,delta:tt,deltaColor:pue[Lt],spark:m$(ct),sparkColor:Nn});return{signals:[B("Requests",vr(q),"",`${ee.toFixed(1)} req/min`,Lf(a.requests_pct),X(a.requests_pct,C=>C>0,null),f,"var(--color-token-in)"),B("Latency",Gr(n.p50_ms),"p50",`p95 ${Gr(n.p95_ms)} \xB7 p99 ${Gr(n.p99_ms)}`,Lf(a.p50_pct),X(a.p50_pct,C=>C<0,C=>C>0),x,"var(--color-token-in)"),B("Error rate",pe.toFixed(2),"%",`${F1(Math.round(fe),"error")} \xB7 ${Math.round(E)} rate-limited`,Lf(a.error_rate_pt," pt",1),X(a.error_rate_pt,C=>C<0,C=>C>0),p,"var(--color-error)"),B("Tokens",vr(Pe),"",`in ${vr(n.tokens_in)} \xB7 out ${vr(n.tokens_out)}`,Lf(a.tokens_pct),"muted",m.map((C,Y)=>C+y[Y]),"var(--color-token-in)"),B("Cost",Vv(oe),"",`${li(Te)} per request`,Lf(a.cost_pct),"muted",h,"var(--color-text-secondary)")],panels:L,xLabels:c,slowestP95:Ci(e.actions.map(C=>C.p95_ms)),errorTotal:vue(e.errorsByType.map(C=>C.count))}}var Se=re(ne());var Nue=6e4,Cue=[{value:24,label:"24h"},{value:168,label:"7d"},{value:720,label:"30d"}],S$={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)"}},eg=e=>e==null?"0":e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e),A$=e=>e==null?"\u2014":e>=1e3?`${(e/1e3).toFixed(2)}s`:`${Math.round(e)}ms`,Eue=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 m_({onOpenServer:e}){let{darkMode:t}=At(),[r,n]=(0,Se.useState)(null),[a,i]=(0,Se.useState)(!0),[o,l]=(0,Se.useState)(null),[s,u]=(0,Se.useState)("all"),[c,d]=(0,Se.useState)(""),[f,p]=(0,Se.useState)(168),[m,y]=(0,Se.useState)(null),h=(0,Se.useCallback)(async()=>{try{let A=new URLSearchParams({hours:String(f)});s!=="all"&&A.set("origin",s),c.trim()&&A.set("q",c.trim());let P=await fetch(`/api/tools?${A}`);if(!P.ok)throw new Error(`Request failed (${P.status})`);n(await P.json()),l(null)}catch(A){l(A.message)}finally{i(!1)}},[s,c,f]);(0,Se.useEffect)(()=>{let A=setTimeout(h,c?250:0);return()=>clearTimeout(A)},[h,c]),(0,Se.useEffect)(()=>{let A=setInterval(h,Nue);return()=>clearInterval(A)},[h]);let v={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"},g=A=>{let P=S$[A]||S$.agent;return{fg:t?P.dark:P.light,bg:t?P.bgDark:P.bgLight}};if(a&&!r)return Se.default.createElement("div",{className:"flex items-center justify-center h-64"},Se.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));if(o&&!r)return Se.default.createElement("div",{style:{padding:"24px"}},Se.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:v.textPrimary,margin:0}},"Tools"),Se.default.createElement("div",{style:{marginTop:"16px",padding:"12px 16px",background:v.errorBg,borderRadius:"8px",color:v.error,fontSize:"14px"}},"Failed to load tools: ",o));let{tools:b=[],summary:x={},origins:S={},sources:w={}}=r||{},_=!w.telemetry&&!w.generations&&!w.messages&&!w.declared,k=({label:A,value:P,hint:K,tone:z})=>Se.default.createElement("div",{style:{background:v.cardBg,borderRadius:"12px",padding:"20px",border:`1px solid ${v.border}`}},Se.default.createElement("div",{style:{fontSize:"11px",color:v.textSecondary,textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:"8px"}},A),Se.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",fontFamily:"monospace",color:z||v.textPrimary}},P),K&&Se.default.createElement("div",{style:{fontSize:"13px",color:v.textSecondary,marginTop:"8px"}},K));return Se.default.createElement("div",{style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)",backgroundColor:v.bg}},Se.default.createElement("div",{style:{padding:"24px 24px 16px 24px",borderBottom:`1px solid ${v.border}`,marginBottom:"16px"}},Se.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:"16px",flexWrap:"wrap"}},Se.default.createElement("div",null,Se.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:v.textPrimary,margin:0}},"Tools"),Se.default.createElement("p",{style:{fontSize:"14px",color:v.textSecondary,marginTop:"4px"}},"Detected from telemetry spans, generation request bodies, and agent records \u2014 nothing to register by hand")),Se.default.createElement("div",{style:{display:"flex",gap:"4px"}},Cue.map(A=>Se.default.createElement("button",{key:A.value,onClick:()=>p(A.value),style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${f===A.value?"#ef4444":v.border}`,background:f===A.value?t?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:f===A.value?"#ef4444":v.textSecondary}},A.label))))),Se.default.createElement("div",{style:{padding:"0 24px 24px 24px"}},Se.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:"16px",marginBottom:"16px"}},Se.default.createElement(k,{label:"Tools Detected",value:eg(x.total_tools),hint:`${x.active_tools||0} called in this window`}),Se.default.createElement(k,{label:"Tool Calls",value:eg(x.total_calls),hint:`${A$(x.avg_duration_ms)} average`}),Se.default.createElement(k,{label:"Error Rate",value:`${x.error_rate||0}%`,tone:x.error_rate>5?v.error:v.textPrimary,hint:`${x.total_errors||0} failed call${x.total_errors===1?"":"s"}`}),Se.default.createElement(k,{label:"From MCP",value:eg(x.mcp_tools),hint:`across ${x.mcp_servers_active||0} active server${x.mcp_servers_active===1?"":"s"}`}),Se.default.createElement(k,{label:"Never Called",value:eg(x.unused_tools),hint:"offered or configured, unused"})),Se.default.createElement("div",{style:{display:"flex",gap:"8px",marginBottom:"16px",flexWrap:"wrap",alignItems:"center"}},Object.entries(S).map(([A,P])=>Se.default.createElement("button",{key:A,onClick:()=>u(A),style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${s===A?"#ef4444":v.border}`,background:s===A?t?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:s===A?"#ef4444":v.textSecondary}},P)),Se.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 ${v.border}`,background:v.inputBg,color:v.textPrimary}})),Se.default.createElement("div",{style:{background:v.cardBg,borderRadius:"12px",border:`1px solid ${v.border}`,overflow:"hidden"}},b.length===0?Se.default.createElement("div",{style:{textAlign:"center",padding:"48px 24px",color:v.textSecondary,fontSize:"14px"}},_?"No tool activity yet \u2014 run an agent, or point your app's ActiveAgent telemetry at this workspace":"No tools match these filters"):Se.default.createElement("div",{style:{overflowX:"auto"}},Se.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse",minWidth:"760px"}},Se.default.createElement("thead",null,Se.default.createElement("tr",{style:{textAlign:"left",fontSize:"13px",color:v.textSecondary,borderBottom:`1px solid ${v.border}`}},Se.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500"}},"Tool"),Se.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500"}},"Source"),Se.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Calls"),Se.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Errors"),Se.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Avg"),Se.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Last seen"))),Se.default.createElement("tbody",null,b.map((A,P)=>{let K=g(A.origin),z=m===A.name;return Se.default.createElement(Se.default.Fragment,{key:A.name},Se.default.createElement("tr",{onClick:()=>y(z?null:A.name),style:{borderBottom:P{Q.stopPropagation(),A.mcp_server&&e&&e(A.mcp_server)},style:{fontSize:"11px",padding:"3px 8px",borderRadius:"6px",border:"none",background:K.bg,color:K.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)),Se.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",color:v.textCell,fontFamily:"monospace"}},eg(A.calls)),Se.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",fontFamily:"monospace",color:A.errors>0?v.error:v.textCell}},A.errors),Se.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",color:v.textCell,fontFamily:"monospace"}},A$(A.avg_duration_ms)),Se.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",color:v.textMuted,fontSize:"13px"}},Eue(A.last_seen))),z&&Se.default.createElement("tr",{style:{borderBottom:PSe.default.createElement("span",{key:A,style:{color:w[A]?v.textSecondary:v.textMuted,opacity:w[A]?1:.5}},w[A]?"\u25CF":"\u25CB"," ",P)))))}function _ue({tool:e,colors:t,tone:r,darkMode:n}){let a=({label:i,children:o})=>Se.default.createElement("div",{style:{display:"flex",gap:"12px",fontSize:"13px",alignItems:"baseline"}},Se.default.createElement("span",{style:{color:t.textMuted,minWidth:"108px",fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.05em"}},i),Se.default.createElement("span",{style:{color:t.textCell,flex:1,wordBreak:"break-word"}},o));return Se.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}`}},Se.default.createElement(a,{label:"Full name"},Se.default.createElement("code",{style:{fontFamily:"monospace"}},e.name)),e.description&&Se.default.createElement(a,{label:"Description"},e.description),Se.default.createElement(a,{label:"Parameters"},e.parameters?.length>0?Se.default.createElement("code",{style:{fontFamily:"monospace",color:r.fg}},e.parameters.join(", ")):Se.default.createElement("span",{style:{color:t.textMuted}},"none recorded")),Se.default.createElement(a,{label:"Agents"},e.agents?.length>0?e.agents.join(", "):Se.default.createElement("span",{style:{color:t.textMuted}},"\u2014")),e.configured_by?.length>0&&Se.default.createElement(a,{label:"Configured by"},e.configured_by.join(", ")),Se.default.createElement(a,{label:"Call breakdown"},Se.default.createElement("span",{style:{fontFamily:"monospace"}},e.traced_calls," traced \xB7 ",e.requested," requested \xB7 ",e.results," results")),e.sample_arguments&&Se.default.createElement(a,{label:"Last arguments"},Se.default.createElement("code",{style:{fontFamily:"monospace",fontSize:"12px",color:t.textMuted}},e.sample_arguments)),e.last_error&&Se.default.createElement(a,{label:"Last error"},Se.default.createElement("span",{style:{color:t.error}},e.last_error)),Se.default.createElement(a,{label:"Detected from"},e.detected_from?.join(", ")||"\u2014"))}var _e=re(ne());var Oue=6e4,Tue=[{value:24,label:"24h"},{value:168,label:"7d"},{value:720,label:"30d"}],Mue=[{value:"all",label:"All"},{value:"active",label:"Active"},{value:"configured",label:"Configured"},{value:"available",label:"Available"}],k$={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)"}},tg=e=>e==null?"0":e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e);function v_({focusServer:e,onOpenTools:t}){let{darkMode:r}=At(),[n,a]=(0,_e.useState)(null),[i,o]=(0,_e.useState)(!0),[l,s]=(0,_e.useState)(null),[u,c]=(0,_e.useState)("all"),[d,f]=(0,_e.useState)(168),[p,m]=(0,_e.useState)(e||null),[y,h]=(0,_e.useState)(null),[v,g]=(0,_e.useState)(null),b=(0,_e.useCallback)(async()=>{try{let M=await fetch(`/api/mcp_servers?hours=${d}`);if(!M.ok)throw new Error(`Request failed (${M.status})`);a(await M.json()),s(null)}catch(M){s(M.message)}finally{o(!1)}},[d]);(0,_e.useEffect)(()=>{b();let M=setInterval(b,Oue);return()=>clearInterval(M)},[b]),(0,_e.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=M=>{let F=k$[M]||k$.available;return{fg:r?F.dark:F.light,bg:r?F.bgDark:F.bgLight}},w=async M=>{h(M.key),g(null);try{let F=await fetch(`/api/mcp_servers/${encodeURIComponent(M.key)}/launch`,{method:"POST",headers:{"Content-Type":"application/json","X-CSRF-Token":document.querySelector('meta[name="csrf-token"]')?.content||""}}),N=await F.json();if(!F.ok)throw new Error(N.reason||N.error||`Launch failed (${F.status})`);g({kind:"ok",text:`${M.name} is starting in a sandbox (${N.sandbox.session_id.slice(0,8)}\u2026)`}),b()}catch(F){g({kind:"error",text:F.message})}finally{h(null)}};if(i&&!n)return _e.default.createElement("div",{className:"flex items-center justify-center h-64"},_e.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));if(l&&!n)return _e.default.createElement("div",{style:{padding:"24px"}},_e.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:x.textPrimary,margin:0}},"MCP Services"),_e.default.createElement("div",{style:{marginTop:"16px",padding:"12px 16px",background:x.errorBg,borderRadius:"8px",color:x.error,fontSize:"14px"}},"Failed to load MCP services: ",l));let{servers:_=[],summary:k={},sandboxes:A=[],statuses:P={}}=n||{},K=u==="all"?_:_.filter(M=>M.status===u),z=new Set(A.flatMap(M=>M.mcp_servers||[])),Q=({label:M,value:F,hint:N})=>_e.default.createElement("div",{style:{background:x.cardBg,borderRadius:"12px",padding:"20px",border:`1px solid ${x.border}`}},_e.default.createElement("div",{style:{fontSize:"11px",color:x.textSecondary,textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:"8px"}},M),_e.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",fontFamily:"monospace",color:x.textPrimary}},F),N&&_e.default.createElement("div",{style:{fontSize:"13px",color:x.textSecondary,marginTop:"8px"}},N));return _e.default.createElement("div",{style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)",backgroundColor:x.bg}},_e.default.createElement("div",{style:{padding:"24px 24px 16px 24px",borderBottom:`1px solid ${x.border}`,marginBottom:"16px"}},_e.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:"16px",flexWrap:"wrap"}},_e.default.createElement("div",null,_e.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:x.textPrimary,margin:0}},"MCP Services"),_e.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")),_e.default.createElement("div",{style:{display:"flex",gap:"4px"}},Tue.map(M=>_e.default.createElement("button",{key:M.value,onClick:()=>f(M.value),style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${d===M.value?"#ef4444":x.border}`,background:d===M.value?r?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:d===M.value?"#ef4444":x.textSecondary}},M.label))))),_e.default.createElement("div",{style:{padding:"0 24px 24px 24px"}},_e.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:"16px",marginBottom:"16px"}},_e.default.createElement(Q,{label:"Active",value:tg(k.active),hint:"called in this window"}),_e.default.createElement(Q,{label:"Configured",value:tg(k.configured),hint:"declared, no traffic yet"}),_e.default.createElement(Q,{label:"Available",value:tg(k.available),hint:"defaults you can connect"}),_e.default.createElement(Q,{label:"Tool Calls",value:tg(k.total_calls),hint:"through MCP servers"})),v&&_e.default.createElement("div",{style:{marginBottom:"16px",padding:"12px 16px",borderRadius:"8px",fontSize:"14px",background:v.kind==="error"?x.errorBg:r?"rgba(34,197,94,0.15)":"#f0fdf4",color:v.kind==="error"?x.error:r?"#86efac":"#15803d"}},v.text),_e.default.createElement("div",{style:{display:"flex",gap:"8px",marginBottom:"16px",flexWrap:"wrap"}},Mue.map(M=>_e.default.createElement("button",{key:M.value,onClick:()=>c(M.value),title:P[M.value]||"Every MCP service known to this workspace",style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${u===M.value?"#ef4444":x.border}`,background:u===M.value?r?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:u===M.value?"#ef4444":x.textSecondary}},M.label))),_e.default.createElement("div",{style:{display:"grid",gap:"12px"}},K.length===0?_e.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"):K.map(M=>{let F=S(M.status),N=p===M.key,O=z.has(M.key);return _e.default.createElement("div",{key:M.key,style:{background:x.cardBg,borderRadius:"12px",border:`1px solid ${N?F.fg:x.border}`,overflow:"hidden"}},_e.default.createElement("div",{onClick:()=>m(N?null:M.key),style:{padding:"16px 20px",cursor:"pointer",display:"flex",alignItems:"center",gap:"16px",flexWrap:"wrap"}},_e.default.createElement("div",{style:{flex:1,minWidth:"220px"}},_e.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}},_e.default.createElement("span",{style:{fontSize:"15px",fontWeight:"600",color:x.textPrimary}},M.name),_e.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:F.bg,color:F.fg,textTransform:"uppercase",letterSpacing:"0.04em"}},M.status),M.first_party&&_e.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r?"rgba(239,68,68,0.15)":"#fef2f2",color:"#ef4444"}},"first-party"),!M.known&&_e.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&&_e.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")),M.description&&_e.default.createElement("div",{style:{fontSize:"13px",color:x.textSecondary,marginTop:"4px"}},M.description)),_e.default.createElement("div",{style:{display:"flex",gap:"24px",alignItems:"center"}},_e.default.createElement("div",{style:{textAlign:"right"}},_e.default.createElement("div",{style:{fontSize:"18px",fontFamily:"monospace",fontWeight:"600",color:x.textPrimary}},tg(M.calls)),_e.default.createElement("div",{style:{fontSize:"11px",color:x.textMuted}},"calls")),_e.default.createElement("div",{style:{textAlign:"right"}},_e.default.createElement("div",{style:{fontSize:"18px",fontFamily:"monospace",fontWeight:"600",color:M.errors>0?x.error:x.textPrimary}},M.errors||0),_e.default.createElement("div",{style:{fontSize:"11px",color:x.textMuted}},"errors")),M.launchable&&_e.default.createElement("button",{onClick:I=>{I.stopPropagation(),w(M)},disabled:y===M.key,style:{padding:"8px 14px",fontSize:"13px",borderRadius:"6px",border:"none",background:y===M.key?x.borderLight:"#ef4444",color:y===M.key?x.textMuted:"#ffffff",cursor:y===M.key?"wait":"pointer",fontWeight:"500",whiteSpace:"nowrap"},title:`Start ${M.name} in a sandbox session`},y===M.key?"Starting\u2026":O?"Start another":"Start in sandbox"))),N&&_e.default.createElement(Pue,{server:M,colors:x,tone:F,onOpenTools:t}))})),A.length>0&&_e.default.createElement("div",{style:{marginTop:"24px",background:x.cardBg,borderRadius:"12px",border:`1px solid ${x.border}`,padding:"20px"}},_e.default.createElement("h3",{style:{fontSize:"16px",fontWeight:"600",color:x.textPrimary,margin:"0 0 12px 0"}},"Running sandboxes"),_e.default.createElement("div",{style:{display:"grid",gap:"8px"}},A.map(M=>_e.default.createElement("div",{key:M.session_id,style:{display:"flex",justifyContent:"space-between",gap:"12px",fontSize:"13px",color:x.textCell,flexWrap:"wrap"}},_e.default.createElement("span",{style:{fontFamily:"monospace"}},(M.mcp_servers||[]).join(", ")||M.sandbox_type),_e.default.createElement("span",{style:{color:x.textMuted}},M.status," \xB7 ",M.runs_count,"/",M.max_runs," runs \xB7 expires ",new Date(M.expires_at).toLocaleTimeString())))))))}function Pue({server:e,colors:t,tone:r,onOpenTools:n}){let a=({label:o,children:l})=>_e.default.createElement("div",{style:{display:"flex",gap:"12px",fontSize:"13px",alignItems:"baseline"}},_e.default.createElement("span",{style:{color:t.textMuted,minWidth:"120px",fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.05em"}},o),_e.default.createElement("span",{style:{color:t.textCell,flex:1,wordBreak:"break-word"}},l)),i=e.command||e.url;return _e.default.createElement("div",{style:{padding:"0 20px 20px 20px",display:"grid",gap:"10px"}},_e.default.createElement("div",{style:{height:"1px",background:t.borderLight,marginBottom:"4px"}}),i&&_e.default.createElement(a,{label:e.transport==="http"?"Endpoint":"Command"},_e.default.createElement("code",{style:{fontFamily:"monospace",fontSize:"12px",padding:"4px 8px",borderRadius:"4px",background:t.codeBg,display:"inline-block"}},i)),e.transport&&_e.default.createElement(a,{label:"Transport"},e.transport),e.categories?.length>0&&_e.default.createElement(a,{label:"Categories"},e.categories.join(", ")),e.requires_credentials?.length>0&&_e.default.createElement(a,{label:"Requires"},e.requires_credentials.join(", ")),_e.default.createElement(a,{label:e.tool_count>0?"Tools used":"Tools offered"},e.tools?.length>0?_e.default.createElement("span",{style:{display:"flex",gap:"6px",flexWrap:"wrap"}},e.tools.map(o=>_e.default.createElement("code",{key:o,style:{fontFamily:"monospace",fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r.bg,color:r.fg}},o))):_e.default.createElement("span",{style:{color:t.textMuted}},"none recorded")),e.agents?.length>0&&_e.default.createElement(a,{label:"Used by"},e.agents.join(", ")),e.configured_by?.length>0&&_e.default.createElement(a,{label:"Configured by"},e.configured_by.join(", ")),e.last_seen&&_e.default.createElement(a,{label:"Last call"},new Date(e.last_seen).toLocaleString()),_e.default.createElement("div",{style:{display:"flex",gap:"12px",marginTop:"4px",flexWrap:"wrap"}},e.docs_url&&_e.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&&_e.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 H=re(ne());var Ss=re(ne());var V1={logger:typeof console<"u"?console:void 0,WebSocket:typeof WebSocket<"u"?WebSocket:void 0},gr={log(...e){this.enabled&&(e.push(Date.now()),V1.logger.log("[ActionCable]",...e))}},ng=()=>new Date().getTime(),H1=e=>(ng()-e)/1e3,ag=class{constructor(t){this.visibilityDidChange=this.visibilityDidChange.bind(this),this.connection=t,this.reconnectAttempts=0}start(){this.isRunning()||(this.startedAt=ng(),delete this.stoppedAt,this.startPolling(),addEventListener("visibilitychange",this.visibilityDidChange),gr.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`))}stop(){this.isRunning()&&(this.stoppedAt=ng(),this.stopPolling(),removeEventListener("visibilitychange",this.visibilityDidChange),gr.log("ConnectionMonitor stopped"))}isRunning(){return this.startedAt&&!this.stoppedAt}recordMessage(){this.pingedAt=ng()}recordConnect(){this.reconnectAttempts=0,delete this.disconnectedAt,gr.log("ConnectionMonitor recorded connect")}recordDisconnect(){this.disconnectedAt=ng(),gr.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)),i=(this.reconnectAttempts===0?1:r)*Math.random();return t*1e3*n*(1+i)}reconnectIfStale(){this.connectionIsStale()&&(gr.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${H1(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`),this.reconnectAttempts++,this.disconnectedRecently()?gr.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${H1(this.disconnectedAt)} s`):(gr.log("ConnectionMonitor reopening"),this.connection.reopen()))}get refreshedAt(){return this.pingedAt?this.pingedAt:this.startedAt}connectionIsStale(){return H1(this.refreshedAt)>this.constructor.staleThreshold}disconnectedRecently(){return this.disconnectedAt&&H1(this.disconnectedAt){(this.connectionIsStale()||!this.connection.isOpen())&&(gr.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`),this.connection.reopen())}),200)}};ag.staleThreshold=6;ag.reconnectionBackoffRate=.15;var C$={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:rg,protocols:g_}=C$,Due=g_.slice(0,g_.length-1),N$=[].indexOf,ig=class{constructor(t){this.open=this.open.bind(this),this.consumer=t,this.subscriptions=this.consumer.subscriptions,this.monitor=new ag(this),this.disconnected=!0}send(t){return this.isOpen()?(this.webSocket.send(JSON.stringify(t)),!0):!1}open(){if(this.isActive())return gr.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`),!1;{let t=[...g_,...this.consumer.subprotocols||[]];return gr.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${t}`),this.webSocket&&this.uninstallEventHandlers(),this.webSocket=new V1.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(gr.log(`Reopening WebSocket, current state is ${this.getState()}`),this.isActive())try{return this.close()}catch(t){gr.log("Failed to reopen WebSocket",t)}finally{gr.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 N$.call(Due,this.getProtocol())>=0}isState(...t){return N$.call(t,this.getState())>=0}getState(){if(this.webSocket){for(let t in V1.WebSocket)if(V1.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(){}}};ig.reopenDelay=500;ig.prototype.events={message(e){if(!this.isProtocolSupported())return;let{identifier:t,message:r,reason:n,reconnect:a,type:i}=JSON.parse(e.data);switch(this.monitor.recordMessage(),i){case rg.welcome:return this.triedToReconnect()&&(this.reconnectAttempted=!0),this.monitor.recordConnect(),this.subscriptions.reload();case rg.disconnect:return gr.log(`Disconnecting. Reason: ${n}`),this.close({allowReconnect:a});case rg.ping:return null;case rg.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 rg.rejection:return this.subscriptions.reject(t);default:return this.subscriptions.notify(t,"received",r)}},open(){if(gr.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`),this.disconnected=!1,!this.isProtocolSupported())return gr.log("Protocol is unsupported. Stopping monitor and disconnecting."),this.close({allowReconnect:!1})},close(e){if(gr.log("WebSocket onclose event"),!this.disconnected)return this.disconnected=!0,this.monitor.recordDisconnect(),this.subscriptions.notifyAll("disconnected",{willAttemptReconnect:this.monitor.isRunning()})},error(){gr.log("WebSocket onerror event")}};var Iue=function(e,t){if(t!=null)for(let r in t){let n=t[r];e[r]=n}return e},y_=class{constructor(t,r={},n){this.consumer=t,this.identifier=JSON.stringify(r),Iue(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)}},h_=class{constructor(t){this.subscriptions=t,this.pendingSubscriptions=[]}guarantee(t){this.pendingSubscriptions.indexOf(t)==-1?(gr.log(`SubscriptionGuarantor guaranteeing ${t.identifier}`),this.pendingSubscriptions.push(t)):gr.log(`SubscriptionGuarantor already guaranteeing ${t.identifier}`),this.startGuaranteeing()}forget(t){gr.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=>{gr.log(`SubscriptionGuarantor resubscribing ${t.identifier}`),this.subscriptions.subscribe(t)}))}),500)}},x_=class{constructor(t){this.consumer=t,this.guarantor=new h_(this),this.subscriptions=[]}create(t,r){let n=t,a=typeof n=="object"?n:{channel:n},i=new y_(this.consumer,a,r);return this.add(i)}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 a;return typeof t=="string"?a=this.findAll(t):a=[t],a.map((i=>typeof i[r]=="function"?i[r](...n):void 0))}subscribe(t){this.sendCommand(t,"subscribe")&&this.guarantor.guarantee(t)}confirmSubscription(t){gr.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})}},b_=class{constructor(t){this._url=t,this.subscriptions=new x_(this),this.connection=new ig(this),this.subprotocols=[]}get url(){return jue(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 jue(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 E$(e=zue("url")||C$.default_mount_path){return new b_(e)}function zue(e){let t=document.head.querySelector(`meta[name='action-cable-${e}']`);if(t)return t.getAttribute("content")}var K1=null;function Lue(){if(K1===null)try{K1=E$()}catch{K1=!1}return K1||null}function _$(e,t,r,n=!0){let a=(0,Ss.useRef)(null),i=(0,Ss.useRef)(r);return(0,Ss.useEffect)(()=>{i.current=r},[r]),(0,Ss.useEffect)(()=>{if(!n||!e)return;let l=Lue();return a.current=l.subscriptions.create({channel:e,...t},{connected(){console.log(`[ActionCable] Connected to ${e}`,t)},disconnected(){console.log(`[ActionCable] Disconnected from ${e}`)},received(s){console.log(`[ActionCable] Received on ${e}:`,s),i.current&&i.current(s)},rejected(){console.warn(`[ActionCable] Subscription rejected for ${e}`)}}),()=>{a.current&&(console.log(`[ActionCable] Unsubscribing from ${e}`),a.current.unsubscribe(),a.current=null)}},[e,JSON.stringify(t),n]),{send:(0,Ss.useCallback)((l,s)=>{a.current&&a.current.perform(l,s)},[])}}var q1=[{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"}],Bue={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"}]},O$={max_runs:10,timeout_seconds:300,session_duration_minutes:15};function w_({initialType:e="playwright_mcp",onClose:t}){let[r,n]=(0,H.useState)(e),[a,i]=(0,H.useState)(null),[o,l]=(0,H.useState)(""),[s,u]=(0,H.useState)([]),[c,d]=(0,H.useState)(null),[f,p]=(0,H.useState)(!1),[m,y]=(0,H.useState)(!1),[h,v]=(0,H.useState)(null),[g,b]=(0,H.useState)(null),[x,S]=(0,H.useState)(!1),[w,_]=(0,H.useState)(null),[k,A]=(0,H.useState)(!1),P=(0,H.useRef)(null),[K,z]=(0,H.useState)(["anthropic"]),[Q,M]=(0,H.useState)(!1),[F,N]=(0,H.useState)({}),[O,I]=(0,H.useState)([]),D=(0,H.useCallback)(L=>{switch(console.log("[SandboxRunner] Received ActionCable message:",L),L.type){case"run_started":Q?N(X=>({...X,[L.provider]:{status:"running",started_at:L.started_at,provider:L.provider}})):d(X=>({...X,status:"running",provider:L.provider}));break;case"run_complete":Q?(N(X=>({...X,[L.provider]:{...L.run,provider:L.provider}})),I(X=>X.filter(B=>B!==L.provider)),L.sandbox&&(i(L.sandbox),u(L.sandbox.runs||[]))):(d(L.run),p(!1),L.sandbox&&(i(L.sandbox),u(L.sandbox.runs||[]))),I(X=>{let B=X.filter(Ae=>Ae!==L.provider);return B.length===0&&p(!1),B});break;case"run_error":Q?(N(X=>({...X,[L.provider]:{status:"failed",error:L.error,provider:L.provider}})),I(X=>X.filter(B=>B!==L.provider))):(d(X=>({...X,status:"failed",error:L.error})),p(!1)),L.sandbox&&i(L.sandbox);break}},[Q]);_$("SandboxChannel",{session_id:a?.session_id},D,!!a?.session_id),(0,H.useEffect)(()=>{j(),T()},[r]);let T=async()=>{try{let L=await fetch("/api/usage");if(L.ok){let X=await L.json();_(X.usage)}}catch{console.log("Could not fetch usage (user may not be authenticated)")}};(0,H.useEffect)(()=>{if(!a?.expires_at)return;let L=setInterval(()=>{let X=new Date,B=new Date(a.expires_at),Ae=Math.max(0,Math.floor((B-X)/1e3));b(Ae),Ae===0&&(i(C=>({...C,status:"expired"})),clearInterval(L))},1e3);return()=>clearInterval(L)},[a?.expires_at]),(0,H.useEffect)(()=>{P.current&&(P.current.scrollTop=P.current.scrollHeight)},[c?.result]);let j=async()=>{y(!0),v(null);try{let L=await fetch("/api/sandboxes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sandbox_type:r})});if(!L.ok)throw new Error("Failed to create sandbox session");let X=await L.json();i(X.sandbox),u([]),d(null)}catch(L){v(L.message)}finally{y(!1)}},R=async()=>{!o.trim()||f||!a||(Q&&K.length>1?await q():await U(K[0]||"anthropic"))},U=async L=>{p(!0),d({status:"running",task:o,provider:L,result:"",started_at:new Date().toISOString()});try{let X=await fetch(`/api/sandboxes/${a.session_id}/run`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({task:o,provider:L})}),B=await X.json();if(X.status===402&&B.upgrade_required){_(B.usage),S(!0),d(Ae=>({...Ae,status:"failed",error:B.message||"Plan limit reached"})),p(!1);return}if(!X.ok)throw new Error(B.error||"Task execution failed");B.usage&&_(B.usage),Pe(B.run_id)}catch(X){d(B=>({...B,status:"failed",error:X.message})),p(!1)}},q=async()=>{p(!0),I([...K]),N({});let L={};K.forEach(X=>{L[X]={status:"running",result:"",started_at:new Date().toISOString()}}),N(L);try{let X=await fetch("/api/sandboxes/compare",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({task:o,providers:K,sandbox_id:a?.session_id,sandbox_type:r})});if(!X.ok){let Ae=await X.json();throw new Error(Ae.error||"Comparison failed")}let B=await X.json();B.sandbox&&i(B.sandbox),ee(K,B.sandbox?.session_id||a?.session_id,B.sandbox?.runs_count??a?.runs_count??0)}catch(X){K.forEach(B=>{N(Ae=>({...Ae,[B]:{status:"failed",error:X.message}}))}),p(!1),I([])}},ee=(L,X,B)=>{if(!X)return;let Ae=async()=>{try{let C=await fetch(`/api/sandboxes/${X}`);if(!C.ok)throw new Error(`HTTP ${C.status}`);let Y=await C.json();i(Y.sandbox);let ve=Y.sandbox.runs||[];u(ve);let ze=new Set;if(ve.slice(B).forEach(tt=>{tt.provider&&(N(Lt=>({...Lt,[tt.provider]:{...tt,provider:tt.provider}})),(tt.status==="completed"||tt.status==="failed")&&ze.add(tt.provider))}),L.every(tt=>ze.has(tt))){p(!1),I([]);return}setTimeout(Ae,1e3)}catch(C){console.error("Comparison polling failed:",C),p(!1),I([])}};setTimeout(Ae,1e3)},fe=async()=>{if(a?.session_id)try{let X=await(await fetch(`/api/sandboxes/${a.session_id}`)).json();i(X.sandbox),u(X.sandbox.runs||[]),(X.sandbox.runs||[]).forEach(C=>{C.provider&&N(Y=>({...Y,[C.provider]:{...C,provider:C.provider}}))}),K.every(C=>{let Y=F[C];return Y?.status==="completed"||Y?.status==="failed"})&&(p(!1),I([]))}catch(L){console.error("Polling error:",L)}},pe=L=>{z(X=>X.includes(L)?X.length===1?X:X.filter(B=>B!==L):[...X,L])},Pe=async L=>{let X=async()=>{try{let Ae=await(await fetch(`/api/sandboxes/${a.session_id}`)).json();i(Ae.sandbox);let C=Ae.sandbox.runs||[],Y=C[C.length-1];if(Y&&(d(Y),u(C),Y.status==="completed"||Y.status==="failed")){p(!1);return}setTimeout(X,1e3)}catch{p(!1)}};X()},oe=L=>{L.key==="Enter"&&(L.metaKey||L.ctrlKey)&&R()},Te=L=>{if(!L)return"--:--";let X=Math.floor(L/60),B=L%60;return`${X}:${B.toString().padStart(2,"0")}`},V=L=>{switch(L){case"completed":return"text-green-600 bg-green-100";case"failed":return"text-red-600 bg-red-100";case"running":return"text-blue-600 bg-blue-100";case"ready":return"text-emerald-600 bg-emerald-100";case"expired":return"text-orange-600 bg-orange-100";default:return"text-gray-600 bg-gray-100"}},J=a?.status==="ready"&&a?.runs_count{A(!0);try{await $f({planSlug:"pro",billingInterval:L})}catch(X){console.error("Checkout error:",X),v(X.message||"Failed to initiate checkout. Please try again."),A(!1)}};return H.default.createElement("div",{className:"h-full flex flex-col bg-gray-50"},H.default.createElement("div",{className:"bg-white border-b border-gray-200 px-6 py-4"},H.default.createElement("div",{className:"flex items-center justify-between"},H.default.createElement("div",{className:"flex items-center space-x-4"},H.default.createElement(fr,{size:48,appearance:{hat:"fedora",hatAccessory:"theaterMasks",heldItem:"browser"}}),H.default.createElement("div",null,H.default.createElement("h1",{className:"text-xl font-semibold text-gray-900"},"PlaywrightMCP Demo"),H.default.createElement("p",{className:"text-sm text-gray-500"},"Try browser automation for free - no account required"))),H.default.createElement("div",{className:"flex items-center space-x-4"},a&&H.default.createElement("div",{className:"flex items-center space-x-3 text-sm"},H.default.createElement("span",{className:`px-2 py-1 rounded-full text-xs font-medium ${V(a.status)}`},a.status),H.default.createElement("span",{className:"text-gray-500"},a.runs_count,"/",a.max_runs," runs"),H.default.createElement("span",{className:`font-mono ${g<60?"text-red-500":"text-gray-500"}`},Te(g))),t&&H.default.createElement("button",{onClick:t,className:"text-gray-400 hover:text-gray-600"},H.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},H.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})))))),H.default.createElement("div",{className:"flex-1 p-6 overflow-hidden"},H.default.createElement("div",{className:"grid grid-cols-3 gap-6 h-full"},H.default.createElement("div",{className:"col-span-2 flex flex-col space-y-4"},H.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},H.default.createElement("textarea",{value:o,onChange:L=>l(L.target.value),onKeyDown:oe,placeholder:"Describe what you want the browser agent to do...",rows:3,disabled:!J,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"}),H.default.createElement("div",{className:"flex items-center justify-between mt-3"},H.default.createElement("span",{className:"text-xs text-gray-400"},"Press ",H.default.createElement("kbd",{className:"px-1.5 py-0.5 bg-gray-100 rounded text-gray-600"},"Cmd")," + ",H.default.createElement("kbd",{className:"px-1.5 py-0.5 bg-gray-100 rounded text-gray-600"},"Enter")," to run"),H.default.createElement("button",{onClick:R,disabled:!o.trim()||!J,className:`flex items-center space-x-2 px-6 py-2 rounded-lg transition-colors ${o.trim()&&J?"bg-rose-500 text-white hover:bg-rose-600":"bg-gray-200 text-gray-400 cursor-not-allowed"}`},f?H.default.createElement(H.default.Fragment,null,H.default.createElement("span",{className:"animate-spin"},"\u25E0"),H.default.createElement("span",null,"Running...")):H.default.createElement(H.default.Fragment,null,H.default.createElement("span",null,"\u25B6"),H.default.createElement("span",null,"Run"))))),H.default.createElement("div",{className:"flex-1 bg-white rounded-xl border border-gray-200 flex flex-col overflow-hidden"},H.default.createElement("div",{className:"px-4 py-3 border-b border-gray-200 flex items-center justify-between"},H.default.createElement("h3",{className:"font-medium text-gray-900"},Q&&Object.keys(F).length>0?"Comparison Results":"Output"),c&&!Q&&H.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${V(c.status)}`},c.status),Q&&O.length>0&&H.default.createElement("span",{className:"text-xs text-blue-600"},"Running ",O.length," provider(s)...")),H.default.createElement("div",{ref:P,className:"flex-1 overflow-auto bg-gray-50"},m?H.default.createElement("div",{className:"flex items-center justify-center h-full text-gray-500 p-4"},H.default.createElement("span",{className:"animate-pulse"},"Starting sandbox...")):h?H.default.createElement("div",{className:"text-red-600 p-4"},h):Q&&Object.keys(F).length>0?H.default.createElement("div",{className:"grid grid-cols-1 divide-y divide-gray-200"},K.map(L=>{let X=q1.find(Ae=>Ae.id===L),B=F[L];return H.default.createElement("div",{key:L,className:"p-4"},H.default.createElement("div",{className:"flex items-center justify-between mb-2"},H.default.createElement("div",{className:"flex items-center space-x-2"},H.default.createElement("div",{className:`w-3 h-3 rounded-full ${X?.color||"bg-gray-400"}`}),H.default.createElement("span",{className:"font-medium text-gray-900"},X?.name||L),H.default.createElement("span",{className:"text-xs text-gray-500"},X?.model)),B&&H.default.createElement("div",{className:"flex items-center space-x-2"},H.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${V(B.status)}`},B.status),B.tokens&&H.default.createElement("span",{className:"text-xs text-gray-500"},B.tokens," tokens"),B.duration_ms&&H.default.createElement("span",{className:"text-xs text-gray-500"},(B.duration_ms/1e3).toFixed(1),"s"))),H.default.createElement("div",{className:"bg-white rounded-lg border border-gray-200 p-3 font-mono text-sm max-h-48 overflow-auto"},B?.status==="running"?H.default.createElement("div",{className:"flex items-center space-x-2 text-gray-500"},H.default.createElement("span",{className:"animate-pulse"},"\u25CF"),H.default.createElement("span",null,"Processing...")):B?.error?H.default.createElement("div",{className:"text-red-600"},B.error):B?.result?H.default.createElement("pre",{className:"whitespace-pre-wrap text-gray-800"},B.result):H.default.createElement("span",{className:"text-gray-400"},"Waiting...")))})):c?H.default.createElement("div",{className:"p-4 font-mono text-sm"},c.provider&&H.default.createElement("div",{className:"flex items-center space-x-2 mb-3 pb-2 border-b border-gray-200"},H.default.createElement("div",{className:`w-2 h-2 rounded-full ${q1.find(L=>L.id===c.provider)?.color||"bg-gray-400"}`}),H.default.createElement("span",{className:"text-sm text-gray-600"},q1.find(L=>L.id===c.provider)?.name||c.provider)),c.status==="running"?H.default.createElement("div",{className:"flex items-center space-x-2 text-gray-500"},H.default.createElement("span",{className:"animate-pulse"},"\u25CF"),H.default.createElement("span",null,"Executing task...")):c.error?H.default.createElement("div",{className:"text-red-600"},H.default.createElement("div",{className:"font-semibold mb-2"},"Error:"),H.default.createElement("pre",{className:"whitespace-pre-wrap"},c.error)):H.default.createElement("pre",{className:"whitespace-pre-wrap text-gray-800"},c.result||"Processing...")):H.default.createElement("div",{className:"text-gray-400 text-center py-12"},H.default.createElement("p",{className:"mb-2"},"Select a sample task or enter your own"),H.default.createElement("p",{className:"text-xs"},Q?`Compare results across ${K.length} providers`:"Task will execute using the selected provider"))))),H.default.createElement("div",{className:"space-y-4 overflow-auto"},H.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},H.default.createElement("div",{className:"flex items-center justify-between mb-3"},H.default.createElement("h4",{className:"font-medium text-gray-900"},"Providers"),H.default.createElement("label",{className:"flex items-center space-x-2 cursor-pointer"},H.default.createElement("input",{type:"checkbox",checked:Q,onChange:L=>M(L.target.checked),className:"rounded border-gray-300 text-rose-500 focus:ring-rose-500"}),H.default.createElement("span",{className:"text-xs text-gray-600"},"Compare"))),H.default.createElement("div",{className:"space-y-2"},q1.map(L=>H.default.createElement("label",{key:L.id,className:`flex items-center justify-between p-2 rounded-lg border cursor-pointer transition-colors ${K.includes(L.id)?"border-rose-300 bg-rose-50":"border-gray-200 hover:bg-gray-50"}`},H.default.createElement("div",{className:"flex items-center space-x-3"},H.default.createElement("input",{type:"checkbox",checked:K.includes(L.id),onChange:()=>pe(L.id),className:"rounded border-gray-300 text-rose-500 focus:ring-rose-500"}),H.default.createElement("div",{className:`w-2 h-2 rounded-full ${L.color}`}),H.default.createElement("span",{className:"text-sm font-medium text-gray-900"},L.name)),H.default.createElement("span",{className:"text-xs text-gray-500"},L.model)))),Q&&K.length>1&&H.default.createElement("div",{className:"mt-3 p-2 bg-purple-50 rounded-lg"},H.default.createElement("p",{className:"text-xs text-purple-700"},"Comparison mode: Run task on ",K.length," providers simultaneously"))),H.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},H.default.createElement("div",{className:"flex items-center justify-between mb-3"},H.default.createElement("h4",{className:"font-medium text-gray-900"},"Sample Tasks"),Q&&H.default.createElement("button",{onClick:()=>n(r==="playwright_mcp"?"comparison":"playwright_mcp"),className:"text-xs text-rose-600 hover:text-rose-700"},r==="comparison"?"Browser Tasks":"Comparison Tasks")),H.default.createElement("div",{className:"space-y-2"},Bue[r]?.map((L,X)=>H.default.createElement("button",{key:X,onClick:()=>l(L.task),disabled:!J,className:"w-full text-left px-3 py-2 rounded-lg transition-colors border border-gray-200 hover:bg-gray-50 disabled:opacity-50"},H.default.createElement("div",{className:"font-medium text-sm text-gray-900"},L.name),H.default.createElement("div",{className:"text-xs text-gray-500 mt-0.5"},L.description))))),H.default.createElement("div",{className:"bg-gradient-to-br from-rose-50 to-purple-50 rounded-xl border border-rose-200 p-4"},H.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&&H.default.createElement("div",{className:"mb-4"},H.default.createElement("div",{className:"flex justify-between text-sm mb-1"},H.default.createElement("span",{className:"text-gray-600"},"Agent Runs"),H.default.createElement("span",{className:`font-medium ${w.runs_remaining<=1?"text-rose-600":"text-gray-900"}`},w.runs_used," / ",w.runs_limit)),H.default.createElement("div",{className:"w-full bg-white rounded-full h-2 border border-rose-200"},H.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&&H.default.createElement("p",{className:"text-xs text-rose-600 mt-1"},w.runs_remaining===0?"Limit reached!":"Almost at limit!")),H.default.createElement("dl",{className:"space-y-2 text-sm"},H.default.createElement("div",{className:"flex justify-between"},H.default.createElement("dt",{className:"text-gray-500"},"Session Runs"),H.default.createElement("dd",{className:"text-gray-900"},a?.runs_count||0,"/",a?.max_runs||O$.max_runs)),H.default.createElement("div",{className:"flex justify-between"},H.default.createElement("dt",{className:"text-gray-500"},"Timeout"),H.default.createElement("dd",{className:"text-gray-900"},O$.timeout_seconds,"s per task"))),w?.plan==="free"&&H.default.createElement("div",{className:"mt-4 pt-4 border-t border-rose-200"},H.default.createElement("button",{onClick:()=>S(!0),className:"w-full text-center text-sm text-rose-600 hover:text-rose-700 font-medium"},"Upgrade to PRO \u2192"))),s.length>0&&H.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},H.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100"},H.default.createElement("h4",{className:"font-medium text-gray-900"},"Run History")),H.default.createElement("div",{className:"max-h-48 overflow-auto divide-y divide-gray-100"},s.slice().reverse().map((L,X)=>H.default.createElement("div",{key:L.id||X,className:"px-4 py-3 hover:bg-gray-50 cursor-pointer",onClick:()=>d(L)},H.default.createElement("div",{className:"flex items-center justify-between mb-1"},H.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${V(L.status||"completed")}`},L.status||"completed"),H.default.createElement("span",{className:"text-xs text-gray-400"},L.tokens||0," tokens")),H.default.createElement("p",{className:"text-sm text-gray-600 truncate"},L.task))))),a?.status==="expired"&&H.default.createElement("button",{onClick:j,className:"w-full px-4 py-3 bg-rose-500 text-white rounded-lg hover:bg-rose-600 transition-colors"},"Start New Session")))),x&&H.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4"},H.default.createElement("div",{className:"bg-white rounded-2xl max-w-4xl w-full overflow-hidden shadow-2xl max-h-[90vh] overflow-y-auto"},H.default.createElement("div",{className:"bg-gradient-to-r from-rose-500 to-purple-600 px-6 py-6 text-white text-center"},H.default.createElement("h2",{className:"text-2xl font-bold mb-1"},"Upgrade Your Plan"),H.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.")),H.default.createElement("div",{className:"p-6"},H.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},H.default.createElement("div",{className:"border border-gray-200 rounded-xl p-5"},H.default.createElement("div",{className:"text-center mb-4"},H.default.createElement("h3",{className:"font-semibold text-gray-900"},"Free"),H.default.createElement("div",{className:"mt-2"},H.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$0"),H.default.createElement("span",{className:"text-gray-500"},"/mo"))),H.default.createElement("ul",{className:"space-y-2 text-sm text-gray-600 mb-4"},H.default.createElement("li",{className:"flex items-start"},H.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"25 trial runs/month"),H.default.createElement("li",{className:"flex items-start"},H.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"Community support"),H.default.createElement("li",{className:"flex items-start"},H.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"Basic features")),H.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")),H.default.createElement("div",{className:"border-2 border-rose-500 rounded-xl p-5 relative bg-rose-50"},H.default.createElement("div",{className:"absolute -top-3 left-1/2 transform -translate-x-1/2"},H.default.createElement("span",{className:"bg-rose-500 text-white text-xs font-semibold px-3 py-1 rounded-full"},"RECOMMENDED")),H.default.createElement("div",{className:"text-center mb-4 mt-2"},H.default.createElement("h3",{className:"font-semibold text-gray-900"},"Pro"),H.default.createElement("div",{className:"mt-2"},H.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$99"),H.default.createElement("span",{className:"text-gray-500"},"/mo")),H.default.createElement("p",{className:"text-xs text-gray-500 mt-1"},"or $995/year (save 16%)")),H.default.createElement("ul",{className:"space-y-2 text-sm text-gray-700 mb-4"},H.default.createElement("li",{className:"flex items-start"},H.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"10,000 agent runs/month"),H.default.createElement("li",{className:"flex items-start"},H.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Advanced cost tracking"),H.default.createElement("li",{className:"flex items-start"},H.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"25K traces/month"),H.default.createElement("li",{className:"flex items-start"},H.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Priority email support")),H.default.createElement("button",{onClick:()=>E("monthly"),disabled:k,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"},k?"Loading...":"Upgrade to Pro")),H.default.createElement("div",{className:"border border-gray-200 rounded-xl p-5"},H.default.createElement("div",{className:"text-center mb-4"},H.default.createElement("h3",{className:"font-semibold text-gray-900"},"Enterprise"),H.default.createElement("div",{className:"mt-2"},H.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$269"),H.default.createElement("span",{className:"text-gray-500"},"/mo")),H.default.createElement("p",{className:"text-xs text-gray-500 mt-1"},"or $2,690/year (save 16%)")),H.default.createElement("ul",{className:"space-y-2 text-sm text-gray-600 mb-4"},H.default.createElement("li",{className:"flex items-start"},H.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Unlimited runs"),H.default.createElement("li",{className:"flex items-start"},H.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"500K traces/month"),H.default.createElement("li",{className:"flex items-start"},H.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"SSO & SOC2/HIPAA"),H.default.createElement("li",{className:"flex items-start"},H.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Dedicated support")),H.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")))),H.default.createElement("div",{className:"px-6 py-4 bg-gray-50 border-t border-gray-100 flex justify-center"},H.default.createElement("button",{onClick:()=>S(!1),className:"text-gray-500 hover:text-gray-700 text-sm"},"Maybe later")))))}var Ne=re(ne());var Y1={SCREENSHOT:"screenshot",IFRAME:"iframe"},T$={navigate:"[->]",click:"[*]",type:"[T]",form_fill:"[F]",key_press:"[K]",snapshot:"[S]",hover:"[~]",select:"[v]",file_upload:"[^]",dialog:"[!]",evaluate:"[js]",wait:"[..]",scroll:"[|]",drag:"[<>]"},S_={navigate:"#3b82f6",click:"#ef4444",type:"#10b981",form_fill:"#8b5cf6",key_press:"#f59e0b",snapshot:"#06b6d4",hover:"#ec4899",select:"#6366f1",file_upload:"#14b8a6",dialog:"#f97316",evaluate:"#a855f7",wait:"#94a3b8",scroll:"#64748b",drag:"#ea580c"},$ue=` +`)||g?.instructions||"",hn=m.slice();h&&!hn.some(oe=>oe.id===h)&&hn.unshift({id:h,message_count:Mo.length});let Ns=(s.trim().length>0||c.length>0)&&!k,H_=M&&!k&&M.status==="failed",oU=M&&!k&&M.status==="complete"&&!As(M)&&!h,uc={background:n.cardBg,border:`1px solid ${n.cardBorder}`,borderRadius:"12px"},V_={borderBottom:`1px solid ${n.cardBorder}`},K_={padding:"6px 10px",borderRadius:"8px",border:`1px solid ${n.inputBorder}`,background:n.inputBg,color:n.textPrimary,fontSize:"13px",fontFamily:Fe.mono,maxWidth:"260px"},q_={width:"100%",padding:"10px 12px",borderRadius:"8px",border:`1px solid ${f?vn:n.inputBorder}`,background:n.inputBg,color:n.textPrimary,fontFamily:"inherit",fontSize:"13px",resize:"vertical"},dw=gr("system",r),iU=_1(r);return V.default.createElement("div",{className:"grid grid-cols-3 gap-6 h-full"},V.default.createElement("div",{className:"col-span-2 flex flex-col gap-4 min-w-0"},P&&V.default.createElement("div",{className:"bg-amber-50 border border-amber-200 rounded-xl p-4 flex items-center justify-between gap-4"},V.default.createElement("div",null,V.default.createElement("p",{className:"font-medium text-amber-900"},"Monthly run limit reached"),V.default.createElement("p",{className:"text-sm text-amber-700 mt-0.5"},"You've used ",P.runs_used," of ",P.runs_limit," runs on the"," ",P.plan||"free"," plan. Upgrade to keep running agents."),G&&V.default.createElement("p",{className:"text-sm text-red-600 mt-1"},G)),V.default.createElement("div",{className:"flex items-center gap-2 flex-shrink-0"},ut&&V.default.createElement("a",{href:ut,className:"px-4 py-2 text-sm text-amber-800 hover:text-amber-900"},"See plans"),V.default.createElement("button",{onClick:xe,disabled:R,className:"px-4 py-2 text-sm bg-amber-500 text-white rounded-lg hover:bg-amber-600 transition-colors disabled:opacity-50"},R?"Redirecting\u2026":"Upgrade to Pro"))),V.default.createElement("div",{"data-testid":"runner-toolbar",style:uc,className:"p-4 flex items-center gap-3 flex-wrap"},V.default.createElement(mr,{size:40}),V.default.createElement("div",{className:"min-w-0"},V.default.createElement("div",{className:"font-semibold truncate",style:{color:n.textPrimary}},e.name),V.default.createElement("div",{className:"text-xs font-mono",style:{color:n.textSecondary}},e.provider," / ",e.model)),V.default.createElement("div",{className:"flex items-center gap-2 flex-wrap ml-auto"},V.default.createElement("select",{"data-testid":"runner-action-select",value:i,onChange:oe=>nw(oe.target.value),disabled:k,className:"aa-field",style:K_,title:"Agent action to invoke"},o.map(oe=>V.default.createElement("option",{key:oe,value:oe},"#",oe))),V.default.createElement("select",{"data-testid":"runner-conversation-select",value:h??"",onChange:oe=>aw(oe.target.value),disabled:k,className:"aa-field",style:K_,title:"Conversation to continue"},V.default.createElement("option",{value:""},"New conversation on first run"),hn.map(oe=>V.default.createElement("option",{key:oe.id,value:oe.id},"Conversation #",oe.id," \xB7 ",oe.message_count??0," message",oe.message_count===1?"":"s"))),V.default.createElement(Ln,{testId:"runner-new-conversation",variant:"secondary",size:"sm",colors:n,onClick:oc,disabled:k,title:"Start an empty conversation for this action"},"+ New conversation"),V.default.createElement(Ln,{testId:"runner-back",variant:"secondary",size:"sm",colors:n,onClick:t},"\u2190 Back to editor"))),V.default.createElement("div",{"data-testid":"runner-context",ref:ft,style:uc,className:"flex flex-col overflow-hidden"},V.default.createElement("div",{className:"px-4 py-3 flex items-center justify-between gap-3 flex-wrap",style:V_},V.default.createElement("div",{className:"flex items-center gap-2 min-w-0"},V.default.createElement("h3",{className:"font-medium",style:{color:n.textPrimary}},"Context"),g&&V.default.createElement("span",{className:"text-xs font-mono",style:{color:n.textMuted}},"#",g.id," \xB7 ",Mo.length," message",Mo.length===1?"":"s")),V.default.createElement("div",{className:"flex items-center gap-3 flex-wrap"},V.default.createElement(Oue,{run:M,darkMode:r,colors:n}),V.default.createElement("div",{className:"relative",ref:oa},V.default.createElement(Ln,{testId:"runner-add-message",variant:"secondary",size:"sm",colors:n,onClick:()=>le(oe=>!oe),disabled:k,title:"Insert a message into the context without running"},"+ Add message"),De&&V.default.createElement("div",{className:"absolute right-0 mt-1 z-10 py-1 rounded-lg shadow-lg",style:{background:n.cardBg,border:`1px solid ${n.borderStrong}`,minWidth:"180px"}},[["user","runner-add-user-message","User message"],["assistant","runner-add-assistant-message","Assistant message"]].map(([oe,Ie,Ye])=>V.default.createElement("button",{key:oe,type:"button","data-testid":Ie,onClick:()=>uw(oe),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-black/5",style:{color:n.textCell,background:"none",border:"none",cursor:"pointer"}},Ye)))))),V.default.createElement("div",{ref:En,className:"p-4 overflow-auto",style:{maxHeight:"60vh"}},V.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:()=>de(oe=>!oe),title:fe?"Collapse system instructions":"Show system instructions"},V.default.createElement("span",{className:"flex flex-col gap-1 flex-shrink-0 mt-0.5",style:{minWidth:"72px"}},V.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:dw.background,color:dw.color,textAlign:"center"}},dw.label)),V.default.createElement("div",{className:"min-w-0 flex-1"},pr?fe?V.default.createElement("pre",{style:{...iU,whiteSpace:"pre-wrap",maxHeight:"260px",overflowY:"auto"}},pr):V.default.createElement("div",{className:"text-sm truncate",style:{color:n.textSecondary}},pr.split(` +`).find(oe=>oe.trim())||""):V.default.createElement("div",{className:"text-sm",style:{color:n.textMuted}},"No system instructions"),V.default.createElement("div",{className:"text-xs mt-0.5 font-mono",style:{color:n.textMuted}},"read-only \xB7 Edit in the Instructions tab")),V.default.createElement(j$,{open:fe,color:n.textMuted})),x&&V.default.createElement("div",{className:"text-sm mt-3",style:{color:"#dc2626"}},x),Mo.length>0?V.default.createElement("div",{className:"mt-3"},V.default.createElement(so,{messages:Mo,darkMode:r,testIdPrefix:"runner-message",onUiAction:pg,onEditMessage:Qf,onDeleteMessage:sw})):!L&&!D&&!H_&&V.default.createElement("div",{"data-testid":"runner-context-empty",className:"text-sm text-center py-8",style:{color:n.textMuted}},"No messages yet \u2014 say something below to test the agent as a user."),L&&V.default.createElement("div",{"data-testid":"runner-pending-turn",className:"flex gap-3 items-start rounded-lg -mx-2 px-2 py-1 mt-3"},V.default.createElement("span",{className:"flex flex-col gap-1 flex-shrink-0 mt-0.5",style:{minWidth:"72px"}},V.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:gr("user",r).background,color:gr("user",r).color,textAlign:"center"}},"User")),V.default.createElement("div",{className:"min-w-0 flex-1"},V.default.createElement("div",{className:"text-sm break-words whitespace-pre-wrap",style:{color:n.textPrimary}},L.content),V.default.createElement(O1,{attachments:L.attachments,darkMode:r}))),M&&(k||d_(M).length>0)&&V.default.createElement("div",{className:"mt-3 space-y-2"},V.default.createElement(_ue,{run:M,darkMode:r,colors:n,expanded:z,onToggle:oe=>j(Ie=>({...Ie,[oe]:!Ie[oe]}))}),k&&V.default.createElement("div",{className:"flex items-center gap-2 text-sm",style:{color:n.textSecondary}},V.default.createElement("span",{className:"animate-pulse"},"\u25CF"),V.default.createElement("span",null,d_(M).length>0?"Working\u2026":"Starting run\u2026"))),N&&V.default.createElement("div",{className:"text-xs mt-3",style:{color:"#d97706"}},N),H_&&M.error_message&&V.default.createElement("div",{className:"mt-3 rounded-lg p-3 text-sm",style:{background:r?"rgba(239,68,68,0.12)":"#fef2f2",color:r?"#fca5a5":"#b91c1c"}},V.default.createElement("div",{className:"font-semibold mb-1"},"Run failed"),V.default.createElement("pre",{className:"whitespace-pre-wrap font-mono text-xs",style:{margin:0}},M.error_message)),oU&&V.default.createElement("div",{className:"mt-3 rounded-lg p-3 text-sm",style:{background:n.innerBg,color:n.textPrimary}},V.default.createElement("div",{className:"text-xs uppercase tracking-wide mb-1",style:{color:n.textMuted}},"Output"),V.default.createElement(_o,{text:M.output||"No output",darkMode:r,onUiAction:pg})),D&&V.default.createElement("div",{"data-testid":"runner-inspected-run",className:"mt-3 rounded-lg p-3",style:{background:n.innerBg,border:`1px solid ${n.cardBorder}`}},V.default.createElement("div",{className:"flex items-center justify-between gap-3 flex-wrap mb-2"},V.default.createElement("div",{className:"flex items-center gap-2 text-xs font-mono",style:{color:n.textMuted}},V.default.createElement("span",{style:{color:n.textPrimary}},"Run #",D.id),V.default.createElement(Ss,{tone:c_[D.status]||"neutral",darkMode:r},D.status),D.output_metadata?.model&&V.default.createElement("span",null,D.output_metadata.provider,"/",D.output_metadata.model),D.duration_ms?V.default.createElement("span",null,K1(D.duration_ms)):null,D.trace_id&&V.default.createElement("a",{href:Ge(`/traces?trace=${D.trace_id}`),className:"hover:underline",style:{color:n.textSecondary}},"trace:",D.trace_id.slice(0,8)," \u2192"),V.default.createElement("span",null,"\xB7 no conversation attached")),V.default.createElement("button",{type:"button",onClick:()=>Y(null),className:"text-xs font-mono",style:{color:n.textMuted,background:"none",border:"none",cursor:"pointer"},title:"Close"},"[x]")),(D.input_prompt||D.input_preview)&&V.default.createElement("div",{className:"text-sm mb-2 whitespace-pre-wrap",style:{color:n.textSecondary}},D.input_prompt||D.input_preview),D.error_message?V.default.createElement("pre",{className:"whitespace-pre-wrap font-mono text-xs",style:{margin:0,color:r?"#fca5a5":"#b91c1c"}},D.error_message):V.default.createElement("div",{className:"text-sm",style:{color:n.textPrimary}},V.default.createElement(_o,{text:D.output||"No output",darkMode:r}))),Te&&V.default.createElement("div",{className:"mt-3 rounded-lg p-3",style:{border:`1px dashed ${n.borderStrong}`}},V.default.createElement("div",{className:"flex items-center gap-2 mb-2"},V.default.createElement("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:gr(Te,r).background,color:gr(Te,r).color}},gr(Te,r).label),V.default.createElement("span",{className:"text-xs",style:{color:n.textMuted}},"Added to the context without running the agent")),V.default.createElement("textarea",{"data-testid":"runner-inline-composer",value:I,onChange:oe=>C(oe.target.value),onKeyDown:oe=>{oe.key==="Escape"&&K(null),oe.key==="Enter"&&(oe.metaKey||oe.ctrlKey)&&sc()},placeholder:Te==="user"?"What the user said\u2026":"What the assistant replied\u2026",rows:3,autoFocus:!0,className:"aa-field",style:{...q_,border:`1px solid ${n.inputBorder}`}}),V.default.createElement("div",{className:"flex items-center gap-2 mt-2 flex-wrap"},V.default.createElement(Ln,{testId:"runner-inline-submit",variant:"primary",size:"sm",colors:n,onClick:sc,disabled:T||!I.trim()},T?"Adding\u2026":`Add ${Te} message`),V.default.createElement(Ln,{variant:"secondary",size:"sm",colors:n,onClick:()=>K(null),disabled:T},"Cancel"),$&&V.default.createElement("span",{className:"text-xs",style:{color:"#dc2626"}},$))))),V.default.createElement("div",{style:uc,className:"p-4"},V.default.createElement("div",{onDragOver:oe=>{oe.preventDefault(),f||p(!0)},onDragLeave:()=>p(!1),onDrop:oe=>{oe.preventDefault(),p(!1),k||ic(oe.dataTransfer?.files)}},V.default.createElement("textarea",{"data-testid":"runner-prompt",value:s,onChange:oe=>u(oe.target.value),onKeyDown:lw,placeholder:"Message the agent as a user\u2026 (\u2318/Ctrl+Enter to run \xB7 drop files here to attach)",rows:3,disabled:k,className:"aa-field",style:q_})),V.default.createElement(O1,{attachments:c,darkMode:r,testId:"runner-attachment-chip",onRemove:(oe,Ie)=>ow(Ie),removeTestId:"runner-attachment-remove"}),V.default.createElement("div",{className:"flex items-center justify-between gap-3 flex-wrap mt-3"},V.default.createElement("div",{className:"flex items-center gap-3 flex-wrap"},V.default.createElement("input",{ref:Bn,"data-testid":"runner-attach-input",type:"file",multiple:!0,style:{display:"none"},onChange:oe=>{ic(oe.target.files),oe.target.value=""}}),V.default.createElement(Ln,{testId:"runner-attach",variant:"secondary",size:"sm",colors:n,onClick:()=>Bn.current?.click(),disabled:k,title:"Attach images, PDFs, or text files to this message"},"\u{1F4CE} Attach files"),V.default.createElement("span",{className:"text-xs",style:{color:n.textMuted}},"Press ",V.default.createElement("kbd",{className:"px-1.5 py-0.5 rounded",style:{background:n.mutedBg,color:n.textSecondary}},"\u2318")," + ",V.default.createElement("kbd",{className:"px-1.5 py-0.5 rounded",style:{background:n.mutedBg,color:n.textSecondary}},"Enter")," to run")),V.default.createElement(Ln,{testId:"runner-run",variant:"primary",colors:n,onClick:Zf,disabled:!Ns},k?V.default.createElement(V.default.Fragment,null,V.default.createElement("span",{className:"animate-spin inline-block",style:{fontFamily:Fe.mono}},"[~]")," Running\u2026"):V.default.createElement(V.default.Fragment,null,V.default.createElement("span",{style:{fontFamily:Fe.mono}},"[>]")," Run"))))),V.default.createElement("div",{className:"space-y-4 min-w-0"},V.default.createElement("div",{style:uc,className:"p-4"},V.default.createElement("h4",{className:"font-medium mb-3",style:{color:n.textPrimary}},"Configuration"),V.default.createElement("dl",{className:"space-y-2 text-sm"},V.default.createElement("div",{className:"flex justify-between"},V.default.createElement("dt",{style:{color:n.textSecondary}},"Temperature"),V.default.createElement("dd",{style:{color:n.textPrimary}},e.modelConfig?.temperature||e.model_config?.temperature||.7)),V.default.createElement("div",{className:"flex justify-between"},V.default.createElement("dt",{style:{color:n.textSecondary}},"Tools"),V.default.createElement("dd",{style:{color:n.textPrimary}},e.tools?.length||0)),V.default.createElement("div",{className:"flex justify-between items-center"},V.default.createElement("dt",{style:{color:n.textSecondary}},"Status"),V.default.createElement("dd",null,V.default.createElement(Ss,{tone:e.status==="active"?"success":"neutral",darkMode:r},e.status)))),e.instructions&&V.default.createElement("div",{className:"mt-3 pt-3",style:{borderTop:`1px solid ${n.cardBorder}`}},V.default.createElement("div",{className:"text-xs mb-1.5",style:{color:n.textSecondary}},"System Instructions"),V.default.createElement("p",{className:"text-xs whitespace-pre-wrap max-h-44 overflow-y-auto font-mono leading-relaxed",style:{color:n.textCell}},e.instructions))),V.default.createElement("div",{style:uc,className:"overflow-hidden"},V.default.createElement("div",{className:"px-4 py-3",style:V_},V.default.createElement("h4",{className:"font-medium",style:{color:n.textPrimary}},"Recent Runs")),V.default.createElement("div",{className:"max-h-64 overflow-auto"},w.length>0?V.default.createElement("div",null,w.map(oe=>V.default.createElement("div",{key:oe.id,"data-testid":"runner-recent-run",className:"px-4 py-3 cursor-pointer hover:bg-black/5",style:{borderBottom:`1px solid ${n.cardBorder}`},onClick:()=>cw(oe),title:As(oe)?"Open this run\u2019s conversation":"Show this run\u2019s output"},V.default.createElement("div",{className:"flex items-center justify-between mb-1"},V.default.createElement(Ss,{tone:c_[oe.status]||"neutral",darkMode:r},oe.status),V.default.createElement("span",{className:"text-xs",style:{color:n.textMuted}},K1(oe.duration_ms))),V.default.createElement("p",{className:"text-sm truncate",style:{color:n.textCell}},oe.input_preview||oe.input_prompt?.substring(0,50)),V.default.createElement("p",{className:"text-xs mt-1 flex items-center gap-2 flex-wrap",style:{color:n.textMuted}},oe.model&&V.default.createElement("span",{className:"px-1.5 py-0.5 rounded font-mono",style:{background:n.mutedBg,color:n.textSecondary}},oe.model),As(oe)&&V.default.createElement("span",{className:"font-mono"},"#",As(oe)),V.default.createElement("span",null,new Date(oe.created_at).toLocaleString()))))):V.default.createElement("div",{className:"px-4 py-8 text-center text-sm",style:{color:n.textMuted}},"No runs yet"))),V.default.createElement("div",{style:uc,className:"p-4"},V.default.createElement("h4",{className:"font-medium mb-3",style:{color:n.textPrimary}},"Example Prompts"),V.default.createElement("div",{className:"space-y-2"},kue.map(oe=>V.default.createElement("button",{key:oe,type:"button","data-testid":"runner-example-prompt",onClick:()=>u(oe),className:"w-full text-left px-3 py-2 text-sm rounded-lg transition-colors hover:bg-black/5",style:{color:n.textCell,border:`1px solid ${n.cardBorder}`,background:"transparent",cursor:"pointer"}},oe))))))}var _e=te(ne()),q1=e=>new Date(`${e}T00:00:00`),Tue=[{value:7,label:"7 days"},{value:14,label:"14 days"},{value:30,label:"30 days"},{value:90,label:"90 days"}];function p_({onSelectAgent:e}){let[t,r]=(0,_e.useState)(null),[n,a]=(0,_e.useState)(!0),[o,i]=(0,_e.useState)(30);(0,_e.useEffect)(()=>{l()},[o]);let l=async()=>{a(!0);try{let p=await(await fetch(`/api/analytics?days=${o}`)).json();r(p)}catch(f){console.error("Failed to load analytics:",f)}finally{a(!1)}},s=f=>f?f>=1e6?`${(f/1e6).toFixed(1)}M`:f>=1e3?`${(f/1e3).toFixed(1)}K`:f.toString():"0",u=f=>f?f<1e3?`${f}ms`:`${(f/1e3).toFixed(2)}s`:"-";if(n&&!t)return _e.default.createElement("div",{className:"flex items-center justify-center h-64"},_e.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(f=>f.count)):1,d=t?.charts?.tokens_by_day?.length>0?Math.max(...t.charts.tokens_by_day.map(f=>f.tokens)):1;return _e.default.createElement("div",{className:"space-y-6"},_e.default.createElement("div",{className:"flex items-center justify-between"},_e.default.createElement("div",null,_e.default.createElement("h1",{className:"text-2xl font-bold text-gray-900"},"Analytics Dashboard"),_e.default.createElement("p",{className:"text-sm text-gray-500"},"Overview of all your agents' performance")),_e.default.createElement("select",{value:o,onChange:f=>i(Number(f.target.value)),className:"px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500"},Tue.map(f=>_e.default.createElement("option",{key:f.value,value:f.value},"Last ",f.label)))),_e.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-5 gap-4"},_e.default.createElement(rg,{title:"Total Agents",value:t?.summary?.total_agents||0,subtitle:`${t?.summary?.active_agents||0} active`,color:"rose"}),_e.default.createElement(rg,{title:"Total Runs",value:t?.summary?.total_runs||0,subtitle:`${t?.period_days} day period`,color:"blue"}),_e.default.createElement(rg,{title:"Success Rate",value:`${t?.summary?.success_rate||0}%`,subtitle:`${t?.summary?.completed_runs||0} completed`,color:"green"}),_e.default.createElement(rg,{title:"Avg Duration",value:u(t?.summary?.avg_duration_ms),subtitle:"per run",color:"purple"}),_e.default.createElement(rg,{title:"Total Tokens",value:s(t?.summary?.total_tokens),subtitle:`${s(t?.summary?.avg_tokens_per_run)}/run avg`,color:"amber"})),_e.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6"},_e.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},_e.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Runs Over Time"),t?.charts?.runs_by_day?.length>0?_e.default.createElement("div",{className:"h-48"},_e.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},t.charts.runs_by_day.map((f,p)=>_e.default.createElement("div",{key:f.date,className:"flex-1 flex flex-col items-center group"},_e.default.createElement("div",{className:"relative w-full"},_e.default.createElement("div",{className:"w-full bg-red-500 rounded-t transition-all hover:bg-red-600",style:{height:`${f.count/c*150}px`,minHeight:f.count>0?"4px":"0"}}),_e.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"},f.count," runs"))))),_e.default.createElement("div",{className:"flex justify-between mt-2 text-xs text-gray-400"},_e.default.createElement("span",null,t.charts.runs_by_day[0]?.date&&q1(t.charts.runs_by_day[0].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})),_e.default.createElement("span",null,t.charts.runs_by_day[t.charts.runs_by_day.length-1]?.date&&q1(t.charts.runs_by_day[t.charts.runs_by_day.length-1].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))):_e.default.createElement("div",{className:"h-48 flex items-center justify-center text-gray-400"},"No runs in this period")),_e.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},_e.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Token Usage Over Time"),t?.charts?.tokens_by_day?.length>0?_e.default.createElement("div",{className:"h-48"},_e.default.createElement("div",{className:"flex items-end justify-between h-full space-x-1"},t.charts.tokens_by_day.map((f,p)=>_e.default.createElement("div",{key:f.date,className:"flex-1 flex flex-col items-center group"},_e.default.createElement("div",{className:"relative w-full"},_e.default.createElement("div",{className:"w-full bg-purple-500 rounded-t transition-all hover:bg-purple-600",style:{height:`${f.tokens/d*150}px`,minHeight:f.tokens>0?"4px":"0"}}),_e.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"},s(f.tokens)," tokens"))))),_e.default.createElement("div",{className:"flex justify-between mt-2 text-xs text-gray-400"},_e.default.createElement("span",null,t.charts.tokens_by_day[0]?.date&&q1(t.charts.tokens_by_day[0].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})),_e.default.createElement("span",null,t.charts.tokens_by_day[t.charts.tokens_by_day.length-1]?.date&&q1(t.charts.tokens_by_day[t.charts.tokens_by_day.length-1].date).toLocaleDateString("en-US",{month:"short",day:"numeric"})))):_e.default.createElement("div",{className:"h-48 flex items-center justify-center text-gray-400"},"No token usage in this period"))),_e.default.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6"},_e.default.createElement("div",{className:"lg:col-span-2 bg-white rounded-xl border border-gray-200 p-6"},_e.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Top Agents"),t?.top_agents?.length>0?_e.default.createElement("div",{className:"space-y-3"},t.top_agents.map((f,p)=>_e.default.createElement("div",{key:f.id,onClick:()=>e?.(f),className:"flex items-center space-x-4 p-3 rounded-lg hover:bg-gray-50 cursor-pointer transition-colors"},_e.default.createElement("div",{className:"w-8 h-8 rounded-full bg-red-100 flex items-center justify-center text-red-600 font-semibold"},p+1),_e.default.createElement("div",{className:"flex-1 min-w-0"},_e.default.createElement("p",{className:"font-medium text-gray-900 truncate"},f.name),_e.default.createElement("p",{className:"text-sm text-gray-500"},f.run_count," runs")),_e.default.createElement("div",{className:"text-right"},_e.default.createElement("p",{className:"font-medium text-gray-900"},s(f.total_tokens)),_e.default.createElement("p",{className:"text-xs text-gray-500"},"tokens"))))):_e.default.createElement("div",{className:"py-8 text-center text-gray-400"},"No agent activity yet")),_e.default.createElement("div",{className:"space-y-6"},_e.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},_e.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"By Provider"),Object.keys(t?.provider_breakdown||{}).length>0?_e.default.createElement("div",{className:"space-y-3"},Object.entries(t.provider_breakdown).map(([f,p])=>{let m=t?.summary?.total_runs||1,y=(p/m*100).toFixed(1);return _e.default.createElement("div",{key:f},_e.default.createElement("div",{className:"flex justify-between text-sm mb-1"},_e.default.createElement("span",{className:"capitalize text-gray-600"},f),_e.default.createElement("span",{className:"text-gray-900 font-medium"},p)),_e.default.createElement("div",{className:"h-2 bg-gray-100 rounded-full overflow-hidden"},_e.default.createElement("div",{className:"h-full bg-blue-500 rounded-full",style:{width:`${y}%`}})))})):_e.default.createElement("div",{className:"py-4 text-center text-gray-400 text-sm"},"No data")),_e.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-6"},_e.default.createElement("h3",{className:"font-semibold text-gray-900 mb-4"},"Token Usage"),_e.default.createElement("div",{className:"space-y-4"},_e.default.createElement("div",{className:"flex justify-between items-center"},_e.default.createElement("span",{className:"text-sm text-gray-500"},"Input Tokens"),_e.default.createElement("span",{className:"font-medium text-gray-900"},s(t?.summary?.total_input_tokens))),_e.default.createElement("div",{className:"flex justify-between items-center"},_e.default.createElement("span",{className:"text-sm text-gray-500"},"Output Tokens"),_e.default.createElement("span",{className:"font-medium text-gray-900"},s(t?.summary?.total_output_tokens))),_e.default.createElement("div",{className:"pt-2 border-t border-gray-100"},_e.default.createElement("div",{className:"flex justify-between items-center"},_e.default.createElement("span",{className:"text-sm font-medium text-gray-700"},"Total"),_e.default.createElement("span",{className:"font-bold text-gray-900"},s(t?.summary?.total_tokens)))))))))}function rg({title:e,value:t,subtitle:r,color:n}){return _e.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`},_e.default.createElement("p",{className:"text-sm text-gray-500"},e),_e.default.createElement("p",{className:"text-2xl font-bold text-gray-900 mt-1"},t),r&&_e.default.createElement("p",{className:"text-xs text-gray-400 mt-1"},r))}var Q=te(ne());function m_({agent:e,onBack:t}){let{timeWindow:r}=Qo(),[n,a]=(0,Q.useState)([]),[o,i]=(0,Q.useState)([]),[l,s]=(0,Q.useState)(null),[u,c]=(0,Q.useState)(null),[d,f]=(0,Q.useState)([]),[p,m]=(0,Q.useState)("run"),[y,h]=(0,Q.useState)(!1),[v,g]=(0,Q.useState)(!1),b=(0,Q.useRef)(!1),x=(0,Q.useRef)(!1),[S,w]=(0,Q.useState)("recent"),[O,k]=(0,Q.useState)({}),[A,M]=(0,Q.useState)(!0),[W,L]=(0,Q.useState)(1),[H,D]=(0,Q.useState)(!0),[Y,N]=(0,Q.useState)(""),[_,z]=(0,Q.useState)(""),[j,P]=(0,Q.useState)("recent"),B=(0,Q.useRef)(null),R=Ge(`/agents/${e.id}/interactions`);(0,Q.useEffect)(()=>{F()},[e.id,W,Y,_,j,r.minutes]),(0,Q.useEffect)(()=>{L(1)},[r.minutes]),(0,Q.useEffect)(()=>{fetch(`/api/interactions?agent_id=${e.id}`).then($=>$.json()).then($=>i($.interactions||[])).catch(()=>{}).finally(()=>g(!0))},[e.id]),(0,Q.useEffect)(()=>{let $=()=>{let Ne=Xu(),E=Ne.match(/\/interactions\/runs\/(\d+)/),Z=Ne.match(/\/interactions\/sessions\/(\d+)/);if(E)m("run"),c(null),ee(parseInt(E[1],10),{updateUrl:!1});else if(Z)m("all"),c({id:parseInt(Z[1],10)});else if(Ne.endsWith("/interactions/sessions")||Ne.endsWith("/interactions/all"))Ne.endsWith("/all")&&window.history.replaceState({},"",Ne.replace(/\/all$/,"/sessions")),m("all"),c(null);else{b.current=!1,s(null),c(null),f([]);return}b.current=!0};return $(),window.addEventListener("popstate",$),()=>window.removeEventListener("popstate",$)},[e.id]),(0,Q.useEffect)(()=>{b.current||x.current||!y||!v||m(n.length===0&&o.length>0?"all":"run")},[y,v,n.length,o.length]);let F=async()=>{M(!0);try{let $=new URLSearchParams({page:W.toString(),per_page:"20",minutes:String(r.minutes)});Y&&$.append("status",Y),_&&$.append("source",_),j!=="recent"&&$.append("sort",j);let E=await(await fetch(`/api/agents/${e.id}/runs?${$}`)).json();a(W===1?E.runs:Z=>[...Z,...E.runs]),D(E.runs.length===20)}catch($){console.error("Failed to load runs:",$)}finally{M(!1),h(!0)}},G=$=>{window.location.pathname!==$&&window.history.pushState({},"",$)},ee=async($,{updateUrl:Ne=!0}={})=>{try{let Z=await(await fetch(`/api/runs/${$}`)).json();s(Z.run),f(Z.messages||[]),m("run"),c(null),Ne&&G(`${R}/runs/${$}`)}catch(E){console.error("Failed to load run details:",E)}},fe=$=>{if($.source==="reported"){let Ne=$.trace_id||String($.id).replace(/^trace-/,"");window.history.pushState(window.history.state,"",Ge(`/traces/${Ne}`)),window.dispatchEvent(new CustomEvent("dashboard:navigate",{detail:{path:Ge(`/traces/${Ne}`)}}));return}ee($.record_id||$.id)},de=()=>{s(null),c(null),f([]),m("run"),G(R)},De=$=>{m("all"),$?(c({id:$.id,name:$.display_name}),G(`${R}/sessions/${$.id}`)):(c(null),G(`${R}/sessions`))},le=$=>{x.current=!0,m($),G($==="all"?u?`${R}/sessions/${u.id}`:`${R}/sessions`:l?`${R}/runs/${l.id}`:R)},Te=u?u.name||o.find($=>$.id===u.id)?.display_name||`Session #${u.id}`:null,K=()=>{let $=new Map;n.forEach(Z=>{let ge=`${Z.model||"unknown"}|${Z.instructions_digest||"none"}`;$.has(ge)||$.set(ge,{key:ge,model:Z.model,instructionsDigest:Z.instructions_digest,instructionsVersion:Z.instructions_version,instructionsCodename:Z.instructions_codename,instructionsPreview:Z.instructions_preview,runs:[]}),$.get(ge).runs.push(Z)});let Ne=[...$.values()].map(Z=>({...Z,count:Z.runs.length,completed:Z.runs.filter(ge=>ge.status==="complete").length,failed:Z.runs.filter(ge=>ge.status==="failed").length,totalTokens:Z.runs.reduce((ge,Le)=>ge+(Le.tokens||0),0),avgTokens:Z.runs.reduce((ge,Le)=>ge+(Le.tokens||0),0)/Z.runs.length,avgDuration:Z.runs.reduce((ge,Le)=>ge+(Le.duration_ms||0),0)/Z.runs.length,latest:Z.runs[0],sortedRuns:[...Z.runs].sort((ge,Le)=>(Le.duration_ms||0)-(ge.duration_ms||0))}));Ne.sort((Z,ge)=>S==="longest"?ge.avgDuration-Z.avgDuration:new Date(ge.latest.created_at)-new Date(Z.latest.created_at));let E={runs:n.length,completed:n.filter(Z=>Z.status==="complete").length,tokens:n.reduce((Z,ge)=>Z+(ge.tokens||0),0),avgDuration:n.length?n.reduce((Z,ge)=>Z+(ge.duration_ms||0),0)/n.length:0,models:[...new Set(n.map(Z=>Z.model).filter(Boolean))]};return{cohorts:Ne,totals:E}},I=$=>{switch($){case"complete":return"bg-green-100 text-green-700";case"failed":return"bg-red-100 text-red-700";case"running":return"bg-blue-100 text-blue-700";case"pending":return"bg-yellow-100 text-yellow-700";case"cancelled":return"bg-gray-100 text-gray-500";default:return"bg-gray-100 text-gray-500"}},C=$=>$?$<1e3?`${$}ms`:$<6e4?`${($/1e3).toFixed(1)}s`:`${Math.floor($/6e4)}m ${Math.floor($%6e4/1e3)}s`:"-",T=$=>$==null?"\u2014":$===0?"$0":$<.01?`$${$.toFixed(4)}`:`$${$.toFixed(2)}`,X=$=>{let Ne=new Date($),Z=new Date-Ne,ge=Math.floor(Z/6e4),Le=Math.floor(Z/36e5),nt=Math.floor(Z/864e5);return ge<1?"Just now":ge<60?`${ge}m ago`:Le<24?`${Le}h ago`:nt<7?`${nt}d ago`:Ne.toLocaleDateString()};return Q.default.createElement("div",{className:"flex h-full"},Q.default.createElement("div",{className:"w-80 border-r border-gray-200 flex flex-col bg-white"},Q.default.createElement("div",{className:"p-4 border-b border-gray-200"},Q.default.createElement("div",{className:"flex items-center space-x-3 mb-4"},Q.default.createElement("button",{onClick:t,className:"p-1 text-gray-400 hover:text-gray-600 transition-colors"},Q.default.createElement("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Q.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"}))),Q.default.createElement("div",null,Q.default.createElement("h2",{className:"font-semibold text-gray-900"},"Agent Interactions"),Q.default.createElement("p",{className:"text-sm text-gray-500"},e.name))),Q.default.createElement("div",{className:"mb-2"},Q.default.createElement(Jo,{compact:!0})),Q.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($=>Q.default.createElement("button",{key:$.value||"all",onClick:()=>{z($.value),L(1)},className:`flex-1 px-2 py-1 rounded-md transition-colors ${_===$.value?"bg-white shadow text-gray-900":"text-gray-600"}`,title:$.value==="dashboard"?"Executions started from this dashboard":$.value==="reported"?"Executions reported by your app via telemetry":"Every execution, however it started"},$.label))),Q.default.createElement("select",{value:Y,onChange:$=>{N($.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"},Q.default.createElement("option",{value:""},"All statuses"),Q.default.createElement("option",{value:"complete"},"Completed"),Q.default.createElement("option",{value:"failed"},"Failed"),Q.default.createElement("option",{value:"running"},"Running"),Q.default.createElement("option",{value:"cancelled"},"Cancelled")),Q.default.createElement("select",{value:j,onChange:$=>{P($.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"},Q.default.createElement("option",{value:"recent"},"Most recent"),Q.default.createElement("option",{value:"longest"},"Longest running"),Q.default.createElement("option",{value:"cost"},"Highest cost"),Q.default.createElement("option",{value:"tokens"},"Most tokens"))),Q.default.createElement("div",{className:"flex-1 overflow-auto"},A&&n.length===0?Q.default.createElement("div",{className:"flex items-center justify-center h-32"},Q.default.createElement("div",{className:"animate-spin rounded-full h-6 w-6 border-b-2 border-red-500"})):n.length>0?Q.default.createElement(Q.default.Fragment,null,n.map($=>{let Ne=$.source==="reported";return Q.default.createElement("div",{key:$.id,onClick:()=>fe($),title:Ne?"Reported by your app \u2014 opens its trace":"Started from this dashboard",className:`p-4 border-b border-gray-100 cursor-pointer transition-colors ${!Ne&&l?.id===$.id?"bg-red-50 border-l-4 border-l-red-500":"hover:bg-gray-50"}`},Q.default.createElement("div",{className:"flex items-center justify-between mb-2 gap-2"},Q.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${I($.status)}`},$.status),Q.default.createElement("div",{className:"flex items-center gap-2"},Q.default.createElement("span",{className:`px-1.5 py-0.5 rounded text-[10px] uppercase tracking-wide ${Ne?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-600"}`},Ne?"reported":"dashboard"),Q.default.createElement("span",{className:"text-xs text-gray-400"},X($.created_at||$.occurred_at)))),Q.default.createElement("p",{className:"text-sm text-gray-700 truncate"},$.input_preview||$.input_prompt?.substring(0,60)||(Ne?`${$.action_name||"execution"} \xB7 trace ${String($.trace_id||"").slice(0,8)}`:"No input")),Q.default.createElement("div",{className:"flex items-center space-x-3 mt-2 text-xs text-gray-400 flex-wrap gap-y-1"},$.model&&Q.default.createElement("span",{className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono"},$.model),Q.default.createElement("span",{className:j==="longest"?"text-gray-700 font-medium":void 0},C($.duration_ms)),!!$.tokens&&Q.default.createElement("span",{className:j==="tokens"?"text-gray-700 font-medium":void 0},$.tokens," tokens"),$.cost!=null&&Q.default.createElement("span",{className:j==="cost"?"text-gray-700 font-medium":void 0,title:"Estimated from token counts at this model's published rates"},T($.cost))))}),H&&Q.default.createElement("button",{onClick:()=>L($=>$+1),disabled:A,className:"w-full py-3 text-sm text-red-600 hover:bg-gray-50 transition-colors"},A?"Loading...":"Load More")):Q.default.createElement("div",{className:"p-8 text-center text-gray-400"},Q.default.createElement("svg",{className:"w-12 h-12 mx-auto mb-3 text-gray-300",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Q.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"})),Q.default.createElement("p",null,"No conversations yet")))),Q.default.createElement("div",{className:"flex-1 flex flex-col bg-gray-50"},Q.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"},Q.default.createElement("button",{onClick:t,className:"hover:text-gray-900 hover:underline transition-colors"},e.name),Q.default.createElement("span",{className:"text-gray-300"},"/"),p==="all"||l?Q.default.createElement(Q.default.Fragment,null,Q.default.createElement("button",{onClick:de,className:"hover:text-gray-900 hover:underline transition-colors"},"Interactions"),Q.default.createElement("span",{className:"text-gray-300"},"/"),p==="all"?u?Q.default.createElement(Q.default.Fragment,null,Q.default.createElement("button",{onClick:()=>De(null),className:"hover:text-gray-900 hover:underline transition-colors"},"Sessions"),Q.default.createElement("span",{className:"text-gray-300"},"/"),Q.default.createElement("span",{className:"text-gray-900 font-medium"},Te)):Q.default.createElement("span",{className:"text-gray-900 font-medium"},"Sessions"):Q.default.createElement("span",{className:"text-gray-900 font-medium"},"Run #",l.id)):Q.default.createElement("span",{className:"text-gray-900 font-medium"},"Interactions")),Q.default.createElement("div",{className:"p-3 bg-white border-b border-gray-200 flex items-center justify-between"},Q.default.createElement("div",{className:"flex bg-gray-100 rounded-lg p-1"},Q.default.createElement("button",{onClick:()=>le("run"),className:`px-3 py-1 text-sm rounded-md transition-colors ${p==="run"?"bg-white shadow text-gray-900":"text-gray-600"}`},"Selected run"),Q.default.createElement("button",{onClick:()=>le("all"),className:`px-3 py-1 text-sm rounded-md transition-colors ${p==="all"?"bg-white shadow text-gray-900":"text-gray-600"}`},"Sessions")),p==="run"&&l&&Q.default.createElement("span",{className:`px-3 py-1 rounded-full text-sm font-medium ${I(l.status)}`},l.status)),p==="all"?Q.default.createElement("div",{className:"flex-1 overflow-auto p-4 space-y-4"},(()=>{let{totals:$}=K();return Q.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4 space-y-3"},Q.default.createElement("div",{className:"flex items-center gap-3"},Q.default.createElement(mr,{size:40}),Q.default.createElement("div",null,Q.default.createElement("h3",{className:"font-semibold text-gray-900"},e.name),Q.default.createElement("p",{className:"text-xs text-gray-500"},u?`${Te} \u2014 one persisted interaction stream`:"Sessions group this agent\u2019s runs into persisted interaction streams"))),Q.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3"},Q.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},Q.default.createElement("p",{className:"text-xs text-gray-500"},"Runs"),Q.default.createElement("p",{className:"text-lg font-bold text-gray-900"},$.runs)),Q.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},Q.default.createElement("p",{className:"text-xs text-gray-500"},"Success"),Q.default.createElement("p",{className:"text-lg font-bold text-gray-900"},$.runs?Math.round($.completed/$.runs*100):0,"%")),Q.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},Q.default.createElement("p",{className:"text-xs text-gray-500"},"Avg Duration"),Q.default.createElement("p",{className:"text-lg font-bold text-gray-900"},C(Math.round($.avgDuration)))),Q.default.createElement("div",{className:"bg-gray-50 rounded-lg p-3"},Q.default.createElement("p",{className:"text-xs text-gray-500"},"Tokens"),Q.default.createElement("p",{className:"text-lg font-bold text-gray-900"},$.tokens.toLocaleString()))))})(),Q.default.createElement(nl,{agentId:e.id,embedded:!0,selectedSessionId:u?.id??null,onSelectSession:De})):l?Q.default.createElement(Q.default.Fragment,null,Q.default.createElement("div",{className:"p-4 bg-white border-b border-gray-200"},Q.default.createElement("div",{className:"flex items-center space-x-3"},Q.default.createElement(mr,{size:40}),Q.default.createElement("div",null,Q.default.createElement("h3",{className:"font-medium text-gray-900"},e.name," \u2014 Run #",l.id),Q.default.createElement("p",{className:"text-xs text-gray-500"},new Date(l.created_at).toLocaleString())))),Q.default.createElement("div",{ref:B,className:"flex-1 overflow-auto p-6"},Q.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 shadow-sm p-4"},d.length>0?Q.default.createElement(so,{messages:d,darkMode:!1}):Q.default.createElement(so,{darkMode:!1,messages:[{id:`run-${l.id}-input`,role:"user",content:l.input_prompt||l.input_preview,created_at:l.created_at},{id:`run-${l.id}-output`,role:"assistant",content:l.error_message||l.output||l.output_preview||"No response",created_at:l.completed_at||l.created_at}]}))),Q.default.createElement("div",{className:"p-4 bg-white border-t border-gray-200"},Q.default.createElement("div",{className:"flex items-center justify-center space-x-8 text-sm text-gray-500"},Q.default.createElement("span",null,"Duration: ",C(l.duration_ms)),l.total_tokens&&Q.default.createElement("span",null,"Tokens: ",l.total_tokens),l.input_tokens&&l.output_tokens&&Q.default.createElement("span",null,"Input: ",l.input_tokens," / Output: ",l.output_tokens),l.trace_id&&Q.default.createElement("a",{href:Ge(`/traces?trace=${l.trace_id}`),className:"font-mono text-xs text-blue-500 hover:underline",title:`${l.trace_id} \u2014 open in Traces`},"trace:",l.trace_id.slice(0,8)," \u2192")))):(()=>{let{cohorts:$,totals:Ne}=K();return $.length===0?Q.default.createElement("div",{className:"flex-1 flex items-center justify-center"},Q.default.createElement("div",{className:"text-center text-gray-400"},Q.default.createElement(mr,{size:100}),Q.default.createElement("p",{className:"mt-4"},"No runs yet \u2014 run the agent to build its report"))):Q.default.createElement("div",{className:"flex-1 overflow-auto p-6 space-y-5"},Q.default.createElement("div",{className:"flex items-center gap-3"},Q.default.createElement(mr,{size:40}),Q.default.createElement("div",null,Q.default.createElement("h3",{className:"font-semibold text-gray-900"},"Agent Report"),Q.default.createElement("p",{className:"text-xs text-gray-500"},"Recent activity for ",e.name," \u2014 select a run for its full interaction"))),Q.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3"},Q.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},Q.default.createElement("p",{className:"text-xs text-gray-500"},"Runs"),Q.default.createElement("p",{className:"text-xl font-bold text-gray-900"},Ne.runs)),Q.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},Q.default.createElement("p",{className:"text-xs text-gray-500"},"Success"),Q.default.createElement("p",{className:"text-xl font-bold text-gray-900"},Ne.runs?Math.round(Ne.completed/Ne.runs*100):0,"%")),Q.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},Q.default.createElement("p",{className:"text-xs text-gray-500"},"Avg Duration"),Q.default.createElement("p",{className:"text-xl font-bold text-gray-900"},C(Math.round(Ne.avgDuration)))),Q.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-3"},Q.default.createElement("p",{className:"text-xs text-gray-500"},"Tokens"),Q.default.createElement("p",{className:"text-xl font-bold text-gray-900"},Ne.tokens.toLocaleString()))),Ne.models.length>0&&Q.default.createElement("div",{className:"flex items-center gap-2 flex-wrap text-xs"},Q.default.createElement("span",{className:"text-gray-500"},"Models used:"),Ne.models.map(E=>Q.default.createElement("span",{key:E,className:"px-1.5 py-0.5 rounded bg-indigo-50 text-indigo-700 font-mono"},E))),o.length>0&&Q.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},Q.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100"},Q.default.createElement("span",{className:"text-xs uppercase tracking-wide text-gray-400"},"Sessions \u2014 grouped interaction streams")),Q.default.createElement("div",{className:"divide-y divide-gray-100"},o.map(E=>Q.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:()=>De(E),title:"Open this session's interaction stream"},Q.default.createElement("div",{className:"flex items-center gap-2 min-w-0",title:E.display_name},Q.default.createElement("span",{className:"px-2 py-0.5 text-xs font-medium bg-blue-100 text-blue-700 rounded flex-shrink-0"},"SESSION"),Q.default.createElement("span",{className:"text-sm text-gray-900 truncate"},E.agent?.name||E.agent_name),E.action_name&&Q.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)),Q.default.createElement("div",{className:"flex items-center gap-3 text-xs text-gray-400 flex-shrink-0"},Q.default.createElement("span",null,E.message_count," messages"),Q.default.createElement("span",null,(E.tokens?.total||0).toLocaleString()," tokens"),Q.default.createElement("span",null,X(E.last_activity_at))))))),Q.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},Q.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100 flex items-center justify-between"},Q.default.createElement("span",{className:"text-xs uppercase tracking-wide text-gray-400"},"Interactions by instructions \xD7 model"),Q.default.createElement("select",{value:S,onChange:E=>w(E.target.value),className:"text-xs border border-gray-200 rounded px-2 py-1 text-gray-600"},Q.default.createElement("option",{value:"recent"},"Most recent"),Q.default.createElement("option",{value:"longest"},"Longest interactions"))),Q.default.createElement("div",{className:"divide-y divide-gray-100"},$.map(E=>Q.default.createElement("div",{key:E.key},Q.default.createElement("div",{className:"px-4 py-3 hover:bg-gray-50 cursor-pointer",onClick:()=>k(Z=>({...Z,[E.key]:!Z[E.key]})),title:"Show this configuration's runs"},Q.default.createElement("div",{className:"flex items-center gap-2 flex-wrap"},Q.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"),Q.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&&Q.default.createElement("p",{className:"text-xs text-gray-500 mt-1 truncate"},E.instructionsPreview),Q.default.createElement("div",{className:"flex items-center gap-3 mt-1.5 text-xs text-gray-400 flex-wrap gap-y-1"},Q.default.createElement("span",null,E.count," run",E.count>1?"s":""),Q.default.createElement("span",{className:E.failed>0?"text-red-500":"text-green-600"},E.count?Math.round(E.completed/E.count*100):0,"% success"),Q.default.createElement("span",null,"avg ",C(Math.round(E.avgDuration))),Q.default.createElement("span",null,"avg ",Math.round(E.avgTokens).toLocaleString()," tokens"),Q.default.createElement("span",null,"last ",X(E.latest.created_at)))),O[E.key]&&Q.default.createElement("div",{className:"bg-gray-50 divide-y divide-gray-100 border-t border-gray-100"},E.sortedRuns.map(Z=>Q.default.createElement("div",{key:Z.id,className:"px-6 py-2 hover:bg-gray-100 cursor-pointer",onClick:()=>ee(Z.id),title:"Open this run's interaction"},Q.default.createElement("p",{className:"text-xs text-gray-700 truncate"},Z.input_preview||"No input"),Q.default.createElement("div",{className:"flex items-center gap-3 mt-0.5 text-[11px] text-gray-400"},Q.default.createElement("span",{className:Z.status==="failed"?"text-red-500":""},Z.status),Q.default.createElement("span",null,C(Z.duration_ms)),Z.tokens&&Q.default.createElement("span",null,Z.tokens.toLocaleString()," tokens"),Q.default.createElement("span",null,X(Z.created_at)))))))))))})()))}var ze=te(ne());var Mue={productivity:"[+]",development:"<>",research:"[?]",creative:"[*]",data:"[#]",automation:"[>]"};function v_({onUseTemplate:e,onClose:t}){let[r,n]=(0,ze.useState)([]),[a,o]=(0,ze.useState)([]),[i,l]=(0,ze.useState)(""),[s,u]=(0,ze.useState)(null),[c,d]=(0,ze.useState)(!0),[f,p]=(0,ze.useState)(!1),[m,y]=(0,ze.useState)(null);(0,ze.useEffect)(()=>{h()},[i]);let h=async()=>{d(!0);try{let g=new URLSearchParams;i&&g.append("category",i);let x=await(await fetch(`/api/templates?${g}`)).json();n(x.templates),o(x.categories)}catch(g){console.error("Failed to load templates:",g)}finally{d(!1)}},v=async g=>{p(!0),y(null);try{let b=await fetch(`/api/templates/${g.id}/use`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:g.name})});if(b.ok){let x=await b.json();e(x.agent)}else{let x=`Could not create the agent (HTTP ${b.status})`;try{let S=await b.json(),w=S.errors||S.error;w&&(x=Array.isArray(w)?w.join(", "):String(w))}catch{}y(x)}}catch(b){console.error("Failed to create agent from template:",b),y("Could not create the agent \u2014 check your connection and try again.")}finally{p(!1)}};return ze.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4"},ze.default.createElement("div",{className:"bg-white rounded-2xl w-full max-w-5xl max-h-[90vh] flex flex-col overflow-hidden"},ze.default.createElement("div",{className:"px-6 py-4 border-b border-gray-200 flex items-center justify-between"},ze.default.createElement("div",null,ze.default.createElement("h2",{className:"text-xl font-semibold text-gray-900"},"Template Library"),ze.default.createElement("p",{className:"text-sm text-gray-500"},"Start with a pre-configured agent template")),ze.default.createElement("button",{onClick:t,className:"p-2 text-gray-400 hover:text-gray-600 transition-colors"},ze.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ze.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})))),ze.default.createElement("div",{className:"flex-1 flex overflow-hidden"},ze.default.createElement("div",{className:"w-48 border-r border-gray-200 p-4 flex-shrink-0"},ze.default.createElement("h3",{className:"text-xs font-semibold text-gray-400 uppercase mb-3"},"Categories"),ze.default.createElement("div",{className:"space-y-1"},ze.default.createElement("button",{onClick:()=>l(""),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"),a.map(g=>ze.default.createElement("button",{key:g,onClick:()=>l(g),className:`w-full text-left px-3 py-2 rounded-lg text-sm flex items-center space-x-2 transition-colors ${i===g?"bg-red-50 text-red-600":"text-gray-600 hover:bg-gray-50"}`},ze.default.createElement("span",null,Mue[g]||"\u{1F4E6}"),ze.default.createElement("span",{className:"capitalize"},g))))),ze.default.createElement("div",{className:"flex-1 p-6 overflow-auto"},c?ze.default.createElement("div",{className:"flex items-center justify-center h-full"},ze.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"})):r.length>0?ze.default.createElement("div",{className:"grid grid-cols-2 lg:grid-cols-3 gap-4"},r.map(g=>ze.default.createElement("div",{key:g.id,onClick:()=>u(g),className:`bg-white rounded-xl border-2 p-4 cursor-pointer transition-all hover:shadow-lg ${s?.id===g.id?"border-red-500 ring-2 ring-red-100":"border-gray-200 hover:border-gray-300"}`},ze.default.createElement("div",{className:"flex items-start space-x-3"},ze.default.createElement("div",{className:"flex-shrink-0"},ze.default.createElement(mr,{size:60})),ze.default.createElement("div",{className:"flex-1 min-w-0"},ze.default.createElement("div",{className:"flex items-center space-x-2"},ze.default.createElement("span",{className:"text-lg"},g.icon),ze.default.createElement("h3",{className:"font-medium text-gray-900 truncate"},g.name)),ze.default.createElement("p",{className:"text-xs text-gray-500 mt-1 line-clamp-2"},g.description),ze.default.createElement("div",{className:"flex items-center space-x-2 mt-2"},ze.default.createElement("span",{className:"text-xs px-2 py-0.5 bg-gray-100 rounded capitalize"},g.category),g.featured&&ze.default.createElement("span",{className:"text-xs px-2 py-0.5 bg-yellow-100 text-yellow-700 rounded"},"Featured"))))))):ze.default.createElement("div",{className:"text-center py-12 text-gray-500"},"No templates found in this category")),s&&ze.default.createElement("div",{className:"w-80 border-l border-gray-200 p-6 flex-shrink-0 bg-gray-50 overflow-auto"},ze.default.createElement("div",{className:"flex justify-center mb-4"},ze.default.createElement(mr,{size:120})),ze.default.createElement("h3",{className:"text-lg font-semibold text-gray-900 text-center"},s.name),ze.default.createElement("p",{className:"text-sm text-gray-500 text-center mt-1"},s.description),ze.default.createElement("div",{className:"mt-6 space-y-4"},ze.default.createElement("div",null,ze.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Provider / Model"),ze.default.createElement("p",{className:"text-sm text-gray-900"},s.provider," / ",s.model)),s.tools?.length>0&&ze.default.createElement("div",null,ze.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Tools"),ze.default.createElement("div",{className:"flex flex-wrap gap-1 mt-1"},s.tools.map(g=>ze.default.createElement("span",{key:g,className:"text-xs px-2 py-0.5 bg-red-100 text-red-700 rounded"},g)))),ze.default.createElement("div",null,ze.default.createElement("span",{className:"text-xs font-medium text-gray-500 uppercase"},"Usage"),ze.default.createElement("p",{className:"text-sm text-gray-900"},s.usage_count," agents created"))),ze.default.createElement("button",{onClick:()=>v(s),disabled:f,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"},f?"Creating...":"Use This Template"),m&&ze.default.createElement("p",{className:"mt-2 text-sm text-red-600",role:"alert"},m)))))}var je=te(ne());function g_({currentView:e,onNavigate:t,agentCount:r,account:n,user:a,gemVersion:o,assistantEnabled:i=!0}){let{darkMode:l}=kt(),[s,u]=(0,je.useState)(!1),c=(0,je.useRef)(null);(0,je.useEffect)(()=>{function v(g){c.current&&!c.current.contains(g.target)&&u(!1)}return document.addEventListener("mousedown",v),()=>document.removeEventListener("mousedown",v)},[]);let d=n?.name||"My Workspace",f=a?.name||a?.email?.split("@")[0]||"User",p=[...i?[{id:"assistant",label:"Ask ActiveAgents",icon:">"}]:[],{id:"list",label:"Agents",icon:Ut.nav.agents,badge:r},{id:"builder",label:"New Agent",icon:Ut.nav.newAgent},{id:"sandbox",label:"Run Agents",icon:Ut.nav.demo,highlight:!0}],m=[{id:"traces",label:"Traces",icon:Ut.nav.traces},{id:"interactions",label:"Interactions",icon:Ut.nav.interactions},{id:"tools",label:"Tools",icon:Ut.nav.tools},{id:"mcp",label:"MCP Services",icon:Ut.nav.mcp},{id:"metrics",label:"Metrics",icon:Ut.nav.metrics},{id:"evaluations",label:"Evaluations",icon:Ut.nav.evaluations},{id:"replay",label:"Session Replay",icon:Ut.nav.replay}],y=[{id:"organization",label:"Organization",icon:"\u{1F3E2}"},{id:"settings",label:"Settings",icon:"\u2699\uFE0F"}],h=({item:v})=>je.default.createElement("button",{onClick:()=>t(v.id),className:`w-full flex items-center justify-between py-3 rounded-lg text-left transition-colors ${v.indent?"pl-10 pr-4":"px-4"}`,style:{backgroundColor:e===v.id?l?"rgba(239, 68, 68, 0.15)":"#fef2f2":"transparent",color:e===v.id?"#ef4444":l?"#d1d5db":"#374151"},onMouseEnter:g=>{e!==v.id&&(g.currentTarget.style.backgroundColor=l?"#252525":"#f3f4f6")},onMouseLeave:g=>{e!==v.id&&(g.currentTarget.style.backgroundColor="transparent")}},je.default.createElement("div",{className:"flex items-center space-x-3"},je.default.createElement("span",{style:{fontFamily:Fe.mono,fontSize:"12px",width:"20px",textAlign:"center"}},v.icon),je.default.createElement("span",{className:"font-medium"},v.label)),v.badge!==void 0&&je.default.createElement("span",{className:"px-2 py-0.5 text-xs rounded-full",style:{backgroundColor:e===v.id?"#fee2e2":l?"#2a2a2a":"#f3f4f6",color:e===v.id?"#ef4444":l?"#d1d5db":"#4b5563"}},v.badge));return je.default.createElement("aside",{className:"w-64 border-r flex flex-col",style:{backgroundColor:l?"#1a1a1a":"#ffffff",borderColor:l?"#2a2a2a":"#e5e7eb"}},je.default.createElement("div",{className:"h-16 flex items-center px-4 border-b relative",style:{borderColor:l?"#2a2a2a":"#e5e7eb"},ref:c},je.default.createElement("button",{onClick:()=>u(!s),className:"w-full flex items-center justify-between px-2 py-2 rounded-lg transition-colors",style:{backgroundColor:s?l?"#252525":"#f3f4f6":"transparent"}},je.default.createElement("div",{className:"flex items-center space-x-3 min-w-0"},je.default.createElement(mr,{size:28}),je.default.createElement("span",{className:`font-semibold truncate ${l?"text-white":"text-gray-900"}`},d)),je.default.createElement("svg",{className:`w-4 h-4 flex-shrink-0 transition-transform ${s?"rotate-180":""}`,style:{color:l?"#9ca3af":"#6b7280"},fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},je.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"}))),s&&je.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"}},je.default.createElement("div",{className:"px-4 py-3 border-b",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},je.default.createElement("div",{className:"flex items-center space-x-3"},je.default.createElement(mr,{size:32}),je.default.createElement("div",{className:"min-w-0"},je.default.createElement("div",{className:`font-medium truncate ${l?"text-white":"text-gray-900"}`},d)))),je.default.createElement("div",{className:"py-1"},je.default.createElement("button",{onClick:()=>{t("settings"),u(!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"}`},je.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},je.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"}),je.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})),je.default.createElement("span",null,"Settings")),je.default.createElement("button",{onClick:()=>{t("organization"),u(!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"}`},je.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},je.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"})),je.default.createElement("span",null,"Organization"))),je.default.createElement("div",{className:"border-t py-1",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},je.default.createElement("div",{className:`px-4 py-2 flex items-center space-x-3 ${l?"text-gray-300":"text-gray-700"}`},je.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},je.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"})),je.default.createElement("span",{className:"text-sm"},f))))),je.default.createElement("nav",{className:"flex-1 px-4 py-4 space-y-1 overflow-y-auto"},je.default.createElement("div",{className:"space-y-1"},p.map(v=>je.default.createElement(h,{key:v.id,item:v}))),je.default.createElement("div",{className:"pt-4"},je.default.createElement("div",{className:"px-4 pb-2"},je.default.createElement("span",{className:`text-xs font-semibold uppercase tracking-wide ${l?"text-gray-500":"text-gray-400"}`},"Observability")),je.default.createElement("div",{className:"space-y-1"},m.map(v=>je.default.createElement(h,{key:v.id,item:v})))),je.default.createElement("div",{className:"pt-4"},je.default.createElement("div",{className:"px-4 pb-2"},je.default.createElement("span",{className:`text-xs font-semibold uppercase tracking-wide ${l?"text-gray-500":"text-gray-400"}`},"Workspace")),je.default.createElement("div",{className:"space-y-1"},y.map(v=>je.default.createElement(h,{key:v.id,item:v}))))),je.default.createElement("div",{className:"px-4 py-4 border-t",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},je.default.createElement("div",{className:`text-xs font-semibold uppercase mb-3 ${l?"text-gray-500":"text-gray-400"}`},"Resources"),je.default.createElement("div",{className:"space-y-2"},je.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"}`},je.default.createElement("span",{style:{fontFamily:Fe.mono,fontSize:"12px",width:"20px",textAlign:"center"}},Ut.nav.docs),je.default.createElement("span",null,"Documentation")),je.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"}`},je.default.createElement("span",{style:{fontFamily:Fe.mono,fontSize:"12px",width:"20px",textAlign:"center"}},Ut.nav.github),je.default.createElement("span",null,"GitHub")))),je.default.createElement("div",{className:"px-6 py-4 border-t",style:{borderColor:l?"#2a2a2a":"#e5e7eb"}},je.default.createElement("div",{className:`text-xs ${l?"text-gray-500":"text-gray-400"}`},"Active Agent ",o?`v${o}`:"")))}var xt=te(ne());function y_({user:e,account:t}){let{darkMode:r,toggleDarkMode:n}=kt(),[a,o]=(0,xt.useState)(!1),i=(0,xt.useRef)(null);(0,xt.useEffect)(()=>{function d(f){i.current&&!i.current.contains(f.target)&&o(!1)}return document.addEventListener("mousedown",d),()=>document.removeEventListener("mousedown",d)},[]);let l=window.ACTIVE_AGENT_DASHBOARD?.meta?.signOutPath,s=()=>{if(!l)return;let d=document.querySelector('meta[name="csrf-token"]')?.content,f=document.createElement("form");f.method="POST",f.action=l;let p=document.createElement("input");p.type="hidden",p.name="_method",p.value="delete",f.appendChild(p);let m=document.createElement("input");m.type="hidden",m.name="authenticity_token",m.value=d,f.appendChild(m),document.body.appendChild(f),f.submit()},u=e?.name||e?.email?.split("@")[0]||"User",c=u.charAt(0).toUpperCase();return xt.default.createElement("header",{className:"h-16 border-b flex items-center justify-between px-6",style:{backgroundColor:r?"#1a1a1a":"#ffffff",borderColor:r?"#2a2a2a":"#e5e7eb"}},xt.default.createElement("div",{className:"flex items-center space-x-4"}),xt.default.createElement("div",{className:"flex items-center space-x-4"},xt.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?xt.default.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20"},xt.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"})):xt.default.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20"},xt.default.createElement("path",{d:"M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"}))),xt.default.createElement("div",{className:`flex items-center space-x-2 text-sm ${r?"text-gray-400":"text-gray-500"}`},xt.default.createElement("span",{className:"w-2 h-2 bg-green-400 rounded-full"}),xt.default.createElement("span",null,"Connected")),xt.default.createElement("div",{className:"relative",ref:i},xt.default.createElement("button",{onClick:()=>o(!a),className:"flex items-center space-x-2 p-1 rounded-lg transition-colors",style:{backgroundColor:a?r?"#252525":"#f3f4f6":"transparent"}},xt.default.createElement("div",{className:"w-8 h-8 bg-red-100 rounded-full flex items-center justify-center"},xt.default.createElement("span",{className:"text-red-600 font-medium text-sm"},c))),a&&xt.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"}},xt.default.createElement("div",{className:"px-4 py-3 border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},xt.default.createElement("div",{className:"flex items-center space-x-3"},xt.default.createElement("div",{className:"w-10 h-10 bg-red-100 rounded-full flex items-center justify-center"},xt.default.createElement("span",{className:"text-red-600 font-medium"},c)),xt.default.createElement("div",null,xt.default.createElement("div",{className:`font-medium ${r?"text-white":"text-gray-900"}`},u),xt.default.createElement("div",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},e?.email)))),l&&xt.default.createElement("div",{className:"py-1"},xt.default.createElement("button",{onClick:s,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"}`},xt.default.createElement("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},xt.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"})),xt.default.createElement("span",null,"Sign out")))))))}var Ae=te(ne());var $e=te(ne());var h_=150,Pue=e=>e.reduce((t,r)=>t+(Number(r)||0),0),Due=e=>e.length?Pue(e)/e.length:0,Oo=e=>e.reduce((t,r)=>r!=null&&Number(r)>t?Number(r):t,0),x_=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},tc=(e,t)=>[0,25,50,75,100].map(r=>({top:r,label:t(e*(1-r/100))})),Iue=4,Kf=e=>Math.max(Iue,x_(e)),z$=(e,t=2,r=6)=>{let n=e/4;for(let a=t;aMath.abs(n*i-Number((n*i).toFixed(a)))<=n*.1))return a;return r},jue=5.5,zue=12,Lue=(e,t)=>{let r=!!e.flip;if(!(t>0))return r;let n=String(e.label||"").length*jue+zue,a=Number(e.left)/100*t,o=t-a;return r?!(aa):oo},Bue=typeof window>"u"?$e.useEffect:$e.useLayoutEffect,$ue=e=>{let[t,r]=(0,$e.useState)(0);return Bue(()=>{let n=e.current;if(!n)return;let a=()=>r(n.clientWidth);if(a(),typeof ResizeObserver>"u")return window.addEventListener("resize",a),()=>window.removeEventListener("resize",a);let o=new ResizeObserver(a);return o.observe(n),()=>o.disconnect()},[e]),t},rc=(e,t)=>{let r=e.length,n=[];return e.forEach((a,o)=>{if(a==null||Number.isNaN(Number(a)))return;let i=r>1?o/(r-1)*100:50,l=100-Math.min(100,Math.max(0,Number(a)/t*100));n.push(`${i.toFixed(2)},${l.toFixed(2)}`)}),n.join(" ")},Y1=(e,t)=>{let r=rc(e,t);return r?`0,100 ${r} 100,100`:""},L$=(e,t=24)=>{let r=e.length;if(!r)return"";let n=r/t,a=Array.from({length:t},(l,s)=>{let u=Math.floor(s*n),c=Math.max(u+1,Math.floor((s+1)*n));return Due(e.slice(u,c).filter(d=>d!=null))}),o=Math.max(...a),i=Math.min(...a);return a.map((l,s)=>`${(s/(t-1)*100).toFixed(1)},${(26-(o===i?.5:(l-i)/(o-i))*24).toFixed(1)}`).join(" ")},ng=(e,t,r)=>{let n=e.length?e[0].data.length:0;return Array.from({length:n},(a,o)=>({title:r(o),segs:e.map(i=>({h:(Number(i.data[o])||0)/t*100,color:i.color}))}))};function B$({label:e,value:t,unit:r,sub:n,delta:a,deltaColor:o,deltaSub:i,spark:l,sparkColor:s}){return $e.default.createElement(yr,{padding:"14px 16px 12px",style:{display:"flex",flexDirection:"column",gap:6,minWidth:0}},$e.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8}},$e.default.createElement(rt,{size:11,spacing:"0.05em"},e),$e.default.createElement("span",{style:{marginLeft:"auto",fontFamily:ye,fontSize:11,fontWeight:600,color:o,whiteSpace:"nowrap"}},a)),$e.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:6}},$e.default.createElement("span",{style:{fontFamily:ye,fontSize:26,fontWeight:700,lineHeight:1.1,letterSpacing:"-0.01em",color:"var(--color-text-primary)"}},t),r?$e.default.createElement("span",{style:{fontFamily:ye,fontSize:12,color:"var(--color-text-muted)"}},r):null),$e.default.createElement("div",{title:n,style:{fontFamily:ye,fontSize:11,color:"var(--color-text-secondary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},n),$e.default.createElement("div",{style:{display:"flex",alignItems:"flex-end",gap:8,marginTop:2}},$e.default.createElement("svg",{viewBox:"0 0 100 28",preserveAspectRatio:"none","aria-hidden":"true",style:{flex:1,height:28,minWidth:0,display:"block",overflow:"visible"}},$e.default.createElement("polyline",{points:l,fill:"none",stroke:s,strokeWidth:"1.5",strokeLinejoin:"round",vectorEffect:"non-scaling-stroke"})),$e.default.createElement("span",{style:{fontSize:10,color:"var(--color-text-muted)",whiteSpace:"nowrap"}},i)))}function $$({title:e,sub:t,value:r,valueColor:n="var(--color-text-primary)",legend:a=[],ticks:o=[],buckets:i=[],lines:l=[],areas:s=[],markers:u=[],xLabels:c=[],height:d=h_}){let f=(0,$e.useRef)(null),p=$ue(f),m="1px dashed var(--color-text-secondary)";return $e.default.createElement(yr,{padding:"14px 16px 12px",style:{minWidth:0,display:"flex",flexDirection:"column",gap:8}},$e.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,flexWrap:"wrap"}},$e.default.createElement("span",{style:{fontSize:13,fontWeight:600,color:"var(--color-text-primary)"}},e),$e.default.createElement("span",{style:{fontFamily:ye,fontSize:10,color:"var(--color-text-muted)"}},t),$e.default.createElement("span",{style:{marginLeft:"auto",fontFamily:ye,fontSize:12,fontWeight:600,color:n,whiteSpace:"nowrap"}},r)),$e.default.createElement("div",{style:{display:"flex",gap:12,flexWrap:"wrap"}},a.map(y=>$e.default.createElement("span",{key:y.label,style:{display:"inline-flex",alignItems:"center",gap:5,fontFamily:ye,fontSize:10,color:"var(--color-text-secondary)"}},$e.default.createElement("span",{style:{width:8,height:8,borderRadius:2,background:y.color,flexShrink:0}}),y.label))),$e.default.createElement("div",{ref:f,style:{position:"relative",height:d,margin:"6px 0 0 40px"}},o.map(y=>$e.default.createElement("div",{key:y.top,style:{position:"absolute",left:0,right:0,top:`${y.top}%`,borderTop:"1px solid var(--color-border-light)"}},$e.default.createElement("span",{style:{position:"absolute",right:"calc(100% + 6px)",top:-6,whiteSpace:"nowrap",fontFamily:ye,fontSize:10,lineHeight:"12px",color:"var(--color-text-muted)"}},y.label))),i.length>0&&$e.default.createElement("div",{style:{position:"absolute",inset:0,display:"flex",alignItems:"stretch",gap:1}},i.map((y,h)=>$e.default.createElement("div",{key:h,title:y.title,style:{flex:1,minWidth:0,display:"flex",flexDirection:"column-reverse"}},y.segs.map((v,g)=>$e.default.createElement("div",{key:g,style:{height:`${v.h.toFixed(2)}%`,background:v.color,flexShrink:0}}))))),(l.length>0||s.length>0)&&$e.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"}},s.map((y,h)=>$e.default.createElement("polygon",{key:h,points:y.points,fill:y.color,opacity:"0.16"})),l.map((y,h)=>$e.default.createElement("polyline",{key:h,points:y.points,fill:"none",stroke:y.color,strokeWidth:y.width||1.5,strokeLinejoin:"round",strokeLinecap:"round",vectorEffect:"non-scaling-stroke"}))),u.map((y,h)=>{let v=Lue(y,p),g=`${Number(y.left).toFixed(2)}%`;return $e.default.createElement("div",{key:h,style:{position:"absolute",top:0,bottom:0,pointerEvents:"none",...v?{left:0,width:g,borderRight:m}:{left:g,right:0,borderLeft:m}}},$e.default.createElement("span",{style:{position:"absolute",top:-4,[v?"right":"left"]:4,maxWidth:"calc(100% - 8px)",boxSizing:"border-box",overflow:"hidden",textOverflow:"ellipsis",fontFamily:ye,fontSize:9,lineHeight:"12px",color:"var(--color-text-secondary)",whiteSpace:"nowrap",background:"var(--color-card)",padding:"0 4px",borderRadius:3}},y.label))})),$e.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",marginLeft:40,fontFamily:ye,fontSize:10,color:"var(--color-text-muted)"}},c.map((y,h)=>$e.default.createElement("span",{key:h},y))))}function qf({label:e,qualifier:t,meta:r,children:n}){return $e.default.createElement(yr,{padding:0,style:{overflow:"hidden"}},$e.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:8,padding:"10px 14px",borderBottom:"1px solid var(--color-border-light)"}},$e.default.createElement(rt,null,e),t?$e.default.createElement("span",{style:{fontFamily:ye,fontSize:11,color:"var(--color-text-muted)"}},t):null,r?$e.default.createElement("span",{style:{marginLeft:"auto",fontFamily:ye,fontSize:11,color:"var(--color-text-muted)"}},r):null),n)}function b_({template:e,columns:t}){return $e.default.createElement("div",{style:{display:"grid",gridTemplateColumns:e,gap:8,padding:"6px 14px 4px",fontFamily:ye,fontSize:10,textTransform:"uppercase",letterSpacing:"0.05em",color:"var(--color-text-muted)"}},$e.default.createElement("span",null),t.map(r=>$e.default.createElement("span",{key:r,style:{textAlign:"right"}},r)))}function G1({template:e,active:t=!1,onClick:r,title:n,padding:a="8px 14px",children:o}){let i=typeof r=="function";return $e.default.createElement("div",{role:i?"button":void 0,tabIndex:i?0:void 0,"aria-pressed":i?t:void 0,onClick:r,onKeyDown:i?s=>{(s.key==="Enter"||s.key===" ")&&(s.preventDefault(),r(s))}:void 0,title:n,className:i?"hover:bg-[var(--color-hover)]":void 0,style:{display:"grid",gridTemplateColumns:e,gap:8,alignItems:"center",padding:a,borderTop:"1px solid var(--color-border-light)",cursor:i?"pointer":"default",background:t?"var(--color-muted)":void 0}},o)}function w_({children:e,padding:t="8px 14px"}){return $e.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,padding:t,borderTop:"1px solid var(--color-border-light)"}},e)}function ag({children:e}){return $e.default.createElement("div",{style:{padding:"12px 14px",fontFamily:ye,fontSize:11,color:"var(--color-text-muted)"}},e)}function S_({color:e}){return $e.default.createElement("span",{style:{width:8,height:8,borderRadius:2,background:e,flexShrink:0}})}function A_({pct:e,color:t}){return $e.default.createElement("div",{style:{marginTop:5,height:3,borderRadius:999,background:"var(--color-muted)",overflow:"hidden"}},$e.default.createElement("div",{style:{width:`${Math.max(0,Math.min(100,Number(e)||0))}%`,height:"100%",background:t}}))}function k_({pct:e,color:t,width:r=70}){return $e.default.createElement("span",{style:{width:r,height:4,borderRadius:999,background:"var(--color-muted)",overflow:"hidden",flexShrink:0,display:"inline-block"}},$e.default.createElement("span",{style:{display:"block",width:`${Math.max(0,Math.min(100,Number(e)||0))}%`,height:"100%",background:t}}))}function co({children:e,color:t="var(--color-text-primary)",weight:r=400,width:n,style:a}){return $e.default.createElement("span",{style:{fontFamily:ye,fontSize:11,fontWeight:r,textAlign:"right",color:t,width:n,...a}},e)}var H$=6e4,Uue=1180,Gf={"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"}},Fue=Object.keys(Gf).map(e=>({value:e,label:e})),C_="24h",Yf=["var(--chart-1)","var(--chart-2)","var(--chart-3)","var(--chart-5)","var(--chart-4)"],og=[{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)"}],U$=e=>og.find(t=>t.type===e)?.color||"var(--color-text-muted)",Wue=3,Z1="var(--color-text-primary)",Hue={success:"var(--color-success)",error:"var(--color-error)",muted:"var(--color-text-muted)"},Vue=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],N_=e=>String(e).padStart(2,"0"),Xe=e=>e==null||Number.isNaN(Number(e))?0:Number(e),Kue=e=>e.reduce((t,r)=>t+Xe(r),0),F$=e=>`${Xe(e).toFixed(1)}%`,X1=(e,t)=>`${e} ${t}${e===1?"":"s"}`,que=e=>e>=1e3?`${(e/1e3).toFixed(1)}s`:`${Math.round(e)}ms`,Yue=(e,t)=>{let r=Array.isArray(e)?[...e]:[];return t.forEach(n=>{n.name&&!r.some(a=>a.name===n.name)&&r.push(n)}),r},Gue=e=>{let t=String(e.label||"incident"),r=og.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},Xue=e=>{let t=Xe(e);return t<60?`${t}s`:t<3600?`${+(t/60).toFixed(1)} min`:`${+(t/3600).toFixed(1)} h`},W$=async e=>{let t=await fetch(`/api/metrics?${e.toString()}`);if(!t.ok)throw new Error(`Request failed (${t.status})`);return t.json()},Zue=(e,t,r=Date.now())=>{let n=Math.max(1,Xe(t))*1e3,a=Math.max(1,Math.round(Xe(e)*6e4/n)),o=Math.floor(r/n)*n;return Array.from({length:a},(i,l)=>({ts:new Date(o-(a-1-l)*n).toISOString()}))},Que=(e,t)=>{let r=e.summary||{},n=Gf[e.range]||Gf[t]||Gf[C_],a=Xe(e.bucket_seconds)||n.seconds,o=Xe(e.window_minutes)||(e.window_hours?Xe(e.window_hours)*60:n.n*n.seconds/60),i=Array.isArray(e.series)?e.series:Zue(o,a),l=Xe(e.totals?.requests??r.total_requests),s=Xe(e.totals?.cost??r.total_cost),u={requests:l,requests_per_minute:o?l/o:0,p50_ms:null,p95_ms:null,p99_ms:null,errors:Xe(r.errors),error_rate:Xe(r.error_rate),tokens_in:Xe(r.tokens_input),tokens_out:Xe(r.tokens_output),tokens:Xe(r.tokens_used),cost:s,cost_per_request:l?s/l: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(p=>({name:p.name,requests:Xe(p.requests),share_pct:l?Xe(p.requests)/l*100:0,p95_ms:null,error_rate:p.requests?Xe(p.errors)/Xe(p.requests)*100:0,cost:Xe(p.cost),tokens:Xe(p.tokens)})),f=Array.isArray(e.errors_by_type)&&e.errors_by_type.length?e.errors_by_type:og.map(p=>({type:p.type,count:0}));return{range:e.range||t,bucketSeconds:a,windowMinutes:o,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:f,markers:Array.isArray(e.markers)?e.markers:[]}},V$=e=>{let t=Gf[e.range];if(t)return t;let r=Math.max(1,Math.round(e.windowMinutes/60));return{bucket:Xue(e.bucketSeconds),prev:`vs previous ${r}h`,title:`last ${r} hours`}},Jue=e=>{let[t,r]=(0,Ae.useState)(()=>typeof window<"u"&&window.innerWidth{let n=window.matchMedia(`(max-width: ${e-1}px)`),a=()=>r(n.matches);return a(),n.addEventListener("change",a),()=>n.removeEventListener("change",a)},[e]),t};function E_(){let[e,t]=(0,Ae.useState)(C_),[r,n]=(0,Ae.useState)(""),[a,o]=(0,Ae.useState)(null),[i,l]=(0,Ae.useState)(!0),[s,u]=(0,Ae.useState)(null),[c,d]=(0,Ae.useState)(!1),f=(0,Ae.useRef)(0),p=Jue(Uue),m=(0,Ae.useRef)(null),y=(0,Ae.useCallback)(async()=>{let S=++f.current;try{let w=new URLSearchParams({range:e});r&&w.set("agent",r);let[O,k]=await Promise.all([W$(w),r?W$(new URLSearchParams({range:e})).catch(()=>null):null]);if(S!==f.current)return;let A=r?k?.agents:O.agents;Array.isArray(A)&&(m.current=A),o({data:O,ranking:Array.isArray(A)?A:m.current}),u(null)}catch(w){if(S!==f.current)return;u(w.message)}finally{S===f.current&&l(!1)}},[e,r]);(0,Ae.useEffect)(()=>{let S=!1;d(!0),y().finally(()=>{S||d(!1)});let w=setInterval(y,H$);return()=>{S=!0,clearInterval(w)}},[y]);let h=(0,Ae.useMemo)(()=>a?Que(a.data,e):null,[a,e]),v=(0,Ae.useMemo)(()=>h?h.agent?Yue(a.ranking,h.agents):h.agents:[],[h,a]),g=(0,Ae.useMemo)(()=>v.map(S=>S.name).filter(Boolean),[v]),b=(0,Ae.useMemo)(()=>{let S=Object.fromEntries(g.map((O,k)=>[O,Yf[k%Yf.length]])),w=g.length;return(h?h.agents:[]).forEach(O=>{O.name&&!S[O.name]&&(S[O.name]=Yf[w++%Yf.length])}),O=>S[O]||Yf[0]},[g,h]),x=(0,Ae.useMemo)(()=>h?ece(h,b):null,[h,b]);return i?Ae.default.createElement("div",{className:"flex items-center justify-center h-64"},Ae.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2",style:{borderBottomColor:"var(--color-accent-ui)"}})):s||!h?Ae.default.createElement("div",null,Ae.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em",color:Z1}},"Metrics"),Ae.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",s?`: ${s}`:"")):Ae.default.createElement(Rue,{m:h,view:x,railAgents:v,range:Gf[e]?e:C_,agent:r,agentOptions:r&&!g.includes(r)?[...g,r]:g,colorFor:b,narrow:p,pending:c,onRange:t,onAgent:n})}function Rue({m:e,view:t,railAgents:r=e.agents,range:n,agent:a,agentOptions:o,colorFor:i,narrow:l,pending:s=!1,onRange:u,onAgent:c}){let d=V$(e),f=e.totals.requests===0,p=m=>c(a===m?"":m);return Ae.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16,width:"100%",maxWidth:1600,boxSizing:"border-box",color:Z1,fontSize:13}},Ae.default.createElement("div",{style:{display:"flex",alignItems:"flex-end",gap:16,flexWrap:"wrap"}},Ae.default.createElement("div",{style:{flex:1,minWidth:240}},Ae.default.createElement("h1",{style:{margin:0,fontSize:24,fontWeight:700,letterSpacing:"-0.01em"}},"Metrics"),Ae.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,a?` \xB7 ${a}`:"")),Ae.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"}},Ae.default.createElement("select",{value:a,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:Z1,cursor:"pointer"}},Ae.default.createElement("option",{value:""},"All agents"),o.map(m=>Ae.default.createElement("option",{key:m,value:m},m))),e.environment&&Ae.default.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:6,padding:"6px 10px",borderRadius:8,border:"1px solid var(--color-border)",fontFamily:ye,fontSize:11,color:"var(--color-text-cell)",background:"var(--color-card)"}},Ae.default.createElement("span",{style:{color:"var(--color-text-muted)"}},"env"),e.environment),Ae.default.createElement(I1,{options:Fue,value:n,onChange:u}),Ae.default.createElement("span",{title:s?"loading\u2026":`refreshes every ${H$/1e3}s`,style:{display:"inline-flex",alignItems:"center",gap:6,fontFamily:ye,fontSize:11,color:"var(--color-text-muted)"}},Ae.default.createElement("span",{style:{width:7,height:7,borderRadius:"50%",background:s?"var(--color-text-muted)":"var(--color-success)"}}),"live \xB7 ",d.bucket," buckets"))),f?Ae.default.createElement(yr,{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",Ae.default.createElement("div",{style:{marginTop:8,fontFamily:ye,fontSize:11,color:"var(--color-text-muted)"}},a||"all agents"," \xB7 ",d.title)):Ae.default.createElement(Ae.default.Fragment,null,Ae.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:12,opacity:s?.6:1}},t.signals.map(m=>Ae.default.createElement(B$,{key:m.label,...m,deltaSub:d.prev}))),Ae.default.createElement("div",{style:{display:"grid",gridTemplateColumns:l?"minmax(0, 1fr)":"minmax(0, 2.3fr) minmax(300px, 1fr)",gap:16,alignItems:"start",opacity:s?.6:1}},Ae.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:16,minWidth:0}},t.panels.map(m=>Ae.default.createElement($$,{key:m.title,...m,xLabels:t.xLabels,height:h_}))),Ae.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16,minWidth:0}},Ae.default.createElement(qf,{label:"Agents",qualifier:"by requests \xB7 click to filter"},Ae.default.createElement(b_,{template:"minmax(0, 1fr) 44px 44px 40px 52px",columns:["req","p95","err","cost"]}),r.length===0&&Ae.default.createElement(ag,null,"no agents in this window"),r.map(m=>Ae.default.createElement(G1,{key:m.name,template:"minmax(0, 1fr) 44px 44px 40px 52px",active:a===m.name,onClick:()=>p(m.name),title:a===m.name?"Show all agents":`Filter to ${m.name}`},Ae.default.createElement("div",{style:{minWidth:0}},Ae.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0}},Ae.default.createElement(S_,{color:i(m.name)}),Ae.default.createElement("span",{style:{fontSize:12,fontWeight:600,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.name)),Ae.default.createElement(A_,{pct:m.share_pct,color:i(m.name)})),Ae.default.createElement(co,null,hr(m.requests)),Ae.default.createElement(co,{color:"var(--color-text-secondary)"},Qr(m.p95_ms)),Ae.default.createElement(co,{color:Xe(m.error_rate)>=1.5?"var(--color-error-text)":"var(--color-text-secondary)"},F$(m.error_rate)),Ae.default.createElement(co,null,Zv(m.cost))))),Ae.default.createElement(qf,{label:"Models",qualifier:"by tokens"},e.models.length===0&&Ae.default.createElement(ag,null,"no model usage in this window"),e.models.map((m,y)=>Ae.default.createElement(G1,{key:`${m.model}-${m.provider}-${y}`,template:"minmax(0, 1fr) 52px 56px"},Ae.default.createElement("div",{style:{minWidth:0}},Ae.default.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:6,minWidth:0}},Ae.default.createElement("span",{style:{fontFamily:ye,fontSize:11,fontWeight:600,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.model||"unknown"),m.provider&&Ae.default.createElement("span",{style:{fontFamily:ye,fontSize:10,color:"var(--color-text-muted)"}},m.provider)),Ae.default.createElement(A_,{pct:m.share_pct,color:"var(--color-token-in)"})),Ae.default.createElement(co,null,hr(m.tokens)),Ae.default.createElement(co,{color:"var(--color-text-secondary)"},Zv(m.cost))))),Ae.default.createElement(qf,{label:"Slowest actions",qualifier:"p95"},e.actions.length===0&&Ae.default.createElement(ag,null,"no actions in this window"),e.actions.map(m=>Ae.default.createElement(w_,{key:m.name},Ae.default.createElement("span",{title:m.name,style:{flex:1,minWidth:0,fontFamily:ye,fontSize:11,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.name),Ae.default.createElement(k_,{pct:t.slowestP95?Xe(m.p95_ms)/t.slowestP95*100:0,color:i(m.agent)}),Ae.default.createElement(co,{weight:600,width:40},Qr(m.p95_ms))))),Ae.default.createElement(qf,{label:"Tools",qualifier:"by calls"},Ae.default.createElement(b_,{template:"minmax(0, 1fr) 44px 48px 40px",columns:["calls","avg","err"]}),e.tools.length===0&&Ae.default.createElement(ag,null,"no tool calls in this window"),e.tools.map(m=>Ae.default.createElement(G1,{key:m.name,template:"minmax(0, 1fr) 44px 48px 40px",padding:"7px 14px"},Ae.default.createElement("span",{title:m.name,style:{fontFamily:ye,fontSize:11,fontWeight:600,color:"var(--span-tool)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.name),Ae.default.createElement(co,null,hr(m.calls)),Ae.default.createElement(co,{color:"var(--color-text-secondary)"},Qr(m.avg_ms)),Ae.default.createElement(co,{color:Xe(m.error_rate)>=2?"var(--color-error-text)":"var(--color-text-secondary)"},F$(m.error_rate))))),Ae.default.createElement(qf,{label:"Errors by type",meta:`${Math.round(e.totals.errors)} total`},e.errorsByType.map(m=>Ae.default.createElement(w_,{key:m.type},Ae.default.createElement(S_,{color:U$(m.type)}),Ae.default.createElement("span",{style:{flex:1,minWidth:0,fontSize:12,color:"var(--color-text-cell)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},m.type),Ae.default.createElement(k_,{pct:t.errorTotal?Xe(m.count)/t.errorTotal*100:0,color:U$(m.type)}),Ae.default.createElement(co,{weight:600,width:32},Math.round(Xe(m.count))))))))))}function ece(e,t){let{series:r,totals:n,deltas:a}=e,o=r.length,i=V$(e),l=r.map(E=>new Date(E.ts)),s=e.windowMinutes>=2880,u=E=>Number.isNaN(E.getTime())?"":s?`${Vue[E.getDay()]} ${N_(E.getHours())}h`:`${N_(E.getHours())}:${N_(E.getMinutes())}`,c=o?[0,1,2,3,4,5,6].map(E=>E===6?"now":u(l[Math.round(E*(o-1)/6)])):[],d=E=>r.map(Z=>Xe(Z[E])),f=d("requests"),p=d("errors"),m=d("tokens_in"),y=d("tokens_out"),h=d("cost"),v=d("tool_calls"),g=d("tool_errors"),b=E=>r.map(Z=>Z[E]==null?null:Xe(Z[E])),x=b("p50_ms"),S=b("p95_ms"),w=b("p99_ms"),O=r.map(E=>E.requests_by_agent||{}),k=e.agents.map(E=>E.name).filter(Boolean);O.forEach(E=>Object.keys(E).forEach(Z=>{k.includes(Z)||k.push(Z)}));let A=k.length?k.map(E=>({label:E,color:t(E),data:O.map(Z=>Xe(Z[E]))})):[{label:"requests",color:Yf[0],data:f}],M=og.map(E=>({label:E.type,color:E.color,data:r.map(Z=>Xe((Z.errors_by_type||{})[E.type]))})),W=(Xe(e.bucketSeconds)||(o>1?(l[1]-l[0])/1e3:0))*1e3,L=(E,Z)=>{if(!E||o<2||!W)return null;let ge=new Date(E.ts).getTime();if(Number.isNaN(ge))return null;let nt=Math.min(o-1,Math.max(0,Math.floor((ge-l[0].getTime())/W)))/(o-1);return{left:nt*100,label:Z,flip:nt>.55}},H=e.markers.filter(E=>E.kind==="deploy").sort((E,Z)=>new Date(E.ts)-new Date(Z.ts)).slice(-Wue).map(E=>L(E,E.label)).filter(Boolean),D=e.markers.find(E=>E.kind==="incident"),Y=D?L(D,Gue(D)):null,N=Y?[Y]:[],_=Kf(Oo(f)*1.1),z=Kf(Oo(p)*1.15),j=Kf(Math.max(Oo(w),Oo(S),Oo(x))*1.05),P=Kf(Math.max(Oo(m),Oo(y))*1.1),B=x_(Oo(h)*1.1),R=z$(B),F=Kf(Oo(v)*1.1),G=Xe(n.requests),ee=Xe(n.requests_per_minute),fe=Xe(n.errors),de=Xe(n.error_rate),De=Xe(n.tokens)||Xe(n.tokens_in)+Xe(n.tokens_out),le=Xe(n.cost),Te=n.cost_per_request!=null?Xe(n.cost_per_request):G?le/G:0,K=Xe(n.tool_calls),I=n.tool_error_rate!=null?Xe(n.tool_error_rate):K?Xe(n.tool_errors)/K*100:0,C=Xe(e.errorsByType.find(E=>E.type===og[0].type)?.count),T=[{title:"Requests",sub:`per ${i.bucket} \xB7 stacked by agent`,value:`${hr(G)} \xB7 ${ee.toFixed(1)}/min`,legend:A.map(E=>({label:E.label,color:E.color})),ticks:tc(_,hr),buckets:ng(A,_,E=>`${u(l[E])} \xB7 ${Math.round(f[E])} req`),markers:H},{title:"Latency",sub:"generation percentiles",value:`p50 ${Qr(n.p50_ms)}`,legend:[{label:`p50 ${Qr(n.p50_ms)}`,color:"var(--color-token-in)"},{label:`p95 ${Qr(n.p95_ms)}`,color:"var(--color-warning)"},{label:`p99 ${Qr(n.p99_ms)}`,color:"var(--color-error)"}],ticks:tc(j,que),lines:[{points:rc(w,j),color:"var(--color-error)",width:1.5},{points:rc(S,j),color:"var(--color-warning)",width:1.5},{points:rc(x,j),color:"var(--color-token-in)",width:2}],areas:[{points:Y1(x,j),color:"var(--color-token-in)"}],markers:N},{title:"Errors",sub:`per ${i.bucket} \xB7 by type`,value:`${de.toFixed(2)}% \xB7 ${X1(Math.round(fe),"error")}`,valueColor:de>1?"var(--color-error)":Z1,legend:M.map(E=>({label:E.label,color:E.color})),ticks:tc(z,E=>String(Math.round(E))),buckets:ng(M,z,E=>`${u(l[E])} \xB7 ${X1(Math.round(p[E]),"error")}`),markers:N},{title:"Tokens",sub:`per ${i.bucket} \xB7 input / output`,value:`${hr(De)} \xB7 in ${hr(n.tokens_in)} / out ${hr(n.tokens_out)}`,legend:[{label:"input",color:"var(--color-token-in)"},{label:"output",color:"var(--color-token-out)"}],ticks:tc(P,hr),lines:[{points:rc(m,P),color:"var(--color-token-in)",width:1.5},{points:rc(y,P),color:"var(--color-token-out)",width:1.5}],areas:[{points:Y1(m,P),color:"var(--color-token-in)"},{points:Y1(y,P),color:"var(--color-token-out)"}]},{title:"Cost",sub:`estimated \xB7 per ${i.bucket}`,value:`${Zv(le)} \xB7 ${uo(Te)}/req`,legend:[{label:"spend",color:"var(--color-text-secondary)"}],ticks:tc(B,E=>uo(E,R)),buckets:ng([{color:"var(--color-text-secondary)",data:h}],B,E=>`${u(l[E])} \xB7 ${uo(h[E],R)}`)},{title:"Tool calls",sub:`per ${i.bucket} \xB7 MCP + agent-defined`,value:`${hr(K)} \xB7 ${I.toFixed(1)}% errors`,legend:[{label:"calls",color:"var(--span-tool)"},{label:"errors",color:"var(--color-error)"}],ticks:tc(F,hr),buckets:ng([{color:"var(--span-tool)",data:v.map((E,Z)=>Math.max(0,E-g[Z]))},{color:"var(--color-error)",data:g}],F,E=>`${u(l[E])} \xB7 ${X1(Math.round(v[E]),"call")}`)}],X=(E,Z,ge)=>{let Le=E==null?null:Xe(E);return Le==null||Le===0?"muted":Z&&Z(Le)?"success":ge&&ge(Le)?"error":"muted"},$=(E,Z,ge,Le,nt,Bt,ft,En)=>({label:E,value:Z,unit:ge,sub:Le,delta:nt,deltaColor:Hue[Bt],spark:L$(ft),sparkColor:En});return{signals:[$("Requests",hr(G),"",`${ee.toFixed(1)} req/min`,Wf(a.requests_pct),X(a.requests_pct,E=>E>0,null),f,"var(--color-token-in)"),$("Latency",Qr(n.p50_ms),"p50",`p95 ${Qr(n.p95_ms)} \xB7 p99 ${Qr(n.p99_ms)}`,Wf(a.p50_pct),X(a.p50_pct,E=>E<0,E=>E>0),x,"var(--color-token-in)"),$("Error rate",de.toFixed(2),"%",`${X1(Math.round(fe),"error")} \xB7 ${Math.round(C)} rate-limited`,Wf(a.error_rate_pt," pt",1),X(a.error_rate_pt,E=>E<0,E=>E>0),p,"var(--color-error)"),$("Tokens",hr(De),"",`in ${hr(n.tokens_in)} \xB7 out ${hr(n.tokens_out)}`,Wf(a.tokens_pct),"muted",m.map((E,Z)=>E+y[Z]),"var(--color-token-in)"),$("Cost",Zv(le),"",`${uo(Te)} per request`,Wf(a.cost_pct),"muted",h,"var(--color-text-secondary)")],panels:T,xLabels:c,slowestP95:Oo(e.actions.map(E=>E.p95_ms)),errorTotal:Kue(e.errorsByType.map(E=>E.count))}}var ke=te(ne());var tce=6e4,rce=[{value:24,label:"24h"},{value:168,label:"7d"},{value:720,label:"30d"}],K$={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)"}},ig=e=>e==null?"0":e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e),q$=e=>e==null?"\u2014":e>=1e3?`${(e/1e3).toFixed(2)}s`:`${Math.round(e)}ms`,nce=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 __({onOpenServer:e}){let{darkMode:t}=kt(),[r,n]=(0,ke.useState)(null),[a,o]=(0,ke.useState)(!0),[i,l]=(0,ke.useState)(null),[s,u]=(0,ke.useState)("all"),[c,d]=(0,ke.useState)(""),[f,p]=(0,ke.useState)(168),[m,y]=(0,ke.useState)(null),h=(0,ke.useCallback)(async()=>{try{let A=new URLSearchParams({hours:String(f)});s!=="all"&&A.set("origin",s),c.trim()&&A.set("q",c.trim());let M=await fetch(`/api/tools?${A}`);if(!M.ok)throw new Error(`Request failed (${M.status})`);n(await M.json()),l(null)}catch(A){l(A.message)}finally{o(!1)}},[s,c,f]);(0,ke.useEffect)(()=>{let A=setTimeout(h,c?250:0);return()=>clearTimeout(A)},[h,c]),(0,ke.useEffect)(()=>{let A=setInterval(h,tce);return()=>clearInterval(A)},[h]);let v={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"},g=A=>{let M=K$[A]||K$.agent;return{fg:t?M.dark:M.light,bg:t?M.bgDark:M.bgLight}};if(a&&!r)return ke.default.createElement("div",{className:"flex items-center justify-center h-64"},ke.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));if(i&&!r)return ke.default.createElement("div",{style:{padding:"24px"}},ke.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:v.textPrimary,margin:0}},"Tools"),ke.default.createElement("div",{style:{marginTop:"16px",padding:"12px 16px",background:v.errorBg,borderRadius:"8px",color:v.error,fontSize:"14px"}},"Failed to load tools: ",i));let{tools:b=[],summary:x={},origins:S={},sources:w={}}=r||{},O=!w.telemetry&&!w.generations&&!w.messages&&!w.declared,k=({label:A,value:M,hint:W,tone:L})=>ke.default.createElement("div",{style:{background:v.cardBg,borderRadius:"12px",padding:"20px",border:`1px solid ${v.border}`}},ke.default.createElement("div",{style:{fontSize:"11px",color:v.textSecondary,textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:"8px"}},A),ke.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",fontFamily:"monospace",color:L||v.textPrimary}},M),W&&ke.default.createElement("div",{style:{fontSize:"13px",color:v.textSecondary,marginTop:"8px"}},W));return ke.default.createElement("div",{style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)",backgroundColor:v.bg}},ke.default.createElement("div",{style:{padding:"24px 24px 16px 24px",borderBottom:`1px solid ${v.border}`,marginBottom:"16px"}},ke.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:"16px",flexWrap:"wrap"}},ke.default.createElement("div",null,ke.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:v.textPrimary,margin:0}},"Tools"),ke.default.createElement("p",{style:{fontSize:"14px",color:v.textSecondary,marginTop:"4px"}},"Detected from telemetry spans, generation request bodies, and agent records \u2014 nothing to register by hand")),ke.default.createElement("div",{style:{display:"flex",gap:"4px"}},rce.map(A=>ke.default.createElement("button",{key:A.value,onClick:()=>p(A.value),style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${f===A.value?"#ef4444":v.border}`,background:f===A.value?t?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:f===A.value?"#ef4444":v.textSecondary}},A.label))))),ke.default.createElement("div",{style:{padding:"0 24px 24px 24px"}},ke.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:"16px",marginBottom:"16px"}},ke.default.createElement(k,{label:"Tools Detected",value:ig(x.total_tools),hint:`${x.active_tools||0} called in this window`}),ke.default.createElement(k,{label:"Tool Calls",value:ig(x.total_calls),hint:`${q$(x.avg_duration_ms)} average`}),ke.default.createElement(k,{label:"Error Rate",value:`${x.error_rate||0}%`,tone:x.error_rate>5?v.error:v.textPrimary,hint:`${x.total_errors||0} failed call${x.total_errors===1?"":"s"}`}),ke.default.createElement(k,{label:"From MCP",value:ig(x.mcp_tools),hint:`across ${x.mcp_servers_active||0} active server${x.mcp_servers_active===1?"":"s"}`}),ke.default.createElement(k,{label:"Never Called",value:ig(x.unused_tools),hint:"offered or configured, unused"})),ke.default.createElement("div",{style:{display:"flex",gap:"8px",marginBottom:"16px",flexWrap:"wrap",alignItems:"center"}},Object.entries(S).map(([A,M])=>ke.default.createElement("button",{key:A,onClick:()=>u(A),style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${s===A?"#ef4444":v.border}`,background:s===A?t?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:s===A?"#ef4444":v.textSecondary}},M)),ke.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 ${v.border}`,background:v.inputBg,color:v.textPrimary}})),ke.default.createElement("div",{style:{background:v.cardBg,borderRadius:"12px",border:`1px solid ${v.border}`,overflow:"hidden"}},b.length===0?ke.default.createElement("div",{style:{textAlign:"center",padding:"48px 24px",color:v.textSecondary,fontSize:"14px"}},O?"No tool activity yet \u2014 run an agent, or point your app's ActiveAgent telemetry at this workspace":"No tools match these filters"):ke.default.createElement("div",{style:{overflowX:"auto"}},ke.default.createElement("table",{style:{width:"100%",borderCollapse:"collapse",minWidth:"760px"}},ke.default.createElement("thead",null,ke.default.createElement("tr",{style:{textAlign:"left",fontSize:"13px",color:v.textSecondary,borderBottom:`1px solid ${v.border}`}},ke.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500"}},"Tool"),ke.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500"}},"Source"),ke.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Calls"),ke.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Errors"),ke.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Avg"),ke.default.createElement("th",{style:{padding:"12px 16px",fontWeight:"500",textAlign:"right"}},"Last seen"))),ke.default.createElement("tbody",null,b.map((A,M)=>{let W=g(A.origin),L=m===A.name;return ke.default.createElement(ke.default.Fragment,{key:A.name},ke.default.createElement("tr",{onClick:()=>y(L?null:A.name),style:{borderBottom:M{H.stopPropagation(),A.mcp_server&&e&&e(A.mcp_server)},style:{fontSize:"11px",padding:"3px 8px",borderRadius:"6px",border:"none",background:W.bg,color:W.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)),ke.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",color:v.textCell,fontFamily:"monospace"}},ig(A.calls)),ke.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",fontFamily:"monospace",color:A.errors>0?v.error:v.textCell}},A.errors),ke.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",color:v.textCell,fontFamily:"monospace"}},q$(A.avg_duration_ms)),ke.default.createElement("td",{style:{padding:"12px 16px",textAlign:"right",color:v.textMuted,fontSize:"13px"}},nce(A.last_seen))),L&&ke.default.createElement("tr",{style:{borderBottom:Mke.default.createElement("span",{key:A,style:{color:w[A]?v.textSecondary:v.textMuted,opacity:w[A]?1:.5}},w[A]?"\u25CF":"\u25CB"," ",M)))))}function ace({tool:e,colors:t,tone:r,darkMode:n}){let a=({label:o,children:i})=>ke.default.createElement("div",{style:{display:"flex",gap:"12px",fontSize:"13px",alignItems:"baseline"}},ke.default.createElement("span",{style:{color:t.textMuted,minWidth:"108px",fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.05em"}},o),ke.default.createElement("span",{style:{color:t.textCell,flex:1,wordBreak:"break-word"}},i));return ke.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}`}},ke.default.createElement(a,{label:"Full name"},ke.default.createElement("code",{style:{fontFamily:"monospace"}},e.name)),e.description&&ke.default.createElement(a,{label:"Description"},e.description),ke.default.createElement(a,{label:"Parameters"},e.parameters?.length>0?ke.default.createElement("code",{style:{fontFamily:"monospace",color:r.fg}},e.parameters.join(", ")):ke.default.createElement("span",{style:{color:t.textMuted}},"none recorded")),ke.default.createElement(a,{label:"Agents"},e.agents?.length>0?e.agents.join(", "):ke.default.createElement("span",{style:{color:t.textMuted}},"\u2014")),e.configured_by?.length>0&&ke.default.createElement(a,{label:"Configured by"},e.configured_by.join(", ")),ke.default.createElement(a,{label:"Call breakdown"},ke.default.createElement("span",{style:{fontFamily:"monospace"}},e.traced_calls," traced \xB7 ",e.requested," requested \xB7 ",e.results," results")),e.sample_arguments&&ke.default.createElement(a,{label:"Last arguments"},ke.default.createElement("code",{style:{fontFamily:"monospace",fontSize:"12px",color:t.textMuted}},e.sample_arguments)),e.last_error&&ke.default.createElement(a,{label:"Last error"},ke.default.createElement("span",{style:{color:t.error}},e.last_error)),ke.default.createElement(a,{label:"Detected from"},e.detected_from?.join(", ")||"\u2014"))}var Oe=te(ne());var oce=6e4,ice=[{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"}],Y$={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)"}},lg=e=>e==null?"0":e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e);function O_({focusServer:e,onOpenTools:t}){let{darkMode:r}=kt(),[n,a]=(0,Oe.useState)(null),[o,i]=(0,Oe.useState)(!0),[l,s]=(0,Oe.useState)(null),[u,c]=(0,Oe.useState)("all"),[d,f]=(0,Oe.useState)(168),[p,m]=(0,Oe.useState)(e||null),[y,h]=(0,Oe.useState)(null),[v,g]=(0,Oe.useState)(null),b=(0,Oe.useCallback)(async()=>{try{let D=await fetch(`/api/mcp_servers?hours=${d}`);if(!D.ok)throw new Error(`Request failed (${D.status})`);a(await D.json()),s(null)}catch(D){s(D.message)}finally{i(!1)}},[d]);(0,Oe.useEffect)(()=>{b();let D=setInterval(b,oce);return()=>clearInterval(D)},[b]),(0,Oe.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=D=>{let Y=Y$[D]||Y$.available;return{fg:r?Y.dark:Y.light,bg:r?Y.bgDark:Y.bgLight}},w=async D=>{h(D.key),g(null);try{let Y=await fetch(`/api/mcp_servers/${encodeURIComponent(D.key)}/launch`,{method:"POST",headers:{"Content-Type":"application/json","X-CSRF-Token":document.querySelector('meta[name="csrf-token"]')?.content||""}}),N=await Y.json();if(!Y.ok)throw new Error(N.reason||N.error||`Launch failed (${Y.status})`);g({kind:"ok",text:`${D.name} is starting in a sandbox (${N.sandbox.session_id.slice(0,8)}\u2026)`}),b()}catch(Y){g({kind:"error",text:Y.message})}finally{h(null)}};if(o&&!n)return Oe.default.createElement("div",{className:"flex items-center justify-center h-64"},Oe.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}));if(l&&!n)return Oe.default.createElement("div",{style:{padding:"24px"}},Oe.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:x.textPrimary,margin:0}},"MCP Services"),Oe.default.createElement("div",{style:{marginTop:"16px",padding:"12px 16px",background:x.errorBg,borderRadius:"8px",color:x.error,fontSize:"14px"}},"Failed to load MCP services: ",l));let{servers:O=[],summary:k={},sandboxes:A=[],statuses:M={}}=n||{},W=u==="all"?O:O.filter(D=>D.status===u),L=new Set(A.flatMap(D=>D.mcp_servers||[])),H=({label:D,value:Y,hint:N})=>Oe.default.createElement("div",{style:{background:x.cardBg,borderRadius:"12px",padding:"20px",border:`1px solid ${x.border}`}},Oe.default.createElement("div",{style:{fontSize:"11px",color:x.textSecondary,textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:"8px"}},D),Oe.default.createElement("div",{style:{fontSize:"32px",fontWeight:"bold",fontFamily:"monospace",color:x.textPrimary}},Y),N&&Oe.default.createElement("div",{style:{fontSize:"13px",color:x.textSecondary,marginTop:"8px"}},N));return Oe.default.createElement("div",{style:{borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)",backgroundColor:x.bg}},Oe.default.createElement("div",{style:{padding:"24px 24px 16px 24px",borderBottom:`1px solid ${x.border}`,marginBottom:"16px"}},Oe.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:"16px",flexWrap:"wrap"}},Oe.default.createElement("div",null,Oe.default.createElement("h1",{style:{fontSize:"24px",fontWeight:"bold",color:x.textPrimary,margin:0}},"MCP Services"),Oe.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")),Oe.default.createElement("div",{style:{display:"flex",gap:"4px"}},ice.map(D=>Oe.default.createElement("button",{key:D.value,onClick:()=>f(D.value),style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${d===D.value?"#ef4444":x.border}`,background:d===D.value?r?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:d===D.value?"#ef4444":x.textSecondary}},D.label))))),Oe.default.createElement("div",{style:{padding:"0 24px 24px 24px"}},Oe.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:"16px",marginBottom:"16px"}},Oe.default.createElement(H,{label:"Active",value:lg(k.active),hint:"called in this window"}),Oe.default.createElement(H,{label:"Configured",value:lg(k.configured),hint:"declared, no traffic yet"}),Oe.default.createElement(H,{label:"Available",value:lg(k.available),hint:"defaults you can connect"}),Oe.default.createElement(H,{label:"Tool Calls",value:lg(k.total_calls),hint:"through MCP servers"})),v&&Oe.default.createElement("div",{style:{marginBottom:"16px",padding:"12px 16px",borderRadius:"8px",fontSize:"14px",background:v.kind==="error"?x.errorBg:r?"rgba(34,197,94,0.15)":"#f0fdf4",color:v.kind==="error"?x.error:r?"#86efac":"#15803d"}},v.text),Oe.default.createElement("div",{style:{display:"flex",gap:"8px",marginBottom:"16px",flexWrap:"wrap"}},lce.map(D=>Oe.default.createElement("button",{key:D.value,onClick:()=>c(D.value),title:M[D.value]||"Every MCP service known to this workspace",style:{padding:"6px 12px",fontSize:"13px",borderRadius:"6px",cursor:"pointer",border:`1px solid ${u===D.value?"#ef4444":x.border}`,background:u===D.value?r?"rgba(239,68,68,0.15)":"#fef2f2":"transparent",color:u===D.value?"#ef4444":x.textSecondary}},D.label))),Oe.default.createElement("div",{style:{display:"grid",gap:"12px"}},W.length===0?Oe.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"):W.map(D=>{let Y=S(D.status),N=p===D.key,_=L.has(D.key);return Oe.default.createElement("div",{key:D.key,style:{background:x.cardBg,borderRadius:"12px",border:`1px solid ${N?Y.fg:x.border}`,overflow:"hidden"}},Oe.default.createElement("div",{onClick:()=>m(N?null:D.key),style:{padding:"16px 20px",cursor:"pointer",display:"flex",alignItems:"center",gap:"16px",flexWrap:"wrap"}},Oe.default.createElement("div",{style:{flex:1,minWidth:"220px"}},Oe.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}},Oe.default.createElement("span",{style:{fontSize:"15px",fontWeight:"600",color:x.textPrimary}},D.name),Oe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:Y.bg,color:Y.fg,textTransform:"uppercase",letterSpacing:"0.04em"}},D.status),D.first_party&&Oe.default.createElement("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r?"rgba(239,68,68,0.15)":"#fef2f2",color:"#ef4444"}},"first-party"),!D.known&&Oe.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"),_&&Oe.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")),D.description&&Oe.default.createElement("div",{style:{fontSize:"13px",color:x.textSecondary,marginTop:"4px"}},D.description)),Oe.default.createElement("div",{style:{display:"flex",gap:"24px",alignItems:"center"}},Oe.default.createElement("div",{style:{textAlign:"right"}},Oe.default.createElement("div",{style:{fontSize:"18px",fontFamily:"monospace",fontWeight:"600",color:x.textPrimary}},lg(D.calls)),Oe.default.createElement("div",{style:{fontSize:"11px",color:x.textMuted}},"calls")),Oe.default.createElement("div",{style:{textAlign:"right"}},Oe.default.createElement("div",{style:{fontSize:"18px",fontFamily:"monospace",fontWeight:"600",color:D.errors>0?x.error:x.textPrimary}},D.errors||0),Oe.default.createElement("div",{style:{fontSize:"11px",color:x.textMuted}},"errors")),D.launchable&&Oe.default.createElement("button",{onClick:z=>{z.stopPropagation(),w(D)},disabled:y===D.key,style:{padding:"8px 14px",fontSize:"13px",borderRadius:"6px",border:"none",background:y===D.key?x.borderLight:"#ef4444",color:y===D.key?x.textMuted:"#ffffff",cursor:y===D.key?"wait":"pointer",fontWeight:"500",whiteSpace:"nowrap"},title:`Start ${D.name} in a sandbox session`},y===D.key?"Starting\u2026":_?"Start another":"Start in sandbox"))),N&&Oe.default.createElement(sce,{server:D,colors:x,tone:Y,onOpenTools:t}))})),A.length>0&&Oe.default.createElement("div",{style:{marginTop:"24px",background:x.cardBg,borderRadius:"12px",border:`1px solid ${x.border}`,padding:"20px"}},Oe.default.createElement("h3",{style:{fontSize:"16px",fontWeight:"600",color:x.textPrimary,margin:"0 0 12px 0"}},"Running sandboxes"),Oe.default.createElement("div",{style:{display:"grid",gap:"8px"}},A.map(D=>Oe.default.createElement("div",{key:D.session_id,style:{display:"flex",justifyContent:"space-between",gap:"12px",fontSize:"13px",color:x.textCell,flexWrap:"wrap"}},Oe.default.createElement("span",{style:{fontFamily:"monospace"}},(D.mcp_servers||[]).join(", ")||D.sandbox_type),Oe.default.createElement("span",{style:{color:x.textMuted}},D.status," \xB7 ",D.runs_count,"/",D.max_runs," runs \xB7 expires ",new Date(D.expires_at).toLocaleTimeString())))))))}function sce({server:e,colors:t,tone:r,onOpenTools:n}){let a=({label:i,children:l})=>Oe.default.createElement("div",{style:{display:"flex",gap:"12px",fontSize:"13px",alignItems:"baseline"}},Oe.default.createElement("span",{style:{color:t.textMuted,minWidth:"120px",fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.05em"}},i),Oe.default.createElement("span",{style:{color:t.textCell,flex:1,wordBreak:"break-word"}},l)),o=e.command||e.url;return Oe.default.createElement("div",{style:{padding:"0 20px 20px 20px",display:"grid",gap:"10px"}},Oe.default.createElement("div",{style:{height:"1px",background:t.borderLight,marginBottom:"4px"}}),o&&Oe.default.createElement(a,{label:e.transport==="http"?"Endpoint":"Command"},Oe.default.createElement("code",{style:{fontFamily:"monospace",fontSize:"12px",padding:"4px 8px",borderRadius:"4px",background:t.codeBg,display:"inline-block"}},o)),e.transport&&Oe.default.createElement(a,{label:"Transport"},e.transport),e.categories?.length>0&&Oe.default.createElement(a,{label:"Categories"},e.categories.join(", ")),e.requires_credentials?.length>0&&Oe.default.createElement(a,{label:"Requires"},e.requires_credentials.join(", ")),Oe.default.createElement(a,{label:e.tool_count>0?"Tools used":"Tools offered"},e.tools?.length>0?Oe.default.createElement("span",{style:{display:"flex",gap:"6px",flexWrap:"wrap"}},e.tools.map(i=>Oe.default.createElement("code",{key:i,style:{fontFamily:"monospace",fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:r.bg,color:r.fg}},i))):Oe.default.createElement("span",{style:{color:t.textMuted}},"none recorded")),e.agents?.length>0&&Oe.default.createElement(a,{label:"Used by"},e.agents.join(", ")),e.configured_by?.length>0&&Oe.default.createElement(a,{label:"Configured by"},e.configured_by.join(", ")),e.last_seen&&Oe.default.createElement(a,{label:"Last call"},new Date(e.last_seen).toLocaleString()),Oe.default.createElement("div",{style:{display:"flex",gap:"12px",marginTop:"4px",flexWrap:"wrap"}},e.docs_url&&Oe.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&&Oe.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 q=te(ne());var ks=te(ne());var J1={logger:typeof console<"u"?console:void 0,WebSocket:typeof WebSocket<"u"?WebSocket:void 0},xr={log(...e){this.enabled&&(e.push(Date.now()),J1.logger.log("[ActionCable]",...e))}},ug=()=>new Date().getTime(),Q1=e=>(ug()-e)/1e3,cg=class{constructor(t){this.visibilityDidChange=this.visibilityDidChange.bind(this),this.connection=t,this.reconnectAttempts=0}start(){this.isRunning()||(this.startedAt=ug(),delete this.stoppedAt,this.startPolling(),addEventListener("visibilitychange",this.visibilityDidChange),xr.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`))}stop(){this.isRunning()&&(this.stoppedAt=ug(),this.stopPolling(),removeEventListener("visibilitychange",this.visibilityDidChange),xr.log("ConnectionMonitor stopped"))}isRunning(){return this.startedAt&&!this.stoppedAt}recordMessage(){this.pingedAt=ug()}recordConnect(){this.reconnectAttempts=0,delete this.disconnectedAt,xr.log("ConnectionMonitor recorded connect")}recordDisconnect(){this.disconnectedAt=ug(),xr.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)),o=(this.reconnectAttempts===0?1:r)*Math.random();return t*1e3*n*(1+o)}reconnectIfStale(){this.connectionIsStale()&&(xr.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${Q1(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`),this.reconnectAttempts++,this.disconnectedRecently()?xr.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${Q1(this.disconnectedAt)} s`):(xr.log("ConnectionMonitor reopening"),this.connection.reopen()))}get refreshedAt(){return this.pingedAt?this.pingedAt:this.startedAt}connectionIsStale(){return Q1(this.refreshedAt)>this.constructor.staleThreshold}disconnectedRecently(){return this.disconnectedAt&&Q1(this.disconnectedAt){(this.connectionIsStale()||!this.connection.isOpen())&&(xr.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`),this.connection.reopen())}),200)}};cg.staleThreshold=6;cg.reconnectionBackoffRate=.15;var X$={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:sg,protocols:T_}=X$,uce=T_.slice(0,T_.length-1),G$=[].indexOf,dg=class{constructor(t){this.open=this.open.bind(this),this.consumer=t,this.subscriptions=this.consumer.subscriptions,this.monitor=new cg(this),this.disconnected=!0}send(t){return this.isOpen()?(this.webSocket.send(JSON.stringify(t)),!0):!1}open(){if(this.isActive())return xr.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`),!1;{let t=[...T_,...this.consumer.subprotocols||[]];return xr.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${t}`),this.webSocket&&this.uninstallEventHandlers(),this.webSocket=new J1.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(xr.log(`Reopening WebSocket, current state is ${this.getState()}`),this.isActive())try{return this.close()}catch(t){xr.log("Failed to reopen WebSocket",t)}finally{xr.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 G$.call(uce,this.getProtocol())>=0}isState(...t){return G$.call(t,this.getState())>=0}getState(){if(this.webSocket){for(let t in J1.WebSocket)if(J1.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(){}}};dg.reopenDelay=500;dg.prototype.events={message(e){if(!this.isProtocolSupported())return;let{identifier:t,message:r,reason:n,reconnect:a,type:o}=JSON.parse(e.data);switch(this.monitor.recordMessage(),o){case sg.welcome:return this.triedToReconnect()&&(this.reconnectAttempted=!0),this.monitor.recordConnect(),this.subscriptions.reload();case sg.disconnect:return xr.log(`Disconnecting. Reason: ${n}`),this.close({allowReconnect:a});case sg.ping:return null;case sg.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 sg.rejection:return this.subscriptions.reject(t);default:return this.subscriptions.notify(t,"received",r)}},open(){if(xr.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`),this.disconnected=!1,!this.isProtocolSupported())return xr.log("Protocol is unsupported. Stopping monitor and disconnecting."),this.close({allowReconnect:!1})},close(e){if(xr.log("WebSocket onclose event"),!this.disconnected)return this.disconnected=!0,this.monitor.recordDisconnect(),this.subscriptions.notifyAll("disconnected",{willAttemptReconnect:this.monitor.isRunning()})},error(){xr.log("WebSocket onerror event")}};var cce=function(e,t){if(t!=null)for(let r in t){let n=t[r];e[r]=n}return e},M_=class{constructor(t,r={},n){this.consumer=t,this.identifier=JSON.stringify(r),cce(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)}},P_=class{constructor(t){this.subscriptions=t,this.pendingSubscriptions=[]}guarantee(t){this.pendingSubscriptions.indexOf(t)==-1?(xr.log(`SubscriptionGuarantor guaranteeing ${t.identifier}`),this.pendingSubscriptions.push(t)):xr.log(`SubscriptionGuarantor already guaranteeing ${t.identifier}`),this.startGuaranteeing()}forget(t){xr.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=>{xr.log(`SubscriptionGuarantor resubscribing ${t.identifier}`),this.subscriptions.subscribe(t)}))}),500)}},D_=class{constructor(t){this.consumer=t,this.guarantor=new P_(this),this.subscriptions=[]}create(t,r){let n=t,a=typeof n=="object"?n:{channel:n},o=new M_(this.consumer,a,r);return this.add(o)}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 a;return typeof t=="string"?a=this.findAll(t):a=[t],a.map((o=>typeof o[r]=="function"?o[r](...n):void 0))}subscribe(t){this.sendCommand(t,"subscribe")&&this.guarantor.guarantee(t)}confirmSubscription(t){xr.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})}},I_=class{constructor(t){this._url=t,this.subscriptions=new D_(this),this.connection=new dg(this),this.subprotocols=[]}get url(){return dce(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 dce(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 Z$(e=fce("url")||X$.default_mount_path){return new I_(e)}function fce(e){let t=document.head.querySelector(`meta[name='action-cable-${e}']`);if(t)return t.getAttribute("content")}var R1=null;function pce(){if(R1===null)try{R1=Z$()}catch{R1=!1}return R1||null}function Q$(e,t,r,n=!0){let a=(0,ks.useRef)(null),o=(0,ks.useRef)(r);return(0,ks.useEffect)(()=>{o.current=r},[r]),(0,ks.useEffect)(()=>{if(!n||!e)return;let l=pce();return a.current=l.subscriptions.create({channel:e,...t},{connected(){console.log(`[ActionCable] Connected to ${e}`,t)},disconnected(){console.log(`[ActionCable] Disconnected from ${e}`)},received(s){console.log(`[ActionCable] Received on ${e}:`,s),o.current&&o.current(s)},rejected(){console.warn(`[ActionCable] Subscription rejected for ${e}`)}}),()=>{a.current&&(console.log(`[ActionCable] Unsubscribing from ${e}`),a.current.unsubscribe(),a.current=null)}},[e,JSON.stringify(t),n]),{send:(0,ks.useCallback)((l,s)=>{a.current&&a.current.perform(l,s)},[])}}var ew=[{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"}],mce={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"}]},J$={max_runs:10,timeout_seconds:300,session_duration_minutes:15};function j_({initialType:e="playwright_mcp",onClose:t}){let[r,n]=(0,q.useState)(e),[a,o]=(0,q.useState)(null),[i,l]=(0,q.useState)(""),[s,u]=(0,q.useState)([]),[c,d]=(0,q.useState)(null),[f,p]=(0,q.useState)(!1),[m,y]=(0,q.useState)(!1),[h,v]=(0,q.useState)(null),[g,b]=(0,q.useState)(null),[x,S]=(0,q.useState)(!1),[w,O]=(0,q.useState)(null),[k,A]=(0,q.useState)(!1),M=(0,q.useRef)(null),[W,L]=(0,q.useState)(["anthropic"]),[H,D]=(0,q.useState)(!1),[Y,N]=(0,q.useState)({}),[_,z]=(0,q.useState)([]),j=(0,q.useCallback)(T=>{switch(console.log("[SandboxRunner] Received ActionCable message:",T),T.type){case"run_started":H?N(X=>({...X,[T.provider]:{status:"running",started_at:T.started_at,provider:T.provider}})):d(X=>({...X,status:"running",provider:T.provider}));break;case"run_complete":H?(N(X=>({...X,[T.provider]:{...T.run,provider:T.provider}})),z(X=>X.filter($=>$!==T.provider)),T.sandbox&&(o(T.sandbox),u(T.sandbox.runs||[]))):(d(T.run),p(!1),T.sandbox&&(o(T.sandbox),u(T.sandbox.runs||[]))),z(X=>{let $=X.filter(Ne=>Ne!==T.provider);return $.length===0&&p(!1),$});break;case"run_error":H?(N(X=>({...X,[T.provider]:{status:"failed",error:T.error,provider:T.provider}})),z(X=>X.filter($=>$!==T.provider))):(d(X=>({...X,status:"failed",error:T.error})),p(!1)),T.sandbox&&o(T.sandbox);break}},[H]);Q$("SandboxChannel",{session_id:a?.session_id},j,!!a?.session_id),(0,q.useEffect)(()=>{B(),P()},[r]);let P=async()=>{try{let T=await fetch("/api/usage");if(T.ok){let X=await T.json();O(X.usage)}}catch{console.log("Could not fetch usage (user may not be authenticated)")}};(0,q.useEffect)(()=>{if(!a?.expires_at)return;let T=setInterval(()=>{let X=new Date,$=new Date(a.expires_at),Ne=Math.max(0,Math.floor(($-X)/1e3));b(Ne),Ne===0&&(o(E=>({...E,status:"expired"})),clearInterval(T))},1e3);return()=>clearInterval(T)},[a?.expires_at]),(0,q.useEffect)(()=>{M.current&&(M.current.scrollTop=M.current.scrollHeight)},[c?.result]);let B=async()=>{y(!0),v(null);try{let T=await fetch("/api/sandboxes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sandbox_type:r})});if(!T.ok)throw new Error("Failed to create sandbox session");let X=await T.json();o(X.sandbox),u([]),d(null)}catch(T){v(T.message)}finally{y(!1)}},R=async()=>{!i.trim()||f||!a||(H&&W.length>1?await G():await F(W[0]||"anthropic"))},F=async T=>{p(!0),d({status:"running",task:i,provider:T,result:"",started_at:new Date().toISOString()});try{let X=await fetch(`/api/sandboxes/${a.session_id}/run`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({task:i,provider:T})}),$=await X.json();if(X.status===402&&$.upgrade_required){O($.usage),S(!0),d(Ne=>({...Ne,status:"failed",error:$.message||"Plan limit reached"})),p(!1);return}if(!X.ok)throw new Error($.error||"Task execution failed");$.usage&&O($.usage),De($.run_id)}catch(X){d($=>({...$,status:"failed",error:X.message})),p(!1)}},G=async()=>{p(!0),z([...W]),N({});let T={};W.forEach(X=>{T[X]={status:"running",result:"",started_at:new Date().toISOString()}}),N(T);try{let X=await fetch("/api/sandboxes/compare",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({task:i,providers:W,sandbox_id:a?.session_id,sandbox_type:r})});if(!X.ok){let Ne=await X.json();throw new Error(Ne.error||"Comparison failed")}let $=await X.json();$.sandbox&&o($.sandbox),ee(W,$.sandbox?.session_id||a?.session_id,$.sandbox?.runs_count??a?.runs_count??0)}catch(X){W.forEach($=>{N(Ne=>({...Ne,[$]:{status:"failed",error:X.message}}))}),p(!1),z([])}},ee=(T,X,$)=>{if(!X)return;let Ne=async()=>{try{let E=await fetch(`/api/sandboxes/${X}`);if(!E.ok)throw new Error(`HTTP ${E.status}`);let Z=await E.json();o(Z.sandbox);let ge=Z.sandbox.runs||[];u(ge);let Le=new Set;if(ge.slice($).forEach(nt=>{nt.provider&&(N(Bt=>({...Bt,[nt.provider]:{...nt,provider:nt.provider}})),(nt.status==="completed"||nt.status==="failed")&&Le.add(nt.provider))}),T.every(nt=>Le.has(nt))){p(!1),z([]);return}setTimeout(Ne,1e3)}catch(E){console.error("Comparison polling failed:",E),p(!1),z([])}};setTimeout(Ne,1e3)},fe=async()=>{if(a?.session_id)try{let X=await(await fetch(`/api/sandboxes/${a.session_id}`)).json();o(X.sandbox),u(X.sandbox.runs||[]),(X.sandbox.runs||[]).forEach(E=>{E.provider&&N(Z=>({...Z,[E.provider]:{...E,provider:E.provider}}))}),W.every(E=>{let Z=Y[E];return Z?.status==="completed"||Z?.status==="failed"})&&(p(!1),z([]))}catch(T){console.error("Polling error:",T)}},de=T=>{L(X=>X.includes(T)?X.length===1?X:X.filter($=>$!==T):[...X,T])},De=async T=>{let X=async()=>{try{let Ne=await(await fetch(`/api/sandboxes/${a.session_id}`)).json();o(Ne.sandbox);let E=Ne.sandbox.runs||[],Z=E[E.length-1];if(Z&&(d(Z),u(E),Z.status==="completed"||Z.status==="failed")){p(!1);return}setTimeout(X,1e3)}catch{p(!1)}};X()},le=T=>{T.key==="Enter"&&(T.metaKey||T.ctrlKey)&&R()},Te=T=>{if(!T)return"--:--";let X=Math.floor(T/60),$=T%60;return`${X}:${$.toString().padStart(2,"0")}`},K=T=>{switch(T){case"completed":return"text-green-600 bg-green-100";case"failed":return"text-red-600 bg-red-100";case"running":return"text-blue-600 bg-blue-100";case"ready":return"text-emerald-600 bg-emerald-100";case"expired":return"text-orange-600 bg-orange-100";default:return"text-gray-600 bg-gray-100"}},I=a?.status==="ready"&&a?.runs_count{A(!0);try{await Vf({planSlug:"pro",billingInterval:T})}catch(X){console.error("Checkout error:",X),v(X.message||"Failed to initiate checkout. Please try again."),A(!1)}};return q.default.createElement("div",{className:"h-full flex flex-col bg-gray-50"},q.default.createElement("div",{className:"bg-white border-b border-gray-200 px-6 py-4"},q.default.createElement("div",{className:"flex items-center justify-between"},q.default.createElement("div",{className:"flex items-center space-x-4"},q.default.createElement(mr,{size:48,appearance:{hat:"fedora",hatAccessory:"theaterMasks",heldItem:"browser"}}),q.default.createElement("div",null,q.default.createElement("h1",{className:"text-xl font-semibold text-gray-900"},"PlaywrightMCP Demo"),q.default.createElement("p",{className:"text-sm text-gray-500"},"Try browser automation for free - no account required"))),q.default.createElement("div",{className:"flex items-center space-x-4"},a&&q.default.createElement("div",{className:"flex items-center space-x-3 text-sm"},q.default.createElement("span",{className:`px-2 py-1 rounded-full text-xs font-medium ${K(a.status)}`},a.status),q.default.createElement("span",{className:"text-gray-500"},a.runs_count,"/",a.max_runs," runs"),q.default.createElement("span",{className:`font-mono ${g<60?"text-red-500":"text-gray-500"}`},Te(g))),t&&q.default.createElement("button",{onClick:t,className:"text-gray-400 hover:text-gray-600"},q.default.createElement("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},q.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})))))),q.default.createElement("div",{className:"flex-1 p-6 overflow-hidden"},q.default.createElement("div",{className:"grid grid-cols-3 gap-6 h-full"},q.default.createElement("div",{className:"col-span-2 flex flex-col space-y-4"},q.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},q.default.createElement("textarea",{value:i,onChange:T=>l(T.target.value),onKeyDown:le,placeholder:"Describe what you want the browser agent to do...",rows:3,disabled:!I,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"}),q.default.createElement("div",{className:"flex items-center justify-between mt-3"},q.default.createElement("span",{className:"text-xs text-gray-400"},"Press ",q.default.createElement("kbd",{className:"px-1.5 py-0.5 bg-gray-100 rounded text-gray-600"},"Cmd")," + ",q.default.createElement("kbd",{className:"px-1.5 py-0.5 bg-gray-100 rounded text-gray-600"},"Enter")," to run"),q.default.createElement("button",{onClick:R,disabled:!i.trim()||!I,className:`flex items-center space-x-2 px-6 py-2 rounded-lg transition-colors ${i.trim()&&I?"bg-rose-500 text-white hover:bg-rose-600":"bg-gray-200 text-gray-400 cursor-not-allowed"}`},f?q.default.createElement(q.default.Fragment,null,q.default.createElement("span",{className:"animate-spin"},"\u25E0"),q.default.createElement("span",null,"Running...")):q.default.createElement(q.default.Fragment,null,q.default.createElement("span",null,"\u25B6"),q.default.createElement("span",null,"Run"))))),q.default.createElement("div",{className:"flex-1 bg-white rounded-xl border border-gray-200 flex flex-col overflow-hidden"},q.default.createElement("div",{className:"px-4 py-3 border-b border-gray-200 flex items-center justify-between"},q.default.createElement("h3",{className:"font-medium text-gray-900"},H&&Object.keys(Y).length>0?"Comparison Results":"Output"),c&&!H&&q.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${K(c.status)}`},c.status),H&&_.length>0&&q.default.createElement("span",{className:"text-xs text-blue-600"},"Running ",_.length," provider(s)...")),q.default.createElement("div",{ref:M,className:"flex-1 overflow-auto bg-gray-50"},m?q.default.createElement("div",{className:"flex items-center justify-center h-full text-gray-500 p-4"},q.default.createElement("span",{className:"animate-pulse"},"Starting sandbox...")):h?q.default.createElement("div",{className:"text-red-600 p-4"},h):H&&Object.keys(Y).length>0?q.default.createElement("div",{className:"grid grid-cols-1 divide-y divide-gray-200"},W.map(T=>{let X=ew.find(Ne=>Ne.id===T),$=Y[T];return q.default.createElement("div",{key:T,className:"p-4"},q.default.createElement("div",{className:"flex items-center justify-between mb-2"},q.default.createElement("div",{className:"flex items-center space-x-2"},q.default.createElement("div",{className:`w-3 h-3 rounded-full ${X?.color||"bg-gray-400"}`}),q.default.createElement("span",{className:"font-medium text-gray-900"},X?.name||T),q.default.createElement("span",{className:"text-xs text-gray-500"},X?.model)),$&&q.default.createElement("div",{className:"flex items-center space-x-2"},q.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${K($.status)}`},$.status),$.tokens&&q.default.createElement("span",{className:"text-xs text-gray-500"},$.tokens," tokens"),$.duration_ms&&q.default.createElement("span",{className:"text-xs text-gray-500"},($.duration_ms/1e3).toFixed(1),"s"))),q.default.createElement("div",{className:"bg-white rounded-lg border border-gray-200 p-3 font-mono text-sm max-h-48 overflow-auto"},$?.status==="running"?q.default.createElement("div",{className:"flex items-center space-x-2 text-gray-500"},q.default.createElement("span",{className:"animate-pulse"},"\u25CF"),q.default.createElement("span",null,"Processing...")):$?.error?q.default.createElement("div",{className:"text-red-600"},$.error):$?.result?q.default.createElement("pre",{className:"whitespace-pre-wrap text-gray-800"},$.result):q.default.createElement("span",{className:"text-gray-400"},"Waiting...")))})):c?q.default.createElement("div",{className:"p-4 font-mono text-sm"},c.provider&&q.default.createElement("div",{className:"flex items-center space-x-2 mb-3 pb-2 border-b border-gray-200"},q.default.createElement("div",{className:`w-2 h-2 rounded-full ${ew.find(T=>T.id===c.provider)?.color||"bg-gray-400"}`}),q.default.createElement("span",{className:"text-sm text-gray-600"},ew.find(T=>T.id===c.provider)?.name||c.provider)),c.status==="running"?q.default.createElement("div",{className:"flex items-center space-x-2 text-gray-500"},q.default.createElement("span",{className:"animate-pulse"},"\u25CF"),q.default.createElement("span",null,"Executing task...")):c.error?q.default.createElement("div",{className:"text-red-600"},q.default.createElement("div",{className:"font-semibold mb-2"},"Error:"),q.default.createElement("pre",{className:"whitespace-pre-wrap"},c.error)):q.default.createElement("pre",{className:"whitespace-pre-wrap text-gray-800"},c.result||"Processing...")):q.default.createElement("div",{className:"text-gray-400 text-center py-12"},q.default.createElement("p",{className:"mb-2"},"Select a sample task or enter your own"),q.default.createElement("p",{className:"text-xs"},H?`Compare results across ${W.length} providers`:"Task will execute using the selected provider"))))),q.default.createElement("div",{className:"space-y-4 overflow-auto"},q.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},q.default.createElement("div",{className:"flex items-center justify-between mb-3"},q.default.createElement("h4",{className:"font-medium text-gray-900"},"Providers"),q.default.createElement("label",{className:"flex items-center space-x-2 cursor-pointer"},q.default.createElement("input",{type:"checkbox",checked:H,onChange:T=>D(T.target.checked),className:"rounded border-gray-300 text-rose-500 focus:ring-rose-500"}),q.default.createElement("span",{className:"text-xs text-gray-600"},"Compare"))),q.default.createElement("div",{className:"space-y-2"},ew.map(T=>q.default.createElement("label",{key:T.id,className:`flex items-center justify-between p-2 rounded-lg border cursor-pointer transition-colors ${W.includes(T.id)?"border-rose-300 bg-rose-50":"border-gray-200 hover:bg-gray-50"}`},q.default.createElement("div",{className:"flex items-center space-x-3"},q.default.createElement("input",{type:"checkbox",checked:W.includes(T.id),onChange:()=>de(T.id),className:"rounded border-gray-300 text-rose-500 focus:ring-rose-500"}),q.default.createElement("div",{className:`w-2 h-2 rounded-full ${T.color}`}),q.default.createElement("span",{className:"text-sm font-medium text-gray-900"},T.name)),q.default.createElement("span",{className:"text-xs text-gray-500"},T.model)))),H&&W.length>1&&q.default.createElement("div",{className:"mt-3 p-2 bg-purple-50 rounded-lg"},q.default.createElement("p",{className:"text-xs text-purple-700"},"Comparison mode: Run task on ",W.length," providers simultaneously"))),q.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 p-4"},q.default.createElement("div",{className:"flex items-center justify-between mb-3"},q.default.createElement("h4",{className:"font-medium text-gray-900"},"Sample Tasks"),H&&q.default.createElement("button",{onClick:()=>n(r==="playwright_mcp"?"comparison":"playwright_mcp"),className:"text-xs text-rose-600 hover:text-rose-700"},r==="comparison"?"Browser Tasks":"Comparison Tasks")),q.default.createElement("div",{className:"space-y-2"},mce[r]?.map((T,X)=>q.default.createElement("button",{key:X,onClick:()=>l(T.task),disabled:!I,className:"w-full text-left px-3 py-2 rounded-lg transition-colors border border-gray-200 hover:bg-gray-50 disabled:opacity-50"},q.default.createElement("div",{className:"font-medium text-sm text-gray-900"},T.name),q.default.createElement("div",{className:"text-xs text-gray-500 mt-0.5"},T.description))))),q.default.createElement("div",{className:"bg-gradient-to-br from-rose-50 to-purple-50 rounded-xl border border-rose-200 p-4"},q.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&&q.default.createElement("div",{className:"mb-4"},q.default.createElement("div",{className:"flex justify-between text-sm mb-1"},q.default.createElement("span",{className:"text-gray-600"},"Agent Runs"),q.default.createElement("span",{className:`font-medium ${w.runs_remaining<=1?"text-rose-600":"text-gray-900"}`},w.runs_used," / ",w.runs_limit)),q.default.createElement("div",{className:"w-full bg-white rounded-full h-2 border border-rose-200"},q.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&&q.default.createElement("p",{className:"text-xs text-rose-600 mt-1"},w.runs_remaining===0?"Limit reached!":"Almost at limit!")),q.default.createElement("dl",{className:"space-y-2 text-sm"},q.default.createElement("div",{className:"flex justify-between"},q.default.createElement("dt",{className:"text-gray-500"},"Session Runs"),q.default.createElement("dd",{className:"text-gray-900"},a?.runs_count||0,"/",a?.max_runs||J$.max_runs)),q.default.createElement("div",{className:"flex justify-between"},q.default.createElement("dt",{className:"text-gray-500"},"Timeout"),q.default.createElement("dd",{className:"text-gray-900"},J$.timeout_seconds,"s per task"))),w?.plan==="free"&&q.default.createElement("div",{className:"mt-4 pt-4 border-t border-rose-200"},q.default.createElement("button",{onClick:()=>S(!0),className:"w-full text-center text-sm text-rose-600 hover:text-rose-700 font-medium"},"Upgrade to PRO \u2192"))),s.length>0&&q.default.createElement("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden"},q.default.createElement("div",{className:"px-4 py-3 border-b border-gray-100"},q.default.createElement("h4",{className:"font-medium text-gray-900"},"Run History")),q.default.createElement("div",{className:"max-h-48 overflow-auto divide-y divide-gray-100"},s.slice().reverse().map((T,X)=>q.default.createElement("div",{key:T.id||X,className:"px-4 py-3 hover:bg-gray-50 cursor-pointer",onClick:()=>d(T)},q.default.createElement("div",{className:"flex items-center justify-between mb-1"},q.default.createElement("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${K(T.status||"completed")}`},T.status||"completed"),q.default.createElement("span",{className:"text-xs text-gray-400"},T.tokens||0," tokens")),q.default.createElement("p",{className:"text-sm text-gray-600 truncate"},T.task))))),a?.status==="expired"&&q.default.createElement("button",{onClick:B,className:"w-full px-4 py-3 bg-rose-500 text-white rounded-lg hover:bg-rose-600 transition-colors"},"Start New Session")))),x&&q.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4"},q.default.createElement("div",{className:"bg-white rounded-2xl max-w-4xl w-full overflow-hidden shadow-2xl max-h-[90vh] overflow-y-auto"},q.default.createElement("div",{className:"bg-gradient-to-r from-rose-500 to-purple-600 px-6 py-6 text-white text-center"},q.default.createElement("h2",{className:"text-2xl font-bold mb-1"},"Upgrade Your Plan"),q.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.")),q.default.createElement("div",{className:"p-6"},q.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4"},q.default.createElement("div",{className:"border border-gray-200 rounded-xl p-5"},q.default.createElement("div",{className:"text-center mb-4"},q.default.createElement("h3",{className:"font-semibold text-gray-900"},"Free"),q.default.createElement("div",{className:"mt-2"},q.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$0"),q.default.createElement("span",{className:"text-gray-500"},"/mo"))),q.default.createElement("ul",{className:"space-y-2 text-sm text-gray-600 mb-4"},q.default.createElement("li",{className:"flex items-start"},q.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"25 trial runs/month"),q.default.createElement("li",{className:"flex items-start"},q.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"Community support"),q.default.createElement("li",{className:"flex items-start"},q.default.createElement("span",{className:"text-gray-400 mr-2"},"-"),"Basic features")),q.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")),q.default.createElement("div",{className:"border-2 border-rose-500 rounded-xl p-5 relative bg-rose-50"},q.default.createElement("div",{className:"absolute -top-3 left-1/2 transform -translate-x-1/2"},q.default.createElement("span",{className:"bg-rose-500 text-white text-xs font-semibold px-3 py-1 rounded-full"},"RECOMMENDED")),q.default.createElement("div",{className:"text-center mb-4 mt-2"},q.default.createElement("h3",{className:"font-semibold text-gray-900"},"Pro"),q.default.createElement("div",{className:"mt-2"},q.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$99"),q.default.createElement("span",{className:"text-gray-500"},"/mo")),q.default.createElement("p",{className:"text-xs text-gray-500 mt-1"},"or $995/year (save 16%)")),q.default.createElement("ul",{className:"space-y-2 text-sm text-gray-700 mb-4"},q.default.createElement("li",{className:"flex items-start"},q.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"10,000 agent runs/month"),q.default.createElement("li",{className:"flex items-start"},q.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Advanced cost tracking"),q.default.createElement("li",{className:"flex items-start"},q.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"25K traces/month"),q.default.createElement("li",{className:"flex items-start"},q.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Priority email support")),q.default.createElement("button",{onClick:()=>C("monthly"),disabled:k,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"},k?"Loading...":"Upgrade to Pro")),q.default.createElement("div",{className:"border border-gray-200 rounded-xl p-5"},q.default.createElement("div",{className:"text-center mb-4"},q.default.createElement("h3",{className:"font-semibold text-gray-900"},"Enterprise"),q.default.createElement("div",{className:"mt-2"},q.default.createElement("span",{className:"text-3xl font-bold text-gray-900"},"$269"),q.default.createElement("span",{className:"text-gray-500"},"/mo")),q.default.createElement("p",{className:"text-xs text-gray-500 mt-1"},"or $2,690/year (save 16%)")),q.default.createElement("ul",{className:"space-y-2 text-sm text-gray-600 mb-4"},q.default.createElement("li",{className:"flex items-start"},q.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Unlimited runs"),q.default.createElement("li",{className:"flex items-start"},q.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"500K traces/month"),q.default.createElement("li",{className:"flex items-start"},q.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"SSO & SOC2/HIPAA"),q.default.createElement("li",{className:"flex items-start"},q.default.createElement("span",{className:"text-green-500 mr-2"},"\u2713"),"Dedicated support")),q.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")))),q.default.createElement("div",{className:"px-6 py-4 bg-gray-50 border-t border-gray-100 flex justify-center"},q.default.createElement("button",{onClick:()=>S(!1),className:"text-gray-500 hover:text-gray-700 text-sm"},"Maybe later")))))}var Ee=te(ne());var tw={SCREENSHOT:"screenshot",IFRAME:"iframe"},R$={navigate:"[->]",click:"[*]",type:"[T]",form_fill:"[F]",key_press:"[K]",snapshot:"[S]",hover:"[~]",select:"[v]",file_upload:"[^]",dialog:"[!]",evaluate:"[js]",wait:"[..]",scroll:"[|]",drag:"[<>]"},z_={navigate:"#3b82f6",click:"#ef4444",type:"#10b981",form_fill:"#8b5cf6",key_press:"#f59e0b",snapshot:"#06b6d4",hover:"#ec4899",select:"#6366f1",file_upload:"#14b8a6",dialog:"#f97316",evaluate:"#a855f7",wait:"#94a3b8",scroll:"#64748b",drag:"#ea580c"},vce=` @keyframes ripple { 0% { transform: translate(-50%, -50%) scale(0.5); opacity: 1; } 100% { transform: translate(-50%, -50%) scale(2); opacity: 0; } @@ -90,10 +90,10 @@ Who updated the description for the sample notebook?`,style:{...nl,width:"100%", 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.2); } } -`;function A_({recordingId:e,onHandoff:t,onClose:r}){let{darkMode:n}=At(),[a,i]=(0,Ne.useState)([]),[o,l]=(0,Ne.useState)(e),[s,u]=(0,Ne.useState)(null),[c,d]=(0,Ne.useState)([]),[f,p]=(0,Ne.useState)(!0),[m,y]=(0,Ne.useState)(null),[h,v]=(0,Ne.useState)(!1),[g,b]=(0,Ne.useState)(0),[x,S]=(0,Ne.useState)(1),[w,_]=(0,Ne.useState)(null),k=(0,Ne.useRef)(null),A=(0,Ne.useRef)(null),P=(0,Ne.useRef)(null),[K,z]=(0,Ne.useState)(Y1.IFRAME),[Q,M]=(0,Ne.useState)({x:0,y:0,visible:!1}),[F,N]=(0,Ne.useState)(null);(0,Ne.useEffect)(()=>{O()},[]),(0,Ne.useEffect)(()=>{o&&j(o)},[o]);let O=async()=>{try{let V=await fetch("/api/session_recordings");if(V.ok){let J=await V.json();i(J.recordings||[]),!o&&J.recordings?.length>0&&l(J.recordings[0].id)}}catch(V){console.error("Failed to load recordings list:",V)}};(0,Ne.useEffect)(()=>{if(!h||c.length===0){A.current&&clearTimeout(A.current);return}let V=c[g],J=c[g+1];if(!J){v(!1);return}let E=(J.timestamp_ms-V.timestamp_ms)/x;return A.current=setTimeout(()=>{b(L=>L+1)},Math.max(E,50)),()=>{A.current&&clearTimeout(A.current)}},[h,g,c,x]),(0,Ne.useEffect)(()=>{let V=c[g];V?.screenshot_url?(_(V.screenshot_url),z(Y1.SCREENSHOT)):K===Y1.IFRAME&&I(V)},[g,c,K]);let I=(0,Ne.useCallback)(V=>{if(!V||!P.current)return;let J=P.current;try{let E=s?.metadata?.page_url||"/";switch(J.src!==E&&J.src.includes(E),V.action_type){case"navigate":M({x:50,y:50,visible:!0}),N(null);break;case"click":case"focus":M({x:200,y:300,visible:!0}),N(V.selector),D(V.selector);break;case"type":M({x:200,y:300,visible:!0}),N(V.selector),T(V.selector,V.value);break;case"submit":M({x:250,y:400,visible:!0}),N(V.selector);break;case"scroll":M({x:300,y:200,visible:!0}),N(null);break;case"handoff":M({x:0,y:0,visible:!1}),N(null);break;default:M({x:150,y:250,visible:!0}),N(V.selector)}}catch(E){console.log("Could not simulate action in iframe:",E)}},[s]),D=V=>{if(!(!V||!P.current))try{let J=P.current.contentDocument||P.current.contentWindow?.document;if(!J)return;J.querySelectorAll(".session-replay-highlight").forEach(L=>{L.classList.remove("session-replay-highlight"),L.style.outline=""});let E=J.querySelector(V);E&&(E.classList.add("session-replay-highlight"),E.style.outline="3px solid #ef4444",E.style.outlineOffset="2px",E.scrollIntoView({behavior:"smooth",block:"center"}))}catch{}},T=(V,J)=>{if(!(!V||!J||!P.current))try{let E=P.current.contentDocument||P.current.contentWindow?.document;if(!E)return;let L=E.querySelector(V);if(L&&(L.tagName==="INPUT"||L.tagName==="TEXTAREA")){let X=0,B=setInterval(()=>{X{if(!V){u(null),d([]),b(0),v(!1),p(!1),y(null);return}p(!0),y(null);try{let J=await fetch(`/api/session_recordings/${V}`);if(!J.ok)throw new Error("Failed to load recording");let E=await J.json();if(u(E.recording),b(0),v(!1),E.recording?.id){let L=await fetch(`/api/session_recordings/${E.recording.id}/actions`);if(L.ok){let X=await L.json();d(X.actions||E.recording.timeline||[])}else d(E.recording.timeline||[])}}catch(J){y(J.message)}finally{p(!1)}},R=()=>{g>=c.length-1&&b(0),v(!h)},U=()=>{v(!1),b(V=>Math.min(V+1,c.length-1))},q=()=>{v(!1),b(V=>Math.max(V-1,0))},ee=V=>{if(!k.current||c.length===0)return;let J=k.current.getBoundingClientRect(),X=(V.clientX-J.left)/J.width*(s?.duration_ms||c[c.length-1]?.timestamp_ms||0),B=c.findIndex((Ae,C)=>{let Y=c[C+1];return!Y||X{if(s?.id)try{let V=await fetch(`/api/session_recordings/${s.id}/handoff`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!V.ok)throw new Error("Handoff not available");let J=await V.json();t&&t(J)}catch(V){y(V.message)}},pe=V=>{if(!V)return"0:00";let J=Math.floor(V/1e3),E=Math.floor(J/60),L=J%60;return`${E}:${L.toString().padStart(2,"0")}`},Pe=c[g],oe=s?.duration_ms?(Pe?.timestamp_ms||0)/s.duration_ms*100:0;return f?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 border-red-500"})):m?Ne.default.createElement("div",{className:"flex items-center justify-center h-64"},Ne.default.createElement("div",{className:"text-red-500"},m)):s?Ne.default.createElement("div",{className:n?"":"bg-white rounded-xl border border-gray-200",style:n?{background:"linear-gradient(180deg, #1a1a2e 0%, #16213e 100%)",borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)"}:{}},Ne.default.createElement("style",{dangerouslySetInnerHTML:{__html:$ue}}),Ne.default.createElement("div",{className:n?"":"border-b border-gray-200 p-4",style:n?{padding:"16px 24px",borderBottom:"1px solid rgba(255,255,255,0.1)",display:"flex",alignItems:"center",justifyContent:"space-between"}:{display:"flex",alignItems:"center",justifyContent:"space-between"}},Ne.default.createElement("div",null,Ne.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"12px"}},Ne.default.createElement("h2",{className:n?"":"text-xl font-semibold text-gray-900",style:n?{fontSize:"20px",fontWeight:"600",color:"white",margin:0}:{}},s.name||"Session Replay"),a.length>1&&Ne.default.createElement("select",{value:o||"",onChange:V=>l(Number(V.target.value)),style:{padding:"6px 12px",borderRadius:"6px",border:n?"1px solid rgba(255,255,255,0.2)":"1px solid #d1d5db",background:n?"rgba(255,255,255,0.1)":"white",color:n?"white":"#374151",fontSize:"14px",cursor:"pointer"}},a.map(V=>Ne.default.createElement("option",{key:V.id,value:V.id},V.name," (",new Date(V.created_at).toLocaleDateString(),")")))),Ne.default.createElement("p",{className:n?"":"text-sm text-gray-500 mt-1",style:n?{fontSize:"14px",color:"rgba(255,255,255,0.6)",marginTop:"4px"}:{}},s.action_count," actions | ",pe(s.duration_ms)," duration")),Ne.default.createElement("div",{className:"flex items-center gap-3"},s.handoff_state&&Ne.default.createElement("button",{onClick:fe,className:n?"":"px-4 py-2 bg-gradient-to-r from-red-500 to-rose-500 text-white rounded-lg hover:from-red-600 hover:to-rose-600 font-medium",style:n?{padding:"10px 20px",background:"linear-gradient(90deg, #ef4444 0%, #f43f5e 100%)",color:"white",borderRadius:"8px",border:"none",fontWeight:"500",cursor:"pointer",fontSize:"14px"}:{}},"Take Over Session"),r&&Ne.default.createElement("button",{onClick:r,className:n?"":"text-gray-400 hover:text-gray-600",style:n?{color:"rgba(255,255,255,0.6)",background:"none",border:"none",cursor:"pointer"}:{}},Ne.default.createElement("span",{style:{fontSize:"20px"}},"x")))),Ne.default.createElement("div",{className:n?"":"flex h-[500px]",style:n?{display:"flex",height:"500px"}:{}},Ne.default.createElement("div",{className:n?"":"flex-1 bg-gray-100 flex items-center justify-center relative",style:n?{flex:1,background:"rgba(0,0,0,0.3)",display:"flex",alignItems:"center",justifyContent:"center",position:"relative",overflow:"hidden"}:{overflow:"hidden"}},K===Y1.SCREENSHOT&&w?Ne.default.createElement("img",{src:w,alt:"Session screenshot",className:"max-w-full max-h-full object-contain"}):Ne.default.createElement("div",{style:{width:"100%",height:"100%",position:"relative",overflow:"hidden"}},Ne.default.createElement("iframe",{ref:P,src:s?.metadata?.page_url||"/",style:{border:"none",transform:"scale(0.75)",transformOrigin:"top left",width:"133.33%",height:"133.33%",pointerEvents:"none"},sandbox:"allow-same-origin allow-scripts"}),Q.visible&&Ne.default.createElement("div",{style:{position:"absolute",left:`${Q.x}px`,top:`${Q.y}px`,width:"24px",height:"24px",pointerEvents:"none",zIndex:100,transition:"all 0.3s ease-out"}},Ne.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",style:{width:"100%",height:"100%"}},Ne.default.createElement("path",{d:"M4 4L12 20L14 14L20 12L4 4Z",fill:"#ef4444",stroke:"white",strokeWidth:"2"})),Pe?.action_type==="click"&&Ne.default.createElement("div",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:"40px",height:"40px",borderRadius:"50%",border:"3px solid #ef4444",animation:"ripple 0.6s ease-out",opacity:0}})),F&&Ne.default.createElement("div",{style:{position:"absolute",bottom:"16px",left:"16px",background:"rgba(0,0,0,0.8)",color:"#60a5fa",padding:"8px 12px",borderRadius:"6px",fontSize:"12px",fontFamily:$e.mono,zIndex:100}},F),Pe&&Ne.default.createElement("div",{style:{position:"absolute",top:"60px",left:"16px",background:"rgba(0,0,0,0.8)",color:"white",padding:"8px 16px",borderRadius:"6px",fontSize:"13px",display:"flex",alignItems:"center",gap:"8px",zIndex:100}},Ne.default.createElement("span",{style:{color:S_[Pe.action_type]||"#94a3b8",fontWeight:"600"}},T$[Pe.action_type]||"[?]"),Ne.default.createElement("span",null,Pe.action_type),Pe.value&&Ne.default.createElement("span",{style:{color:"rgba(255,255,255,0.6)",maxWidth:"200px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},": ",Pe.value))),Ne.default.createElement("div",{className:n?"":"absolute top-4 left-4 flex items-center gap-2 text-white px-3 py-1 rounded-full text-sm",style:{position:"absolute",top:"16px",left:"16px",display:"flex",alignItems:"center",gap:"8px",background:s?.status==="recording"?"#ef4444":h?"#10b981":"#6b7280",color:"white",padding:"6px 12px",borderRadius:"999px",fontSize:"13px",fontWeight:"500"}},s?.status==="recording"?Ne.default.createElement("span",{style:{width:"8px",height:"8px",borderRadius:"50%",background:"white",animation:"pulse 1.5s ease-in-out infinite"}}):h?Ne.default.createElement("svg",{width:"10",height:"12",viewBox:"0 0 10 12",fill:"white"},Ne.default.createElement("path",{d:"M0 0L10 6L0 12V0Z"})):Ne.default.createElement("svg",{width:"10",height:"12",viewBox:"0 0 10 12",fill:"white"},Ne.default.createElement("rect",{x:"0",y:"0",width:"3",height:"12"}),Ne.default.createElement("rect",{x:"7",y:"0",width:"3",height:"12"})),s?.status==="recording"?"REC":h?"Playing":"Paused"),Pe?.selector&&Ne.default.createElement("div",{className:n?"":"absolute bottom-4 left-4 bg-black/75 text-white px-3 py-1 rounded text-sm font-mono",style:n?{position:"absolute",bottom:"16px",left:"16px",background:"rgba(0,0,0,0.75)",color:"white",padding:"6px 12px",borderRadius:"6px",fontSize:"13px",fontFamily:$e.mono}:{}},Pe.selector)),Ne.default.createElement("div",{className:n?"":"w-80 border-l border-gray-200 flex flex-col",style:n?{width:"320px",borderLeft:"1px solid rgba(255,255,255,0.1)",display:"flex",flexDirection:"column"}:{}},Ne.default.createElement("div",{className:n?"":"flex-1 overflow-auto",style:n?{flex:1,overflowY:"auto"}:{}},Ne.default.createElement("div",{className:n?"":"p-3 border-b border-gray-100 font-medium text-sm text-gray-700",style:n?{padding:"12px 16px",borderBottom:"1px solid rgba(255,255,255,0.1)",fontWeight:"500",fontSize:"14px",color:"rgba(255,255,255,0.8)"}:{}},"Actions (",c.length,")"),c.map((V,J)=>{let E=J===g,L=J{b(J),v(!1)},className:n?"":`px-4 py-3 cursor-pointer border-b border-gray-50 hover:bg-gray-50 ${E?"bg-red-50 border-l-2 border-l-red-500":""}`,style:n?{padding:"12px 16px",cursor:"pointer",borderBottom:"1px solid rgba(255,255,255,0.05)",background:E?"rgba(239, 68, 68, 0.15)":"transparent",borderLeft:E?"3px solid #ef4444":"3px solid transparent",opacity:L?.6:1}:{opacity:L?.6:1}},Ne.default.createElement("div",{className:"flex items-center gap-2"},Ne.default.createElement("span",{style:{color:X,fontFamily:$e.mono,fontSize:"12px",fontWeight:"600"}},T$[V.action_type]||"[?]"),Ne.default.createElement("span",{className:n?"":"text-sm font-medium text-gray-900",style:n?{fontSize:"14px",fontWeight:"500",color:"white"}:{}},V.action_type),Ne.default.createElement("span",{className:n?"":"text-xs text-gray-400 ml-auto",style:n?{fontSize:"12px",color:"rgba(255,255,255,0.4)",marginLeft:"auto"}:{}},pe(V.timestamp_ms))),V.value&&Ne.default.createElement("div",{className:n?"":"text-xs text-gray-500 mt-1 truncate",style:n?{fontSize:"12px",color:"rgba(255,255,255,0.5)",marginTop:"4px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}:{}},V.value.length>50?V.value.substring(0,50)+"...":V.value),V.selector&&Ne.default.createElement("div",{className:n?"":"text-xs text-blue-500 mt-1 font-mono truncate",style:n?{fontSize:"11px",color:"#60a5fa",marginTop:"4px",fontFamily:$e.mono,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}:{}},V.selector))})))),Ne.default.createElement("div",{className:n?"":"border-t border-gray-200 p-4",style:n?{borderTop:"1px solid rgba(255,255,255,0.1)",padding:"16px 24px"}:{}},Ne.default.createElement("div",{ref:k,onClick:ee,className:n?"":"h-2 bg-gray-200 rounded-full mb-4 cursor-pointer relative",style:n?{height:"8px",background:"rgba(255,255,255,0.1)",borderRadius:"4px",marginBottom:"16px",cursor:"pointer",position:"relative"}:{}},Ne.default.createElement("div",{className:n?"":"absolute h-full bg-red-500 rounded-full",style:{width:`${oe}%`,height:"100%",background:"#ef4444",borderRadius:"4px",position:"absolute"}}),c.map((V,J)=>{let E=s?.duration_ms?V.timestamp_ms/s.duration_ms*100:0,L=S_[V.action_type]||"#94a3b8";return Ne.default.createElement("div",{key:J,className:n?"":"absolute w-1 h-3 -top-0.5 transform -translate-x-1/2",style:{left:`${E}%`,width:"3px",height:"12px",top:"-2px",transform:"translateX(-50%)",background:J===g?L:"rgba(255,255,255,0.3)",borderRadius:"2px",position:"absolute"}})})),Ne.default.createElement("div",{className:n?"":"flex items-center justify-between",style:n?{display:"flex",alignItems:"center",justifyContent:"space-between"}:{}},Ne.default.createElement("div",{className:"flex items-center gap-4"},Ne.default.createElement("div",{className:"flex items-center gap-2"},Ne.default.createElement("button",{onClick:q,disabled:g===0,className:n?"":"p-2 rounded-lg bg-gray-100 hover:bg-gray-200 disabled:opacity-50",style:n?{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"none",borderRadius:"8px",color:"white",cursor:g===0?"not-allowed":"pointer",opacity:g===0?.5:1}:{}},"<<"),Ne.default.createElement("button",{onClick:R,className:n?"":"p-3 rounded-full bg-red-500 text-white hover:bg-red-600",style:n?{padding:"12px 24px",background:"#ef4444",border:"none",borderRadius:"999px",color:"white",cursor:"pointer",fontWeight:"500"}:{}},h?"Pause":"Play"),Ne.default.createElement("button",{onClick:U,disabled:g>=c.length-1,className:n?"":"p-2 rounded-lg bg-gray-100 hover:bg-gray-200 disabled:opacity-50",style:n?{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"none",borderRadius:"8px",color:"white",cursor:g>=c.length-1?"not-allowed":"pointer",opacity:g>=c.length-1?.5:1}:{}},">>")),Ne.default.createElement("span",{className:n?"":"text-sm text-gray-600 font-mono",style:n?{fontSize:"14px",color:"rgba(255,255,255,0.7)",fontFamily:$e.mono}:{}},pe(Pe?.timestamp_ms||0)," / ",pe(s?.duration_ms||0))),Ne.default.createElement("div",{className:"flex items-center gap-2"},Ne.default.createElement("span",{className:n?"":"text-sm text-gray-500",style:n?{fontSize:"14px",color:"rgba(255,255,255,0.5)"}:{}},"Speed:"),[.5,1,2,4].map(V=>Ne.default.createElement("button",{key:V,onClick:()=>S(V),className:n?"":`px-2 py-1 rounded text-sm ${x===V?"bg-red-500 text-white":"bg-gray-100 text-gray-600"}`,style:n?{padding:"4px 10px",background:x===V?"#ef4444":"rgba(255,255,255,0.1)",color:"white",border:"none",borderRadius:"6px",cursor:"pointer",fontSize:"13px"}:{}},V,"x")))))):Ne.default.createElement("div",{className:"flex items-center justify-center h-64"},Ne.default.createElement("div",{className:"text-gray-500"},"No recording available"))}var ge=re(ne());var G1=e=>e==null?"0":e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString();function k_({account:e,user:t,subscription:r,agentCount:n=0}){let{darkMode:a}=At(),[i,o]=(0,ge.useState)(null),[l,s]=(0,ge.useState)(!1),[u,c]=(0,ge.useState)(!1),[d,f]=(0,ge.useState)(!1),[p,m]=(0,ge.useState)(null);(0,ge.useEffect)(()=>{fetch("/api/usage").then(S=>S.ok?S.json():null).then(S=>o(S?.usage||null)).catch(()=>o(null))},[]);let y=async()=>{f(!0),m(null);try{await $f({planSlug:"pro"})}catch(S){m(S.message),f(!1)}},h=()=>{e?.telemetry_api_key&&navigator.clipboard.writeText(e.telemetry_api_key).then(()=>{s(!0),setTimeout(()=>s(!1),2e3)})},v={backgroundColor:a?"#1f1f1f":"#ffffff",borderColor:a?"#2a2a2a":"#e5e7eb"},g=r?.plan_name||"Free",b={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"}},x=b[g.toLowerCase()]||b.free;return ge.default.createElement("div",{className:"p-6 space-y-6"},ge.default.createElement("div",null,ge.default.createElement("h2",{className:`text-2xl font-bold ${a?"text-white":"text-gray-900"}`},"Organization"),ge.default.createElement("p",{className:`mt-1 ${a?"text-gray-400":"text-gray-500"}`},"Manage your workspace, team, and billing")),ge.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6"},ge.default.createElement("div",{className:"border rounded-lg p-6",style:v},ge.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${a?"text-white":"text-gray-900"}`},"Workspace"),ge.default.createElement("div",{className:"space-y-3"},ge.default.createElement("div",{className:"flex justify-between items-center"},ge.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Name"),ge.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},e?.name||"My Workspace")),ge.default.createElement("div",{className:"flex justify-between items-center"},ge.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Owner"),ge.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},t?.email||"you@example.com")),ge.default.createElement("div",{className:"flex justify-between items-center"},ge.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Created"),ge.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},e?.created_at?new Date(e.created_at).toLocaleDateString():"Today")))),ge.default.createElement("div",{className:"border rounded-lg p-6",style:v},ge.default.createElement("div",{className:"flex items-center justify-between mb-4"},ge.default.createElement("h3",{className:`text-lg font-semibold ${a?"text-white":"text-gray-900"}`},"Current Plan"),ge.default.createElement("span",{className:"px-3 py-1 bg-red-100 text-red-700 rounded-full text-sm font-medium"},g)),ge.default.createElement("div",{className:"space-y-3"},ge.default.createElement("div",{className:"flex justify-between items-center"},ge.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Team Seats"),ge.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},x.seats)),ge.default.createElement("div",{className:"flex justify-between items-center"},ge.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Workspaces"),ge.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},x.workspaces)),ge.default.createElement("div",{className:"flex justify-between items-center"},ge.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Agents"),ge.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},x.agents)),ge.default.createElement("div",{className:"flex justify-between items-center"},ge.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Traces"),ge.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},x.traces))),g.toLowerCase()!=="enterprise"&&ge.default.createElement(ge.default.Fragment,null,ge.default.createElement("button",{onClick:y,disabled:d,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"},d?"Redirecting to checkout\u2026":"Upgrade Plan"),p&&ge.default.createElement("p",{className:"mt-2 text-sm text-red-500 text-center"},p)))),ge.default.createElement("div",{className:"border rounded-lg p-6",style:v},ge.default.createElement("div",{className:"flex items-center justify-between mb-4"},ge.default.createElement("h3",{className:`text-lg font-semibold ${a?"text-white":"text-gray-900"}`},"Team Members"),ge.default.createElement("button",{className:"px-4 py-2 text-sm bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-colors"},"+ Invite Member")),ge.default.createElement("div",{className:"overflow-hidden"},ge.default.createElement("table",{className:"min-w-full"},ge.default.createElement("thead",null,ge.default.createElement("tr",{className:a?"border-b border-gray-700":"border-b border-gray-200"},ge.default.createElement("th",{className:`text-left py-3 px-4 text-sm font-medium ${a?"text-gray-400":"text-gray-500"}`},"Member"),ge.default.createElement("th",{className:`text-left py-3 px-4 text-sm font-medium ${a?"text-gray-400":"text-gray-500"}`},"Role"),ge.default.createElement("th",{className:`text-left py-3 px-4 text-sm font-medium ${a?"text-gray-400":"text-gray-500"}`},"Status"))),ge.default.createElement("tbody",null,ge.default.createElement("tr",null,ge.default.createElement("td",{className:"py-3 px-4"},ge.default.createElement("div",{className:"flex items-center space-x-3"},ge.default.createElement("div",{className:"w-8 h-8 bg-red-100 rounded-full flex items-center justify-center"},ge.default.createElement("span",{className:"text-red-600 font-medium text-sm"},t?.name?.charAt(0).toUpperCase()||"U")),ge.default.createElement("div",null,ge.default.createElement("p",{className:`font-medium ${a?"text-white":"text-gray-900"}`},t?.name||"You"),ge.default.createElement("p",{className:`text-sm ${a?"text-gray-400":"text-gray-500"}`},t?.email)))),ge.default.createElement("td",{className:"py-3 px-4"},ge.default.createElement("span",{className:"px-2 py-1 bg-purple-100 text-purple-700 rounded text-sm"},"Owner")),ge.default.createElement("td",{className:"py-3 px-4"},ge.default.createElement("span",{className:"flex items-center text-green-600"},ge.default.createElement("span",{className:"w-2 h-2 bg-green-500 rounded-full mr-2"}),"Active"))))))),ge.default.createElement("div",{className:"border rounded-lg p-6",style:v},ge.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${a?"text-white":"text-gray-900"}`},"Usage This Month"),ge.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4"},ge.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:a?"#252525":"#f9fafb"}},ge.default.createElement("p",{className:`text-2xl font-bold ${a?"text-white":"text-gray-900"}`},n),ge.default.createElement("p",{className:`text-sm ${a?"text-gray-400":"text-gray-500"}`},"Agents")),ge.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:a?"#252525":"#f9fafb"}},ge.default.createElement("p",{className:`text-2xl font-bold ${a?"text-white":"text-gray-900"}`},G1(i?.traces_used),i?.traces_limit>0&&ge.default.createElement("span",{className:`text-sm font-normal ${a?"text-gray-500":"text-gray-400"}`}," / ",G1(i.traces_limit))),ge.default.createElement("p",{className:`text-sm ${a?"text-gray-400":"text-gray-500"}`},"Traces")),ge.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:a?"#252525":"#f9fafb"}},ge.default.createElement("p",{className:`text-2xl font-bold ${a?"text-white":"text-gray-900"}`},G1(i?.runs_used)),ge.default.createElement("p",{className:`text-sm ${a?"text-gray-400":"text-gray-500"}`},"Executions")),ge.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:a?"#252525":"#f9fafb"}},ge.default.createElement("p",{className:`text-2xl font-bold ${a?"text-white":"text-gray-900"}`},G1(i?.tokens_used)),ge.default.createElement("p",{className:`text-sm ${a?"text-gray-400":"text-gray-500"}`},"Tokens")))),ge.default.createElement("div",{className:"border rounded-lg p-6",style:v},ge.default.createElement("h3",{className:`text-lg font-semibold mb-1 ${a?"text-white":"text-gray-900"}`},"Telemetry"),ge.default.createElement("p",{className:`text-sm mb-4 ${a?"text-gray-400":"text-gray-500"}`},"Send traces from your own ActiveAgent app to this workspace. Add this to your"," ",ge.default.createElement("code",{className:`px-1 rounded text-xs ${a?"bg-gray-800 text-gray-300":"bg-gray-100 text-gray-700"}`},"config/active_agent.yml"),":"),ge.default.createElement("pre",{className:`text-xs rounded-lg p-4 overflow-x-auto mb-4 ${a?"bg-black text-gray-300":"bg-gray-900 text-gray-100"}`},`telemetry: +`;function L_({recordingId:e,onHandoff:t,onClose:r}){let{darkMode:n}=kt(),[a,o]=(0,Ee.useState)([]),[i,l]=(0,Ee.useState)(e),[s,u]=(0,Ee.useState)(null),[c,d]=(0,Ee.useState)([]),[f,p]=(0,Ee.useState)(!0),[m,y]=(0,Ee.useState)(null),[h,v]=(0,Ee.useState)(!1),[g,b]=(0,Ee.useState)(0),[x,S]=(0,Ee.useState)(1),[w,O]=(0,Ee.useState)(null),k=(0,Ee.useRef)(null),A=(0,Ee.useRef)(null),M=(0,Ee.useRef)(null),[W,L]=(0,Ee.useState)(tw.IFRAME),[H,D]=(0,Ee.useState)({x:0,y:0,visible:!1}),[Y,N]=(0,Ee.useState)(null);(0,Ee.useEffect)(()=>{_()},[]),(0,Ee.useEffect)(()=>{i&&B(i)},[i]);let _=async()=>{try{let K=await fetch("/api/session_recordings");if(K.ok){let I=await K.json();o(I.recordings||[]),!i&&I.recordings?.length>0&&l(I.recordings[0].id)}}catch(K){console.error("Failed to load recordings list:",K)}};(0,Ee.useEffect)(()=>{if(!h||c.length===0){A.current&&clearTimeout(A.current);return}let K=c[g],I=c[g+1];if(!I){v(!1);return}let C=(I.timestamp_ms-K.timestamp_ms)/x;return A.current=setTimeout(()=>{b(T=>T+1)},Math.max(C,50)),()=>{A.current&&clearTimeout(A.current)}},[h,g,c,x]),(0,Ee.useEffect)(()=>{let K=c[g];K?.screenshot_url?(O(K.screenshot_url),L(tw.SCREENSHOT)):W===tw.IFRAME&&z(K)},[g,c,W]);let z=(0,Ee.useCallback)(K=>{if(!K||!M.current)return;let I=M.current;try{let C=s?.metadata?.page_url||"/";switch(I.src!==C&&I.src.includes(C),K.action_type){case"navigate":D({x:50,y:50,visible:!0}),N(null);break;case"click":case"focus":D({x:200,y:300,visible:!0}),N(K.selector),j(K.selector);break;case"type":D({x:200,y:300,visible:!0}),N(K.selector),P(K.selector,K.value);break;case"submit":D({x:250,y:400,visible:!0}),N(K.selector);break;case"scroll":D({x:300,y:200,visible:!0}),N(null);break;case"handoff":D({x:0,y:0,visible:!1}),N(null);break;default:D({x:150,y:250,visible:!0}),N(K.selector)}}catch(C){console.log("Could not simulate action in iframe:",C)}},[s]),j=K=>{if(!(!K||!M.current))try{let I=M.current.contentDocument||M.current.contentWindow?.document;if(!I)return;I.querySelectorAll(".session-replay-highlight").forEach(T=>{T.classList.remove("session-replay-highlight"),T.style.outline=""});let C=I.querySelector(K);C&&(C.classList.add("session-replay-highlight"),C.style.outline="3px solid #ef4444",C.style.outlineOffset="2px",C.scrollIntoView({behavior:"smooth",block:"center"}))}catch{}},P=(K,I)=>{if(!(!K||!I||!M.current))try{let C=M.current.contentDocument||M.current.contentWindow?.document;if(!C)return;let T=C.querySelector(K);if(T&&(T.tagName==="INPUT"||T.tagName==="TEXTAREA")){let X=0,$=setInterval(()=>{X{if(!K){u(null),d([]),b(0),v(!1),p(!1),y(null);return}p(!0),y(null);try{let I=await fetch(`/api/session_recordings/${K}`);if(!I.ok)throw new Error("Failed to load recording");let C=await I.json();if(u(C.recording),b(0),v(!1),C.recording?.id){let T=await fetch(`/api/session_recordings/${C.recording.id}/actions`);if(T.ok){let X=await T.json();d(X.actions||C.recording.timeline||[])}else d(C.recording.timeline||[])}}catch(I){y(I.message)}finally{p(!1)}},R=()=>{g>=c.length-1&&b(0),v(!h)},F=()=>{v(!1),b(K=>Math.min(K+1,c.length-1))},G=()=>{v(!1),b(K=>Math.max(K-1,0))},ee=K=>{if(!k.current||c.length===0)return;let I=k.current.getBoundingClientRect(),X=(K.clientX-I.left)/I.width*(s?.duration_ms||c[c.length-1]?.timestamp_ms||0),$=c.findIndex((Ne,E)=>{let Z=c[E+1];return!Z||X{if(s?.id)try{let K=await fetch(`/api/session_recordings/${s.id}/handoff`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!K.ok)throw new Error("Handoff not available");let I=await K.json();t&&t(I)}catch(K){y(K.message)}},de=K=>{if(!K)return"0:00";let I=Math.floor(K/1e3),C=Math.floor(I/60),T=I%60;return`${C}:${T.toString().padStart(2,"0")}`},De=c[g],le=s?.duration_ms?(De?.timestamp_ms||0)/s.duration_ms*100:0;return f?Ee.default.createElement("div",{className:"flex items-center justify-center h-64"},Ee.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"})):m?Ee.default.createElement("div",{className:"flex items-center justify-center h-64"},Ee.default.createElement("div",{className:"text-red-500"},m)):s?Ee.default.createElement("div",{className:n?"":"bg-white rounded-xl border border-gray-200",style:n?{background:"linear-gradient(180deg, #1a1a2e 0%, #16213e 100%)",borderRadius:"12px",overflow:"hidden",minHeight:"calc(100vh - 200px)"}:{}},Ee.default.createElement("style",{dangerouslySetInnerHTML:{__html:vce}}),Ee.default.createElement("div",{className:n?"":"border-b border-gray-200 p-4",style:n?{padding:"16px 24px",borderBottom:"1px solid rgba(255,255,255,0.1)",display:"flex",alignItems:"center",justifyContent:"space-between"}:{display:"flex",alignItems:"center",justifyContent:"space-between"}},Ee.default.createElement("div",null,Ee.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"12px"}},Ee.default.createElement("h2",{className:n?"":"text-xl font-semibold text-gray-900",style:n?{fontSize:"20px",fontWeight:"600",color:"white",margin:0}:{}},s.name||"Session Replay"),a.length>1&&Ee.default.createElement("select",{value:i||"",onChange:K=>l(Number(K.target.value)),style:{padding:"6px 12px",borderRadius:"6px",border:n?"1px solid rgba(255,255,255,0.2)":"1px solid #d1d5db",background:n?"rgba(255,255,255,0.1)":"white",color:n?"white":"#374151",fontSize:"14px",cursor:"pointer"}},a.map(K=>Ee.default.createElement("option",{key:K.id,value:K.id},K.name," (",new Date(K.created_at).toLocaleDateString(),")")))),Ee.default.createElement("p",{className:n?"":"text-sm text-gray-500 mt-1",style:n?{fontSize:"14px",color:"rgba(255,255,255,0.6)",marginTop:"4px"}:{}},s.action_count," actions | ",de(s.duration_ms)," duration")),Ee.default.createElement("div",{className:"flex items-center gap-3"},s.handoff_state&&Ee.default.createElement("button",{onClick:fe,className:n?"":"px-4 py-2 bg-gradient-to-r from-red-500 to-rose-500 text-white rounded-lg hover:from-red-600 hover:to-rose-600 font-medium",style:n?{padding:"10px 20px",background:"linear-gradient(90deg, #ef4444 0%, #f43f5e 100%)",color:"white",borderRadius:"8px",border:"none",fontWeight:"500",cursor:"pointer",fontSize:"14px"}:{}},"Take Over Session"),r&&Ee.default.createElement("button",{onClick:r,className:n?"":"text-gray-400 hover:text-gray-600",style:n?{color:"rgba(255,255,255,0.6)",background:"none",border:"none",cursor:"pointer"}:{}},Ee.default.createElement("span",{style:{fontSize:"20px"}},"x")))),Ee.default.createElement("div",{className:n?"":"flex h-[500px]",style:n?{display:"flex",height:"500px"}:{}},Ee.default.createElement("div",{className:n?"":"flex-1 bg-gray-100 flex items-center justify-center relative",style:n?{flex:1,background:"rgba(0,0,0,0.3)",display:"flex",alignItems:"center",justifyContent:"center",position:"relative",overflow:"hidden"}:{overflow:"hidden"}},W===tw.SCREENSHOT&&w?Ee.default.createElement("img",{src:w,alt:"Session screenshot",className:"max-w-full max-h-full object-contain"}):Ee.default.createElement("div",{style:{width:"100%",height:"100%",position:"relative",overflow:"hidden"}},Ee.default.createElement("iframe",{ref:M,src:s?.metadata?.page_url||"/",style:{border:"none",transform:"scale(0.75)",transformOrigin:"top left",width:"133.33%",height:"133.33%",pointerEvents:"none"},sandbox:"allow-same-origin allow-scripts"}),H.visible&&Ee.default.createElement("div",{style:{position:"absolute",left:`${H.x}px`,top:`${H.y}px`,width:"24px",height:"24px",pointerEvents:"none",zIndex:100,transition:"all 0.3s ease-out"}},Ee.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",style:{width:"100%",height:"100%"}},Ee.default.createElement("path",{d:"M4 4L12 20L14 14L20 12L4 4Z",fill:"#ef4444",stroke:"white",strokeWidth:"2"})),De?.action_type==="click"&&Ee.default.createElement("div",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:"40px",height:"40px",borderRadius:"50%",border:"3px solid #ef4444",animation:"ripple 0.6s ease-out",opacity:0}})),Y&&Ee.default.createElement("div",{style:{position:"absolute",bottom:"16px",left:"16px",background:"rgba(0,0,0,0.8)",color:"#60a5fa",padding:"8px 12px",borderRadius:"6px",fontSize:"12px",fontFamily:Fe.mono,zIndex:100}},Y),De&&Ee.default.createElement("div",{style:{position:"absolute",top:"60px",left:"16px",background:"rgba(0,0,0,0.8)",color:"white",padding:"8px 16px",borderRadius:"6px",fontSize:"13px",display:"flex",alignItems:"center",gap:"8px",zIndex:100}},Ee.default.createElement("span",{style:{color:z_[De.action_type]||"#94a3b8",fontWeight:"600"}},R$[De.action_type]||"[?]"),Ee.default.createElement("span",null,De.action_type),De.value&&Ee.default.createElement("span",{style:{color:"rgba(255,255,255,0.6)",maxWidth:"200px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},": ",De.value))),Ee.default.createElement("div",{className:n?"":"absolute top-4 left-4 flex items-center gap-2 text-white px-3 py-1 rounded-full text-sm",style:{position:"absolute",top:"16px",left:"16px",display:"flex",alignItems:"center",gap:"8px",background:s?.status==="recording"?"#ef4444":h?"#10b981":"#6b7280",color:"white",padding:"6px 12px",borderRadius:"999px",fontSize:"13px",fontWeight:"500"}},s?.status==="recording"?Ee.default.createElement("span",{style:{width:"8px",height:"8px",borderRadius:"50%",background:"white",animation:"pulse 1.5s ease-in-out infinite"}}):h?Ee.default.createElement("svg",{width:"10",height:"12",viewBox:"0 0 10 12",fill:"white"},Ee.default.createElement("path",{d:"M0 0L10 6L0 12V0Z"})):Ee.default.createElement("svg",{width:"10",height:"12",viewBox:"0 0 10 12",fill:"white"},Ee.default.createElement("rect",{x:"0",y:"0",width:"3",height:"12"}),Ee.default.createElement("rect",{x:"7",y:"0",width:"3",height:"12"})),s?.status==="recording"?"REC":h?"Playing":"Paused"),De?.selector&&Ee.default.createElement("div",{className:n?"":"absolute bottom-4 left-4 bg-black/75 text-white px-3 py-1 rounded text-sm font-mono",style:n?{position:"absolute",bottom:"16px",left:"16px",background:"rgba(0,0,0,0.75)",color:"white",padding:"6px 12px",borderRadius:"6px",fontSize:"13px",fontFamily:Fe.mono}:{}},De.selector)),Ee.default.createElement("div",{className:n?"":"w-80 border-l border-gray-200 flex flex-col",style:n?{width:"320px",borderLeft:"1px solid rgba(255,255,255,0.1)",display:"flex",flexDirection:"column"}:{}},Ee.default.createElement("div",{className:n?"":"flex-1 overflow-auto",style:n?{flex:1,overflowY:"auto"}:{}},Ee.default.createElement("div",{className:n?"":"p-3 border-b border-gray-100 font-medium text-sm text-gray-700",style:n?{padding:"12px 16px",borderBottom:"1px solid rgba(255,255,255,0.1)",fontWeight:"500",fontSize:"14px",color:"rgba(255,255,255,0.8)"}:{}},"Actions (",c.length,")"),c.map((K,I)=>{let C=I===g,T=I{b(I),v(!1)},className:n?"":`px-4 py-3 cursor-pointer border-b border-gray-50 hover:bg-gray-50 ${C?"bg-red-50 border-l-2 border-l-red-500":""}`,style:n?{padding:"12px 16px",cursor:"pointer",borderBottom:"1px solid rgba(255,255,255,0.05)",background:C?"rgba(239, 68, 68, 0.15)":"transparent",borderLeft:C?"3px solid #ef4444":"3px solid transparent",opacity:T?.6:1}:{opacity:T?.6:1}},Ee.default.createElement("div",{className:"flex items-center gap-2"},Ee.default.createElement("span",{style:{color:X,fontFamily:Fe.mono,fontSize:"12px",fontWeight:"600"}},R$[K.action_type]||"[?]"),Ee.default.createElement("span",{className:n?"":"text-sm font-medium text-gray-900",style:n?{fontSize:"14px",fontWeight:"500",color:"white"}:{}},K.action_type),Ee.default.createElement("span",{className:n?"":"text-xs text-gray-400 ml-auto",style:n?{fontSize:"12px",color:"rgba(255,255,255,0.4)",marginLeft:"auto"}:{}},de(K.timestamp_ms))),K.value&&Ee.default.createElement("div",{className:n?"":"text-xs text-gray-500 mt-1 truncate",style:n?{fontSize:"12px",color:"rgba(255,255,255,0.5)",marginTop:"4px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}:{}},K.value.length>50?K.value.substring(0,50)+"...":K.value),K.selector&&Ee.default.createElement("div",{className:n?"":"text-xs text-blue-500 mt-1 font-mono truncate",style:n?{fontSize:"11px",color:"#60a5fa",marginTop:"4px",fontFamily:Fe.mono,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}:{}},K.selector))})))),Ee.default.createElement("div",{className:n?"":"border-t border-gray-200 p-4",style:n?{borderTop:"1px solid rgba(255,255,255,0.1)",padding:"16px 24px"}:{}},Ee.default.createElement("div",{ref:k,onClick:ee,className:n?"":"h-2 bg-gray-200 rounded-full mb-4 cursor-pointer relative",style:n?{height:"8px",background:"rgba(255,255,255,0.1)",borderRadius:"4px",marginBottom:"16px",cursor:"pointer",position:"relative"}:{}},Ee.default.createElement("div",{className:n?"":"absolute h-full bg-red-500 rounded-full",style:{width:`${le}%`,height:"100%",background:"#ef4444",borderRadius:"4px",position:"absolute"}}),c.map((K,I)=>{let C=s?.duration_ms?K.timestamp_ms/s.duration_ms*100:0,T=z_[K.action_type]||"#94a3b8";return Ee.default.createElement("div",{key:I,className:n?"":"absolute w-1 h-3 -top-0.5 transform -translate-x-1/2",style:{left:`${C}%`,width:"3px",height:"12px",top:"-2px",transform:"translateX(-50%)",background:I===g?T:"rgba(255,255,255,0.3)",borderRadius:"2px",position:"absolute"}})})),Ee.default.createElement("div",{className:n?"":"flex items-center justify-between",style:n?{display:"flex",alignItems:"center",justifyContent:"space-between"}:{}},Ee.default.createElement("div",{className:"flex items-center gap-4"},Ee.default.createElement("div",{className:"flex items-center gap-2"},Ee.default.createElement("button",{onClick:G,disabled:g===0,className:n?"":"p-2 rounded-lg bg-gray-100 hover:bg-gray-200 disabled:opacity-50",style:n?{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"none",borderRadius:"8px",color:"white",cursor:g===0?"not-allowed":"pointer",opacity:g===0?.5:1}:{}},"<<"),Ee.default.createElement("button",{onClick:R,className:n?"":"p-3 rounded-full bg-red-500 text-white hover:bg-red-600",style:n?{padding:"12px 24px",background:"#ef4444",border:"none",borderRadius:"999px",color:"white",cursor:"pointer",fontWeight:"500"}:{}},h?"Pause":"Play"),Ee.default.createElement("button",{onClick:F,disabled:g>=c.length-1,className:n?"":"p-2 rounded-lg bg-gray-100 hover:bg-gray-200 disabled:opacity-50",style:n?{padding:"8px 12px",background:"rgba(255,255,255,0.1)",border:"none",borderRadius:"8px",color:"white",cursor:g>=c.length-1?"not-allowed":"pointer",opacity:g>=c.length-1?.5:1}:{}},">>")),Ee.default.createElement("span",{className:n?"":"text-sm text-gray-600 font-mono",style:n?{fontSize:"14px",color:"rgba(255,255,255,0.7)",fontFamily:Fe.mono}:{}},de(De?.timestamp_ms||0)," / ",de(s?.duration_ms||0))),Ee.default.createElement("div",{className:"flex items-center gap-2"},Ee.default.createElement("span",{className:n?"":"text-sm text-gray-500",style:n?{fontSize:"14px",color:"rgba(255,255,255,0.5)"}:{}},"Speed:"),[.5,1,2,4].map(K=>Ee.default.createElement("button",{key:K,onClick:()=>S(K),className:n?"":`px-2 py-1 rounded text-sm ${x===K?"bg-red-500 text-white":"bg-gray-100 text-gray-600"}`,style:n?{padding:"4px 10px",background:x===K?"#ef4444":"rgba(255,255,255,0.1)",color:"white",border:"none",borderRadius:"6px",cursor:"pointer",fontSize:"13px"}:{}},K,"x")))))):Ee.default.createElement("div",{className:"flex items-center justify-center h-64"},Ee.default.createElement("div",{className:"text-gray-500"},"No recording available"))}var he=te(ne());var rw=e=>e==null?"0":e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString();function B_({account:e,user:t,subscription:r,agentCount:n=0}){let{darkMode:a}=kt(),[o,i]=(0,he.useState)(null),[l,s]=(0,he.useState)(!1),[u,c]=(0,he.useState)(!1),[d,f]=(0,he.useState)(!1),[p,m]=(0,he.useState)(null);(0,he.useEffect)(()=>{fetch("/api/usage").then(S=>S.ok?S.json():null).then(S=>i(S?.usage||null)).catch(()=>i(null))},[]);let y=async()=>{f(!0),m(null);try{await Vf({planSlug:"pro"})}catch(S){m(S.message),f(!1)}},h=()=>{e?.telemetry_api_key&&navigator.clipboard.writeText(e.telemetry_api_key).then(()=>{s(!0),setTimeout(()=>s(!1),2e3)})},v={backgroundColor:a?"#1f1f1f":"#ffffff",borderColor:a?"#2a2a2a":"#e5e7eb"},g=r?.plan_name||"Free",b={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"}},x=b[g.toLowerCase()]||b.free;return he.default.createElement("div",{className:"p-6 space-y-6"},he.default.createElement("div",null,he.default.createElement("h2",{className:`text-2xl font-bold ${a?"text-white":"text-gray-900"}`},"Organization"),he.default.createElement("p",{className:`mt-1 ${a?"text-gray-400":"text-gray-500"}`},"Manage your workspace, team, and billing")),he.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6"},he.default.createElement("div",{className:"border rounded-lg p-6",style:v},he.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${a?"text-white":"text-gray-900"}`},"Workspace"),he.default.createElement("div",{className:"space-y-3"},he.default.createElement("div",{className:"flex justify-between items-center"},he.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Name"),he.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},e?.name||"My Workspace")),he.default.createElement("div",{className:"flex justify-between items-center"},he.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Owner"),he.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},t?.email||"you@example.com")),he.default.createElement("div",{className:"flex justify-between items-center"},he.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Created"),he.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},e?.created_at?new Date(e.created_at).toLocaleDateString():"Today")))),he.default.createElement("div",{className:"border rounded-lg p-6",style:v},he.default.createElement("div",{className:"flex items-center justify-between mb-4"},he.default.createElement("h3",{className:`text-lg font-semibold ${a?"text-white":"text-gray-900"}`},"Current Plan"),he.default.createElement("span",{className:"px-3 py-1 bg-red-100 text-red-700 rounded-full text-sm font-medium"},g)),he.default.createElement("div",{className:"space-y-3"},he.default.createElement("div",{className:"flex justify-between items-center"},he.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Team Seats"),he.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},x.seats)),he.default.createElement("div",{className:"flex justify-between items-center"},he.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Workspaces"),he.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},x.workspaces)),he.default.createElement("div",{className:"flex justify-between items-center"},he.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Agents"),he.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},x.agents)),he.default.createElement("div",{className:"flex justify-between items-center"},he.default.createElement("span",{className:a?"text-gray-400":"text-gray-500"},"Traces"),he.default.createElement("span",{className:`font-medium ${a?"text-white":"text-gray-900"}`},x.traces))),g.toLowerCase()!=="enterprise"&&he.default.createElement(he.default.Fragment,null,he.default.createElement("button",{onClick:y,disabled:d,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"},d?"Redirecting to checkout\u2026":"Upgrade Plan"),p&&he.default.createElement("p",{className:"mt-2 text-sm text-red-500 text-center"},p)))),he.default.createElement("div",{className:"border rounded-lg p-6",style:v},he.default.createElement("div",{className:"flex items-center justify-between mb-4"},he.default.createElement("h3",{className:`text-lg font-semibold ${a?"text-white":"text-gray-900"}`},"Team Members"),he.default.createElement("button",{className:"px-4 py-2 text-sm bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-colors"},"+ Invite Member")),he.default.createElement("div",{className:"overflow-hidden"},he.default.createElement("table",{className:"min-w-full"},he.default.createElement("thead",null,he.default.createElement("tr",{className:a?"border-b border-gray-700":"border-b border-gray-200"},he.default.createElement("th",{className:`text-left py-3 px-4 text-sm font-medium ${a?"text-gray-400":"text-gray-500"}`},"Member"),he.default.createElement("th",{className:`text-left py-3 px-4 text-sm font-medium ${a?"text-gray-400":"text-gray-500"}`},"Role"),he.default.createElement("th",{className:`text-left py-3 px-4 text-sm font-medium ${a?"text-gray-400":"text-gray-500"}`},"Status"))),he.default.createElement("tbody",null,he.default.createElement("tr",null,he.default.createElement("td",{className:"py-3 px-4"},he.default.createElement("div",{className:"flex items-center space-x-3"},he.default.createElement("div",{className:"w-8 h-8 bg-red-100 rounded-full flex items-center justify-center"},he.default.createElement("span",{className:"text-red-600 font-medium text-sm"},t?.name?.charAt(0).toUpperCase()||"U")),he.default.createElement("div",null,he.default.createElement("p",{className:`font-medium ${a?"text-white":"text-gray-900"}`},t?.name||"You"),he.default.createElement("p",{className:`text-sm ${a?"text-gray-400":"text-gray-500"}`},t?.email)))),he.default.createElement("td",{className:"py-3 px-4"},he.default.createElement("span",{className:"px-2 py-1 bg-purple-100 text-purple-700 rounded text-sm"},"Owner")),he.default.createElement("td",{className:"py-3 px-4"},he.default.createElement("span",{className:"flex items-center text-green-600"},he.default.createElement("span",{className:"w-2 h-2 bg-green-500 rounded-full mr-2"}),"Active"))))))),he.default.createElement("div",{className:"border rounded-lg p-6",style:v},he.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${a?"text-white":"text-gray-900"}`},"Usage This Month"),he.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4"},he.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:a?"#252525":"#f9fafb"}},he.default.createElement("p",{className:`text-2xl font-bold ${a?"text-white":"text-gray-900"}`},n),he.default.createElement("p",{className:`text-sm ${a?"text-gray-400":"text-gray-500"}`},"Agents")),he.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:a?"#252525":"#f9fafb"}},he.default.createElement("p",{className:`text-2xl font-bold ${a?"text-white":"text-gray-900"}`},rw(o?.traces_used),o?.traces_limit>0&&he.default.createElement("span",{className:`text-sm font-normal ${a?"text-gray-500":"text-gray-400"}`}," / ",rw(o.traces_limit))),he.default.createElement("p",{className:`text-sm ${a?"text-gray-400":"text-gray-500"}`},"Traces")),he.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:a?"#252525":"#f9fafb"}},he.default.createElement("p",{className:`text-2xl font-bold ${a?"text-white":"text-gray-900"}`},rw(o?.runs_used)),he.default.createElement("p",{className:`text-sm ${a?"text-gray-400":"text-gray-500"}`},"Executions")),he.default.createElement("div",{className:"text-center p-4 rounded-lg",style:{backgroundColor:a?"#252525":"#f9fafb"}},he.default.createElement("p",{className:`text-2xl font-bold ${a?"text-white":"text-gray-900"}`},rw(o?.tokens_used)),he.default.createElement("p",{className:`text-sm ${a?"text-gray-400":"text-gray-500"}`},"Tokens")))),he.default.createElement("div",{className:"border rounded-lg p-6",style:v},he.default.createElement("h3",{className:`text-lg font-semibold mb-1 ${a?"text-white":"text-gray-900"}`},"Telemetry"),he.default.createElement("p",{className:`text-sm mb-4 ${a?"text-gray-400":"text-gray-500"}`},"Send traces from your own ActiveAgent app to this workspace. Add this to your"," ",he.default.createElement("code",{className:`px-1 rounded text-xs ${a?"bg-gray-800 text-gray-300":"bg-gray-100 text-gray-700"}`},"config/active_agent.yml"),":"),he.default.createElement("pre",{className:`text-xs rounded-lg p-4 overflow-x-auto mb-4 ${a?"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"] %>`),ge.default.createElement("div",{className:"flex items-center justify-between gap-3"},ge.default.createElement("div",{className:"min-w-0 flex-1"},ge.default.createElement("p",{className:`text-xs uppercase tracking-wide mb-1 ${a?"text-gray-500":"text-gray-400"}`},"API Key"),ge.default.createElement("code",{className:`block truncate text-sm font-mono px-3 py-2 rounded-lg border ${a?"bg-gray-900 border-gray-700 text-gray-300":"bg-gray-50 border-gray-200 text-gray-700"}`},e?.telemetry_api_key?u?e.telemetry_api_key:"\u2022".repeat(24):"Not available")),ge.default.createElement("div",{className:"flex gap-2 flex-shrink-0 self-end"},ge.default.createElement("button",{onClick:()=>c(!u),className:"px-3 py-2 text-sm bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-colors"},u?"Hide":"Show"),ge.default.createElement("button",{onClick:h,className:"px-3 py-2 text-sm bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors"},l?"Copied!":"Copy")))))}var de=re(ne());var M$={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 N_({user:e,account:t}){let{darkMode:r,toggleDarkMode:n}=At(),[a,i]=(0,de.useState)("profile"),[o,l]=(0,de.useState)([]),[s,u]=(0,de.useState)([]),[c,d]=(0,de.useState)(!1),[f,p]=(0,de.useState)(""),[m,y]=(0,de.useState)(!1),[h,v]=(0,de.useState)(null),[g,b]=(0,de.useState)(!1),[x,S]=(0,de.useState)(null),[w,_]=(0,de.useState)(null),[k,A]=(0,de.useState)(""),[P,K]=(0,de.useState)(!1),z=(0,de.useCallback)(async()=>{try{let[T,j]=await Promise.all([fetch("/api/api_keys"),fetch("/api/provider_keys")]);if(!T.ok||!j.ok)throw new Error("Failed to load keys");let R=await T.json(),U=await j.json();l(R.api_keys||[]),u(U.provider_keys||[]),S(null)}catch{S("Could not load API keys. Are you signed in?")}finally{d(!0)}},[]);(0,de.useEffect)(()=>{a==="api-keys"&&!c&&z()},[a,c,z]);let Q=async()=>{if(!(!f.trim()||m)){y(!0),S(null);try{let T=await fetch("/api/api_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:f.trim()})});if(!T.ok)throw new Error("create failed");let j=await T.json();v(j.api_key),b(!1),p(""),await z()}catch{S("Could not create the API key.")}finally{y(!1)}}},M=async T=>{if(window.confirm("Revoke this API key? Requests using it will stop working immediately."))try{if(!(await fetch(`/api/api_keys/${T}`,{method:"DELETE"})).ok)throw new Error("delete failed");h&&h.id===T&&v(null),await z()}catch{S("Could not revoke the API key.")}},F=async T=>{if(!(!k.trim()||P)){K(!0),S(null);try{let j=await fetch("/api/provider_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:T,credential:k.trim()})});if(!j.ok){let R=await j.json().catch(()=>({}));throw new Error(Array.isArray(R.error)?R.error.join(", "):"save failed")}_(null),A(""),await z()}catch(j){S(`Could not save the ${M$[T]?.label||T} credential${j.message!=="save failed"?`: ${j.message}`:"."}`)}finally{K(!1)}}},N=async T=>{if(window.confirm("Remove this provider credential? Runs will fall back to the platform default credentials, or fail until a key is configured."))try{if(!(await fetch(`/api/provider_keys/${T}`,{method:"DELETE"})).ok)throw new Error("delete failed");await z()}catch{S("Could not remove the provider credential.")}},O=async T=>{try{await navigator.clipboard.writeText(T),b(!0),setTimeout(()=>b(!1),2e3)}catch{}},I={backgroundColor:r?"#1f1f1f":"#ffffff",borderColor:r?"#2a2a2a":"#e5e7eb"};return de.default.createElement("div",{className:"p-6 space-y-6"},de.default.createElement("div",null,de.default.createElement("h2",{className:`text-2xl font-bold ${r?"text-white":"text-gray-900"}`},"Settings"),de.default.createElement("p",{className:`mt-1 ${r?"text-gray-400":"text-gray-500"}`},"Manage your account and preferences")),de.default.createElement("div",{className:"border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},de.default.createElement("nav",{className:"flex space-x-8"},[{id:"profile",label:"Profile"},{id:"api-keys",label:"API Keys"},{id:"notifications",label:"Notifications"},{id:"billing",label:"Billing"}].map(T=>de.default.createElement("button",{key:T.id,onClick:()=>i(T.id),className:`py-4 px-1 border-b-2 font-medium text-sm transition-colors ${a===T.id?"border-red-500 text-red-500":`border-transparent ${r?"text-gray-400 hover:text-gray-300":"text-gray-500 hover:text-gray-700"}`}`},T.label)))),a==="profile"&&de.default.createElement("div",{className:"space-y-6"},de.default.createElement("div",{className:"border rounded-lg p-6",style:I},de.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Profile Information"),de.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4"},de.default.createElement("div",null,de.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"First Name"),de.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"}`})),de.default.createElement("div",null,de.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"Last Name"),de.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"}`})),de.default.createElement("div",{className:"md:col-span-2"},de.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"Email"),de.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"}`}))),de.default.createElement("button",{className:"mt-4 px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600"},"Save Changes")),de.default.createElement("div",{className:"border rounded-lg p-6",style:I},de.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Appearance"),de.default.createElement("div",{className:"flex items-center justify-between"},de.default.createElement("div",null,de.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},"Dark Mode"),de.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},"Use dark theme across the dashboard")),de.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"}`},de.default.createElement("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${r?"translate-x-6":"translate-x-1"}`}))))),a==="api-keys"&&de.default.createElement("div",{className:"space-y-6"},de.default.createElement("div",{className:"border rounded-lg p-6",style:I},de.default.createElement("div",{className:"flex items-center justify-between mb-4"},de.default.createElement("h3",{className:`text-lg font-semibold ${r?"text-white":"text-gray-900"}`},"API Keys"),de.default.createElement("div",{className:"flex items-center space-x-2"},de.default.createElement("input",{type:"text",value:f,onChange:T=>p(T.target.value),onKeyDown:T=>T.key==="Enter"&&Q(),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"}`}),de.default.createElement("button",{onClick:Q,disabled:!f.trim()||m,className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 disabled:opacity-50 whitespace-nowrap"},m?"Creating\u2026":"+ Create New Key"))),de.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"}`},de.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.")),x&&de.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"}`},x),h&&de.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"}`},de.default.createElement("p",{className:`text-sm font-medium mb-2 ${r?"text-green-300":"text-green-800"}`},"Key \u201C",h.name,"\u201D created. Copy it now \u2014 it won't be shown again."),de.default.createElement("div",{className:"flex items-center space-x-2"},de.default.createElement("code",{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"}`},h.token),de.default.createElement("button",{onClick:()=>O(h.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"}`},g?"Copied!":"Copy"),de.default.createElement("button",{onClick:()=>v(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"))),o.length===0?de.default.createElement("div",{className:`text-center py-8 ${r?"text-gray-400":"text-gray-500"}`},de.default.createElement("p",null,c?"No API keys yet":"Loading\u2026"),c&&de.default.createElement("p",{className:"text-sm"},"Create your first API key to authenticate requests")):de.default.createElement("div",{className:"space-y-2"},o.map(T=>de.default.createElement("div",{key:T.id,className:"flex items-center justify-between p-4 rounded-lg",style:{backgroundColor:r?"#252525":"#f9fafb"}},de.default.createElement("div",null,de.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},T.name),de.default.createElement("p",{className:`text-sm font-mono ${r?"text-gray-400":"text-gray-500"}`},T.masked_token,de.default.createElement("span",{className:"font-sans"}," \xB7 created ",new Date(T.created_at).toLocaleDateString(),T.last_used_at?` \xB7 last used ${new Date(T.last_used_at).toLocaleDateString()}`:" \xB7 never used"))),de.default.createElement("button",{onClick:()=>M(T.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"))))),de.default.createElement("div",{className:"border rounded-lg p-6",style:I},de.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Provider API Keys"),de.default.createElement("p",{className:`text-sm mb-4 ${r?"text-gray-400":"text-gray-500"}`},"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."),de.default.createElement("div",{className:"space-y-4"},s.map(({provider:T,host_based:j,configured:R,hint:U})=>{let q=M$[T]||{label:T,icon:"\u{1F511}",placeholder:""},ee=w===T;return de.default.createElement("div",{key:T,className:"p-4 rounded-lg",style:{backgroundColor:r?"#252525":"#f9fafb"}},de.default.createElement("div",{className:"flex items-center justify-between"},de.default.createElement("div",{className:"flex items-center space-x-3"},de.default.createElement("span",{className:"text-xl"},q.icon),de.default.createElement("div",null,de.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},q.label),de.default.createElement("p",{className:`text-sm ${R?r?"text-green-400":"text-green-600":r?"text-gray-400":"text-gray-500"}`},R?j?U:`Configured (${U})`:"Not configured"))),de.default.createElement("div",{className:"flex items-center space-x-2"},R&&!ee&&de.default.createElement("button",{onClick:()=>N(T),className:`px-3 py-1 text-sm rounded ${r?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},"Remove"),de.default.createElement("button",{onClick:()=>{_(ee?null:T),A("")},className:`px-3 py-1 text-sm rounded ${r?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},ee?"Cancel":R?"Update":"Configure"))),ee&&de.default.createElement("div",{className:"mt-3 flex items-center space-x-2"},de.default.createElement("input",{type:j?"text":"password",value:k,onChange:fe=>A(fe.target.value),onKeyDown:fe=>fe.key==="Enter"&&F(T),placeholder:j?q.placeholder:`${q.label} API key (${q.placeholder})`,autoFocus:!0,className:`flex-1 px-3 py-2 border rounded-lg text-sm font-mono ${r?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),de.default.createElement("button",{onClick:()=>F(T),disabled:!k.trim()||P,className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 disabled:opacity-50 text-sm"},P?"Saving\u2026":"Save")),j&&ee&&de.default.createElement("p",{className:`mt-2 text-xs ${r?"text-gray-500":"text-gray-400"}`},"URL of your Ollama server's OpenAI-compatible endpoint. For a locally running Ollama use http://localhost:11434/v1 (the hosted platform needs a publicly reachable URL, e.g. a tunnel)."))})))),a==="notifications"&&de.default.createElement("div",{className:"border rounded-lg p-6",style:I},de.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Email Notifications"),de.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((T,j)=>de.default.createElement("div",{key:j,className:"flex items-center justify-between py-3 border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},de.default.createElement("div",null,de.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},T.label),de.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},T.desc)),de.default.createElement("button",{className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${T.enabled?"bg-red-500":r?"bg-gray-700":"bg-gray-300"}`},de.default.createElement("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${T.enabled?"translate-x-6":"translate-x-1"}`})))))),a==="billing"&&de.default.createElement("div",{className:"space-y-6"},de.default.createElement("div",{className:"border rounded-lg p-6",style:I},de.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Subscription"),de.default.createElement("div",{className:"flex items-center justify-between p-4 rounded-lg",style:{backgroundColor:r?"#252525":"#f9fafb"}},de.default.createElement("div",null,de.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},"Free Plan"),de.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},"Current plan")),de.default.createElement("button",{className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600"},"Upgrade to Pro"))),de.default.createElement("div",{className:"border rounded-lg p-6",style:I},de.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Payment Method"),de.default.createElement("p",{className:`${r?"text-gray-400":"text-gray-500"}`},"No payment method on file"),de.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")),de.default.createElement("div",{className:"border rounded-lg p-6",style:I},de.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Invoices"),de.default.createElement("p",{className:`${r?"text-gray-400":"text-gray-500"}`},"No invoices yet"))))}var Oe=re(ne());var Uue=[{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."}],C_={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"},Ei={color:"var(--color-text-muted)",fontSize:12};function P$(e){let t=e.latest_run?.path||e.path||"";return/^\/evaluations(?:\/\d+\/runs\/\d+\/report)?$/.test(t)?Je(t):null}function Fue({card:e,onAsk:t,busy:r}){let n=P$(e),a=e.type==="demo_candidate",i=e.run_id||e.latest_run?.run_id,o=e.status||e.latest_run?.status;return Oe.default.createElement(kn,{padding:16,testId:"assistant-evidence-card",style:{display:"grid",gap:10}},Oe.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Oe.default.createElement(jn,{tone:a?"warning":"info"},a?"Historical pass":"Recorded evaluation"),o&&Oe.default.createElement(jn,{tone:o==="errored"||o==="failed"?"error":"muted"},o),e.check_strength&&Oe.default.createElement("span",{style:Ei},String(e.check_strength).replaceAll("_"," "))),Oe.default.createElement("div",{style:{fontWeight:600,overflowWrap:"anywhere"}},e.recorded_prompt||e.title),Oe.default.createElement("div",{style:{...Ei,fontFamily:Ce}},[e.provider,e.model,i&&`run ${i}`].filter(Boolean).join(" \xB7 "),e.completed_at&&` \xB7 ${new Date(e.completed_at).toLocaleString()}`),e.output_excerpt&&Oe.default.createElement("div",{style:{fontSize:13,whiteSpace:"pre-wrap",color:"var(--color-text-secondary)"}},e.output_excerpt),(e.error||e.latest_run?.error)&&Oe.default.createElement("div",{style:{fontSize:13,whiteSpace:"pre-wrap",color:"var(--color-error)"}},e.error||e.latest_run.error),e.fault&&Oe.default.createElement("div",{style:Ei},"Fault: ",e.fault.replaceAll("_"," ")),e.samples_evaluated!=null&&Oe.default.createElement("div",{style:Ei},e.samples_passed||0," / ",e.samples_evaluated," scenarios passed"),e.tool_names?.length>0&&Oe.default.createElement("div",{style:Ei},"Tools recorded: ",e.tool_names.join(", ")),Array.isArray(e.caveats)&&e.caveats.length>0&&Oe.default.createElement("details",{style:Ei},Oe.default.createElement("summary",{style:{cursor:"pointer"}},"Evidence limits"),Oe.default.createElement("ul",{style:{paddingLeft:18,marginTop:8}},e.caveats.map((s,u)=>Oe.default.createElement("li",{key:u},s)))),Oe.default.createElement("div",{style:{display:"flex",gap:12,alignItems:"center",flexWrap:"wrap"}},n&&Oe.default.createElement("a",{href:n,target:"_blank",rel:"noopener noreferrer",style:{fontSize:13,color:"var(--color-accent-ui)"}},n===Je("/evaluations")?"Open evaluations \u2192":"Open report \u2192"),e.evaluation_id&&i&&Oe.default.createElement(on,{size:"sm",disabled:r,onClick:()=>t(`Read evaluation ${e.evaluation_id}, run ${i}. Explain its results, the strength of its checks, and what needs fixing.`)},"Explain this run")))}function Wue({draft:e,onReview:t}){return Oe.default.createElement(kn,{padding:18,testId:"assistant-agent-draft",style:{display:"grid",gap:12,borderColor:"var(--color-accent-ui)"}},Oe.default.createElement(yt,null,"Agent draft \xB7 not saved"),Oe.default.createElement("div",{style:{fontWeight:600,fontSize:18}},e.name),Oe.default.createElement("p",{style:{margin:0,color:"var(--color-text-secondary)",fontSize:13}},e.description),Oe.default.createElement("div",{style:{...Ei,fontFamily:Ce}},e.provider," / ",e.model),Oe.default.createElement("details",null,Oe.default.createElement("summary",{style:{cursor:"pointer",fontSize:13}},"Review instructions and tools"),Oe.default.createElement("pre",{style:{whiteSpace:"pre-wrap",fontFamily:"inherit",fontSize:13,maxHeight:280,overflow:"auto"}},e.instructions),Oe.default.createElement("p",{style:Ei},"Tools: ",e.tools?.length?e.tools.join(", "):"None")),Oe.default.createElement(on,{variant:"primary",onClick:()=>t(e),style:{justifySelf:"start"}},"Review in builder \u2192"))}function E_({session:e,onSessionChange:t,onReviewDraft:r,onOpenSettings:n,executionEnabled:a=!0}){let[i,o]=(0,Oe.useState)(null),[l,s]=(0,Oe.useState)(""),[u,c]=(0,Oe.useState)(!1),[d,f]=(0,Oe.useState)(null),[p,m]=(0,Oe.useState)(!1),y=(0,Oe.useRef)(null),h=(0,Oe.useRef)(null),v=(0,Oe.useRef)(e);v.current=e,(0,Oe.useEffect)(()=>{let k=new AbortController;return fetch("/api/dashboard_assistant",{signal:k.signal}).then(async A=>{let P=await A.json();if(!A.ok)throw new Error(P.error||"Could not load assistant configuration.");o(P),v.current.provider||t({...v.current,...P.defaults})}).catch(A=>{A.name!=="AbortError"&&f({message:A.message})}),()=>{k.abort(),y.current?.abort()}},[]);let g=e.messages||[],b=e.provider||i?.defaults?.provider||"",x=e.model||"",S=i?.limits?.message_characters||8e3,w=i?.providers?.find(k=>k.id===b),_=async k=>{let A=k.trim();if(!A||u||!i||!a||!x.trim()||!p)return;let P=g.map(Q=>({role:Q.role,content:Q.content})).slice(-12);for(;P.reduce((Q,M)=>Q+M.content.length,0)>24e3;)P.shift();let K=[...g,{role:"user",content:A}];t({...e,messages:K}),s(""),f(null),c(!0);let z=new AbortController;y.current=z;try{let Q=await fetch("/api/dashboard_assistant",{method:"POST",signal:z.signal,headers:{"Content-Type":"application/json","X-CSRF-Token":document.querySelector('meta[name="csrf-token"]')?.content||""},body:JSON.stringify({message:A,history:P,provider:b,model:x.trim(),allow_provider_processing:!0})}),M=await Q.json();if(!Q.ok){f({message:typeof M.error=="string"?M.error:"The assistant could not complete this request.",setup:M.setup_required,retry:A}),t({...e,messages:g}),s(A);return}t({...e,messages:[...K,{role:"assistant",content:M.answer,cards:M.cards||[],references:M.references||[],drafts:M.drafts||[],limitations:M.limitations||[]}]})}catch(Q){Q.name!=="AbortError"&&(f({message:"Connection interrupted. No answer was received; the server may still be finishing the request."}),t({...e,messages:g}),s(A))}finally{c(!1)}};return Oe.default.createElement("div",{style:{maxWidth:980,margin:"0 auto",color:"var(--color-text-primary)",display:"grid",gap:22}},Oe.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:16,alignItems:"start"}},Oe.default.createElement("div",null,Oe.default.createElement(yt,null,"Workspace assistant"),Oe.default.createElement("h1",{style:{margin:"8px 0",fontSize:30,fontWeight:600,letterSpacing:"-0.035em"}},"Ask ActiveAgents"),Oe.default.createElement("p",{style:{margin:0,color:"var(--color-text-secondary)",fontSize:14}},"Find evaluation evidence. Understand failures. Build the next agent.")),g.length>0&&Oe.default.createElement(on,{disabled:u,onClick:()=>{t({...e,messages:[]}),f(null),s(""),m(!1)}},"New conversation")),!g.length&&Oe.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:12}},Uue.map(k=>Oe.default.createElement("button",{key:k.label,onClick:()=>{s(k.message),h.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"}},Oe.default.createElement("div",{style:{fontSize:14,fontWeight:600,marginBottom:8}},k.label," \u2197"),Oe.default.createElement("div",{style:{fontSize:12,lineHeight:1.6,color:"var(--color-text-secondary)"}},k.message)))),Oe.default.createElement("div",{role:"log","aria-label":"Assistant conversation","aria-live":"polite",style:{display:"grid",gap:20}},g.map((k,A)=>Oe.default.createElement("div",{key:A,style:{display:"grid",gap:12}},Oe.default.createElement(yt,{color:k.role==="user"?"var(--color-text-muted)":"var(--color-accent-ui)"},k.role==="user"?"You":"ActiveAgents"),Oe.default.createElement("div",{style:{whiteSpace:"pre-wrap",overflowWrap:"anywhere",lineHeight:1.7,fontSize:14}},k.content),k.cards?.map(P=>Oe.default.createElement(Fue,{key:P.id,card:P,onAsk:K=>{s(K),h.current?.querySelector("textarea")?.focus()},busy:u})),k.references?.length>0&&Oe.default.createElement("div",{"aria-label":"Evidence references",style:{...Ei,display:"flex",gap:12,flexWrap:"wrap"}},k.references.map(P=>{let K=P$(P);return K&&Oe.default.createElement("a",{key:P.id,href:K,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--color-accent-ui)"}},P.id)})),k.drafts?.map(P=>Oe.default.createElement(Wue,{key:P.id,draft:P,onReview:r})),k.limitations?.length>0&&Oe.default.createElement("details",{style:Ei},Oe.default.createElement("summary",{style:{cursor:"pointer"}},"Scope of this answer"),Oe.default.createElement("ul",{style:{paddingLeft:18}},k.limitations.map((P,K)=>Oe.default.createElement("li",{key:K},P)))))),u&&Oe.default.createElement("div",{role:"status",style:{color:"var(--color-text-secondary)",fontSize:13}},"Working with your workspace evidence\u2026")),d&&Oe.default.createElement(kn,{padding:16,role:"alert",style:{borderColor:"var(--color-warning)",display:"grid",gap:12}},Oe.default.createElement("div",{style:{fontSize:14}},d.message),d.setup&&Oe.default.createElement(on,{onClick:n,style:{justifySelf:"start"}},"Configure provider \u2192")),Oe.default.createElement(kn,{padding:18},Oe.default.createElement("form",{ref:h,onSubmit:k=>{k.preventDefault(),_(l)},style:{display:"grid",gap:14}},Oe.default.createElement("label",{htmlFor:"assistant-question",style:{fontSize:13,fontWeight:600}},"What would you like to do?"),Oe.default.createElement("textarea",{id:"assistant-question",placeholder:"Ask about your evals, or describe an agent to build\u2026",value:l,onChange:k=>s(k.target.value),maxLength:S,rows:3,disabled:u,style:{...C_,resize:"vertical",boxSizing:"border-box"}}),Oe.default.createElement("div",{style:{display:"flex",gap:12,alignItems:"end",flexWrap:"wrap"}},Oe.default.createElement("label",{style:{display:"grid",gap:5,fontSize:11,flex:"1 1 140px"}},"Provider",Oe.default.createElement("select",{"aria-label":"Assistant provider",value:b,disabled:u||!i,onChange:k=>{let A=i.providers.find(P=>P.id===k.target.value);m(!1),t({...e,provider:A?.id||"",model:A?.default_model||""})},style:C_},Oe.default.createElement("option",{value:""},i?"Choose a provider\u2026":"Loading\u2026"),i?.providers?.map(k=>Oe.default.createElement("option",{key:k.id,value:k.id},k.id,k.configured?"":" \xB7 setup needed")))),Oe.default.createElement("label",{style:{display:"grid",gap:5,fontSize:11,flex:"2 1 200px"}},"Model",Oe.default.createElement("input",{"aria-label":"Assistant model",value:x,disabled:u||!i,maxLength:160,onChange:k=>{m(!1),t({...e,model:k.target.value})},style:C_})),Oe.default.createElement(on,{variant:"primary",type:"submit",disabled:u||!i||!l.trim()||!x.trim()||!a||!p},u?"Working\u2026":"Ask ActiveAgents \u2192")),Oe.default.createElement("label",{style:{display:"flex",gap:9,alignItems:"start",fontSize:12,lineHeight:1.6,color:"var(--color-text-secondary)"}},Oe.default.createElement("input",{type:"checkbox",checked:p,disabled:u||!i,onChange:k=>m(k.target.checked),style:{marginTop:4}}),Oe.default.createElement("span",null,"Allow ",b||"the selected provider"," / ",x||"model"," to process my messages, recent conversation history, and authorized evaluation report excerpts for this conversation.")),Oe.default.createElement("div",{style:{...Ei,lineHeight:1.5}},a?w&&!w.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."))))}function Hue({user:e,initialAgents:t=[],meta:r={},account:n=null,subscription:a=null}){let{darkMode:i}=At(),[o,l]=(0,Ge.useState)(t),[s,u]=(0,Ge.useState)("list"),[c,d]=(0,Ge.useState)(null),[f,p]=(0,Ge.useState)(!1),[m,y]=(0,Ge.useState)(null),[h,v]=(0,Ge.useState)(!1),[g,b]=(0,Ge.useState)("recent"),[x,S]=(0,Ge.useState)({messages:[]}),[w,_]=(0,Ge.useState)(null),k=r.assistantEnabled!==!1,[A,P]=(0,Ge.useState)(null);(0,Ge.useEffect)(()=>{let U=()=>{let q=gs();if(q==="/assistant"&&k)u("assistant");else if(q.startsWith("/traces"))u("traces");else if(q.startsWith("/metrics"))u("metrics");else if(q.startsWith("/interactions"))u("interactions");else if(q.startsWith("/tools"))u("tools");else if(q.startsWith("/mcp")){let ee=q.match(/^\/mcp\/([^/?#]+)/)?.[1];ee&&P(decodeURIComponent(ee)),u("mcp")}else if(q.startsWith("/evaluations"))u("evaluations");else if(q.startsWith("/analytics"))u("analytics");else if(q.startsWith("/agents/new"))u("builder");else if(q.match(/\/agents\/\d+\/(interactions|history)/)){let ee=q.match(/\/agents\/(\d+)/)?.[1];q.includes("/history")&&window.history.replaceState({},"",q.replace("/history","/interactions")),ee&&K(ee,"history")}else if(q.match(/\/agents\/\d+\/analytics/)){let ee=q.match(/\/agents\/(\d+)/)?.[1];ee&&K(ee,"agent-analytics")}else if(q.match(/\/agents\/\d+\/edit/)){let ee=q.match(/\/agents\/(\d+)/)?.[1];ee&&K(ee,"editor")}else if(q.match(/\/agents\/\d+\/run/)){let ee=q.match(/\/agents\/(\d+)/)?.[1];ee&&K(ee,"runner")}else if(q.match(/\/agents\/\d+\/?$/)){let ee=q.match(/\/agents\/(\d+)/)?.[1];ee&&K(ee,"history")}else q.startsWith("/replay")?u("replay"):q.startsWith("/sandbox")||q.startsWith("/demo")?u("sandbox"):q.startsWith("/organization")?u("organization"):q.startsWith("/settings")?u("settings"):u("list")};return U(),window.addEventListener("popstate",U),window.addEventListener("dashboard:navigate",U),()=>{window.removeEventListener("popstate",U),window.removeEventListener("dashboard:navigate",U)}},[]);let K=async(U,q)=>{p(!0);try{let fe=await(await fetch(`/api/agents/${U}`)).json();d(fe.agent),u(q)}catch{M("Failed to load agent","error")}finally{p(!1)}},z=async(U=g)=>{p(!0);try{let ee=await(await fetch(`/api/agents?sort=${U}`)).json();l(ee.agents)}catch{M("Failed to refresh agents","error")}finally{p(!1)}},Q=U=>{b(U),z(U)},M=(U,q="info")=>{y({message:U,type:q}),setTimeout(()=>y(null),3e3)},F=async U=>{p(!0);try{let q=await fetch("/api/agents",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent:U})});if(q.ok){let ee=await q.json();l([ee.agent,...o]),d(ee.agent),u("editor"),M("Agent created successfully!","success"),window.history.pushState({},"",Je(`/agents/${ee.agent.id}/edit`))}else{let ee=await q.json();M(ee.errors?.join(", ")||"Failed to create agent","error")}}catch{M("Failed to create agent","error")}finally{p(!1)}},N=async(U,q)=>{p(!0);try{let ee=await fetch(`/api/agents/${U}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent:q})});if(ee.ok){let fe=await ee.json();l(o.map(pe=>pe.id===U?fe.agent:pe)),d(fe.agent),M("Agent updated!","success")}else{let fe=await ee.json();M(fe.errors?.join(", ")||"Failed to update agent","error")}}catch{M("Failed to update agent","error")}finally{p(!1)}},O=async U=>{if(confirm("Are you sure you want to delete this agent?")){p(!0);try{(await fetch(`/api/agents/${U}`,{method:"DELETE"})).ok&&(l(o.filter(ee=>ee.id!==U)),d(null),u("list"),M("Agent deleted","success"),window.history.pushState({},"",Je()))}catch{M("Failed to delete agent","error")}finally{p(!1)}}},I=async U=>{p(!0);try{let q=await fetch(`/api/agents/${U}/duplicate`,{method:"POST"});if(q.ok){let ee=await q.json();l([ee.agent,...o]),M("Agent duplicated!","success")}}catch{M("Failed to duplicate agent","error")}finally{p(!1)}},D=U=>{l([U,...o]),v(!1),M("Agent created from template!","success"),j("editor",U)},T=["editor","runner","agent-analytics","history"],j=(U,q=null)=>{if(U==="assistant"&&!k)return;U==="builder"&&_(null),q?.id&&T.includes(U)&&q.instructions===void 0?K(q.id,U):(d(q),u(U));let ee=Je();U==="assistant"?ee=Je("/assistant"):U==="builder"?ee=Je("/agents/new"):U==="editor"&&q?ee=Je(`/agents/${q.id}/edit`):U==="runner"&&q?ee=Je(`/agents/${q.id}/run`):U==="agent-analytics"&&q?ee=Je(`/agents/${q.id}/analytics`):U==="history"&&q?ee=Je(`/agents/${q.id}/interactions`):U==="analytics"?ee=Je("/analytics"):U==="traces"?ee=Je("/traces"):U==="metrics"?ee=Je("/metrics"):U==="interactions"?ee=Je("/interactions"):U==="tools"?ee=Je("/tools"):U==="mcp"?ee=Je("/mcp"):U==="evaluations"?ee=Je("/evaluations"):U==="replay"?ee=Je("/replay"):U==="sandbox"?ee=Je("/sandbox"):U==="organization"?ee=Je("/organization"):U==="settings"&&(ee=Je("/settings")),window.history.pushState({},"",ee)},R=()=>{switch(s){case"assistant":return k?Ge.default.createElement(E_,{session:x,onSessionChange:S,executionEnabled:r.executionEnabled!==!1,onOpenSettings:()=>j("settings"),onReviewDraft:U=>{_(U),u("builder"),window.history.pushState({},"",Je("/agents/new"))}}):null;case"builder":return Ge.default.createElement(q2,{key:w?.id||"new-agent",initialDraft:w,meta:r,onSave:F,onCancel:()=>j(w?"assistant":"list"),isLoading:f});case"editor":return c?Ge.default.createElement(z1,{key:`editor-${c.id}`,agent:c,meta:r,onSave:U=>N(c.id,U),onDelete:()=>O(c.id),onRun:()=>j("runner",c),onDuplicate:()=>I(c.id),onRunReport:()=>j("history",c),onBack:()=>j("list"),isLoading:f}):null;case"runner":return c?Ge.default.createElement(JE,{agent:c,onBack:()=>j("editor",c)}):null;case"agent-analytics":return c?Ge.default.createElement(z1,{key:`agent-analytics-${c.id}`,agent:c,meta:r,initialTab:"metrics",onSave:U=>N(c.id,U),onDelete:()=>O(c.id),onRun:()=>j("runner",c),onDuplicate:()=>I(c.id),onRunReport:()=>j("history",c),onBack:()=>j("list"),isLoading:f}):null;case"history":return c?Ge.default.createElement(e_,{agent:c,onBack:()=>j("editor",c)}):null;case"analytics":return Ge.default.createElement(RE,{onSelectAgent:U=>{K(U.id,"agent-analytics")}});case"traces":return Ge.default.createElement(Yu,null);case"metrics":return Ge.default.createElement(p_,null);case"interactions":return Ge.default.createElement(el,null);case"tools":return Ge.default.createElement(m_,{onOpenServer:U=>{P(U),j("mcp")}});case"mcp":return Ge.default.createElement(v_,{focusServer:A,onOpenTools:()=>{P(null),j("tools")}});case"evaluations":return Ge.default.createElement(Gv,null);case"replay":return Ge.default.createElement(A_,{onHandoff:U=>{M("Taking over session...","info"),j("sandbox")},onClose:()=>j("list")});case"sandbox":return Ge.default.createElement(w_,{initialType:"playwright_mcp",onClose:()=>j("list")});case"organization":return Ge.default.createElement(k_,{user:e,account:n,subscription:a,agentCount:o.length});case"settings":return Ge.default.createElement(N_,{user:e});default:return Ge.default.createElement(K2,{agents:o,meta:r,onSelect:U=>j("editor",U),onNew:()=>j("builder"),onBrowseTemplates:()=>v(!0),onDuplicate:I,onDelete:O,onRefresh:z,sort:g,onSortChange:Q,isLoading:f})}};return Ge.default.createElement("div",{className:`aa-dashboard min-h-screen flex${i?" theme-dark":""}`,style:{backgroundColor:i?"#0f0f0f":"#f9fafb"}},Ge.default.createElement(r_,{currentView:s,onNavigate:j,agentCount:o.length,account:n,user:e,gemVersion:r.activeagentVersion,assistantEnabled:k}),Ge.default.createElement("div",{className:"flex-1 flex flex-col min-w-0"},Ge.default.createElement(n_,{user:e,account:n}),Ge.default.createElement("main",{className:"flex-1 p-6 overflow-auto"},R())),h&&Ge.default.createElement(t_,{onUseTemplate:D,onClose:()=>v(!1)}),m&&Ge.default.createElement("div",{className:`fixed bottom-4 right-4 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),f&&Ge.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-20 flex items-center justify-center z-50"},Ge.default.createElement("div",{className:`rounded-lg p-4 shadow-xl ${i?"bg-gray-800":"bg-white"}`},Ge.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}))))}function __(e){return Ge.default.createElement(A3,null,Ge.default.createElement(l7,null,Ge.default.createElement(Hue,{...e})))}var Vue="active-agent-dashboard";function Kue(e){let t=e.replace(/\/$/,"");if(!t)return;let r=window.fetch.bind(window);window.fetch=(n,a)=>{if(typeof n=="string"&&n.startsWith("/api/"))return r(`${t}${n}`,a);if(n instanceof Request&&new URL(n.url,window.location.origin).pathname.startsWith("/api/")){let i=new URL(n.url,window.location.origin);return r(new Request(`${t}${i.pathname}${i.search}`,n),a)}return r(n,a)}}function D$(){let e=document.getElementById(Vue);if(!e)return;let t=JSON.parse(e.dataset.props||"{}");window.ACTIVE_AGENT_DASHBOARD=t,Kue(t.mountPath||"/"),(0,j$.createRoot)(e).render(I$.default.createElement(__,{...t}))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",D$):D$(); + api_key: <%= ENV["ACTIVEAGENTS_API_KEY"] %>`),he.default.createElement("div",{className:"flex items-center justify-between gap-3"},he.default.createElement("div",{className:"min-w-0 flex-1"},he.default.createElement("p",{className:`text-xs uppercase tracking-wide mb-1 ${a?"text-gray-500":"text-gray-400"}`},"API Key"),he.default.createElement("code",{className:`block truncate text-sm font-mono px-3 py-2 rounded-lg border ${a?"bg-gray-900 border-gray-700 text-gray-300":"bg-gray-50 border-gray-200 text-gray-700"}`},e?.telemetry_api_key?u?e.telemetry_api_key:"\u2022".repeat(24):"Not available")),he.default.createElement("div",{className:"flex gap-2 flex-shrink-0 self-end"},he.default.createElement("button",{onClick:()=>c(!u),className:"px-3 py-2 text-sm bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-colors"},u?"Hide":"Show"),he.default.createElement("button",{onClick:h,className:"px-3 py-2 text-sm bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors"},l?"Copied!":"Copy")))))}var me=te(ne());var eU={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 $_({user:e,account:t}){let{darkMode:r,toggleDarkMode:n}=kt(),[a,o]=(0,me.useState)("profile"),[i,l]=(0,me.useState)([]),[s,u]=(0,me.useState)([]),[c,d]=(0,me.useState)(!1),[f,p]=(0,me.useState)(""),[m,y]=(0,me.useState)(!1),[h,v]=(0,me.useState)(null),[g,b]=(0,me.useState)(!1),[x,S]=(0,me.useState)(null),[w,O]=(0,me.useState)(null),[k,A]=(0,me.useState)(""),[M,W]=(0,me.useState)(!1),L=(0,me.useCallback)(async()=>{try{let[P,B]=await Promise.all([fetch("/api/api_keys"),fetch("/api/provider_keys")]);if(!P.ok||!B.ok)throw new Error("Failed to load keys");let R=await P.json(),F=await B.json();l(R.api_keys||[]),u(F.provider_keys||[]),S(null)}catch{S("Could not load API keys. Are you signed in?")}finally{d(!0)}},[]);(0,me.useEffect)(()=>{a==="api-keys"&&!c&&L()},[a,c,L]);let H=async()=>{if(!(!f.trim()||m)){y(!0),S(null);try{let P=await fetch("/api/api_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:f.trim()})});if(!P.ok)throw new Error("create failed");let B=await P.json();v(B.api_key),b(!1),p(""),await L()}catch{S("Could not create the API key.")}finally{y(!1)}}},D=async P=>{if(window.confirm("Revoke this API key? Requests using it will stop working immediately."))try{if(!(await fetch(`/api/api_keys/${P}`,{method:"DELETE"})).ok)throw new Error("delete failed");h&&h.id===P&&v(null),await L()}catch{S("Could not revoke the API key.")}},Y=async P=>{if(!(!k.trim()||M)){W(!0),S(null);try{let B=await fetch("/api/provider_keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:P,credential:k.trim()})});if(!B.ok){let R=await B.json().catch(()=>({}));throw new Error(Array.isArray(R.error)?R.error.join(", "):"save failed")}O(null),A(""),await L()}catch(B){S(`Could not save the ${eU[P]?.label||P} credential${B.message!=="save failed"?`: ${B.message}`:"."}`)}finally{W(!1)}}},N=async P=>{if(window.confirm("Remove this provider credential? Runs will fall back to the platform default credentials, or fail until a key is configured."))try{if(!(await fetch(`/api/provider_keys/${P}`,{method:"DELETE"})).ok)throw new Error("delete failed");await L()}catch{S("Could not remove the provider credential.")}},_=async P=>{try{await navigator.clipboard.writeText(P),b(!0),setTimeout(()=>b(!1),2e3)}catch{}},z={backgroundColor:r?"#1f1f1f":"#ffffff",borderColor:r?"#2a2a2a":"#e5e7eb"};return me.default.createElement("div",{className:"p-6 space-y-6"},me.default.createElement("div",null,me.default.createElement("h2",{className:`text-2xl font-bold ${r?"text-white":"text-gray-900"}`},"Settings"),me.default.createElement("p",{className:`mt-1 ${r?"text-gray-400":"text-gray-500"}`},"Manage your account and preferences")),me.default.createElement("div",{className:"border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},me.default.createElement("nav",{className:"flex space-x-8"},[{id:"profile",label:"Profile"},{id:"api-keys",label:"API Keys"},{id:"notifications",label:"Notifications"},{id:"billing",label:"Billing"}].map(P=>me.default.createElement("button",{key:P.id,onClick:()=>o(P.id),className:`py-4 px-1 border-b-2 font-medium text-sm transition-colors ${a===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)))),a==="profile"&&me.default.createElement("div",{className:"space-y-6"},me.default.createElement("div",{className:"border rounded-lg p-6",style:z},me.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Profile Information"),me.default.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4"},me.default.createElement("div",null,me.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"First Name"),me.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"}`})),me.default.createElement("div",null,me.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"Last Name"),me.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"}`})),me.default.createElement("div",{className:"md:col-span-2"},me.default.createElement("label",{className:`block text-sm font-medium mb-1 ${r?"text-gray-300":"text-gray-700"}`},"Email"),me.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"}`}))),me.default.createElement("button",{className:"mt-4 px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600"},"Save Changes")),me.default.createElement("div",{className:"border rounded-lg p-6",style:z},me.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Appearance"),me.default.createElement("div",{className:"flex items-center justify-between"},me.default.createElement("div",null,me.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},"Dark Mode"),me.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},"Use dark theme across the dashboard")),me.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"}`},me.default.createElement("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${r?"translate-x-6":"translate-x-1"}`}))))),a==="api-keys"&&me.default.createElement("div",{className:"space-y-6"},me.default.createElement("div",{className:"border rounded-lg p-6",style:z},me.default.createElement("div",{className:"flex items-center justify-between mb-4"},me.default.createElement("h3",{className:`text-lg font-semibold ${r?"text-white":"text-gray-900"}`},"API Keys"),me.default.createElement("div",{className:"flex items-center space-x-2"},me.default.createElement("input",{type:"text",value:f,onChange:P=>p(P.target.value),onKeyDown:P=>P.key==="Enter"&&H(),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"}`}),me.default.createElement("button",{onClick:H,disabled:!f.trim()||m,className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 disabled:opacity-50 whitespace-nowrap"},m?"Creating\u2026":"+ Create New Key"))),me.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"}`},me.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.")),x&&me.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"}`},x),h&&me.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"}`},me.default.createElement("p",{className:`text-sm font-medium mb-2 ${r?"text-green-300":"text-green-800"}`},"Key \u201C",h.name,"\u201D created. Copy it now \u2014 it won't be shown again."),me.default.createElement("div",{className:"flex items-center space-x-2"},me.default.createElement("code",{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"}`},h.token),me.default.createElement("button",{onClick:()=>_(h.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"}`},g?"Copied!":"Copy"),me.default.createElement("button",{onClick:()=>v(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"))),i.length===0?me.default.createElement("div",{className:`text-center py-8 ${r?"text-gray-400":"text-gray-500"}`},me.default.createElement("p",null,c?"No API keys yet":"Loading\u2026"),c&&me.default.createElement("p",{className:"text-sm"},"Create your first API key to authenticate requests")):me.default.createElement("div",{className:"space-y-2"},i.map(P=>me.default.createElement("div",{key:P.id,className:"flex items-center justify-between p-4 rounded-lg",style:{backgroundColor:r?"#252525":"#f9fafb"}},me.default.createElement("div",null,me.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},P.name),me.default.createElement("p",{className:`text-sm font-mono ${r?"text-gray-400":"text-gray-500"}`},P.masked_token,me.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"))),me.default.createElement("button",{onClick:()=>D(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"))))),me.default.createElement("div",{className:"border rounded-lg p-6",style:z},me.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Provider API Keys"),me.default.createElement("p",{className:`text-sm mb-4 ${r?"text-gray-400":"text-gray-500"}`},"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."),me.default.createElement("div",{className:"space-y-4"},s.map(({provider:P,host_based:B,configured:R,hint:F})=>{let G=eU[P]||{label:P,icon:"\u{1F511}",placeholder:""},ee=w===P;return me.default.createElement("div",{key:P,className:"p-4 rounded-lg",style:{backgroundColor:r?"#252525":"#f9fafb"}},me.default.createElement("div",{className:"flex items-center justify-between"},me.default.createElement("div",{className:"flex items-center space-x-3"},me.default.createElement("span",{className:"text-xl"},G.icon),me.default.createElement("div",null,me.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},G.label),me.default.createElement("p",{className:`text-sm ${R?r?"text-green-400":"text-green-600":r?"text-gray-400":"text-gray-500"}`},R?B?F:`Configured (${F})`:"Not configured"))),me.default.createElement("div",{className:"flex items-center space-x-2"},R&&!ee&&me.default.createElement("button",{onClick:()=>N(P),className:`px-3 py-1 text-sm rounded ${r?"text-red-300 hover:bg-red-900/40":"text-red-600 hover:bg-red-50"}`},"Remove"),me.default.createElement("button",{onClick:()=>{O(ee?null:P),A("")},className:`px-3 py-1 text-sm rounded ${r?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`},ee?"Cancel":R?"Update":"Configure"))),ee&&me.default.createElement("div",{className:"mt-3 flex items-center space-x-2"},me.default.createElement("input",{type:B?"text":"password",value:k,onChange:fe=>A(fe.target.value),onKeyDown:fe=>fe.key==="Enter"&&Y(P),placeholder:B?G.placeholder:`${G.label} API key (${G.placeholder})`,autoFocus:!0,className:`flex-1 px-3 py-2 border rounded-lg text-sm font-mono ${r?"bg-gray-800 border-gray-700 text-white placeholder-gray-500":"bg-white border-gray-300 text-gray-900"}`}),me.default.createElement("button",{onClick:()=>Y(P),disabled:!k.trim()||M,className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 disabled:opacity-50 text-sm"},M?"Saving\u2026":"Save")),B&&ee&&me.default.createElement("p",{className:`mt-2 text-xs ${r?"text-gray-500":"text-gray-400"}`},"URL of your Ollama server's OpenAI-compatible endpoint. For a locally running Ollama use http://localhost:11434/v1 (the hosted platform needs a publicly reachable URL, e.g. a tunnel)."))})))),a==="notifications"&&me.default.createElement("div",{className:"border rounded-lg p-6",style:z},me.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Email Notifications"),me.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,B)=>me.default.createElement("div",{key:B,className:"flex items-center justify-between py-3 border-b",style:{borderColor:r?"#2a2a2a":"#e5e7eb"}},me.default.createElement("div",null,me.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},P.label),me.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},P.desc)),me.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"}`},me.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"}`})))))),a==="billing"&&me.default.createElement("div",{className:"space-y-6"},me.default.createElement("div",{className:"border rounded-lg p-6",style:z},me.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Subscription"),me.default.createElement("div",{className:"flex items-center justify-between p-4 rounded-lg",style:{backgroundColor:r?"#252525":"#f9fafb"}},me.default.createElement("div",null,me.default.createElement("p",{className:`font-medium ${r?"text-white":"text-gray-900"}`},"Free Plan"),me.default.createElement("p",{className:`text-sm ${r?"text-gray-400":"text-gray-500"}`},"Current plan")),me.default.createElement("button",{className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600"},"Upgrade to Pro"))),me.default.createElement("div",{className:"border rounded-lg p-6",style:z},me.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Payment Method"),me.default.createElement("p",{className:`${r?"text-gray-400":"text-gray-500"}`},"No payment method on file"),me.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")),me.default.createElement("div",{className:"border rounded-lg p-6",style:z},me.default.createElement("h3",{className:`text-lg font-semibold mb-4 ${r?"text-white":"text-gray-900"}`},"Invoices"),me.default.createElement("p",{className:`${r?"text-gray-400":"text-gray-500"}`},"No invoices yet"))))}var Me=te(ne());var gce=[{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."}],U_={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"},To={color:"var(--color-text-muted)",fontSize:12};function tU(e){let t=e.latest_run?.path||e.path||"";return/^\/evaluations(?:\/\d+\/runs\/\d+\/report)?$/.test(t)?Ge(t):null}function yce({card:e,onAsk:t,busy:r}){let n=tU(e),a=e.type==="demo_candidate",o=e.run_id||e.latest_run?.run_id,i=e.status||e.latest_run?.status;return Me.default.createElement(yr,{padding:16,testId:"assistant-evidence-card",style:{display:"grid",gap:10}},Me.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},Me.default.createElement(dr,{tone:a?"warning":"info"},a?"Historical pass":"Recorded evaluation"),i&&Me.default.createElement(dr,{tone:i==="errored"||i==="failed"?"error":"muted"},i),e.check_strength&&Me.default.createElement("span",{style:To},String(e.check_strength).replaceAll("_"," "))),Me.default.createElement("div",{style:{fontWeight:600,overflowWrap:"anywhere"}},e.recorded_prompt||e.title),Me.default.createElement("div",{style:{...To,fontFamily:ye}},[e.provider,e.model,o&&`run ${o}`].filter(Boolean).join(" \xB7 "),e.completed_at&&` \xB7 ${new Date(e.completed_at).toLocaleString()}`),e.output_excerpt&&Me.default.createElement("div",{style:{fontSize:13,whiteSpace:"pre-wrap",color:"var(--color-text-secondary)"}},e.output_excerpt),(e.error||e.latest_run?.error)&&Me.default.createElement("div",{style:{fontSize:13,whiteSpace:"pre-wrap",color:"var(--color-error)"}},e.error||e.latest_run.error),e.fault&&Me.default.createElement("div",{style:To},"Fault: ",e.fault.replaceAll("_"," ")),e.samples_evaluated!=null&&Me.default.createElement("div",{style:To},e.samples_passed||0," / ",e.samples_evaluated," scenarios passed"),e.tool_names?.length>0&&Me.default.createElement("div",{style:To},"Tools recorded: ",e.tool_names.join(", ")),Array.isArray(e.caveats)&&e.caveats.length>0&&Me.default.createElement("details",{style:To},Me.default.createElement("summary",{style:{cursor:"pointer"}},"Evidence limits"),Me.default.createElement("ul",{style:{paddingLeft:18,marginTop:8}},e.caveats.map((s,u)=>Me.default.createElement("li",{key:u},s)))),Me.default.createElement("div",{style:{display:"flex",gap:12,alignItems:"center",flexWrap:"wrap"}},n&&Me.default.createElement("a",{href:n,target:"_blank",rel:"noopener noreferrer",style:{fontSize:13,color:"var(--color-accent-ui)"}},n===Ge("/evaluations")?"Open evaluations \u2192":"Open report \u2192"),e.evaluation_id&&o&&Me.default.createElement(zr,{size:"sm",disabled:r,onClick:()=>t(`Read evaluation ${e.evaluation_id}, run ${o}. Explain its results, the strength of its checks, and what needs fixing.`)},"Explain this run")))}function hce({draft:e,onReview:t}){return Me.default.createElement(yr,{padding:18,testId:"assistant-agent-draft",style:{display:"grid",gap:12,borderColor:"var(--color-accent-ui)"}},Me.default.createElement(rt,null,"Agent draft \xB7 not saved"),Me.default.createElement("div",{style:{fontWeight:600,fontSize:18}},e.name),Me.default.createElement("p",{style:{margin:0,color:"var(--color-text-secondary)",fontSize:13}},e.description),Me.default.createElement("div",{style:{...To,fontFamily:ye}},e.provider," / ",e.model),Me.default.createElement("details",null,Me.default.createElement("summary",{style:{cursor:"pointer",fontSize:13}},"Review instructions and tools"),Me.default.createElement("pre",{style:{whiteSpace:"pre-wrap",fontFamily:"inherit",fontSize:13,maxHeight:280,overflow:"auto"}},e.instructions),Me.default.createElement("p",{style:To},"Tools: ",e.tools?.length?e.tools.join(", "):"None")),Me.default.createElement(zr,{variant:"primary",onClick:()=>t(e),style:{justifySelf:"start"}},"Review in builder \u2192"))}function F_({session:e,onSessionChange:t,onReviewDraft:r,onOpenSettings:n,executionEnabled:a=!0}){let[o,i]=(0,Me.useState)(null),[l,s]=(0,Me.useState)(""),[u,c]=(0,Me.useState)(!1),[d,f]=(0,Me.useState)(null),[p,m]=(0,Me.useState)(!1),y=(0,Me.useRef)(null),h=(0,Me.useRef)(null),v=(0,Me.useRef)(e);v.current=e,(0,Me.useEffect)(()=>{let k=new AbortController;return fetch("/api/dashboard_assistant",{signal:k.signal}).then(async A=>{let M=await A.json();if(!A.ok)throw new Error(M.error||"Could not load assistant configuration.");i(M),v.current.provider||t({...v.current,...M.defaults})}).catch(A=>{A.name!=="AbortError"&&f({message:A.message})}),()=>{k.abort(),y.current?.abort()}},[]);let g=e.messages||[],b=e.provider||o?.defaults?.provider||"",x=e.model||"",S=o?.limits?.message_characters||8e3,w=o?.providers?.find(k=>k.id===b),O=async k=>{let A=k.trim();if(!A||u||!o||!a||!x.trim()||!p)return;let M=g.map(H=>({role:H.role,content:H.content})).slice(-12);for(;M.reduce((H,D)=>H+D.content.length,0)>24e3;)M.shift();let W=[...g,{role:"user",content:A}];t({...e,messages:W}),s(""),f(null),c(!0);let L=new AbortController;y.current=L;try{let H=await fetch("/api/dashboard_assistant",{method:"POST",signal:L.signal,headers:{"Content-Type":"application/json","X-CSRF-Token":document.querySelector('meta[name="csrf-token"]')?.content||""},body:JSON.stringify({message:A,history:M,provider:b,model:x.trim(),allow_provider_processing:!0})}),D=await H.json();if(!H.ok){f({message:typeof D.error=="string"?D.error:"The assistant could not complete this request.",setup:D.setup_required,retry:A}),t({...e,messages:g}),s(A);return}t({...e,messages:[...W,{role:"assistant",content:D.answer,cards:D.cards||[],references:D.references||[],drafts:D.drafts||[],limitations:D.limitations||[]}]})}catch(H){H.name!=="AbortError"&&(f({message:"Connection interrupted. No answer was received; the server may still be finishing the request."}),t({...e,messages:g}),s(A))}finally{c(!1)}};return Me.default.createElement("div",{style:{maxWidth:980,margin:"0 auto",color:"var(--color-text-primary)",display:"grid",gap:22}},Me.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:16,alignItems:"start"}},Me.default.createElement("div",null,Me.default.createElement(rt,null,"Workspace assistant"),Me.default.createElement("h1",{style:{margin:"8px 0",fontSize:30,fontWeight:600,letterSpacing:"-0.035em"}},"Ask ActiveAgents"),Me.default.createElement("p",{style:{margin:0,color:"var(--color-text-secondary)",fontSize:14}},"Find evaluation evidence. Understand failures. Build the next agent.")),g.length>0&&Me.default.createElement(zr,{disabled:u,onClick:()=>{t({...e,messages:[]}),f(null),s(""),m(!1)}},"New conversation")),!g.length&&Me.default.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:12}},gce.map(k=>Me.default.createElement("button",{key:k.label,onClick:()=>{s(k.message),h.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"}},Me.default.createElement("div",{style:{fontSize:14,fontWeight:600,marginBottom:8}},k.label," \u2197"),Me.default.createElement("div",{style:{fontSize:12,lineHeight:1.6,color:"var(--color-text-secondary)"}},k.message)))),Me.default.createElement("div",{role:"log","aria-label":"Assistant conversation","aria-live":"polite",style:{display:"grid",gap:20}},g.map((k,A)=>Me.default.createElement("div",{key:A,style:{display:"grid",gap:12}},Me.default.createElement(rt,{color:k.role==="user"?"var(--color-text-muted)":"var(--color-accent-ui)"},k.role==="user"?"You":"ActiveAgents"),Me.default.createElement("div",{style:{whiteSpace:"pre-wrap",overflowWrap:"anywhere",lineHeight:1.7,fontSize:14}},k.content),k.cards?.map(M=>Me.default.createElement(yce,{key:M.id,card:M,onAsk:W=>{s(W),h.current?.querySelector("textarea")?.focus()},busy:u})),k.references?.length>0&&Me.default.createElement("div",{"aria-label":"Evidence references",style:{...To,display:"flex",gap:12,flexWrap:"wrap"}},k.references.map(M=>{let W=tU(M);return W&&Me.default.createElement("a",{key:M.id,href:W,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--color-accent-ui)"}},M.id)})),k.drafts?.map(M=>Me.default.createElement(hce,{key:M.id,draft:M,onReview:r})),k.limitations?.length>0&&Me.default.createElement("details",{style:To},Me.default.createElement("summary",{style:{cursor:"pointer"}},"Scope of this answer"),Me.default.createElement("ul",{style:{paddingLeft:18}},k.limitations.map((M,W)=>Me.default.createElement("li",{key:W},M)))))),u&&Me.default.createElement("div",{role:"status",style:{color:"var(--color-text-secondary)",fontSize:13}},"Working with your workspace evidence\u2026")),d&&Me.default.createElement(yr,{padding:16,role:"alert",style:{borderColor:"var(--color-warning)",display:"grid",gap:12}},Me.default.createElement("div",{style:{fontSize:14}},d.message),d.setup&&Me.default.createElement(zr,{onClick:n,style:{justifySelf:"start"}},"Configure provider \u2192")),Me.default.createElement(yr,{padding:18},Me.default.createElement("form",{ref:h,onSubmit:k=>{k.preventDefault(),O(l)},style:{display:"grid",gap:14}},Me.default.createElement("label",{htmlFor:"assistant-question",style:{fontSize:13,fontWeight:600}},"What would you like to do?"),Me.default.createElement("textarea",{id:"assistant-question",placeholder:"Ask about your evals, or describe an agent to build\u2026",value:l,onChange:k=>s(k.target.value),maxLength:S,rows:3,disabled:u,style:{...U_,resize:"vertical",boxSizing:"border-box"}}),Me.default.createElement("div",{style:{display:"flex",gap:12,alignItems:"end",flexWrap:"wrap"}},Me.default.createElement("label",{style:{display:"grid",gap:5,fontSize:11,flex:"1 1 140px"}},"Provider",Me.default.createElement("select",{"aria-label":"Assistant provider",value:b,disabled:u||!o,onChange:k=>{let A=o.providers.find(M=>M.id===k.target.value);m(!1),t({...e,provider:A?.id||"",model:A?.default_model||""})},style:U_},Me.default.createElement("option",{value:""},o?"Choose a provider\u2026":"Loading\u2026"),o?.providers?.map(k=>Me.default.createElement("option",{key:k.id,value:k.id},k.id,k.configured?"":" \xB7 setup needed")))),Me.default.createElement("label",{style:{display:"grid",gap:5,fontSize:11,flex:"2 1 200px"}},"Model",Me.default.createElement("input",{"aria-label":"Assistant model",value:x,disabled:u||!o,maxLength:160,onChange:k=>{m(!1),t({...e,model:k.target.value})},style:U_})),Me.default.createElement(zr,{variant:"primary",type:"submit",disabled:u||!o||!l.trim()||!x.trim()||!a||!p},u?"Working\u2026":"Ask ActiveAgents \u2192")),Me.default.createElement("label",{style:{display:"flex",gap:9,alignItems:"start",fontSize:12,lineHeight:1.6,color:"var(--color-text-secondary)"}},Me.default.createElement("input",{type:"checkbox",checked:p,disabled:u||!o,onChange:k=>m(k.target.checked),style:{marginTop:4}}),Me.default.createElement("span",null,"Allow ",b||"the selected provider"," / ",x||"model"," to process my messages, recent conversation history, and authorized evaluation report excerpts for this conversation.")),Me.default.createElement("div",{style:{...To,lineHeight:1.5}},a?w&&!w.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."))))}function xce({user:e,initialAgents:t=[],meta:r={},account:n=null,subscription:a=null}){let{darkMode:o}=kt(),[i,l]=(0,Ze.useState)(t),[s,u]=(0,Ze.useState)("list"),[c,d]=(0,Ze.useState)(null),[f,p]=(0,Ze.useState)(!1),[m,y]=(0,Ze.useState)(null),[h,v]=(0,Ze.useState)(!1),[g,b]=(0,Ze.useState)("recent"),[x,S]=(0,Ze.useState)({messages:[]}),[w,O]=(0,Ze.useState)(null),k=r.assistantEnabled!==!1,[A,M]=(0,Ze.useState)(null);(0,Ze.useEffect)(()=>{let F=()=>{let G=Xu();if(G==="/assistant"&&k)u("assistant");else if(G.startsWith("/traces"))u("traces");else if(G.startsWith("/metrics"))u("metrics");else if(G.startsWith("/interactions"))u("interactions");else if(G.startsWith("/tools"))u("tools");else if(G.startsWith("/mcp")){let ee=G.match(/^\/mcp\/([^/?#]+)/)?.[1];ee&&M(decodeURIComponent(ee)),u("mcp")}else if(G.startsWith("/evaluations"))u("evaluations");else if(G.startsWith("/analytics"))u("analytics");else if(G.startsWith("/agents/new"))u("builder");else if(G.match(/\/agents\/\d+\/(interactions|history)/)){let ee=G.match(/\/agents\/(\d+)/)?.[1];G.includes("/history")&&window.history.replaceState({},"",G.replace("/history","/interactions")),ee&&W(ee,"history")}else if(G.match(/\/agents\/\d+\/analytics/)){let ee=G.match(/\/agents\/(\d+)/)?.[1];ee&&W(ee,"agent-analytics")}else if(G.match(/\/agents\/\d+\/edit/)){let ee=G.match(/\/agents\/(\d+)/)?.[1];ee&&W(ee,"editor")}else if(G.match(/\/agents\/\d+\/run/)){let ee=G.match(/\/agents\/(\d+)/)?.[1];ee&&W(ee,"runner")}else if(G.match(/\/agents\/\d+\/?$/)){let ee=G.match(/\/agents\/(\d+)/)?.[1];ee&&W(ee,"history")}else G.startsWith("/replay")?u("replay"):G.startsWith("/sandbox")||G.startsWith("/demo")?u("sandbox"):G.startsWith("/organization")?u("organization"):G.startsWith("/settings")?u("settings"):u("list")};return F(),window.addEventListener("popstate",F),window.addEventListener("dashboard:navigate",F),()=>{window.removeEventListener("popstate",F),window.removeEventListener("dashboard:navigate",F)}},[]);let W=async(F,G)=>{p(!0);try{let fe=await(await fetch(`/api/agents/${F}`)).json();d(fe.agent),u(G)}catch{D("Failed to load agent","error")}finally{p(!1)}},L=async(F=g)=>{p(!0);try{let ee=await(await fetch(`/api/agents?sort=${F}`)).json();l(ee.agents)}catch{D("Failed to refresh agents","error")}finally{p(!1)}},H=F=>{b(F),L(F)},D=(F,G="info")=>{y({message:F,type:G}),setTimeout(()=>y(null),3e3)},Y=async F=>{p(!0);try{let G=await fetch("/api/agents",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent:F})});if(G.ok){let ee=await G.json();l([ee.agent,...i]),d(ee.agent),u("editor"),D("Agent created successfully!","success"),window.history.pushState({},"",Ge(`/agents/${ee.agent.id}/edit`))}else{let ee=await G.json();D(ee.errors?.join(", ")||"Failed to create agent","error")}}catch{D("Failed to create agent","error")}finally{p(!1)}},N=async(F,G)=>{p(!0);try{let ee=await fetch(`/api/agents/${F}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent:G})});if(ee.ok){let fe=await ee.json();l(i.map(de=>de.id===F?fe.agent:de)),d(fe.agent),D("Agent updated!","success")}else{let fe=await ee.json();D(fe.errors?.join(", ")||"Failed to update agent","error")}}catch{D("Failed to update agent","error")}finally{p(!1)}},_=async F=>{if(confirm("Are you sure you want to delete this agent?")){p(!0);try{(await fetch(`/api/agents/${F}`,{method:"DELETE"})).ok&&(l(i.filter(ee=>ee.id!==F)),d(null),u("list"),D("Agent deleted","success"),window.history.pushState({},"",Ge()))}catch{D("Failed to delete agent","error")}finally{p(!1)}}},z=async F=>{p(!0);try{let G=await fetch(`/api/agents/${F}/duplicate`,{method:"POST"});if(G.ok){let ee=await G.json();l([ee.agent,...i]),D("Agent duplicated!","success")}}catch{D("Failed to duplicate agent","error")}finally{p(!1)}},j=F=>{l([F,...i]),v(!1),D("Agent created from template!","success"),B("editor",F)},P=["editor","runner","agent-analytics","history"],B=(F,G=null)=>{if(F==="assistant"&&!k)return;F==="builder"&&O(null),G?.id&&P.includes(F)&&G.instructions===void 0?W(G.id,F):(d(G),u(F));let ee=Ge();F==="assistant"?ee=Ge("/assistant"):F==="builder"?ee=Ge("/agents/new"):F==="editor"&&G?ee=Ge(`/agents/${G.id}/edit`):F==="runner"&&G?ee=Ge(`/agents/${G.id}/run`):F==="agent-analytics"&&G?ee=Ge(`/agents/${G.id}/analytics`):F==="history"&&G?ee=Ge(`/agents/${G.id}/interactions`):F==="analytics"?ee=Ge("/analytics"):F==="traces"?ee=Ge("/traces"):F==="metrics"?ee=Ge("/metrics"):F==="interactions"?ee=Ge("/interactions"):F==="tools"?ee=Ge("/tools"):F==="mcp"?ee=Ge("/mcp"):F==="evaluations"?ee=Ge("/evaluations"):F==="replay"?ee=Ge("/replay"):F==="sandbox"?ee=Ge("/sandbox"):F==="organization"?ee=Ge("/organization"):F==="settings"&&(ee=Ge("/settings")),window.history.pushState({},"",ee)},R=()=>{switch(s){case"assistant":return k?Ze.default.createElement(F_,{session:x,onSessionChange:S,executionEnabled:r.executionEnabled!==!1,onOpenSettings:()=>B("settings"),onReviewDraft:F=>{O(F),u("builder"),window.history.pushState({},"",Ge("/agents/new"))}}):null;case"builder":return Ze.default.createElement(eA,{key:w?.id||"new-agent",initialDraft:w,meta:r,onSave:Y,onCancel:()=>B(w?"assistant":"list"),isLoading:f});case"editor":return c?Ze.default.createElement(V1,{key:`editor-${c.id}`,agent:c,meta:r,onSave:F=>N(c.id,F),onDelete:()=>_(c.id),onRun:()=>B("runner",c),onDuplicate:()=>z(c.id),onRunReport:()=>B("history",c),onBack:()=>B("list"),isLoading:f}):null;case"runner":return c?Ze.default.createElement(f_,{agent:c,onBack:()=>B("editor",c)}):null;case"agent-analytics":return c?Ze.default.createElement(V1,{key:`agent-analytics-${c.id}`,agent:c,meta:r,initialTab:"metrics",onSave:F=>N(c.id,F),onDelete:()=>_(c.id),onRun:()=>B("runner",c),onDuplicate:()=>z(c.id),onRunReport:()=>B("history",c),onBack:()=>B("list"),isLoading:f}):null;case"history":return c?Ze.default.createElement(m_,{agent:c,onBack:()=>B("editor",c)}):null;case"analytics":return Ze.default.createElement(p_,{onSelectAgent:F=>{W(F.id,"agent-analytics")}});case"traces":return Ze.default.createElement(Zu,null);case"metrics":return Ze.default.createElement(E_,null);case"interactions":return Ze.default.createElement(nl,null);case"tools":return Ze.default.createElement(__,{onOpenServer:F=>{M(F),B("mcp")}});case"mcp":return Ze.default.createElement(O_,{focusServer:A,onOpenTools:()=>{M(null),B("tools")}});case"evaluations":return Ze.default.createElement(eg,null);case"replay":return Ze.default.createElement(L_,{onHandoff:F=>{D("Taking over session...","info"),B("sandbox")},onClose:()=>B("list")});case"sandbox":return Ze.default.createElement(j_,{initialType:"playwright_mcp",onClose:()=>B("list")});case"organization":return Ze.default.createElement(B_,{user:e,account:n,subscription:a,agentCount:i.length});case"settings":return Ze.default.createElement($_,{user:e});default:return Ze.default.createElement(R2,{agents:i,meta:r,onSelect:F=>B("editor",F),onNew:()=>B("builder"),onBrowseTemplates:()=>v(!0),onDuplicate:z,onDelete:_,onRefresh:L,sort:g,onSortChange:H,isLoading:f})}};return Ze.default.createElement("div",{className:`aa-dashboard min-h-screen flex${o?" theme-dark":""}`,style:{backgroundColor:o?"#0f0f0f":"#f9fafb"}},Ze.default.createElement(g_,{currentView:s,onNavigate:B,agentCount:i.length,account:n,user:e,gemVersion:r.activeagentVersion,assistantEnabled:k}),Ze.default.createElement("div",{className:"flex-1 flex flex-col min-w-0"},Ze.default.createElement(y_,{user:e,account:n}),Ze.default.createElement("main",{className:"flex-1 p-6 overflow-auto"},R())),h&&Ze.default.createElement(v_,{onUseTemplate:j,onClose:()=>v(!1)}),m&&Ze.default.createElement("div",{className:`fixed bottom-4 right-4 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),f&&Ze.default.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-20 flex items-center justify-center z-50"},Ze.default.createElement("div",{className:`rounded-lg p-4 shadow-xl ${o?"bg-gray-800":"bg-white"}`},Ze.default.createElement("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-red-500"}))))}function W_(e){return Ze.default.createElement(L3,null,Ze.default.createElement(w7,null,Ze.default.createElement(xce,{...e})))}var bce="active-agent-dashboard";function wce(e){let t=e.replace(/\/$/,"");if(!t)return;let r=window.fetch.bind(window);window.fetch=(n,a)=>{if(typeof n=="string"&&n.startsWith("/api/"))return r(`${t}${n}`,a);if(n instanceof Request&&new URL(n.url,window.location.origin).pathname.startsWith("/api/")){let o=new URL(n.url,window.location.origin);return r(new Request(`${t}${o.pathname}${o.search}`,n),a)}return r(n,a)}}function rU(){let e=document.getElementById(bce);if(!e)return;let t=JSON.parse(e.dataset.props||"{}");window.ACTIVE_AGENT_DASHBOARD=t,wce(t.mountPath||"/"),(0,aU.createRoot)(e).render(nU.default.createElement(W_,{...t}))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",rU):rU(); /*! Bundled license information: react/cjs/react.production.js: diff --git a/actionagent/app/controllers/action_agent/api/agents_controller.rb b/actionagent/app/controllers/action_agent/api/agents_controller.rb index cbbbaceb..3c4a4bed 100644 --- a/actionagent/app/controllers/action_agent/api/agents_controller.rb +++ b/actionagent/app/controllers/action_agent/api/agents_controller.rb @@ -19,12 +19,15 @@ class AgentsController < BaseController # Conversations returned to the runner's picker when no limit is asked for. CONVERSATIONS_LIMIT = 50 # Keywords Agent#execute takes in its own right, which per-run overrides - # must never supply (see #execution_params). - RESERVED_EXECUTION_KEYS = [ :attachments, :action ].freeze + # must never supply (see #execution_params). `actor` is here for the + # same reason as the rest and one more: a keyword splat wins over the + # arguments before it, so a client sending params[params][actor] would + # otherwise name the caller its own run is authorized as. + RESERVED_EXECUTION_KEYS = [ :attachments, :action, :actor, :current_user ].freeze before_action :set_agent, only: [ :show, :update, :destroy, :versions, :runs, :execute, :test, :restore, :duplicate, :export, :analytics, - :conversations, :create_conversation + :tool_roster, :conversations, :create_conversation ] before_action :require_execution_enabled!, only: [ :execute, :test ] before_action :require_owner!, only: [ :execute, :test ] @@ -170,6 +173,7 @@ def execute execution_prompt, action: params[:action_name], attachments: uploaded_attachments, + actor: agent_actor, **execution_params ) record_execution_usage @@ -183,6 +187,7 @@ def test execution_prompt, action: params[:action_name], attachments: uploaded_attachments, + actor: agent_actor, **execution_params ) record_execution_usage @@ -256,6 +261,19 @@ def export } end + # GET /api/agents/:id/tool_roster + # + # What the Tools tab edits: the MCP services this agent can be given + # and the tools it can be offered, each with the calls, errors and + # latency recorded for it in the window. + def tool_roster + render json: AgentToolRoster.new( + agent: @agent, + traces: owned_traces, + hours: params.fetch(:hours, ToolDiscovery::DEFAULT_WINDOW_HOURS).to_i + ).as_json + end + # GET /api/agents/:id/analytics # # Every execution of this agent, whoever ran it — the same merged model @@ -478,17 +496,33 @@ def set_agent end def agent_params - params.require(:agent).permit( + permitted = params.require(:agent).permit( :name, :description, :provider, :model, :instructions, :preset_type, :agent_class_name, :status, appearance: {}, action_prompts: [ :name, :prompt, :expose_as_tool ], instruction_sets: [], tools: [], - mcp_servers: [], model_config: {}, response_format: {} ) + permitted[:mcp_servers] = mcp_server_params if params[:agent].key?(:mcp_servers) + permitted + end + + # An agent names its MCP servers either as bare strings or as hashes — + # the Tools tab writes { key, name, tools } so a service can be enabled + # with only some of what it serves. Both shapes are permitted, because + # every agent saved before the tab existed carries the first one and a + # round-trip through the editor must not rewrite it. + def mcp_server_params + Array(params[:agent][:mcp_servers]).map do |entry| + if entry.respond_to?(:permit) + entry.permit(:key, :name, :url, :command, :transport, tools: []).to_h + else + entry.to_s + end + end end def version_json(version, include_diff: false) diff --git a/actionagent/app/controllers/action_agent/api/base_controller.rb b/actionagent/app/controllers/action_agent/api/base_controller.rb index fb0378ea..960d6e7a 100644 --- a/actionagent/app/controllers/action_agent/api/base_controller.rb +++ b/actionagent/app/controllers/action_agent/api/base_controller.rb @@ -68,6 +68,23 @@ def owned_traces ActionAgent.trace_model.for_account(current_account) end + # The caller an agent run executes on behalf of. + # + # The host's seam first (ActionAgent.agent_actor_resolver), then the + # signed-in user. Never the tenant: an account is who is billed, not + # who is allowed, and handing a Pundit policy an account would either + # raise or quietly authorize as the whole workspace. + def agent_actor + return @agent_actor if defined?(@agent_actor) + + @agent_actor = + if (resolver = ActionAgent.agent_actor_resolver) + resolver.arity.zero? ? resolver.call : resolver.call(self) + else + current_user + end + end + # The tenant, when the host app has one. current_owner already # resolves it in multi-tenant mode; single-tenant installs have none. def current_account diff --git a/actionagent/app/controllers/action_agent/api/mcp_controller.rb b/actionagent/app/controllers/action_agent/api/mcp_controller.rb index 2eccd531..7b6dc09e 100644 --- a/actionagent/app/controllers/action_agent/api/mcp_controller.rb +++ b/actionagent/app/controllers/action_agent/api/mcp_controller.rb @@ -28,6 +28,10 @@ class MCPController < BaseController JSONRPC_METHOD_NOT_FOUND = -32601 JSONRPC_INVALID_PARAMS = -32602 JSONRPC_SERVER_ERROR = -32000 + # No JSON-RPC code means "forbidden", and the MCP spec leaves -32000.. + # -32099 to the server. A refusal gets its own so a client can tell it + # from a run that merely failed. + JSONRPC_FORBIDDEN = -32003 # POST /mcp def create @@ -102,6 +106,38 @@ def key_agents ActionAgent.agents_for(@owner).where.not(status: :archived).order(:slug) end + # The caller an MCP-invoked run executes on behalf of. + # + # The key's owner is the identity that authenticated this request, so + # it is the default; a host issuing keys per end user overrides it + # with ActionAgent.agent_actor_resolver, which is handed this + # controller and can read the request however it likes. + # + # The agent's own callbacks decide what the actor may do — that is the + # point of carrying one. This only answers *who*. + def agent_actor + return @agent_actor if defined?(@agent_actor) + + @agent_actor = + if (resolver = ActionAgent.agent_actor_resolver) + resolver.arity.zero? ? resolver.call : resolver.call(self) + else + @api_key.respond_to?(:user) && @api_key.user ? @api_key.user : @owner + end + end + + # Whether the run ended because the agent refused this caller, rather + # than because something broke. Matched on the error class the + # framework raises (and the ones a host names with `denies_with`), not + # on the message. + def run_refused?(run) + klass = run.output_metadata.is_a?(Hash) ? run.output_metadata["error_class"] : nil + return false if klass.blank? + + klass.to_s == "ActiveAgent::NotAuthorized" || + ActiveAgent::Base.authorization_errors.any? { |error| error.name == klass.to_s } + end + def initialize_result { protocolVersion: PROTOCOL_VERSION, @@ -160,10 +196,16 @@ def tools_call raise McpError.new(denial.is_a?(Hash) ? denial[:message] || denial["message"] : denial) end - run = agent.test_execute(message, action: action) + run = agent.test_execute(message, action: action, actor: agent_actor) ActionAgent.record_usage(@owner, :execution) if run.failed? + # A refusal is not a result. An agent that declined on this + # caller's behalf answers as a JSON-RPC error, so the client sees + # "not allowed" rather than an empty, confident answer — the + # failure mode a nil-actor scope produces on its own. + raise McpError.new(run.error_message.to_s, JSONRPC_FORBIDDEN) if run_refused?(run) + { content: [ { type: "text", text: "Agent run failed: #{run.error_message}" } ], isError: true } else { diff --git a/actionagent/app/jobs/action_agent/agent_execution_job.rb b/actionagent/app/jobs/action_agent/agent_execution_job.rb index 57f448a0..1dbd013e 100644 --- a/actionagent/app/jobs/action_agent/agent_execution_job.rb +++ b/actionagent/app/jobs/action_agent/agent_execution_job.rb @@ -38,7 +38,10 @@ def perform(run_id) status: :failed, completed_at: Time.current, error_message: e.message, - error_backtrace: e.backtrace&.first(10)&.join("\n") + error_backtrace: e.backtrace&.first(10)&.join("\n"), + # Same as the synchronous path: the class is what distinguishes + # a refusal from a crash. + output_metadata: run.output_metadata.to_h.merge("error_class" => e.class.name) ) run.add_log("Execution failed: #{e.message}", level: :error) end diff --git a/actionagent/app/models/action_agent/agent.rb b/actionagent/app/models/action_agent/agent.rb index 0aafd021..bda784af 100644 --- a/actionagent/app/models/action_agent/agent.rb +++ b/actionagent/app/models/action_agent/agent.rb @@ -81,6 +81,25 @@ def self.polymorphic_name terminal playwright filesystem code database slack fetch search edit translate memory agents ui ].freeze + # One line per capability, for the roster rows that offer them. A name + # alone ("ui", "agents") doesn't say what enabling it gives the model, + # and the Tools tab is where that question gets asked. + TOOL_DESCRIPTIONS = { + "terminal" => "Runs a shell command in the workspace sandbox.", + "playwright" => "Drives a headless browser: navigate, click, read the page.", + "filesystem" => "Reads and writes files under an allow-listed set of directories.", + "code" => "Reads and edits files in the connected repository.", + "database" => "Runs read-only SQL against the app database.", + "slack" => "Reads channels and posts messages as the workspace bot.", + "fetch" => "Fetches a URL and converts the page to markdown for the model to read.", + "search" => "Web search through the workspace provider.", + "edit" => "Applies a structured edit to a document.", + "translate" => "Translates text through the translation agent.", + "memory" => "Reads and writes durable notes across runs of this agent.", + "agents" => "Delegates a task to another agent in this workspace.", + "ui" => "Renders a form or table back into the chat surface." + }.freeze + # Every tool an agent may enable: the built-ins plus each tool generated by # the host's declared ActiveAgent::SchemaTools classes (ActionAgent.schema_tools). # @@ -254,9 +273,12 @@ def perform # before the job is enqueued, so a worker on another machine finds them # attached. +params+ (provider/model overrides, the context_id of a # conversation to continue) are kept on the run as input_params. - def execute(input_prompt, action: nil, attachments: [], **params) + def execute(input_prompt, action: nil, attachments: [], actor: nil, **params) ensure_executable! - run = create_run(input_prompt, action: action, attachments: attachments, params: params, status: :pending) + run = create_run( + input_prompt, action: action, attachments: attachments, params: params, + actor: actor, status: :pending + ) # Queue the execution job AgentExecutionJob.perform_later(run.id) @@ -265,12 +287,13 @@ def execute(input_prompt, action: nil, attachments: [], **params) end # Quick test execution (synchronous) - def test_execute(input_prompt, action: nil, attachments: [], **params) + def test_execute(input_prompt, action: nil, attachments: [], actor: nil, **params) ensure_executable! run = create_run( input_prompt, action: action, attachments: attachments, params: params, - status: :running, started_at: Time.current + actor: actor, status: :running, started_at: Time.current ) + run.actor = actor begin # Build and execute the agent @@ -291,7 +314,11 @@ def test_execute(input_prompt, action: nil, attachments: [], **params) status: :failed, completed_at: Time.current, error_message: e.message, - error_backtrace: e.backtrace&.first(10)&.join("\n") + error_backtrace: e.backtrace&.first(10)&.join("\n"), + # The class, not only the message: an agent that refused this + # caller and an agent that broke both fail the run, and only the + # class tells them apart without reading prose. + output_metadata: run.output_metadata.to_h.merge("error_class" => e.class.name) ) end @@ -317,14 +344,16 @@ def ensure_executable! # Refuses files before creating anything: a run that exists but lost # its attachments would execute against the wrong prompt. - def create_run(input_prompt, action:, attachments:, params:, **attributes) + def create_run(input_prompt, action:, attachments:, params:, actor: nil, **attributes) files = Array.wrap(attachments).compact raise AgentRun::AttachmentsUnavailable if files.any? && !AgentRun.attachments_available? run = agent_runs.create!( input_prompt: input_prompt, action_name: normalized_action(action), - input_params: params, + # The caller is recorded beside the run's own parameters rather than + # among them: a client may send provider overrides, never an actor. + input_params: AgentRun.params_with_actor(params, actor), trace_id: SecureRandom.uuid, **attributes ) diff --git a/actionagent/app/models/action_agent/agent_run.rb b/actionagent/app/models/action_agent/agent_run.rb index 7a5cb3a8..7eeed015 100644 --- a/actionagent/app/models/action_agent/agent_run.rb +++ b/actionagent/app/models/action_agent/agent_run.rb @@ -20,6 +20,55 @@ def initialize(message = "Attachments need Active Storage in the host app (run ` # --skip-active-storage has no has_many_attached to call. has_many_attached :attachments if defined?(ActiveStorage) + # The key the caller's identity is recorded under in +input_params+. + # Underscored so it cannot collide with a provider override, and + # stripped from anything a client sends (see Api::AgentsController). + ACTOR_PARAM = "_actor_gid" + + # +input_params+ with the caller recorded alongside them. + # + # The actor is stored as a Global ID rather than as the record, so the + # worker that picks the run up — on another machine, minutes later — + # authorizes as the same person who asked for the run. A caller the host + # cannot address that way (a plain object, a service account) is simply + # not recorded: the run then executes unattributed, which a host scope + # reads as "no access", rather than executing as somebody else. + # + # @param params [Hash] the run's own parameters + # @param actor [Object, nil] the caller + # @return [Hash] + def self.params_with_actor(params, actor) + params = (params || {}).to_h.except(ACTOR_PARAM, ACTOR_PARAM.to_sym) + gid = actor.respond_to?(:to_global_id) ? actor.to_global_id.to_s : nil + gid ? params.merge(ACTOR_PARAM => gid) : params + rescue StandardError => e + Rails.logger.warn("[AgentRun] could not record the run's actor: #{e.class} - #{e.message}") + params + end + + # The caller this run executes on behalf of. + # + # Set in memory for a synchronous run; rehydrated from the stored Global + # ID for one picked up by a worker. A Global ID that no longer resolves + # (the user was deleted) yields nil, so the run loses access rather than + # inheriting someone else's. + # @return [Object, nil] + def actor + return @actor if defined?(@actor) + + @actor = locate_actor + end + + attr_writer :actor + + # Whether this run knows who it is for. A run with a recorded actor that + # no longer resolves is *not* unattributed — it is broken, and callers + # that care can tell the two apart. + # @return [Boolean] + def actor_recorded? + input_params.is_a?(Hash) && input_params[ACTOR_PARAM].present? + end + # Whether runs can carry files in this host app: Active Storage loaded, # the macro applied, and its tables migrated. Never raises — a host # that skipped `rails active_storage:install` still runs agents, it @@ -220,6 +269,16 @@ def cancel! private + def locate_actor + return nil unless actor_recorded? + return nil unless defined?(GlobalID::Locator) + + GlobalID::Locator.locate(input_params[ACTOR_PARAM]) + rescue StandardError => e + Rails.logger.warn("[AgentRun] could not resolve the run's actor: #{e.class} - #{e.message}") + nil + end + def set_trace_id self.trace_id ||= SecureRandom.uuid end diff --git a/actionagent/app/services/action_agent/agent_execution_service.rb b/actionagent/app/services/action_agent/agent_execution_service.rb index 3cbee081..c3a26083 100644 --- a/actionagent/app/services/action_agent/agent_execution_service.rb +++ b/actionagent/app/services/action_agent/agent_execution_service.rb @@ -45,6 +45,13 @@ def self.call(agent_record, run) new(agent_record, run).call end + # Tool-call keywords that name the caller. The model's arguments and the + # run's actor share one keyword namespace by the time they reach a tool, + # so anything a model emits under these names is dropped before the call: + # an actor a model can name is not an authorization boundary, and the + # documents a model reads are attacker-reachable. + ACTOR_KEYWORDS = %i[actor current_user].freeze + def initialize(agent_record, run) @agent_record = agent_record @run = run @@ -52,6 +59,14 @@ def initialize(agent_record, run) @event_sequence = 0 end + # The caller this run executes on behalf of, or nil when it runs + # unattributed. Passed to every tool as +actor:+ — a host's SchemaTools + # scope block, Pundit policy or agent callback decides what that means. + # @return [Object, nil] + def actor + @run.actor + end + # Emits a progress event on the run (streamed to the UI by pollers). # Never lets telemetry break execution. def emit_event(**kwargs) @@ -266,6 +281,12 @@ def composed_instructions # execution) and recorded in @tool_invocations so tool names, arguments # and durations reach Traces and the persisted conversation. def execute_tool(name, **kwargs) + forged = kwargs.slice(*ACTOR_KEYWORDS) + if forged.any? + Rails.logger.warn("[AgentExecutionService] dropped caller-named arguments from #{name}: #{forged.keys.join(', ')}") + kwargs = kwargs.except(*ACTOR_KEYWORDS) + end + # Record the absolute URL browse_page will actually fetch, not the bare # path the model passed — spans/events/persisted args stay unambiguous. kwargs[:url] = AgentToolbox.resolve_browse_url(kwargs[:url]) if name.to_s == "browse_page" && kwargs[:url] @@ -309,7 +330,9 @@ def execute_tool(name, **kwargs) else # A tool one of the agent's own MCP servers serves is called there; # AgentToolbox answers the rest. - mcp_dispatcher.call(name, kwargs) || AgentToolbox.call(name, **kwargs) + # `actor:` comes from the run, never from kwargs (see + # ACTOR_KEYWORDS): it is who the run is for, not what it is about. + mcp_dispatcher.call(name, kwargs) || AgentToolbox.call(name, actor: actor, **kwargs) end rescue StandardError => e Rails.logger.warn("[AgentExecutionService] Tool #{name} failed: #{e.class} - #{e.message}") @@ -529,7 +552,10 @@ def generate! private :persist_tool_messages_to_context end - agent_class.public_send(action).generate_now + # `as` carries the caller onto the agent instance, so an agent's own + # before_action callbacks (ActiveAgent::Authorization) authorize + # against the same person the tools are scoped to. + agent_class.as(actor).public_send(action).generate_now end # Function-calling schemas for the agent's enabled tools that have diff --git a/actionagent/app/services/action_agent/agent_tool_roster.rb b/actionagent/app/services/action_agent/agent_tool_roster.rb new file mode 100644 index 00000000..bc9599c3 --- /dev/null +++ b/actionagent/app/services/action_agent/agent_tool_roster.rb @@ -0,0 +1,269 @@ +# frozen_string_literal: true + +module ActionAgent + # One agent's tool roster, as the agent editor's Tools tab reads it: every + # tool the agent can be offered and every MCP service it can be given, each + # carrying what the window actually recorded for it. + # + # Three groups, one row vocabulary — the same one the Tools and MCP + # Services pages use, so a roster reads the way the observability views do: + # + # * **Agent-defined** — tools discovered from the rosters this agent's own + # generations offered (ToolDiscovery's +agent+ origin). Schema-derived: + # the agent class declares them, so they are reported here rather than + # selected. Read-only for the same reason MCP rows are — a checkbox that + # cannot add or remove the tool is a control that changes nothing. + # * **Dashboard** — Agent::AVAILABLE_TOOLS, the capabilities the builder + # offers every agent. These are the roster: +agent.tools+ is what + # AgentToolbox turns into function schemas at generation time. + # * **MCP** — never stored on the roster. Computed from the services the + # agent enables, which is where they are edited. + # + # Enablement reads the agent's own configuration: +tools+ for the dashboard + # capabilities, +mcp_servers+ for services and their per-server allow-lists + # (an entry with no +tools+ key offers everything the server serves). + class AgentToolRoster + AGENT_DEFINED = "agent_defined" + DASHBOARD = "dashboard" + MCP = "mcp" + + # Ordering for the services list: what this agent uses, then what the + # workspace already talks to, then the rest of the catalog. + STATUS_RANK = { "active" => 0, "configured" => 1, "available" => 2, "idle" => 3 }.freeze + + attr_reader :agent, :discovery + + # @param agent [ActionAgent::Agent] the agent being edited + # @param traces [ActiveRecord::Relation] the traces the caller may read + # @param hours [Integer] the window the usage columns are scoped to + def initialize(agent:, traces:, hours: ToolDiscovery::DEFAULT_WINDOW_HOURS) + @agent = agent + @discovery = ToolDiscovery.new( + traces: traces.for_agent(agent.telemetry_agent_class), + agents: Agent.where(id: agent.id), + hours: hours + ) + end + + def as_json(*) + { + window_hours: discovery.window_hours, + # Whether any record source had rows in this window. False means the + # usage columns have nothing behind them, and the view renders them + # as "—" rather than as a row of honest-looking zeroes. + usage_available: inventory[:sources].values.any?, + services: services, + tools: tools + } + end + + private + + def inventory + @inventory ||= discovery.inventory + end + + def detected + inventory[:tools] + end + + def saved_tools + @saved_tools ||= Array(agent.tools).map(&:to_s) + end + + # --- services ------------------------------------------------------ + + def services + rows = service_keys.map { |key| service_row(key) } + rows.sort_by do |row| + [ row[:enabled] ? 0 : 1, STATUS_RANK.fetch(row[:status], 9), -row[:calls], row[:name].to_s.downcase ] + end + end + + # The catalog, plus anything this agent's traffic or configuration names + # that the catalog doesn't describe. + def service_keys + (MCPCatalog.keys + detected_by_server.keys + configured_servers.keys).uniq + end + + def detected_by_server + @detected_by_server ||= detected.reject { |tool| tool[:mcp_server].blank? }.group_by { |tool| tool[:mcp_server] } + end + + def service_row(key) + catalog = MCPCatalog.find(key) + used = detected_by_server[key] || [] + calls = used.sum { |tool| tool[:calls] } + enabled = configured_servers.key?(key) + + { + key: key, + name: catalog ? catalog[:name] : key, + description: catalog&.dig(:description), + docs_url: catalog&.dig(:docs_url), + first_party: catalog ? catalog[:first_party] : false, + known: !catalog.nil?, + transport: transport_label(catalog), + status: service_status(calls, enabled, catalog), + enabled: enabled, + calls: calls, + errors: used.sum { |tool| tool[:errors] }, + last_seen: used.filter_map { |tool| tool[:last_seen] }.max, + tools: service_tools(key, catalog, used) + } + end + + # How to reach the server, in the one line the expanded panel shows: + # "Streamable HTTP · " for the ones the dashboard can call, + # "sandbox · " for the ones it can start, "stdio · " + # for the rest. + def transport_label(catalog) + return nil if catalog.nil? + + transport = catalog[:transport].to_s + return [ "Streamable HTTP", catalog[:url] ].compact.join(" · ") if transport == "http" + + prefix = catalog[:sandbox] ? "sandbox" : transport.presence + [ prefix, catalog[:command] ].compact.join(" · ").presence + end + + def service_status(calls, enabled, catalog) + return "active" if calls.positive? + return "configured" if enabled + return "available" if catalog + + "idle" + end + + # What the service offers: the catalog's tool hints unioned with the + # tools this agent was actually seen calling on it, so a server whose + # roster has drifted from the catalog still lists what it really serves. + def service_tools(key, catalog, used) + by_name = used.index_by { |tool| tool[:base_name] } + allowed = allowed_tools(key) + names = (Array(catalog&.dig(:tools)) + by_name.keys).uniq + + names.map do |name| + usage_row(by_name[name]).merge( + name: name, + description: by_name[name]&.dig(:description), + enabled: allowed.nil? || allowed.include?(name) + ) + end + end + + # --- tools --------------------------------------------------------- + + def tools + agent_defined_rows + dashboard_rows + end + + # Schema-derived tools: whatever this agent's generations offered that + # is neither an MCP tool nor one of the dashboard's own. + def agent_defined_rows + detected + .select { |tool| tool[:origin] == ToolDiscovery::ORIGIN_AGENT } + .reject { |tool| dashboard_function_names.include?(tool[:name]) } + .map do |tool| + usage_row(tool).merge( + key: tool[:name], + name: tool[:name], + source: AGENT_DEFINED, + description: tool[:description], + # The agent class declares these; the dashboard reports them. + enabled: true, + editable: false + ) + end + end + + def dashboard_rows + Agent::AVAILABLE_TOOLS.map do |capability| + usage_row(capability_usage(capability)).merge( + key: capability, + name: capability, + source: DASHBOARD, + description: Agent::TOOL_DESCRIPTIONS[capability], + enabled: saved_tools.include?(capability), + editable: true + ) + end + end + + # A capability is one checkbox over the several functions it exposes + # ("memory" is save_memory + recall_memory), so its usage is their sum. + def capability_usage(capability) + names = (AgentToolbox::DEFINITIONS[capability]&.map { |definition| definition[:name].to_s } || []) + [ capability ] + rows = detected.select { |tool| names.include?(tool[:name]) } + return nil if rows.empty? + + timed = rows.filter_map { |row| [ row[:avg_duration_ms], row[:calls] ] if row[:avg_duration_ms] } + weighted = timed.sum { |average, calls| average * [ calls, 1 ].max } + samples = timed.sum { |_average, calls| [ calls, 1 ].max } + + { + calls: rows.sum { |row| row[:calls] }, + errors: rows.sum { |row| row[:errors] }, + avg_duration_ms: samples.positive? ? (weighted / samples).round : nil, + last_seen: rows.filter_map { |row| row[:last_seen] }.max + } + end + + def usage_row(tool) + { + calls: tool ? tool[:calls] : 0, + errors: tool ? tool[:errors] : 0, + avg_duration_ms: tool ? tool[:avg_duration_ms] : nil, + last_seen: tool ? tool[:last_seen] : nil + } + end + + # Every function name the dashboard's own toolbox implements, so a + # builtin never lands in the agent-defined group under its bare name. + def dashboard_function_names + @dashboard_function_names ||= ToolDiscovery.builtin_tools | Agent::AVAILABLE_TOOLS.to_set + end + + # --- the agent's MCP configuration --------------------------------- + + # server key => the entry the agent stores for it. Entries are bare + # strings or builder hashes, and an agent seeded from an older template + # carries a top-level Hash keyed by server name — the same three shapes + # EvaluationToolResolver tolerates. + def configured_servers + @configured_servers ||= configured_entries.each_with_object({}) do |entry, map| + key = entry_key(entry) + map[key] = entry if key.present? + end + end + + def configured_entries + servers = agent.mcp_servers + + if servers.is_a?(Hash) + servers.map { |key, value| value.respond_to?(:key?) ? value.to_h.stringify_keys.merge("key" => key.to_s) : key.to_s } + else + Array(servers) + end + end + + def entry_key(entry) + return entry.to_s.strip.presence if entry.is_a?(String) || entry.is_a?(Symbol) + return nil unless entry.respond_to?(:key?) + + (entry["key"] || entry[:key] || entry["name"] || entry[:name]).to_s.strip.presence + end + + # The per-server allow-list, or nil when the entry names none — which + # means the agent is offered every tool the server serves. + def allowed_tools(key) + entry = configured_servers[key] + return nil unless entry.respond_to?(:key?) + + names = entry["tools"] || entry[:tools] + return nil if names.nil? + + Array(names).filter_map { |tool| (tool.respond_to?(:key?) ? tool["name"] || tool[:name] : tool).to_s.presence } + end + end +end diff --git a/actionagent/app/services/action_agent/agent_toolbox.rb b/actionagent/app/services/action_agent/agent_toolbox.rb index 0dccb3cb..6e841231 100644 --- a/actionagent/app/services/action_agent/agent_toolbox.rb +++ b/actionagent/app/services/action_agent/agent_toolbox.rb @@ -231,13 +231,22 @@ def schema_tool_definitions(name) def call(name, **kwargs) return { error: "Unknown tool: #{name}" } unless function?(name) - schema_tool = ActionAgent.schema_tool_class_for(name.to_s) - if schema_tool + # Who the call is for is never one of the call's arguments: it comes + # off here, before a tool sees them. That keeps a built-in from + # meeting an unexpected keyword, and keeps the cache key below over + # the arguments alone. + actor = kwargs.delete(:actor) + + if (schema_tool = ActionAgent.schema_tool_class_for(name.to_s)) # `actor:` is the host's authorization seam — the scope block runs # inside the call. It is passed through untouched, including nil, # so a host scope decides what an unattributed run may read rather # than the engine widening it. - return schema_tool.call(name.to_s, actor: kwargs.delete(:actor), **kwargs) + # + # Deliberately not cached: a scoped read is one caller's answer, + # and replaying it for the next caller would hand them rows their + # own scope would have refused. + return schema_tool.call(name.to_s, actor: actor, **kwargs) end return public_send(FUNCTIONS.fetch(name.to_s), **kwargs) if UNCACHED_FUNCTIONS.include?(name.to_s) diff --git a/actionagent/config/routes.rb b/actionagent/config/routes.rb index 1ab8f509..ba3984d7 100644 --- a/actionagent/config/routes.rb +++ b/actionagent/config/routes.rb @@ -38,6 +38,9 @@ post :duplicate get :export get :analytics + # The Tools tab's roster: offerable tools and MCP services, each + # with what the window recorded for it. + get :tool_roster # The runner's conversation picker: this agent's persisted contexts, # and a fresh one to pin a first message to. get :conversations diff --git a/actionagent/frontend/components/dashboard/AgentEditor.jsx b/actionagent/frontend/components/dashboard/AgentEditor.jsx index 76fe7d15..ee54be33 100644 --- a/actionagent/frontend/components/dashboard/AgentEditor.jsx +++ b/actionagent/frontend/components/dashboard/AgentEditor.jsx @@ -8,6 +8,7 @@ import TracesView from './TracesView'; import InteractionsView from './InteractionsView'; import EvaluationsView from './EvaluationsView'; import AgentAnalytics from './AgentAnalytics'; +import AgentToolsTab from './AgentToolsTab'; // The agent detail page carries two tab groups on one row: how the agent is // configured on the left, how it behaves in production on the right. Both @@ -241,6 +242,9 @@ export default function AgentEditor({ agent, meta, onSave, onDelete, onRun, onDu }; const isObservability = OBSERVABILITY_TAB_IDS.includes(activeTab); + // The Tools tab brings its own cards and its own action bar, the way the + // observability panels do — a roster is a pair of lists, not a form. + const isTools = activeTab === 'tools'; return (
@@ -307,7 +311,16 @@ export default function AgentEditor({ agent, meta, onSave, onDelete, onRun, onDu
{/* Observability panels bring their own cards; config panels get one. */} - {isObservability ? ( + {isTools ? ( + + ) : isObservability ? (
{activeTab === 'traces' && } {activeTab === 'metrics' && } @@ -361,9 +374,6 @@ export default function AgentEditor({ agent, meta, onSave, onDelete, onRun, onDu {activeTab === 'instructions' && ( )} - {activeTab === 'tools' && ( - - )} {activeTab === 'versions' && ( )} @@ -376,7 +386,7 @@ export default function AgentEditor({ agent, meta, onSave, onDelete, onRun, onDu {/* Surfaces once something actually changed, on every tab: the header badge reports "unsaved" from anywhere, so the control has to follow it or an edit made on Configuration looks unsavable from Traces. */} - {hasChanges && ( + {hasChanges && !isTools && (
{ - const icons = { - terminal: '$', playwright: '>', filesystem: '/', code: '<>', - database: '#', slack: '@', fetch: '~', search: '?', - edit: '*', translate: '[]', memory: 'M', ui: '[=]' - }; - return icons[tool] || '[]'; - }; - - // Schema-derived tools arrive as bare function names (find_tickets); the - // built-ins are single words. Label them readably rather than capitalising - // the raw identifier into "Find_tickets". - const isSchemaTool = (tool) => tool.includes('_'); - const toolLabel = (tool) => (isSchemaTool(tool) ? tool.replace(/_/g, ' ') : tool); - - return ( -
-

Select the tools your agent can use.

- -
- {meta.availableTools?.map(tool => { - const on = formData.tools.includes(tool); - return ( - - ); - })} -
- - {formData.tools.length > 0 && ( -
-
- Selected tools · {formData.tools.length} -
-
- {formData.tools.map(tool => ( - - {getToolIcon(tool)} {tool} - - ))} -
-
- )} -
- ); -} - function VersionsTab({ versions, agentId, onRestore, colors, darkMode }) { const handleRestore = async (versionId) => { if (!confirm('Restore this version? This will create a new version with the restored configuration.')) return; diff --git a/actionagent/frontend/components/dashboard/AgentToolsTab.jsx b/actionagent/frontend/components/dashboard/AgentToolsTab.jsx new file mode 100644 index 00000000..b5771813 --- /dev/null +++ b/actionagent/frontend/components/dashboard/AgentToolsTab.jsx @@ -0,0 +1,589 @@ +import React, { useState, useEffect, useCallback, useMemo } from 'react'; +import { Badge, Button, Card, Chip, Empty, Glyph, MicroLabel, MonoLink, MONO, SegmentedControl } from './primitives'; +import { dashboardPath, navigateTo } from '../../utils/dashboardPath'; +import { + RANGES, + SOURCE_LABELS, + changeCount, + fmtAgo, + fmtDuration, + mcpServersFor, + rosterStats, + serviceRows, + serviceState, + toolGroups, + toolsFor, +} from '../../utils/toolRoster.mjs'; + +// The agent's Tools tab: the MCP services it can be given and the tools it +// can be offered, in one list vocabulary with the usage each one has. +// +// The card grid this replaces could not answer the questions you have while +// editing a roster — what does this tool do, is it ever called, does it +// error, where does it come from — and had no way to enable an MCP service +// at all. Both lists read like the Tools and MCP Services pages, because +// they are the same rows asked a different question. +// +// Editing writes straight into the editor's form buffer, so the header's +// "unsaved" badge, the sticky bar's count and Save all follow one state. + +const STATUS_TONES = { active: 'success', configured: 'info', available: 'warning', idle: 'muted' }; +const SOURCE_TONES = { agent_defined: 'success', dashboard: 'success', mcp: 'info' }; + +const SERVICE_COLUMNS = '44px minmax(0, 1fr) 108px 60px 52px 58px 74px 26px'; +const TOOL_COLUMNS = '26px minmax(0, 1fr) 108px 52px 52px 52px 74px'; + +const SERVICE_FILTERS = [ + { value: 'enabled', label: 'Enabled' }, + { value: 'active', label: 'Active' }, + { value: 'configured', label: 'Configured' }, + { value: 'available', label: 'Available' }, +]; + +const headStrip = { + padding: '7px 16px', + gap: 10, + alignItems: 'end', + background: 'var(--color-muted)', + fontFamily: MONO, + fontSize: 10, + fontWeight: 600, + letterSpacing: '0.05em', + textTransform: 'uppercase', + color: 'var(--color-text-muted)', +}; + +const numeric = { fontFamily: MONO, fontSize: 11, textAlign: 'right', color: 'var(--color-text-primary)' }; +const ellipsis = { whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' }; + +// 34×18 track, 14px knob. The only other transition on the page is the +// chevron's rotate. +function Switch({ on, onClick, title }) { + return ( + { if (event.key === 'Enter' || event.key === ' ') { event.preventDefault(); onClick(event); } }} + style={{ + width: 34, height: 18, borderRadius: 999, flexShrink: 0, position: 'relative', cursor: 'pointer', + background: on ? 'var(--color-accent-ui)' : 'var(--color-muted)', + border: `1px solid ${on ? 'var(--color-accent-ui)' : 'var(--color-border-strong)'}`, + transition: 'background 0.12s ease', + }} + > + + + ); +} + +function CheckBox({ on, dim = false }) { + return ( + + ); +} + +// A mono text button, for the bulk controls that sit inside a list. +function MicroButton({ children, onClick, disabled, title }) { + return ( + + ); +} + +// Both lists scroll sideways rather than crushing their numeric columns. +function ScrollBox({ children }) { + return ( +
+
{children}
+
+ ); +} + +export default function AgentToolsTab({ agent, formData, updateField, onSave, hasChanges = false, isLoading }) { + const [payload, setPayload] = useState(null); + const [loadError, setLoadError] = useState(null); + const [range, setRange] = useState('7d'); + const [query, setQuery] = useState(''); + const [serviceFilter, setServiceFilter] = useState(null); + const [source, setSource] = useState(null); + const [enabledOnly, setEnabledOnly] = useState(false); + const [openService, setOpenService] = useState(null); + const [closedGroups, setClosedGroups] = useState({}); + + const hours = (RANGES.find((option) => option.value === range) || RANGES[1]).hours; + + useEffect(() => { + let cancelled = false; + setLoadError(null); + + fetch(`/api/agents/${agent.id}/tool_roster?hours=${hours}`) + .then((response) => { + if (!response.ok) throw new Error(`Request failed (${response.status})`); + return response.json(); + }) + .then((body) => { if (!cancelled) setPayload(body); }) + .catch((error) => { if (!cancelled) setLoadError(error.message); }); + + return () => { cancelled = true; }; + }, [agent.id, hours]); + + const empty = useMemo(() => ({ services: [], tools: [] }), []); + const roster = payload || empty; + // Stable identities: every view below is memoized on these. + const selectedTools = useMemo(() => formData.tools || [], [formData.tools]); + const configuredServers = useMemo(() => formData.mcp_servers || [], [formData.mcp_servers]); + + const state = useMemo(() => serviceState(roster, configuredServers), [roster, configuredServers]); + const services = useMemo( + () => serviceRows(roster, state, { query, filter: serviceFilter }), + [roster, state, query, serviceFilter], + ); + const groups = useMemo( + () => toolGroups(roster, state, selectedTools, { query, source, enabledOnly }), + [roster, state, selectedTools, query, source, enabledOnly], + ); + const stats = useMemo(() => rosterStats(roster, state, selectedTools, { range }), [roster, state, selectedTools, range]); + const changes = useMemo( + () => changeCount(roster, { tools: selectedTools, mcpServers: configuredServers }, { tools: agent.tools || [], mcpServers: agent.mcp_servers || [] }), + [roster, selectedTools, configuredServers, agent], + ); + + const usage = roster.usage_available !== false; + const cell = (value) => (usage ? value : '—'); + + // Every write goes through the form buffer, so a roster edit is unsaved + // in exactly the way an instructions edit is. + const writeServices = useCallback((next) => { + updateField('mcp_servers', mcpServersFor(roster, next, configuredServers)); + }, [roster, configuredServers, updateField]); + + const toggleService = useCallback((service) => { + const current = state[service.key]; + writeServices({ ...state, [service.key]: { ...current, on: !current.on } }); + }, [state, writeServices]); + + const toggleServiceTool = useCallback((service, tool) => { + const current = state[service.key]; + if (!current.on) return; + writeServices({ ...state, [service.key]: { ...current, tools: { ...current.tools, [tool.name]: !current.tools[tool.name] } } }); + }, [state, writeServices]); + + // `all` turns the service on and offers everything it serves; `none` + // leaves it on and offers nothing. + const setAllServiceTools = useCallback((service, on) => { + const current = state[service.key]; + const tools = Object.fromEntries((service.tools || []).map((tool) => [tool.name, on])); + writeServices({ ...state, [service.key]: { on: on || current.on, tools } }); + }, [state, writeServices]); + + const toggleTool = useCallback((tool) => { + if (!tool.editable) return; + const next = tool.on ? selectedTools.filter((name) => name !== tool.key) : [...selectedTools, tool.key]; + updateField('tools', toolsFor(roster, next)); + }, [roster, selectedTools, updateField]); + + const setGroup = useCallback((group, on) => { + if (!group.editable) return; + const next = on + ? [...selectedTools, ...group.keys.filter((key) => !selectedTools.includes(key))] + : selectedTools.filter((name) => !group.keys.includes(name)); + updateField('tools', toolsFor(roster, next)); + }, [roster, selectedTools, updateField]); + + const discard = useCallback(() => { + updateField('tools', agent.tools || []); + updateField('mcp_servers', agent.mcp_servers || []); + }, [agent, updateField]); + + const enabledServices = (roster.services || []).filter((service) => state[service.key]?.on); + const offeredMcp = groups.find((group) => group.source === 'mcp'); + const directOn = groups + .filter((group) => group.source !== 'mcp') + .reduce((total, group) => total + group.enabledCount, 0); + const totalOn = directOn + (offeredMcp ? offeredMcp.total : 0); + const totalTools = groups.reduce((total, group) => total + group.total, 0); + + if (loadError) { + return ( + + Tools & MCP services +

+ Could not load the roster: {loadError} +

+
+ ); + } + + if (!payload) { + return loading the roster…; + } + + return ( +
+
+
+

Tools & MCP services

+

+ 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. +

+
+
+ + ? + setQuery(event.target.value)} + placeholder="Filter tools and services…" + aria-label="Filter tools and services" + style={{ border: 'none', outline: 'none', background: 'transparent', color: 'var(--color-text-primary)', fontSize: 13, width: 180 }} + /> + + +
+
+ +
+ {stats.map((stat) => ( + + {stat.label} +
+ {stat.value} +
+
{stat.sub}
+
+ ))} +
+ + {/* MCP services — one switch per service, expand for its tools. */} + +
+ MCP services + + {enabledServices.length} of {(roster.services || []).length} enabled · {offeredMcp ? offeredMcp.total : 0} tools offered + + + setServiceFilter(null)}>All {(roster.services || []).length} + {SERVICE_FILTERS.map((filter) => ( + setServiceFilter(serviceFilter === filter.value ? null : filter.value)} + > + {filter.label}{filter.value === 'enabled' ? ` ${enabledServices.length}` : ''} + + ))} + navigateTo('/mcp')} + title="Every MCP service this workspace knows" + style={{ marginLeft: 4 }} + > + manage servers + + +
+ + +
+ On + Service + Status + Tools + Calls + Errors + Last seen + +
+ + {services.map((service) => { + const open = openService === service.key; + return ( +
+
+ toggleService(service)} + title={`${service.on ? 'Disable' : 'Enable'} ${service.name} for this agent`} + /> +
setOpenService(open ? null : service.key)} style={{ minWidth: 0, cursor: 'pointer' }}> +
+ {service.name} + {service.first_party && first-party} + {!service.known && undocumented} + {service.partial && {service.partialLabel}} +
+
+ {service.description} +
+
+ {service.status} + {service.toolsLabel} + {cell(service.calls)} + {cell(service.errors)} + {cell(fmtAgo(service.last_seen))} + setOpenService(open ? null : service.key)} style={{ cursor: 'pointer', textAlign: 'center' }}> + + +
+ + {open && ( +
+
+ Tools offered + {service.transport} + + setAllServiceTools(service, true)} title={`Offer every tool ${service.name} serves`}>all + setAllServiceTools(service, false)} disabled={!service.on} title={`Offer none of ${service.name}'s tools`}>none + +
+ + {service.tools.length === 0 ? ( + no tools recorded for this service yet + ) : ( +
+ {service.tools.map((tool) => ( +
toggleServiceTool(service, tool)} + style={{ + display: 'grid', gridTemplateColumns: '20px minmax(0, 1fr) 46px 52px', gap: 10, alignItems: 'center', + padding: '6px 8px', borderRadius: 8, cursor: service.on ? 'pointer' : 'default', + opacity: service.on ? 1 : 0.55, + }} + > + + + + {tool.name} + + {tool.description} + + {cell(tool.calls)} + + {cell(tool.errors ? `${tool.errors} err` : fmtDuration(tool.avg_duration_ms))} + +
+ ))} +
+ )} + + {!service.on && ( +
+ Turning {service.name} on offers these {service.tools.length} tools to the agent and starts recording + traces and metrics for every call. +
+ )} +
+ )} +
+ ); + })} + + {services.length === 0 && ( + + {query ? `no services match "${query}"` : 'no MCP services yet'} + + )} +
+
+ + {/* Tools — the whole roster, grouped by where each tool comes from. */} + +
+ Tools + + {totalOn} enabled of {totalTools} available + + + setSource(null)}>All {totalTools} + {groups.map((group) => ( + setSource(source === group.source ? null : group.source)} + > + {group.name} {group.total} + + ))} + setEnabledOnly(!enabledOnly)} + style={{ marginLeft: 4 }} + > + {enabledOnly ? '[x] enabled only' : '[ ] enabled only'} + + +
+ + +
+ + Tool + Source + Calls + Errors + Avg + Last seen +
+ + {groups.map((group) => { + const open = closedGroups[group.source] !== true; + return ( +
+
+ setClosedGroups({ ...closedGroups, [group.source]: open })} + style={{ cursor: 'pointer', display: 'inline-flex', alignItems: 'center', gap: 10 }} + > + + {group.name} + + {group.meta} + + {group.countLabel} + {group.editable && ( + <> + setGroup(group, true)}>all + setGroup(group, false)}>none + + )} + +
+ + {open && group.rows.map((tool) => ( +
toggleTool(tool)} + style={{ + display: 'grid', gridTemplateColumns: TOOL_COLUMNS, gap: 10, alignItems: 'center', + padding: '10px 16px', borderTop: '1px solid var(--color-border-light)', + cursor: tool.editable ? 'pointer' : 'default', opacity: tool.editable ? 1 : 0.75, + }} + > + +
+
+ + {tool.name} + + {tool.source === 'mcp' && via {tool.server}} + {tool.source === 'agent_defined' && from schema} + {usage && tool.on && !tool.calls && unused} +
+
+ {tool.description} +
+
+ {SOURCE_LABELS[tool.source]} + {cell(tool.calls)} + {cell(tool.errors)} + {cell(fmtDuration(tool.avg_duration_ms))} + {cell(fmtAgo(tool.last_seen))} +
+ ))} +
+ ); + })} + + {groups.every((group) => group.rows.length === 0) && ( + + {query ? `no tools match "${query}"` : 'nothing enabled yet'} + + )} +
+
+ + +
+ {totalOn} tools · {enabledServices.length} services + + Every enabled tool is traced: calls, arguments, errors and latency land in Traces and roll up into Metrics. + +
+ + {changes > 0 && ( + <> + + {changes} change{changes === 1 ? '' : 's'} pending + + + + )} + {/* This bar replaces the editor's own while the tab is open, so it + saves an edit made on any tab — not only a roster change. */} + + +
+
+ ); +} diff --git a/actionagent/frontend/components/dashboard/ScenarioSuitePanel.jsx b/actionagent/frontend/components/dashboard/ScenarioSuitePanel.jsx index a5aa8c53..00763b33 100644 --- a/actionagent/frontend/components/dashboard/ScenarioSuitePanel.jsx +++ b/actionagent/frontend/components/dashboard/ScenarioSuitePanel.jsx @@ -1,5 +1,5 @@ import React, { useState, useEffect, useCallback, useMemo } from 'react'; -import { dashboardPath, dashboardRelativePath, pushDashboardPath } from '../../utils/dashboardPath'; +import { dashboardPath, navigateTo } from '../../utils/dashboardPath'; import { Button, Chip, Empty, MicroLabel, MonoLink, MONO } from './primitives'; import { fmtCost, fmtK, fmtMs, timeAgo } from '../../utils/format'; import { scenarioRowsForRun } from '../../utils/evaluationHistory.mjs'; @@ -39,15 +39,6 @@ function scenariosToText(scenarios) { return lines.join('\n'); } -// In-app navigation to a dashboard route. Accepts a mount-relative path -// ("/tools") or one that already carries the mount. -export function navigateTo(path) { - if (!path) return; - const relative = dashboardRelativePath(path); - pushDashboardPath(relative); - window.dispatchEvent(new CustomEvent('dashboard:navigate', { detail: { path: dashboardPath(relative) } })); -} - const stripResults = (run) => { const { results, fix_items: fixItems, ...summary } = run; return summary; diff --git a/actionagent/frontend/test/toolRoster.test.mjs b/actionagent/frontend/test/toolRoster.test.mjs new file mode 100644 index 00000000..55c87838 --- /dev/null +++ b/actionagent/frontend/test/toolRoster.test.mjs @@ -0,0 +1,214 @@ +import assert from 'node:assert/strict'; +import test from 'node:test'; +import { + allToolRows, + changeCount, + fmtAgo, + fmtDuration, + mcpServersFor, + rosterStats, + serviceRows, + serviceState, + toolGroups, + toolsFor, +} from '../utils/toolRoster.mjs'; + +// The Tools tab derives everything from two inputs: the roster endpoint's +// payload and the agent's own configuration as the editor currently holds it. +// These pin the rules that live only in that derivation — what an absent tool +// list means, what is editable, and what a save writes back. + +const payload = () => ({ + usage_available: true, + services: [ + { + key: 'playwright', + name: 'Playwright', + status: 'available', + tools: [ + { name: 'browser_navigate', description: 'Opens a URL.', calls: 3, errors: 0, avg_duration_ms: 820, last_seen: null }, + { name: 'browser_click', description: 'Clicks an element.', calls: 0, errors: 0, avg_duration_ms: null, last_seen: null }, + ], + }, + { key: 'git', name: 'Git', status: 'available', tools: [{ name: 'git_status', calls: 0, errors: 0 }] }, + ], + tools: [ + { key: 'find_tickets', name: 'find_tickets', source: 'agent_defined', description: 'Find tickets.', enabled: true, editable: false, calls: 8, errors: 0, avg_duration_ms: 13 }, + { key: 'memory', name: 'memory', source: 'dashboard', description: 'Durable notes.', enabled: true, editable: true, calls: 0, errors: 0, avg_duration_ms: null }, + { key: 'terminal', name: 'terminal', source: 'dashboard', description: 'Shell.', enabled: false, editable: true, calls: 0, errors: 0, avg_duration_ms: null }, + ], +}); + +test('a service entry naming no tools offers everything the server serves', () => { + const state = serviceState(payload(), ['playwright']); + + assert.equal(state.playwright.on, true); + assert.deepEqual(state.playwright.tools, { browser_navigate: true, browser_click: true }); + assert.equal(state.git.on, false); +}); + +test('a service entry naming some of its tools offers only those', () => { + const state = serviceState(payload(), [{ key: 'playwright', tools: ['browser_navigate'] }]); + + assert.deepEqual(state.playwright.tools, { browser_navigate: true, browser_click: false }); +}); + +test('a partly narrowed service says how many of its tools are off', () => { + const state = serviceState(payload(), [{ key: 'playwright', tools: ['browser_navigate'] }]); + const [playwright] = serviceRows(payload(), state, {}); + + assert.equal(playwright.toolsLabel, '1/2'); + assert.equal(playwright.partial, true); + assert.equal(playwright.partialLabel, '1 tool off'); +}); + +test('the search filters services by name, description and the tools they serve', () => { + const state = serviceState(payload(), []); + const byTool = serviceRows(payload(), state, { query: 'browser_click' }); + + assert.deepEqual(byTool.map((service) => service.key), ['playwright']); + assert.deepEqual(serviceRows(payload(), state, { query: 'git' }).map((service) => service.key), ['git']); + assert.deepEqual(serviceRows(payload(), state, { query: 'nothing' }), []); +}); + +test('the enabled filter follows the edit buffer rather than the saved record', () => { + const state = serviceState(payload(), ['git']); + + assert.deepEqual(serviceRows(payload(), state, { filter: 'enabled' }).map((service) => service.key), ['git']); +}); + +test('an enabled service contributes its offered tools to the roster, a disabled one none', () => { + const on = serviceState(payload(), [{ key: 'playwright', tools: ['browser_navigate'] }]); + + const rows = allToolRows(payload(), on, ['memory']); + const mcp = rows.filter((row) => row.source === 'mcp'); + + assert.deepEqual(mcp.map((row) => row.name), ['browser_navigate']); + assert.equal(mcp[0].server, 'Playwright'); + assert.equal(mcp[0].editable, false); + assert.equal(allToolRows(payload(), serviceState(payload(), []), []).some((row) => row.source === 'mcp'), false); +}); + +test('schema-derived tools are always on and never editable; capabilities follow the roster', () => { + const rows = allToolRows(payload(), serviceState(payload(), []), ['memory']); + const byKey = Object.fromEntries(rows.map((row) => [row.key, row])); + + assert.equal(byKey.find_tickets.on, true); + assert.equal(byKey.find_tickets.editable, false); + assert.equal(byKey.memory.on, true); + assert.equal(byKey.terminal.on, false); +}); + +test('groups carry their own counts and only the editable one offers bulk controls', () => { + const state = serviceState(payload(), ['playwright']); + const groups = Object.fromEntries(toolGroups(payload(), state, ['memory'], {}).map((group) => [group.source, group])); + + assert.equal(groups.agent_defined.countLabel, '1 offered'); + assert.equal(groups.agent_defined.editable, false); + assert.equal(groups.dashboard.countLabel, '1/2 on'); + assert.equal(groups.dashboard.editable, true); + assert.equal(groups.mcp.countLabel, '2 offered'); +}); + +test('"enabled only" hides what is off, and a group with no rows left keeps its heading', () => { + const state = serviceState(payload(), []); + const groups = Object.fromEntries( + toolGroups(payload(), state, ['memory'], { enabledOnly: true }).map((group) => [group.source, group]), + ); + + assert.deepEqual(groups.dashboard.rows.map((row) => row.key), ['memory']); + assert.equal(groups.dashboard.total, 2); + // The heading counts the roster, not what the filter left visible. + assert.equal(groups.dashboard.countLabel, '1/2 on'); + assert.equal(groups.dashboard.enabledCount, 1); +}); + +test('a search narrows the rows without changing what the counts report', () => { + const state = serviceState(payload(), []); + const [dashboard] = toolGroups(payload(), state, ['memory', 'terminal'], { query: 'terminal' }) + .filter((group) => group.source === 'dashboard'); + + assert.deepEqual(dashboard.rows.map((row) => row.key), ['terminal']); + assert.equal(dashboard.countLabel, '2/2 on'); + assert.equal(dashboard.enabledCount, 2); +}); + +test('the tiles count direct and MCP tools separately and flag a long unused tail', () => { + const state = serviceState(payload(), ['playwright']); + const stats = Object.fromEntries(rosterStats(payload(), state, ['memory'], { range: '7d' }).map((stat) => [stat.key, stat])); + + assert.equal(stats.tools.value, '4'); + assert.equal(stats.tools.sub, '2 direct · 2 offered through MCP'); + assert.equal(stats.services.value, '1/2'); + assert.equal(stats.services.sub, 'on for this agent: Playwright'); + assert.equal(stats.calls.value, '11'); + assert.equal(stats.calls.sub, '0 errors in the last 7d · traced'); + assert.equal(stats.unused.value, '2'); + assert.equal(stats.unused.tone, null); +}); + +test('usage reads as unavailable rather than as zero when nothing was recorded', () => { + const body = { ...payload(), usage_available: false }; + const stats = Object.fromEntries(rosterStats(body, serviceState(body, []), [], {}).map((stat) => [stat.key, stat])); + + assert.equal(stats.calls.value, '—'); + assert.equal(stats.unused.value, '—'); +}); + +test('the pending count is one per toggle that differs from the saved roster', () => { + const body = payload(); + const saved = { tools: ['memory'], mcpServers: [] }; + + assert.equal(changeCount(body, saved, saved), 0); + // One service on, and one of its two tools left off: two differences. + assert.equal( + changeCount(body, { tools: ['memory'], mcpServers: [{ key: 'playwright', tools: ['browser_navigate'] }] }, saved), + 2, + ); + assert.equal(changeCount(body, { tools: ['memory', 'terminal'], mcpServers: [] }, saved), 1); +}); + +test('a save writes no tool list for a service offering everything, and one when it narrows', () => { + const body = payload(); + const all = serviceState(body, ['playwright']); + const narrowed = serviceState(body, [{ key: 'playwright', tools: ['browser_navigate'] }]); + + // A server that was named as a bare string and still offers everything + // stays a bare string: a round-trip must not rewrite what it did not change. + assert.deepEqual(mcpServersFor(body, all, ['playwright']), ['playwright']); + assert.deepEqual(mcpServersFor(body, all, []), [{ key: 'playwright', name: 'Playwright' }]); + assert.deepEqual(mcpServersFor(body, narrowed, ['playwright']), [{ key: 'playwright', name: 'Playwright', tools: ['browser_navigate'] }]); +}); + +test('a save keeps a service the roster does not describe, and its connection details', () => { + const body = payload(); + const previous = [{ key: 'booking', url: 'https://booking.internal/mcp' }, { key: 'playwright', url: 'http://local/mcp' }]; + const state = serviceState(body, previous); + + assert.deepEqual(mcpServersFor(body, state, previous), [ + { key: 'playwright', url: 'http://local/mcp' }, + { key: 'booking', url: 'https://booking.internal/mcp' }, + ]); +}); + +test('a save writes only the capabilities the dashboard owns, keeping names it does not know', () => { + const body = payload(); + + assert.deepEqual(toolsFor(body, ['memory', 'terminal']), ['memory', 'terminal']); + assert.deepEqual(toolsFor(body, ['legacy_tool', 'memory']), ['legacy_tool', 'memory']); + // Schema-derived and MCP rows are never roster entries. + assert.deepEqual(toolsFor(body, ['find_tickets']), ['find_tickets']); + assert.deepEqual(toolsFor(body, []), []); +}); + +test('durations and last-seen read the way the columns are sized for', () => { + assert.equal(fmtDuration(13), '13ms'); + assert.equal(fmtDuration(1240), '1.2s'); + assert.equal(fmtDuration(null), '—'); + + const now = Date.parse('2026-03-01T12:00:00Z'); + assert.equal(fmtAgo(null, now), 'never'); + assert.equal(fmtAgo('2026-03-01T11:48:00Z', now), '12m ago'); + assert.equal(fmtAgo('2026-03-01T10:00:00Z', now), '2h ago'); + assert.equal(fmtAgo('2026-02-26T12:00:00Z', now), '3d ago'); +}); diff --git a/actionagent/frontend/tokens.css b/actionagent/frontend/tokens.css index eed958df..c7841544 100644 --- a/actionagent/frontend/tokens.css +++ b/actionagent/frontend/tokens.css @@ -110,3 +110,9 @@ /* The chevron glyph rotates when its section opens; nothing else animates. */ .aa-dashboard .aa-chevron { display: inline-block; transition: transform 0.15s ease; } .aa-dashboard .aa-chevron[data-open="true"] { transform: rotate(90deg); } + +/* Roster rows: the enabled tint and the hover both live here, because an + inline background would win over a :hover rule. */ +.aa-dashboard .aa-roster-row { background: transparent; } +.aa-dashboard .aa-roster-row[data-on="true"] { background: var(--color-accent-ui-tint); } +.aa-dashboard .aa-roster-row:hover { background: var(--color-hover); } diff --git a/actionagent/frontend/utils/dashboardPath.js b/actionagent/frontend/utils/dashboardPath.js index 1b61427f..7de5c3cd 100644 --- a/actionagent/frontend/utils/dashboardPath.js +++ b/actionagent/frontend/utils/dashboardPath.js @@ -26,3 +26,12 @@ export function dashboardRelativePath(pathname = window.location.pathname) { } return pathname; } + +// In-app navigation to a dashboard route. Accepts a mount-relative path +// ("/tools") or one that already carries the mount. +export function navigateTo(path) { + if (!path) return; + const relative = dashboardRelativePath(path); + pushDashboardPath(relative); + window.dispatchEvent(new CustomEvent('dashboard:navigate', { detail: { path: dashboardPath(relative) } })); +} diff --git a/actionagent/frontend/utils/toolRoster.mjs b/actionagent/frontend/utils/toolRoster.mjs new file mode 100644 index 00000000..00bce23d --- /dev/null +++ b/actionagent/frontend/utils/toolRoster.mjs @@ -0,0 +1,313 @@ +// The Tools tab's derivations: what the agent's saved configuration plus the +// roster endpoint add up to, with nothing stored that can be computed. +// +// The endpoint describes the *saved* record (which services are on, which of +// their tools are allowed). Editing happens against the editor's form buffer, +// so every view here is re-derived from that buffer instead of from the +// payload's own flags — one source of truth while a roster is being changed, +// and the same rule on both sides of a save: a service entry that names no +// tools offers every tool the server serves. + +export const SOURCES = ['agent_defined', 'dashboard', 'mcp']; + +export const SOURCE_LABELS = { + agent_defined: 'Agent-defined', + dashboard: 'Dashboard', + mcp: 'MCP', +}; + +export const GROUP_META = { + agent_defined: "derived from the agent's own schema", + dashboard: 'built into the dashboard', + mcp: 'offered by the services above', +}; + +export const RANGES = [ + { value: '24h', label: '24h', hours: 24 }, + { value: '7d', label: '7d', hours: 24 * 7 }, + { value: '30d', label: '30d', hours: 24 * 30 }, +]; + +// 13 → "13ms", 1240 → "1.2s", nothing recorded → "—". +export const fmtDuration = (ms) => { + if (ms == null || Number.isNaN(Number(ms))) return '—'; + const n = Number(ms); + return n >= 1000 ? `${(n / 1000).toFixed(1)}s` : `${Math.round(n)}ms`; +}; + +// Compact enough for a 74px column: "12m ago", "2h ago", "3d ago", "never". +export const fmtAgo = (iso, now = Date.now()) => { + if (!iso) return 'never'; + const then = new Date(iso).getTime(); + if (Number.isNaN(then)) return 'never'; + const mins = Math.floor((now - then) / 60000); + if (mins < 1) return 'just now'; + if (mins < 60) return `${mins}m ago`; + const hours = Math.floor(mins / 60); + if (hours < 24) return `${hours}h ago`; + return `${Math.floor(hours / 24)}d ago`; +}; + +// An agent names a server as a bare string or as a hash carrying its key — +// both shapes reach the editor, and a round-trip must not rewrite either. +export const entryKey = (entry) => { + if (typeof entry === 'string') return entry.trim() || null; + if (!entry || typeof entry !== 'object') return null; + const key = entry.key || entry.name; + return key ? String(key).trim() || null : null; +}; + +// serviceKey => { on, tools: { toolName: offered } }, from the agent's +// mcp_servers as the form buffer currently holds it. +export function serviceState(payload, mcpServers = []) { + const configured = new Map(); + (mcpServers || []).forEach((entry) => { + const key = entryKey(entry); + if (key) configured.set(key, entry); + }); + + const state = {}; + (payload.services || []).forEach((service) => { + const entry = configured.get(service.key); + const named = entry && typeof entry === 'object' && Array.isArray(entry.tools) + ? entry.tools.map((tool) => String(tool && tool.name ? tool.name : tool)) + : null; + + state[service.key] = { + on: configured.has(service.key), + // No list means every tool the server serves. + tools: Object.fromEntries( + (service.tools || []).map((tool) => [tool.name, named === null || named.includes(tool.name)]), + ), + }; + }); + return state; +} + +const matcher = (query) => { + const q = String(query || '').trim().toLowerCase(); + return (...values) => !q || values.some((value) => String(value || '').toLowerCase().includes(q)); +}; + +// The MCP services list: every service the workspace knows, in the state this +// agent has it in. +export function serviceRows(payload, state, { query = '', filter = null } = {}) { + const hit = matcher(query); + + return (payload.services || []) + .filter((service) => { + if (!filter) return true; + return filter === 'enabled' ? state[service.key]?.on : service.status === filter; + }) + .filter((service) => hit(service.name, service.description) || (service.tools || []).some((tool) => hit(tool.name))) + .map((service) => { + const current = state[service.key] || { on: false, tools: {} }; + const offered = service.tools || []; + const tools = offered.map((tool) => ({ ...tool, on: Boolean(current.tools[tool.name]) })); + const enabled = tools.filter((tool) => tool.on); + + return { + ...service, + on: current.on, + tools, + offeredCount: offered.length, + enabledCount: enabled.length, + toolsLabel: `${enabled.length}/${offered.length}`, + partial: current.on && enabled.length < offered.length, + partialLabel: `${offered.length - enabled.length} tool off`, + }; + }); +} + +// Tools a service offers are never roster rows of their own: they are +// computed from the services that are on, and edited there. +export function mcpToolRows(payload, state) { + const rows = []; + (payload.services || []).forEach((service) => { + const current = state[service.key]; + if (!current || !current.on) return; + + (service.tools || []).forEach((tool) => { + if (!current.tools[tool.name]) return; + rows.push({ + ...tool, + key: `${service.key}:${tool.name}`, + source: 'mcp', + editable: false, + enabled: true, + server: service.name, + serverKey: service.key, + }); + }); + }); + return rows; +} + +// Every row the Tools card can show, before filtering: the agent's own +// schema-derived tools, the dashboard's capabilities, and whatever the +// enabled services offer. +export function allToolRows(payload, state, tools = []) { + const selected = new Set((tools || []).map(String)); + + return (payload.tools || []) + .map((tool) => ({ + ...tool, + // A schema-derived tool is reported, not selected; a capability is on + // when the agent's roster names it. + on: tool.editable ? selected.has(tool.key) : tool.enabled !== false, + })) + .concat(mcpToolRows(payload, state).map((row) => ({ ...row, on: true }))); +} + +export function toolGroups(payload, state, tools, { query = '', source = null, enabledOnly = false } = {}) { + const hit = matcher(query); + const rows = allToolRows(payload, state, tools); + const visible = rows + .filter((row) => !source || row.source === source) + .filter((row) => !enabledOnly || row.on) + .filter((row) => hit(row.name, row.description)); + + return SOURCES.map((source_) => { + const all = rows.filter((row) => row.source === source_); + const editable = all.some((row) => row.editable); + // Counts describe the roster, not the filtered view: narrowing the list + // with a search must not change what the header says is enabled. + const on = all.filter((row) => row.on).length; + + return { + source: source_, + name: SOURCE_LABELS[source_], + meta: `${GROUP_META[source_]} · ${all.length} ${all.length === 1 ? 'tool' : 'tools'}`, + countLabel: editable ? `${on}/${all.length} on` : `${all.length} offered`, + editable, + total: all.length, + enabledCount: on, + keys: all.map((row) => row.key), + rows: visible.filter((row) => row.source === source_), + }; + }).filter((group) => group.total > 0); +} + +// The four tiles over the lists. Usage figures read "—" until something has +// been recorded in the window, rather than as honest-looking zeroes. +export function rosterStats(payload, state, tools, { range = '7d' } = {}) { + const rows = allToolRows(payload, state, tools); + const usage = payload.usage_available !== false; + const services = payload.services || []; + const enabledServices = services.filter((service) => state[service.key]?.on); + + const direct = rows.filter((row) => row.source !== 'mcp' && row.on); + const offered = rows.filter((row) => row.source === 'mcp'); + const calls = rows.reduce((total, row) => total + (row.calls || 0), 0); + const errors = rows.reduce((total, row) => total + (row.errors || 0), 0); + const neverCalled = rows.filter((row) => row.on && !row.calls).length; + + return [ + { + key: 'tools', + label: 'Tools enabled', + value: String(direct.length + offered.length), + sub: `${direct.length} direct · ${offered.length} offered through MCP`, + }, + { + key: 'services', + label: 'MCP services', + value: `${enabledServices.length}/${services.length}`, + sub: enabledServices.length + ? `on for this agent: ${enabledServices.map((service) => service.name).join(', ')}` + : 'none enabled for this agent', + }, + { + key: 'calls', + label: 'Tool calls', + value: usage ? String(calls) : '—', + sub: usage ? `${errors} error${errors === 1 ? '' : 's'} in the last ${range} · traced` : 'no calls recorded in this window yet', + }, + { + key: 'unused', + label: 'Never called', + value: usage ? String(neverCalled) : '—', + sub: 'enabled but unused in this window', + tone: usage && neverCalled > 6 ? 'warning' : null, + }, + ]; +} + +// How many toggles differ from the saved roster — what the sticky bar counts +// and what drives the header's "unsaved" badge. +export function changeCount(payload, current, saved) { + const now = serviceState(payload, current.mcpServers); + const before = serviceState(payload, saved.mcpServers); + let changes = 0; + + Object.keys(now).forEach((key) => { + if (now[key].on !== before[key].on) changes += 1; + Object.keys(now[key].tools).forEach((name) => { + if (now[key].tools[name] !== before[key].tools[name]) changes += 1; + }); + }); + + const selected = new Set((current.tools || []).map(String)); + const wasSelected = new Set((saved.tools || []).map(String)); + (payload.tools || []).forEach((tool) => { + if (!tool.editable) return; + if (selected.has(tool.key) !== wasSelected.has(tool.key)) changes += 1; + }); + + return changes; +} + +// The mcp_servers value to save. A service that offers everything it serves +// is written without a tool list — and one the roster doesn't describe is +// carried through untouched, since this view is not the only thing that +// writes them. +export function mcpServersFor(payload, state, previous = []) { + const byKey = new Map(); + (previous || []).forEach((entry) => { + const key = entryKey(entry); + if (key) byKey.set(key, entry); + }); + + const rows = []; + (payload.services || []).forEach((service) => { + const current = state[service.key]; + if (!current || !current.on) return; + + const offered = (service.tools || []).map((tool) => tool.name); + const allowed = offered.filter((name) => current.tools[name]); + const existing = byKey.get(service.key); + const narrowed = offered.length > 0 && allowed.length < offered.length; + + if (typeof existing === 'string' && !narrowed) { + rows.push(existing); + return; + } + + const entry = existing && typeof existing === 'object' + ? { ...existing, key: existing.key || service.key } + : { key: service.key, name: service.name }; + + if (narrowed) entry.tools = allowed; + else delete entry.tools; + + rows.push(entry); + }); + + const known = new Set((payload.services || []).map((service) => service.key)); + (previous || []).forEach((entry) => { + const key = entryKey(entry); + if (key && !known.has(key)) rows.push(entry); + }); + + return rows; +} + +// The tools value to save: the dashboard capabilities that are on. Rows the +// dashboard doesn't own — schema-derived and MCP — are never written to the +// roster, and names it doesn't know about are left where they were. +export function toolsFor(payload, selected = []) { + const known = new Set((payload.tools || []).filter((tool) => tool.editable).map((tool) => tool.key)); + const kept = (selected || []).map(String).filter((name) => !known.has(name)); + const on = (payload.tools || []).filter((tool) => tool.editable && selected.includes(tool.key)).map((tool) => tool.key); + return kept.concat(on); +} diff --git a/actionagent/lib/action_agent.rb b/actionagent/lib/action_agent.rb index 445f7bc9..47947f15 100644 --- a/actionagent/lib/action_agent.rb +++ b/actionagent/lib/action_agent.rb @@ -145,6 +145,26 @@ def deprecator # @return [Proc, nil] attr_accessor :current_user_resolver + # Resolves the caller an agent run executes on behalf of — what reaches + # +ActiveAgent::Base#current_user+, a SchemaTools +scope+ block, and any + # authorization gem an agent calls from its callbacks. + # + # Called with the controller, so the same seam covers a browser session + # and an MCP request. Whatever it returns is passed through untouched: + # the engine never interprets an actor, and never widens one. + # + # config.agent_actor_resolver = ->(controller) { controller.current_user } + # + # Unset means the dashboard's signed-in user, and, for the MCP endpoint, + # the API key's owner — the identity that authenticated the call. A host + # whose keys are issued per end user overrides this to return that user. + # + # Returning nil runs the agent unattributed, which a correctly written + # host scope reads as "no access". That is the safe direction, and it is + # why this is never defaulted to something more privileged. + # @return [Proc, nil] + attr_accessor :agent_actor_resolver + # Resolves the current tenant from the controller. See # current_user_resolver. # @return [Proc, nil] @@ -522,6 +542,7 @@ def reset! @sign_out_path = nil @sign_in_path = nil @mcp_catalog = [] + @agent_actor_resolver = nil @schema_tools = nil @schema_tools_path = "app/agent_tools" end diff --git a/actionagent/test/agent_authorization_test.rb b/actionagent/test/agent_authorization_test.rb new file mode 100644 index 00000000..b732fea3 --- /dev/null +++ b/actionagent/test/agent_authorization_test.rb @@ -0,0 +1,164 @@ +# frozen_string_literal: true + +require "test_helper" + +# Who a run is for, and how that reaches a tool. +# +# The dashboard already had the authorization seam on the tool side — a +# SchemaTools `scope` block takes an `actor:` — but nothing ever filled it, so +# every run executed unattributed and a correctly written host scope returned +# the empty set. These cover the wiring that fills it, and the two ways it +# could be forged if the actor were just another argument. +class AgentAuthorizationTest < ActiveSupport::TestCase + # Records what it was called with, so a test can assert on the actor a tool + # saw rather than on a relation the dummy app would have to provide. + class RecordingTools + class << self + attr_accessor :calls + + def model = ActionAgent::Agent + def tool_names = [ "find_records" ] + def tool?(name) = tool_names.include?(name.to_s) + + def tool_definitions + [ { name: "find_records", description: "Finds records.", parameters: {} } ] + end + + def call(name, actor: nil, **arguments) + (self.calls ||= []) << { name: name, actor: actor, arguments: arguments } + { results: [], actor: actor.respond_to?(:id) ? actor.id : actor } + end + end + end + + def setup + ActionAgent::Agent.delete_all + ActionAgent::AgentRun.delete_all + RecordingTools.calls = [] + ActionAgent.schema_tools = [ RecordingTools ] + end + + def teardown + ActionAgent.schema_tools = nil + ActionAgent.agent_actor_resolver = nil + end + + def create_agent(**attributes) + ActionAgent::Agent.create!( + { name: "Records", provider: "mock", model: "mock", tools: [ "find_records" ] }.merge(attributes) + ) + end + + # --- the seam is filled ------------------------------------------------ + + test "a tool call is made on behalf of the run's actor" do + agent = create_agent + run = agent.agent_runs.create!(trace_id: SecureRandom.uuid, status: :running) + run.actor = agent # any object; the engine never interprets one + + ActionAgent::AgentExecutionService.new(agent, run).execute_tool("find_records", status: "open") + + call = RecordingTools.calls.sole + assert_equal agent, call[:actor] + assert_equal({ status: "open" }, call[:arguments]) + end + + test "an unattributed run passes nil rather than something more privileged" do + agent = create_agent + run = agent.agent_runs.create!(trace_id: SecureRandom.uuid, status: :running) + + ActionAgent::AgentExecutionService.new(agent, run).execute_tool("find_records") + + assert_nil RecordingTools.calls.sole[:actor] + end + + # --- and cannot be forged ---------------------------------------------- + + test "a caller named by the model is dropped before the tool sees it" do + agent = create_agent + run = agent.agent_runs.create!(trace_id: SecureRandom.uuid, status: :running) + run.actor = nil + + # Everything in kwargs came from the model, and everything a model emits + # is reachable by whatever it just read. + ActionAgent::AgentExecutionService.new(agent, run) + .execute_tool("find_records", actor: "administrator", current_user: "administrator", status: "open") + + call = RecordingTools.calls.sole + assert_nil call[:actor] + assert_equal({ status: "open" }, call[:arguments]) + end + + test "a caller named in the request's run parameters is refused the same way" do + agent = create_agent + + run = agent.test_execute("hello", actor: nil, actor_override: "administrator") + + # It reached input_params as an ordinary parameter and nothing else: the + # controller reserves the real keyword (RESERVED_EXECUTION_KEYS), and the + # run records its actor under a key of its own. + assert_nil run.actor + assert_equal "administrator", run.input_params["actor_override"] + end + + test "the stored actor key is never taken from the caller's parameters" do + params = { ActionAgent::AgentRun::ACTOR_PARAM => "gid://app/User/1", "temperature" => 0.2 } + + assert_equal({ "temperature" => 0.2 }, ActionAgent::AgentRun.params_with_actor(params, nil)) + end + + # --- it survives the trip to a worker ---------------------------------- + + test "an actor that can be addressed globally is recorded and rehydrated" do + agent = create_agent + run = agent.agent_runs.create!(trace_id: SecureRandom.uuid, status: :pending) + run.update!(input_params: ActionAgent::AgentRun.params_with_actor({}, agent)) + + assert run.actor_recorded? + assert_equal agent.to_global_id.to_s, run.input_params[ActionAgent::AgentRun::ACTOR_PARAM] + # Read back the way a worker would: a fresh record, no memory of the call. + assert_equal agent, ActionAgent::AgentRun.find(run.id).actor + end + + test "an actor that no longer resolves loses access rather than inheriting it" do + agent = create_agent(name: "Records") + caller_record = create_agent(name: "Caller") + run = agent.agent_runs.create!( + trace_id: SecureRandom.uuid, status: :pending, + input_params: ActionAgent::AgentRun.params_with_actor({}, caller_record) + ) + caller_record.destroy + + stored = ActionAgent::AgentRun.find(run.id) + assert stored.actor_recorded?, "the run still says it was for someone" + assert_nil stored.actor, "but it resolves to nobody, not to a fallback" + end + + test "an actor with no global address is not recorded, and the run stays unattributed" do + params = ActionAgent::AgentRun.params_with_actor({ "temperature" => 0.2 }, Object.new) + + assert_equal({ "temperature" => 0.2 }, params) + end + + # --- one caller's rows are never another's ----------------------------- + + test "a scoped tool result is not replayed for the next caller" do + first = create_agent(name: "First") + second = create_agent(name: "Second") + + ActionAgent::AgentToolbox.call("find_records", actor: first, status: "open") + ActionAgent::AgentToolbox.call("find_records", actor: second, status: "open") + + # Same tool, same arguments, different caller: the second call runs + # rather than replaying the first caller's answer from the cache. + assert_equal [ first, second ], RecordingTools.calls.map { |call| call[:actor] } + end + + test "a built-in tool never meets the actor as an argument" do + # calculate takes (expression:) only — passing the caller through as a + # keyword would make every built-in fail with an argument error. + result = ActionAgent::AgentToolbox.call("calculate", actor: create_agent, expression: "2 + 3") + + assert_equal 5, result[:result] + end +end diff --git a/actionagent/test/agent_tool_roster_test.rb b/actionagent/test/agent_tool_roster_test.rb new file mode 100644 index 00000000..f823bbc1 --- /dev/null +++ b/actionagent/test/agent_tool_roster_test.rb @@ -0,0 +1,205 @@ +# frozen_string_literal: true + +require "test_helper" + +# The agent editor's Tools tab roster, exercised through the engine mounted +# in the dummy app at /activeagents. +# +# The roster is derived rather than registered: the agent's own configuration +# says what is enabled, and ToolDiscovery says what was called. These cover +# the seam between the two — which group a tool lands in, what "enabled" +# means per group, and how a partially allowed MCP service reads. +class AgentToolRosterTest < ActionDispatch::IntegrationTest + def setup + ActionAgent::Agent.delete_all + ActionAgent::TelemetryTrace.delete_all + ActionAgent::AgentContext.delete_all + end + + def create_agent(**attributes) + ActionAgent::Agent.create!( + { name: "Support Hub", provider: "openai", model: "gpt-4o-mini" }.merge(attributes) + ) + end + + # A trace of one generation: the roster it offered, and the tools the model + # then called — the two readings ToolDiscovery takes from a single trace. + def create_trace(agent_class:, declared: [], calls: []) + spans = [ { + "span_id" => "r1", "parent_span_id" => nil, "name" => "#{agent_class}.respond", + "type" => "root", "duration_ms" => 900.0, "status" => "OK", + "attributes" => { "agent.class" => agent_class, "agent.action" => "respond" } + } ] + + if declared.any? + spans << { + "span_id" => "p1", "parent_span_id" => "r1", "name" => "prompt", "type" => "prompt", + "duration_ms" => 5.0, "status" => "OK", + "attributes" => { "prompt.input.tools" => declared.to_json } + } + end + + calls.each_with_index do |call, index| + spans << { + "span_id" => "t#{index}", "parent_span_id" => "r1", "name" => "tool.#{call[:name]}", + "type" => "tool", "duration_ms" => call.fetch(:duration, 13.0), + "status" => call[:error] ? "ERROR" : "OK", + "attributes" => { "tool.name" => call[:name] }.merge(call[:error] ? { "error.message" => call[:error] } : {}) + } + end + + ActionAgent::TelemetryTrace.create_from_payload({ + "trace_id" => SecureRandom.hex(16), "service_name" => "support-hub", + "environment" => "production", "timestamp" => Time.current.iso8601(6), "spans" => spans + }) + end + + def roster_for(agent, params = {}) + get "/activeagents/api/agents/#{agent.id}/tool_roster", params: params + assert_response :success + JSON.parse(response.body) + end + + def service_named(body, key) + body["services"].find { |service| service["key"] == key } + end + + def tool_named(body, name) + body["tools"].find { |tool| tool["name"] == name } + end + + test "schema-derived tools are reported with their usage and are not editable" do + agent = create_agent(agent_class_name: "SupportHubAgent") + create_trace( + agent_class: "SupportHubAgent", + declared: [ { "name" => "find_tickets", "description" => "Find tickets matching the given filters." } ], + calls: [ { name: "find_tickets", duration: 13.0 } ] + ) + + tool = tool_named(roster_for(agent), "find_tickets") + + assert_equal "agent_defined", tool["source"] + assert_equal "Find tickets matching the given filters.", tool["description"] + assert_equal 1, tool["calls"] + assert_equal 13, tool["avg_duration_ms"] + # The agent class declares them, so the dashboard reports rather than + # selects: a checkbox here could not add or remove the tool. + assert tool["enabled"] + assert_equal false, tool["editable"] + end + + test "another agent's traffic stays out of this agent's roster" do + agent = create_agent(agent_class_name: "SupportHubAgent") + create_trace(agent_class: "BillingAgent", calls: [ { name: "refund_invoice" } ]) + + assert_nil tool_named(roster_for(agent), "refund_invoice") + end + + test "dashboard capabilities carry their enabled state and the usage of the functions they expose" do + agent = create_agent(agent_class_name: "SupportHubAgent", tools: [ "memory" ]) + create_trace(agent_class: "SupportHubAgent", calls: [ + { name: "save_memory", duration: 10.0 }, + { name: "recall_memory", duration: 30.0 } + ]) + + body = roster_for(agent) + memory = tool_named(body, "memory") + + assert_equal "dashboard", memory["source"] + assert memory["enabled"] + assert memory["editable"] + # One checkbox over the two functions the capability exposes. + assert_equal 2, memory["calls"] + assert_equal 20, memory["avg_duration_ms"] + assert_equal "Reads and writes durable notes across runs of this agent.", memory["description"] + assert_equal false, tool_named(body, "terminal")["enabled"] + # A capability's own functions belong to it, not to the agent-defined group. + assert_nil tool_named(body, "save_memory") + end + + test "every catalog service is listed, and the ones the agent names are enabled" do + agent = create_agent(mcp_servers: [ "playwright" ]) + + body = roster_for(agent) + playwright = service_named(body, "playwright") + + assert_equal ActionAgent::MCPCatalog.keys.size, body["services"].size + assert playwright["enabled"] + assert_equal "configured", playwright["status"] + assert_equal "sandbox · npx @playwright/mcp@latest", playwright["transport"] + # Offered tools come from the catalog; all of them, since the entry + # names no allow-list. + assert_includes playwright["tools"].map { |tool| tool["name"] }, "browser_navigate" + assert playwright["tools"].all? { |tool| tool["enabled"] } + assert_equal false, service_named(body, "git")["enabled"] + assert_equal "available", service_named(body, "git")["status"] + end + + test "a service entry naming some of its tools offers only those" do + agent = create_agent(mcp_servers: [ { "key" => "playwright", "tools" => [ "browser_navigate" ] } ]) + + tools = service_named(roster_for(agent), "playwright")["tools"].index_by { |tool| tool["name"] } + + assert tools["browser_navigate"]["enabled"] + assert_equal false, tools["browser_click"]["enabled"] + end + + test "a service with traffic reads as active and carries its calls and errors" do + agent = create_agent(agent_class_name: "SupportHubAgent", mcp_servers: [ "playwright" ]) + create_trace(agent_class: "SupportHubAgent", calls: [ + { name: "mcp__playwright__browser_navigate", duration: 820.0 }, + { name: "mcp__playwright__browser_click", error: "element not found" } + ]) + + service = service_named(roster_for(agent), "playwright") + + assert_equal "active", service["status"] + assert_equal 2, service["calls"] + assert_equal 1, service["errors"] + assert_equal 820, service["tools"].find { |tool| tool["name"] == "browser_navigate" }["avg_duration_ms"] + # MCP tools are never roster rows: they belong to the service that + # offers them, which is where they are edited. + assert_nil tool_named(roster_for(agent), "browser_navigate") + end + + test "usage is reported as unavailable when nothing was recorded in the window" do + agent = create_agent(agent_class_name: "SupportHubAgent") + + assert_equal false, roster_for(agent)["usage_available"] + + create_trace(agent_class: "SupportHubAgent", calls: [ { name: "find_tickets" } ]) + + assert roster_for(agent)["usage_available"] + end + + test "the window is scoped by the hours parameter" do + agent = create_agent(agent_class_name: "SupportHubAgent") + + assert_equal 24, roster_for(agent, hours: 24)["window_hours"] + end + + test "saving a roster keeps per-service tool allow-lists" do + agent = create_agent(tools: [ "memory" ]) + + patch "/activeagents/api/agents/#{agent.id}", params: { + agent: { + tools: [ "memory", "search" ], + mcp_servers: [ { key: "playwright", name: "Playwright", tools: [ "browser_navigate" ] } ] + } + } + + assert_response :success + agent.reload + assert_equal [ "memory", "search" ], agent.tools + assert_equal [ { "key" => "playwright", "name" => "Playwright", "tools" => [ "browser_navigate" ] } ], agent.mcp_servers + end + + test "an agent saved with bare server names keeps them" do + agent = create_agent + + patch "/activeagents/api/agents/#{agent.id}", params: { agent: { mcp_servers: [ "playwright" ] } } + + assert_response :success + assert_equal [ "playwright" ], agent.reload.mcp_servers + end +end diff --git a/actionagent/test/mcp_authorization_test.rb b/actionagent/test/mcp_authorization_test.rb new file mode 100644 index 00000000..7c5c5d37 --- /dev/null +++ b/actionagent/test/mcp_authorization_test.rb @@ -0,0 +1,97 @@ +# frozen_string_literal: true + +require "test_helper" + +# The agents-as-MCP facade, asked on whose behalf it is running. +# +# A key authenticates the request, so the facade already knows who is calling; +# what it never did was tell the run. Without that, an agent reached over MCP +# runs unattributed, and a host scope written correctly against Pundit +# answers "no tickets" to a caller who has plenty — a wrong answer wearing a +# right one's clothes. +class McpAuthorizationTest < ActionDispatch::IntegrationTest + def setup + ActionAgent::Agent.delete_all + ActionAgent::AgentRun.delete_all + ActionAgent::ApiKey.delete_all + @agent = ActionAgent::Agent.create!( + name: "Records", slug: "records", provider: "mock", model: "mock", status: :active + ) + @key = ActionAgent::ApiKey.create!(name: "Test key") + end + + def teardown + ActionAgent.agent_actor_resolver = nil + end + + def rpc(method, params = {}, token: @key.token) + post "/activeagents/mcp", + params: { jsonrpc: "2.0", id: 1, method: method, params: params }.to_json, + headers: { "Content-Type" => "application/json", "Authorization" => "Bearer #{token}" } + JSON.parse(response.body) + end + + test "a tool call runs on behalf of the caller the host resolves" do + resolved = @agent # any object; the engine never interprets one + seen = nil + ActionAgent.agent_actor_resolver = ->(_controller) { resolved } + + ActionAgent::AgentExecutionService.stub(:call, ->(_agent, run) { + seen = run.actor + { output: "done", metadata: {}, usage: {} } + }) do + rpc("tools/call", { name: "run_records", arguments: { message: "hello" } }) + end + + assert_response :success + assert_equal resolved, seen, "the run should execute as the resolved caller" + end + + test "with no resolver the key's own owner is the caller" do + seen = :unset + + ActionAgent::AgentExecutionService.stub(:call, ->(_agent, run) { + seen = run.actor + { output: "done", metadata: {}, usage: {} } + }) do + rpc("tools/call", { name: "run_records", arguments: { message: "hello" } }) + end + + # This install configures no owner model, so the key owns nothing and the + # run is unattributed — the safe direction. What matters is that it is + # the key's identity that decides, not a default. + assert_nil @key.owner + assert_nil seen + end + + test "a refusal answers as a JSON-RPC error rather than as an empty result" do + ActionAgent::AgentExecutionService.stub(:call, ->(_agent, _run) { + raise ActiveAgent::NotAuthorized.new(action: "run_records") + }) do + body = rpc("tools/call", { name: "run_records", arguments: { message: "hello" } }) + + assert_response :success + assert_equal(-32003, body.dig("error", "code")) + assert_match(/not allowed/, body.dig("error", "message")) + assert_nil body["result"], "a refused call has no result to read" + end + end + + test "a run that merely failed is still a tool result, not a refusal" do + ActionAgent::AgentExecutionService.stub(:call, ->(_agent, _run) { raise "provider exploded" }) do + body = rpc("tools/call", { name: "run_records", arguments: { message: "hello" } }) + + assert_nil body["error"], "a broken run is reported to the model, not to the transport" + assert_equal true, body.dig("result", "isError") + assert_match(/provider exploded/, body.dig("result", "content", 0, "text")) + end + end + + test "an unauthenticated request never reaches an agent at all" do + post "/activeagents/mcp", + params: { jsonrpc: "2.0", id: 1, method: "tools/call" }.to_json, + headers: { "Content-Type" => "application/json" } + + assert_response :unauthorized + end +end diff --git a/lib/active_agent.rb b/lib/active_agent.rb index 6b59e75e..44ac4c7f 100644 --- a/lib/active_agent.rb +++ b/lib/active_agent.rb @@ -92,6 +92,9 @@ module ActiveAgent # # These components are loaded on-demand when first referenced. autoload :Base + # The refusal an agent raises, and the default in Base.authorization_errors. + # Reachable before any agent class has loaded, so the dashboard can name it. + autoload :NotAuthorized, "active_agent/concerns/authorization" autoload :Callbacks, "active_agent/concerns/callbacks" autoload :Delegation, "active_agent/concerns/delegation" autoload :Streaming, "active_agent/concerns/streaming" diff --git a/lib/active_agent/base.rb b/lib/active_agent/base.rb index e719ef26..702d9d78 100644 --- a/lib/active_agent/base.rb +++ b/lib/active_agent/base.rb @@ -4,6 +4,7 @@ require "active_support/core_ext/module/anonymous" require "active_support/core_ext/string/inflections" +require "active_agent/concerns/authorization" require "active_agent/concerns/callbacks" require "active_agent/concerns/delegation" require "active_agent/concerns/observers" @@ -43,6 +44,7 @@ class Base < AbstractController::Base include AbstractController::Caching include Callbacks + # After Rescue: the refusal handler is registered with rescue_from. include Delegation include Parameterized include Provider @@ -52,6 +54,11 @@ class Base < AbstractController::Base include Tooling include View + # Last of the behaviour concerns: its rescue_from must sit on top of the + # handlers an agent registers for its own authorization gem, so a host + # mapping Pundit::NotAuthorizedError keeps deciding what a refusal means. + include Authorization + include Observers include Previews diff --git a/lib/active_agent/concerns/authorization.rb b/lib/active_agent/concerns/authorization.rb new file mode 100644 index 00000000..bf53adc7 --- /dev/null +++ b/lib/active_agent/concerns/authorization.rb @@ -0,0 +1,172 @@ +# frozen_string_literal: true + +module ActiveAgent + # Raised when an agent refuses a call on the current caller's behalf. + # + # Hosts usually raise their authorization gem's own error instead + # (+Pundit::NotAuthorizedError+, +CanCan::AccessDenied+) and name it with + # {Authorization::ClassMethods#denies_with}; this exists so an agent that + # has no gem still has something to raise, and so the framework has one + # class to describe a refusal with. + class NotAuthorized < StandardError + # @return [Symbol, String, nil] the action or tool that was refused + attr_reader :action + # @return [Object, nil] the caller the refusal was decided against + attr_reader :actor + + def initialize(message = nil, action: nil, actor: nil) + @action = action + @actor = actor + super(message || default_message) + end + + private + + def default_message + who = actor.nil? ? "an unauthenticated caller" : "the current caller" + what = action ? "`#{action}`" : "this agent" + "#{who} is not allowed to call #{what}" + end + end + + # Carries the caller an agent runs on behalf of, so an agent's callbacks can + # authorize with whatever the host app already uses. + # + # An agent reached over MCP, from a dashboard run, or from a controller is + # acting *for someone*. Without that someone, an authorization gem has + # nothing to decide against: a Pundit scope handed +nil+ correctly resolves + # to the empty set, so a perfectly wired agent answers "there are no + # tickets" instead of refusing — a wrong answer that reads like a true one. + # + # == The seam + # + # {#current_user} is assigned by whatever authenticated the call and is + # readable from every callback and action: + # + # class TicketAgent < ApplicationAgent + # before_action :authorize_tickets! + # + # def find_tickets(**filters) + # TicketTools.call("find_tickets", actor: current_user, **filters) + # end + # + # private + # + # def authorize_tickets! + # raise ActiveAgent::NotAuthorized.new(action: action_name, actor: current_user) unless + # TicketPolicy.new(current_user, Ticket).index? + # end + # end + # + # TicketAgent.as(current_user).find_tickets.generate_now + # + # Any gem works, because the framework never interprets the actor — Pundit's + # +authorize+/+policy_scope+, CanCanCan's +can?+, Action Policy's + # +authorize!+, or a plain predicate. +before_action+ is the same + # +AbstractController+ chain a controller uses, including +only:+/+except:+, + # so a roster can be authorized tool by tool. + # + # == It is never model input + # + # The actor is an attribute of the run, set out of band by the caller. It is + # deliberately not part of +params+ and not a tool argument: everything a + # model emits is attacker-reachable through the documents it reads, and an + # actor a model can name is not an authorization boundary. Assigning it is + # the caller's job, once, before the generation starts. + # + # == What a refusal does + # + # A refusal inside a *tool call* is returned to the model as an error result + # ({ error: ... }), so it can tell the user it is not allowed to look rather + # than dying mid-run or, worse, reporting an empty result set as fact. A + # refusal anywhere else — the action the caller asked for — is raised, so + # the MCP client or controller that asked gets an error instead of an + # answer that silently covers less ground than it appears to. + # + # {ClassMethods#denies_with} is how a gem's own error joins that rule: + # + # class ApplicationAgent < ActiveAgent::Base + # denies_with Pundit::NotAuthorizedError + # end + module Authorization + extend ActiveSupport::Concern + + included do + # The caller this generation runs on behalf of, or nil when it runs + # unattributed. Whatever the host uses as an actor: a User, an API + # key's owner, a service account. + attr_accessor :current_user + + # Exception classes that mean "the caller may not do this". Declared + # rather than guessed: only the host knows which of its errors are a + # refusal and which are a bug. + class_attribute :authorization_errors, instance_writer: false, + default: [ ActiveAgent::NotAuthorized ].freeze + end + + class_methods do + # Treats +classes+ as refusals, so raising one inside a tool call + # reports to the model instead of ending the run. + # + # @param classes [Array] exception classes from an authorization gem + # @return [Array] every class now treated as a refusal + # + # @example + # denies_with Pundit::NotAuthorizedError, CanCan::AccessDenied + def denies_with(*classes) + self.authorization_errors = (authorization_errors | classes.flatten).freeze + end + + # Runs the agent on behalf of +actor+. + # + # @param actor [Object, nil] the caller, or nil to run unattributed + # @return [ActiveAgent::Parameterized::Agent] a proxy carrying the actor + # + # @example + # SupportAgent.as(current_user).answer(question).generate_now + # + # @example With parameters + # SupportAgent.as(current_user).with(locale: :en).answer(question) + def as(actor) + ActiveAgent::Parameterized::Agent.new(self, {}, actor: actor) + end + end + + # Whether a refusal right now would be reported to the model rather than + # raised to the caller. + # @return [Boolean] + def tool_call? + @_active_agent_tool_call ||= false + end + + # Marks the block as a tool call, so a refusal inside it becomes a result + # the model can read. Nested calls keep the outer marking. + # @api private + def with_tool_call + previous = @_active_agent_tool_call + @_active_agent_tool_call = true + + result = yield + # A host's own rescue_from handler runs inside `process`, and + # ActiveSupport::Rescuable answers with the exception itself — so a + # refusal arrives either raised or returned, and both mean the same + # thing here. + refusal?(result) ? refused(result) : result + rescue *authorization_errors => exception + refused(exception) + ensure + @_active_agent_tool_call = previous + end + + private + + def refusal?(value) + value.is_a?(Exception) && authorization_errors.any? { |klass| value.is_a?(klass) } + end + + def refused(exception) + logger&.info("[#{self.class.name}] refused #{action_name}: #{exception.message}") + { error: exception.message } + end + end +end diff --git a/lib/active_agent/concerns/parameterized.rb b/lib/active_agent/concerns/parameterized.rb index ddd382ed..84d47b1b 100644 --- a/lib/active_agent/concerns/parameterized.rb +++ b/lib/active_agent/concerns/parameterized.rb @@ -110,9 +110,28 @@ def embed(input = nil, **options) class Agent # @param agent [Class] the agent class to proxy # @param params [Hash] the parameters to pass to agent instances - def initialize(agent, params) + # @param actor [Object, nil] the caller the generation runs on behalf + # of (see ActiveAgent::Authorization). Kept beside params rather than + # in them: params reach templates and are part of what a generation + # is *about*, while the actor is who it is *for*, and only the caller + # may say. + def initialize(agent, params, actor: nil) @agent = agent @params = params + @actor = actor + end + + # Adds parameters, keeping the actor. Lets +as+ and +with+ chain in + # either order. + # @return [ActiveAgent::Parameterized::Agent] + def with(params = {}) + self.class.new(@agent, @params.merge(params), actor: @actor) + end + + # Runs on behalf of +actor+, keeping any parameters. + # @return [ActiveAgent::Parameterized::Agent] + def as(actor) + self.class.new(@agent, @params, actor: actor) end # Intercepts calls to agent action methods and creates parameterized generations. @@ -124,7 +143,9 @@ def initialize(agent, params) # @raise [NoMethodError] if the method doesn't exist on the agent class def method_missing(method_name, ...) if @agent.public_instance_methods.include?(method_name) - ActiveAgent::Parameterized::Generation.new(@agent, method_name, @params, ...) + ActiveAgent::Parameterized::Generation.new(@agent, method_name, @params, ...).tap do |generation| + generation.actor = @actor + end else super end @@ -146,6 +167,17 @@ def respond_to_missing?(method, include_all = false) # # @api private class Generation < ActiveAgent::Generation + # @param agent_class [Class] the agent class + # @param action [Symbol, String] the action method name + # @param params [Hash] the parameters to set on the agent instance + # @param args [Array] additional arguments for the action method + # The caller the generation runs on behalf of. Assigned after + # construction rather than taken as a keyword, because the action's own + # arguments are forwarded here and an actor keyword would collide with + # one of the same name. + # @return [Object, nil] + attr_accessor :actor + # @param agent_class [Class] the agent class # @param action [Symbol, String] the action method name # @param params [Hash] the parameters to set on the agent instance @@ -163,6 +195,7 @@ def initialize(agent_class, action, params, ...) def agent @agent ||= agent_class.new.tap do |agent| agent.params = @params + agent.current_user = @actor agent.process(action_name, *args, **kwargs) end end @@ -180,8 +213,12 @@ def enqueue_generation(generation_method, job_options = {}) if processed? super else + # The actor rides as an ordinary job argument, which ActiveJob + # serializes through GlobalID like any other record, so a worker on + # another machine authorizes as the same caller. agent_class.generation_job.set(job_options).perform_later( - agent_class.name, action_name.to_s, generation_method.to_s, params: @params, args: args, kwargs: kwargs + agent_class.name, action_name.to_s, generation_method.to_s, + params: @params, args: args, kwargs: kwargs, actor: @actor ) end end diff --git a/lib/active_agent/concerns/tooling.rb b/lib/active_agent/concerns/tooling.rb index a53e9734..f579bf5d 100644 --- a/lib/active_agent/concerns/tooling.rb +++ b/lib/active_agent/concerns/tooling.rb @@ -16,7 +16,9 @@ module Tooling # @return [Proc] callback proc that accepts (action_name, *args, **kwargs) def tools_function proc do |action_name, *args, **kwargs| - process(action_name, *args, **kwargs) + # Marked as a tool call so a refusal is reported to the model as a + # result rather than raised through the run (see Authorization). + with_tool_call { process(action_name, *args, **kwargs) } end end end diff --git a/lib/active_agent/generation_job.rb b/lib/active_agent/generation_job.rb index 1b3232a8..73ad7c42 100644 --- a/lib/active_agent/generation_job.rb +++ b/lib/active_agent/generation_job.rb @@ -18,8 +18,14 @@ class GenerationJob < ActiveJob::Base # :nodoc: rescue_from StandardError, with: :handle_exception_with_agent_class - def perform(agent, agent_method, generation_method, args:, kwargs: nil, params: nil) + # +actor+ is the caller the generation runs on behalf of + # (ActiveAgent::Authorization). ActiveJob serializes it like any other + # argument, so a record arrives as the same record the caller passed and + # the agent's authorization callbacks decide against a real user rather + # than against nil. + def perform(agent, agent_method, generation_method, args:, kwargs: nil, params: nil, actor: nil) agent_class = params ? agent.constantize.with(params) : agent.constantize + agent_class = agent_class.as(actor) if actor prompt = if kwargs agent_class.public_send(agent_method, *args, **kwargs) else diff --git a/test/authorization_test.rb b/test/authorization_test.rb new file mode 100644 index 00000000..42d6e587 --- /dev/null +++ b/test/authorization_test.rb @@ -0,0 +1,167 @@ +# frozen_string_literal: true + +require "test_helper" + +# The actor an agent runs on behalf of, and what a refusal does. +# +# The point of the seam is that the framework never decides authorization — +# it only carries the caller and makes the two failure modes distinguishable: +# a denied tool call is something the model is told, a denied action is +# something the caller is told. +class AuthorizationTest < ActiveSupport::TestCase + class Caller + attr_reader :name, :allowed + + def initialize(name, allowed: []) + @name = name + @allowed = allowed + end + + def may?(action) = allowed.include?(action.to_sym) + end + + # An agent authorizing per tool, the way a host would with Pundit or + # CanCanCan in place of `may?`. + class RosterAgent < ActiveAgent::Base + before_action :authorize!, only: [ :find_tickets, :delete_ticket ] + + attr_reader :audited + + def find_tickets(**filters) + { results: [ { id: 1, for: current_user&.name } ], filters: filters } + end + + def delete_ticket(id:) + { deleted: id } + end + + # No callback: the roster's open tool. + def whoami + { actor: current_user&.name } + end + + private + + def authorize! + return if current_user&.may?(action_name) + + raise ActiveAgent::NotAuthorized.new(action: action_name, actor: current_user) + end + end + + # A host names its own gem's error, and it is treated like ours. + class HostErrorAgent < ActiveAgent::Base + class AccessDenied < StandardError; end + + denies_with AccessDenied + + before_action :check + + def read_records = { ok: true } + + private + + def check = raise(AccessDenied, "not your record") + end + + # The same error, mapped through rescue_from instead: ActiveSupport answers + # a handled exception with the exception, so a tool call would otherwise + # hand the model an exception object as its result. + class RescuedHostErrorAgent < ActiveAgent::Base + denies_with HostErrorAgent::AccessDenied + rescue_from HostErrorAgent::AccessDenied, with: :noted + + before_action :check + + def read_records = { ok: true } + + private + + def check = raise(HostErrorAgent::AccessDenied, "not your record") + + def noted(exception) = exception + end + + def tool_call(agent_class, action, actor: nil, **kwargs) + agent = agent_class.new + agent.current_user = actor + agent.tools_function.call(action, **kwargs) + end + + test "the actor reaches the action and its callbacks" do + reader = Caller.new("Reader", allowed: [ :find_tickets ]) + + result = tool_call(RosterAgent, :find_tickets, actor: reader, status: "open") + + assert_equal [ { id: 1, for: "Reader" } ], result[:results] + assert_equal({ status: "open" }, result[:filters]) + end + + test "a refused tool call is reported to the model rather than raised" do + reader = Caller.new("Reader", allowed: [ :find_tickets ]) + + result = tool_call(RosterAgent, :delete_ticket, actor: reader, id: 7) + + # The model has to be able to say "I'm not allowed to do that" — a raise + # would kill the run, and an empty result would read as a fact. + assert_equal "the current caller is not allowed to call `delete_ticket`", result[:error] + end + + test "an unattributed caller is refused rather than treated as permitted" do + result = tool_call(RosterAgent, :find_tickets) + + assert_equal "an unauthenticated caller is not allowed to call `find_tickets`", result[:error] + end + + test "a tool with no authorization callback still runs, and sees the actor" do + assert_equal({ actor: "Reader" }, tool_call(RosterAgent, :whoami, actor: Caller.new("Reader"))) + end + + test "a refused action is raised to the caller instead of answered" do + agent = RosterAgent.new + agent.current_user = Caller.new("Reader") + + # Not a tool call: whoever asked for this action gets an error, not an + # answer that quietly covers less ground than it appears to. + error = assert_raises(ActiveAgent::NotAuthorized) { agent.process(:find_tickets) } + assert_equal "find_tickets", error.action.to_s + end + + test "an error a host names with denies_with refuses like ours" do + assert_equal({ error: "not your record" }, tool_call(HostErrorAgent, :read_records)) + end + + test "a refusal a host also rescues still reaches the model as an error" do + assert_equal({ error: "not your record" }, tool_call(RescuedHostErrorAgent, :read_records)) + end + + test "naming an error is per agent class and never widens another's" do + assert_includes HostErrorAgent.authorization_errors, HostErrorAgent::AccessDenied + assert_equal [ ActiveAgent::NotAuthorized ], RosterAgent.authorization_errors + end + + test "as() carries the actor onto the generation, and chains with with()" do + reader = Caller.new("Reader", allowed: [ :find_tickets ]) + + generation = RosterAgent.as(reader).find_tickets + assert_equal reader, generation.actor + + chained = RosterAgent.as(reader).with(locale: :en).find_tickets + assert_equal reader, chained.actor + assert_equal({ locale: :en }, chained.instance_variable_get(:@params)) + + # Either order, same result. + assert_equal reader, RosterAgent.with(locale: :en).as(reader).find_tickets.actor + end + + test "the actor is not reachable through params" do + agent = RosterAgent.new + agent.params = { current_user: Caller.new("Impostor", allowed: [ :delete_ticket ]) } + + # Whatever a caller puts in params, the actor is only what was assigned + # out of band — params are what a generation is about, not who it is for. + assert_nil agent.current_user + assert_equal "an unauthenticated caller is not allowed to call `delete_ticket`", + agent.tools_function.call(:delete_ticket, id: 7)[:error] + end +end